DedeCMS V5.3二次开发 希望对大家有用 一、模板篇 1.1、主要模板文件与功能说明 DedeCMS 系统的模板是非固定的,用户可以在新建栏目时可以自行选择栏目模板,官方仅 提供最基本的默认模板,即是内置系统模型的各个模板,由于 DedeCMS 支持自定义频道模 型,用户自定义新频道模型后,还需要按该模型的字段设计一套新的模板,此外,DedeCMS 也支持使用风格的形式使用模板,默认风格是 default,它表示系统默认使用 {cmspath}/templets/default 这个文件夹的模板,如果你下载了一套新的模板,你可以不必要 删除 default 原有的文件,把下载的模板文件夹命名你想要的风格名称,如 style2 等,然 后在后台修改了默认的模板风格名称为 style2 ,那系统将使用{cmspath}/templets/style2 这 文件当作默认模板,但是若你手工指定了栏目模板的位置,则后台参数风格的定义无效。 一、概念,设计和使用模板,必须要理解下面几个概念 1、板块(封面)模板: 指网站主页或比较重要的栏目封面频道使用的模板,一般用“index_识别 ID.htm”命名,此外, 用户单独定义的单个页面或自定义标记,也可选是否支持板块模板标记,如果支持,系统会 用板块模板标记引擎去解析后才输出内容或生成特定的文件。 2、列表模板: 指网站某个栏目的所有文章列表的模板,一般用 “list_识别 ID.htm” 命名。 3、档案模板: 表示文档查看页的模板,如文章模板,一般用 “article_识别 ID.htm” 命名。 4、其它模板: 一般系统常规包含的模板有:主页模板、搜索模板、RSS、JS编译功能模板等,此外用 户也可以自定义一个模板创建为任意文件。 二、 命名,DedeCMS 模板默认命名规则如下 1、模板保存位置: 模板目录:{cmspath} /templets/样式名称(英文,默认为 default,其中 system为系统底层模 板,plus 为插件使用的模板)/具体功能模板文件} 2、 模板文件命名规范: (1)index_识别 ID.htm: 表示板块(栏目封面)模板; (2)list_识别 ID.htm: 表示栏目列表模板; (3)article_识别 ID.htm: 表示内容查看页(文档模板,包括专题查看页); (4)search.htm: 搜索结果列表模板; (5)index.htm: 主页模板; 注解:[识别 ID]可以在“频道模型管理”的地方获得,当然,你也可以在“频道模型管理”的地 方确定某个频道的模 板命名。 例:list_image.htm 表示是就是内容类型为图片集的栏目默认列表模板。 article_article.htm 表示的是文章查看页模板。 三、其它模板说明 1、默认底层模板 位置: {cmspath}/templets/system 功能:在没有指定标记的默认底层模板的时候,系统将自动调用这个文件夹的相应文件作为 底 层模板。 2、插件目录模板 位置: {cmspath}/templets/plus 功能:评论、友情链接、RSS 地图等模板。 3、会员后台模板 位置: {cmspath}/member/templets 功能:会员后台的模板。 四、二次开发 在 V5.3中已经将标签开发分离出来,您可以通过后台[模板]-[标签代码管理],点击“新增加 一个新的标签”来创建一个自己的标签,标签文件名为:标签名.lib.php 接口函数定义为:function lib_标签名(&$ctag,&$refObj),返回值是结果字符串 修改标签时为了防止出错,您也可以修改它的名称(同时修改文件名和函数名),这样等同继 承了原来标签的代码建立一个新 的标签。 1.2、模板标签语法简介 织梦的模板标签类似于 XML 格式,所有的模板都含有定界符,默认情况下是{dede:*}和 {/dede:*},“*”代表模板标记名称。 一般情况下{dede:*}和{/dede:*}是成对出现的,例如: 例1-1: {dede:arclist flag='h' limit='0,1'}<br /> <h2><a href="[field:arcurl/]">[field:title/]</a></h2><br /> <p>[field:description/]...<a href="[field:arcurl/]">[查看全文]</a></p><br /> {/dede:arclist} 上面的{dede:arclist}和{/dede:arclist}成对出现在模板文件中,并且在两个标签当中包含 了底层模板(innertext)。 底层模板(Innertext),底层模板实际上就是对于有多条记录的模板输出,用户手工去指 定单个记录 的样式。 标签还有一类出现形式是{dede:*/},通常以这种形式出现都是输出变量、或者不含底层 模板的内容。 例如:1-2 {dede:global.cfg_webname/} {dede:arclist flag='h' limit='0,1'/} 如果用户没有指定单个记录的样式,系统部分标签都含有默认的底层模板,具体可以查 看{cmapath}/templets/system/文件夹下面的文件,这里面都是系统的底层模板文件。 注释 织梦标签的模板注释非常灵活,可以通过标签后面的 commet 属性进 行赋值。 例1-3: 1 {dede:arclist flag='h' limit='0,1' commet='调用头条的第一篇内容'}<br /> 2 <h2><a href="[field:arcurl commet="这是文章链接标签"/]">[field:titlecommet="这 是文章标题标签"/]</a></h2><br /> 3 <p>[field:description commet="这是摘要标签"/]...
热门源码