欢迎各位兄弟 发布技术文章

这里的技术是共享的

You are here

自定义宏标记在dedecms中的应用

shiping1 的头像
自定义宏标记在dedecms中的应用:

自定义宏标记的作用:
  可以将模板中多次出现的相同元素用一个自定义标记表示出来,从而达到,一次更改,全局更换的效果。辅助插件的广告管理也有相似的效果。

适用范围:
  网页模板中多次出现的相同元素,例如:网站的导航条、网站的站点公告、网站的底部信息等,在我之前发布的几套模板中都运用到了自定义宏标记。   

自定义宏标记的调用办法:
  {dede:mytag name='标记名称' ismake='是否含板块代码(yes 或 no)' typeid='栏目ID'/} 
1、name 标记名称,该项是必须的属性,以下 2、3是可选属性;
2、ismake 默认是 no 表示设定的纯HTML代码, yes 表示含板块标记的代码;
3、typeid 表示所属栏目的ID,默认为 0 ,表示所有栏目通用的显示内容,在列表和文档模板中,typeid默认是这个列表或文档本身的栏目ID。

下面来通过一个实例进行说明:
我有一个网站模板底部信息,其长度已经超出了系统可以设置的网站版权(cfg_powerby)的长度,但是我想实现一段代码,可以在不同模板(页面)中显示相同内容的效果。
我们就可以使用自定义宏标记来实现这个效果
如图进行设置: 
\

然后我们回到模板制作的界面,将模板中的{dede:global name='cfg_powerby'/},替换为我们设置的自定义宏标记:
{dede:mytag name='footer'/},更新下,是不是已经变为我们设置的标记内容了啊。

当然,自定义宏标记里面也可以加入dedecms的标记内容,适合当前栏目的显示内容,不过需要在调用代码中将ismake设为yes才可以,也可以通过设置typeid使自定义宏标记在特定栏目中显示。

  有人会问,我已经生成了很多页面了,现在想更改了一下自定义宏标记的内容,那岂不是要更改后重新再生成一遍,那样就不方便了。
  其实柏拉图早就考虑到这点,在自定义宏标记中可以使用javascript调用,这样以来,只要改变一次就可以实现全局改变的效果。
  具体操作:进入自定义标记管理,在相对应的标记管理项目中有JS调用这个选项,单击,dedecms自动生成调用该ID标记的js代码,例如<script src='/plus/mytag_js.php?aid=1' language='javascript'></script>
我们将刚才的{dede:mytag name='footer'/}用js替换掉,更新下,是不是还是原来的效果,我们再修改下标记的内容,怎么样?全局发生了变化。
  怎么样,自定义宏标记内容强大吧,相信他的引入会给你的模板制作带来更好的效果。

来自  
http://www.mianfeimoban.com/zhimengcms_jiaocheng/2159.html



DedeCMS自定义宏标记教程

自定义宏标记用于多个页面中需要调用相同的内容 便于同时更改多个页面的同一处内容 如:页头调用、页尾调用、导航调用等 包括现在很多朋友提到的dede现在加统计代码要分别在首页、列表页、内容页分别来加 我们用自定义宏标记就可以解决这个问题了

工具/原料

  • DedeCMS

步骤/方法

  1. 1、调用方法(请参考dede模板设计帮助文档)
    【Mytag 标记】
    功能说明:用于获取自定义宏标记的内容
    适用范围:封面模板、列表模板、文档模板
    (1)基本语法
    {dede:mytag typeid='栏目ID' name='标记名称' ismake=''/}
    (2)属性
    [1] typeid = '数字' 表示栏目ID,默认为 0,在没有设定的栏目没有定义这个名称的标记,会按如下搜索方式来搜索“先向上查找父栏目 -> 通用标记(typeid=0)的同名标记”。
    [2] name = '' 标记名称。
    [3] ismake = yes|no 默认为 no 表示mytag里的内容不包含其它封面模板的标记,yes则表示标记内容含有其它封面模板标记。
    以上三个属性,name为必须存在的属性,typeid和ismake为可选的属性(非必须)
    typeid属性中,默认值为0,代表所有的栏目都通用的ID,在列表和文档模板中typeid默认为栏目和文档本身所在的栏目ID
    ismake属性中,默认为no,表示代码中只是HTML代码而已,并没有包含其他标记的代码
  2. 2、使用说明
    在织梦后台进入:模板管理---自定义宏标记 显示如下图点“增加一个标记”,进入标记增加界面,如图所属栏目:
    这里可以在下拉菜单中选择你需要用到此标记的栏目,默认为所有栏目
    标记名称:
    header 这个“header”即相当于调用标签中的name属性,即 name="header"
    时间限制:
    永不过期 (除非更改否则一直有效)
    开始时间和结束时间是在设置“在设置时间内有效”的时候才用的到的
    如果使用永不过期则不用理会
    正常显示内容:
    头部需要调用的代码部分都放在这里,本教程举例为头部调用一个链接
    过期显示内容:
    这个也是在设置时间内有效才用的到的部分
    以上内容设置完毕点击提交回到宏标记管理的页面,右侧有三个选项,如图如果您调用宏标记的页面不是很多,可以直接使用{dede:mytag name='header'/}放到模板相应位置进行调用
    注意:修改过模板之后要重新生成下HTML页面
    如果您需要调用的页面已经有很多,为了避免繁重的重新生成页面的精力
    那么可以在上面的管理选项中使用JS调用
    直接点击“JS调用”,系统会生成一段JS代码给你,下面有预览效果
    只需直接将这段JS代码放到模板中相应位置即可
    如本教程的例图:
    DedeCMS自定义宏标记教程
    DedeCMS自定义宏标记教程
    DedeCMS自定义宏标记教程
    DedeCMS自定义宏标记教程
  3. 3
    3、最后关于ismake=‘yes’的说明:
    自定义宏标记中并非只能放置简单的HTML代码
    这其中也可以使用带有织梦标记的代码
    如果您的自定义宏标记调用的内容中包含织梦的其他标记,只需要把值设为yes即可

    来自  http://jingyan.baidu.com/article/36d6ed1f0846d41bcf488304.html




普通分类: