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

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索

[插件] 搜索结果显示帖子內容 [0226 Release] [关键字:搜索 内容显示]

[复制链接]
maxz38 发表于 2006-1-6 21:34:53 | 显示全部楼层 |阅读模式
最后修改:02/26
适用版本:Discuz!4.0.0
插件名称:搜索结果显示帖子內容
作  者:MaxZ
数据升级:无
修改文件:search.php, 增加search.func.php
修改模板:search.htm, search_threads.htm
安装难度:中等
技术支持:QQ or MSN
功能简介
全文搜索后在结果显示页面中可以直接显示帖子內容(不增加查询,不修改数据结构,支持显示Smilies、Discuz! code等)
可在后台设置是否启用、字数限制以及积分不足提示
支持搜索结果直接链接到相应帖


演      示
http://max8126.008.net/
用户名:Test
密码:test1



=======================================================
说明:
0226版为正式版,内附安装文件以及详细的说明文件
覆盖前请先做好文件备份
有任何问题可以通过QQ、MSN或者PM联系我
=======================================================


请根据内附说明文件安装
觉得用起来还可以的请回帖 谢谢


[ 本帖最后由 maxz38 于 2006-3-4 18:58 编辑 ]
 楼主| maxz38 发表于 2006-1-6 21:35:29 | 显示全部楼层

Search.php修改(共5处)[0226更新]

1.查找(15行)

  1. require_once DISCUZ_ROOT.'./forumdata/cache/cache_forums.php';
复制代码

在下面添加

  1. require_once DISCUZ_ROOT.'./plugins/searchshow/searchshow.func.php';                                                        //SearchShow
复制代码

