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

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

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

    图片

    默认的搜索条件是:

    图片

    自定义搜索条件有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的默认例子