dede技巧之-搜索功能增強

瀏覽: 次 編輯:nybaidu 日期:2014-02-11 17:48

世界杯体彩胜平负 www.wcfnv.icu   1站內搜索增加個僅搜索當前頻道功能
其實自己有搜索框加一個欄目選擇的項就行了,系統不必要自動去生成
高級搜索里可選的條件,你全都可以用
Quote:
<select name="channeltype" id="channeltype" style="width:100">
<option value="0" selected>--不限--</option>
<option value='4'>Flash</option>
<option value='3'>軟件</option>
<option value='2'>圖片集</option>
<option value='1'>普通文章</option>
</select>

如果不想用戶選擇,你直接加
<input type='hidden' name='channeltype' value="{dede:field name='channeltype'/}">
這樣也行

2
最新5.1隨便搜索一串數字出錯
提示信息如下:
You have an error in your SQL syntax; check the manual that corresponds to your MySQL server 

version for the right syntax to use near ') limit 500' at line 1 - Execute Query False! 

Select aid from dede_full_search where arcrank > -1 and () limit 500
搜索未過濾html標簽,導致用戶可以在搜索出注入html代碼,該補丁修改該問題和utf-8版tag標簽找不

到以及部分用戶尾部丟0的問題

覆蓋補丁后請在后臺 內容維護 搜索關鍵詞管理 處刪除不正常的關鍵詞。
解決方法:官方已經出補丁了
下載補丁包下載地址(GBK/UTF8請按版本選擇里面的文件)
//www.dedecms.com/upimg/soft/2008/patch20080407.zip
非5.1版請修改 plus/search.php文件
把Copy code$keyword = ereg_replace("[\|\"\r\n\t%\*\?\(\)\$;,'%-]"," ",trim($keyword));
替換為Copy code$keyword = ereg_replace("[\|\"\r\n\t%\*\?\(\)\$;,'%<>]"," ",trim($keyword));

3

文章關鍵字自動對應搜索的辦法
{dede:field name='keywords' runphp='yes' }
if(!empty(@me)){
$kws = explode(' ',@me);
@me = "";
foreach($kws as $k){
@me .= "<a href='/cms/plus/search.php?keyword=".urlencode($k)."' >$k</a> ";
}
@me= str_replace('+', ' ',trim(@me));
}
{/dede:field}

列表頁中的關鍵字自動連接對應辦法,//
關鍵字: [field:keywords runphp='yes']
if(!empty(@me)){
$kws = explode(' ',@me);
@me = "";
foreach($kws as $k){
@me .= "<a href='/cms/plus/search.php?keyword=".urlencode($k)."' >$k</a> ";
}
@me= str_replace('+', ' ',trim(@me));
}
[/field:keywords]

4
在文章列表頁和搜索結果頁調用來源
1 ,改 include 目錄下的 inc_arclist_view.php 

查找 

$query = "Select arc.ID,arc.title,arc.iscommend,arc.color,
arc.typeid,arc.ismake,arc.money,arc.description,arc.shorttitle,
arc.memberid,arc.writer,arc.postnum,arc.lastpost,
arc.pubdate,arc.senddate,arc.arcrank,arc.click,arc.litpic,
tp.typedir,tp.typename,tp.isdefault,tp.defaultname,
tp.namerule,tp.namerule2,tp.ispart,tp.moresite,tp.siteurl 
$addField

在 arc.writer, 后面加上 arc.source,
(感謝cms2009分享)

2,改inc_arcsearch_view.php

查找:dede_arctype.siteurl

添加,dede_archives.source
5
調用當天搜索關鍵字,并過濾色情關鍵字0 
Copy code
{dede:loop table='dede_search_keywords' sort='lasttime' row='40' if='TO_DAYS(NOW())=TO_DAYS

(FROM_UNIXTIME(lasttime)) and keyword regexp "性|黃色|成人|色" =0'} 
<a class="tag" href="/plus/search.php?keyword=[field:keyword/]">[field:keyword/]</a> 
{/dede:loop}



過濾的關鍵字可以自已加
這個應該明白是什么吧
sort='lasttime' 
sort='count' 

TO_DAYS 改成其它MYSQL時間函數還可調用一周內的關鍵字等,請自行修改!
【教程】實時更新的【熱門關鍵字】!//bbs.dedecms.com/read.php?tid=15818

6
大大提高搜索準確度的方法
原來的模板的 請將
<form action="{dede:field name='phpurl'/}/search.php" name="formsearch">
<input type="hidden" name="kwtype" value="0">
改成
<form action="{dede:field name='phpurl'/}/search.php" name="formsearch">
<input type="hidden" name="kwtype" value="1">

即0改成1

采用“僅搜索標題”的搜索方式,
<option value="title" selected>搜索標題</option> 可將這個設為默認,或者干脆刪除下面的智能模

糊,那個太不準。
<option value="titlekeyword">智能搜索</option>

-----------------------------------
高級搜索中,可以將模板中的“與”改成默認
<input type="radio" name="kwtype" value="1" checked="checked"/>

<input name="kwtype" type="radio" value="0" />


“與”應該就是value="1"的意思,下面的同樣采用“僅搜索標題”的方式


總的說來就是“與”(value="1")+“僅搜索標題”=準確 

7
如何設置讓搜索條可以搜一個漢字
需要修改2個地方
/plus/search.php 

if($keyword==""||strlen($keyword)<1){
ShowMsg("關鍵字不能小于1個字節!","-1");
exit();
}

/include/inc_arcsearch_view.php
codeif(strlen($k)<2) continue;

安全聯盟
飞艇免费计划软件 重庆时时彩个位技巧99% 3d个位单选单 双面盘玩法技巧 一分快三稳赚倍投方案 时时彩一星稳赚技巧集锦 双色球复式投注中奖对照表 北京塞车开奖结果 pk10分析号码走势图 天津时时几点开奖 看牌抢庄牛牛棋牌游戏 斗牛看牌抢庄计算器 七星彩在线人工计划倍投技巧 云南时时开奖结果app pk10模式长期稳赚 pk10定位独胆技巧