zoukankan      html  css  js  c++  java
  • DEDECMS模板制作一

    1.模板后缀应为“htm
    2.系统的模板目录在系统根目录下的templets内,下面是模板目录的文件目录结构。
    /templets·········································································
    ├─default······································································默认模板目录
    │├─images································································ 模板图片目录
    ││├─mood····························································
    ││└─photo····························································
    │├─js······································································ 模板JS脚本目录
    │└─style···································································模板CSS样式目录
    ├─lurd········································································· LURD系统模板
    ├─plus·········································································插件模板目录
    ├─system······································································系统底层模板目录
    └─wap·········································································WAP模块模板目录
    3.,默认风格是default,它表示系统默认使用
    {cmspath}/templets/default 这个文件夹的模板,如果你下载了一套新的模板,你可以不必要删除default 原
    有的文件,把下载的模板文件夹命名你想要的风格名称,如style2 等,然后在后台修改默认的模板风格
    名称为style2,那系统将使用{cmspath}/templets/style2 这文件当作默认模板,但是若你手工指定了栏目模
    板的位置,则后台参数风格的定义无效。
    4.板块(封面)模板
    指网站主页或比较重要的栏目封面频道使用的模板,一般用“index_识别ID.htm”命名,此外,用户单
    独定义的单个页面或自定义标记,也可选是否支持板块模板标记,如果支持,系统会用板块模板标记引擎
    去解析后才输出内容或生成特定的文件。
    列表模板
    指网站某个栏目的所有文章列表的模板,一般用“list_识别ID.htm” 命名。
    档案模板
    表示文档查看页的模板,如文章模板,一般用“article_识别ID.htm” 命名。
    其它模板:
    一般系统常规包含的模板有:主页模板、搜索模板、RSS、JS编译功能模板等,此外用户也可以自定
    义一个模板创建为任意文件。
    5.模板文件命名规范
    1 index_识别ID.htm:表示板块(栏目封面)模板;
    2 list_识别ID.htm:表示栏目列表模板;
    3 article_识别ID.htm:表示内容查看页(文档模板,包括专题查看页);
    4 search.htm:搜索结果列表模板;
    5 index.htm:主页模板;
    6.织梦模板引擎的代码样式
    {dede:标记名称属性='值'/}
    {dede:标记名称属性='值'}{/dede:标记名称}
    {dede:标记名称属性='值'}自定义样式模板(InnerText){/dede:标记名称}
    7.注:如果使用带底层模板的标记,必须严格用{dede:标记名称属性='值'}{/dede:标记名称} 这种格式,否
    则会报错。内置系统标记
    ①global 标记,表示获取一个外部变量,除了数据库密码之外,能调用系统的任何配置参数,形式为:
    {dede:globalname='变量名称'}{/dede:global}或{dede:globalname='变量名称'/}
    其中变量名称不能加$符号,如变量$cfg_cmspath,应该写成{dede:globalname='cfg_cmspath'/}。
    ②foreach 用来输出一个数组,形式为:
    {dede:foreacharray='数组名称'}[field:key/] [field:value/]{/dede:foreach}
    ③include 引入一个文件,形式为:
    {dede:includefile='文件名称' ismake='是否为dede板块模板(yes/no)'/}
    对文件的搜索路径为顺序为:绝对路径、include 文件夹,CMS安装目录,CMS主模板目录
    自定义函数使用{dede:标记名称属性='值' function='youfunction("参数一","参数二","@me")'/}
    其中@me用于表示当前标记的值,其它参数由你的函数决定是否存在,例如:
    {dede:fieldname='pubdate'function='strftime("%Y-%m-%d%H:%M:%S","@me")'/}
    织梦标记允许有限的编程扩展
    格式为:
    {dede:tagnamerunphp='yes'}
    $aaa=@me;
    @me="123456";
    {/dede:tagname}
    @me表示这个标记本身的值,因此标记内编程是不能使用echo之类的语句的,只能把所有返回值传递给
    @me。
    此外由于程序代码占用了底层模板InnerText的内容,因此需编程的标记只能使用默认的InnerText
    8.动态模板引擎
    用于非核心模块的动态页面或列表页的模板解析,如:member/content_list.php,通常是
    在datalistcp.class.php中使用,这个类在动态运行的情况下,由于本身是把模板编译成PHP的,因此性能上
    会优级于旧的解析类,这个方法将在未来版本中作为通用的方式。
    标记通用特性
    ①短标记
    {dede:tagname.name/}
    等同于
    {dede:tagnamename=''/}
    ②块标记
    {dede:tagname}
    循环代码
    {/dede:tagname}
    标记的具体语法及对应的PHP代码
    ①配置变量
    {dede:configname=''value=''/}
    配置变量可以在载入模板后通过$tpl->GetConfig($name) 获得,仅作为配置,不在模板中显示。
    ②短标记
    {dede:global.name/} 外部变量 等同于<?phpecho$name;?>
    {dede:var.name/} var数组 等同于<?phpecho$_vars['name'];?>
    {dede:field.name/} field数组 等同于<?phpecho$fields['name'];?>
    {dede:cfg.name/} 系统配置变量等同于<?phpecho$cfg_name;?>
    考虑到大多数情况下都会在函数或类中调用模板,因此$_vars、$fields 数组必须声明为global 数组,否
    则模板引擎无法获得它的值从而导致产生错误。
    ③自由调用块标记
    {tag:blocknamebind='GetArcList'bindtype='class'}
    循环代码
    {/tag:blockname}
    必要属性:
    bind 数据源来源函数
    bindtype 函数类型,默认是class 可选为sub
    rstype 返回结果类型,默认是array ,可选项为string
    自定义函数格式必须为function(array$atts,object$refObj,array$fields);
    在没有指定bind绑定的函数的情况下,默认指向MakePublicTag($atts,$tpl->refObj,$fields)统一管理。
    ④固定块标记
    1.datalist
    从绑定类成员函数GetArcList中获取数组并输出
    {dede:datalist}
    循环代码
    {/dede:datalist}
    遍历一个二给维数组,数据源是固定的,只适用用类调用。
    等同于
    {tag:blocknamebind='GetArcList'bindtype='class'rstype='arrayu'}
    循环代码
    {/tag:blockname}
    2.label
    从绑定函数中获取字符串值并输出
    等同于{tag:blocknamebind='func'bindtype='sub'rstype='string'/}
    3.pagelist
    从绑定类成员函数GetPageList中获取字符串值并输出
    等同于{tag:blocknamebind='GetPageList'bindtype='class'rstype='string'/}
    4.include
    {dede:includefile=''/}
    {dede:includefilename=''/}
    5.php
    {dede:php
    php代码
    /}
    {dede:php}
    php代码
    {/dede:php}
    6.If
    仅支持if ,else ,else 直接用{else}表示,但不支持{elseif}这样的语法,一般建议模板中不要使用太复杂
    的条件语法,如果确实有需要,可以直接使用php语法。
    {dede:if 条件}a-block {else}b-block{/dede:if}
    条件中允许使用var.name、global.name 、field.name、cfg.name表示相应的变量。
    如:
    {dede:iffield.id>10}
    {/dede:if}
    7.遍历一个array 数组
    {dede:array.name}
    {dede:key/}={dede:value/}
    {/dede:array}
    各种语法的具体编译后的代码,可查看dedetemplate.class.php的functionCompilerOneTag(&$cTag)。
    9.标签的分类
    每个标签都会有他的作用域,上文中我们可以了解系统文档页面可以分为:封面、列表、内容几个部
    分,每个页面的模板则会涉及到不同的标签,所以标签也有了他的作用域,我们在模板制作过程中主要根
    据模板的作用域来对模板进行如下划分:
    全局标签
    可以在前台文档任意页面使用的模板标记,例如:arclist、channel、sql、loop 等。
    列表标签
    仅在模板*_list.htm中可以使用的标签,例如:list、pagelist。
    内容标签
    仅在模板*_.article.htm中可以使用的模板标记,例如:likearticle、pagebreak等。
    模块标签
    仅在特定的模块、插件中使用的模板标记

    博主说:本博客文章来源包括转载,翻译,原创,且在文章内均有标明。鼓励原创,支持创作共享,请勿用于商业用途,转载请注明文章链接。本文链接:keinwang

    博客地址:vikibeta.com

  • 相关阅读:
    Windows消息大全
    IIS配置wap服务器
    pocket pc 2003网络配置
    真正彻底的删除硬盘数据
    js日期正则表达式
    在安装flash player 10时遇到提示“正尝试安装的adobe flash player不是最新版本”的解决方法
    VB HOOK(钩子)超级无敌详细用法
    利用VB远线程注入技术实现键盘拦截的例子(无DLL)
    C#颜色和名称对照表
    删除“拒绝访问”等无法删除的文件
  • 原文地址:https://www.cnblogs.com/kei0/p/2659730.html
Copyright © 2011-2022 走看看