栏目列表页:如何自定义搜索条件?

如果需要自定义栏目上搜索条件,首先的建议就是新建一个栏目后台信息列表模板

图片

默认的搜索条件是:

图片

自定义搜索条件有3部分(必须一一对应):

  1. 搜索的字段(_filter)
  2. 操作符(_opterator), 参考: ThinkPHP 3.2-表达式查询
  3. 搜索值(_value)

CMS中的默认例子:

  1. <section style="display: inline;">
  2. <!-- 搜索字段 -->
  3. <select name="_filter[0]" class="select_2">
  4. <option value="username" <if condition=" $_filter[0] == 'username' "> selected</if>>发布人</option>
  5. <option value="id" <if condition=" $_filter[0] == 'id' "> selected</if>>用户ID</option>
  6. <option value="title" <if condition=" $_filter[0] == 'title' "> selected</if>>标题</option>
  7. </select>
  8. <!-- 操作符 -->
  9. <select name="_opterator[0]" class="select_2">
  10. <option value="EQ" <if condition=" $_opterator[0] == 'EQ' "> selected</if>>等于</option>
  11. <option value="NEQ" <if condition=" $_opterator[0] == 'NEQ' "> selected</if>>不等于</option>
  12. <option value="GT" <if condition=" $_opterator[0] == 'GT' "> selected</if>>大于</option>
  13. <option value="EGT" <if condition=" $_opterator[0] == 'EGT' "> selected</if>>大于等于</option>
  14. <option value="LT" <if condition=" $_opterator[0] == 'LT' "> selected</if>>小于</option>
  15. <option value="ELT" <if condition=" $_opterator[0] == 'ELT' "> selected</if>>小于等于</option>
  16. <option value="LIKE" <if condition=" $_opterator[0] == 'LIKE' "> selected</if>>模糊查询</option>
  17. </select>
  18. <!-- 搜索值 -->
  19. <input class="input length_2" type="text" name="_value[0]" value="{$_value[0]}">
  20. </section>

注意:

  1. _value[X]为空字符串时,会忽略整个字段,即该_filter[X],_opterator[X]均不起作用
  2. 若有多个,则继续新增_filter[1],_opterator[1], _value[1]….如此类推
  3. 更复杂的,若不能不足需求,那么请重写Content/ContentController::classlist方法

PS:

对于旧版本的用户来说,需要接入这个功能,可以参考修改源码

升级步骤:

1.修改classlist的搜索实现

app/Application/Content/Controller/ContentController.class.php 中替换 classlist方法

2.修改默认列表页的搜索条件

文件:app/Application/Content/View/Content/classlist.php,修改成上述CMS的默认例子