A-A+

织梦dedecms搜索页中支持arclist,sql等标签

2014年11月25日 14:07 汪洋大海 暂无评论 阅读 197 views 次

dede的搜索结果页面有诸多不便之处,即不能够实现使用arclist,sql等标签,这就需要我们更改一下源码,来实现调用标签。
此方法仅适用于搜索页,不适用留言板页面。
我们首先要知道DedeCMS所有的全局标签处理文件,都是在\include\helpers目录下面,一个文件就是一个标签,如果需要添加标签,也可以添加到这里。
第一步打开:/include/arc.searchview.class.php,需要添加什么标签,就先在顶部引入对应的标签处理文件。例如我这里,需要arclist,sql

1
2
3
require_once(DEDEINC."/taglib/channel.lib.php");
require_once(DEDEINC."/taglib/arclist.lib.php");  //新增
require_once(DEDEINC."/taglib/sql.lib.php"); //新增

第二步:找到下面的Display方法,可以看到,里面多处对tagname进行判断处理。因为channel系统已经有了,我们就把arclist与SQL的添加到下面就OK了。
添加到

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
else if($tagname=="channel")
            {
                //下级频道列表
                if($this->TypeID>0)
                {
                    $typeid = $this->TypeID; $reid = $this->TypeLink->TypeInfos['reid'];
                }
                else
                {
                    $typeid = 0; $reid=0;
                }
                $GLOBALS['envs']['typeid'] = $typeid;
                $GLOBALS['envs']['reid'] = $typeid;
                $this->dtp->Assign($tagid,lib_channel($ctag,$this));
            }

之后,代码如下

1
2
3
4
5
6
7
8
else if($tagname=="arclist")
{
  $this->dtp->Assign($tagid,lib_arclist($ctag,$this));
}
else if($tagname=="sql")
{
  $this->dtp->Assign($tagid,lib_sql($ctag,$this));
}

如果需要支持其它标签,方法一样,就是先在顶部引入文件,然后在Display方法中,添加判断处理语句就OK了。
文章来源:http://www.uu6c.com/document/16.html

标签:

给我留言