欢迎来到站长天空!

PHPCMS

当前位置: 主页 > CMS教程 > PHPCMS

Phpcms V9内容模型列表标签where条件失效的修改方法

时间:2025-11-16 09:35:14|栏目:PHPCMS|点击:

最近忙于项目,碰到一个问题:在使用action="lists"调用内容模型的数据列表时,如果加上where条件语句,会造成其他条件失效,今天就列表标签where条件失效问题与大家分享修正方法。

比如调用语句:

{pc:content action="lists" catid="$catid" where="posids`!='0'"num="10" order="id DESC" page="$page"}
        <ul>
{loop $data $r}
<li><span>{date('Y-m-d H:i:s',$r[inputtime])}</span>·<a href="{$r[url]}" target="_blank"{title_style($r[style])}>{$r[title]}</a></li>
{/loop}
        </ul>
        <div class="pagenavi">{$pages}</div>
{/pc}

上面的action="lists"调用语句里边出现了 where="posids`!='0'",于是造成其他条件失效。

通过查找源头php写法,找到/phpcms/modules/content/classes/content_tag.class.php文件,具体修改如下:

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;
}
}


上一篇:Phpcms V9在IIS下添加伪静态方法

栏    目:PHPCMS

下一篇:Phpcms v9删除文章不能同步删除相关关键词数据的解决方法

本文标题:Phpcms V9内容模型列表标签where条件失效的修改方法

本文地址:https://zz.feitang.co/CMSjiaocheng/26354.html

广告投放 | 联系我们 | 版权申明

申明:本站所有的文章、图片、评论等,均由网友发表或上传并维护或收集自网络,属个人行为,与本站立场无关。

如果侵犯了您的权利,请与我们联系,我们将在24小时内进行处理、任何非本站因素导致的法律后果,本站均不负任何责任。

联系QQ:257218569 | 邮箱:257218569@qq.com

Copyright © 2018-2025 站长天空 版权所有 Powered by EyouCms冀ICP备14023439号