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

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索

[教程] 文章编辑时可以跨频道选择系统分类

[复制链接]
hikelive 发表于 2010-5-29 09:47:39 | 显示全部楼层 |阅读模式
SupeSite插件
插件名称: 文章编辑跨频道选择分类
插件简介: 我们编辑文章时候,有时候需要垮频道选择分类,但这个操作是能够在批量处理的时候才可以,我修改了一下文章编辑页的系统分类的显示方法,使他可以垮频道选择了。
编码我用的是GBK。
语言编码: GBK简体 
插件作者: Hikelive
本帖最后由 hikelive 于 2010-5-29 10:00 编辑



第一步,我们需要改变分类的显示方法,默认是只显示当前频道的系统分类
a.将admin/admin_spaces.php文件中
  1.        $clistarr = getcategory($type);
  2.                 $categorylistarr = array('0'=>array('pre'=>'', 'name'=>'------'));
  3.                 foreach ($clistarr as $key => $value) {
  4.                         $categorylistarr[$key] = $value;
  5.                 }
复制代码
替换成
  1. //CATEGORIES
  2. $categorylistarr= getcategory('', '|----', $_SGET['catid']);
复制代码
b.将admin/tpl/spacenews.htm文件中
  1. <select name="catid" id="catid">
  2.                                         <!--{loop $categorylistarr $value}-->
  3.                                         <option value="$value[catid]"<!--{if $thevalue[catid]==$value[catid]}--> selected<!--{/if}-->>{$value[pre]}$value[name]</option>
  4.                                         <!--{/loop}-->
  5.                                         </select>
复制代码
替换成
  1. <select name="catid" id="catid">
  2.                                         <!--{loop $categorylistarr $key $cvalue}-->
  3.                                                 <!--{if $channels['types'][$key]['name']}-->
  4.                                                 <optgroup label="{$channels['types'][$key]['name']}">
  5.                                                 <!--{loop $cvalue $value}-->
  6.                                                         <option value="{$key}_{$value[catid]}" <!--{if $thevalue[catid]==$value[catid]}--> selected<!--{/if}-->>$value[pre]{$value[name]}</option>
  7.                                                 <!--{/loop}-->
  8.                                                 </optgroup>
  9.                                                 <!--{/if}-->
  10.                                         <!--{/loop}-->
  11.                                         </select>
复制代码
到这个时候,大家会发现系统分类显示的内容已经改变了,可以显示出你现有的所有文章模块的分类了;

第二步,我们需要做的是怎么将修改过的文章分类更新到数据库

默认系统是只读取分类的ID,我们需要修改为同时读取当前选择分类的类型和分类ID
a.将admin/admin_spacenews.php中
  1.                 //输入检查
  2.                 $_POST['catid'] = intval($_POST['catid']);
复制代码
替换成
  1. //输入检查
  2.                 $catarr = explode('_', $_POST['catid']);
  3.                 $_POST['catid'] = intval($catarr[1]);
  4.                 $_POST['type']=empty($catarr[0]) ? 'news' : trim($catarr[0]);
复制代码
b.在admin/admin_spacenews.php中的构建数据中添加一条记录
  1. //构建数据
  2. $setsqlarr = array(
  3. 'catid' => $_POST['catid'],
  4. 'type'=>$_POST['type'],                   //添加的数据行
  5. 'subject' => scensor($_POST['subject'], 1),
  6. 'hash' => $_POST['hash'],
  7. 'picid' => $_POST['picid']
  8. );
复制代码
资讯信息记录到现在我们就已经更新完成了。

我们还需要对资讯对应的附件类型进行修改
  1. //附件
  2. if($setsqlarr['haveattach']) {
  3. $_SGLOBAL['db']->query('UPDATE '.tname('attachments').' SET isavailable=1, type=\''.$type.'\', itemid='.$itemid.', catid=\''.$_POST['catid'].'\' WHERE hash=\''.$_POST['hash'].'\'');
  4. }
复制代码
改为:
  1. //附件
  2. if($setsqlarr['haveattach']) {
  3. $_SGLOBAL['db']->query('UPDATE '.tname('attachments').' SET isavailable=1, type=\''.$_POST['type'].'\', itemid='.$itemid.', catid=\''.$_POST['catid'].'\' WHERE hash=\''.$_POST['hash'].'\'');
  4. }
复制代码
小弟第一次研究supesite的源代码。

各位老大们路过如有发现不对之处,请指出,谢谢。

admin.rar (16.17 KB, 下载次数: 272)

评分

1

查看全部评分

 楼主| hikelive 发表于 2010-5-29 09:52:56 | 显示全部楼层
本帖最后由 hikelive 于 2010-5-29 09:58 编辑

修改前效果:
QQ截图未命名.jpg
修改后效果:
QQ截图未命名2.jpg
回复

使用道具 举报

 楼主| hikelive 发表于 2010-5-29 09:59:30 | 显示全部楼层
自己给自己顶一个
回复

使用道具 举报

tnjjbb 发表于 2010-5-29 14:05:22 | 显示全部楼层
不错啊,支持下!!!!!谢啦,楼主,收藏
回复

使用道具 举报

上山下石 发表于 2010-5-29 14:36:43 | 显示全部楼层
支持下!!!!!
回复

使用道具 举报

sost2007 发表于 2010-5-29 23:10:12 | 显示全部楼层
不错 !
www.leyitao.com
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-9-30 03:19 , Processed in 0.169466 second(s), 22 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2023, Tencent Cloud.

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