Discuz!X2.5_插件制作教程

合集下载

DiscuzX3.x模板插件开发制作教程(从入门到精通)

DiscuzX3.x模板插件开发制作教程(从入门到精通)

一、开发插件所需资料与工具1、DiscuzX3 插件机制插件机制Discuz! 拥有一套完整的插件机制。

合理使用插件机制,你可以更好的将自己的个性功能需求整合到Discuz!产品中的同时,保持代码独立,并且不受后续Discuz!产品版本升级的影响。

我们鼓励并推荐,使用插件机制进行个性需求定制和研发。

插件设计的准备工作插件实现流程开始编写社区插件,您应当首先对插件实现的流程有一个大致的了解,以下是我们推荐的插件编写流程:∙熟练使用Discuz! 社区系统后,对希望完善或补充的个性化功能进行评估,进而提出插件的功能需求。

∙ 对插件做一个概括性的设计,例如:需要使用什么菜单、什么参数,配置哪些选项、数据结构如何设计、前后台实现哪些功能等等。

∙ 阅读本文档并在系统设置中实际体验Discuz! 插件接口所实现的功用,例如:您的插件应当如何设计才能良好的挂接到社区系统中来。

插件接口能够实现哪些功能、不能实现哪些功能,插件为此而需要做的优化、改造和取舍。

∙ 编写相应程序代码和模板语句,实现所需的功能并进行代码测试、兼容性测试和代码改进。

∙ 如果需要公开您的插件,可以用插件导出的方式,将插件配置信息导出到一个XML 文件中,连同相应的程序和模板文件一同打包。

同时,编写一个适合新手的插件的说明书也是必不可少的,其中包括:插件适用的Discuz! 版本、功能概述、兼容性声明、安装方法、使用方法、卸载方法等等。

∙ 将插件提供给他人,或自己使用,根据使用者反馈,对插件进行完善。

插件实现流程至此结束。

∙文件命名规范Discuz! 按照如下的规范对程序和模板进行命名,请在设计插件时尽量遵循此命名规范:∙ 可以直接通过浏览器访问的普通程序文件,以 .php 后缀命名。

∙ 被普通程序文件引用的程序文件,以 .inc.php 后缀命名。

∙ 被普通程序文件,或引用程序文件引用的函数库或类库,以 .func.php(函数库) 或.class.php(类库) 后缀命名。

Discuz X2.5标签tab伪静态设置方法及规则

Discuz X2.5标签tab伪静态设置方法及规则

修改最终效果:1.<div align="left">/tag.html</div><divalign="left">/tag-105.html</div>方法步骤:1、添加伪静态规则2、修改帖子内标签链接3、修改标签页标签链接4、修改标签列表页导航链接详细修改方法:1、添加伪静态规则伪静态文件用 .htaccess 的,加2条规则1.RewriteCond %{QUERY_STRING} ^(.*)$2.3.RewriteRule ^tag-(.+)\.html$ misc.php?mod=tag&id=$14.5.RewriteCond %{QUERY_STRING} ^(.*)$6.7.RewriteRule ^tag\.html$ misc.php?mod=tag伪静态文件用 httpd.ini 的,加2条规则1.RewriteRule ^(.*)/tag-(.+)\.html*$ $1/misc.php\?mod=tag&id=$22.3.RewriteRule ^(.*)/tag\.html*$ $1/misc.php\?mod=tag=================================PS:以上规则一定要加在最后一条,即1.RewriteRule^(.*)/([a-z]+[a-z0-9_]*)-([a-z0-9_\-]+)\.html(\?(.*))*$ $1/plugin\.php\?id=$2:$3&$5上面,否则不会成功!2、修改帖子内标签链接打开 \template\default(模板目录)\forum\viewthread_node.htm查找:1.<a title="$var[1]" href="misc.php?mod=tag&id=$var[0]"target="_blank">$var[1]</a>替换:1.<a title="$var[1]" href="tag-$var[0].html"target="_blank">$var[1]</a>3、修改标签页标签链接打开 \template\default\tag\tag.htm查找:1.<a href="misc.php?mod=tag&id=$tag[tagid]" title="$tag[tagname]"target="_blank" class="xi2">$tag[tagname]</a>替换:1.<a href="tag-$tag[tagid].html" title="$tag[tagname]" target="_blank"class="xi2">$tag[tagname]</a>4、修改标签列表页导航链接打开 \template\default\tag\tagitem.htm查找:1.<a href="misc.php?mod=tag">{lang tag}</a>替换:1.<a href="tag.html">{lang tag}</a>----------------------查找:1.<a href="misc.php?mod=tag&id=$id">$tagname</a>替换:1.<a href="tag-$id.html">$tagname</a>Discuz x2.5 默认禁止蜘蛛抓取标签页面,解决方法为:删除或注释掉根目录下misc.php第18行的:1.$discuz->reject_robot();即可。

