Перейти к содержимому


Фотография
- - - - -

Количество материалов категории из настроек категории


Лучший Ответ SmetDenis , 30 June 2015 - 06:05

Если я верно вас понял, то попробуйте следующий код.
Лимит будет взят из настроек категории.
Если там не задан (галочка - глобальное), то лимит будет взят из настроек модуля.
 

    protected function _getItems($catId)
    {
        $category = $this->app->table->category->get($catId);
        $limit = $this->_params->get('items_limit');
        if ($category) {
            $limit = $category->params->get('config.items_per_page', $this->_params->get('items_limit'));
        }

        $items = JBModelItem::model()->getList(
            $this->_params->get('app_id'),
            $catId,
            $this->_params->get('type_id', false),
            array(
                'limit'     => $limit,
                'published' => 1,
                'order'     => $this->_params->get('item_order'),
            )
        );
        return $items;
    }
Перейти к сообщению


  • Закрытая тема Тема закрыта
Сообщений в теме: 3

#1 kuchertaras

kuchertaras

Отправлено 28 June 2015 - 11:16

Здравствуйте!

 

Подскажите, пожалуйста, как можно получить количество материалов для каждой категории из настроек категории? Я хочу в модуле JBZoo Category List выводить только заданное количество материалов. 

 

Возможно есть на форуме ответ, но при поиске выдает как получить общее количество материалов в категории

Прикрепленные изображения

  • Category.png

  • 0

#2 kuchertaras

kuchertaras

Отправлено 28 June 2015 - 12:35

И дополню вопрос.

Поковырял код хелпера /modules/mod_jbzoo_category/helper.php

 

В нем есть метод получения списка материалов для категории:

protected function _getItems($catId)
    {
        $items = JBModelItem::model()->getList(
            $this->_params->get('app_id'),
            $catId,
            $this->_params->get('type_id', false),
            array(
                'limit'     => $this->_params->get('items_limit'),
                'published' => 1,
                'order'     => $this->_params->get('item_order'),
            )
        );
        return $items;
    }

Может можно её как-то переписать, что бы получать лимит конкретной категории из настроек категории. И, если в настройках модуля установлено значение - выводить '0'(все) материалов,  то загружать только нужное количество материалов. Тогда не нужно будет переписывать цикл вывода материалов в шаблоне.


  • 0

#3 SmetDenis

SmetDenis

Отправлено 30 June 2015 - 06:05   Лучший Ответ

Если я верно вас понял, то попробуйте следующий код.
Лимит будет взят из настроек категории.
Если там не задан (галочка - глобальное), то лимит будет взят из настроек модуля.
 
    protected function _getItems($catId)
    {
        $category = $this->app->table->category->get($catId);
        $limit = $this->_params->get('items_limit');
        if ($category) {
            $limit = $category->params->get('config.items_per_page', $this->_params->get('items_limit'));
        }

        $items = JBModelItem::model()->getList(
            $this->_params->get('app_id'),
            $catId,
            $this->_params->get('type_id', false),
            array(
                'limit'     => $limit,
                'published' => 1,
                'order'     => $this->_params->get('item_order'),
            )
        );
        return $items;
    }

  • 1
JBZoo v4.0 и новый чудный мир Open Source GPL
Отключайте проверку лицензий как можно скорее!



— Есть два типа людей: Кто еще не делает бекапы и кто уже делает бекапы.


#4 kuchertaras

kuchertaras

Отправлено 30 June 2015 - 11:52

Спасибо! Именно то, что надо!


  • 0




Click to return to top of page in style!