Simpla CMS

Статус
В этой теме нельзя размещать новые ответы.
Сколько уровней вложенности в каталоге?
 
Будьте так добры перезалейте последний зануленный
 
Поковырявшись в коде обнаружил функцию подсчета количества товара
Код:
    /**
    * Функция возвращает количество товаров
    * Возможные значения фильтра:
    * category_id - id категории или их массив
    * brand_id - id бренда или их массив
    * keyword - ключевое слово для поиска
    * features - фильтр по свойствам товара, массив (id свойства => значение свойства)
    */
    public function count_products($filter = array())
    {       
        $category_id_filter = '';
        $brand_id_filter = '';
        $keyword_filter = '';
        $visible_filter = '';
        $is_featured_filter = '';
        $discounted_filter = '';
        $features_filter = '';
       
        if(!empty($filter['category_id']))
            $category_id_filter = $this->db->placehold('INNER JOIN __products_categories pc ON pc.product_id = p.id AND pc.category_id in(?@)', (array)$filter['category_id']);
 
        if(!empty($filter['brand_id']))
            $brand_id_filter = $this->db->placehold('AND p.brand_id in(?@)', (array)$filter['brand_id']);
       
        if(isset($filter['keyword']))
        {
            $keywords = explode(' ', $filter['keyword']);
            foreach($keywords as $keyword)
                $keyword_filter .= $this->db->placehold('AND p.name LIKE "%'.mysql_real_escape_string(trim($keyword)).'%" ');
        }
 
        if(!empty($filter['featured']))
            $is_featured_filter = $this->db->placehold('AND p.featured=?', intval($filter['featured']));
 
        if(!empty($filter['discounted']))
            $discounted_filter = $this->db->placehold('AND (SELECT 1 FROM __variants pv WHERE pv.product_id=p.id AND pv.compare_price>0 LIMIT 1) = ?', intval($filter['discounted']));
 
        if(!empty($filter['visible']))
            $visible_filter = $this->db->placehold('AND p.visible=?', intval($filter['visible']));
       
       
        if(!empty($filter['features']) && !empty($filter['features']))
            foreach($filter['features'] as $feature=>$value)
                $features_filter .= $this->db->placehold('AND p.id in (SELECT product_id FROM __options WHERE feature_id=? AND value=? ) ', $feature, $value);
       
        $query = "SELECT count(distinct p.id) as count
                FROM __products AS p
                $category_id_filter
                WHERE 1
                    $brand_id_filter
                    $keyword_filter
                    $is_featured_filter
                    $discounted_filter
                    $visible_filter
                    $features_filter ";
 
        $this->db->query($query);   
        return $this->db->result('count');
    }
вот только как ее прикрутить? Блин, говорила мне мама учись сынок. пригодиться...... Эх.
 
Вот запрос, к сожалению проверить не на чем, пробуйте у себя
Код:
SELECT t1.category_id, (COUNT(t1.product_id)+COUNT(t2.product_id)+COUNT(t3.product_id)) AS goods_count
FROM __products_categories AS t1
LEFT JOIN __products_categories AS t2 ON t2.parent = t1.category_id
LEFT JOIN __products_categories AS t3 ON t3.parent = t2.category_id
GROUP BY t1.category_id, t2.category_id, t3.category_id

И посмотрите как поле parent (владелец) обозвано в таблице.
 
Ругается :(

Warning
: Unknown column 't2.parent_id' in 'on clause' [SELECT t1.category_id, (COUNT(t1.product_id)+COUNT(t2.product_id)+COUNT(t3.product_id)) AS goods_count FROM s_products_categories AS t1 LEFT JOIN s_products_categories AS t2 ON t2.parent_id = t1.category_id LEFT JOIN s_products_categories AS t3 ON t3.parent_id = t2.category_id GROUP BY t1.category_id, t2.category_id, t3.category_id] in
...\api\Database.php
on line
116

Warning
: Unknown column 't2.parent_id' in 'on clause' in
...\api\Database.php
on line
161

Warning
: Cannot modify header information - headers already sent by (output started at ...\api\Database.php:116) in
...\index.php
on line
26
 
Посмотрите phpMyAdmin там точно есть колонка parent_id?
 
id
parent_id
name
meta_title
meta_keywords
meta_description
description
url
image
position
visible
external_id

Я понял в чем ошибка, мы делаем выборку по таблице s_products_categories,
а там поля только product_id, category_id и position
 
Кто-нибудь смог прикрутить оплату наложенным платежом, чтобы в прямом времени высчитывалась стоимость доставки?

+ у кого есть мод Онлайн консультации?
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху