转自:http://bbs.phpchina.com/redirect.php?tid=179467&goto=lastpost&sid=77eho6

 本人第一次在phpchina发表原创帖,如果写的不好,欢迎大家拍砖,下面进入正题!

一.模板语法
在模板里面,是可以直接显示php的变量的,也可以使用if,else,循环等,模板解析函数会将这些变量替换成实际的变量值。
1.设置变量的值
<!-–{eval $_TPL['titles'] = array(’日志’, ‘随便看看’);}–->
表示将$_TPL['titles']变量设置为array(’日志’, ‘随便看看’);

2.变量的显示
直接写变量的名字 $_GET[aa]

3.调用另外一个模板文件进来[模板里面再调用模板]
<!–-{template header}-–>实际上相当于php中的
相当于template(”header”) 即解析/template/default/header.htm文件
4.条件判断 <!–-{if xxx}-–>,<!–-{else}-–>,<!–-{/if}–->类
相当于php的if,else,但一定要<!–{/if}–>结束一个if语句
5.循环 <!–-{loop}–><!–-{/loop}-–>类
<!–-{loop $list $key $value}-–>
  
<!--{/loop}-->
相当于php的foreach($list $key=>$value)

6.在模板写php代码
    <!--{eval php代码;}-->
7.时间处理
    <!--{date('Y-m-d h:i',$time)}-->
8.头像处理
    <!--{avatar($uid, $size='small', $returnsrc = FALSE)}-->  returnsrc为true时返回头像的URL

当然了,以上模板语法可以嵌套,所以这也造成我们看模板文件的复杂性,比如在loop里面会有if,即表示每循环一次都要进行判断;又或者if里面有 loop,即表示只有满足条件了,才会进行循环!
二.模板解析过程
1.在php文件中引入模板
如果我们要在一个php文件中载入一个模板直接使用:
  include_once template("模板的名字");
如:我们要在index.php文件中引入首页的模板:
  include_once template("index");

2.模板的载入
上面步骤后php将调用template()函数
函数的原型为
01 function template($name) {
02 global $_SCONFIG$_SGLOBAL;
03 if($_SGLOBAL['mobile']) {
04   $objfile = S_ROOT.'./api/mobile/tpl_'.$name.'.php';
05   if (!file_exists($objfile)) {
06    showmessage('m_function_is_disable_on_wap');
07   }
08 else {
09   if(strexists($name,'/')) {
10    $tpl $name;
11   else {
12    $tpl "template/$_SCONFIG[template]/$name";
13   }
14   $objfile = S_ROOT.'./data/tpl_cache/'.str_replace('/','_',$tpl).'.php';
15   if(!file_exists($objfile)) {
16    include_once(S_ROOT.'./source/function_template.php');
17    parse_template($tpl);
18   }
19 }
20 return $objfile;
21 }

相关文章:

  • 2021-10-25
  • 2021-08-30
  • 2021-07-20
  • 2022-12-23
  • 2021-11-02
  • 2022-12-23
  • 2021-05-19
猜你喜欢
  • 2022-01-22
  • 2022-12-23
  • 2021-12-12
  • 2021-06-11
  • 2022-12-23
  • 2022-12-23
  • 2021-06-07
相关资源
相似解决方案