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

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索

[发布] [应求]快速切换城市1.0forDZ5

[复制链接]
wxyuan90 发表于 2006-11-11 06:28:43 | 显示全部楼层 |阅读模式
插件名称:快速切换城市
适用版本:DZ5,DZ4应该可以,可能会有查找找不到
作  者:wxyuan90
数据升级:有
文件修改:有
最后更新:无
演  示:参考kooxun.com,我的切换城市更快一些
功能说明:在顶部菜单栏添加城市的下拉菜单,城市切换后将不可见其他城市的帖子
备  注:
看到不少人要,捣鼓出来了
目前功能很简单,仅限于在header切换城市/不同城市之间的帖子不被看到,要其他功能的可以提

注意事项:
五分钟的小东西,没经过反复测试,不过应该没有大问题

较演示的改进处:
1。放弃JS菜单,改用简洁大方的下拉菜单(原来那个JS菜单我实在不敢恭维。。)
2。切换城市方式优化,体现在我的插件基本上任意页面(甚至包括大多数插件的页面)进行切换城市都不会跳转到别的页面
3。城市名称轻便灵活,可以任意删改城市,除了0号为“所有”外,其他可以轻松添加,删除
4。其他区别由于没有演示站点的源码,不得而知
5。最大的改进:本插件完全免费公开,哈哈


全新安装开始:


1、升级数据库
  1. ALTER TABLE cdb_threads ADD cid int(11) DEFAULT 0;
复制代码

卸载语句
  1. ALTER TABLE cdb_threads DROP cid;
复制代码


2、修改include/common.inc.php
在最后?>之前加

  1. //快速切换城市添加开始
  2. $city_name[0]='全部';
  3. $city_name[1]='上海';
  4. $city_name[2]='南京';
  5. $city_name[3]='杭州';
  6. $city_id=$_COOKIE['cid']?$_COOKIE['cid']:0;
  7. if ($city<count($city_name) && isset($city)) {setCookie(cid,$city,time()+20*60*3600);$city_id=$city;}
  8. //快速切换城市添加结束,作者wxyuan90
复制代码

其中城市名称可以随意添加,注意序号要是连续正整数。

