Discuz!官方免费开源建站系统

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索

插件 安装/制作/错误解决 方法&技巧

[复制链接]
魔焰男孩 发表于 2006-3-5 16:51:21 | 显示全部楼层 |阅读模式
插件安装


1、安装前的准备

      安装插件前, 您必须要看看您所要安装的插件的运行平台是否是您当前安装的 Discuz! 版本, 还有, 在安装前, 请您检查一下您安装的 Discuz! 是否有了最新的补丁程序, 若有, 我建议您尽快安装。

      当然, 安装前千万不要忘了备份文件和数据库, 尤其是需要修改的文件。一旦安装失败, 如果您没有备份文件, 那后果可是不堪设想的……


2、升级数据库

      许多插件的安装需要升级数据库, 一般是在数据库里面添加几个字段或者数据表。安装插件的请注意, 千万不要少了这一步, 否则您安装的插件可能就无法使用了!

      升级数据库的方法有很多。一些插件作者制作插件的时候一并制作了安装程序, 对于这类插件的数据库升级操作是非常容易的, 只要执行安装程序, 按照步骤进行就行了。

      更多数的情况是, 作者仅提供数据库升级代码。如果是这种情况, 请以管理员身份登录论坛后台(也就是系统设置), 依次打开 数据库 - 数据库升级, 将作者提供的升级代码粘贴到右边的文本框里面, 提交即可。


3、上传插件文件

      一般来说, 插件都有自己独立的文件, 作者一般都会提供这些文件的下载。您下载文件后, 如果是压缩包, 请用 WinZip 或 WinRAR 解压缩, 然后把解压缩的文件上传到论坛目录里面。

      当然, 上传到论坛目录的哪里并不是随意的, 一般作者都会说明的。如果没有, 请按照压缩包里面的存放格式上传到论坛目录。比如说, 压缩包里面有一个 upload/templates/default/test_plugin.htm 文件, 那么您就要把这个文件上传到论坛的 ./templates/default/ 目录里面。


4、在后台添加、配置插件

      上述工作都做完之后, 接下来就是在后台添加、配置插件了。一般在插件作者提供的压缩包里面都有一个叫 discuz_plugin_xxx.txt 的插件配置文件(也可能不是这个文件名), 您只要使用记事本打开这个文件, 全选、复制所有的内容, 接着打开论坛后台的 论坛插件 - 插件管理, 在页面最下端的“导入插件数据”下面的文本框中粘贴您所复制的内容, 提交即可。

      插件添加成功后, 请依次打开后台 论坛插件 - 插件设置, 然后点击“插件参数设置”配置您的插件。


5、修改论坛文件、模板

      这个其实没有什么好说的, 只要按照作者的提示, 打开、修改、保存文件就行了。不过, 我要提醒一下大家:
      1、如果修改的是 php 文件, 最好在作者提供的代码的前面和后面添加上下面的注释:

  1. // =========== XX 插件 by XX 作者 - 修改时间: 某年某月某日
复制代码

      2、如果修改的是 htm 模板文件, 最好在作者提供的代码的前面和后面添加上下面的注释:

  1. <!--XX 插件 by XX 作者 - 修改时间: 某年某月某日-->
复制代码

      至于我为什么要建议大家加上这些, 那很简单, 就是说今后如果作者更新程序了, 或者您要删除插件, 要删掉这些代码, 如果添加上了注释, 那很容易就能找到了。虽然有点麻烦, 但是为今后的工作打下了基础啊!


6、安装完成

      安装完成插件之后, 最好就是到后台执行 Discuz! 工具 - 更新缓存。如果出现了问题, 不妨看看下面的“常见问题”中有没有涉及到;或者使用您安装前备份的文件覆盖回去。

[ 本帖最后由 魔焰男孩 于 2006-4-22 15:17 编辑 ]
 楼主| 魔焰男孩 发表于 2006-3-5 16:53:29 | 显示全部楼层

插件开发

1、开发插件的要点

      首先, 在开发插件前, 要明确您要开发什么插件, 需要实现什么功能, 这点非常重要。其次, 我建议您, 开发插件首先要考虑安全性、效率, 不该查询数据库就别查询, 可以使用缓存的就尽量使用, 还有, 对于用户提交的数据的处理上, 是数字的就别忘了用 intval 函数转换, 是文本的就别忘了转义 html 标签。

      还有, 建议您的插件分模块实现功能, 比如说把自定义函数都放在一个文件, 把缓存调用又放在一个文件等等。


