Максимальная цена товара в категории

Добрый день.
Для реализации слайдера цены в фильтре товаров, необходимо знать максимальную цену товара в этой категории (включая подкатегории)
Это необходимо для указания диапазона, поэтому бесконечность не подходит (стоит по умолчанию)
Подскажите пожалуйста, как это можно сделать

6 ответов

  • 0
    Сергей Варенов 19 ноября 2013 23:32 #
    Мне надо сделать случайные категории с минимальной ценой, я делал хелпер http://www.webasyst.ru/developers/docs/helpers/custom-helpers/


    shopVsCategory.class.php
    <pre><?php

    class shopVsCategory
    {
    public function randomCategory()
    {
    $model = new shopCategoryModel();
    $product = new shopProductModel();
    $res = $model->query('SELECT * FROM `shop_category` ORDER BY RAND() LIMIT 8')->fetchAll();

    for($i=0; $i<count($res); $i++){
    $data[$i]['id'] = $res[$i]['id'];
    $data[$i]['name'] = $res[$i]['name'];
    /*$data['min'] = $product->select('MIN(`price`)')
    ->where('`category_id=`'.$res['id'])
    ->fetchField();*/
    $data[$i]['min'] = $product->query("SELECT MIN(`price`) FROM `shop_product` WHERE `category_id`='".$res[$i]['id']."'")->fetchField();
    }
    $view = wa()->getView();
    $view->assign('random_categories',$data);
    return $view->display('random_categories.html');
    }
    }
    ?></pre>

    <b>random_categories.html</b>
    <pre><ul class="">
    {if $random_categories}
    {foreach $random_categories as $cat}
    <li>
    {$cat.name}
    {$ct=$wa->shop->category($cat.id)}
    {shop_currency($cat.min, true)}
    </li>
    {/foreach}
    {/if}
    </ul></pre>
    в нужном вам месте пишите <b>{shopVsCategory::randomCategory()}</b>

    вам надо убрать ORDER BY RAND() LIMIT 8 и вместо MIN(`price`), сделать MAX(`price`)
  • 0
    Сергей Варенов 19 ноября 2013 23:33 #
    уберите теги <pre> и <b> видимо в комментариях они не работают
  • 0
    Делаю все как посоветовали, но ни чего не получается.
    Скрипт выводит код шаблона до момента, где вставлен код вызова хелпера.
    Уже пробовал упростить код хелпера до
    $data = 300;
    return $data;
    но ни чего не происходит.
    Вызов хеплера уже сверял по буквам (название файла, название функции..)
  • 0
    вот код хэплера
    <?php

    class shopPashok
    {
    public static function prMax()
    {
    $data = 300;
    return $data;
    }

    }

    ?>

    вот так вызываю
    {shopPashok::prMax()}
  • 0
    файл класса лежит в /shansmag.com.ua/wa-apps/shop/lib/classes

    вывожу результат в шаблон shop/themes/default
    category.html
  • 0
    Павел Гордовой 5 января 2014 08:37 #
    Все так же не получается создать свой хелпер
    пишет:
    Fatal error: Class 'shopCustom' not found in/wa-cache/apps/shop/templates/compiled/shop_ru_RU/8d/37/

Добавить ответ

Чтобы добавить комментарий, зарегистрируйтесь или войдите