好了废话不多说了,看看今天的工作任务吧!
今天任务:
模板制作的学习从本质上讲我认为可以这样来分析,第一懂得这个系统是怎么开发的,如果使用mvc架构那么那么他的模板呈现方式是否具有某个函数来显示,
第二 模板标签定义是由哪里来定义的。
第三,模板中的各个文件是怎样引入的。
第四,模板文件中 显示的数据 怎样显示。
还有一个是skin文件夹似乎跟模板也有关系。打开之后 也是这三项 目录default 里面存放的就不一样了
template 中存放的一看就知道是模板文件 skin中存放的都是css文件 似乎我们可以找到某种联系了皮肤就是css控制的样式,而template 才是真正的模板。
那么我们打开 模板中的 header.htm 看看究竟
{if $head_keywords}
{/if}
{if $head_description}
{/if}
{if $head_canonical}
{/if}
{if $moduleid>4}{/if}
{if $CSS}
{loop $CSS $css}
{/loop}
{/if}
{if !DT_DEBUG}
{if $itemid && $DT[anticopy]}
{/if}
{loop $searchids $s}
{if isset($MODULE[$s])} - {$MODULE[$s][name]}
- {/if}
{/loop}
二、模板语法
1、包含模板 {template 'header'} 或 {template 'header', 'member'}
{template 'header'} 被解析为
<?php include template('header');?>
表示使用 template/default/header.htm 模板文件
{template 'header', 'member'}
被解析为 <?php include template('header', 'member');?>
表示使用 template/default/header.htm 模板文件
2、变量或常量表示
变量 {$destoon} 被解析为 <?php echo $destoon;?>
常量 {DESTOON} 被解析为 <?php echo DESTOON;?>
对于数组,标准写法应为 例如 {$destoon['index']},可简写为 {$destoon[index]},模板在解析时会自动追加引号。
3、函数 {func_name($par1, $par2)}
{func_name($par1, $par2)} 被解析为
<?php func_name($par1, $par2);?>
4、PHP表达式 {php expr
{php expr
5、条件语句 {if $a=='b'} do A {/if} 或 {if $a=='b'} do A {else} do B {/if} 或 {if $a=='b'} do A {elseif $b=='c'} do C {else} do B {/if}
{if $a=='b'} do A {/if} 被解析为
<?php if($a=='b') { do A }?>
{if $a=='b'} do A {else} do B {/if} 被解析为
<?php if($a=='b') { do A } else { do B } ?>
{if $a=='b'} do A {elseif $b=='c'} do C {else} do B {/if} 被解析为
<?php if($a=='b') { do A } else if($b=='c') { do C } else { do B } ?>
6、LOOP循环 {loop $var $v}...{loop} 或
{loop $var $k $v}...{loop}
{loop $var $v}...{loop} 被解析为
<?php if(is_array($var)) { foreach($var as $v) { ... } }?>
{loop $var $k $v}...{loop} 被解析为
<?php if(is_array($var)) { foreach($var as $k=>$v) { ... } }?>
三、特殊用法
1、变量或表达式可以用HTML注释,例如 <!--{$destoon}--> 仍被解析为 <?php echo $destoon; ?> (可自动过滤此类注释)
2、可直接在模板里书写PHP代码,直接书写PHP代码与 DESTOON 模板语法是兼容的。