说到PHP的模板引擎,那可谓是很多。像Smarty、SmartTemplate、FastTemplate等等... 其中属Smarty功能最为强大。
不过呢,个人感觉它还有些欠缺的地方,例如表达式赋值,modifier只支持传递一个参数等。因此,在CMSPAD项目中我们开发了一套新的模板引擎,语法上大部分兼容Smarty,但提供更强大的函数引擎和表达式自动赋值。
下面我把一些范例写出来,看看能不能触发一下大家的创新思维:
1. 公用函数标签:<{@函数名称 [参数1 [参数2]]}>
模板代码
- <{@strcmp "123456789" "12345678"}>
- <{@strtoupper $hello}>
2. 内置函数标签:在文本区域内的自动函数支持
模板代码
- <{@strtoupper "$hello strlen($hello) strcmp($hello,'world')"}>
- <{if $hello=strtolower('WORLD')}>Is world<{/if}>
- <{if strlen($hello) + 3 = 5}>$Hello var length is greater than 5<{/if}>
3. 变量赋值:<{assign name=变量名 expr=表达式}>
模板代码
- <{assign name=hello expr=strlen($hello)+5}>
- <{assign name=hello expr="strlen($hello) + 5" }>
4. 属性表达式:在某些系统支持的属性中可以提供表达式支持
模板代码
- <{for start='$start + 3' stop=count($ints) step=2 value=i}><{$i}>.<{/for}>
由于提供了内置表达式支持,因此CMSPAD的模板引擎并不需要兼容Smarty的modifier语法。
整个系统的函数,我们分成了三个部分:公用函数、内置函数、标签函数,三个函数可以分开进行设置。公用和内置函数库,默认使用了系统的函数库,而用户可以自行定义或覆盖默认函数(例如支持中文的substr函数)以达到更理想的效果。所谓标签函数,就是类似于Smarty上的函数样式。与其不同的一点是,我们把switch函数给简化成下列样式:
模板代码
- <{switch $hello}>
- <{case "hello"}>
- This is Hello
- <{case 'world'}>
- This is World
- <{case}>
- This is Default
- <{/switch}>
目前,此库正在进行beta测试中。
分享到:
相关推荐
HTMLRender是一款基于jQuery的数据绑定模板引擎,主要用于帮助开发者在JavaScript中高效地进行DOM操作和数据渲染。这款插件是jQuery的一个扩展,它提供了一种简洁的语法来将数据与HTML结构进行绑定,使得动态生成和...
4. 执行模板:在Visual Studio中,保存T4模板文件将会自动触发模板的执行,生成的代码会出现在与模板同目录下的.cs文件中。 四、T4模板应用 1. 代码生成:除了实体类,T4还可以生成数据访问层(DAL)、业务逻辑层...
在这个场景中,我们关注的是"MVC3模板引擎生成静态页",这是一个提高网站性能和SEO(搜索引擎优化)的有效策略。 模板引擎是MVC框架中的关键组成部分,它允许开发者通过定义模板来控制页面的布局和样式。在ASP.NET ...
在IT行业中,创建引人入胜的演示文稿往往需要运用一些视觉效果来提升观众的体验,例如“点击触发图片放大效果”。这个标题所指的“点击触发图片放大效果ppt模板”是一种交互式的设计,它允许用户通过点击小图来查看...
然而,这种方法不能完全确定器件是否完好无损。 - **高级检测**:为了更准确地检测双向触发二极管,需要提供大于250V的直流电压源。检测过程中,通过管子的电流不应超过5mA。使用晶体管耐压测试器进行检测非常便捷。...
在电力系统仿真中,PSCAD(Power System Computer-Aided Design)是一款强大的工具,尤其在电力电子器件的触发分析方面有着显著的应用。本文主要探讨了如何在PSCAD中处理电力电子器件的触发以及相关的一些关键知识点...
在IT行业中,尤其是在工业自动化和图像处理领域,相机的外触发功能扮演着至关重要的角色。本文将详述“相机外触发”这一主题,主要聚焦于Dalsa相机的接线、海康线阵相机以及大华、海康面阵相机的外触发接线电路原理...
标题中的“AJAX中不触发javascript事件”指的是在使用AJAX技术进行页面更新时,可能出现JavaScript事件不按预期触发的情况。这通常是由于AJAX请求更新页面部分时,不会触发表单提交、点击或其他依赖于页面刷新的...
"创新GL系统:微电网二次控制与基于事件触发的下垂控制策略研究,最小事件触发间隔下的扰动补偿与效果分析",创新,GL,微电网二次控制,下垂控制,基于事件触发的二次控制,具有最小事件触发间隔,扰动,补偿了下垂...
在LabVIEW(Laboratory Virtual Instrument Engineering Workbench)中,实现外部IO触发相机采集图像是一项常见的任务,特别是在自动化测试、机器视觉以及数据采集等应用中。LabVIEW作为一个图形化编程环境,以其...
总结来说,这个基于语义的中文事件触发词抽取联合模型通过深入挖掘论元语义信息和关联事件之间的语义联系,有效地提升了事件触发词抽取的准确性和效率,尤其对于那些信息不完整的事件实例,表现出更强的识别能力。...
在这个案例中,可能会用到QLabel来展示特性描述,QPushButton作为点击触发动作的按钮,而QScrollArea可能被用来创建可滚动的特性列表,以便在有限的屏幕空间内展示更多内容。 此外,为了实现界面的自适应布局,Qt的...
4. 高频振荡回路中TVS的特性分析:尽管TVS在脉冲功率技术中的应用广泛,但在高频振荡回路中的电流开断特性尚不明确。本文通过在四种不同振荡频率的回路中改变电感值,对TVS进行了实验研究,得到了高振荡频率下TVS的...
《电平触发与边沿触发的概念,以及RS、JK、D触发器的解析》 触发器,作为数字电路中的基础元件,是存储一位二进制信息的最小单元电路。其核心特性在于它拥有两种稳定状态,可以分别表示逻辑0和逻辑1,并且在输入...
STM8单片机是STMicroelectronics公司推出的一款8位微控制器,因其低功耗、高性能和易用性而被广泛应用。...通过深入理解STM8的定时器和ADC特性,开发者可以进一步优化这种触发机制,以适应更多复杂的应用场景。
双向触发二极管(2CTS)是属于三层结构,具有正、反向转折电压,且其正、反向伏安特性非常对称。常见型号有DB3型双向触发二极管,实测它的正反向击穿(可逆)电压为25V左右。附图2为简易击穿电压测试仪,测量400V...
4. **编程触发逻辑**:在“硬触发.vi”程序中,你需要编写触发逻辑,比如当满足某个条件(例如,传感器检测到物体)时,发送触发信号。这通常涉及到事件结构和条件分支。 5. **图像采集**:一旦触发信号发送,相机...
模板引擎允许开发者使用标记语言来定义页面布局和设计,然后通过数据绑定将动态数据填充到这些模板中。这通常涉及使用服务器控件、数据源和数据绑定表达式,如`<%# %>`或`<% %>`。 EFPlatform.TemplateEngine v1.0 ...
其中,**触发功能**是示波器的核心特性之一,它使得用户能够精确地捕捉特定类型的信号变化,这对于故障诊断、信号分析以及电路设计等工作至关重要。 #### 二、触发的基本概念 - **触发**: 是指根据预设的条件(如...
DALSA相机外触发设置与连接的知识点包含了相机设置、连接方式、CamExpert参数设置和信号线路连接等多个方面。该知识点适用于新手以及刚接触机器视觉的人员,帮助他们理解如何对DALSA相机进行外触发设置以达到预定的...