本文目录一览:
- 1、怎么让dedecms搜索页面支持标签调用及自定义字段调用
- 2、如何在DEDE首页中添加搜索框
- 3、dedecms 搜索的search.php和advancedsearch.php分别提交到这两个文
- 4、dede search.php 搜索页面如何调用自定义字段
- 5、织梦search.php接收什么参数
怎么让dedecms搜索页面支持标签调用及自定义字段调用
您好,朋友。跟版网团队很高兴为您解答:
这里讲述dedecms模板搜索页search.php支持arclist和channelartlist标签调用的方法,步骤如下(如需调用其他标签可自行扩展):
打开include/arc.searchview.class.php.
查找:
代码如下:
require_once(DEDEINC.”/taglib/hotwords.lib.php”);
require_once(DEDEINC.”/taglib/channel.lib.php”);
下面插入
代码如下:
require_once(DEDEINC.”/taglib/arclist.lib.php”);
require_once(DEDEINC.”/taglib/channelartlist.lib.php”);
查找
代码如下:
else if($tagname==”hotwords”)
{
$this-dtp-Assign($tagid,lib_hotwords($ctag,$this));
}
下面插入
代码如下:
else if($tagname==”arclist”)
{
$this-dtp-Assign($tagid,lib_arclist($ctag,$this));
}
else if($tagname==”channelartlist”)
{
$this-dtp-Assign($tagid,lib_channelartlist($ctag,$this));
}
如何还需要实现定义字段调用的话那么就继续:修改include/arc.searchview.class.php
找到
$query = “Select
整行修改为:
$query = “Select addon.*,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 `dede_arctype` act on arc.typeid=act.id left join `dede_addonarticle` addon on addon.aid=arc.id where {$this-AddSql} $ordersql limit $limitstart,$row”;
这样织梦模板搜索页search.php就支持arclist和channelartlist标签的调用了。
希望本文所述对大家的dedecms建站有所帮助。
如何在DEDE首页中添加搜索框
先打开官方默认的模板代码,把搜索代码复制过去,然后再慢慢修改CS,匹配到觉得合理的情况就完成了,具体操作如下:
第一步:找到对应的搜索模板的代码
我们都知道,dede有自带的搜索功能,我们只要找到对应的模板,然后把我们想要的代码拿出来就行了。具体如下:
首先进入templets–default–search.htm打开文件,大约在19行,找到代码。如下图:
第二步:修改代码
把官方的代码整理成自己想要的代码:比如
div class=”search_box”
form name=”formsearch” action=”/plus/search.php” method=”post”
input name=”q” type=”text” id=”search-keyword” value=”在这里搜索…”
onfocus=”if(this.value==’在这里搜索…’){this.value=”;}” onblur=”if(this.value==”){this.value=’在这里搜索…’;}” /
select name=”searchtype” id=”search-option”
option value=”title” selected=’1’检索标题/option
option value=”titlekeyword”智能模糊/option
/select
input value=”搜 索” type=”submit” /
/form
/div
代码修改完成,把它放入我们的搜索模块里面。
第三步:新建一个search.htm模板
新建一个search.htm模板,并把它放入我们的自定义模板文件夹里,(用于展示搜索结果)然后就是代码的调用了。在你想要显示搜索结果的地方,加入调用标签即可。
列表调用标签为:
{dede:list perpage=’4′}{/dede:list}
底层调用字段和首页、列表页调用字段一样。
dedecms 搜索的search.php和advancedsearch.php分别提交到这两个文
您好,朋友,您的模板文件中必须有search.htm和advancedsearch.htm这两个模板文件才可以。如下图所示,希望我的回答能够帮到您。不会修改请参考织梦官方的模板文件。
dede search.php 搜索页面如何调用自定义字段
一:打开你的数据库,找到dede_full_search这个表,在里面把你自定义的字段添加进表,这里以我的网站为例,我添加了myskill,myexchange,mygoods,myexgoods,这4个字段
二:打开/member/article_add_action.php,找到”//更新全站搜索索引”,在下面的一段代码中插入刚才添加的4个字段,例:“’myskill’=$myskill,’myexchange’=$myexchange,’mygoods’=$mygoods,’myexgoods’=$myexgoods”,这里说明一下,前面的’myskill’为你发布文章时添加的自定义字段,后面的为刚才在表dede_full_search中添加的字段(建议在表中添加字段的时候写成跟你之前字定义的字段一样)这里最好写成一样,可以省去很多麻烦
三:打开/include/inc_arcsearch_view.php,搜索titlekeyword,找到如下代码
Copy code
if($this-SearchType != “titlekeyword”){
$kwsqlarr[] = ” #@__full_search.title like ‘%$k%’ “;
}else{
$kwsqlarr[] = ” #@__full_search.title like ‘%$k%’ “;
$kwsqlarr[] = ” #@__full_search.addinfos like ‘%$k%’ “;
$kwsqlarr[] = ” #@__full_search.keywords like ‘%$k%’ “;
}
分析下代码SearchType != “titlekeyword,搜索类型为titilekeyword,即前台搜索下拉框中的智能模糊搜索,$kwsqlarr[] = ” #@__full_search.title like ‘%$k%’ “;为搜索full_search表中的title字段,好了,知道了这段代码的作用,我们就知道该如何添加自己的搜索了下面把我的代码作为例子
Copy code
if($this-SearchType != “skill”){
$kwsqlarr[] = ” #@__full_search.myskill like ‘%$k%’ “;
$kwsqlarr[] = ” #@__full_search.myexchange like ‘%$k%’ “;
}else{
$kwsqlarr[] = ” #@__full_search.myexchange like ‘%$k%’ “;
$kwsqlarr[] = ” #@__full_search.myskill like ‘%$k%’ “;
}
if($this-SearchType != “goods”){
$kwsqlarr[] = ” #@__full_search.mygoods like ‘%$k%’ “;
$kwsqlarr[] = ” #@__full_search.myexchange like ‘%$k%’ “;
}else{
$kwsqlarr[] = ” #@__full_search.myexchange like ‘%$k%’ “;
$kwsqlarr[] = ” #@__full_search.mygoods like ‘%$k%’ “;
}
,因为我的myskill和myexchange2个字段是一起的,而mygoods和myexgoods是一起的,所以我用了2个if else语句
四:修改搜索框代码,代码在哪我就不说了吧,大家都知道在哪,搜索框原代码为
Copy code
select name=”searchtype” id=”searchtype”
option value=”titlekeyword” selected智能模糊搜索/option
option value=”title”仅搜索标题/option
/select
这里只需修改上面的代码,修改后的代码为
Copy code
select name=”searchtype” id=”searchtype”
option value=”skill” selected搜技能/option
option value=”goods”搜物品/option
/select
value=””,这填的是第三步中添加的SearchType后面的,即搜索类型,这个你自己定义
五:还是打开/include/inc_arcsearch_view.php,找到//处理一些特殊字段,把你之前的自定义的字段添加进去,这里还是以我的为例子
在先面添加
Copy code
$row[“myskill”] = $this-GetRedKeyWord(cn_substr($row[“myskill”],$infolen));
$row[“myexchange”] = $this-GetRedKeyWord(cn_substr($row[“myexchange”],$infolen));
$row[“mygoods”] = $this-GetRedKeyWord(cn_substr($row[“mygoods”],$infolen));
$row[“myexgoods”] = $this-GetRedKeyWord(cn_substr($row[“myexgoods”],$infolen));
其实只要添加 $row[“myskill”] = $row[“myskill”];(另外3个我就不写了,类似)就够了,但是我为什么要这样写呢,这样写的作用就是让你在搜索结果页调用的时候显示关键子为红色
六:最后一步了,打开templets/default/search.htm,这里就是搜索页调用的模版,这里要调用只要[field:你自定义的字段/],还是以我的网站为例[field:myskill/],这样调用就OK,但是要注意一点,假如你2个字段放一起调用中间最好加个空格或者其他符号,假如[field:myskill/][field:mygoods/]这样连在一起是显示不出来的
织梦search.php接收什么参数
织梦云模板为您解答:
search.php接收两个参数:
input type=”hidden” name=”kwtype” value=”0″ /
input name=”q” type=”text” /
一个是隐藏的name为kwtype的参数,另外就是name=q的关键词参数。
希望我的回答能够帮到您。下面织梦支持arclist和chanelartlist也许能够有用!
原创文章,作者:小蓝,如若转载,请注明出处:https://www.506064.com/n/151941.html