部分功能虽然直接可以修改模板,而且非常方便,但是对于某些人来讲,他们更需要那种可以随时控制的后台管理。下面教大家一些制作简单可以在后台控制功能的大致规律。耐心看下去,对于任何刚学PHP的人来讲并不难。如果有人仔细看过我以前发过的类似插件,基本上思路跟这个差不多。那些像提升沉底功能的修改比较复杂,先扔一边不谈,以后再教。现在主要教大家实现简单的后台管理功能。
第一步:
请先熟悉文件结构,一般需要修改admin目录的文件,还有模板文件,当然如果有计算或者调用函数可能要在根目录程序及include目录文件进行修改。只有这样,下面的修改才能比较熟练。
修改内容涉及Discuz!选项的,请找settings.inc.php
修改内容涉及用户组的,请找groups.inc.php
修改内容涉及论坛编辑的,请找forums.inc.php
涉及用户的,请找members.inc.php
其他的一般涉及的比较少,所以跳过。
根目录程序文件的作用,自己看着了~(少有修改的文件忽略)
admincp.php 系统设置目录管理
announcement.php 公告
attachment.php 附件
blog.php BLOG
digest.php 精华帖
forumdisplay.php 论坛板块显示
index.php 首页显示
member.php 用户
memcp.php 控制面板
misc.php 一般是用来做信息判断及信息返回用
pm.php 短信息
post.php 帖子
register.php 注册
stats.php 统计
topic.php 主题
topicadmin.php 版主管理选项
viewpro.php 用户信息
viewthread.php 帖子正文
一般如果你修改了上面的根目录文件,打开模板目录,找文件名与程序名对应相等的文件即可。
例如viewthread.php控制的文件就有viewthread.htm,以此类推。
第二步:
数据库操作
一般这种功能需要在数据库建立表,然后把设置的内容写在表里面进行变量判断。
举例:ALTER TABLE `cdb_usergroups` ADD `allowsread` tinyint(3) unsigned NOT NULL default '1';
cdb_是你的表名前缀,一般无须修改。
usergroups是TABLE名称,请对照PhpMyAdmin着看。不同文件控制的TABLE是不一样的。
allowsread为写入的数据表列的名称,至于怎么取随便,不过不要跟现有的重复即可。
tinyint(3)表示这个为字符类型,最大长度为3,default '1'表示默认取值为1。1可以自己修改。
还有个例子适用于setting表,因为这个表只有2列,需要增加行,这个时候要用下面的代码去升级。
INSERT INTO cdb_settings VALUES ('test', '');
cdb_settings跟上面的一样的意思,TEST是你定义的变量名,当然这个为字符类型。
希望大家能看懂~本人语言实在不怎么样。
第三步:
开始修改文件了,首先打开你需要的文件(ADMIN目录下面的)。
一般找到:
showsetting('usergroups_edit_set_read_perm', 'allowsetreadpermnew', $group['allowsetreadperm'], 'radio');在下面加一行。
类似这样的,加在哪里就要对照原来的后台看了。
其中usergroups_edit_set_read_perm是名称,你可以随便改,用来作为描述,例如”控制帖子是否显示“等等。
allowsetreadpermnew是下面数据库赋值时候用的,可以自定义,但是要记住。不能和下面的重复。
allowsetreadperm这个就不能自定义了,还记得你升级数据库那步吗?
如上面的ADD `allowsread`,那么你要用allowsread去替换allowsetreadperm
后面的radio表示类型,radio是单选,text是字符类型,textarea表示大段文本,多选比较麻烦,需要添加一些数组做判断,这里不再要求。当然跟你的数据库类型也有关,radio一般是int类型.字符一般是char类型。
然后找allowpost='$allowpostnew',在后面加上allowsetreadperm='$allowsetreadpermnew',对照着上面发现规律了吧。其中不要遗漏逗号和双引号。
再查找allowpost,(有两个做两次一样的)后面加allowsetreadperm,不要遗漏逗号。规律很明显吧。我们继续。
查找'1',(有两个做两次一样的),在后面加上'1',这个步骤一般是这个,部分情况不能这样改,这里不再说明了。
行了,现在你已经可以在后台任意控制你添加的功能了,但是怎么才能利用呢?接着看下面。
第四步:
打开对应的模板文件,在你需要的地方加上语句即可。
如果是判断类型,添加<!--{if $变量名 == 函数值}-->接着执行什么内容<!--{/if}-->.很简单吧。
如果是控制字符显示类型,添加<!--{if !empty($变量名)}-->$变量名<!--{/if}-->也很简单吧。
其中变量名,请填写升级数据库时候用的那个。
更复杂点,如果希望系统返回错误提示的话,一般打开对应的根目录文件。
在合适的地方添加
if($变量名判断及分析内容){
showmessage('你的错误信息提示');
}
当然有些情况直接找对应的if语句段加就是了,变量名选择数据库升级的那个。
涉及帖子发表的,请打开include/newthread.inc.php和editpost.inc.php这些,修改方法如上。
保存文件,更新缓存。一个你添加的后台控制功能完成了。很简单吧,这些是我经过实践得出的大概经验。欢迎大家批评指正。也希望对HACK新手有所帮助。
[ 本帖最后由 sw08 于 2006-5-2 14:46 编辑 ] |