1、变量表示
{$name} 被解析成 <?=$name?>,表示显示变量$name的值,其中的“name”由英文字母、数字和下划线组成首字母必须是英文字母或者下划线。
如:内容页常用到的表示文章标题的{$title},表示文章摘要的{$discription},表示文章内容的{$content},表示文章关键词 的{$keywords},另外就是GET标签调用数据是常用的{$r[title]},{$r[url]}等,登陆用户的ID一般为 {$_userid} [蓝色部分文字为CMS通注释,下同]
2、常量表示
{name}被解析成<?=name?>,表示显示常量name的值,其中的“name”由英文字母、数字和下划线组成首字母必须是英文字母或者下划线。
如:当间时间{TIME},当前浏览的地址{URL}(在模板中加页内锚链接可用<a href=”{URL}#id”>锚文字</a>,id可以为要跳转到的地方附近的div等的id属性值,如down_address等)
3、条件判断
{if *} * {else} * {else} * {/if} 或者 {if *} * {/if},其中{if *}中的*就是此判断语句的条件表达式,符合php的表达式。
在PHPCMS模板中常用条件判断,选择性显示某些值,如:当我们想在没填写文章来源时默认显示本站网站名,则可以{if $copyfrom}{$copyfrom}{else}CMS通{/if};又如在显示用户信息是如果没填写的项不显示:{if $tel}<li>手机:{$tel}</li>{/if}等。
又如,你想在文章列表中使今天更新的文章的日期显示为红色,可以{if date(‘m-d’,TIME)==date(‘m-d’,$r[inputtime])}<font color=”red”>{date(‘Y-m-d’,$r[inputtime])}</font>{else}{date(“Y-m-d”),$r[inputtime]}{/if}
{if $userid} {$username}{else} {$noname}{/if}
判断用户组可以用{if $_groupid==1}<div>显示用户组ID为1的用户组能显示的内容</div>{/if}
4、循环
{loop $a $b} * {/loop} 或者 {loop $a $b $c} * {/loop} ,{loop $a $b} * {/loop}
被解析成 <? if(is_array($a)) foreach($a AS $b) { ?> * <? } ?>
而 {loop $a $b $c} * {/loop} 则被解析成 <? if(is_array($a)) foreach($a AS $b=>$c) { ?> * <? } ?>
循环标签一般用在对PHP中传给模板的数组变量进行循环,如果站长朋友们是自己PHP代码修改代码,那loop标签一般自己用到的比较少,主要用到的在PHPCMS的标签模板中和碎片模板中,如:
XML/HTML代码
{loop $data $n $r}
<li>{if $showdate}<span class=”date”>{date(‘m月d日’,$r[updatetime])}</span>{/if}
{if $showcatname}<a href=”{$CATEGORY[$r[catid]][url]}” class=”catname”>[{$CATEGORY[$r[catid]][catname]}]</a>{/if}
<a href=”{$r[url]}” target=”{$target}” title=”{$r[title]}”>{if $r[style]}<span class=”{$r[style]}”>{str_cut($r[title], $titlelen)}</span>{else}{str_cut($r[title], $titlelen)}{/if}</a></li>
{/loop}
上面的代码是复制于落叶修改后的tag_content.html模板中,通过loop循环,把标签读取的$data数组中记录的内容循环格式化输出。
5.模板包含
{template ‘module name’,’file name’}例如: {template ‘phpcms’,’header’}表示包含模板目录,phpcms目录下header.html文件
简单来讲,如果在模板中包含中某模板或HTML文件,可直接将文件放在相应目录下,然后包含,如想在phpcms模板目录下的index.html中包含 abc.html文件,只需将abc.html上传到templates/default/phpcms目录下,然后在该目录下的index.html中 加上{template ‘phpcms’,’abc’}即可,其它模块类似操作,只是修改文件所在目录名(和模块名相同)和要引用的文件名即可
建议 if 和 loop 语法应该写在html注释符之间,这样可以避免在编辑工具中难看,例如:
这样写 if
<!–{if $a>$b}–> <!–{else}–> <!–{/if}–>
这样写 loop
<!–{loop $arr $key $val}–> <!–{/loop}–>
这是一般模板引擎都基本采用的方式,模板中的变量或者语法都可以用HTML注释方式注释起来,这样直接浏览模板时可视化效果会清晰。HTML注释方式:<!–被注释的文字或者PHPCMS模板语法–>
转载请注明:苏demo的别样人生 » PHPCMS模板语法规则