一、模板语法规则
1、变量表示
{$name} 被解析成 <?=$name?>,表示显示变量$name的值,其中的“name”由英文字母、数字和下划线组成首字母必须是英文字母或者下划线。
2、常量表示
{name}被解析成<?=name?>,表示显示常量name的值,其中的“name”由英文字母、数字和下划线组成首字母必须是英文字母或者下划线。
3、条件判断
{if *} * {else} * {else} * {/if} 或者 {if *} * {/if},其中{if *}中的*就是此判断语句的条件表达式,符合php的表达式。
{if $userid} {$username}{else} {$noname}{/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) { ?> * <? } ?>
5.模板包含
{template 'module name','file name'}例如: {template 'phpcms','header'}表示包含模板目录,phpcms目录下header.html文件
建议 if 和 loop 语法应该写在html注释符之间,这样可以避免在编辑工具中难看,例如:
这样写 if
<!--{if $a>$b}--> <!--{else}--> <!--{/if}-->
这样写 loop
<!--{loop $arr $key $val}--> <!--{/loop}-->
如果您不习惯这套语法,也可以直接在模板中书写php代码,例如<?php echo 'Hello World!';?>
二、模板制作常用变量
常用的系统变量
打开文件 ./include/common.inc.php
代码如下:
IP //取得ip
TIME //取得时间戳,格式(1229393941 )可以通过date 函数格式化一个本地时间/日期,请参考php手册
URL //取得当前浏览的url地址
SITE_URL //网站的url地址
//以上是系统常量,直接调用,如()
$MODULE //系统模块信息
[MODULE][phpcms] => Array
(
[module] => phpcms
[name] => Phpcms
[path] =>
[url] =>
[iscore] => 1
[version] => 1.0.0.0
)
$MODEL //模型信息
[MODEL] => Array
(
[1] => Array
(
[modelid] => 1
[name] => 新闻
[description] =>
[tablename] => news
[itemname] => 新闻
[itemunit] => 篇
[workflowid] => 1
[template_category] => category
[template_list] => list
[template_show] => show
[template_print] => print
[ishtml] => 1
[category_urlruleid] => 1
[show_urlruleid] => 7
[enablesearch] => 1
[ischeck] => 1
[isrelated] => 1
[disabled] => 0
[modeltype] => 0
)
)
$CATEGORY //栏目信息
[CATEGORY] => Array
(
[1] => Array
(
[catid] => 1
[module] => phpcms
[type] => 1
[modelid] => 0
[catname] => 网站介绍
[style] =>
[image] =>
[catdir] => about
[url] => /cms/phpcms_utf/about/index.html
[parentid] => 0
[arrparentid] => 0
[parentdir] =>
[child] => 1
[arrchildid] => 1,2,3,4,5
[items] => 0
[ismenu] => 0
)
)
$TYPE //类型信息
[TYPE] => Array
(
[1] => Array
(
[typeid] => 1
[module] => link
[name] => 默认分类
[style] =>
[typedir] =>
[url] =>
)
)
$AREA //地区信息
[AREA] => Array
(
[1] => Array
(
[areaid] => 1
[name] => 北京
[style] =>
[parentid] => 0
[arrparentid] => 0
[child] => 0
[arrchildid] => 1
)
)
$URLRULE //url规则信息
[URLRULE] => Array
(
[1] => {$categorydir}/index.{$fileext}|{$categorydir}/{$page}.{$fileext}
[2] => category/{$catid}.{$fileext}|category/{$catid}_{$page}.{$fileext}
[3] => {$catdir}/index.{$fileext}|{$catdir}/{$page}.{$fileext}
[4] => list.php?catid={$catid}|list.php?catid={$catid}&page={$page}
[5] => list.php?catid-{$catid}.html|list.php?catid-{$catid}/page-{$page}.html
[6] => list-{$catid}-{$page}.html
[7] => {$year}/{$month}{$day}/{$contentid}.{$fileext}|{$year}/{$month}{$day}/{$contentid}_{$page}.{$fileext}
[8] => {$categorydir}/{$year}/{$month}{$day}/{$contentid}.{$fileext}|{$categorydir}/{$year}/{$month}{$day}/{$contentid}_{$page}.{$fileext}
[9] => show/{$contentid}.{$fileext}|show/{$contentid}_{$page}.{$fileext}
[10] => show.php?contentid={$contentid}|show.php?contentid={$contentid}&page={$page}
[11] => show.php?contentid-{$contentid}.html|show.php?contentid-{$contentid}/page-{$page}.html
[12] => show-{$contentid}-1.html|show-{$contentid}-{$page}.html
[13] => {$typedir}/index.{$fileext}|{$typedir}/{$page}.{$fileext}
[14] => {$typedir}.{$fileext}|{$typedir}_{$page}.{$fileext}
[15] => {$typeid}.{$fileext}|{$typeid}_{$page}.{$fileext}
[16] => list.php?typeid={$typeid}|list.php?typeid={$typeid}&page={$page}
[17] => list.php?typeid-{typeid}.html|list.php?typeid-{typeid}/page-{$page}.html
[19] => {$typedir}/{$filename}.{$fileext}
[20] => {$typedir}_{$filename}.{$fileext}
[21] => {$filename}.{$fileext}
[22] => show.php?specialid={$specialid}
[23] => show.php?specialid-{$specialid}.html
[24] => show-{$specialid}.html
[25] => show-{$id}.html
[26] => ask/list-{$catid}-{$action}-1.html|ask/list-{$catid}-{$action}-{$page}.html
[27] => {$id}.html
[28] => show.php?id={$id}
)
$M //存储模块信息,在模块下想得到该模块的信息 可以直接使用$M