dedecms标签解析问题

qw6965921qw 2014-02-12 08:05:23
<?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
);
}





完全看不懂怎么解析的的 {dede: article 函数也找不到调用的地方 蛋疼啊 让我蛋疼的是 最终生成的PHP代码放在哪里了 他又是如何生成html代码的 各种问题 各种蛋疼
...全文
520 4 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
monkren 2014-02-14
  • 打赏
  • 举报
回复
调用的方法一步一步的跳,肯定能找到,或者看下文档吧。
鱼为情 2014-02-13
  • 打赏
  • 举报
回复
你打开织梦默认的模板,首页有幻灯效果,你应该学会模枋。加群:153436140
csdn醒哥 2014-02-13
  • 打赏
  • 举报
回复
建议学习smarty
qw6965921qw 2014-02-13
  • 打赏
  • 举报
回复
引用 1 楼 ywq5752952 的回复:
你打开织梦默认的模板,首页有幻灯效果,你应该学会模枋。加群:153436140
代码我会写 我在研究底层哈 准备重新写个cms来学习

4,250

社区成员

发帖
与我相关
我的任务
社区描述
国内外优秀PHP框架讨论学习
社区管理员
  • Framework
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