BMForum 模版语法详解
导航: 上一页
调用模版[ ]
当开发插件的时候,需要用到模版引擎,可以用下面的方法调用:
- 首先引入模版引擎文件
include_once("include/template.php");
- 然后,执行模版解析函数
$template_name = newtemplate("myplugins_index", $temfilename, $styleidcode, $lang_zone, 4, 1);
其中, myplugins_index 为插件模版的文件名,需要将该文件放置于
plugins/templates/bsd01/
目录下。 $template_name 将获得函数返回的用于调用的模版缓存
$temfilename 代表模版名称,例如 bsd01,可以更改为插件名
$styleidcode 是风格ID,一般情况下无需改动
数字 4 表示 if、loop 等逻辑语句允许的循环次数
数字 1 表示这是插件模版,当没有设置为 1 的时候,将不再调用 plugins/templates/bsd01/ 下的模版,而是 newtem/bsd01/ 的模版
注:如果模版有需要导入的永久不变的变量(如语言包)需要在解析模版之前放入下面的类似语句:
$lang_zone = array("bm_skin"=>$bm_skin, "otherimages"=>$otherimages);
其中的变量可以是数组
- 在执行完上述操作后,在程序的最后需要设置输出代码:
require($template_name);
模版语法[ ]
标准 HTML/XHTML[ ]
一般情况下,模版文件内容只要是HTML、XHTML 等任何代码,即可被输出成功
一般调用语法[ ]
当在一个模版中,需要调用另外的模版,请使用下面的语句
<!--{template 模版名}-->
例如,调用 myplugin_header 模版:
<!--{template myplugin_header}-->
如果要调用论坛的 header 或 footer:
<!--{template header}-->
或
<!--{template footer}-->
执行 PHP 语句[ ]
当有特殊需要的时候,可以在模版中执行PHP语句,例如:
<!--{eval $abc=1; echo $abc;}-->
该示例将赋值 $abc = 1,同时输出 $abc。
输出变量、常量[ ]
在模版中,有多种方法输出变量、常量,如:
{echo $abc}
也可直接输入变量
$abc
逻辑判断语句[ ]
在模版中,可以像在 PHP 内一样,执行逻辑判断语句。
示例1:
<!--{if $uvw == 1}--> uvw <!--{/if}-->
示例2:
<!--{if $hello == 1 && $abc == 1}--> Hello is one <!--{if $abc == 1}--> abc <!--{else}--> cde <!--{/if}--> <!--{elseif $hello == 2}--> Hello is two <!--{/if}-->
上述两个例子中,完整地体现了一个判断过程。
注:逻辑语句的嵌套层数根据程序的设置而定
数组遍历函数[ ]
在 BMForum 中,遍历数组需要使用 loop 语句,效果类似于 PHP 的 foreach 函数,如:
示例1:
<!--{eval $array = array(1,2,3,4,5);}--> //建立数组并赋值 <!--{loop $array $value}--> 数组 array 的值现在是: {echo $value} <br/> <!--{/loop}-->
该语句等同于 PHP 中的:
if(is_array($array)){ foreach ($array as $value) { echo "数组 array 的值现在是: $value"; echo "<br/>"; } }
示例2:
<!--{eval $array = array('a'=>1,'b'=>2,'c'=>3,'d'=>4,'e'=>5);}--> //建立数组并赋值 <!--{loop $array $key $value}--> 数组 array 的值现在是: {echo $value} 键为 {echo $key} <br/> <!--{/loop}-->
该语句等同于 PHP 中的:
if(is_array($array)){ foreach ($array as $key => $value) { echo "数组 array 的值现在是: $value 键为 $key"; echo "<br/>"; } }
注:遍历语句的嵌套层数根据程序的设置而定