`

DZ插件制作简易入门教程(自学手记)第一篇

 
阅读更多

看了Maple-x和泡哥写的那两篇插件制作教程,还是让我如云里雾里。后经仔细研究插件实例,总算有所收获,但弯路走了不少。为避免后来者重蹈覆辙,在此总结成文,算做个笔记好了。

就用最经典的项目名称Hello Word!来讲。
效果图:
2009-04-19_143106.jpg



第一步 建立相关文件及目录结构
1.1 随便在那里建立一个新文件夹。

1.2 在建立好的新文件夹里按下图结构和名称建立子目录和文件。
2009-04-19_111720.jpg
  *文件先用记事本建立空的文本文件然后改名就可以了,以后再编辑这些文件的内容。
  *改名的时候注意调整系统的文件夹选项不要隐藏文件扩展名。

第二步 在后台系统设置里添加插件的相关信息
2.1 进后台->扩展->论坛插件->管理,按图填写相关内容并提交。
2009-04-19_102021.jpg
  *唯一标识符不要有空格和标点符号。

2.2 勾上“可用”后再提交一次,然后点最后边的“详情”进入下一步。
2009-04-19_102132.jpg
2.3 设置插件详细信息,设置好后点击提交,然后点击本页头部的“模块”进入下一步。
2009-04-19_102328.jpg
  *版权信息填你自己想填的内容^_^,不一定要跟我的一样
  *插件目录的名字要与第一步里建立的文件夹中/plugins/下的文件夹名称一致,本例中为helloworld。
  *插件目录末尾要加“/”,参照上图。
  *因为暂时没有用到数据库,所以插件数据表为空。
  *插件描述随便填不填、填什么都可以。

2.4 设置模块信息,提交。
2009-04-19_102521.jpg
  *程序模块要与第一步里建立的文件夹中/plugins/helloworld/下的*.inc.php文件的名称一致。本例中为helloworld。
  *菜单名称就是将来在论坛页面上显示的标签的名字,一定要填,不然标签显示不出来。
  *模块类型有好几种,详细介绍请参见DZ论坛用户手册。本例中选“前台调用(前台菜单)”。
  *使用等级即该模块(或“页面”)的访问权限,自酌。

2.5 如果一切顺利,现在插件管理里面就出现设定好的插件了。
2009-04-19_102634.jpg
  *如果要调整什么参数,点“管理”->相应插件的“详细”。

第三步 编辑插件文件内容,实现插件功能
3.1 编辑模版文件hw_helloworld.htm的内容并保存,参考如下:

  1. {template header}

  2. <div id="nav"><a href="$indexname">$bbname</a></div>
  3. <div style="width:960px;background-color:#FFF;">
  4. <div class="mainbox">

  5. <table align="center" cellpadding="5">
  6. <tr>
  7. <td bgcolor="#999999">打个招呼~</td>
  8. </tr>
  9. <tr>
  10. <td height="265"><div align="center">$say_string</div></td>
  11. </tr>
  12. </table>


  13. </div></div>

  14. {template footer}
复制代码

  *模版文件是插件全部的样子或界面,也就是你的插件将以什么样的面貌呈现在用户的浏览器中。
  *模版文件实际上是插件程序模块的一部分,通过在程序模块(*.inc.php)中include()发挥作用。单独把模版从程序模块中分离出来是为了方便应用论坛的样式。如果对编程比较熟悉的话,这个和C++中.form文件和.CPP文件的关系有点类似。
  *本例中,模版文件hw_helloworld.htm首行{template header}的和最后一行的{template footer},分别引用了论坛的header和footer模版,代码第3行加入了导航条,也就是说,插件将在论坛页面中间部分出现,好像“插”在论坛里一样^_^。如果删除{template header}和{template footer},则页面将以很独立的面貌呈现,好像跟论坛一点关系也没有一样。
  *本例的模版文件包含了最基本元素,替换里面表格的内容就可以做出想要的插件界面。
  *模版文件后缀名是.htm,所以可以像普通htm页面一样用javascript来实现一些页面元素的动态化。如果在里面用<? ... ?>是不能被解释执行的,因为前面说过,模版文件要发挥作用,要在程序模块文件中include(),在PHP程序段里再引用PHP能不出错吗?也正是因为这一点,在模版文件里可以不用加<?...?>标记直接引用PHP的变量值。这其实就够了,因为模版文件其实就是用来处理表单提交和数据反馈用的,这也是PHP程序强大的地方。
  *基于上一点,我们在第13行,引入一个$say_string,具体见下一步。

3.2 编辑插件程序模块文件helloworld.inc.php并保存,参考内容:

  1. <?
  2. if(!defined('IN_DISCUZ')) {
  3. exit('Access Denied');
  4. }

  5. if(!$discuz_uid) {
  6. showmessage('not_loggedin', null, 'NOPERM');
  7. }

  8. include DISCUZ_ROOT.'./forumdata/cache/plugin_'.$identifier.'.php';

  9. $say_string = 'Hello World!' ;

  10. include template('hw_helloworld');

  11. ?>
复制代码

  *第1行到第8行是与论坛安全相关的语句,一定要写!DZ论坛的插件没有不写这几句的。
  *第10行是载入插件页面缓存,提高执行效率。
  *第12行,定义一个$say_string字符串变量,赋值“Hello World!”,插件运行以后,这个值就通过模版文件显示出来了。
  *第14行,将模版文件包含进来,让程序模块这个灵魂能有一个躯壳^_^。为了防止一些莫名其妙的错误,习惯性的将模版的include()放在最后。
  *程序模块文件helloworld.inc.php是插件程序的起点,调用它的是论坛的plugin.php。打个比方,plugin.php是传送带,只要论坛在运行,这个传送带就在转。我们只是把我们的插件放到了这个传送带上一起运转。

3.3 保存好所有文件,将plugins和templates用FTP上传,或直接Copy到论坛文件根目录下。

3.4 确保在后台 界面->界面设置->导航栏 启用了“插件”, 在 扩展->论坛插件->管理 启用了对应插件,清除一下缓存,刷新论坛首页,就能看到结果了。


最后,总结一下我理解的DZ论坛插件的运行机理与文件间逻辑关系图:

2009-04-19_145033.jpg


模版文件我用了前缀hw_是为了以后扩展模版,因为可以通过程序模块根据条件装载不同的模版,这个以后再说吧。

今天就先写到这里。

分享到:
评论

相关推荐

    DZ模板制作教程 DZ模板制作教程下载

    【DZ模板制作教程】 DZ模板制作教程主要针对Discuz!论坛系统,教你如何创建和自定义模板,以满足个性化需求。Discuz!是一款流行的社区论坛软件,其模板制作涉及网页设计、HTML、CSS等基础知识。以下是详细的制作...

    discuz论坛插件DZ插件 dzapp_jifen

    《Discuz论坛插件DZ插件 dzapp_jifen详解》 Discuz! 是一款广泛应用于互联网社区建设的开源论坛软件,以其强大的功能和灵活的扩展性受到众多网站管理员的青睐。DZ插件,全称dzapp_jifen,是Discuz! 平台上的一款...

    DZ插件 签到插件

    《DZ插件:签到插件的使用与解析》 DZ插件,全称为Discuz!插件,是针对Discuz!论坛系统的一种扩展功能。这些插件旨在增强论坛的功能性和用户体验,使得管理员能够根据自身需求定制论坛的各种特性。在众多DZ插件中,...

    discuz论坛插件DZ插件 dz2.5足彩插件

    本文将深入探讨"dz2.5足彩插件"这一特定插件,以及它如何在Discuz! 2.5版本中工作。 首先,我们需要理解Discuz! 2.5的基本架构。这是一个基于PHP和MySQL的社区论坛系统,支持多用户、多板块和多主题讨论。它的核心...

    discuz论坛插件DZ插件 万能投票插件 通用版v2.81

    v2.81是该插件的一个版本更新,通常会包含性能优化、新功能添加和已知问题修复。 2. **功能特性** - **多种投票类型**:支持单选、多选、拖拽排序等多种投票方式,满足不同场景的需求。 - **自定义选项**:管理员...

    discuz论坛插件DZ插件 我的勋章

    discuz论坛插件DZ插件 我的勋章 .

    discuz论坛插件DZ插件 轮播幻灯片 图文版 1.2

    总的来说,"Discuz论坛插件DZ插件 轮播幻灯片 图文版 1.2"是一款能够增强论坛视觉吸引力和用户体验的工具,通过灵活配置,管理员可以定制出符合自己社区风格的轮播幻灯片,提升论坛的整体形象和用户互动性。...

    discuz论坛插件DZ插件 CMS_供求招商加盟 供求系统2.0

    《Discuz论坛插件:DZ插件CMS_供求招商加盟 供求系统2.0详解》 在互联网社区建设中,Discuz!是一款广受欢迎的开源论坛系统,它以其强大的功能和灵活的扩展性赢得了众多用户的青睐。今天我们将深入探讨一款专为...

    dz插件discuz插件-【超人】帖子预览dz插件

    【超人】帖子预览dz插件是一款专为Discuz! 论坛系统设计的增强型插件,它旨在提高论坛用户体验,特别是对于那些希望在查看帖子前获取内容概览的用户。Discuz! 是一个非常流行的开源社区建站软件,拥有强大的功能和...

    discuz论坛插件DZ插件 新浪微博v2接口插件 商业版2.1.5支持X3

    论坛插件DZ插件 新浪微博V2接口插件 商业版2.1.5支持X3”是一款为Discuz! 论坛量身打造的社交化插件,它充分利用了新浪微博的强大社交网络,为论坛用户带来了更加丰富的互动体验。同时,商业版的持续更新确保了插件...

    discuz论坛插件DZ插件 百度云网盘0.2用户组权限通用插件

    《Discuz论坛插件:DZ插件与百度云网盘0.2用户组权限通用插件详解》 在互联网社区构建中,Discuz!(简称DZ)是一款广泛使用的开源论坛软件,以其强大的功能和易用性深受广大站长喜爱。DZ插件则进一步丰富了论坛的...

    discuz论坛插件DZ插件 头像装饰

    本文将详细讲解“Discuz论坛插件DZ插件 头像装饰”这一主题,帮助您了解如何通过插件来个性化您的Discuz!论坛用户的头像,提升社区的互动性和趣味性。 一、Discuz!论坛插件概述 Discuz!论坛支持各种插件的安装,...

    discuz论坛插件DZ插件 添加至百度首页1.0

    《Discuz论坛插件DZ插件:将网站推向百度首页1.0详解》 Discuz! 是一款广泛使用的开源社区论坛系统,以其强大的功能和灵活性深受广大站长喜爱。DZ插件,全称为Discuz! 插件,是专门为Discuz! 平台设计的各种功能...

    Discuz!X插件开发过程 入门必学

    X插件开发过程入门必学 在深入探讨Discuz!X插件开发的过程中,本篇文章将详细介绍从创建插件到实现各种功能的关键步骤。通过学习这些知识点,即使是初学者也能快速掌握Discuz!X插件开发的基础。 #### 一、启用插件...

    discuz论坛插件DZ插件 微信智能回复 V1.0.4

    discuz论坛插件DZ插件 微信智能回复 V1.0.4 .

    discuz论坛插件DZ插件 仿真股市 v1.59 支持X3

    总的来说,“仿真股市”DZ插件不仅是一个娱乐工具,更是一个寓教于乐的学习平台,它使用户在享受虚拟股市乐趣的同时,能够增进对金融市场和投资的理解。对于运营Discuz! X3论坛的管理员来说,这是一个值得考虑的增值...

    discuz论坛插件DZ插件 仿贴吧主题列表

    这个“DZ插件”就是为了扩展Discuz! 的核心功能而创建的第三方组件。 仿贴吧主题列表插件的主要特性可能包括以下几点: 1. **主题排序**:模拟贴吧的热门程度排序,根据主题的回复数量、最后回复时间等因素,展示...

    dz 1.5插件 社区银行

    dz 1.5插件dz 1.5插件dz 1.5插件dz 1.5插件dz 1.5插件dz 1.5插件dz 1.5插件dz 1.5插件dz 1.5插件dz 1.5插件dz 1.5插件dz 1.5插件dz 1.5插件

    discuz论坛插件DZ插件 活动@历历在目 1.0.6

    discuz论坛插件DZ插件 活动@历历在目 1.0.6 .

    discuz论坛插件DZ插件 贴内导航 2.5加强版

    《Discuz论坛插件:DZ插件贴内导航2.5加强版详解》 Discuz! 是一款广泛使用的开源社区论坛系统,以其强大的功能和灵活性深受广大站长喜爱。DZ插件是针对Discuz! 平台开发的第三方插件,旨在进一步提升用户体验和...

Global site tag (gtag.js) - Google Analytics