Discuz! NT 3.0、3.1、3.5、3.6、3.9版本转换到 Discuz! X2.5版本教程

Discuz! NT 3.0、3.1、3.5、3.6、3.9版本转换到 Discuz! X2.5版本教程
本教由青海西宁生活网ttp://整理上传
本教程是关于 Discuz! NT 3.0、3.1、3.5、3.6、3.9 各版本到 Discuz! X2.5 转换,由于XConvert 已经集成了各个版本的转换,在转换过程中配置信息是一样的。所以,下面以 Discuz! NT3.9版本转换到Discuz! X2.5为例
升级之前的准备工作: 由于新版本不兼容 “ntext” 字段类型,所有在升级之前要进行数据字段更改 "text',更改方式:
XConvert2.5版本下载地址:/
然后将文件解压到网站根目录(转换程序是独立于discuz!程序,只要放到站点目录下能够正常访问即可)
如图:
第二步:授权协议
地址栏中输入:/ ,提示:/ 是您网站的访问地址
如图所示,点击 “下一步”
第三步:选择转换子体
请选择要转换的 NT 子体
第四步:参数配置
原始版本参数填写中, “数据库服务器信息” 这项用户需要注意 如果服务器中安装了多个SQLserver 数据库服务器要跟上对应的版本信息。
目标版本参数填写中,“Discuz!论坛类型” 应该填写为 “X”
如果参数配置信息都填写正确,将出现这样的界面,如图:
第五步:转换处理
用户可以选择要转换的内容。标准转换,将转换所有的内容。 自定义转换,用户自己选择要转换的项目
选中好之后程序将会进入数据转换界面。如图:
第六步: 数据统计
当转换完数据之后,程序会自动跳转到“数据统计” , 处理界面:
第七步: 查看结果
数据统计步骤结束之后,程序会自动生成转换报告。转换结束之后,用户可以查看报告
要更改ents code、parameters
dnt_announcements message

手把手教你架设Discuz!论坛

手把手教你架设Discuz!论坛

手把手教你架设Discuz!论坛前些天,有朋友要小强帮忙架一个论坛。

可是刚开学一直很忙(11门课啊~~还不说七七八八的杂事),都没顾上弄,这次国庆假期正好很无聊,于是决定动手试一下,毕竟没玩过类似的东西。

经过了一天的安装调试之后,偶的实验论坛终于动起来了,兴奋之后觉得“独乐乐不如众乐乐”,于是就有个这篇东东。

开始之前呢,还是要说一些“废话”:虽然本文中用到的软件都是free的,但是,应当遵重原作者的权利及相关授权文档。

还有就是偶对这个东西也是第一次玩,又说的不对的地方欢迎大家拍砖(人身攻击除外,呵呵)。

好了,闲言少叙,进入正题。

本文中涉及到三种开源软件的Win32版本:n Apache HTTP Server 2.0.46n MySQL Servers and Clients 4.0.13n PHP 5.0.3此外就是同为开源的Discuz! 2.5 简体中文免费版(还是开源的东西好啊,功能又强,效率又高,又稳定,而且最重要的是:大多数情况下免费!)。

以上这些软件在网上都很容易找到,下面只对这三种软件作简单介绍,更为详细的资料请参阅该软件的文档;对于该软件的下载方法就不说了,一个字:搜。

如果比我还笨或还懒得话给我发邮件好了(不过mail的主题里要写明原因:P)。

Apache HTTP Server是一种高效率的可在多种平台下的网页服务器(我尽量说的简单,但如果你连网页是啥都不知道那就没办法了)。

它由Apache开源组织()开发和维护。

记得去年同学找工作时候听过一种说法,如果你能有一个Apache的邮箱(如starsnow@),那找什么工作也就都不愁了(可是我没有,所以还是要愁啊~~)。

Apache HTTP Server在本次架设过程中主要提供基于HTTP (超文本链接)协议的网页服务。

MySQL是大名鼎鼎的高性能跨平台的数据库服务器(/),我挺喜欢它的那个海豚图标的,呵呵。

提供基于GPL(free)的数据库服务,即将建立好的论坛的各种数据(如帖子、回复、会员管理等)都会存在这个数据库里面。

