一,需要把/include/arc.searchview.class.php,复制一份,重命名为
arc.searchview_type.class.php 然后,把新文件中的类名修改为
class SearchView_type{
//省略…}
在plus/serach.php中直接引用这个文件,并实例化$sp = new SearchView_type(//……..);即可.这样的好处是,不与文章的默认搜索功能冲突.相互独立.
二,arc.searchview_type.class.php的修改部分
首先,把function CountRecord()整体替换为
/**
* 统计列表里的记录
*
* @access public
* @return string
*/
function CountRecord(){
if(isset($GLOBALS['PageNo']))
{
$this->PageNo = intval($GLOBALS['PageNo']);
}
else
{
$this->PageNo = 1;
}
$qq=$this->Keyword;
$row = $this->dsql->GetOne("SELECT count(id) as c FROM `#@__arctype` WHERE ishidden=0 and typename like '%$qq%' ");
$this->TotalResult=$row['c'];
}
然后,修改 function GetArcList ()
即把sql替换一下
$query = "SELECT arc.*,act.typedir,act.typename,act.isdefault,act.defaultname,act.namerule,
act.namerule2,act.ispart,act.moresite,act.siteurl,act.sitepath
FROM `{$this->AddTable}` arc LEFT JOIN `#@__arctype` act ON arc.typeid=act.id
WHERE {$this->AddSql} $ordersql LIMIT $limitstart,$row";
替换为
$qq=$this->Keyword;
$query ="SELECT * FROM `#@__arctype` WHERE ishidden=0 and typename like '%$qq%' LIMIT $limitstart,$row";
然后在
$row["id"]=$row["aid"];//这句的下面增加
$row["typeurl"] ='/plus/list.php?tid='.$row["id"];//方便前台调用栏目地址,其它row不需要的字段删除一下.比如$row["money"]等
search.htm模板上显示结果方法为
{dede:list perpage='20'}
<li>
<h3><a href="[field:typeurl/]" target="_blank">[field:typename/]</a></h3>
<p>栏目描述:[field:description/]</p>
<span>
</span>
</li>
{/dede:list}
搜索按钮为
<form name="formsearch" action="{dede:global.cfg_cmsurl/}/plus/search.php">
<input type="text" name="q"placeholder="搜索"/>
<input type="submit" value="点击搜索"/>
</form>
如果搜索页上type标题等不显示.查看说明http://blog.csdn.net/viqecel/article/details/80058257