因本人很少修改dz程序所以不熟悉插件的开发已经添加方法 我只能用笨办法直接修改代码来实现 “特殊主题” 的添加方法。这样一来有便于我们熟悉dz的代码开发方法 ,也是菜鸟 如有说错的地方请高手们立即指正。
一、后台部分
登录后台 ---论坛--选择某一个板块 点击 ”编辑“---点击 “帖子选项”-
我们会看到 选择我们就要在此加一个选项上去。
1、通过点右键属性 查看地址 http://www.xaphp.cn/bbs/admin.ph ... ration=edit&fid=36#
根据dz代码方式我们可以知道 此功能的程序文件是 source/admincp /admincp_forums.php 这个文件
知识点:平常我们把表单直接写到html里 dz 是通过showsetting()这样的函数里确定表单的不通输入框 大家可以找到次函数去了解 在function文件夹。
找到899行左右- showsetting('forums_edit_posts_allowpostspecial', array('allowpostspecialnew', array(
- cplang('thread_poll'),
- cplang('thread_trade'),
- cplang('thread_reward'),
- cplang('thread_activity'),
- cplang('thread_debate'),
- cplang('thread_experience') 我加的
- )), $forum['allowpostspecial'], 'binmcheckbox');
复制代码
找到1414行左右- $allowpostspecialtrade = intval($_G['gp_allowpostspecialnew'][2]);
- $_G['gp_allowpostspecialnew'] = bindec(intval($_G['gp_allowpostspecialnew'][6]).intval($_G['gp_allowpostspecialnew'][5]).intval($_G['gp_allowpostspecialnew'][4]).intval($_G['gp_allowpostspecialnew'][3]).intval($_G['gp_allowpostspecialnew'][2]).intval($_G['gp_allowpostspecialnew'][1]));红色部分我加的 照猫画虎 加一个 6
复制代码
打开 source/language/lang_admincp.php 加- 'thread_experience' => '使用心得',
复制代码
这个语言。
大家这时候去测试 是否成功 也就是说是否可选。
这个主题所在的表是 pre_forum_forum 这个表 pre_forum_forum 这个字段
2、因为这几个主题在不同的用户组 所以我们需要在用户组的功能里也修改
用户---用户组 ---选择其中一个用户组---编辑 ---鼠标放 论坛相关下来选 --特殊主题 (dz后台功能多往往一个操作要找半天)
我们要新加一个
首先通过phpmyadmin 打开数据库 找到pre_common_usergroup_field 这个表 加入 allowpostexperience这个字段
打开source/admincp /admincp_usergroups.php 这个文件 622行左右 加入- showsetting('usergroups_edit_special_experience', 'allowpostexperiencnew', $group['allowpostexperience'], 'radio');
复制代码
大家明白 这是要生产一个单选框。
有了输入框 就要有接收值 进行update 我们找到 1048 行 加入- 'allowpostexperience' => $_G['gp_allowpostexperiencenew'],
复制代码
给数组里 相当于 'a'=>$_POST['xaphp'];
打开source/language/lang_admincp.php 语言包加入- 'usergroups_edit_special_experience' => '允许发起使用心得',
- 'usergroups_edit_special_experience_comment' => '选择“是”允许在论坛使用心得主题',
复制代码
这时候我们保存进行测试 。
以上使我们后台的操作
3、开始修改前台文件 首先打开source/module/forum/forum_forumdisplay.php 这个文件 这个文件是bbs列表页文件
找到764行- $showexperience = $showpoll = $showtrade = $showreward = $showactivity = $showdebate = 0;
- if($_G['forum']['allowpostspecial']) {
- $showpoll = $_G['forum']['allowpostspecial'] & 1;
- $showtrade = $_G['forum']['allowpostspecial'] & 2;
- $showreward = isset($_G['setting']['extcredits'][$_G['setting']['creditstransextra'][2]]) && ($_G['forum']['allowpostspecial'] & 4);
- $showactivity = $_G['forum']['allowpostspecial'] & 8;
- $showdebate = $_G['forum']['allowpostspecial'] & 16;
- $showexperience = $_G['forum']['allowpostspecial'] & 32;
- }
- //echo "<pre>";
- //print_r($_G['group']);exit;
- if($_G['group']['allowpost']) {
- $_G['group']['allowpostpoll'] = $_G['group']['allowpostpoll'] && $showpoll;
- $_G['group']['allowposttrade'] = $_G['group']['allowposttrade'] && $showtrade;
- $_G['group']['allowpostreward'] = $_G['group']['allowpostreward'] && $showreward;
- $_G['group']['allowpostactivity'] = $_G['group']['allowpostactivity'] && $showactivity;
- $_G['group']['allowpostdebate'] = $_G['group']['allowpostdebate'] && $showdebate;
- $_G['group']['allowpostexperience'] = $_G['group']['allowpostexperience'] && $showexperience;
- }
复制代码
红色部分是我加入的 依然照猫画虎
打开 source/post/post_newthread.php 找到537行- $statarr = array(0 => 'thread', 1 => 'poll', 2 => 'trade', 3 => 'reward', 4 => 'activity', 5 => 'debate', 127 => 'thread',6=>'experience');
复制代码
加入我红色部分。
打开 source/module/forum/forum_post.php 找到 267行- if($_G['group']['allowpostpoll']) {
- $special = 1;
- } elseif($_G['group']['allowposttrade']) {
- $special = 2;
- } elseif($_G['group']['allowpostreward']) {
- $special = 3;
- } elseif($_G['group']['allowpostactivity']) {
- $special = 4;
- } elseif($_G['group']['allowpostdebate']) {
- $special = 5;
- } elseif($_G['group']['allowpostexperience']) {
- $special = 6;
- }
复制代码
加入红色部分 。
打开source/language/forum lang_template.php 语言包加入- 'post_newthreadexperience' => '使用心得',
复制代码
通过 phpmyadmin找到pre_common_stat 这个表 加入pre_common_stat 这个字段。
打开模板文件 template/default/forum/forumdisplay.htm 加入251行- <!--{if $_G['group']['allowpost'] && ($_G['group']['allowposttrade'] || $_G['group']['allowpostpoll'] || $_G['group']['allowpostreward'] || $_G['group']['allowpostactivity'] || $_G['group']['allowpostdebate'] || $_G['setting']['threadplugins'] || $_G['forum']['threadsorts']|| $_G['group']['allowpostexperience'])}-->
复制代码
277行- <!--{if $_G['group']['allowposttrade']}--><li class="trade"><a href="forum.php?mod=post&action=newthread&fid=$_G[fid]&special=2">{lang post_newthreadtrade}</a></li><!--{/if}--><!--{if $_G['group']['allowpostexperience']}--><li><a href="forum.php?mod=post&action=newthread&fid=$_G[fid]&special=6">{lang post_newthreadexperience}</a></li><!--{/if}-->
复制代码
加入红色部分template/default/forum/forumdisplay.htm
148行- <!--{if $_G['group']['allowposttrade']}--><li$postspecialcheck[2]><a href="javascript:;">{lang post_newthreadtrade}</a></li><!--{/if}-->
- <!--{if $_G['group']['allowpostexperience']}--><li$postspecialcheck[6]><a href="javascript:;">
- {lang post_newthreadexperience}</a></li><!--{/if}-->
复制代码
红色部分。
228行- <!--{elseif $special == 5}--><span>{lang post_newthreaddebate}</span>
- <!--{elseif $special == 6}--><span>{lang post_newthreadexperience}</span>
复制代码
加入红色部分。
这时候我们测试 实现效果是 
由于我的记性不好 先把目前所实现的发上来 下一步我们要做” 使用心得“ 多搞几个输入框 然后在帖子里显示发布的内容 当然大家也可以接着研究 。
由于本人也是菜鸟 有不对的地方 请高手们多多指教。当然我这是最笨的办法 但是我们可以通过这种方法更深入的学习dz代码 。
|
|