今天一早就弄dz,说有一个地方的文章地址是动态的,这是我就郁闷了,之前好好的,怎么又出现问题了呢。
经过查看,原来是他们自己装了一个叫柒瑞首页四格v7.7 的插件,插件本身存在着这个缺陷, 所以只能又google了,
搜了下,还真的有人遇到这种问题咧
柒瑞首页四格 v7.7是支持DiscuzX2.5的一个首页多格插件,这几天一直在琢磨着将这个插件修改一下,让首页调用图片的地方可以调用自己想要调用的版块,以前的调用图片都是全站搜索的,难免会出现一些自己不想看到的图片或者广告的图片,可惜的是这个插件的后台不支持自己修改调用。而且还有一个缺点就是最新回复的地方它显示的动态的链接地址,对于我全站伪静态来说有点分歧,所以我就不得不自己修改了,这篇文章献给用这个插件的朋友,对有需要的参考修改其他的插件的朋友也可以对照参考下,开始吧。
首先按照这个插件,我们打开这个插件下的文件,文件路径是\source\plugin\toplist_7ree,我们可以看到这里面的文件就是插件运行的文件了。开始我们修改的是首页图片调用的问题。
打开toplist_7ree.class.php文件我们可以看到
- ///////////////////////////////幻灯图///////////////
- if ($style_7ree == “imgswordstyle_7ree”){
- //幻灯图获取
- //—设置—start
- $shownums = 6;//演示个数 6以内
- $searchnums = 18;//搜索总数.
- $cachelife = 1800;//缓存时间.
- $orderby = ‘dateline’;//搜索顺序:按日期dateline.按浏览次数downloads.随机rand.
- $pic_cachename = ‘showpic_7ree’;//缓存名.若与何插件冲突请修改,只要不冲突不会影响使用.
- //—设置—end
- if((@!include(‘./data/cache/cache_’.$pic_cachename.’.php’)) || $expiration < time() || $cacheshownums != $shownums || $cachesearchnums != $searchnums || $cachecachelife != $cachelife || $cacheorderby != $orderby || $cachecachename != $pic_cachename || $cachesearchfid != $searchfid) {
- //$orderby = $orderby != ‘rand’ ? ‘attach.’.$orderby : ‘rand()’;
- $fids = $searchfid ? ‘AND ‘.”t.fid IN ($searchfid)” : ”;
- $data = array();
- $query = DB::query(“SELECT a.attachment,t.tid, t.fid, t.subject FROM “.DB::table(‘forum_threadimage’).” a INNER JOIN “.DB::table(‘forum_thread’).” t ON t.tid=a.tid WHERE t.isgroup=0 AND t.displayorder>=0 AND $onoff_7ree GROUP BY a.tid ORDER BY a.tid DESC LIMIT $searchnums”);
- // $query = DB::query(“SELECT attachment FROM “.DB::table(‘forum_threadimage’).” LIMIT 5″);
- while($pic = DB::fetch($query)) {
- $pics[‘picpics’] = $_G[‘setting’][‘attachurl’].’forum/’.$pic[‘attachment’];
- $pics[‘piclinks’] = ‘forum.php?mod=viewthread%26tid=’.$pic[‘tid’];
- $pics[‘pictexts’] = str_replace(‘\”, ‘ ‘,$pic[‘subject’]);
- $pics[‘attaid’] = $pic[‘aid’];
- $datapic[] = $pics;
- }
- $cacheArray .= “\$pic_7ree=”.arrayeval($datapic).”;\n”;
- writetocache($pic_cachename, $cacheArray);
- include(DISCUZ_ROOT.’./data/sysdata/cache_’.$pic_cachename.’.php’);
- }
- if(is_array($pic_7ree) && PHP_VERSION > 4.3 ) shuffle($pic_7ree);
- $i = 0;
- $j = 0;
- while ($j < $shownums && isset($datapic[$i])) {
- if(is_readable($pic_7ree[$i][‘picpics’])) {
- $showpicpics .= $comma.$pic_7ree[$i][‘picpics’];
- $showpiclinks .= $comma.$pic_7ree[$i][‘piclinks’];
- $showpictexts .= $comma.$pic_7ree[$i][‘pictexts’];
- $comma = ‘|’;
- $j++;
- }elseif($_G[‘setting’][‘ftp’][‘on’]){
- if ($_G[‘setting’][‘ftp’][‘hideurl’]) {
- $picpics .= $comma.$boardurl.’attachment.php?aid=’.$pic_7ree[‘attaid’];
- } else {
- $picpics .= $comma.$_G[‘setting’][‘ftp’][‘attachurl’].str_replace($attachurl, ”, $pic_7ree[‘picpics’]);
- }
- $piclinks .= $comma.$pic_7ree[‘piclinks’];
- $pictexts .= $comma.$pic_7ree[‘pictexts’];
- }
- $comma = ‘|’;
- $i++;
- }
- }
这就是图片调用的代码了,我们首先要想到的是,图片调用的是从数据库里面调用图片的运行路径的,所以我们先找到数据库调用数据的地方,也就是这个地方
- $query = DB::query(“SELECT a.attachment,t.tid, t.fid, t.subject FROM “.DB::table(‘forum_threadimage’).” a INNER JOIN “.DB::table(‘forum_thread’).” t ON t.tid=a.tid WHERE t.isgroup=0 AND t.displayorder>=0 AND
- $onoff_7ree GROUP BY a.tid ORDER BY a.tid DESC LIMIT $searchnums”);
这段代码的意思是从数据库表forum_threadimage 中调用a.attachment,t.tid, t.fid, t.subject 这些字段,具体这些字段表示什么我们就不需要知道了,我们只要知道唯一个字段的保存内容就是t.fid,这个字段就是保存各个版块ID的地方。后面的$onoff_7ree 是后台设置不调用哪些版块的程序函数,所以我们可以想象一下,将不调用版块的地方改成我们只调用版块的地方就行了,那么就可以实现我们的目的了,我们将$onoff_7ree 修改成t.fid=58,这个地方的58是你想要调用的版块的ID,至于你怎么知道的,你可以看看你版块的URL地址,例如爱尚秀的URL是 http://bbs.aiwebcom.com/forum-58-1.html,这中间的58就是我们要调用的地方。修改完成后直接保存,后台更新缓存,刷新前台你就可以看见了,其实后台我们可以自己加表格,直接设置,我不想那么麻烦,有需要的朋友可以找我。
其次就是更改最新回复伪静态路径的问题了,我们打开文件夹\source\plugin\toplist_7ree\template里面的toplist_7ree.htm可以看到这段代码
- <td width=”25%”>
- <div id=”rep1″ style=”height:215px”><div id=”rep2″>
- <!–{loop $reply_post_threadlist $rthread}–>
- <div style=”overflow: hidden;height: 20px;width: 100%;”
- <!–{if $linetitle_style_7ree == “on_popupmenu_7ree”}–>
- id=”rep_7ree_$rthread[tid]” onmouseover=”showMenu({‘ctrlid’:this.id,’duration’:’1′})”
- <!–{/if}–>
- ><img src=”source/plugin/toplist_7ree/template/images/list_7ree.gif” border=”0″ align=”absmiddle”/> <a href=”forum.php?mod=viewthread&tid=$rthread[tid]” $rthread[‘highlight’] $blank_7ree><span >$rthread[view_subject]</span></a></div>
- <!–{if $linetitle_style_7ree == “on_popupmenu_7ree”}–>
- <div id=”rep_7ree_$rthread[tid]_menu” style=”width:220px;display:none”>
- <strong>$rthread[view_subject]</strong>
- {lang toplist_7ree:htm_lang_bankuai_7ree}$rthread[forumname]
- {lang toplist_7ree:htm_lang_huifu_7ree}$rthread[lastposter]
- {lang toplist_7ree:htm_lang_shijian_7ree}$rthread[lastreplytime]
- {lang toplist_7ree:htm_lang_liulan_7ree}$rthread[views]{lang toplist_7ree:htm_lang_ci_7ree} {lang toplist_7ree:htm_lang_huifu_7ree}$rthread[replies]{lang toplist_7ree:htm_lang_ci_7ree}
- </div>
- <!–{/if}–>
- <!–{/loop}–>
- </div></div>
- </td>
找到路径调用的地方
- <a href=”forum.php?mod=redirect&tid=$rthread[tid]&goto=lastpost#lastpost” $rthread[‘highlight’] $blank_7ree><span >$rthread[view_subject]</span></a>
将它修改成
- <a href=”forum.php?mod=viewthread&tid=$rthread[tid]” $rthread[‘highlight’] $blank_7ree><span >$rthread[view_subject]</span></a>
然后保存更新缓存就可以了。