Jump to content


Photo
- - - - -

Ограничить публикацию материалов по типу


18 replies to this topic

#1 registr

registr
  • JBZoo User (rus)
  • User rate: 0
  • posts: 1210
  • topics: 345

Posted 21 June 2016 - 11:21

Суть в следующем: товары публикуются используя тип "Магазин" а в модуль "Популярные категории" элементы выводятся используя тип Популярные категории: http://joxi.ru/EA4KvJGCnKG02b
вот так: http://joxi.ru/Vm6a7gEIQXEqrZ
Но проблема в том что этот товар с типом Популярные категории который мне надо вывести только в модуле выводится и на странице товаров категории http://portall.com.u...egory/dzhempera

Потому вопрос: а можно как-то прописать чтоб запретить вывод товаров из определенного типа?


  • 0

#2 Cheren-dow

Cheren-dow
  • JBZoo User (rus)
  • User rate: 95.7
  • posts: 5060
  • topics: 31

Posted 22 June 2016 - 12:37

registr,  вы можете делать проверку в файле:

media\zoo\applications\jbuniversal\framework\classes\jbtemplate.php

в методе renderItem(). Или же переопределить этот метод в файле шаблона:

\media\zoo\applications\jbuniversal\templates\ВАШ_ШАБЛОН\template.php

Вам доступен объект $item через API можете получить данные категории и типа, и не выводить если категория и тип совпадают.


  • 0
Изображение
 

#3 registr

registr
  • Topic Starter
  • JBZoo User (rus)
  • User rate: 0
  • posts: 1210
  • topics: 345

Posted 22 June 2016 - 20:22

вот знаете ж что я не программист:) 

нашел строку 164

    public function renderItem(Item $item, $defaultLayout = 'teaser', $htmlItem)

как в ней прописать чтоб  тип Популярные категории не выводились на странице товаров категории, подскажите


  • 0

#4 Cheren-dow

Cheren-dow
  • JBZoo User (rus)
  • User rate: 95.7
  • posts: 5060
  • topics: 31

Posted 22 June 2016 - 21:15

registr, кой у вас id категории? Это родительская категория или нет? Какой алиас типа? 


  • 0
Изображение
 

#5 registr

registr
  • Topic Starter
  • JBZoo User (rus)
  • User rate: 0
  • posts: 1210
  • topics: 345

Posted 23 June 2016 - 07:24

алиас типа который не надо выводить - popular

А категории могут быть любые. Суть в чем: на главной вывожу модуль JBZOO Fly - Популярные категории - http://portall.com.ua/opt/ dd нем отображаются созданные мной товары в которых указаны общие для всех товаров категории, но при создании товара я выбирал тип не Товары, как для всех товаров а тип Популярные категории. И все бы хорошо но эти товары когда переходишь из этого модуля в категорию. например http://portall.com.ua/opt/catalogue/category/dzhempera  тоже отображаются что уже не совсем хорошо


  • 0

#6 Cheren-dow

Cheren-dow
  • JBZoo User (rus)
  • User rate: 95.7
  • posts: 5060
  • topics: 31

Posted 23 June 2016 - 09:52

registr, может быть стоит создать отдельную категорию где и сохранять эти материалы для вывода в слайдере? 


  • 0
Изображение
 

#7 registr

registr
  • Topic Starter
  • JBZoo User (rus)
  • User rate: 0
  • posts: 1210
  • topics: 345

Posted 23 June 2016 - 10:15

я б не против, но не пойму как тогда сделать чтоб в модуле выводилось фото и название популярной категории и по фото и названию шел переход на страницу товаров категории


текущий вариант в принципе устраивает, если можно как-то запретить вывод товаров из типа Популярные категории (ну или указать что товары выводить только из типа Магазин). Но там на сайте еще есть тип Статьи, чтоб этот тип не коснулось...


  • 0

#8 Cheren-dow

Cheren-dow
  • JBZoo User (rus)
  • User rate: 95.7
  • posts: 5060
  • topics: 31

Posted 23 June 2016 - 11:39

registr, в этом случае создавать материалы с нужными картинками и ссылками. С файлом template.php - попробуйте это решение подставив свои значения:

    /**
     * Render item wrapper.
     *
     * @param Item $item
     * @param string $defaultLayout
     * @param $htmlItem
     * @return null|string
     */
    public function renderItem(Item $item, $defaultLayout = 'teaser', $htmlItem)
    {
        $attrs = array(
            'class' => array(
                'jbzoo-item',
                'jbzoo-item-' . $item->type,
                'jbzoo-item-' . $defaultLayout,
                'jbzoo-item-' . $item->id
            )
        );

        $skipCatId = 9; // id категории в какой нужно скрыть материалы - страница категории
        $inCatId   = 8; // id категории к которой принадлежит товар для скрытия

        if (
            $item->type == 'popular' &&
            $this->app->jbrequest->get('category_id') == $inCatId
            && in_array($skipCatId, $item->getRelatedCategoryIds())
        ) {
            return '';
        }

        $output = $htmlItem;
        $attrs  = $this->app->jbhtml->buildAttrs($attrs);

        $wrapperTag = 'none';
        if ($this->application) {
            $wrapperTag = $this->params->get('global.config.wrap_item_style', 'none');
        }

        if ($wrapperTag != 'none') {
            $output = '<' . $wrapperTag . ' ' . $attrs . '>' . $htmlItem . '</' . $wrapperTag . '>';
        }

        return $output;
    }

При больших объемах это может за тормазить 


  • 0
Изображение
 

#9 registr

registr
  • Topic Starter
  • JBZoo User (rus)
  • User rate: 0
  • posts: 1210
  • topics: 345

Posted 23 June 2016 - 12:17

у меня ситуация не с категориями а с скрытием товаров определенного ТИПА

Прописывать все 50 или более категорий в файле сами понимаете


  • 0

#10 Cheren-dow

Cheren-dow
  • JBZoo User (rus)
  • User rate: 95.7
  • posts: 5060
  • topics: 31

Posted 23 June 2016 - 13:24

registr, в моем примере на страницы категории  с id = 9 не выводятся материалы которые присвоены к категории с id = 8 и имеют алиас = popular


  • 0
Изображение
 




Click to return to top of page in style!