在织梦CMS(DedeCMS)中,默认情况下搜索页面是不支持dede标签的,这给很多开发者带来了不便,为了解决这个问题,可以通过修改系统文件来支持dede标签调用,如arclist和channelartlist等标签。
具体步骤如下:
1、打开include/arc.searchview.class.php文件:找到以下代码行
require_once(DEDEINC."/taglib/hotwords.lib.php"); require_once(DEDEINC."/taglib/channel.lib.php");
2、在上述代码下面添加以下几行代码:
require_once(DEDEINC."/taglib/arclist.lib.php"); require_once(DEDEINC."/taglib/channelartlist.lib.php");
3、继续向下查找到以下代码段:
else if($tagname=="hotwords") { $this>dtp>Assign($tagid,lib_hotwords($ctag,$this)); }
4、在该代码段下面添加以下代码:
else if($tagname=="arclist") { $this>dtp>Assign($tagid,lib_arclist($ctag,$this)); } else if($tagname=="channelartlist") { $this>dtp>Assign($tagid,lib_channelartlist($ctag,$this)); }
5、保存文件:完成以上步骤后,保存文件并上传到服务器上,搜索页面应该已经支持arclist和channelartlist标签的调用了。
6、自定义字段调用:如果还需要实现自定义字段的调用,需要进一步修改查询语句,找到以下代码行:
$query = "Select * from{$this>AddTable}
arc left joindede_addonarticle
addon on addon.aid=arc.id where {$this>AddSql} $ordersql limit $limitstart,$row";
将其修改为:
$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 joindede_arctype
act on arc.typeid=act.id left joindede_addonarticle
addon on addon.aid=arc.id where {$this>AddSql} $ordersql limit $limitstart,$row";
这样,搜索页面就支持了自定义字段的调用。
表格示例
步骤 | 操作内容 |
1 | 打开include/arc.searchview.class.php文件,找到指定代码行 |
2 | 在指定代码行下添加新的require_once语句 |
3 | 继续向下查找指定代码段 |
4 | 在指定代码段下添加新的else if条件语句 |
5 | 保存文件并上传到服务器 |
6 | 修改查询语句以支持自定义字段调用 |
相关问答FAQs
1、问:如何让dedecms搜索结果页支持更多的标签调用?<br>
答:可以通过在include/arc.searchview.class.php文件中添加相应的require_once语句来实现更多标签的调用,要支持myad、php和sql标签,可以在文件中添加以下代码:<br>
require_once(DEDEINC."/taglib/myad.lib.php"); require_once(DEDEINC."/taglib/php.lib.php"); require_once(DEDEINC."/taglib/sql.lib.php");
然后在else if条件语句中添加相应的标签处理逻辑。
2、问:如何在搜索结果页显示自定义字段?<br>
答:要在搜索结果页显示自定义字段,需要修改include/arc.searchview.class.php文件中的查询语句,找到以下代码行:<br>
$query = "Select * from{$this>AddTable}
arc left joindede_addonarticle
addon on addon.aid=arc.id where {$this>AddSql} $ordersql limit $limitstart,$row";
将其修改为:<br>
$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 joindede_arctype
act on arc.typeid=act.id left joindede_addonarticle
addon on addon.aid=arc.id where {$this>AddSql} $ordersql limit $limitstart,$row";
这样就可以在搜索结果页中显示自定义字段了。
原创文章,作者:未希,如若转载,请注明出处:https://www.kdun.com/ask/1102260.html
本网站发布或转载的文章及图片均来自网络,其原创性以及文中表达的观点和判断不代表本网站。如有问题,请联系客服处理。
发表回复