dedeCMS中的标签"channelartlist” 来获得频道的下级栏目的内容列表

转载自: http://help.dedecms.com/manual/tagmanual/DedeTagmanual_Finnal/channelartlist.htm

 

一、官方介绍

标签名称:channelartlist
标记简介:
功能说明:
获取当前频道的下级栏目的内容列表标签
适用范围:
全局使用
基本语法:

{dede:channelartlist row=6}
<dl>
 <dt><a href='{dede:field name='typeurl'/}'>{dede:field name='typename'/}</a></dt>
 <dd>
 {dede:arclist titlelen='42' row='10'}    <ul class='autod'> 
     <li><a href="[field:arcurl /]">[field:title /]</a></li>
      <li>([field:pubdate function="MyDate('m-d',@me)"/])</li>
    </ul>
{/dede:arclist}
</dl>
{/dede:channelartlist}


相关函数:
文件\include\taglib\channelartlist.lib.php第6行

function lib_channelartlist(&$ctag,&$refObj)

 

function lib_channelartlist(&$ctag,&$refObj)
{
    global $dsql,$envs,$_sys_globals;

    //处理标记属性、innertext
    $attlist = 'typeid|0,row|20,cacheid|';
    FillAttsDefault($ctag->CAttribute->Items,$attlist);
    extract($ctag->CAttribute->Items, EXTR_SKIP);
    $innertext = trim($ctag->GetInnerText());
    $artlist = '';
    //读取固定的缓存块
    $cacheid = trim($cacheid);
    if($cacheid !='') {
        $artlist = GetCacheBlock($cacheid);
        if($artlist!='') return $artlist;
    }
    


 

参数说明:
如以上代码所示:

 typeid = '0' 频道ID,多个请用","分开,如果调用1个栏目可以使用typeid='5,0'来调用。

分隔 row = '20' 获取的栏目返回值 其他说明: 除了宏标记外,channelArtlist 是唯一一个可以直接嵌套其它标记的标记,不过仅限于嵌套 {dede:type}{/dede:type} 和 {dede:arclist}{/dede:arclist} 两个标记

底层模板变量:
包含{dede:type}{/dede:type}及{dede:arclist}{/dede:arclist}下面所有底层模板变量。
使用实例:
这个标签是系统中不多的一个支持嵌套的标签,这个标签通常使用在首页(含封面首页),用于输出一组栏目内容列表,我们可以看到默认模板首页:

这部分的内容就是通过这个标签进行显示的,我们可以查看首页模板\templets\default\index.htm120行

{dede:channelartlist}
<dl class="tbox">
<dt><strong><a href="{dede:field name='typeurl'/}">{dede:field name='typename'/}</a></strong><span class="more"><a href="{dede:field name='typeurl'/}">更多...</a></span></dt>
<dd>
<ul class="d1 ico3">
{dede:arclist titlelen='60' row='8'}
<li><span class="date">[field:pubdate function="MyDate('m-d',@me)"/]</span><a href="[field:arcurl /]">[field:title /]</a></li>
{/dede:arclist}
</ul>
</dd>
</dl>
{/dede:channelartlist}

 

二、实践当中遇到的问题及解决方法

1、遇到的问题

在一个模板上去加入上面讲到的index.htm 120行代码,也确实出现栏目文章列表,但文章是直接列出来的,并没有样式

 

2、解决方法

在加入的代码中控制样式的有两个:

(1)<div class="listbox">

我们在模板中所有样式控制的css文件夹中(templets\default\style\)找到:

.index .listbox{
	width:720px;
	overflow:hidden;
	float:left;
	clear:both;
	overflow:hidden;
}


 

.index .listbox ul a{
	color:#666;
}


从以上看,它只是控制布局及边框大小,颜色而已。

(2) <dl class="tbox">

这个才是控制存放文章列表的小框样式的,

我们在模板中所有样式控制的css文件夹中(templets\default\style\)找到它存在多个文件中:

(2、1)在dedecms_skin_1.css中有

.tbox{
	background:url(../images/blue_skin.png) 0 -294px repeat-x;
	border-bottom:1px solid #BFD2E1;
}


 

.tbox dt{
	border:1px solid #BFD2E1;
}

(2、2)在dedecms_skin_2.css中有

.tbox{
	background:url(../images/red_skin.png) 0 -294px repeat-x;
	border-bottom:1px solid #e8ceae;	
}

(2、3)在dedecms_skin_3.css中、在dedecms_skin_2.css中、在dedecms_skin_5.css中

(2、4)在layout.css中

.tbox{
	margin:0 0 8px 0;
	border-bottom:1px solid #BADAA1;
	overflow:hidden;
	background:url(../images/green_skin.png) 0 -294px repeat-x;
}



 从以上看出控制样式.tbox定义的文件是存在的,那么为什么没有样式效果呢?

原来是在index.htm中没有把样式的css文件加入,解决方法就是加入css文件;我选择加入dedecms.css,因为在dedecms.css中有:

/***
 *	DedeCMS v5.6 Style (Default Style)
 *	dedecms.com  Author Networker  2010.02.05
 **/
 
/*---------- import ---------*/
@import url("layout.css");
@import url("page.css");
@import url("286admin.css");


 

 

改完后样式效果出来了:

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值