请选择 进入手机版 | 继续访问电脑版

我爱自学

 找回密码
 会员注册

QQ登录

只需一步,快速开始

新手Discuz插件开发学习入门(一)

Discuz论坛系统功能非常丰富,可以通过插件实现很多自定义功能,掌握Discuz插件开发方法,可以使网站功能更加丰富。本文我爱自学小编,分享新手插件开发学习经验。
小编学习Discuz也有一段时间了,今天想要自制一个首页幻灯片,本来是想直接修改模板的,但是减少系统变更,增强兼容性。准备入手学习Discuz插件开发。

本文是一个系列教程,将记录小编学习开发插件的整个过程。

入门1. Discuz后台怎么没有设计新插件入口

新手Discuz插件开发学习入门(一)

新手Discuz插件开发学习入门(一)


解决方案:在config\config_global.php 最下面添加 $_config['plugindeveloper'] = 1 ,刷新后台应用即可

刷新后在后台应用,就可以看到设计新插件入口。



入门2. 怎么知道Discuz在那些位置设置了钩子,可以应用插件呢!

config\config_global.php中将$_config['plugindeveloper'] = 2 ,设置后上传服务器。 工具->清理缓存,然后刷新下页面

页面出现好多 类似[string index_top]的东西 这就是锚点,也是插件显示的位置。

discuz插件应用位置锚点

discuz插件应用位置锚点



3. 插件的基本设置(登陆管理后台,点击插件管理,设计新插件)




插件名称:中英文均可,根据插件的用途设定名称。
插件版本:就是字面意思,当前插件的版本,方便迭代管理。
版权信息:设置插件版权说明
唯一标识符(identifier):这个很重要,是插件的唯一标识,必须使用英文,可用字符数字下划线命名,后期插件代码跟这个相关。

*注意* 唯一标识符避免用大写字母,会出现路径错误的提示,如果要区分可以用“_”。

设置完以上内容,点击提交(提交后服务器source/plugin下面会生成与唯一标识符一样的文件夹)。然后跳转到插件设置页面。还可以填写插件的描述信息以及设置是否使用语言包。

小编入门写个简单的幻灯片插件,就没有包含语言包。

4. 插件模块设置



进入插件模块设置,模块类型选择“页面嵌入-普通版”,程序模块输入与标识符相同的字符串,然后点击提交。

5. 编写程序模块代码

在标识符.class.php文件中进行程序模块代码编写。
  1. <?php

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

  5. class plugin_lc_slide_forum {
  6.         function index_top() {
  7.    代码内容
  8.         }
  9. }

  10. ?>
复制代码



if(!defined('IN_DISCUZ')) {
exit('Access Denied');
}
这段代码是安全检测,标准模板套用就可以了。

代码下图标记,第一处红线标记处,为插件唯一标识符。第二处为代码生效的入口文件。比如forum.php,则是forum。第三处则是插件需要生效的锚点位置(参考入门2)。

编写discuz插件代码

编写discuz插件代码


6. 上传程序文件并启动插件测试

将编辑好的标识符.class.php文件上传到服务器source/plugin对应插件文件夹中,然后在后台开启插件后可以清理了缓存再测试。

扩展内容:

插件程序代码内容如何获取插件设置的变量内容:



比如如何获取上方的幻灯片数量设置:

global $_G;
require_once libfile('function/cache');
$vars_slide = $_G['cache']['plugin']['lc_slide'];
//幻灯片配置
$imgnum = $vars_slide[‘imgnum_lc’];


通过$_G['cache']['plugin']['lc_slide'];获取指定插件的变量集合,不同的插件变更红色部分就可以了。

插件中如何引入模板:
可以在标识符.class.php程序代码中引入下方代码,同时在对应插件板块下设置template文件夹和标识符.htm的模板文件。
include template('标识符:标识符');

注意:返回模板文件的输出,用return $return; 如果用echo会输出到页头。

模板文件中如何输入多行的PHP代码:

discuz模板文件中单行php代码样式<!--{eval echo $my_var;}-->,有可以写几句php代码。但是多行php代码报错时,该怎么办呢。

这时建议使用discuz 专门的多行php代码语法。点击查看 discuz php多行eval代码


点击阅读更多内容!
如果您觉得文章内容帮助到了您,不妨点点感兴趣的广告。感谢您的支持!

微信扫一扫打赏

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 会员注册

本版积分规则

手机版|小黑屋|我爱自学 ( 蜀ICP备19015358号-3 )

GMT+8, 2024-3-29 17:42 , Processed in 0.059064 second(s), 35 queries .

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

本站大部分教程是网站原创教程,一部分教程为我爱自学(http://www.5izixue.com)编辑收集整理。

如果您需要转载我爱自学网站教程,请注明“资料来源:我爱自学(5izixue)”字样并注明本站网址。

编辑收集整理的教程版权归原作者所有,本站只提供网友交流学习使用,请勿用于商业用途,如果该文章有任何侵犯您权益的地方,请联系我们(569705694@qq.com),我们将在第一时间进行处理!谢谢您的支持!

快速回复 返回顶部 返回列表