PHP群:95885625 Hbuilder+MUI群:81989597 站长QQ:634381967
    您现在的位置: 首页 > CMS教程 > discuz教程 > 正文

    Discuz插件制作教程【入门+精通+实战】

    作者:admin来源:网络浏览:时间:2020-09-30 00:07:50我要评论
    导读:一、开发插件所需资料与工具 1、DiscuzX3 插件机制插件机制Discuz! 拥有一套完整的插件机制。合理使用插件机制,你可以更好的将自...
    <?php$scriptlang['identifier'] = array(  'english' => 'chinese',  ...);$templatelang['identifier'] = array(  'english' => 'chinese',  ...);$installlang['identifier'] = array(  'english' => 'chinese',  ...);$systemlang['identifier'] = array(  'file' => array(     'english' => 'chinese',     ...  ),  ...);?>
    $scriptlang 为程序脚本文件的语言包。
    $templatelang 为模版文件的语言包。
    $installlang 为安装、升级、卸载脚本用的语言包。
    $systemlang 为系统语言包(Discuz! X3 新增)。
    如果插件不涉及某些类型的语言文字,变量可忽略。
    •
    然后在插件基本设置中开启语言包选项后即可。
     
    调用语言包
    模版中调用模板文件语言包,通过 {lang identifier:english} 方式调用。
    程序脚本中调用脚本文件语言包,通过 lang('plugin/identifier', 'english') 方式调用。
    安装脚本中调用安装脚本文件语言包,通过 $installlang 变量直接获取。如 $installlang['english']。
    系统语言包用于替换系统语言包中的某些语言条目。
     
    语言包导出
    创建好的语言包在插件导出后会自动导出到 XML 文件中,供插件作者转码后发放多编码版本的插件。如上例中导出的 XML 中会包含以下内容:
    <item id="language">        <item id="scriptlang">                <item id="english"><![CDATA[chinese]]></item>        </item>        <item id="templatelang">                <item id="english"><![CDATA[chinese]]></item>        </item>        <item id="installlang">                <item id="english"><![CDATA[chinese]]></item>        </item>        <item id="systemlang">                <item id="file">                        <item id="english"><![CDATA[chinese]]></item>                </item>        </item></item>
    data/plugindata/identifier.lang.php 文件不必在插件发布的时候导出,此文件仅供插件设计者模式时使用。
    插件模板
    插件的模板统一放置到 source/plugin/identifier/template 目录下,程序脚本通过以下语句调用插件模板文件,如下例,调用 source/plugin/identifier/template/test.htm
    include template('identifier:test');
    模版中调用插件模版通过以下方法:
    {template identifier:test}
     
    插件注册及插件新版本提示
    以下内容仅限 Discuz! X2.0
     
     
    为了保护插件的合法权益,你可以把设计好的插件到官方的应用中心(  http://addon.discuz.com )进行注册,注册后你将拥有此插件的唯一所有权。
    插件 LOGO 设置
    设置插件的 LOGO,提升插件的价值。请自行设计一个 40x40 大小的 PNG 图片,上传到扩展中心,此 LOGO 会在 Discuz! 的插件管理中心显示。
    插件新版本提示
    插件新版本提示可以让站长在随时检测到你插件是否存在新版本。请插件作者把自己发布插件的相关文件生成 MD5 校验码,然后到扩展中心进行插件版本校验文件的登记。
    插件校验码生成函数
    function createValidator($pluginid, $md5files) {        define('IN_DISCUZ', true);        require_once 'source/class/class_xml.php';        require_once 'source/discuz_version.php';        $plugindir = 'source/plugin/'.$pluginid.'/';        $md5 = '';        foreach($md5files as $file) {                $md5 .= md5_file($file);        }        echo md5(md5($md5).$pluginid);        $xml = array(                'Title' => 'Discuz! Plugin Validator',                'Version' => DISCUZ_VERSION,                'Data' => $md5files,        );        if($fp = @fopen($plugindir.'validator.xml', 'wb')) {                fwrite($fp, array2xml($xml));                fclose($fp);        }}
    此函数执行后会在插件目录生成 validator.xml 文件,请同插件其他文件一并打包发布。页面输出的 MD5 校验码填写到扩展中心“插件版本校验文件登记”中。
    使用范例
    $md5files = array(        'source/plugin/myrepeats/switch.inc.php',        'source/plugin/myrepeats/admincp.inc.php',        'source/plugin/myrepeats/discuz_plugin_myrepeats.xml',        'source/plugin/myrepeats/memcp.inc.php',);createValidator('myrepeats', $md5files);
     
     
    编写插件的原则与注意事项
    请在您动手编写插件之前,还需要仔细的阅读以下原则,遵循这些原则,将有效的避免可能发生的问题
    转载请注明(B5教程网)原文链接:https://b5.mxunkeji.com/content-106-782-1.html
    相关热词搜索: Discuz插件