dedecms自定义模型字段作为关键字进行搜索

dedecms按照自定义字段搜索教程
dedecms按照自定义字段搜索教程: 由(博客 分享)
之前看到很多人想要自定义字段搜索功能,官方又不给出,而我自己也正需要自定义字段搜索,于是就花了半天时间研究了下DEDE的搜索代码,终于研究出来了,现在分享给大家好了,废话不多说了,具体操作如下
一:打开你的数据库,找到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,找到如下代码
if($this-&SearchType != "titlekeyword")
{$kwsqlarr[] = " ying_full_search.title like '%$k%' ";
$kwsqlarr[] = " ying_full_search.title like '%$k%' ";
$kwsqlarr[] = " ying_full_search.addinfos like '%$k%' ";
$kwsqlarr[] = " ying_full_search.keywords like '%$k%' ";
分析下代码SearchType !=
"titlekeyword,搜索类型为titilekeyword,即前台搜索下拉框中的智能模糊搜索,$kwsqlarr[] = "
ying_full_search.title like '%$k%'
";为搜索full_search表中的title字段,好了,知道了这段代码的作用,我们就知道该如何添加自己的搜索了下面把我的代码作为例子
if($this-&SearchType != "skill"){
$kwsqlarr[] = " ying_full_search.myskill like '%$k%' ";
$kwsqlarr[] = " ying_full_search.myexchange like '%$k%' ";
$kwsqlarr[] = " ying_full_search.myexchange like '%$k%' ";
$kwsqlarr[] = " ying_full_search.myskill like '%$k%' ";
if($this-&SearchType != "goods"){
$kwsqlarr[] = " ying_full_search.mygoods like '%$k%' ";
$kwsqlarr[] = " ying_full_search.myexchange like '%$k%' ";
$kwsqlarr[] = " ying_full_search.myexchange like '%$k%' ";
$kwsqlarr[] = " ying_full_search.mygoods like '%$k%' ";}
,因为我的myskill和myexchange2个字段是一起的,而mygoods和myexgoods是一起的,所以我用了2个if
四:修改搜索框代码,代码在哪我就不说了吧,大家都知道在哪,搜索框原代码为
&&/b&select name="searchtype"
id="searchtype"&&&/b&option
value="titlekeyword" selected&智能模糊搜索
&&/b&option
value="title"&仅搜索标题&&/b&/select&
这里只需修改上面的代码,修改后的代码为
&&/b&select name="searchtype"
id="searchtype"&&&/b&option value="skill"
selected&搜技能
&&/b&option
value="goods"&搜物品&&/b&/select&
value="",这填的是第三步中添加的SearchType后面的,即搜索类型,这个你自己定义
五:还是打开/include/inc_arcsearch_view.php,找到//处理一些特殊字段,把你之前的自定义的字段添加进去,这里还是以我的为例子在先面添加
$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/]这样连在一起是显示不出来的好了,写的这么详细,相信大家应该看的懂吧,虽然有点复杂,不过有总比没有好,呵呵。更多
原创教程请到& 去浏览
我的更多文章:
( 08:52:44)( 08:50:45)( 08:44:54)( 08:41:30)( 13:19:57)
已投稿到:
以上网友发言只代表其个人观点,不代表新浪网的观点或立场。Google提供的广告dedecms各模板调用自定义字段的方法
这篇文章主要为大家介绍了dedecms各模板调用自定义字段的方法,包括了首页、列表页、搜索页与内容页的调用方法,需要的朋友可以参考下
本文实例讲述了dedecms各模板调用自定义字段的方法。分享给大家供大家参考。具体实现方法如下:
1. 首页调用自定义字段:代码如下:{dede:arclist addfields='自定义字段1,自定义字段2,.....' row='3' channelid='1'}
[field:自定义字段1/]
[field:自定义字段2/]
{/dede:arclist}注:此处channelid 是模型id号,一般都是普通文章。
2. 列表页调用自定义字段:代码如下:{dede:list pagesize='3'addfields='自定义字段1,自定义字段2,....'}
[field:自定义字段1/]
[field:自定义字段2/]
{/dede:list}3. 搜索页调用自定义字段.
打开 include/extend.func.php 文件,在文件末尾添加下面代码:代码如下:function Search_addfields($id,$result){
$mnkj = $dsql-&GetOne("SELECT * FROM `dede_addsoft` where aid='$id'");$name=$mnkj[$result];
}其中 addosoft是要调用自定义字段的附加表,在织梦后台核心-&频道模型-&内容模型管理可以看到,软件模型一般是 addoshop,普通文章一般是 addonarticle,这个需要根据具体的情况来更改,其他的不用修改.
然后打开 include/arc.searchview.class.php 这个文件,搜索& //处理一些特殊字段&,在下面添加如下代码:代码如下:$row["自定义字段"]=Search_addfields($row["id"],"自定义字段");
如果有多个自定义字段这添加多行,添加之后就完成了,最后一步就是在搜索模板也调用了,在search.htm中 使用[field:自定义字段/] 就可以调用出来了.
4. 内容页调用自定义字段:
直接使用:代码如下:[field:自定义字段/]
希望本文所述对大家的dedecms建站有所帮助。DEDE怎么然搜索功能带上可以搜索自定义字段呢|DedeCMS 安装使用 - DedeCMS网站内容管理系统官方论坛 - Powered by phpwind
查看完整版本: [--
DEDE怎么然搜索功能带上可以搜索自定义字段呢
比如现在是这样 &&&&&&&& &&&& &form action=&{dede:global name='cfg_phpurl'/}/search.php& name=&formsearch&&&&&&&&&&&&&&&ul class=&search&&&&&&&&&&&&&&&&&&&&&&&li&&&&&&&&&&&&&&&&&&&&&&label for=&s1&&搜索:&/label&&&&&&&&&&&&&&&&&&/li&&&&&&&&&&&&&&&&&&li&&&&&&&&&&&&&&&&&&& &input type=&hidden& name=&kwtype& value=&1& /&&&&&&&&&&&&&&&&&&/li&&&&&&&&&&&&&&&&&&li&&&&&&&&&&&&&&&&&&&&&&input name=&keyword& id=&keyword& type=&text& class=&Se_Box&&&size='10'&&/&&&&&&&&&&&&&&&&&&/li&&&&&&&&&&&&&&&&&&&&&&li& &input type=&image& src=&{dede:global.cfg_cmsurl/}/images/search.png& /&&/li& &&&&&&&&&&&&&/ul& &&&&&&&&&&&&&&&&&&&/form&
但是现在只能是按标题来搜索。。 那我在后台+了个自定义字段 比如 编号。。。。 那么我怎么可以用这个编号也可以搜索到呢!~ 求详解。。! 谢谢!~~~
有人回答下吗 汗
定啊。我也需要知道啊。 跪地求神人。。神人在那里。&&&&那里来神人。。 其实高人很多他不想说 。。&&&&好人也很多。 没有看到
后台,核心-〈内容模型管理〉,修改对应的模型,再编辑这个模型的搜索,勾选你要加入搜索的字段。
dedecms自定义字段搜索教程之前看到很多人想要自定义字段搜索功能,官方又不给出,而我自己也正需要自定义字段搜索,于是就花了半天时间研究了下DEDE的搜索代码,终于研究出来了,现在分享给大家5.1版的还没用,原因是之前用5.0的改了很多东西,再升级成5.1量太大了,所以这次写个自定义字段搜索的教程也是适用5.0版,.5.1的也应该类似吧好了,废话不多说了,具体操作如下一:打开你的数据库,找到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 codeif($this-&SearchType != &titlekeyword&){$kwsqlarr[] = & dede_full_search.title like '%$k%' &;}else{$kwsqlarr[] = & dede_full_search.title like '%$k%' &;$kwsqlarr[] = & dede_full_search.addinfos like '%$k%' &;$kwsqlarr[] = & dede_full_search.keywords like '%$k%' &;}分析下代码SearchType != &titlekeyword,搜索类型为titilekeyword,即前台搜索下拉框中的智能模糊搜索,$kwsqlarr[] = & dede_full_search.title like '%$k%' &;为搜索full_search表中的title字段,好了,知道了这段代码的作用,我们就知道该如何添加自己的搜索了下面把我的代码作为例子Copy codeif($this-&SearchType != &skill&){$kwsqlarr[] = & dede_full_search.myskill like '%$k%' &;$kwsqlarr[] = & dede_full_search.myexchange like '%$k%' &;&&&&&&&&&&&&&&}else{&&&&&&&&&&&&&&$kwsqlarr[] = & dede_full_search.myexchange like '%$k%' &;$kwsqlarr[] = & dede_full_search.myskill like '%$k%' &;}if($this-&SearchType != &goods&){$kwsqlarr[] = & dede_full_search.mygoods like '%$k%' &;&&$kwsqlarr[] = & dede_full_search.myexchange like '%$k%' &;&&&&&&&&&&}else{&&&&&&&&&&&&&&$kwsqlarr[] = & dede_full_search.myexchange like '%$k%' &;$kwsqlarr[] = & dede_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/]这样连在一起是显示不出来的好了,写的这么详细,相信大家应该看的懂吧,虽然有点复杂,不过有总比没有好,呵呵 风情友情提示:修改前先备份哦。
不行啊&&第一步就不行我也看到一些网上的教材 第一步数据库就找不到这个 !!~
我也试了一下!呜呜呜
没人回答呀?
谢谢,学习了!
现在是没人回答啊,不知道有没有解决
顶一下,我也需要啊&& 电影你我他&&
查看完整版本: [--
Powered by
Gzip enabled1500个ecshop项目经验,多个高率插件,完整的经验总结
&ecshop交流群:()&&
ecshop2014最新模板
价格:¥1100
价格:¥1100
价格:¥1100
价格:¥1100
价格:¥2000
价格:¥1500
dedecms调用文章自定义字段
dedecms调用文章自定义字段,我们可以通过对dedecms文章页面功能进行修改。将dedecms在详细页面输入他的url地址,然后进行处理。dedecms提供了强大的后台扩展功能。我们随便修改dedecms数据
  &&&& dedecms调用文章自定义字段,我们可以通过对dedecms文章页面功能进行修改。将dedecms在详细页面输入他的url地址,然后进行处理。dedecms提供了强大的后台扩展功能。我们随便修改,就能很方便的完成该操作。
alter table dede_archives add column aurl varchar(64);
2:article_edit.htm
&&&&& &td height=&24& colspan=&2& class=&bline&&&table width=&800& border=&0& cellspacing=&0& cellpadding=&0&&
&&&&&&&&& &tr&
&&&&&&&&&&& &td width=&90&&&URL:&/td&
&&&&&&&&&&& &td width='408'& style=&text-align:&&&input name=&aurl& type=&text& id=&title& value=&&?php echo $arcRow['aurl']; ?&& style=&width:388px&&&/td&
&&&&&&&&&&& &td width=&90&&&/td&
&&&&&&&&&&& &td&&/td&
&&&&&&&&& &/tr&
&&&&&&& &/table&&/td&
3:article_add.htm
&&&&& &td height=&24& colspan=&2& class=&bline&&&table width=&800& border=&0& cellspacing=&0& cellpadding=&0&&
&&&&&&&&& &tr&
&&&&&&&&&&& &td width=&90&&&URL:&/td&
&&&&&&&&&&& &td width='408'& style=&text-align:&&&input name=&aurl& type=&text& id=&title& value=&&?php echo $arcRow['aurl']; ?&& style=&width:388px&&&/td&
&&&&&&&&&&& &td width=&90&&&/td&
&&&&&&&&&&& &td&&/td&
&&&&&&&&& &/tr&
&&&&&&& &/table&&/td&
4:article_edit.php增加以下字段
aurl='$aurl',
&5:中这样调用。
&& &a href=&[field:arcurl/]& class=&title& title=&[field:title/]&&[field:title/]&/a&
------分隔线----------------------------
相关文章:
ecshop热门技术

我要回帖

更多关于 dedecms 的文章

 

随机推荐