欢迎各位兄弟 发布技术文章
这里的技术是共享的
<?php if (!defined( 'DEDEINC' )) exit ( 'Request Error!' ); /** * 文章列表调用标记 * * 9:19 2010年7月13日:修正对isweight属性的支持 * * @version $Id: arclist.lib.php 3 9:19 2010年7月13日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 */ /** * arclist解析标签 * * @access public * @param object $ctag 解析标签 * @param object $refObj 引用对象 * @return string 成功后返回解析后的标签内容 */ /*>>dede>> <name>文档列表</name> <type>全局标记</type> <for>V55,V56,V57</for> <description>获取指定文档列表</description> <demo> {dede:arclist flag='h' typeid='' row='' col='' titlelen='' infolen='' imgwidth='' imgheight='' listtype='' orderby='' keyword='' limit='0,1'} <a href='[field:arcurl/]'>[field:title/]</a> {/dede:arclist} </demo> <attributes> <iterm>col:分多少列显示(默认为单列),5.3版中本属性可以通过多种方式进行多行显示</iterm> <iterm>row:返回文档列表总数</iterm> <iterm>typeid:栏目ID,在列表模板和档案模板中一般不需要指定,在首页模板中允许用","分开表示多个栏目</iterm> <iterm>getall:在没有指定这属性的情况下,在栏目页、文章页模板,不会获取以","分开的多个栏目的下级子类</iterm> <iterm>titlelen:标题长度 等同于titlelength</iterm> <iterm>infolen:表示内容简介长度 等同于infolength</iterm> <iterm>imgwidth:缩略图宽度</iterm> <iterm>imgheight:缩略图高度</iterm> <iterm>listtype: 栏目类型 image含有缩略图 commend推荐</iterm> <iterm>orderby:文档排序方式</iterm> <iterm>keyword:含有指定关键字的文档列表,多个关键字用","分</iterm> <iterm>innertext:单条记录样式</iterm> <iterm>aid:指定文档ID</iterm> <iterm>idlist:提取特定文档(文档ID</iterm> <iterm>channelid:频道ID</iterm> <iterm>limit:(起始ID从0开始)表示限定的记录范围(如:limit='1,2' 表示从ID为1的记录开始,取2条记录</iterm> <iterm>flag:自定义属性值:头条[h]推荐[c]图片[p]幻灯[f]滚动[s]跳转[j]图文[a]加粗[b]</iterm> <iterm>noflag:同flag,但这里是表示不包含这些属性</iterm> <iterm>orderway:值为 desc 或 asc ,指定排序方式是降序还是顺向排序,默认为降序</iterm> <iterm>subday:表示在多少天以内的文档</iterm> </attributes> >>dede>>*/ function lib_arclist( & $ctag , & $refObj ) { global $envs ; $autopartid = 0; $tagid = '' ; $tagname = $ctag ->GetTagName(); $channelid = $ctag ->GetAtt( 'channelid' ); //增加对分页内容的处理 $pagesize = $ctag ->GetAtt( 'pagesize' ); if ( $pagesize == '' ) { $multi = 0; } else { $tagid = $ctag ->GetAtt( 'tagid' ); } // arclist是否需要weight排序,默认为"N",如果需要排序则设置为"Y" $isweight = $ctag ->GetAtt( 'isweight' ); if ( $tagname == 'imglist' || $tagname == 'imginfolist' ) { $listtype = 'image' ; } else if ( $tagname == 'specart' ) { $channelid = -1; $listtype = '' ; } else if ( $tagname == 'coolart' ) { $listtype = 'commend' ; } else if ( $tagname == 'autolist' ) { $autopartid = $ctag ->GetAtt( 'partsort' ); } else { $listtype = $ctag ->GetAtt( 'type' ); } //排序 if ( $ctag ->GetAtt( 'sort' )!= '' ) $orderby = $ctag ->GetAtt( 'sort' ); else if ( $tagname == 'hotart' ) $orderby = 'click' ; else $orderby = $ctag ->GetAtt( 'orderby' ); //对相应的标记使用不同的默认innertext if (trim( $ctag ->GetInnerText()) != '' ) $innertext = $ctag ->GetInnerText(); else if ( $tagname == 'imglist' ) $innertext = GetSysTemplets( 'part_imglist.htm' ); else if ( $tagname == 'imginfolist' ) $innertext = GetSysTemplets( 'part_imginfolist.htm' ); else $innertext = GetSysTemplets( "part_arclist.htm" ); //兼容titlelength if ( $ctag ->GetAtt( 'titlelength' )!= '' ) $titlelen = $ctag ->GetAtt( 'titlelength' ); else $titlelen = $ctag ->GetAtt( 'titlelen' ); //兼容infolength if ( $ctag ->GetAtt( 'infolength' )!= '' ) $infolen = $ctag ->GetAtt( 'infolength' ); else $infolen = $ctag ->GetAtt( 'infolen' ); $typeid = trim( $ctag ->GetAtt( 'typeid' )); if ( empty ( $typeid )) { $typeid = ( isset( $refObj ->Fields[ 'typeid' ]) ? $refObj ->Fields[ 'typeid' ] : $envs [ 'typeid' ] ); } if ( $listtype == 'autolist' ) { $typeid = lib_GetAutoChannelID( $ctag ->GetAtt( 'partsort' ), $typeid ); } if ( $ctag ->GetAtt( 'att' )== '' ) { $flag = $ctag ->GetAtt( 'flag' ); } else { $flag = $ctag ->GetAtt( 'att' ); } return lib_arclistDone ( $refObj , $ctag , $typeid , $ctag ->GetAtt( 'row' ), $ctag ->GetAtt( 'col' ), $titlelen , $infolen , $ctag ->GetAtt( 'imgwidth' ), $ctag ->GetAtt( 'imgheight' ), $listtype , $orderby , $ctag ->GetAtt( 'keyword' ), $innertext , $envs [ 'aid' ], $ctag ->GetAtt( 'idlist' ), $channelid , $ctag ->GetAtt( 'limit' ), $flag , $ctag ->GetAtt( 'orderway' ), $ctag ->GetAtt( 'subday' ), $ctag ->GetAtt( 'noflag' ), $tagid , $pagesize , $isweight ); } |