关于普通模板与交互模板的常见问题

作者:  最后修改:2017年07月24日  浏览数:69
一、普通模板里可以干什么?
答:普通模板放在发布点的template目录下,请打开《泽元网站内容管理系统(ZCMS)V2.x 模板手册》,里面详细说明了可以在模板里合适的CMS标签,主要是对站点、栏目、文章的属性的读取,还有图片组、调查投票、广告等功能组件属性的读取。
如果要在普通模板里读取现有标签没有提供支持的内容,则需要自行扩展标签的功能,或写新的标签去实现。
 
二、交互模板与普通模板有什么区别?
答:放在interactive目录下的是动态模板,需要编写后台方法里为模板准备数据,后台方法的别名即为访问路径。

注意:
http://站点名/template/index.template.html
http://站点名/template/interactive/member_login.template.html
这样的路径也可以访问到模板文件,但这样模板是没有经过解析的。 
 

四、为什么在login.js里写这样的代码location='${FrontAppContext}member/login?SiteID=${Site.ID}&platformID=Html5' 
去跳转,url不对?
答:这是因为JS没有当成模板去解析占位符。模板里可以用占位,取到站点的名称、ID、URL,
但在js里是取不到了,只能模板里定义js变量,预先为外部js准备好站点的各个属性,然后外部js去访问这些变量
如,在模板里写如下代码
<script>
window.localsForLogin={
SiteID:${(Site.ID)},
SiteLink:"${Site.Link}",
FrontAppContext:"${FrontAppContext}",
Request_Referer:"${Request.Referer}"
};
</script>
<script src="login.js"></script>

然后在login.js里的写法调整为
location=localsForLogin.FrontAppContext+'member/login?SiteID='+localsForLogin.SiteID+'&platformID=Html5'