A-A+

dede:list 增加自定义属性 例如增加个noflag属性判定

2014年12月23日 19:49 学习笔记 暂无评论 阅读 268 views 次

【注意:此文章为博主原创文章!转载需注意,请带原文链接,至少也要是txt格式!】

要为list增加任何功能都可以参考此文。

所需要修改的文件为include/arc.listview.class.php

在第45行 var $remoteDir; 这个代码后面增加一行代码如下。

var $Noflag;

在620行 $ctag->GetAtt("orderway")   这个代码后面增加一行代码如下。

$ctag->GetAtt("noflag")

然后找到676附近!关键词:*  获得一个单列的文档列表   下面有代码function GetArcList($limitstart=0,$row=10………… 我只展示了部分。

function GetArcList($limitstart=0,$row=10,$col=1,$titlelen=30,$infolen=250,
$imgwidth=120,$imgheight=90,$listtype="all",$orderby="default",$innertext="",$tablewidth="100",$ismake=1,$orderWay='desc',$noflag='')

看到了把,最后面增加了$noflag=''

然后在730行前面,关键词:$ordersql = '';  注意是前面增加如下代码:

$noflags = explode(',', $noflag);
$noflagsql = '';
for($i=0;$i<count($noflags);$i++)
{
$noflagsql .= "And arc.flag not like '%{$noflags[$i]}%' ";
}

这样子写是考虑到多个标签
然后将后面的注释为 //如果不用默认的sortrank或id排序,使用联合查询(数据量大时非常缓慢) 里面的

【然后在780行找到
$query = "Select arc.*,tp.typedir,tp.typename,tp.isdefault,tp.defaultname,
tp.namerule,tp.namerule2,tp.ispart,tp.moresite,tp.siteurl,tp.sitepath
$addField
from `#@__archives` arc
left join `#@__arctype` tp on arc.typeid=tp.id
$addJoin
where {$this->addSql} $ordersql limit $limitstart,$row";】
【更改为
$query = "Select arc.*,tp.typedir,tp.typename,tp.isdefault,tp.defaultname,
tp.namerule,tp.namerule2,tp.ispart,tp.moresite,tp.siteurl,tp.sitepath
$addField
from `#@__archives` arc
left join `#@__arctype` tp on arc.typeid=tp.id
$addJoin
where {$this->addSql} $noflagsql $ordersql limit $limitstart,$row";】
----------------------------------------------------------------------------------------------
【然后在793行找到
$query = "Select id From `#@__arctiny` arc where {$this->addSql} $ordersql limit $limitstart,$row ";】
【更改为
$query = "Select id From `#@__archives` arc where {$this->addSql} $noflagsql $ordersql limit $limitstart,$row ";】

这里可以为计数增加一段统计,这行代码可以不增加的。注意哦。可以在799行下面添加如下代码:
【找到
$this->dsql->Execute();
while($arr=$this->dsql->GetArray())
{
$ids[] = $arr['id'];
}】
在这个代码下面添加:
$this->TotalResult = count($ids); 这个其实可以不添加的,这里说明一下,本人没弄明白这个统计数量的如何在前台调用。

---------------------------------------------------------------------------------------------
【然后在807行找到
$query = "Select arc.*,tp.typedir,tp.typename,tp.corank,tp.isdefault,tp.defaultname,
tp.namerule,tp.namerule2,tp.ispart,tp.moresite,tp.siteurl,tp.sitepath
$addField
from `#@__archives` arc left join `#@__arctype` tp on arc.typeid=tp.id
$addJoin
where arc.id in($idstr) $ordersql ";】
【更改为
$query = "Select arc.*,tp.typedir,tp.typename,tp.corank,tp.isdefault,tp.defaultname,
tp.namerule,tp.namerule2,tp.ispart,tp.moresite,tp.siteurl,tp.sitepath
$addField
from `#@__archives` arc left join `#@__arctype` tp on arc.typeid=tp.id
$addJoin
where arc.id in($idstr) $noflagsql $ordersql ";】

----------------------------------------------------------------------------------------------

标签:

给我留言