欢迎光临
我们一直在努力

织梦dedecms基于advancedsearch高级查询实现自定义字段查询、显示问题

如何根据自定义字段进行搜索,同时还要在advancedsearch显示自定义字段,dedecms织梦实际上是支持自定义字段的查询的,但是不支持在高级搜索advancedsearch显示自定义字段,要进行小小的改造。

一、在模型管理里面勾选要进行高级查询的字段:

后台->核心->内容模型管理

 

根据你添加字段的频道,点击放大镜,进入高级搜索(精确搜索)界面:

这里自定义字段以“测试1”、“测试2”为例,然后粘贴到你需要搜索的模板中,样式自行调整。

二、修改搜索模板

和普通搜索的search.htm一样,advancedsearch高级搜索也是有模板的,默认很丑,下面是修改方法:

找到?plus/advancedsearch.php

找到末尾如下代码

if(file_exists(DEDEROOT."/templets/default/$template"))
{
    $templatefile = DEDEROOT."/templets/default/$template";
}
else
{
    $templatefile = DEDEROOT."/templets/default/advancedsearch.htm";

}

“default”为系统默认模板路径,根据自己模板修改即可(备注:advancedsearch.htm 需要拷贝到自己模板下)

这就完成了。

三、让自定义搜索支持头部、尾部、channel、channelartlist:

在advancedsearch.htm 头部标签 换成:

<?php pasterTempletDiy("default/head.htm");?>

尾部标签换成:

<?php pasterTempletDiy("default/footer.htm");?>

/include/extend.func.php?最后边增加

function pasterTempletDiy($path){
    require_once(DEDEINC."/arc.partview.class.php");
    global $cfg_basedir,$cfg_templets_dir;
    $tmpfile = $cfg_basedir.$cfg_templets_dir."/".$path; //模版文件的路径
    $dtp = new PartView();
    $dtp->SetTemplet($tmpfile);
    $dtp->Display();
}

这样就搞定了

四、在模板advancedsearch.htm如何显示自定义字段:

/plus/advancedsearch.php?找到如下代码:

if($mid < -1){
    $where = str_replace('main.', 'addon.', $where);
    $orderby = str_replace('main.', 'addon.', $orderby);
    $query = "SELECT addon.*, arctype.* FROM $addontable addon
    LEFT JOIN dede_arctype arctype ON arctype.id = addon.typeid
    $where $orderby";
} else {
    $query = "SELECT main.id AS aid,main.*,main.description AS description1, type.*
    FROM $maintable main
    LEFT JOIN dede_arctype type ON type.id = main.typeid
    LEFT JOIN $addontable addon ON addon.aid = main.id
    $where  $orderby";
}

 

将以下代码:

$query = "SELECT main.id AS aid,main.*,main.description AS description1, type.*

 

修改为:

$query = "SELECT  addon.*,main.id AS aid,main.*,main.description AS description1, type.*

然后,在模板advancedsearch.htm中使用:

{dede:field.自定义字段/}

 

最后调用即可。

赞(0) 打赏
未经允许不得转载:新起点博客 » 织梦dedecms基于advancedsearch高级查询实现自定义字段查询、显示问题
分享到: 更多 (0)

评论 抢沙发

评论前必须登录!

 

觉得文章有用就打赏一下文章作者

非常感谢你的打赏,我们将继续给力更多优质内容,让我们一起创建更加美好的网络世界!

支付宝扫一扫打赏

微信扫一扫打赏