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

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索

uchome首页调用discuz最新帖子及热帖,只需要修改俩文件

[复制链接]
zuimengt 发表于 2009-10-29 21:15:34 | 显示全部楼层 |阅读模式
UCHome插件
语言编码: GBK简体 
插件名称: uchome首页调用discuz帖子
插件作者: 仝飞
适用版本: UCHome 2.0
本帖最后由 zuimengt 于 2009-10-31 22:02 编辑

官方发布的ucenter+uchome2+discuz7只是将discuz和uchome的用户整合到了一起,并没有实现信息的互相调用。

由于我一直用uchome做主页,用户就很少去看discuz论坛里面的帖子了,上网搜搜,都是discuz调用uchome的,没有一个uchome调用discuz的!!所以,花费了一个周末的时间,做了这个插件,实现uchome首页对discuz最新帖子及热帖的调用(不用js调,js调用对搜索引擎不友好,这种数据直接调用有非常好的seo效果),只需要修改两个文件。

第一个要修改的文件:home\source\notework.php,修改内容如下:
    第109行
  1. $shownum = 10;
复制代码
修改为
  1. $shownum = 8;
复制代码
,话题显示数量减少,防止首页不整齐;
    第206行,插入如下代码:
  1. //uchome调用discuz最新主题/回复及热帖,作者:仝飞,演示网站:www.kxss.net
  2. //最新主题/回复
  3. $cachefile = S_ROOT.'./data/cache_network_diz_thread.txt';
  4. if(check_network_cache('dizthread')) {
  5.         $diz_threadlist = unserialize(sreadfile($cachefile));
  6. } else {
  7.         //显示数量
  8.         $shownum = 10;
  9.        
  10.         $diz_threadlist = array();
  11.         $query = $_SGLOBAL['db']->query("SELECT t.tid,t.subject,p.author,p.authorid,t.fid,f.name
  12.                 FROM `cdb_threads` t left join `cdb_forums` f on t.fid=f.fid left join `cdb_posts` p on (t.tid=p.tid AND t.lastposter=p.author AND t.lastpost=p.dateline)
  13.                 ORDER BY t.lastpost desc
  14.                 LIMIT 0,$shownum");
  15.         //$no=1; //如果帖子序号想从1开始排序,可加入这个变量
  16.         while ($value = $_SGLOBAL['db']->fetch_array($query)) {
  17.                 //$value['no'] = $no;
  18.                 //$no++;
  19.                 $value['shortsubject'] = getstr($value['subject'], 50);
  20.                 $diz_threadlist[] = $value;
  21.         }
  22.         if($_SGLOBAL['network']['thread']['cache']) {
  23.                 swritefile($cachefile, serialize($diz_threadlist));
  24.         }
  25. }
  26. foreach($diz_threadlist as $key => $value) {
  27.         realname_set($value['uid'], $value['username']);
  28.         $diz_threadlist[$key] = $value;
  29. }
  30. //热帖
  31. $cachefile = S_ROOT.'./data/cache_network_diz_hot_thread.txt';
  32. if(check_network_cache('dizhotthread')) {
  33.         $diz_hot_threadlist = unserialize(sreadfile($cachefile));
  34. } else {
  35.         //显示数量
  36.         $shownum = 12;
  37.        
  38.         $diz_hot_threadlist = array();
  39.         $query = $_SGLOBAL['db']->query("SELECT subject,tid FROM `cdb_threads`
  40.                 ORDER BY (`cdb_threads`.`replies`*20+`cdb_threads`.`views`) DESC
  41.                 LIMIT 0,$shownum");
  42.         while ($value = $_SGLOBAL['db']->fetch_array($query)) {
  43.                 //$value['tagname'] = getstr($value['tagname'], 20);
  44.                 $value['shortsubject'] = getstr($value['subject'], 26);
  45.                 $diz_hot_threadlist[] = $value;
  46.         }
  47.         if($_SGLOBAL['network']['thread']['cache']) {
  48.                 swritefile($cachefile, serialize($diz_hot_threadlist));
  49.         }
  50. }
  51. foreach($diz_hot_threadlist as $key => $value) {
  52.         realname_set($value['uid'], $value['username']);
  53.         $diz_hot_threadlist[$key] = $value;
  54. }
  55. //结束,uchome调用discuz最新帖子/回复及热帖,作者:仝飞,演示网站:www.kxss.net
复制代码
,OK,第一个文件修改完毕。

第二个要修改的文件:home\template\default\network.htm,这个文件要修改地方多,建议直接替覆盖掉:
    第270行到298行,全部替换为如下代码:
  1. <style>
  2.         #hotpost .side_rbox_c{height:347px;}
  3.                 #hotpost ul{padding:10px;}
  4.                         #hotpost li{width: 100%; background: url(/home/template/default/image/dot.gif) no-repeat 0 49%; text-indent: 10px; overflow: hidden; text-overflow: ellipsis; padding:3px; }
  5. </style>
  6. <div class="nbox">
  7.         <div class="nbox_c">
  8.                 <h2 class="ntitle"><span class="r_option"><a href="/bbs">更多帖子</a></span>开心大杂院最新主题/回复 &raquo;</h2>
  9.                 <div class="tlist">
  10.                         <table cellpadding="0" cellspacing="1">
  11.                                 <tbody>
  12.                 <!--如果序号想从1开始,可将下面的$key换成$value[no]-->
  13.                                 <!--{loop $diz_threadlist $key $value}-->
  14.                                         <tr <!--{if $key%2==1}-->class="color_row"<!--{/if}-->>
  15.                                                 <td class="ttopic"><div class="ttop"><div><span>$key</span></div></div><a href="/bbs/viewthread.php?tid=$value[tid]" title="$value[subject]" target="_blank">$value[shortsubject]</a></td>
  16.                                                 <td class="tuser"><a href="space.php?uid=$value[authorid]" target="_blank"><!--{avatar($value[authorid],small)}--></a> <a href="space.php?uid=$value[authorid]" target="_blank">$value[author]</a></td>
  17.                                                 <td class="tgp"><a href="/bbs/forumdisplay.php?fid=$value[fid]" target="_blank">$value[name]</a></td>
  18.                                         </tr>
  19.                                 <!--{/loop}-->
  20.                                 </tbody>
  21.                         </table>
  22.                 </div>
  23.         </div>
  24.     <div id="hotpost" class="nbox_s side_rbox side_rbox_w">
  25.             <div class="side_rbox_c">
  26.             <h2 class="ntitle"><span class="r_option"><a href="/bbs">更多帖子</a></span>热帖 &raquo;</h2>
  27.                         <ul>
  28.                         <!--{loop $diz_hot_threadlist $key $value}-->
  29.                                 <li><a href="/bbs/viewthread.php?tid=$value[tid]" title="$value[subject]" target="_blank">$value[shortsubject]</a></li>
  30.                         <!--{/loop}-->
  31.                         </ul>
  32.                 </div>
  33.         </div>
  34. </div>
复制代码
注意,上面代码中有一行<!--如果序号想从1开始,可将下面的$key换成$value[no]-->是注解,仅供开发者看的,实际应用中要删掉此句。


    替换完后,接着将328(上面替换完以后的行号)到347行替换为如下代码:
  1. <script language="javascript">
  2. function tfshow(v){
  3.         if(v==1){
  4.                 document.getElementById("tfmore").innerHTML="<a href='space.php?do=thread&view=all'>更多话题</a>";
  5.                 document.getElementById("tfsort").style.display="none";
  6.                 document.getElementById('tfcontent1').style.display="";
  7.                 document.getElementById('tfcontent2').style.display="none";
  8.                 document.getElementById("tftitle1").style.color="#000";
  9.                 document.getElementById("tftitle1").style.width="100px";
  10.                 document.getElementById("tftitle2").style.color="#999";
  11.                 document.getElementById("tftitle2").style.width="50px";
  12.         }
  13.         if(v==2){
  14.                 document.getElementById("tfmore").innerHTML="<a href='space.php?do=event&view=recommend'>更多活动</a>";
  15.                 document.getElementById("tfsort").style.display="";
  16.                 document.getElementById('tfcontent1').style.display="none";
  17.                 document.getElementById('tfcontent2').style.display="";       
  18.                 document.getElementById("tftitle1").style.color="#999";
  19.                 document.getElementById("tftitle1").style.width="50px";
  20.                 document.getElementById("tftitle2").style.color="#000";
  21.                 document.getElementById("tftitle2").style.width="100px";
  22.         }
  23.         return true;
  24. }
  25. </script>
  26. <div class="nbox">
  27.         <div class="nbox_c">
  28.         <h2 class="ntitle"><span class="r_option" id="tfmore"><a href="space.php?do=thread&view=all">更多话题</a></span>
  29.             <div onmouseover="tfshow(1);" id="tftitle1" style="width:100px; float:left;color:#000;cursor:pointer">话题 &raquo; </div>
  30.         <div onmouseover="tfshow(2);" id="tftitle2" style="width:50px; float:left; color:#999;cursor:pointer">活动 &raquo; </div>
  31.         <span id="tfsort" style="display:none">
  32.         <!--{loop $_SGLOBAL[eventclass] $value}-->
  33.             &nbsp; <a href="space.php?do=event&view=all&type=going&classid=$value[classid]">$value[classname]</a></li>
  34.         <!--{/loop}-->
  35.         </span>
  36.         </h2>
  37.             <div class="tlist" id="tfcontent1" style="height:250px">
  38.                         <table cellpadding="0" cellspacing="1">
  39.                                 <tbody>
  40.                                 <!--{loop $threadlist $key $value}-->
  41.                                         <tr <!--{if $key%2==1}-->class="color_row"<!--{/if}-->>
  42.                                                 <td class="ttopic"><div class="ttop"><div><span>$value[hot]</span></div></div><a href="space.php?uid=$value[uid]&do=thread&id=$value[tid]" target="_blank">$value[subject]</a></td>
  43.                                                 <td class="tuser"><a href="space.php?uid=$value[uid]" target="_blank"><!--{avatar($value[uid],small)}--></a> <a href="space.php?uid=$value[uid]" target="_blank">{$_SN[$value[uid]]}</a></td>
  44.                                                 <td class="tgp"><a href="space.php?do=mtag&tagid=$value[tagid]">$value[tagname]</a></td>
  45.                                         </tr>
  46.                                 <!--{/loop}-->
  47.                                 </tbody>
  48.                         </table>
  49.                 </div>
  50.                 <ul class="elist" id="tfcontent2" style="display:none">
  51.                 <!--{loop $eventlist $value}-->
  52.                         <li>
  53.                                 <h3><a href="space.php?do=event&id=$value[eventid]" target="_blank">$value[title]</a></h3>
  54.                                 <p class="eimage"><a href="space.php?do=event&id=$value[eventid]" target="_blank"><img src="$value[pic]" alt=""/></a></p>
  55.                                 <p><span class="gray">时间:</span> <!--{date('n-j H:i',$value[starttime])}--> - <!--{date('n-j H:i',$value[endtime])}--></p>
  56.                                 <p><span class="gray">地点:</span> $value[province] $value[city] $value[location]</p>
  57.                                 <p><span class="gray">发起:</span> <a href="space.php?uid=$value[uid]">{$_SN[$value[uid]]}</a></p>
  58.                                 <p class="egz">$value[membernum] 人参加<span class="pipe">|</span>$value[follownum] 人关注</p>
  59.                         </li>
  60.                 <!--{/loop}-->
  61.                 </ul>
  62.         </div>
复制代码
OK,整个修改完毕!
    对于不懂代码的朋友,可以直接将我附件中的两个文件替换你们的对应文件就可以了,替换完了(注意network.htm文件中的<!--如果序号想从1开始,可将下面的$key换成$value[no]-->行请删去),别忘了把home\data\tpl_cache目录下的全部模板缓存文件清空一下,这样刷新首页就可以看到效果了。

评分

1

查看全部评分

 楼主| zuimengt 发表于 2009-10-29 21:16:26 | 显示全部楼层
自己抢占自己的沙发位置,哈哈哈,卖卖广告  
www.kxss.net 开心上社
回复

使用道具 举报

younger9125 发表于 2009-10-29 22:15:35 | 显示全部楼层
潜力帖子!!!!!!!!!
回复

使用道具 举报

guokun 发表于 2009-10-29 22:18:02 | 显示全部楼层
帮顶了  很强大  是静态的吗?
回复

使用道具 举报

1teng 发表于 2009-10-30 11:15:20 | 显示全部楼层
问个问题。。我们论坛是放在跟目录 用二级域名解析的。


用你的方法了。。。首页框架出来了   但里面都没有内容


论坛格式是http://bbs.
回复

使用道具 举报

 楼主| zuimengt 发表于 2009-10-31 08:42:39 | 显示全部楼层
楼上的,这个插件跟域名没有关系,只跟数据库有关。
你查查你的bbs的数据库前缀,是不是cdb_,可能是因为你修改了数据库默认的前缀名造成的无法显示数据。
如果是的话,修改home\source\notework.php文件,把里面select语句中cdb_都修改成你自己定义的数据库前缀,这样就ok了。。。
回复

使用道具 举报

 楼主| zuimengt 发表于 2009-10-31 08:47:41 | 显示全部楼层
4# guokun


    不是静态的,是实时调用,但有缓存,可以提高效率
回复

使用道具 举报

lxyc 发表于 2009-10-31 12:48:23 | 显示全部楼层
留个脚印谢谢!
回复

使用道具 举报

七子狴犴 发表于 2009-10-31 15:03:46 | 显示全部楼层
替换完后,接着将228(上面替换完以后的行号)到347行替换为如下代码:



这一句行号有误,应是328,请楼主检查!
回复

使用道具 举报

 楼主| zuimengt 发表于 2009-10-31 22:01:36 | 显示全部楼层
对不起哦,疏忽了,是328行,不是228!!!!

更正,感谢楼上
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-12-24 04:19 , Processed in 0.031212 second(s), 6 queries , Gzip On, Redis On.

Powered by Discuz! X3.4

Copyright © 2001-2023, Tencent Cloud.

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