解决lists标签中,加上where后其他条件失效的问题

添加时间:2023-03-14 10:10:41


问题描述:
{pc:content action="lists" catid="$catid" where="posids`!='0'" thumb="1" num="10"}
发现不是调用当前栏目而是全部栏目的,并且不管有没有缩略图都显示出来,在PHPCMS官方论坛搜索了一下,发现这个问题存在很久了。今天我们说一下怎么修复吧!
 
打开 /phpcms/modules/content/classes/目录下的 content_tag.class.php这个文件,把下面的代码(大概第63行)
if(isset($data['where'])) {
$sql = $data['where'];
} else {
$thumb = intval($data['thumb']) ? " AND thumb != ''" : '';
if($this->category[$catid]['child']) {
$catids_str = $this->category[$catid]['arrchildid'];
$pos = strpos($catids_str,',')+1;
$catids_str = substr($catids_str, $pos);
$sql = "status=99 AND catid IN ($catids_str)".$thumb;
} else {
$sql = "status=99 AND catid='$catid'".$thumb;
}
}
替换为下面的代码即可。
/*以下为创想工作室修改开始*/
if(isset($data['where'])) {
$where = (isset($data['where'])&&(!empty($data['where'])))?' AND '.$data['where']:'';
$thumb = intval($data['thumb']) ? " AND thumb != ''" : '';
if($this->category[$catid]['child']) {
$catids_str = $this->category[$catid]['arrchildid'];
$pos = strpos($catids_str,',')+1;
$catids_str = substr($catids_str, $pos);
$sql = "status=99".$where." AND catid IN ($catids_str)".$thumb;
} else {
$sql = "status=99".$where." AND catid='$catid'".$thumb;
}
} else {
$thumb = intval($data['thumb']) ? " AND thumb != ''" : '';
if($this->category[$catid]['child']) {
$catids_str = $this->category[$catid]['arrchildid'];
$pos = strpos($catids_str,',')+1;
$catids_str = substr($catids_str, $pos);
$sql = "status=99 AND catid IN ($catids_str)".$thumb;
} else {
$sql = "status=99 AND catid='$catid'".$thumb;
}
}
 

201712-29

引导推荐是提升网站建设营销效果的有效方法

我们在一些大的资讯门户类网站上阅读新闻的时候,一篇文章后面一般在结尾的地方会有相关阅读,相关阅读里面的内容与当前内容是相关联的

201712-29

网站内容原创不等于网站质量与网站权重

在很多人的观念里面,将网站内容等同于网站质量,认为有内容网站的就一定有质量,并且将网站质量和网站权重也等同起来


建站套餐我们专注设计,只做一件事 :持续为客户创造价值

——
设计网站

设计网站

大部分客户都要问:做个网站大概多少钱? 答:主要看需求,常见的大概五六千吧

模板网站

模板网站

上百个网站样式模板,适合中小公司做网站,价格低,网站美,同时满足起步型公司的需求。

维护网站

维护网站

企业事务忙没时间管理网站?请专人管理网站成本太高?一天仅1~10元解决网站所有问题!