3、修改include/newthread.inc.php
查找
  1.         $db->query("INSERT INTO {$tablepre}threads (fid, readperm, price, iconid, typeid, author, authorid, subject, dateline, lastpost, lastposter, displayorder, digest, blog, special, attachment, subscribed, moderated, supe_pushstatus)
  2.                 VALUES ('$fid', '$readperm', '$price', '$iconid', '$typeid', '$author', '$discuz_uid', '$subject', '$timestamp', '$timestamp', '$author', '$displayorder', '$digest', '$blog', '$special', '$attachment', '$subscribed', '$moderated', '$supe_pushstatus')");
复制代码

替换为
  1. //快速切换城市替换开始
  2.         $db->query("INSERT INTO {$tablepre}threads (fid, readperm, price, iconid, typeid, author, authorid, subject, dateline, lastpost, lastposter, displayorder, digest, blog, special, attachment, subscribed, moderated, supe_pushstatus,cid)
  3.                 VALUES ('$fid', '$readperm', '$price', '$iconid', '$typeid', '$author', '$discuz_uid', '$subject', '$timestamp', '$timestamp', '$author', '$displayorder', '$digest', '$blog', '$special', '$attachment', '$subscribed', '$moderated', '$supe_pushstatus','$city_id')");
  4. //快速切换城市替换结束,作者wxyuan90
复制代码


4、修改模板/templates/default/forumdisplay.htm多个模板请自行照样修改
查找
  1.         <!--{loop $threadlist $key $thread}-->
复制代码

后面加
  1. <!--{if $city_id==0 || $city_id==$thread['cid']}--><!--本行为快速切换城市添加,作者wxyuan90-->
复制代码

查找
  1.                         <br>{lang forum_lastpost_by} <!--{if $thread['lastposter']}--><a href="viewpro.php?username=$thread[lastposterenc]">$thread[lastposter]</a><!--{else}-->{lang anonymous}<!--{/if}-->
  2.                 </td></tr></table>
复制代码

后面加
  1. <!--{/if}--><!--本行为快速切换城市添加,作者wxyuan90-->
复制代码


5、修改修改模板/templates/default/header.htm多个模板请自行照样修改
查找
  1. | <a href="faq.php">{lang faq}</a>
复制代码

后面加

  1. <!--快速切换城市添加开始-->
  2. | <select onchange='window.location.href=window.location.href+"?&city="+this.value';>
  3. <option value=$city_id>当前:$city_name[$city_id]</option>
  4. <!--{loop $city_name $tp $cnm}-->
  5. <option value=$tp>$cnm</option>
  6. <!--{/loop}-->
  7. </select>
  8. <!--快速切换城市添加结束,作者wxyuan90-->
复制代码


6、最后也是最重要的一步
回帖报喜,提出你的宝贵意见

至此,安装完成

[ 本帖最后由 wxyuan90 于 2007-7-11 23:42 编辑 ]
 楼主| wxyuan90 发表于 2006-11-11 06:28:59 | 显示全部楼层
2.0开发暂时搁浅,上学去了,下个礼拜回来再说


2.0实现功能:根据选择的城市显示不同的板块,具体某版在那些城市中显示由后台控制

1.0=>2。0
升级安装开始
1、升级数据库
  1. ALTER TABLE cdb_forums ADD cities varchar(50) DEFAULT NULL;
复制代码

卸载语句
  1. ALTER TABLE cdb_forums DROP cities;
复制代码


2、编辑/templates/default/admincp.lang.php
  1.         'forums_threadtypes_forums' => '关联论坛',
复制代码

在之前加
  1. //快速切换城市添加开始
  2. 'forums_cities' => '城市过滤',
  3. 'forums_cities_comment' => '用英文逗号隔开城市编码(city=x中的x),则只显示给选择指定城市的人,留空为显示给所有人',
  4. //快速切换城市添加结束,作者wxyuan90
复制代码


3、编辑/admin/forums.inc.php
  1. showsetting('forums_sub_horizontal', 'forumcolumnsnew', $forum['forumcolumns'], 'text');
复制代码
  1. showsetting('forums_edit_edit_rules', '', '', '<input class="radio" type="radio" name="alloweditrulesnew" value="0" '.$checkrules[0].'> '.$lang['forums_edit_edit_rules_html_none'].'<br><input class="radio" type="radio" name="alloweditrulesnew" value="1" '.$checkrules[1].'> '.$lang['forums_edit_edit_rules_html_no'].'<br><input class="radio" type="radio" name="alloweditrulesnew" value="2" '.$checkrules[2].'> '.$lang['forums_edit_edit_rules_html_yes']);
复制代码


都后面加
  1.                         showsetting('forums_cities', 'citiesnew', $forum['cities'], 'text');//快速切换城市添加
复制代码

  1. $db->query("UPDATE {$tablepre}forums SET name='$namenew',forumcolumns='".intval($forumcolumnsnew)."' WHERE fid='$fid'");
复制代码

替换为
  1. $db->query("UPDATE {$tablepre}forums SET name='$namenew',forumcolumns='".intval($forumcolumnsnew)."' ,cities='$citiesnew' WHERE fid='$fid'");//快速切换城市替换
复制代码

  1.                         $db->query("UPDATE {$tablepre}forums SET status='$statusnew', name='$namenew', styleid='$styleidnew', allowshare='$allowsharenew',
  2.                                 allowpostspecial='$allowpostspecialnew', allowpaytoauthor='$allowpaytoauthornew', allowhtml='$allowhtmlnew', allowbbcode='$allowbbcodenew', allowimgcode='$allowimgcodenew',
  3.                                 allowsmilies='$allowsmiliesnew', alloweditrules='$alloweditrulesnew', modnewposts='$modnewpostsnew',
  4.                                 recyclebin='$recyclebinnew', jammer='$jammernew', allowanonymous='$allowanonymousnew', forumcolumns='$forumcolumnsnew', threadcaches='$threadcachesnew',
  5.                                 disablewatermark='$disablewatermarknew', autoclose='".intval($autoclosenew * $autoclosetimenew)."' $fupadd
  6.                                 WHERE fid='$fid'");
复制代码

替换为
  1.                         $db->query("UPDATE {$tablepre}forums SET status='$statusnew', name='$namenew', styleid='$styleidnew', allowshare='$allowsharenew',
  2.                                 allowpostspecial='$allowpostspecialnew', allowpaytoauthor='$allowpaytoauthornew', allowhtml='$allowhtmlnew', allowbbcode='$allowbbcodenew', allowimgcode='$allowimgcodenew',
  3.                                 allowsmilies='$allowsmiliesnew', alloweditrules='$alloweditrulesnew', modnewposts='$modnewpostsnew',
  4.                                 recyclebin='$recyclebinnew', jammer='$jammernew', allowanonymous='$allowanonymousnew', forumcolumns='$forumcolumnsnew', threadcaches='$threadcachesnew',
  5.                                 disablewatermark='$disablewatermarknew', autoclose='".intval($autoclosenew * $autoclosetimenew)."' ,cities='$citiesnew' $fupadd
  6.                                 WHERE fid='$fid'");//快速切换城市替换
复制代码



4、编辑/include/cache.func.php
  1.                 case 'forums':
  2.                         $table = 'forums f';
  3.                         $cols = 'f.fid, f.type, f.name, f.fup, ff.viewperm, a.uid';
  4.                         $conditions = "LEFT JOIN {$tablepre}forumfields ff ON ff.fid=f.fid LEFT JOIN {$tablepre}access a ON a.fid=f.fid AND a.allowview='1' WHERE f.status='1' ORDER BY f.type, f.displayorder";
  5.                         break;
复制代码

替换为
  1.                 case 'forums':
  2.                         $table = 'forums f';
  3.                         $cols = 'f.fid, f.type, f.name, f.fup, ff.viewperm, f.cities, a.uid';
  4.                         $conditions = "LEFT JOIN {$tablepre}forumfields ff ON ff.fid=f.fid LEFT JOIN {$tablepre}access a ON a.fid=f.fid AND a.allowview='1' WHERE f.status='1' ORDER BY f.type, f.displayorder";
  5.                         break;//快速切换城市替换
复制代码



4、编辑模板/templates/default/discuz.htm
  1. <!--{loop $cat[forums] $forumid}-->
  2.                                 <!--{eval $forum=$forumlist[$forumid];}-->
复制代码

后面加
  1. <!--{if (!$forum['cities'] || !array_search($city_id,explode(',',$forum['cities'])))}--><!--快速切换城市添加-->
复制代码

  1. <td align="center" style="word-break: keep-all">$forum[moderators]</td></tr>
复制代码

后面加
  1. <!--{/if}--><!--快速切换城市添加-->
复制代码



***暂停开发***

好多人都不明白
我解释一下这个插件吧

比如你切换城市到上海,然后发了一个帖子,那么切到南京和切到杭州的人就无法看见你的帖子了,但是对装之前发的帖子无效,以后可能会加编辑帖子的时候可以改变这个帖子所属的城市

另外所谓“城市”只是一个概念,只要修改common.inc.php那里的那个数组,可以做成各种其他的切换
例子
$city_name[0]='所有学校';
$city_name[1]='A小学';
$city_name[2]='B小学';
$city_name[3]='C中学';
…………

[ 本帖最后由 wxyuan90 于 2006-11-19 17:31 编辑 ]
回复

使用道具 举报

yinxingfa 发表于 2006-11-11 08:06:05 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
回复

使用道具 举报

紫云杉 发表于 2006-11-11 08:23:14 | 显示全部楼层
回复

使用道具 举报

花石子 发表于 2006-11-11 08:35:14 | 显示全部楼层
是什么呢


看看
回复

使用道具 举报

karl907 发表于 2006-11-11 08:42:31 | 显示全部楼层
哎喲。。。不錯哦!!!
回复

使用道具 举报

wlqc 发表于 2006-11-11 08:53:06 | 显示全部楼层
要支持啊 要支持!~~~
回复

使用道具 举报

wlqc 发表于 2006-11-11 08:53:24 | 显示全部楼层
问一下.这个是什么原理啊?
有什么作用的呀!~
回复

使用道具 举报

zhouc 发表于 2006-11-11 09:17:13 | 显示全部楼层
测试一下
回复

使用道具 举报

qizai9873 发表于 2006-11-11 09:23:37 | 显示全部楼层
收藏起来
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-11-16 10:53 , Processed in 0.036445 second(s), 3 queries , Gzip On, Redis On.

Powered by Discuz! X3.4

Copyright © 2001-2023, Tencent Cloud.

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