Simpla CMS

Статус
В этой теме нельзя размещать новые ответы.
Да простят меня модераторы - верстальщики есть на симплу?
На фрилансе найти невозможно, тут в разделе работы - тишина. Одни и те же 2 человека, портфолио которых абсолютно не вызывает доверия :)
А вот тут смотрел?
Скрытое содержимое доступно для зарегистрированных пользователей!
 
Если не трудно, прошу разжевать первокласснику.

В общих чертах так - сначала сделаем еще одну выборку, которая результирует таблицу соответствия category_id и количества продукции. Для этого в файле Site.class.php в class Site extends Widget определяем переменную var $goods_count и ниже заполняем ее выборкой + передаем в шаблон:
Код:
        $this->db->query("SELECT category_id, COUNT( product_id ) FROM s_products_categories GROUP BY category_id");
        $goods_count = $this->db->results();
        $this->smarty->assign('goods_count', $goods_count);

Теперь в шаблоне в index.tpl в выводе категорий рисуем количество товаров в категории

Код:
{foreach $categories as $c}
 
    {assign var=gcnt value="0"} {* по-умолчанию ноль *}
    {if $goods_count}
        {foreach $goods_count as $gcount}
            {if $gcount->category_id == $c->category_id}
                {assign var=gcnt value=$gcount->count} {* вот оно, наше количество *}
            {/if}
        {/foreach}
    {/if}
 
    ...
    <p><a href="catalog/{$c->url}" category_id="{$c->id}"><span>{$c->name} - {$gcnt}</span></a></p>
    ...
 
Спасибо, но это, я как понял, для 1.4, но смысл понятен, буду пробовать. Еще раз спасибо!
 
Спасибо, но это, я как понял, для 1.4, но смысл понятен, буду пробовать. Еще раз спасибо!
Да, 2-ой у меня нет, но я постарался по-максимуму адаптировать, семантику smarty и название таблицы.
 
Объявляю переменную private $goods_count;
Делаю запрос
Код:
        $this->db->query("SELECT category_id, COUNT( product_id ) FROM __products_categories GROUP BY category_id");
        $goods_count = $this->db->results();
        $this->design->assign('goods_count', $goods_count);
в шаблон вставляю
Код:
    {assign var=gcnt value="0"} {* по-умолчанию ноль *}
    {if $goods_count}
        {foreach $goods_count as $gcount}
            {if $gcount->category_id == $c->id}
                {assign var=gcnt value=$gcount->count} {* вот оно, наше количество *}
            {/if}
        {/foreach}
    {/if}
Значение $gcount->count получаю пустое, но видно что выборка происходит.
Что я делаю не так?

ПОМОГИТЕ !!!
 
Пробовал вывести category_id то выводит, потому и сказал что выборка происходит.
 
Попробуйте запрос написать вот так
Код:
SELECT category_id, COUNT( product_id ) AS goods_count FROM ... блаблабла
и выводить соответсвенно
Код:
$gcount->goods_count
 
Заработало, СПАСИБО, но маленькое но... показывает количество товара только в конечной категории, как это исправить?
 
Нужно переписать запрос по подкатегориям
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху