我们开发很多时候会有置顶 精华这种功能
精华就不说了
我就说说置顶
你会发现你使用listpage标签无法去在order中添加你的置顶条件
并且where条件也无法添加
因为官方在这里添加了一层过滤
如果你要添加 请修改
\application\common\controller\index\C.php
查找
if (!in_array($order, ['id','create_time','list','rand()','view'])) { if(empty($order) || table_field($this->model->getTableByMid($mid),$order)==false){ $order = 'list'; } }
替换成
$order || $order = 'list';
改完了之后你会发现置顶的条件已经添加到order中
但是 如果你标签中的order写法是:
{qb:listpage name="news_list_page_listdata01" type="cms" rows="10" order="istop desc ,list desc" by="desc" where="create_time<$time" }
那么你会发现你的分页是不可用的
order="istop desc,list desc" 在tag标签中可以这么使用
但是在listpage标签中 你想分页 那么 请先升级
如果你后台二次开发文件过多
那么你只需要改如下几个文件
这些文件不仅仅可以修改order传参的问题 还可以添加where传参的问题
更新时间为2018-07-25
/application/common/controller/index/C.php
/application/common.php
/application/index/controller/LabelShow.php
/application/common/taglib/Qb.php
这个更新后 你会发现
{qb:listpage name="news_list_page_listdata01" type="cms" rows="10" order="istop desc ,list desc" by="desc" where="create_time<$time" }
还是不可以使用 惊不惊喜意不意外! 那是不是白更新了呢?
并不是。
因为你还需要修改一个文件
\application\index\controller\LabelShow.php
修改一下函数
public function get_listpage_ajax_url
整个函数换成下面的
public function get_listpage_ajax_url($tag_name=''){ $cfg = self::$list_page_cfg[$tag_name]; if ($cfg['where']) { $cfg['where'] = mymd5($cfg['where']); //避免用户恶意修改 } $_getA = []; foreach($cfg AS $key=>$value){ if ($value && !preg_match("/^([-\w]+)$/i", $value)) { $_getA[$key] = $value; unset($cfg[$key]); } } $_get = http_build_query($_getA); //路由无法正确解释带有空格之类的内容,所以要改用GET echo iurl( config('system_dirname').'/content/ajax_get', $cfg )."?$_get&page="; }
从此以后 你会发现 你的代码既可以支持where 也可以支持order 传参