channelartlist增加limit属性
来源:互联网 发布:矩阵与行列式的区别 编辑:程序博客网 时间:2024/05/29 11:18
/include/taglib/channelartlist.lib.php
修改为以下内容
<?php if(!defined('DEDEINC')) exit('Request Error!');/** * 获取当前频道的下级栏目的内容列表标签 * * @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>全局标记</type><for>V55,V56,V57</for><description>获取当前频道的下级栏目的内容列表标签</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; //处理标记属性、innertext $attlist = 'typeid|0,row|20,cacheid|,limit|'; 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总数的信息 $typeids = array(); 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)); if($limit!='') $limitsql = " LIMIT $limit "; else $limitsql = " LIMIT 0,$totalnum"; $dsql->SetQuery("SELECT id,typename,typedir,isdefault,ispart,defaultname,namerule2,moresite,siteurl,sitepath FROM `#@__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); } //注销环境变量,以防止后续调用中被使用 $GLOBALS['envs']['typeid'] = $_sys_globals['typeid']; $GLOBALS['envs']['reid'] = ''; if($cacheid !='') { WriteCacheBlock($cacheid, $artlist); } return $artlist;}
这样就可以实现了
在同一栏目分别调用
大栏目下 第一个子栏目{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}
上面就可以在一个模板中调用
如果在子栏目下 调用同级栏目的信息
{dede:channelartlist type='reid' limit='0,1'}{dede:arclist row='6'}{/dede:arclist}{/dede:channelartlist}
0 0
- channelartlist增加limit属性
- 织梦 dedecms 给channel增加limit属性
- dede channel 增加limit(属性)功能
- channelartlist 支持currentstyle属性
- 让 DEDECMS channelartlist标签 支持 limit
- channelartlist标签增加orderway实现倒序
- DEDECMS首页频道channelartlist标签通过typeid属性排序方法
- dede让channelartlist标签支持currentstyle属性 完美解决
- dedecms channelartlist标签支持currentstyle属性 完美解决
- dede让channelartlist标签支持currentstyle属性 完美解决
- 让dedecms的channelartlist标签支持channelid属性
- dede让channelartlist标签支持currentstyle属性 完美解决
- DEDECMS5.5 频道文档列表channelartlist标签增加排序字段itemindex
- dede:channelartlist
- channelArtlist嵌套
- channel和channelArtlist调用外链属性栏目失效的解决办法
- 增加前台控件属性
- ecshop_增加商品属性
- 【HWOJ】字符串最后一个单词的长度
- 安卓基础
- viewcontroller生命周期
- memcached的启动和停止
- 库函数计算三角形面积
- channelartlist增加limit属性
- app生命周期
- 安卓虚拟机启动后报错: 类似 SDK Manager] Error: Error parsing .....devices.xml 解决方案
- NotificationListenerService使用小结
- 归并排序 C++实现
- OpenCV学习笔记(一):如何绘图
- mysql互换表中两列数据方法
- Codeforces 631C Report【其他】
- Android实战简易教程-第六十六枪(服务器端搭建和服务器端Json数据交互)