dede:list标签支持调用栏目 自定义字段比如栏目图片typeimg
我们栏目自定义图 片好了后。如果想要在列表页调用。是实现不了。或者想调用其他栏目自定义字段。都是不行的。
比如:
{dede:list pagesize ='15' channelid="17" addfields=""}[field:typeimg/]
{/dede:list}
这样栏目图片出不 来。我们要改下代码。目标include/arc.listview.class.php,
查找一下sql 吧要查询出来的字 段都加名称都加上 。
有二段:
//获得交叉栏目 ID
if($this->TypeLink->TypeInfos['cross']>0 && $this->TypeLink->TypeInfos['ispart']==0)
{
$selquery = '';
if($this->TypeLink->TypeInfos['cross']==1)
{
$selquery = "SELECT id,topid,typeimg FROM `it_arctype` WHERE typename LIKE '{$this->Fields['typename']}' AND id<>'{$this->TypeID}' AND topid<>'{$this->TypeID}' ";
}
else
{
$this->Fields['crossid'] = preg_replace('/[^0-9,]/', '', trim($this->Fields['crossid']));
if($this->Fields['crossid']!='')
{
$selquery = "SELECT id,topid,typeimg FROM `it_arctype` WHERE id in({$this->Fields['crossid']}) AND id<>{$this->TypeID} AND topid<>{$this->TypeID} ";
}
}
if($selquery!='')
{
$this->dsql->SetQuery($selquery);
$this->dsql->Execute();
while($arr = $this->dsql->GetArray())
{
$this->CrossID .= ($this->CrossID=='' ? $arr['id'] : ','.$arr['id']);
}
}
}
}//!error
第二段
//如果不用默认的 sortrank或id排序,使用联合查 询(数据量大时非常缓慢)
if(preg_match('/hot|click|lastpost/', $orderby))
{
$query = "SELECT arc.*,tp.typedir,tp.typename,tp.typeimg,tp.isdefault,tp.defaultname,
tp.namerule,tp.namerule2,tp.ispart,tp.moresite,tp.siteurl,tp.sitepath
$addField
FROM `it_archives` arc
LEFT JOIN `it_arctype` tp ON arc.typeid=tp.id
$addJoin
WHERE {$this->addSql} $ordersql LIMIT $limitstart,$row";
}
//普通情况先从 arctiny表查出ID,然后按ID查询(速度非常快 )
else
{
$t1 = ExecTime();
$ids = array();
$query = "SELECT id FROM `it_arctiny` arc WHERE {$this->addSql} $ordersql LIMIT $limitstart,$row ";
$this->dsql->SetQuery($query);
$this->dsql->Execute();
while($arr=$this->dsql->GetArray())
{
$ids[] = $arr['id'];
}
$idstr = join(',',$ids);
if($idstr=='')
{
return '';
}
else
{
$query = "SELECT arc.*,tp.typedir,tp.typename,tp.typeimg,tp.corank,tp.isdefault,tp.defaultname,
tp.namerule,tp.namerule2,tp.ispart,tp.moresite,tp.siteurl,tp.sitepath
$addField
FROM `it_archives` arc LEFT JOIN `it_arctype` tp ON arc.typeid=tp.id
$addJoin
WHERE arc.id in($idstr) $ordersql ";
}
$t2 = ExecTime();
//echo $t2-$t1;
}
【责任编辑:小戴工程师 】
关键字: B2B推广 腾讯 标志设计欣赏 什么是搜索引擎优 化 友情链接 支付宝 飞鹰服饰 顾客 5点 banner如何设计 繁琐 状告 停止战斗 网站成交率 SEM是什么 备案网站 影响 法则 域名被盗 新闻 河南互联网大会 网站主题 企业做市场 暗红 宁波宝信 文章页面 网站内容设计 网站制作公司 装修公司 高端品牌
上一篇:dede个人中心调用会员 其他字段和自定义字段调用 下一篇:dede:pagelist修改支持bootstrap分页样式