【问题标题】:Exclude category from site search in CS Cart从 CS Cart 中的站点搜索中排除类别
【发布时间】:2017-02-08 11:53:31
【问题描述】:

是否可以从搜索结果中排除特定类别的产品?无法通过fn.search.phptpl 文件找到任何方法。

【问题讨论】:

    标签: php mysql smarty cs-cart


    【解决方案1】:

    您可以使用钩子“get_products” 请添加到文件中:

    app/addons/my_changes/init.php

    <?php
    
    if (!defined('BOOTSTRAP')) { die('Access denied'); }
    
    fn_register_hooks(
        'get_products'
    );
    

    app/addons/my_changes/func.php

    <?php
    
    if (!defined('BOOTSTRAP')) { die('Access denied'); }
    
    function fn_my_changes_get_products($params, $fields, $sortings, &$condition, $join, $sorting, $group_by, $lang_code, $having){
    
        if (AREA=='C' && !empty($params['search_performed']) && $params['search_performed']=='Y') {
            $cids = array(...); //ex: 15, 16, 17
            $subcats = true;
    
            if ($subcats) {
                $_ids = db_get_fields(
                    "SELECT a.category_id"."
                     FROM ?:categories as a"."
                     LEFT JOIN ?:categories as b"."
                     ON b.category_id IN (?n)"."
                     WHERE a.id_path LIKE CONCAT(b.id_path, '/%')",
                    $cids
                );
                $cids = fn_array_merge($cids, $_ids, false);
            }
    
            $condition .= db_quote(" AND ?:categories.category_id NOT IN (?n)", $cids);
        }
    }
    

    您将需要使用您希望排除产品的类别 ID 填充 $cids 数组,如果还用于子类别

    $cids = 数组(...);

    请确认:

    • 我的更改插件已激活
    • 如果文件丢失,您需要创建

    【讨论】:

      猜你喜欢
      • 2018-05-22
      • 2021-12-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-14
      相关资源
      最近更新 更多