欢迎各位兄弟 发布技术文章
这里的技术是共享的
{dede:channelartlist typeid='103,87,88,89,90'}
{/dede:channelartlist}
<div class="listbox">
{dede:channelartlist row=6 typeid='5'}
<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 title="[field:fulltitle/]" href="[field:arcurl/]" target="_blank" >[field:title /]</a></li>
{/dede:arclist}
</ul>
</dd>
</dl>
{/dede:channelartlist}
</div>
参数有
typeid = '0' 频道ID,多个请用","分隔
row = '20' 获取的栏目返回值
但是我增加 orderby orderway 排序参数
在使用 channelartlist 循环栏目时输出栏目
{dede:global name='itemindex'/} // 用于 chanelartlist
在使用 channelartlist、arclist、list 循环栏目时输出栏目、文章的索引值(从1开始)。
代码:
{dede:global name='itemindex'/} // 用于 chanelartlist
[field:global name='autoindex' /] // 用于 arclist、list
http://www.zzbaike.com/wiki/DedeCMS%E6%A8%A1%E6%9D%BFChannelartlist%E6%A0%87%E7%AD%BE%E4%BD%BF%E7%94... 有大用帮助文档
【Channelartlist 标记】用于获取当前频道的下级栏目的内容列表。该标记在封面模板(包括主页)中的经常被用到,
具体用法见下面实例。
除了宏标记外,channelArtlist 是唯一一个可以直接嵌套其它标记的标记,
不过仅限于嵌套 {dede:type}{/dede:type} 和 {dede:arclist}{/dede:arclist} 两个标记。
{dede:channelArtlist typeid="94" col="1" row='6' } <!--col="1"是排一列--> <!-- 如果type='5'即一个数,就获得它的下级栏目, 如果 typeid=10,5,8 多个数,就是获得同级栏目,并且是按10 8 5 的顺序排的-->
<div style="width:500px;border:red solid 1px;float:left;">
<div style="width:500px;background:#ccddee;">
{dede:type} <!-- 循环得到 每个子栏目type -->
<a href="[field:typelink/]">[field:typename/]</a>
{/dede:type}
</div>
<div style="width:500px;float:left;">
<ul> <!-- 循环得到 每个子栏目type的内容文章 -->
{dede:arclist row="5"}
<li><a href="[field:arcurl/]">[field:textlink/]</a></li>
{/dede:arclist}
</ul>
</div>
</div>
{/dede:channelArtlist}
以一行两列的形式来显示栏目列表
<div style="width:800px; clear:both; overflow:hidden;">
{dede:channelArtlist col=2}
<div style="border:1px solid #999; width:390px; margin:5px;">
<div style="background:#f0f0f0; height:25px; padding:5px 0 0 5px; width:385px; float:left;">
{dede:type}<a href="[field:typelink /]">[field:typename /]</a>{/dede:type}
</div>
<div style="width:385px; float:left;">
<ol style="line-height:20px; padding:5px;">
{dede:arclist row='8' titlelen='36'}
<li><a href="[field:arcurl /]">[field:title /]</a></li>
{/dede:arclist}
</ol>
</div>
</div>
{/dede:channelArtlist}
</div>
页面上的需要,有时候要控制所选栏目和顺序。
{dede:channelArtlist typeid=103,102,101 }
{dede:arclist row=10 titlelen=32}
<li>[field:textlink/]</li>
{/dede:arclist}
{/dede:channelArtlist}
红色的送是关键,表示只选取id为101、102、103三个栏目,这里指的是一级栏目。排序即按你所写ID的先后而排。
打开include/taglib/channelartlist.lib.php文件,约62行处找到
if(empty($totalnum)) $totalnum = 20;
在下面加一行
if(!empty($limit)) $totalnum = $limit;
下面是一个实例,先取第一个栏目单独处理,然后再从第二个开始取出后面栏目,其中奇数栏目向左浮动,偶数栏目向右浮动。
{dede:channelartlist limit='0,1'}
<div class='box' id='news'>
<h2><a href="{dede:field name='typeurl'/}">{dede:field name='typename'/}</a></h2>
<ul>
{dede:arclist row='8'}
<li><a href="[field:arcurl/]">[field:title/]</a></li>
{/dede:arclist}
</ul>
</div>
{/dede:channelartlist}
<div class='banner'>广告条</div>
代码:
{dede:global name='itemindex'/} // 用于 chanelartlist 索引
{dede:channelartlist limit='1,10'}
{dede:global runphp='yes' name='itemindex'}
$a="<div class='box left'>";
$b="<div class='box right'>";
if ((@me%2)==0) @me=$b;
else @me=$a;
{/dede:global}
<h3><a href="{dede:field name='typeurl'/}">{dede:field name='typename'/}</a></h3>
<ul>
{dede:arclist row='8' titlelen='46'}
<li><a href="[field:arcurl/]">[field:title/]</a></li>
{/dede:arclist}
</ul>
</div>
{/dede:channelartlist}
DEDECMS5.5 频道文档列表channelartlist标签增加排序字段itemindex
分类: 杂项笔记 PHP 2009-10-31 09:40 511人阅读 评论(1) 收藏 举报
由于项目中要用到一个排序的字段在界面上显示排序的好的id,在基数和偶数时候调用不同的样式表显示,于是找了源码,更改如下:
找到:/include/taglib/channelartlist.lib.php
在61行下面加一行$pv->Fields['itemindex']=$GLOBALS['itemindex'];
完整代码段:
$GLOBALS['itemindex'] = 0;
$GLOBALS['itemparity'] = 1;
for($i=0;isset($typeids[$i]);$i++)
{
$GLOBALS['itemindex']++;
$pv = new PartView($typeids[$i]['id']);
$pv->Fields['itemindex']=$GLOBALS['itemindex'];
$pv->Fields['typeurl'] = GetOneTypeUrlA($typeids[$i]);
$pv->SetTemplet($innertext,'string');
$artlist .= $pv->GetResult();
$GLOBALS['itemparity'] = ($GLOBALS['itemparity']==1 ? 2 : 1);
}
首页模板更改:
{dede:channelartlist}
<div class="{dede:field name='itemindex' runphp='yes'}@me=((intval(@me)%2)==0)?'homeboxright':'homeboxleft';{/dede:field}">
<h2><a href="{dede:field name='typeurl'/}" target="_self" title="{dede:field name='typename'/}">{dede:field name='typename'/}</a></h2>
{/dede:channelartlist}
http://bbs.dedecms.com/337026.html
{dede:channelartlist typeid='2,7,11,15,18,21'}
<li><a href="{dede:field name='typeurl'/}">{dede:field name='typename'/}</a>
<ul>
{dede:sql sql='Select * from bfsu_arctype where reid=~id~'}
<li><a href='[field:typeurl/]' target='_blank'>[field:typename/]</a></li>
{/dede:sql}
</ul>
</li>
{/dede:channelartlist}
如以上代码所示,sql模板标签里可以使用变量
现在我想在文章页面里,在arclist里调用文章的标题作为变量,不知道如何实现?
即我想在文章结束时显示以该文章标题为关键字的其他文章,
{dede:arclist keyword='标题' limit='0,5'}
<a href='[field:arcurl/]'>[field:title/]</a>
{/dede:arclist}
keyword='标题' 这里如何写变量使其自动显示当前标题为关键字的文章呢?
{dede:likearticle row='' col='' titlelen='' infolen=''}
<a href='[field:arcurl/]'>[field:title/]</a>
{/dede:likearticle}
你可以用这个标签来调用相关文章啊。
增加排序的参数 $orderby 和$orderway 在D:\xampp\htdocs\dedecmsv56GBK\uploads\include\taglib\channelartlist.lib.php作相应的修改
该标签为全局标志,在所有模板里都可以使用,并且支持标签嵌套。功能:获取当前频道的下级栏目的内容列表标签,调用方法
{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}
标签名称: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} 参数说明: typeid = '0' 频道ID,多个请用","分隔 row = '20' 获取的栏目返回值 其他说明: 除了宏标记外,channelArtlist 是唯一一个可以直接嵌套其它标记的标记,不过仅限于嵌套 {dede:type}{/dede:type} 和 {dede:arclist}{/dede:arclist} 两个标记。 底层模板变量: 包含{dede:type}{/dede:type}及{dede:arclist}{/dede:arclist}下面所有底层模板变量。 |
来自 http://help.dedecms.com/v53/archives/tag/global/channelartlist/