Discuz教程

Discuz教程

Discuz教程插件制作的基本思路是:(初学者适用)1.形成插件思路2.制作插件界面3.构架程序模块4.搭建存储数据5.填充功能语句6.检查应用错误7.完善插件功能前言:为方便互联网数万Discuz!爱好者,更加深入了解Discuz!软件,本人在熟悉Discuz!过程中,顺便将个人经验写给大家。

本贴内容由本人定期更新。

本贴只介绍Discuz!中部分技术点,本贴紧属个人观点,不足之处,请各位多多指教,在下先此谢过!。

“Discuz!”在下文中简称“DZ”。

要弄DZ二次开发,必须至少具备如下技能:1)能够理很好理解MVC构架的原理(虽然DZ不是MVC架构的)2)扎实的PHP基础,熟悉结构化程序,OOP程序的写法及应用3)熟悉MYSQL就用,掌握SQL语言,懂SQL优化者更佳4)熟悉使用Discuz!的各项功能一)Discuz!的文件系统目录注:想搞DZ开发,就得弄懂DZ中每个文件的功能。

a) Admin:后台管理功能模块b) Api:DZ系统与其它系统之间接口程序c) Archiver:DZ中,用以搜索引擎优化的无图版d) Attachments:DZ中,用户上传附件的存放目录e) Customavatars:DZ中,用户自定义头像的目录f) Forumdata:DZ缓存数据的存放目录g) Images:DZ模板中的图片存放目录h) Include:DZ常用函数库,基本功能模块目录i) Ipdata:DZ统计IP来路用的数据j) Plugins:DZ插件信息的存放目录k) Templates:DZ模板文件的存放目录l) Wap:DZ无线,Wap程序处理目录二)必须记熟Discuz!数据库设计的每个表的功能,每个表中每个字段的功能。

关于DZ数据库设计文档,请参阅DZ相关的项目文档(请从本贴附件中下载)三)Discuz!的流程控制a) 后台流程控:DZ后台所有的功能,均需要注册到admincp.php文件,每个功能都至少有一个或一个以上的Action(动作),在admincp.php中,可以定义Action的执行权限,分别为:“admin==1”管理员,或“admin==2 || admin==3”超级版主和版主,每个Action对应一个脚本文件,脚本文件的命名为action.inc.php(*.inc.php),并存放在admin目录下,如执行:admincp.php?action=dodo,相当于执行admin目录下的dodo.inc.php文件b) 前台流程控制:前台的流程控制比较简单:流程是自由的,如:首页:index.php会员注册:register.php;会员登录:logging.php发贴程序:post.php会员信息:member.php论坛内容:forumdisplay.php查看贴子:member.php…大部分功能,此处不一一列出…c) DZ根目下的config.inc.php属于整个DZ系统的配置文件四)Discuz!的数据处理过程a) DZ对mysql的数据库操作处理全部封装在dbstuff(db_mysql.class.php)类中b) 所在的外部数据均通过“daddslashes()”初步过滤,然后再过滤,再根据需要处理五)Discuz!的显示控制(网站多样式风格输出)a) 显示层就是大家通常所看到的网站风格了。

Discuz x2.5论坛文件功能说明讲解

Discuz x2.5论坛文件功能说明讲解

Discuz x2.5论坛文件功能说明讲解先从根目录开始,,即执行具体功能的代码一般不在这些文件中,而是在其调用的文件中。

