dede插件模板如何用dede标签调用?

99ANYc3cd6
预计阅读时长 20 分钟
位置: 首页 DEDE建站 正文

DedeCMS的插件系统非常灵活,其模板机制与主站模板无缝集成,理解其工作原理是关键。

dede插件模版 使用dede标签
(图片来源网络,侵删)

核心原理:模板文件命名与路径

DedeCMS的插件模板,其核心在于命名规则路径,当你调用一个插件的某个功能(比如一个自定义表单、一个自定义的列表页面)时,DedeCMS会根据特定的规则去寻找对应的模板文件。

基本规则:

  1. 路径:插件模板文件通常存放在 /templets/plus/ 目录下,这是DedeCMS预设的插件模板目录。
  2. 命名:模板文件名通常与插件的功能点或自定义标记的名称相关。

插件模板的类型与使用场景

插件模板主要分为两大类:

  1. 功能页面模板:为插件提供的某个具体功能(如一个表单提交页、一个列表展示页、一个内容详情页)创建的独立HTML模板。
  2. 自定义标记模板:通过 {dede:mytag} 这样的自定义标签,在任意页面(包括主站文章页、首页等)中调用插件功能,并为这个调用指定一个模板。

如何创建和使用插件模板(以自定义表单为例)

假设我们开发了一个“用户反馈”插件,需要在前台展示一个反馈表单。

dede插件模版 使用dede标签
(图片来源网络,侵删)

创建一个独立的反馈页面模板

目标:创建一个 feedback.htm 文件,用户访问 plus/feedback.php 时,系统会自动加载这个模板。

步骤:

  1. 创建模板文件/templets/plus/ 目录下,创建一个名为 feedback.htm 的文件。

  2. 编写模板内容feedback.htm 中,你可以像编写普通主页模板一样,使用Dede的各种标签。

    dede插件模版 使用dede标签
    (图片来源网络,侵删)
    <!DOCTYPE html>
    <html>
    <head>
        <meta charset="utf-8">
        <title>用户反馈 - {dede:global.cfg_webname/}</title>
        <meta name="description" content="{dede:global.cfg_description/}">
        <link rel="stylesheet" href="{dede:global.cfg_templets_skin/}/style/css/style.css">
    </head>
    <body>
        {dede:include filename="head.htm"/} <!-- 引入头部 -->
        <div class="main-content">
            <h1>用户反馈</h1>
            <p>感谢您的关注,如有任何问题或建议,请填写以下表单:</p>
            <!-- 这是关键部分,调用插件生成的表单 -->
            {dede:feedback name='feedback'/}
        </div>
        {dede:include filename="footer.htm"/} <!-- 引入底部 -->
    </body>
    </html>
  3. 访问页面 你可以通过访问 你的域名/plus/feedback.php 来查看这个页面,系统会自动找到 feedback.htm 并渲染它。

核心标签解析:

  • {dede:include filename="head.htm"/}: 引入公共头部模板。{dede:global.cfg_templets_skin/} 用来获取当前模板的路径,使资源引用更灵活。
  • {dede:feedback name='feedback'/}: 这是插件的核心调用标签name='feedback' 告诉DedeCMS去调用名为 feedback 的插件功能,这个标签的具体行为(生成表单)由插件开发者定义,但它的输出内容会被放置在 {dede:feedback} 标签的位置。

使用自定义标记在任意位置调用插件功能

目标:我们不想创建一个独立页面,而是想在网站首页的某个侧边栏直接显示一个“快速反馈”表单。

