smarty模版

设计原则

让前端来写后端的smarty模板,并且前端不需要搭建各种繁杂的后端环境,另外模板的数据源可以在项目开始前前后端约定之后生成JSON文件,从而使两个角色并行开发。

使用方法:

1、将widget中的模版扩展名改为.smarty

2、将模版需要渲染的数据,放在当前widget下的.json文件或者widget标签的data属性中

3、引用方式:{%widget name="test"%}

4、单独引用模版:{%widget name="test" tydive="smarty"%}

smarty基本语法

  • 变量
    Smarty有几种不同类型的变量,变量的类型取决于它的前缀是什么符号(或者被什么符号包围)
    Smarty的变量可以直接被输出或者作为函数属性和修饰符(modifiers)的参数,或者用于内部的条件表达式等等。
    如果要输出一个变量,只要用定界符将它括起来就可以,例如:

    1. {$Name}
    2. {$Contacts[row].Phone}
  • if,else判断

    1. {if $name eq "Fred"}
    2. Welcome Sir.
    3. {elseif $name eq "Wilma"}
    4. Welcome Ma'am.
    5. {else}
    6. Welcome, whatever you are.
    7. {/if}
  • selection循环遍历
    模板的section用于遍历数组中的数据。section标签必须成对出现,必须设置name和 loop属性。名称可以是包含字母、数字和下划线的任意组合,可以嵌套但必须保证嵌套的 name唯一。
    变量loop(通常是数组)决定循环执行的次数。当需要在section循环内输出变量时,必须在变量后加上中括号包含着的name变量。
    ```text
    {section name=customer loop=$custid}
    id: {$custid[customer]}

    {/section}

OUTPUT:

id: 1000

id: 1001

id: 1002

```