Помощь Как вывести категорию в каталоге товаров?

Не знаю это Вы или нет поднимали этот вопрос Для просмотра ссылки Войди или Зарегистрируйся для текущей категории еще можно реализовать (причем для подкатегории оно подхватывает ID текущей). В Вашем случае скорее всего придется создавать доп поле в базе и карточке товара(которое будет брать либо ID либо название категории) и вытягивать его через модель
Создавал не я, но поднял сегодня...
Да, я уже думал над таким подходом, как Вы говорите, но может у кого-то созреет более простое решение? И лишних запросов к БД не хотелось...
 
Кто-то спрашивал, как решил я эту проблему. Отвечу здесь.
Возможно кому-то покажется геморрно, но мне подошло такое решение:
в списке товаров в категории выводим атрибут (подсмотрено на просторах интернет, не помню где:(
1. в catalog/controller/product/category.php
ищем
Код:
$this->data['products'][] = array(
и добавляем после 'description'
Код:
'attribute_groups' => $this->model_catalog_product->getProductAttributes($result['product_id']),

2. создаем атрибут, например "Коллекция:"

3. в /catalog/view/theme/ваша_тема/template/product/category.tpl добавляем после вывода названия товара (что-то типа <div class="что у вас в шаблоне"><a href="<?php echo $product['href']; ?>"><?php echo $product['name']; ?></a><br/>) следующие строки:
Код:
<?php foreach($product['attribute_groups'] as $attribute_group) { ?>
     <?php foreach($attribute_group['attribute'] as $attribute) { ?>
     <?php if(in_array($attribute['attribute_id'], array(28))){?>
     <tr>
     <td><?php echo $attribute['name']; ?></td>
     <td><?php echo $attribute['text']; ?></td>
     </tr>
     <?php } ?><?php } ?><?php } ?>
где array(28) - цифры - это id атрибута, который нужно вывести (через запятую, если нужно несколько)
узнать id атрибута просто: в режиме редактирования атрибутов наведите курсор на "изменить" нужного атрибута - в ссылке, кроме всей прочей аброкадабры, увидите искомое

теперь созданный атрибут "Коллекция" будет выводиться под названием товара (естественно, не забываем прописать значение атрибута, например "Колорадо")
Немного доработал под себя:
Если нужно сделать атрибут ссылкой (например, на коллекцию Колорадо), то в значение атрибута пишем его со ссылкой (<a href='Для просмотра ссылки Войди или Зарегистрируйся">Колорадо</a>)
Но по умолчанию Opencart выведет сущности, т.е. получите просто текст <a href='Для просмотра ссылки Войди или Зарегистрируйся">Колорадо</a>. Чтобы получить нормальный вид, добавим в вывод атрибута htmlspecialchars_decode ():
Меняем
Код:
 ...
<td><?php echo $attribute['text']; ?></td>
...
на
Код:
<td><?php echo htmlspecialchars_decode ($attribute['text']); ?></td>

то же самое делаем с выводом атрибутов в карточке товаров: меняем в /catalog/view/theme/ваша_тема/template/product/product.tpl
Код:
<tbody>
           <?php foreach ($attribute_group['attribute'] as $attribute) { ?>
           <tr>
           <td><?php echo $attribute['name']; ?></td>
           <td><?php echo $attribute['text']; ?></td>
           </tr>
           <?php } ?>
         </tbody>
на
Код:
<tbody>
           <?php foreach ($attribute_group['attribute'] as $attribute) { ?>
           <tr>
           <td><?php echo $attribute['name']; ?></td>
           <td><?php echo htmlspecialchars_decode ($attribute['text']); ?></td>
           </tr>
           <?php } ?>
         </tbody>
вуаля!
Минус: нужно указывать лишний атрибут. При использовании "Attributic - Добавление атрибутов по шаблону в один клик" этот минус нивелируется
Плюс: могу выводить ссылку на категорию только там, где мне надо
2015-10-08_094228.jpg
 
Назад
Сверху