CmsTop/模板语法
来自站长百科
- {$variable}
输出该变量的值,常用于使用系统变量或常量时,如:
网站名称 {$SYSTEM[sitename]} 网站 URL {WWW_URL}
- 常用的系统常量
- {ROOT_PATH} 网站根目录,即 ./ 目录
- {WWW_PATH} 网站公网访问根目录,在 CmsTop 大众版中为 ./ 目录
- {WWW_URL} 网站主站的网址
- {APP_URL} 动态应用的网址
- {IMG_URL} 公用图片、样式表、脚本的网址
- {UPLOAD_URL} 附件网址(所有上传的文件)
- {WAP_URL} Wap 网址
- {SPACE_URL} 专栏网址
- 常用的系统变量:
- {{$CONFIG[charset]} 网站编码
- {{$SYSTEM[sitename]} 网站名称
- {{$SYSTEM[attachexts]} 允许上传的附件类型
- {{$SYSTEM[closed]} 网站是否已关闭
- {{$SYSTEM[closedreason]} 网站关闭原因
- {{$SYSTEM[listpages]} 列表页生成页数(生成列表页时只生成前 N 页以加快生成速度)
- {{$SYSTEM[pagesize]} 列表页默认分页数
- {{$SYSTEM[seodescription]} 网站 SEO 描述
- {{$SYSTEM[seokeywords]} 网站 SEO 关键词
- {{$SYSTEM[seotitle]} 网站 SEO 附加标题
- {{$SYSTEM[statcode]} 访问统计代码
- {template 'system/header.html'}
将指定路径的模板文件包含并显示出来,起始位置为当前设定的模板目录
默认为 ./cmstop/templates/default/
- {if} / {else} / {elseif} / {/if}
流程控制语句,常用于需要根据特殊的条件显示不同内容的情形。
- {loop $data $r} / {loop $data $n $r}
循环语句,常用于内容列表,将多条内容以相同的 HTML 结构显示出来,其中的 $n 是当前 $r 这条记录的索引值。
需要注意的是,$n 并不总是 0, 1, 2 这样的序列值。比如用在循环栏目列表时:
{loop subcategory() $n $r}
这里的 $n 就是当前栏目的栏目 ID,即 catid,而不是常见的 0, 1, 2,如果改为这样子就更为清晰:
{loop subcategory() $catid $category}
因此,如果要在自定义的 {loop} 循环中使用索引值,最安全的方式是自定义一个索引:
<?php $index = 1; // 根据需要定义初始值为 0 或 1?> {loop subcategory() $n $r} ... 这里是模板内容,可以使用 {$index} 作为当前索引 ... <?php $index++; ?> {/loop}
- {table_name(primary_key_value)->column_name}
从 table_name 表里面获得主键值为 primary_key_value 记录的 column_name 列的值,举例来说:
{loop $data $n $r} 栏目名称:{category($r[catid])->name} {/loop}
这样子就可以获得当前记录的栏目名称,举一反三,还可以组合出来更多有趣的用法。
需要注意的是,这个语法结构不能被破坏,也就是说,不允许在 {table_name(primary_key_value)->column_name} 前后加上函数来处理它,那样就破坏了这个语法结构。如果确实有需要来处理,可以使用下文介绍的 table 函数。
- {function_name($variable, ...)}
此语法会被解析为对应的 PHP 函数,并将结果显示出来,所以你可以使用:
{nl2br($r[content])}
这种方式把内容处理后输出出来。 当然,类似 {str_cut(description($r[contentid]), 100, )} 这种操作也不在话下。
- 原生 PHP 语法
如果这些还不能满足要求... 可以使用原生的 PHP 语句,如:
<?php echo 'hello, world'; ?>