2、编写文件别忘了声明版权

      最近版权争论越来越激烈, 为了证明您是该插件的原作者, 建议您在您编写的每一个文件前面添加版权声明, 下面推荐一种格式:

  1. /*
  2.         [DISCUZ!] 路径/文件名.inc.php - 文件作用描述

  3.         Version: 版本号
  4.         Author: 作者名称(作者e-mail)
  5.         Copyright: For author
  6.         Last Modified: 最后更新日期
  7. */
复制代码


      如果您只是修改别人的插件, 请您不要删除、修改别人的版权信息, 我建议您在原来的版权信息下面加上:

  1. /*
  2. Edit list (edit author: 修改人):
  3. ->修改1 [时间]
  4. ->修改2 [时间]
  5. ->修改3 [时间]
  6. ...
  7. ->修改n [时间]
  8. */
复制代码



3、注意文件头

      千万不要忘了在文件头添加下面的语句:

  1. if(!defined('IN_DISCUZ')) {
  2.         exit('Access Denied');
  3. }
复制代码

      接着, 一般插件都要使用用户在后台配置的信息, 那么可以使用下面的代码获得:

  1. @require_once(DISCUZ_ROOT . './forumdata/cache/plugin_' . $identifier . '.php');
  2. $set = $_DPLUGIN[$identifier];
  3. $var = $set['vars'];
复制代码

      其中 $set 储存插件名称等信息, $var 储存用户设置的参数。


4、善用插件钩子

      关于这个就不多说了, 看看说明书就知道了。


5、完善后续工作

      为了方便大家使用您的插件, 如果您的插件涉及到数据库升级, 建议您编写一个安装程序。此外, 最好还要写一个说明书, 说明书模板请下载附件, 下载后您直接修改就可以使用了。

[ 本帖最后由 魔焰男孩 于 2006-4-2 11:26 编辑 ]
回复

使用道具 举报

 楼主| 魔焰男孩 发表于 2006-3-5 16:53:46 | 显示全部楼层

常见问题解答

Q: 为什么修改模板后程序没有反应?

A: 修改模板(尤其是templates.lang.php)之后, 程序不一定会自动更新缓存, 您直接到后台更新缓存就行了。


Q: 为什么老是提示“指定的插件模块文件(./plugins/xx.inc.php)不存在或存在语法错误,请检查是否已将插件完整上传。”?

A: 请检查是否上传了文件, 并且路径是否正确。


Q: 为什么总提示打开插件或论坛总提示:
Parse error: parse error in xx\xx\*_xxx.tpl.php on line *

(x=任意字符, *=数字)
A: 删除 ./forumdata/templates/ 目录里的所有文件。


Q: 为什么总提示打开插件或论坛总提示:
Discuz! info: MySQL Query Error

Time: ****-**-** **:**am/pm
Script: /bbs/xxx.php

SQL: SELECT * FROM xxx
Error: Table 'xx.xxx' doesn't exist

An error report has been dispatched to our administrator.

A: 如果是您刚安装完插件, 那就是因为您没有升级数据库。您可以到后台的“升级数据库”或进入phpmyadmin里面执行插件作者提供的数据库升级代码。

[ 本帖最后由 魔焰男孩 于 2006-3-11 20:30 编辑 ]
回复

使用道具 举报

 楼主| 魔焰男孩 发表于 2006-3-5 16:53:59 | 显示全部楼层
留位更新。
回复

使用道具 举报

 楼主| 魔焰男孩 发表于 2006-3-5 16:54:09 | 显示全部楼层
留位更新。
回复

使用道具 举报

 楼主| 魔焰男孩 发表于 2006-3-5 16:54:16 | 显示全部楼层
留位更新。
回复

使用道具 举报

0315 发表于 2006-3-5 16:55:21 | 显示全部楼层
学习了,支持
回复

使用道具 举报

hklcf 发表于 2006-3-5 17:00:22 | 显示全部楼层
占位
回复

使用道具 举报

望风的鸟 发表于 2006-3-5 17:06:18 | 显示全部楼层
广告位招租
回复

使用道具 举报

33201 发表于 2006-3-5 18:00:58 | 显示全部楼层
不错。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|Discuz! 官方站 ( 皖ICP备16010102号 )star

GMT+8, 2024-12-23 01:59 , Processed in 0.032483 second(s), 3 queries , Gzip On, Redis On.

Powered by Discuz! X3.4

Copyright © 2001-2023, Tencent Cloud.

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