ui [wuwei]

compiler

  • assign 用于在模板被执行时为模板变量赋值.
    属性类型是否必须描述
    varstringyes被赋值的变量名
    valuestringyes赋给变量的值

assign 演示

<{assign var="age" value=20}>
<{$age}>
输出:
    20

<{assign var="arr" value=array("s","b")}>
<{dump var=$arr}>
输出:
array
  0 => string 's' (length=1)
  1 => string 'b' (length=1)

  • foreach foreachelse
    属性类型是否必须描述
    fromstringyes待循环数组的名称
    itemstringyes当前处理元素的变量名称
    keystringon当前处理元素的键名
    namestringon该循环的名称,用于访问该循环

    foreach 必须和 /foreach 成对使用,且必须指定 fromitem 属性.name 属性可以任意指定.foreach 可以嵌套,但必须保证嵌套中的 foreach 名称唯一.from 属性(通常是数组)决定循环的次数。foreachelse 语句在 from 变量没有值的时候被执行.

    【输出数组$array中所有元素】
    
    <{foreach from=$array item=value key=key}>
    		<{$key}> : <{$value}><br>
    <{/foreach}>
    输出:
        a : c#
       b : php 
       c : java
    

  • include 包含模板文件
    <{include file='site/product/goods_js.html' app=b2c}>
    
  • if,elseif,else
    <{if $name eq "yi"}>
    yi
    <{else if $name eq "yu"}>
    yu
    <{else}>
    error
    <{/if}>
    
    
  • ldelim,rdelim

    ldelim 和 rdelim 用于输出分隔符,也就是大括号 "<{" 和 "}>". 模板引擎总是尝试解释大括号内的内容

    base_view_helper

  • counter

    counter 用于输出一个记数过程. counter 保存了每次记数时的当前记数值. 用户可以通过调节 interval 和 direction 调节该值. 也可以决定是否输出该值. 如果需要同时运行多个计数器,必须为它们指定不同的名称. 如果没有指定名称,模板引擎使用 "default" 作为缺省值.如果指定了 "assign" 这个特殊属性,该计数器的输出值将被赋给由 assign 指定的模板变量,而不是直接输出.

    参数:  name      计数器的名称 
            start     记数器初始值
            skip      记数器间隔、步长
    	direction 记数器方向,(增/减)
    	print     是否输出值
    	assign    输出值将被赋给模板变量的名称
    

    counter 例子:

    <{counter start=6 skip=3 direction=down print=false}><br />
        <{counter}><br />
        <{counter}><br />
        <{counter assign}><br />
        <{$counter}>
        输出:
    
        3
        0
    
        -3
    
  • html_input输入框
    参数:name      输入框的name属性
          password  是否是password属性 (其中password=ture 或 password=false都是一样的)[好像判断有问题]
         value     输入框value属性
    
    <{html_input name='aaaa' password=ture value='ssss'}>
          输出:
            <input type="password" name="aaaa" value="ssss"  />
    
  • html_options下拉框
         参数:name 下拉菜单的名称
               options 包含值和显示的关联数组
    	   values 包含下拉列表各元素值的数组
    	   output 包含下拉列表各元素显示值的数组
    	   selected 已选定的元素或元素数组
    
    先分配数据:
           $this->pagedata['options'] = array('a'=>'php','b'=>'c#','c'=>'java');
           $this->page('list.html');
            
           list.html:
           <{html_options name='bb' options=$options }>
           输出:
            <select name="bb">
    	<option label="php" value="a">php</option>
    	<option label="c#" value="b">c#</option>
    	<option label="java" value="c">java</option>
    	</select>
    
  • html_table表格
    参数:loop 待遍历的数组 (必须)
          cols 表格的列数目
          table_attr 表格的属性
          tr_attr    行标签属性
          td_attr    列标签属性
    
    先分配数据:
           $this->pagedata['loop'] = array(1,2,3,4,5,6,7,8,9);
           $this->page('list.html');
         
           list.html:
            <{html_table  loop=$loop cols=3 }>
           输出:
            <table border="1">
    	<tr><td>1</td><td>2</td><td>3</td></tr>
    	<tr><td>4</td><td>5</td><td>6</td></tr>
    	<tr><td>7</td><td>8</td><td>9</td></tr>
    	</table>
    
  • json
  • mailto邮件发送
          参数 :address 发送人地址
                text    邮件链接上显示的文本
                subject 邮件主题
    	    cc      抄送地址
    	    encode  编码方式 可选值为 none,hex或javascript
    	    extra   其它需要传递给链接的信息,如css样式
    
    <{mailto address="me@domain.com"}><br />
           <{mailto address="me@domain.com" text="send me some mail" subject="Hello to you!" 
           cc="you@domain.com,they@domain.com" extra='class="email"'}><br />
           <{mailto address="me@domain.com" encode="javascript"}><br />
           <{mailto address="me@domain.com" encode="hex"}><br />
    
           输出:
              <a href="mailto:me@domain.com" >me@domain.com</a><br />
    
              <a href="mailto:me@domain.com?cc=you@domain.com%2Cthey@domain.com&subject=Hello%20to%20you%21" 
    	  class="email">send me some mail</a><br />
    
    	  <script type="text/javascript" language="javascript">
    	  eval(unescape('%64%6f%63%75%6d%65%6e%74%2e%77%72%69%74%65%28%27%3c%61%20%68%72%65%66%3d%22%6d%
    	  61%69%6c%74%6f%3a%6d%65%40%64%6f%6d%61%69%6e%2e%63%6f%6d%22%20%3e%6d%65%40%64%6f%6d%61%69%6e%
    	  2e%63%6f%6d%3c%2f%61%3e%27%29%3b'))</script><br />
    
    	  <a href="mailto:%6d%65@%64%6f%6d%61%69%6e.%63%6f%6d" >
    	  &#x6d;&#x65;&#x40;&#x64;&#x6f;&#x6d;&#x61;&#x69;&#x6e;&#x2e;&#x63;&#x6f;&#x6d;</a><br />
    
  • pager
  • toinput隐藏框
    参数: from 包含隐藏框的name和value的关联数组
    
    先分配数据:
             $this->pagedata['toinput'] = array('a'=>'c#','b'=>'php','c'=>'java');
             $this->page('list.html');
             
    	 list.html:
                <{toinput from=$toinput}><br />
    	 输出:
    	    <input type="hidden" name="a" value="c#" />
    	    <input type="hidden" name="b" value="php" />
    	    <input type="hidden" name="c" value="java" />
    

    modifier修饰符

  • amount
  • storager
  • cdate控制日期输出
    参数:FDATE        Y-m-d
               SDATE        y-m-d
    	   DATE         m-d
    	   FDATE_FTIME  Y-m-d H:i:s
    	   FDATE_STIME  Y-m-d H:i
    	   SDATE_FTIME  y-m-d H:i:s
    	   SDATE_STIME  y-m-d H:i
    	   DATE_FTIME   m-d H:i:s
    	   DATE_STIME   m-d H:i
         默认:FDATE_FTIME
    
    先分配数据:
         $this->pagedata['time'] = time();
         $this->page('list.html');
    
         list.html:
         <{$time|cdate:FDATE}>
         输出:
         2011-01-06
    
  • cut控制字符串输出
     参数:第一个参数 输出几个字符   默认是80 
           第二个参数 后三个代替字符 默认是 ...
    
    先分配数据:
         $this->pagedata['string'] = 'abcdefghijklmno';
         $this->page('list.html');
    
         list.html:
           <{$string|cut:10}><br />
           <{$string|cut:10:'+++'}><br />
         输出:
           abcdefg...
           abcdefg+++
    
  • date
    参数:参照php中date函数写参数
    
    先分配数据:
         $this->pagedata['time'] = time();
         $this->page('list.html');
    
         list.html:
           <{$time|date:'r'}><br />
         输出:
          Thu, 06 Jan 2011 17:53:26 +0800
    
  • date_format
    参数: 参数php中strftime函数写参数
    
    先分配数据:
            $this->pagedata['time'] = time();
    	$this->page('list.html');
    
            list.html:
    	  <{$time|date_format:'%Y年'}><br />
    	输出:
    	  2011年
    
  • escape
  • gender
  • t
  • number
  • paddingleft向前填充
    参数:第一个参数 填充的次数
          第二个参数 填充的字符
    
    先分配数据:
            $this->pagedata['p'] = 'abcd';
    	$this->page('list.html');
    
            list.html:
    	  <{$p|paddingleft:5:'-'}><br />
    	输出:
    	  -----abcd
    
  • regex_replace正则替换
    参数:第一参数:替换正则表达式.
          第二参数:用来替换的文本字符串
    
    先分配数据:
            $this->pagedata['articleTitle'] = "Infertility unlikely to\nbe passed on, experts say.";
    	$this->page('list.html');
    
            list.html:
                <{$articleTitle}><br />
    	    <{$articleTitle|regex_replace:"/[\r\t\n]/":" "}>
    	输出:
    	    Infertility unlikely to
    	    be passed on, experts say.
                Infertility unlikely to be passed on, experts say.
    
  • region
  • replace字符串替换
    参数:第一参数 被替换的字符串
          第二参数 用来替换的字符串
    
    先分配数据:
            $this->pagedata['region'] = "afsd/fsd:bbcd/czxc:fsd";
    	$this->page('list.html');
    
            list.html:
                <{$region}><br />
                <{$region|replace:'/':'-'}><br />
    	输出:
    	    afsd/fsd:bbcd/czxc:fsd
                afsd-fsd:bbcd-czxc:fsd
    
  • strip将多个空格替换为一个
    参数:替换空格的字符
    
    先分配数据:
            $this->pagedata['strip'] = "ss  fbsd fsd   fs ";
    	$this->page('list.html');
    
            list.html:
                <{$strip}><br />
                <{$strip|strip:''}><br />
    	输出:
    	    ss fbsd fsd fs 
                ssfbsdfsdfs
    
  • styleset

    base_view_input

  • input_bool
    <{input type="bool" name='name' value="ture" id="bool"}><hr />
    输出:
        <input value="true" checked="checked" type="radio" name="name" id="bool-t" check="#" />
        <label for="bool-t">是</label>
        <input value="false" type="radio" name="name" id="bool-f" check="#" />
        <label for="bool-f">否</label><input type="hidden" name="_DTYPE_BOOL[]" value="name" />
    

    效果:

  • input_color
    。。。。
    
  • input_label
    <{input type="label" value="test"}>
    输出:
    <span>test</span>
    
  • input_date
    <{input type="date" value="date"}>
    

    效果:

  • input_default
    <{input value="text"}>
    输出:
    <input autocomplete="off" class="x-input " value="text" id="dom_el_006b022" type="text" />
    
    效果:

  • input_file
  • input_sfile
  • input_gender
  • input_intbool
  • input_radio
    <{assign var="opt" value=array(1988,1989,1990,1991,1992,1993)}>
    <{input type="radio" options=$opt name="radio"}>
    

    效果:

  • input_select
    <{assign var="opt" value=array(1988,1989,1990,1991,1992,1993)}>
    <{input type="select" options=$opt}>
    

    效果:

  • input_textarea
    <{input type="textarea" value="test"}>
    

    效果:

  • input_time
    <{input type="time"  name="to_time"}>
    

    效果:

  • input_tinybool
  • 內容目录

    上一个主题

    dbschema

    下一个主题

    session