在模板制作中,经常遇到一些网站标签在多个页面调用的问题,通常情况下我们可以通过模板的{dede:include file='文件名称' ismake='是否为dede板块模板(yes/no)'/}标签导入一个文件解决,在DedeCMS的5.3版本默认模板中的head.htm就如通过这样的标记引入到其他模板文件,然后编译成页面头部信息的,但这样以文件形式引入的方式并不适用于少量内容的全局显示,例如你可能有一个栏目,这个栏目需要在全局进行显示,并且这个栏目的调用信息会经常进行改变,但只涉及到一段代码,如果使用{dede:include/}是很难实现的,这时候就需要自定义宏标记来解决这种灵活调用的问题。其实织梦的广告插件也是宏标记的另一种表现形式。
在学习自定义宏标记之前,我们先查阅织梦帮助中心模板标签部分,关于自定义宏标记的使用介绍:
以下为引用的内容:
标签名称:mytag
功能说明:用于获取自定义宏标记的内容
适用范围:全局使用
基本语法: {dede:mytag typeid='0' name=''/}
参数说明:
name = ’’ 标记名称,该项是必须的属性,以下 2、3是可选属性;
ismake = ’yes|no’ 默认是 no 表示设定的纯HTML代码, yes 表示含板块标记的代码;
typeid = ‘’ 表示所属栏目的ID,默认为 0 ,表示所有栏目通用的显示内容,在列表和文档模板中,typeid默认是这个列表或文档本身的栏目ID。
使用自定义宏标记主要有3个步骤:生成标签,加入模板,内容生成,下面我们从这几个过程来讲解如何使用这个标记。
生成标签
新版本V5.3中增加了自定义宏标记可以自动生成并加入织梦标签,这个类似于模板碎片功能。第一种就是直接添加标签,可以点击[模板]-[自定义宏标记]进入自定义宏标记管理页面,添加一个标签。
[图1]
这里需要介绍几个参数:
所属栏目:如果不选择则在所有的栏目中进行显示,如果选择了某个栏目,则只在自定义宏标记只在当前选定的栏目中进行显示
标记名称:用于区分不同标记的名称,建议使用英文和数字的集合
正常显示内容:标签在解析时候被替换的内容,可以为纯文本、HTML、甚至是织梦的标签
如果选择了时效也可以控制标签的显示时间,这样便于统一对这些内容进行管理,非常方便。
完成添加后我们便得到相应的标签,例如我们自定义标签名为diyinfo,则我们的标签名称就为{dede:mytag name='diyinfo'},如果标签内为HTML或者纯文本内容可以设置ismake属性为no,如果加入了织梦的标签,则将ismake属性设置为yes。
第二种方法就是在系统[模板]-[智能标记向导]中生成一个标签,然后保存为自定义宏标记,保存的默认文件名为auto_x(x代表数字,从1开始),这样获取他的标签代码为{dede:mytag name='auto_1' ismake='yes'/}。
当然自定义宏标记不但但可以通过织梦标签的形式进行调用,还可以通过js的方式进行调用,在自定义标签管理页面,每个标签后面有一个对应的js生成向导,用户可以生成js代码插入到网站模板中。
加入模板
自定义宏标记可以任意加入到模板中的首页、频道页、列表页、内容页中,相对的模板文件路径在织梦帮助中心的《主要模板文件及功能说明》已经列出,修改时候可以参考加入。
内容生成
如果自定义宏标记使用的是织梦标签加入到模板中,需要定期对网站所有内容进行一次更新,但如果您在模板中使用了js代码,只需要生成一次就可以一直进行使用。
以下为引用的内容:
说明:织梦标签和js是自定义标记的两种调用形式,前者比较适合网站定期进行全站更新,并且生成内容直接嵌套到生成页面中,后者比较适合网站少量更新,但更加方便管理。这里广告插件其实是自定义宏标记的一种扩展,调用形式有些相同。
至此,我们完成了自定义宏标记的学习,当然自定义宏标记还有很多方面的应用,期待更多的织梦用户进行发觉。