DedeCMS让{dede:list}标签支持weight权重排序、flag属性
2015-10-16 14:09
483 查看
修改{dede:list}标签后,可支持权重排序、flag标签功能
在开发过程中客户需要在列表中支持权重排序,和推荐功能。经过不断的摸索,终于将{dede:list}标签修改成功。
使用方法:{dede:list orderby='weight'
orderway='asc' flag='c' }
orderby='weight' orderway='asc' 与权重排序、从小到大。(与{dede:arclist}标签的使用方法相同)
flag='c' 推荐标识(与{dede:arclist}标签的使用方法相同)
好了,不多讲了,现在放上修改后源码,给需要的朋友们!
include.rar (9
K) 下载次数:64 修改后代码,直接复制到根目录下即可!
这是utf-8编码的,使用GB2312的朋友可以自已转码一下!
更新信息:2012-3-26.
此修改后的文件在栏目页面时会与{arclist} 的 flag 标签有兼容问题。
如果栏目列表页只显示列表信息则没有问题。
但与{arclist} 的 flag标签和用时,则{list}标签将不会显示具体内容。
特此声明。有时间我会再研究一下并做修改~~~谢谢大家的支持!
另一种解决方案:只针对 flag="p" 无图则不显示缩略图 http://my.oschina.net/lyx2012/blog/58046
{dede:list pagesize=18 orderby=pubdate titlelen=26}
[field:array runphp='yes']
@me=strpos(@me['litpic'],'defaultpic')?'':"<li><a href='@me[arcurl]' title='@me[fulltitle]' target=\"_blank\"><img src='@me[litpic]' width=\"223\" height=\"154\" /><div class=\"zral_list_txt\">@me[title]</div></a></li>";
[/field:array]
{/dede:list}
http://bbs.dedecms.com/455219-1.html
1、找到"根目录\include\arc.listview.class.php"文件。
2、修改代码:在文件第727行处添加按weight排序判断代码(红色部分为新添加代码)。
//排序方式
$ordersql = '';
if($orderby=="senddate" || $orderby=="id") {
$ordersql=" ORDER BY arc.id $orderWay";
}
else if($orderby=="hot" || $orderby=="click") {
$ordersql = " ORDER BY arc.click $orderWay";
}
else if($orderby=="lastpost") {
$ordersql = " ORDER BY arc.lastpost $orderWay";
}
else if($orderby=="weight") {
$ordersql = " ORDER BY arc.weight $orderWay";
}
else {
$ordersql="
4000
ORDER BY arc.sortrank $orderWay";
}
3、再在第778行处找到此段代码
//如果不用默认的sortrank或id排序,使用联合查询(数据量大时非常缓慢)
if(preg_match('/hot|click|lastpost|weight/', $orderby))
并添加红色部分内容。
4、标签调用:
{dede:list orderby='weight'
orderway='asc'}
这样{dede:list}标签就支持了按权重排序的调用,并且动静态状态下测试均成功!
5、将文件中原有的这部分注释掉
// if($this->TotalResult==-1)
// {
// $cquery = "SELECT COUNT(*) AS dd FROM `#@__arctiny` arc WHERE ".$this->addSql;
// $row = $this->dsql->GetOne($cquery);
// if(is_array($row))
// {
// $this->TotalResult = $row['dd'];
// }
// else
// {
// $this->TotalResult = 0;
// }
// }
6、在238行左右 $this->dtp->LoadTemplate($tempfile);下添加如下代码:
foreach($this->dtp->CTags as $tagid=>$ctag)
{
$flag = $ctag->GetAtt('flag');
if($flag!='') {
$this->addSql .= " and arc.flag like '%{$flag}%'";
}
}
if($this->TotalResult==-1)
{ //修改了
$cquery = "SELECT COUNT(*) AS dd FROM `#@__archives` arc WHERE ".$this->addSql;
$row = $this->dsql->GetOne($cquery);
if(is_array($row))
{
$this->TotalResult = $row['dd'];
}
else
{
$this->TotalResult = 0;
}
}
7、在647行左右$ctag->GetAtt("orderway"),下面添加一行:
$ctag->GetAtt('flag')
8、在721行左右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',$flag='')中添加了$flag=''
9、在754行左右也就是排序方式上面添加 :
//添加flag标签
$whereFlag = "";
if($flag!='') {
$whereFlag = " and arc.flag like '%{$flag}%'";
}
10、在813行左右 修改成 if(preg_match('/hot|click|lastpost|weight|flag/', $orderby))
接着在下面的$query sql语句中WHERE {$this->addSql} 后面添加 {$whereFlag}
11、847行左右 $query sql语句中WHERE arc.id in($idstr)后面添加 {$whereFlag}
flag属性就添加成功了
在开发过程中客户需要在列表中支持权重排序,和推荐功能。经过不断的摸索,终于将{dede:list}标签修改成功。
使用方法:{dede:list orderby='weight'
orderway='asc' flag='c' }
orderby='weight' orderway='asc' 与权重排序、从小到大。(与{dede:arclist}标签的使用方法相同)
flag='c' 推荐标识(与{dede:arclist}标签的使用方法相同)
好了,不多讲了,现在放上修改后源码,给需要的朋友们!
include.rar (9
K) 下载次数:64 修改后代码,直接复制到根目录下即可!
这是utf-8编码的,使用GB2312的朋友可以自已转码一下!
更新信息:2012-3-26.
此修改后的文件在栏目页面时会与{arclist} 的 flag 标签有兼容问题。
如果栏目列表页只显示列表信息则没有问题。
但与{arclist} 的 flag标签和用时,则{list}标签将不会显示具体内容。
特此声明。有时间我会再研究一下并做修改~~~谢谢大家的支持!
另一种解决方案:只针对 flag="p" 无图则不显示缩略图 http://my.oschina.net/lyx2012/blog/58046
{dede:list pagesize=18 orderby=pubdate titlelen=26}
[field:array runphp='yes']
@me=strpos(@me['litpic'],'defaultpic')?'':"<li><a href='@me[arcurl]' title='@me[fulltitle]' target=\"_blank\"><img src='@me[litpic]' width=\"223\" height=\"154\" /><div class=\"zral_list_txt\">@me[title]</div></a></li>";
[/field:array]
{/dede:list}
http://bbs.dedecms.com/455219-1.html
1、找到"根目录\include\arc.listview.class.php"文件。
2、修改代码:在文件第727行处添加按weight排序判断代码(红色部分为新添加代码)。
//排序方式
$ordersql = '';
if($orderby=="senddate" || $orderby=="id") {
$ordersql=" ORDER BY arc.id $orderWay";
}
else if($orderby=="hot" || $orderby=="click") {
$ordersql = " ORDER BY arc.click $orderWay";
}
else if($orderby=="lastpost") {
$ordersql = " ORDER BY arc.lastpost $orderWay";
}
else if($orderby=="weight") {
$ordersql = " ORDER BY arc.weight $orderWay";
}
else {
$ordersql="
4000
ORDER BY arc.sortrank $orderWay";
}
3、再在第778行处找到此段代码
//如果不用默认的sortrank或id排序,使用联合查询(数据量大时非常缓慢)
if(preg_match('/hot|click|lastpost|weight/', $orderby))
并添加红色部分内容。
4、标签调用:
{dede:list orderby='weight'
orderway='asc'}
这样{dede:list}标签就支持了按权重排序的调用,并且动静态状态下测试均成功!
5、将文件中原有的这部分注释掉
// if($this->TotalResult==-1)
// {
// $cquery = "SELECT COUNT(*) AS dd FROM `#@__arctiny` arc WHERE ".$this->addSql;
// $row = $this->dsql->GetOne($cquery);
// if(is_array($row))
// {
// $this->TotalResult = $row['dd'];
// }
// else
// {
// $this->TotalResult = 0;
// }
// }
6、在238行左右 $this->dtp->LoadTemplate($tempfile);下添加如下代码:
foreach($this->dtp->CTags as $tagid=>$ctag)
{
$flag = $ctag->GetAtt('flag');
if($flag!='') {
$this->addSql .= " and arc.flag like '%{$flag}%'";
}
}
if($this->TotalResult==-1)
{ //修改了
$cquery = "SELECT COUNT(*) AS dd FROM `#@__archives` arc WHERE ".$this->addSql;
$row = $this->dsql->GetOne($cquery);
if(is_array($row))
{
$this->TotalResult = $row['dd'];
}
else
{
$this->TotalResult = 0;
}
}
7、在647行左右$ctag->GetAtt("orderway"),下面添加一行:
$ctag->GetAtt('flag')
8、在721行左右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',$flag='')中添加了$flag=''
9、在754行左右也就是排序方式上面添加 :
//添加flag标签
$whereFlag = "";
if($flag!='') {
$whereFlag = " and arc.flag like '%{$flag}%'";
}
10、在813行左右 修改成 if(preg_match('/hot|click|lastpost|weight|flag/', $orderby))
接着在下面的$query sql语句中WHERE {$this->addSql} 后面添加 {$whereFlag}
11、847行左右 $query sql语句中WHERE arc.id in($idstr)后面添加 {$whereFlag}
flag属性就添加成功了
相关文章推荐
- Android 命名规范 (提高代码可以读性)
- Android底层JNI中的JavaVM和JNIEnv对象
- iOS开发----IOS项目自动生成技术文档
- Android Drawable Resource学习(三)、NinePatchDrawable和NinePatch图片的制作
- 一个CAsyncSocket例子
- HDU ——2010 水仙花数
- 第四章 python中的面向对象设计
- SQL读取树型所有下级或所有上级
- 6款经典图表软件推荐
- 爬爬爬之路:C语言(七) 结构体篇
- Android Drawable Resource学习(二)、BitmapDrawable和Bitmap
- Nginx使用反向代理时Hessian411错误解决方案(转)
- C++标准模板库中list大数据量情况下析构效率的研究
- 用Ant将web工程打包
- SQLite表数据导出到MySQL
- putty连接linux服务器中文无法正确显示问题的解决
- Delphi事件列表赏析(38个事件,必须要对这些事件非常熟悉,才能如臂使指,才能正确发布到新控件!)
- Winform程序实现COM口通信
- SQL读取树型所有下级或所有上级
- leetcode31:Next Permutation