就是放上去模标签也不会有任何的结果,这是为什么呢?
因为搜索页面search.php 没有文章列表核心类,我觉得有个很好的解决方法,就是加一个文章列表类进去!非常简单
其实有两种方法可以让dede搜索页面上获取文章列表的
先说说dede内置的”自定义宏标记“吧,这个也是非常强大的,很少人会用到,呵呵
所在位置,, dede后台---模板--自定义宏标记 增加一个新的标记,这样就可以在搜索页面上调用此自定义宏标记了
使用方法很简单就是把
"自定义标记的调用方法:
{dede:mytag name='标记名称' ismake='是否含板块代码(yes 或 no)' typeid='栏目ID'/}
1、name 标记名称,该项是必须的属性,以下 2、3是可选属性;
2、ismake 默认是 no 表示设定的纯HTML代码, yes 表示含板块标记的代码;
3、typeid 表示所属栏目的ID,默认为 0 ,表示所有栏目通用的显示内容,在列表和文档模板中,typeid默认是这个列表或文档本身的栏目ID"
就可以解决。
还有一种方法‘我就更喜欢使用了,不过要修改核心文件 ,呵呵,使用起来更舒服’
解决无法使用arclist标签最有效方法如下:
首先找到 “include/arc.searchview.class.php 打开”
搜索文本 “ require_once(DEDEINC."/taglib/channel.lib.php"); ”
在下面加入 “ require_once(DEDEINC."/taglib/arclist.lib.php"); ”
arclist.lib.php是文章列表 arclist 标签的类了
这时还不行,因为没有加载起来
继续搜索文本 “ $this->dtp->Assign($tagid,$this->GetLikeWords($ctag->GetAtt('num'))); ”
大概内容如下
//php脚本开始 |
else if ( $tagname == "likewords" ) |
{ |
$this ->dtp->Assign( $tagid , $this ->GetLikeWords( $ctag ->GetAtt( 'num' ))); |
} |
这时我们在 } 号下面加一行代码 代码如下
//php脚本开始 |
else if ( $tagname == "arclist" ) |
{ |
$this ->dtp->Assign( $tagid ,lib_arclist( $ctag , $this )); |
} |
修改后的代码是:
//php脚本开始 |
else if ( $tagname == "likewords" ) |
{ |
$this ->dtp->Assign( $tagid , $this ->GetLikeWords( $ctag ->GetAtt( 'num' ))); |
} |
//下面是我们加入的代码 |
else if ( $tagname == "arclist" ) |
{ |
$this ->dtp->Assign( $tagid ,lib_arclist( $ctag , $this )); |
} |
这时核心代码就搞定啦,现在我们开始向搜索模板插入arclist标签来调用文章列表
//html脚本开始 |
{dede:arclist titlelen='30' row='10' orderby='pubdate'} |
< li > |
< span class = "lettsub7" >< a target = "_blank" href = "[field:arcurl/]" title = "[field:title/]" >[field:title/]</ a ></ span > |
</ li > |
{/dede:arclist} |
完成,终于输出想要的文章列表了,dede搜索页面调用文章列表 解决使用arclist标签 调用的问题了,本次代码作记录,方便下次对dede二次开发!