欢迎各位兄弟 发布技术文章

这里的技术是共享的

You are here

dede:channelartlist的使用

http://help.dedecms.com 标签帮助文档
http://help.dedecms.com/v53/   标签帮助文档
http://www.dedecms.com/archives/templethelp/help/taghelp.htm  标签帮助文档



{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}


{dede:global name='itemindex'/}   // 用于 chanelartlist 从1开始
[field:global name='autoindex' /] // 用于 arclist、list  从1开始
[field:global name='autoindex' /] // 用于 channel 从0开始

dedecms首页频道channelartlist 标签通过typeid属性排序方法



 if($cateType=='aFather')
    {
            $dsql->SetQuery("SELECT id,typename,typedir,isdefault,ispart,defaultname,namerule2,moresite,siteurl,sitepath
                                           FROM `#@__arctype` WHERE $tpsql ORDER BY sortrank ASC LIMIT $totalnum");
        
    }
    else{
         $dsql->SetQuery("SELECT id,typename,typedir,isdefault,ispart,defaultname,namerule2,moresite,siteurl,sitepath
                                            FROM `#@__arctype` WHERE $tpsql ORDER BY substring_index('$typeid',id,1)  LIMIT $totalnum");
        
    }

{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作相应的修改
 



 

模板标签-频道文档标签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:频道ID
  • row:获取的栏目返回值
来自 http://help.dedecms.com/help/template/tags/global/2011/0615/101.html


标签名称: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/help/template/tags/global/2011/0603/14.html

 

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/

普通分类: