织梦DedeCMS搜索指定多个栏目文档的办法

针对织梦高级开发教程会用到,指定栏目搜索及多个栏目合并搜索的要求。织梦DedeCMS默认的搜索可以搜索全部栏目或者指定的搜索某一个栏目,不能搜索指定的多个栏目,需要修改后台文件才能实现。 1、在搜索框表单里加个typeid提交过去,例如
 针对织梦高级开发教程会用到,指定栏目搜索及多个栏目合并搜索的要求。织梦DedeCMS默认的搜索可以搜索全部栏目或者指定的搜索某一个栏目,不能搜索指定的多个栏目,需要修改后台文件才能实现。
1、在搜索框表单里加个typeid提交过去,例如:
<form name="search" action="/plus/search.php"> 
<input type="hidden" name="typeid" value="1,2,3">
</form>
2、打开/plus/search.php找到
$typeid = (isset($typeid) && is_numeric($typeid)) ? $typeid : 0;
删除这一行后,继续找到,删除这一行
$typeid = intval($typeid);
3、打开 /include/arc.searchview.class.php 找到:
$ksqls[] = " arc.typeid IN (".GetSonIds($this->TypeID).") ";
改成:
//指定了多个栏目时
            if( preg_match('#,#', $this->TypeID) )
            {
                $typeids = explode(',', $this->TypeID);
                foreach($typeids as $ttid) {
                    $typeidss[] = GetSonIds($ttid);
                }
                $typeidStr = join(',', $typeidss);
                $typeidss = explode(',', $typeidStr);
                $typeidssok = array_unique($typeidss);
                $typeid = join(',', $typeidssok);
                $ksqls[] = " arc.typeid IN ($typeid) ";
            }
            else
            {
                $ksqls[] = " arc.typeid IN (".GetSonIds($this->TypeID).") ";
            }
本站部分内容来源互联网,如果有图片或者内容侵犯您的权益请联系我们删除!

相关文档推荐

织梦获取上级栏目ID的模板标签及顶级栏目ID模板标签的方法如下: 1、织梦调用上级栏目ID的模板标签: {dede:field.reid/}  2、织梦调用顶级栏目ID的模板标签: {dede:field.typeid function='GetTopid(@me)'/}  3、织梦Dedecms获取顶级栏目id,名称及链接的模板标签
未审核文档的TAG会显示在TAG列表页面, 固然点击进入TAG时, 相关的未审核文章不会显示出来, 这样对用户体验是很不好的. DEDECMS暂时没有提供这个功能,所以要解决这个问题, 让DEDECMS不显示未审核文档的TAG, 就要修改TAG的显示库文件 tag.lib.php。 方
很多时候用dedecms织梦建站的时候会遇到在调用缩略图,要怎么做到有缩略图的时候才显示,无缩略图就不显示,方法如下 [field:array runphp='yes']@me = (strpos(@me['litpic'],'defaultpic') ? "":""); [/field:array] 带内容简介示例代码如下: [field:array runphp=’yes’
dedecms5.7 采集文章导出时出现类似于Character postion **, field Error的错误,这样的错误会导致文章里没有内容。 引起这个问题的原因可能是description中一些特殊符号引起的,如果你不想出现这个问题,可以在采集文章时过滤掉description,导出文档后再批
dedecms我们用火车头采集文章时发现,文章入库后显示发布时间为1970-1-1,这个一般是什么原因造成的,该如何操作呢? 开始我以为是发布模块有问题,因为这个不需要采集这个时间,所以我在发布模块里面把时间标签给删除了,但加上后,还是同
在{dede:arclist}这个标签中大家都知道有个[field:global.autoindex/],这个变量每生成一行就+1,我们有时候在使用{dede:sql}标签也需要加上这个功能,需要怎么操作呢? 首先打开/include/taglib/sql.lib.php这