admin.php 系统站点管理入口文件api.php Discuz!合作应用入口文件connect.php QQ互联入口文件cp.php 应用入口文件crossdomain.xml 数据交互文件favicon.ico 图标文件览器的标题栏forum.php 论坛入口文件group.php 群组入口文件home.php 家园入口文件index.php 功能与portal.php基本相同member.php 用户信息入口文件misc.php 网站用户常用操作入口文件plugin.php 插件入口文件portal.php 门户入口文件robots.txt 在这个文件中加上具体的地址search.php 搜索功能入口程序userapp.php 用户应用入口程序API目录中的文件主要是和Discuz!进行合作的商家的应用程序archiver目录中只有一个index.phpconfig目录中有两个文件config_global_default.php是你在安装论坛的时候就要修改的配置文件config_ucenter_default.php是自动生成的data目录下的文件通常是动态缓存文件install是安装程序的目录uc_client和uc_server目录中的文件关系到UCentre的运行static目录中的文件全部属于静态文件js目录中的文件进行说明Discuz!中许多的Ajax效果都是这个文件中的代码来实现的Javascript的可以尝试去改下后面我生效的位置进行说明admincp.js 站点管理bbcode.js Discuz!代码效果实现calendar.js 日历common.js 系统全局common_diy.js 首页DIY效果common_extra.js 功能基本同common.js editor.js 编辑器效果forum.js 论坛效果forum_moderate.js 论坛管理forum_post.js 论坛发帖forum_slide.js 论坛边栏forum_viewthread.js 论坛主题浏览google.js google搜索home.js 家园home_blog.js 家园日志home_drag.jshome_friendselector.js 家园好友选择home_uploadpic.js 家园图片上传logging.js 登录 md5.js MD5加密portal.js 首页portal_diy.js 首页DIY portal_upload.js 首页上传register.js 注册页面seditor.js 编辑器效果smilies.js 表情space_diy.js 个人空间DIY threadsort.js 主题排序tree.js 树形列表userapp_swfobject.js FLASH批量上传templates/default目录中的模板文件的功能做下解释其中userapp和stylemobile目录的模板对应的是3Gsearchranklisttaggrouphomeportaldefault/member 下面有四个文件getpasswd.htm 密码取回login.htm 用户登录login_simple.htmregister.htm 用户注册default/common 下面的css我不做解释,,样对使用的场合进行说明block_forumtree.htm 论坛树形列表模块block_thread.htm 主题模块block_userinfo.htm 用户信息模块buyinvitecode.htm 邀请码购买css_sample.htm CSS样例editor.htm 编辑器editor_menu.htm 编辑器菜单按钮extcredits.htm 拓展积分列举faq.htm 使用帮助footer.htm 站点底部文件footer_ajax.htm 同上header.htm 头部文件header_ajax.htm 同上header_common.htm 同上header_diy.htm 同上invite.htm 邀请注册preview.htm 也来pubsearchform.htm 搜索report.htm 报告seccheck.htm 验证码检查seditor.htm 编辑器sendmail.htm 邮件发送页showmessage.htm 提示信息页面PHP程序中使用showmessage函数出来信息使用的模板就是这个simplesearchform.htm 搜索stat.htm 站点统计userabout 用户应用信息default/forum 一般论坛里面的PHP程序所调用的模板文件都是在这里(小提示htm对应的php文件文件名都是有类似字符的)activity_applist_more.htm 应用列表activity_applylist.htm 应用列表activity_export.htm 导出ajax_albumlist.htm 相册列表ajax_attachlist.htm 附件列表ajax_imagelist.htm 图片列表ajax_secondgroup.htm 拓展用户组ajax_threadlist.htm 主题列表announcement.htm 公告attachpay.htm 附件收费attachpay_view.htm 收费附件付费记录浏览comment.htm 点评comment_more.htm 同上debate_umpire.htm 辩论discuz.htm 论坛首页discuzcode.htm Discuz!代码editor_ajax.htm 编辑器editor_menu_forum.htm 论坛菜单forumdisplay.htm 主题列表浏览forumdisplay_fastpost.htm 快速回复框架forumdisplay_leftside.htm 主题列表浏览边栏forumdisplay_list.htm 主题列表forumdisplay_passwd.htm 论坛密码输入页面forumdisplay_subforum.htm 二级论坛框架index.htm 空文件index_navbar.htm 头部导航栏modcp.htm 版主管理后台modcp_announcement.htm 版主管理后台公告发布modcp_forum.htm 版主管理后台论坛管理modcp_forumaccess.htm 版主管理后台论坛权限设置modcp_home.htm 版主管理后台主页modcp_log.htm 版主管理后台记录查看modcp_login.htm 版主管理后台登录页modcp_member.htm 版主管理后台用户管理modcp_moderate.htm 版主管理后台主题批量管理modcp_moderate_float.htm 版主管理后台主题管理浮动窗口modcp_post.htm 版主管理后台帖子管理modcp_recyclebin.htm 版主管理后台回收站modcp_recyclebinpost.htm 版主管理后台回收站帖子浏览页modcp_report.htm 版主管理后台用户报告管理modcp_thread.htm 版主管理后台主题管理pay.htm 收费主题pay_view.htm 收费主题付费记录查看post.htm 跟发帖有关的模板post_activity.htm 发表活动主题post_attachlimit.htm 附件限制信息页面post_debate.htm 发表辩论主义post_editor_attribute.htm 编辑器post_editor_body.htm 编辑器主题post_editor_extra.htm 编辑器附件功能post_editor_option.htm 编辑器post_forumselect.htm 发帖时论坛列表选择post_infloat.htm 浮动发帖页面post_poll.htm 投票主题发布页面post_reward.htm 发表悬赏主题post_sortoption.htm 排序选项post_trade.htm 发表商品主题postappend.htm 以往帖子列表浏览rate.htm 用户评分rate_view.htm 评分记录recommend.htm 主题推荐relatekw.htm 标签生成页search_sortoption.htm 搜索stat_main.htm 站点统计首页stat_memberlist.htm 站点统计stat_misc.htm 站点统计stat_onlinetime.htm 站点统计统计stat_team.htm 站点统计stat_trade.htm 站点统计tag.htm 标签topicadmin.htm 全局模板topicadmin_action.htm 浏览主题时选择主题管理操作的下拉列表项目topicadmin_getip.htm 帖子IP查看页topicadmin_modlayer.htm 管理主题时候trade.htm 商品主题全局模板trade_displayorder.htm 商品主题基本信息trade_info.htm 商品信息浏览trade_view.htm 商品交易记录浏览upload.htm 附件上传viewthread.htm 浏览的主题时调用的全局模板viewthread_activity.htm 浏览活动主题viewthread_debate.htm 浏览辩论主题viewthread_fastpost.htm 浏览主题时快速发帖的框子viewthread_from_node.htm 同viewthread_node.htmviewthread_mod.htm 浏览主题时的管理项viewthread_node.htm 浏览主题的时候显示的用户信息viewthread_node_body.htm 同上viewthread_pay.htm 浏览付费主题viewthread_poll.htm 浏览投票主题viewthread_poll_voter.htm 浏览投票主题的选项viewthread_portal.htm 浏览文章viewthread_printable.htm 浏览可打印版本viewthread_reward.htm 浏览悬赏主题viewthread_trade.htm 浏览商品主题warn_view.htm 浏览帖子警告记录不过前面都是打酱油的程序文件source目录把在里面source下面的discuz_version.php是Discuz!版本标示文件Discuz!版本进行识别source下面的多个目录中plugins目录是插件目录;language目录中是所有的语言包文件,;archiver目录中的是无图版的程序。

