婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁 > 網(wǎng)站建設(shè) > 建站知識 > 讓dede的channelartlist標(biāo)簽支持limit

讓dede的channelartlist標(biāo)簽支持limit

POST TIME:2018-04-22 22:08

當(dāng)使用 channelartlist標(biāo)簽 嵌套artlist 標(biāo)簽時,想要各個子欄目的樣式不一樣,或者指定調(diào)用某幾個子欄目,比如調(diào)用當(dāng)前欄目的第四個第八個欄目,使用row肯定不行,這時我們想到artlist支持limit調(diào)用,但是channelartlist不支持。

臨時想個法子 在channelartlist加個limit標(biāo)簽

修改 include aglibchannelartlist.lib.php 文件標(biāo)簽代碼如下

<?php if(!defined('DEDEINC')) exit('Request Error!');
/**
* 獲取當(dāng)前頻道的下級欄目的內(nèi)容列表標(biāo)簽
*
* @version $Id: channelartlist.lib.php 1 9:29 2010年7月6日Z tianya $
* @package DedeCMS.Taglib
* @copyright Copyright (c) 2007 - 2010, DesDev, Inc.
* @license http://help.dedecms.com/usersguide/license.html
* @link http://www.dedecms.com
*/

/*>>dede>>
<name>頻道文檔</name>
<type>全局標(biāo)記</type>
<for>V55,V56,V57</for>
<description>獲取當(dāng)前頻道的下級欄目的內(nèi)容列表標(biāo)簽</description>
<demo>
{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}
</demo>
<attributes>
<iterm>typeid:頻道ID</iterm>
<iterm>row:獲取的欄目返回值</iterm>
</attributes>
>>dede>>*/

require_once(DEDEINC.'/arc.partview.class.php');

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

//處理標(biāo)記屬性、innertext
$attlist = 'typeid|0,row|20,cacheid|,limit|,type|'; //這邊加個limit變量 type 我是想實現(xiàn) 在子欄目下調(diào)用 同級子欄目的信息
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;
}

if(empty($typeid))
{
$typeid = ( !empty($refObj->TypeLink->TypeInfos['id']) ? $refObj->TypeLink->TypeInfos['id'] : 0 );
}


if($innertext=='') $innertext = GetSysTemplets('part_channelartlist.htm');
$totalnum = $row;
if(empty($totalnum)) $totalnum = 20;

//獲得類別ID總數(shù)的信息
$typeids = array();
if($type=='reid') //2011.7.5 調(diào)用上級目錄下的子欄目內(nèi)容
{

$reid = $refObj->TypeLink->TypeInfos['reid'];


$tpsql = " reid='$reid' AND ispart<>2 AND ishidden<>1 ";
}
else if($typeid==0 || $typeid=='top') {

$tpsql = " reid=0 AND ispart<>2 AND ishidden<>1 AND channeltype>0 ";
}
else
{

if(!preg_match('#,#', $typeid)) {
$tpsql = " reid='$typeid' AND ispart<>2 AND ishidden<>1 ";
}
else {
$tpsql = " id IN($typeid) AND ispart<>2 AND ishidden<>1 ";
}
}


$limit = trim(preg_replace('#limit#is', '', $limit)); //增加limit標(biāo)簽
if($limit!='') $limitsql = " LIMIT $limit "; //如果limit為空就以 row變量的默認(rèn)值 限制
else $limitsql = " LIMIT 0,$totalnum";

$dsql->SetQuery("SELECT id,typename,typedir,isdefault,ispart,defaultname,namerule2,moresite,siteurl,sitepath
FROM `dede_arctype` WHERE $tpsql ORDER BY sortrank ASC $limitsql");
$dsql->Execute();
while($row = $dsql->GetArray()) {
$typeids[] = $row;
}

if(!isset($typeids[0])) return '';

$GLOBALS['itemindex'] = 0;
$GLOBALS['itemparity'] = 1;
for($i=0;isset($typeids[$i]);$i++)
{
$GLOBALS['itemindex']++;
$pv = new PartView($typeids[$i]['id']);
$pv->Fields['typeurl'] = GetOneTypeUrlA($typeids[$i]);

$pv->SetTemplet($innertext,'string');
$artlist .= $pv->GetResult();
$GLOBALS['itemparity'] = ($GLOBALS['itemparity']==1 ? 2 : 1);
}
//注銷環(huán)境變量,以防止后續(xù)調(diào)用中被使用
$GLOBALS['envs']['typeid'] = $_sys_globals['typeid'];
$GLOBALS['envs']['reid'] = '';
if($cacheid !='') {
WriteCacheBlock($cacheid, $artlist);
}
return $artlist;
}

 

這樣就可以實現(xiàn)了

在同一欄目分別調(diào)用

{dede:channelartlist limit='0,1'} 大欄目下 第一個子欄目

{dede:arclist row='6'}

{/dede:arclsit}

{/dede:channelartlist}

{dede:channelartlist limit='1,1'}大欄目下 第二個子欄目

{dede:arclist row='6'}

{/dede:arclsit}

{/dede:channelartlist}

上面就可以在一個模板中調(diào)用

如果在子欄目下 調(diào)用同級欄目的信息

{dede:channelartlist type='reid' limit='0,1'}

{dede:arclist row='6'}

{/dede:arclist}

{/dede:channelartlist}



收縮
  • 微信客服
  • 微信二維碼
  • 電話咨詢

  • 400-1100-266
主站蜘蛛池模板: 乐陵市| 汉中市| 诏安县| 水城县| 玉山县| 双辽市| 永顺县| 淅川县| 新安县| 吴堡县| 益阳市| 镇雄县| 阳朔县| 郯城县| 兴仁县| 台北县| 古田县| 甘谷县| 连山| 青阳县| 福建省| 乌海市| 湘西| 福海县| 涟源市| 包头市| 上林县| 广德县| 陇南市| 衡水市| 洛浦县| 安乡县| 镇平县| 尼木县| 孝义市| 兴国县| 隆化县| 巩留县| 扶沟县| 新余市| 门头沟区|