thinklc模板二次开发教程
ThinkLC分类信息系统采用PHP+MYSQL开发,仿框分类信息运营模式,非模版,非其他CMS的二次开发,全手工代码,完全独立开发。ThinkLC分类信息系统致力于地方分类信息的发展,为您提供全新地方分类信息解决方案。
模版位置
thinklc的前台模版位于“/SaxueFrame/templates/”文件夹,一个文件夹代表一个单独模版,程序执行时,会根据系统设置的模版文件夹调用具体的模版文件。
请在“系统定义”里“网站模版设置”项设置网站要使用的模版,如果网站有手机版,手机版模版和PC模版是分开的,手机版的模版文件夹也要单独定义。
模板标签标记
模板里面需要程序替换的标签都包含在边界符 {? 和 ?} 之间,比如 {?$var?},目前主要使用的有以下几种标签格式。
1.变量标签格式:{?$myvar?}
2.函数标签格式:{?function funname:var1:var2?}
3.判断标签格式:{?if ...?} ... {?elseif ...?} ... {?else?} ... {?/if?}
4.循环标签格式:{?section name=i loop=$var?} ... {?/section?}
5.区块标签格式:{?block classname=ClassName filename=FileName vars=Vars template=TemplateFile?}
6.灵动标签格式:{?eloop name=i loop=$var classname=ClassName filename=FileName vars=Vars?} ... {?/eloop?}
7.包含标签格式:{?include file=FileName?}
赋值变量形式
赋值变量形式
任何变量必须是 $ 符号开头的一个只能包含英文数字和下划线的字符串,如 {?$my_var?}。
程序:
$saxueTpl->assign('my_var', 'test string');
模板:
{?$my_var?}
输出:
test string
变量如果是数组的话,模板里面可以这样表示,如 {?$ary['key']?}、{?$ary['key1']['key2']?}。方括号里面变量要加上单引号。
另外还支持一种表示方法,上面的两个变量可写成 {?$ary.key?}、{?$ary.key1.key2?}。一般建议使用前一种,比较符合编程规范。
程序:
$ary = array('a'=>'str_a', 'b'=>'str_b', 'c'=>array('0'=>'c_0', '1'=>'c_1'));
$saxueTpl->assign('ary', $ary);
模板:
{?$ary['a']?} | {?$ary.b?} | {?$ary['c']['1']?}
输出:
str_a | str_b | c_1
如果变量是数组时候,里面的键值也是变量,则可以写成 {?$ary[$key]?}
程序:
$key = 'b';
$ary = array('a'=>'str_a', 'b'=>'str_b');
$saxueTpl->assign('key', $key);
$saxueTpl->assign('ary', $ary);
模板:
{?$ary[$key]?}
输出:
str_b
全局变量标签
以下变量在任何模版都可以调用而不需要赋值:
{?$saxue_url?} 后台设置的网站URL地址(由于ThinkLC和SaxuePower的手机版是插件形式,在手机版里此变量被自动替换成手机网站URL)
{?$saxue_murl?} 后台设置的手机网站URL地址(插件形式手机版不支持,仅SaxueArticle支持)
{?$saxue_sitename?} 后台设置的网站名称
{?$saxue_time?} 当前服务器时间的时间戳
{?$meta_keywords?} 后台设置的网站关键字(keywords)
{?$meta_description?} 后台设置的网站描述(description)
{?$saxue_admin_url?} 网站后台目录URL,无斜线,例如:http://www.171u.com/admin
{?$saxue_skin_server?} 网站风格文件服务器URL,默认是:http://www.171u.com/public
{?$saxue_skin_url?} 网站风格目录URL,PC版和手机版是不一样的,例如:http://www.171u.com/public/skin
{?$saxue_theme?} 后台设置的网站模版目录名
{?$saxue_skin?} 后台设置的网站风格目录名,{?$saxue_skin_url?} = {?$saxue_skin_server?} /{?$saxue_skin?}
未赋值变量标签
一般来说,模版里要调用变量必须在程序里先赋值,系统支持模版直接调用以下未赋值变量:
$_SERVER,$_GET,$_POST,$_REQUEST,$_ENV,$_COOKIE,$_SESSION以及已经定义的CONST常量和DEFINE常量
DEFINE常量调用方式为:{?$Saxue.常量名?},CONST常量和其他变量调用方式:{?$Saxue.request.变量名?}
程序:
$_GET['title'] = '标题';
define( "MYNAME", '名字' );
模板:
{?$Saxue.get.title?} , {?$Saxue.MYNAME?}
输出:
标题 , 名字
如果变量或常量未定义则输出空值。
本文系作者 @悬镜司 原创发布在 悬镜司。未经许可,禁止转载。