DZ插件实例讲解


['myrepeats']['use
rgroups']);
if(in_array('', $myrepeatsusergroups)) {
$myrepeatsusergroups = array();
}
$userlist = array();
有权限, 则当
/* 对当前登录用户进行马甲验证, 即当前用户组不再权限许可范围内, 但其他帐号所在用户组 前用户也有使用权限。*/
$_GET['username']);
ajaxshowheader();
echo $Plang['deleted'];
ajaxshowfooter();
}
$ppp = 100; $resultempty = FALSE; $srchadd = $searchtext = $extra = $srchuid = ''; $page = max(1, intval($_GET['page'])); if(!empty($_GET['srchuid'])) {
添加的语言包文件,初始化状态如下:
<?php
$scriptlang['myrepeats'] = array( 'login_strike' => "密码错误次数过多,请重新设置马甲账号信息并在 15 分钟后再尝试切换。",
/* 含有变量值的语言包一般用在脚本文件中调用, 其中变量可以在showmessage(), lang()等函数中某
global $_G;
if(!$_G['uid']) {

discuz论坛搭建及模板修改过程--仅限给新手

此文谨献给新手,请高手飘过discuz论坛搭建及模板修改过程看此文前提要懂点html跟css,不然看了估计也不会太懂。

建站就要有源程序,有了源程序要让别人看到,怎样才能看到呢?买域名空间,买了域名空间别人还是看不到,要怎么做?上传源程序,安装,调试,工作正常就是一站了。

(此处是废话,看下边)第一步:域名空间就不说了,最好备案哈,貌似论坛也得备案。

弄源程序传到空间内,确定是gbk还是utf8的,下面有用(前提域名解析好)第二步:输入域名类似:/ install/ 转到install目录下,按提示安装,要是不会配置就到官网看下,其实很明白的,只是本文的重点不在这里。

第三步:安装成功后会有提示,下面就是模板了,这个是本文的重点,以下不再分步骤了,别用鸡蛋砸我(从小作文不好,语句不连贯)一般安装好后都是那个蓝色的模板,我看起来感觉不是太好看,相信大多人也有想换皮肤的感觉,好,我们这就找皮肤去一般来说我们会在chinaz上找或者到dz上找,dz上好的大多收费,所以我们google下dz论坛风格,应该还能搜出来不少的,呵呵,看你喜欢哪一种,下载前看好版本号,本文以dz7为例,版本号不对是不成的,需要修改好多地方,所以还是先看好版本号再下,另外看是gbk还是utf8的,这个影响也比较大,都会出现乱码,让你找不到北,所以还是谨慎点,(模板覆盖前做好备份,省的出现问题了不好补救)。

我的论坛是utf8的,风格还真不好找,找了好几天也没找到合适的,最后自己在别人的基础上修改了一个,哎,想来想去,还是劝大家直接装gbk的吧,不然后期麻烦多多。

说说几个重要的文件:header.htm这个文件跟名字一样包含了头部的信息,meta标签信息,及js代码包含还有个人信息导航,可根据需要修改,这个一般不需修改,meta额外标签可以在后台直接添加,js这个可以根据需要在模板里添加。

css_common.htm 这个文件是整体的样式表,基本上都集中在这里,可以根据需要自己修改,如果想给body的scrollbar 加点颜色,在指定html的doctype的情况下是没有作用的,告诉你一个小方法,可以在doctype声明上面加点注释,例如<!--注释信息-->这样就起作用了,呵呵,无意中发现的。

Discuz!X2.5首次引入在线裁切图片功能-电脑资料

Discuz!X2.5首次引入在线裁切图片功能-电脑资料
来自Discuz! 官方的消息,目前正在测试的Discuz! X2.5新版本即将推出新门户系统,新增在线裁切图片功能,。

在线裁切图片可以简化编辑们PS的工作量,让复杂的事情简单化。

一般来说,美观度高的网页不仅要有统一、柔和的色彩作铺垫,也要有图文并茂的内容作支持。

很多网站编辑在编辑帖子时,总是想各种办法在帖子中加入新奇、漂亮、有创意的图片,以增强帖子的可读性,然后将其推送到门户中吸引用户。

然而,从编辑帖子到推送到门户看似简单的过程,往往却耗时很久,中间有很多细节工作。

比如搜图、下载、PS、上传到推送等,大概需要8个步骤,流程极为繁琐、复杂,如图所示:
图1:编辑每次都要通过以上的步骤才能完成一个高质量的帖子推送,目前的方式极大地增加了工作量,
电脑资料
《Discuz! X2.5首次引入在线裁切图片功能》(https://www.)。

为了让编辑们通过简单地操作就能完成高质量的内容推送,Discuz! X2.5中首次引入在线裁切图片的功能,编辑在推送某个帖子时,可以选择帖子里的任意图片作为推送的图片,同时可以对其大小进行随意裁切,实现美丽图文推送一步完成。

下面简单地介绍该功能的操作方法:
首先,编辑推送帖子时,可以选择帖子内任意图片作为推送的图片,同时也可选择新图片上传,如图所示:
图2:推送图片“任你选”
其次,编辑可以对选中的图片或者上传的图片进行裁切,尺寸大小随意选择,如图所示:
图3:在线就能裁切图片
在线裁切图片功能使推送图文并茂的帖子轻而易举,让网站内容更精彩,编辑工作更轻松,美丽图片轻松搞定。

Discuz!x2实现单页制作 整合头部用户信息及状态

Discuz!x2实现单页制作整合头部用户信息及状态有时网站的页脚需要一些单页链接,比如:公司简介,关于我们,联系我们等。

如果只是做个静态的单页是很简单的,但是要与系统用户登录退出同步,就要想办法了。

下面方法可以实现:单页文件about.php< ?phpdefine('CURscript', 'test');require './source/class/class_core.php';//引入系统核心文件$discuz = & discuz_core::instance();//以下代码为创建及初始化对象$discuz->init();$navtitle = 'IT618资讯网';$metakeywords = '服务端开发,前端开发,网页特效,开源系统,软件下载,站长建站,淘宝开店';$metadescription = 'IT618资讯网提供服务端开发,前端开发,网页特效,热门开源系统研究,软件下载,站长建站,淘宝开店等学习资料.';include template('forum/about');//调用单页模版文件? >这里需要注意的是,about为模板文件名,不需要加.htm扩展名,模板文件存放于默认风格目录下的forum目录;单页的php文件存放于论坛根目录;$navtitle = 'IT618资讯网';定义单页的标题$metakeywords = '服务端开发,前端开发,网页特效,开源系统,软件下载,站长建站,淘宝开店';单页的关键词信息$metadescription = 'IT618资讯网提供服务端开发,前端开发,网页特效,热门开源系统研究,软件下载,站长建站,淘宝开店等学习资料.';单页的描述信息模板文件about.htm{subtemplate common/header}中间就可以随便制作你的个性单页了{subtemplate common/footer}模板文件很简单,只需调用一下页头与页脚。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

Discuz!X2.5 插件开发实例教程欢迎您浏览本网页,为满足站长在遇到插件的问题以及在一些插件的需求上,这个系列的插件制作教程就是特别为您准备的。

本人做了一段时间的插件,希望我写的内容对你有用~当然,我不是DX的研发人员,我只是DX的爱好者。

相信对DX的安装和使用大家都已经有了初步的了解,本内容假定您已经具备如下技能:1. 您的网站或者测试站点可以正常使用2. 您对PHP有基本的了解3. 您对数据库有着基本的了解一旦您满足了上面的要求,那么您可以来了解DX的插件制作了。

网站的基本数据在DX的这个框架中,我们会经常用到一些使用的数据,这些数据包括:系统常量、全局变量、系统调用,首先我们从系统常量说起系统常量DX里面对一些常量做了自己的定义,接下来的表格列举了,更多的变量可以使用附录里的代码获得。

全局变量DX的全局变量事实上全部压缩到了一个变量:$_G里面,接下来的表格列举了常用的$_G 数据内部的变量,更多的变量可以使用附录里的代码获得。

变量名说明uid用户UIDusername用户名groupid用户组IDclientip用户IP地址charset语言编码siteurl网站地址config网站基本配置,这是一个数组setting网站基本设置,这是一个数组系统调用系统调用里面,恐怕最重要的调用要数DB这个静态对象了。

这是一个数据库的静态对象,对其的使用也是经常用到的,其方法包括:变量名说明DB::table()增加了pre的数据库表名DB::delete()删除表中数据DB::insert()向表中插入数据DB::update()更新表中数据DB::fetch()配合DB::query来实现数据资源数据的获取DB::query()执行一条数据库语句DB::fetch_first()获取结果集的第一条记录另外,系统的一些其它的系统调用,包括:获取用户信息、插入帖子等内容,都可以在:souce/function/ 文件夹下找到对应的文件来查看。

好了,经常用到的数据内容就在上面的列表里面了,附录提供了一些查看全部内容的代码!下一篇将会介绍如何编写管理中心插件!附录:1. 查看全部常量:1.[indent]<?php[/indent][indent]require_once'./source/class/class_core.php';[/indent][indent]require_once'./source/function/function_home.php';[/indent][indent]$discuz = &discuz_core::instance();[/indent][indent]$discuz->init();[/indent][indent]print_r(get_defined_constants());[/indent][indent]?>[/indent]2. 查看$_G变量中内容1.[indent]<?php[/indent][indent]require_once'./source/class/class_core.php';[/indent][indent]require_once'./source/function/function_home.php';[/indent][indent]$discuz = &discuz_core::instance();[/indent][indent]$discuz->init();[/indent][indent]print_r($_G);[/indent][indent]?>[/indent]这次我们要来制作一个简单的插件来学习如何新建插件、建立管理中心。

开始新建进入管理中心-》插件-》插件-》设计新插件如图:按照要求填写填写好之后,就可以来添加管理中心的设置文件了,这里要注意:你的标识符一旦确定就不能修改!并且,你所写的程序文件都应该放在:source/plugin/标识符/ 这个文件夹下面,例如我们要设置下图的程序,文件:admincp.inc.php应该放在该目录下即可。

点击提交之后,返回插件列表,开启我们新建的插件,虽然我们还没有编写admincp.inc.php这个文件,但是因为我们要测试我们编写的内容,我们需要开启此插件才能检验该插件是否可用。

之后,你就会在左边的导航栏里看到刚才填写的插件名称了,如图:点击之后发现这个文件不存在现在我们就可以编写这个文件了,使用你常用的编辑器新建文件:source/plugin/标识符/admincp.inc.php,然后在里面写上如下代码:1.[indent]<?php[/indent][indent]if(!defined('IN_DISCUZ')) {[/indent][indent]2.exit('AccessDenied');[/indent][indent]}[/indent][indent]showtips($templatelang['sitemap']['sitemap_tips']);[/indent][indent]showformheader('plugins&operation=config&do='.$pluginid.'&identifier=msign&pmod=admincp');[/indent][indent]showtableheader();[/indent][indent]showsetting('启用','signsetting[enable]');[/indent][indent]showsetting('关闭提示','signsetting[disable_info]','','textarea');[/indent][indent]showsubmit('submit');[/indent][indent]showtablefooter();[/indent][indent]showformfooter();[/indent][indent]?>[/indent]该代码如下图显示:这下子,我们就做好了一个简单的可以显示的管理中心的插件了,然后我们可以在此插件的基础上来添加自己的内容了,发挥你的想象力吧~现在我遇到一个问题:我想更改自己网站的页面内容,比如我希望能在不使用二次开发更改系统模板的情况下来更改部分布局和内容,我应该怎么做?似乎现在的DX很强大,但是这样的功能它支持么?很高兴地告诉你:你完全可以做到!你甚至可以通过自己的内容来对页面的任意一部分内容进行更改,这就是DX插件最最强大的地方,当然前提是你需要去了解它。

现在我们来实现一个内容,我们以我自己的一个插件:帖子导读的显示部分为例。

首先,我们需要了解DX的一个概念:嵌入点。

在每个标准的DX页面都有一些DX已经设定好的嵌入点,要查看这些嵌入点,我们需要对系统的代码进行一些修改,方法如下:查找source/class/class_template.php 中找到以下代码,去除//for Developer 注释后,更新缓存即可查到。

$dev = '';//for Developer $dev = "echo '[$hookid]';";更新一下缓存,然后你就会看到如下图的内容:帖子导读需要我们在每个页面都进行调用,我们需要编写一个调用类:同样,我们需要在我们的插件目录下来编写这个插件了,在这里,我们以我们最常见的方式来写一段JS代码:HELLO,WORLD!<?phpif(!defined('IN_DISCUZ')) {exit('Access Denied');}class plugin_mtest{function global_footer(){return '<script language="javascript"> alert("Hello,world!"); </script>';}}?>保存这个文件为:source/plugin/mtest/m.class.php 假定mtest是你的标识符,然后更新缓存,再点击你的广场页面试试,看看有什么奇迹发生。

关于具体的嵌入调用规则,这里无法完全讲解给您,您可以参考:随意地输出您想要的JS代码,这也就是意味着,即使在一些没有嵌入点的地方,您也可以同输出的JS代码来改变您想作出的改变,当然,嵌入点能做的远远不止如此,那得看您能想到多少了。

现在,您基本上已经可以做常用的插件了。

不过,如果您需要一个导航栏怎么办?天啊!我需要一个类似于每日签到这样的一个签到页面,我应该怎么来做呢?不用着急,接下来我们就来实验一个导航栏,然后进去之后输出一个hello,world的代码。

首先,我们需要在设计模块里面增加一个导航栏有了它,我们就可以写:mtest.inc.php这个文件了,不过我们似乎还需要一点点模板的支持,那么我们在这个文件夹下,新建一个文件夹:template,然后在它的下面新建一个文件:mtest.htm,内容如下:{template common/header}<p>HELLO,WORLD!!!!</p>{template common/footer}在mtest.inc.php这个文件里,我们写入:<?phpif(!defined('IN_DISCUZ')) {exit('Access Denied');}include template("mtest:mtest");?>然后,更新一下缓存,然后刷新一下站点首页,看看有什么效果?hello,world!导航栏最后的现实怎么样,是不是很棒?你可以浏览我的以下插件来学习如何使用插件:我终于写出了自己的一个伟大的插件,我希望别人也能使用这个插件!我想发布这个插件,我该如何做呢?面对问题然而我们刚刚写完了一个插件,但是我们所要面临的问题才刚刚开始,我们需要考虑的内容很多,这些内容包括:1. 我使用的语言编码方式是UTF8,我希望那些使用GBK的站长也能使用我的插件2. 我可能会使用到数据库来建立我需要使用的表,我该如何建立3. 我怎么描述出我的使用条例或者安装条例4. 我怎么为我的插件进行插件描述5. 我的插件发布在哪里,是否需要收费天啊,我头都大了!我根本没有想过这个问题!如此多的问题迎面而来,我该如何解决?嘿嘿,这个时候就是体现我自己价值的时刻了,我们来慢慢的讲解吧!语言编码要解决语言编码的问题比较的麻烦,首先我们要确保我们所有程序里面没有出现中文字符,其次我们需要新建一个文件:data/plugindata/ng.php这个文件,写入内容为:1.<?php2.$scriptlang['mtest'] = array(3. 'enable' => '启用',4.);5.$templatelang['mtest'] = array(6.);7.?>然后,在你自己的程序使用前,使用:1.$mlang=$scriptlang['mtest'];来调用一下,这样,$mlang这个数组里存放的就是你要使用的内容了。

相关文档
最新文档