====================================================================
2.查找(22行)

  1. if(!submitcheck('searchsubmit', 1) && empty($page)) {
复制代码

在上面添加

  1. if(!empty($pid) && !empty($tid)){
  2.         loc($pid, $tid);//Searchshow跳转到相应帖
  3. }
复制代码

====================================================================
3.查找(75行)

  1.                 $query = $db->query("SELECT * FROM {$tablepre}threads WHERE tid IN ($index[tids]) AND displayorder>='0' ORDER BY $orderby $ascdesc LIMIT $start_limit, $tpp");
  2.                 while($thread = $db->fetch_array($query)) {
  3.                         $threadlist[] = procthread($thread);
  4.                 }

  5.                 $multipage = multi($index['threads'], $tpp, $page, "search.php?searchid=$searchid&orderby=$orderby&ascdesc=$ascdesc&searchsubmit=yes");
复制代码

替换成

  1. /*-------------------SearchShow Main-------------------*/

  2. $tmp = explode('|', $index['tids']);
  3. $index['tids'] = $tmp[0];
  4. $ps = intval($tmp[1]);
  5. $pids = $tmp[2];
  6.                
  7. if($post) {
  8.         $index['threads'] = $ps;
  9.             if($discuz_uid && $adminid == 3) {
  10.                 $modadd1 = ', md.uid AS ismoderator';
  11.                 $modadd2 = "LEFT JOIN {$tablepre}moderators md ON md.uid='$discuz_uid' AND md.fid=f.fid";
  12.         } else {
  13.                 $modadd1 = $modadd2 = '';
  14.         }
  15.         $query = $db->query("SELECT p.*, t.readperm, t.price, t.subject AS tsubject, f.allowsmilies, f.allowbbcode, f.allowimgcode, f.allowhtml, f.jammer, m.groupid, n.username AS tauthor $modadd1 FROM {$tablepre}posts p
  16.         LEFT JOIN {$tablepre}threads t On t.tid = p.tid
  17.         LEFT JOIN {$tablepre}forums f On f.fid = t.fid        $modadd2
  18.         LEFT JOIN {$tablepre}members m On m.uid = p.authorid
  19.         LEFT JOIN {$tablepre}members n On n.uid = t.authorid
  20.         WHERE p.pid IN ($pids) ORDER BY pid $ascdesc LIMIT $start_limit, $tpp");
  21. } else {
  22.         $query = $db->query("SELECT * FROM {$tablepre}threads WHERE tid IN ($index[tids]) AND displayorder>='0' ORDER BY $orderby $ascdesc LIMIT $start_limit, $tpp");
  23. }

  24. while($thread = $db->fetch_array($query)) {
  25.         if($post) {
  26.                 include_once DISCUZ_ROOT.'./include/discuzcode.func.php';                                                //To show discuz code.
  27.                 $thread = showproc($thread);
  28.         }
  29.         $threadlist[] = procthread($thread);
  30. }
  31. /*-------------------Process End-------------------*/

  32. $multipage = multi($index['threads'], $tpp, $page, "search.php?searchid=$searchid&orderby=$orderby&ascdesc=$ascdesc&post=$post&searchsubmit=yes");
  33. //SearchShow -- Modified By MaxZ
复制代码

====================================================================
4.查找(220行)

  1. $threads = $tids = 0;
  2. $query = $db->query("SELECT DISTINCT t.tid, t.closed $sqlsrch ORDER BY tid DESC LIMIT $maxsearchresults");
  3. while($thread = $db->fetch_array($query)) {
  4.         if($thread['closed'] <= 1) {
  5.                 $tids .= ','.$thread['tid'];
  6.                 $threads++;
  7.         }
  8. }
复制代码

替换成

  1. /*-------------------SearchShow PreProcess-------------------*/
  2. $threads = $ps = $tids = $pids = 0;
  3. $sql = ($srchtype == 'fulltext') ? 'p.pid, t.tid, t.closed' : 't.tid, t.closed';
  4. $query = $db->query("SELECT DISTINCT $sql $sqlsrch ORDER BY ".($srchtype == 'fulltext' ? 'pid' : 'tid')." DESC LIMIT $maxsearchresults");
  5. //$query = $db->query("SELECT DISTINCT t.tid, t.closed $sqlsrch ORDER BY tid DESC LIMIT $maxsearchresults");
  6. if ($srchtype == 'fulltext') {
  7.         while($thread = $db->fetch_array($query)) {
  8.                 if($thread['closed'] <= 1) {
  9.                         $pids .= ','.$thread['pid'];
  10.                         $ps++;
  11.                         if (!strstr(",$tids,", ",$thread[tid],")) {
  12.                                 $tids .= ','.$thread['tid'];
  13.                                 $threads++;
  14.                         }
  15.                 }
  16.         }
  17. } else {
  18.         while($thread = $db->fetch_array($query)) {
  19.                 $tids .= ','.$thread['tid'];
  20.                 $threads++;
  21.         }
  22. }
  23. $tids .= ($srchtype == 'fulltext') ? '|'.$ps.'|'.$pids : '';
  24. /*-------------------PreProcess End-------------------*/
复制代码

====================================================================
5.查找(238行)

  1. showmessage('search_redirect', "search.php?searchid=$searchid&orderby=$orderby&ascdesc=$ascdesc&searchsubmit=yes");
复制代码

替换成

  1. //SearchShow -- Modified By MaxZ
  2.                 showmessage('search_redirect', "search.php?searchid=$searchid&orderby=$orderby&ascdesc=$ascdesc&post=$post&searchsubmit=yes");
复制代码


结束:)

[ 本帖最后由 maxz38 于 2006-2-26 14:04 编辑 ]

评分

1

查看全部评分

回复

使用道具 举报

jimmyjimmyqqq 发表于 2006-1-6 21:36:53 | 显示全部楼层
沙發,有演示嗎?
回复

使用道具 举报

 楼主| maxz38 发表于 2006-1-6 21:41:54 | 显示全部楼层
等……等我放几张截图
回复

使用道具 举报

夜の郎 发表于 2006-1-6 21:45:51 | 显示全部楼层
搞个演示 首先。。
回复

使用道具 举报

eddyhk 发表于 2006-1-6 22:02:13 | 显示全部楼层
終於等到你了...THX!
回复

使用道具 举报

amoshuang 发表于 2006-1-6 22:48:39 | 显示全部楼层
支持一个先!

借宝地招文字链接

只换文字链接

Binice青春痘论坛
http://www.binice.com

我三种页面,均有联盟的链接
http://www.binice.com/index.php
http://www.binice.com/default.html
http://www.binice.com/hphtml/?forum-6.html

愿意交换,麻烦先做好链接,pm我

[ 本帖最后由 amoshuang 于 2006-3-30 01:10 编辑 ]
回复

使用道具 举报

haohao036 发表于 2006-1-7 00:10:52 | 显示全部楼层
安装成功。。正在测试中。
回复

使用道具 举报

uv123 发表于 2006-1-7 00:16:19 | 显示全部楼层
:)满实用的功能!!支持一下
回复

使用道具 举报

 楼主| maxz38 发表于 2006-1-7 20:32:02 | 显示全部楼层
更新了一下
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-12-23 01:51 , Processed in 0.039107 second(s), 6 queries , Gzip On, Redis On.

Powered by Discuz! X3.4

Copyright © 2001-2023, Tencent Cloud.

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