步骤:

  1. 确保插件已注册自定义标记 插件开发者需要在插件中注册一个自定义标记,注册一个名为 myfeedback 的标记。

  2. 创建自定义标记的模板/templets/plus/ 目录下,创建一个与标记名对应的模板文件,规则通常是 标记名.htm,所以我们要创建 myfeedback.htm

    <!-- /templets/plus/myfeedback.htm -->
    <style>
        .quick-feedback { border: 1px solid #ddd; padding: 10px; margin: 10px 0; background: #f9f9f9; }
        .quick-feedback input, .quick-feedback textarea { width: 100%; margin-bottom: 5px; }
    </style>
    <div class="quick-feedback">
        <h3>快速反馈</h3>
        <!-- 调用插件核心逻辑,并指定一个简化的表单模板 -->
        {dede:feedback name='feedback' formid='quick'/}
    </div>

    注意:这里的 {dede:feedback name='feedback' formid='quick'/} 是插件内部逻辑,它可能会根据 formid 参数加载不同的表单字段,我们重点看外层的 myfeedback.htm 模板。

  3. 在首页模板中调用 打开你的首页模板文件,/templets/default/index.htm,在侧边栏的相应位置加入自定义标签。

    <!-- 在 /templets/default/index.htm 的侧边栏部分 -->
    <div class="sidebar">
        {dede:mytag name='feedback'/}
    </div>
  4. 访问首页 刷新首页,你就能在侧边栏看到由 myfeedback.htm 模板渲染出的“快速反馈”表单了。

核心标签解析:

  • {dede:mytag name='feedback'/}: 这是自定义标记的调用方式。
    • name='feedback' 对应插件中注册的标记名称。
    • 当DedeCMS解析这个标签时,它会自动去 /templets/plus/ 目录下寻找 feedback.htm 作为模板。
    • 如果你想指定一个不同的模板文件,可以使用 tempid 属性(如果插件支持),或者直接使用文件名:{dede:mytag name='feedback' template='myfeedback.htm'/},但更常见的做法是直接创建与标记名同名的模板文件。

常用Dede标签在插件模板中的使用

在插件模板中,你可以使用所有DedeCMS主站模板支持的标签,让插件内容与主站风格保持一致。

标签类别 标签名称 作用 示例
全局变量 global 获取系统全局配置 {dede:global.cfg_webname/} (网站名称)
{dede:global.cfg_templets_skin/} (当前模板目录)
栏目列表 channel 获取栏目列表 {dede:channel type='top' row='8'}<a href='[field:typelink/]'>[field:typename/]</a>{/dede:channel} (调用顶级栏目)
文章列表 arclist 获取文章列表 {dede:arclist titlelen='30' row='10' typeid='1'}<li><a href='[field:arcurl/]'>[field:title/]</a></li>{/dede:arclist} (调用栏目ID为1的最新10篇文章,标题30字)
field 在文章详情页获取字段 {dede:field.title/} (文章标题)
{dede:field.body/} (文章正文)
{dede:field.pubdate function='MyDate('Y-m-d H:i',@me)'/} (发布日期,使用函数格式化)
分页 pagelist 生成分页代码 {dede:pagelist listsize='4' listitem='info,index,end,pre,next,pageno'/}
循环 foreach 遍历数组或对象 {dede:foreach item='li' from='@arr'}[li]{/dede:foreach}
常量/变量 var 获取PHP变量 {dede:var.name/} (获取PHP中赋值的 $GLOBALS['var']['name'])

最佳实践与注意事项

  1. 路径问题

    • 在插件模板中引用CSS、JS、图片等静态资源时,强烈推荐使用 {dede:global.cfg_templets_skin/} 来构建绝对路径,避免路径错误。
      <link rel="stylesheet" href="{dede:global.cfg_templets_skin/}/css/myplugin.css">
      <img src="{dede:global.cfg_templets_skin/}/images/logo.png" alt="logo">
  2. 与主站模板分离

    • 为了避免升级模板时覆盖插件模板,建议在 /templets/plus/ 下为你的插件创建一个专属文件夹,/templets/plus/myplugin/,然后将所有插件模板文件放在里面。
    • 调用时,通过 template 属性指定路径:{dede:mytag name='feedback' template='myplugin/feedback.htm'/}
  3. 理解标签属性

    • 仔细阅读插件的文档,了解其自定义标记支持哪些属性(如 row, typeid, titlelen, cacheid 等),这些属性能让你更灵活地控制输出内容。
  4. 缓存机制

    • DedeCMS默认会对页面进行缓存,如果你在插件模板中修改了内容但看不到变化,可以尝试在后台“系统” -> “性能选项”中清空所有缓存,或者给标签加上 cache='no' 属性(如果支持)来禁用缓存。
  5. PHP代码

    • 在模板中写PHP代码是最后的选择,可以使用 {dede:php}...{/dede:php} 标签,但这会破坏模板的易用性,应尽量避免,尽量将逻辑放在插件文件中。

创建和使用Dede插件模板的核心流程如下:

  1. 确定模板类型:是需要一个独立的功能页面,还是一个可嵌入的自定义标记块。
  2. 创建模板文件
    • 独立页面:在 /templets/plus/ 下创建 功能名.htm (如 feedback.htm)。
    • 自定义标记:在 /templets/plus/ 下创建 标记名.htm (如 myfeedback.htm)。
  3. 编写模板内容:在HTML中嵌入Dede标签来调用数据、引入公共部分,并使用 {dede:插件标记名/} 来调用插件的核心功能。
  4. 在相应位置调用
    • 独立页面:通过 plus/功能名.php 访问。
    • 自定义标记:在任意模板文件中使用 {dede:标记名/} 调用。
  5. 注意路径和缓存:使用全局变量构建路径,必要时清空缓存。

掌握了这套流程,你就可以为任何DedeCMS插件创建出功能强大且与网站风格完美融合的模板了。

-- 展开阅读全文 --
头像
免费响应式HTML5织梦源码,真的能免费下载使用吗?
« 上一篇 2025-12-19
织梦CMS弹出式注册登录模板如何适配移动端?
下一篇 » 2025-12-19

相关文章

取消
微信二维码
支付宝二维码

目录[+]