1 Отредактировано Владимир 1916 (27.02.2017 22:39:45)

Тема: Вывести бренды вместо Подкатегорий

Как можно в категориях вывести бренды, которые в ней находятся? Вместо подкатегорий, их (подкатегорий) нет.

Т.е. в шаблонах\templates\perfume\moduleview\catalog\blocks\category\category.tpl вывести категории первого уровня, а вместо подкатегорий - бренды которые в них есть (название и ссылка на страницу этой категории с выбранным брендом). Например /catalog/termoregulyatory/?bfilter[brand][]=30

И то же самое в шаблоне \templates\perfume\moduleview\catalog\list_products.tpl

вместо

 <nav class="subCategory">
        {foreach $sub_dirs as $item}
        <a href="{urlmake category=$item._alias p=null pf=null bfilter=null}">{$item.name}</a>
        {/foreach}
    </nav>

вывести бренды.

Поясню. Хочу все-таки уйти от вложенных категорий по производителям, т.к. идет дублирование. Индексируется Подкатегория, а подбор идет фильтрами. И поведенческие факторы будут, по моему мнению, хуже, т.к. посещений каждой страницы будет меньше.
SEO-категории тоже не устраивают, т.к. тогда нельзя будет выбрать несколько производителей. При выборе одного производителя будет переход на другую страницу.

Повысить оценку Понизить оценку

2

Re: Вывести бренды вместо Подкатегорий

Владимир 1916 пишет:

Поясню. Хочу все-таки уйти от вложенных категорий по производителям, т.к. идет дублирование. Индексируется Подкатегория, а подбор идет фильтрами. И поведенческие факторы будут, по моему мнению, хуже, т.к. посещений каждой страницы будет меньше.
SEO-категории тоже не устраивают, т.к. тогда нельзя будет выбрать несколько производителей. При выборе одного производителя будет переход на другую страницу.

Извините, вмешаюсь не совсем по вашему вопросу, а больше по вашей задумке.
Т.е. вы хотите, что-бы человек при переходе из поисковика по запросу производителя, попадал сразу на каталог товара, а не в карточку этого самого производителя?

Re: Вывести бренды вместо Подкатегорий

Сергей пишет:
Владимир 1916 пишет:

Поясню. Хочу все-таки уйти от вложенных категорий по производителям, т.к. идет дублирование. Индексируется Подкатегория, а подбор идет фильтрами. И поведенческие факторы будут, по моему мнению, хуже, т.к. посещений каждой страницы будет меньше.
SEO-категории тоже не устраивают, т.к. тогда нельзя будет выбрать несколько производителей. При выборе одного производителя будет переход на другую страницу.

Извините, вмешаюсь не совсем по вашему вопросу, а больше по вашей задумке.
Т.е. вы хотите, что-бы человек при переходе из поисковика по запросу производителя, попадал сразу на каталог товара, а не в карточку этого самого производителя?

Да. Я думаю, что карточка производителя мало интересна реальному покупателю интернет магазина. Во всяком случае тому, кто хочет реально что-то купить.
И поэтому, не вижу смысла делать ее входной страницей.

Вбивая в поиске запрос "купить сматфон Самсунг" вы хотите попасть на страницу с товарами, а не с историей компании Самсунг. Это первое.

Второе. Если входная (посадочная) страница - карточка бренда, то ее нужно оптимизировать под множество запросов "стиральная машина самсунг, телевизор самсунг, планшет самсунг и т.п.". А это не правильно. Правильней под каждый такой запрос оптимизировать свою отдельную страницу.

И третье. Будет трудно продвинуть по запросу карточку производителя, т.к. с внутренних страниц на нее будет мало кто переходить, и совсем мало кто задерживаться, поэтому ПФ будут слабыми. Ссылки на карточку бренда идут не со всех страниц, а только с карточек соответствующего товара, с Главной и со страницы Все производители. А, по-хорошему, сделать ссылки сквозными со всех страниц.  В том числе со страниц категорий (да так, чтобы по ним и кликали еще).

В принципе, карточку бренда можно и оставить, но продвигать ее только по самым ВЧ запросам. С которых, правда, продаж будет мало.

Повысить оценку Понизить оценку

Re: Вывести бренды вместо Подкатегорий

Владимир 1916 пишет:

SEO-категории тоже не устраивают, т.к. тогда нельзя будет выбрать несколько производителей. При выборе одного производителя будет переход на другую страницу.

Попробовал, перехода нет. Но, тогда, в моем случае, это то же, что и просто подкатегория.

А мне нужно, чтобы в этой подкатегории были все возможные фильтры от Верхней (основной) категории. И в фильтре по товарам стояла галочка. Вот чего хочу добиться. Так даже лучше, чем вариант в стартпосте, т.к. можно задать нормальный человеческий URL, и с описанием, метатегами и XML проблем нет.

Можно так сделать?

Повысить оценку Понизить оценку

Re: Вывести бренды вместо Подкатегорий

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

Re: Вывести бренды вместо Подкатегорий

Спасибо, буду пробовать.

Повысить оценку Понизить оценку

Re: Вывести бренды вместо Подкатегорий

в шаблон  \templates\perfume-my\moduleview\catalog\blocks\category\category.tpl

вставляю код

{foreach $brands as $brand}
                {var_dump($brand)}
                
    
   {/foreach}

Ничего не выводит. Совсем ничего.

Может нужно вверху шаблона добавить еще что-то?

Повысить оценку Понизить оценку

8 Отредактировано Закусило Александр (02.03.2017 16:40:19)

Re: Вывести бренды вместо Подкатегорий

А $brands Вы как получили в шаблоне? Вам надо в шаблоне при помощи static_call вызвать свою функцию в Вашем классе, и получить бренды. Вы так делали?

Первым рендерится содержимое выводящиеся front контроллером, а затем вся обёртка с блок контроллерами. Блок с фильтрами к этому моменту ещё не обработан.

9 Отредактировано Владимир 1916 (03.03.2017 16:13:37)

Re: Вывести бренды вместо Подкатегорий

Т.е. нужно вверху шаблона вставить

{static_call var=brand callback=['\Catalog\Model\Orm\Brand', 'loadByWhere'] params=[[а тут что писать???]]}

?

Повысить оценку Понизить оценку

Re: Вывести бренды вместо Подкатегорий

Т.е. нужно вверху шаблона вставить
{static_call var=brand callback=['\Catalog\Model\Orm\Brand', 'loadByWhere'] params=[[а тут что писать???]]}
?

Не по делу:
Можно ничего, можно массив для запроса.

По делу:
Зачем вам грузить бренд один бренд. Вы должны вызвать метод из своего модуля. И внутри вызвать методы из блок контроллера фильтров, чтобы получить бренды которые есть у категории внутри.
Блок фильтров это
\Catalog\Controller\Block\SideFilters в /modules/catalog/controller/block/sidefilters.inc.php
В этом блок контроллере подгружаются бренды для фильтра в категории.

Re: Вывести бренды вместо Подкатегорий

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

Повысить оценку Понизить оценку

Re: Вывести бренды вместо Подкатегорий

1. Нужно создать свой модуль с классом API
2. В шаблоне вызвать при помощи static_call публичный статический метод данного класса.
3. Внутрь метода положить часть функционала относящегося к брендам из блок контроллера \Catalog\Controller\Block\SideFilters