Перейти к содержанию
Esox

Кнопка "Посмотреть все товары этой категории"

Рекомендуемые сообщения

Добрый день.

Назрел такой вопрос:

Многие посетители заходят с поиска прямо в карточку товара. Естественно, в ней есть хлебные крошки, с помощью которых можно подняться вверх в категорию. При этом не все видят крошки или иногда не всегда понимают, что с помощью них можно делать переходы.

Отсюда вопрос, как сделать отдельную кнопку: Посмотреть все товары "название категории".

Которую можно было бы разместить между описанием и блоком информации о товаре.

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

Знает ли кто-нибудь готовое решение или все-таки придется искать программиста?

Спасибо.

Изменено пользователем tim21701

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Готового решения не знаю, но все решаемо.

Могу дать направление, если не разберетесь, то вариант "искать программиста".

На странице продукта (в Вашем случае карточка товара), в контролере поискать есть ли данные по категории ($GET['path']).

Если есть, создать ссылку на нее и в темплейте вывести кнопку с этой ссылкой.

Если данных по категории нет, то можно вытянуть с данных товара (запрос в базу).

Изменено пользователем tim21701
  • +1 1

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Вообщем есть такое решение

в файле catalog->controller->product->product.php ищите в начале файла такие строки

$category_info = $this->model_catalog_category->getCategory($path_id);

   if ($category_info) {
 $this->data['breadcrumbs'][] = array(
  'text'	  => $category_info['name'],
  'href'	  => $this->url->link('product/category', 'path=' . $path),
  'cat'	  => $this->url->link('product/category', 'path=' . $path),
  'separator' => $this->language->get('text_separator')

 );

сразу после этих строк вставляете следующий код

$this->data['cats'][] = array(

  'cat'	  => $this->url->link('product/category', 'path=' . $path),


 );

и сохраняете файл.

Потом идем в папку catalog->view->theme->ваша_тема->template->product->product.tpl и в нужном месте где надо вывести ссылку на категорию к которой относится данный товар вставляете код

<?php foreach ($cats as $cat) { ?>
 <a href="<?php echo $cat['cat']; ?>">Все товары раздела</a>
 <?php } ?>

текст ссылки, соответственно меняете на свой.

вроде все!!! И главное перед внесением изменений делайте бэкап файлам!!!

  • +1 2

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Супер! Спасибо! Всё получилось!

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

А как сделать не просто ссылкой, а красивой кнопкой?! Будет тогда просто СУПЕР!

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

А как сделать не просто ссылкой, а красивой кнопкой?! Будет тогда просто СУПЕР!

 

Добавьте класс кнопки со стандартного стиля, вот так.

<a href="<?php echo $cat['cat']; ?>" class="button">Все товары раздела</a>
  • +1 1

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Спасибо. Разобрался! Всё получилось.

Выявил одну проблемку: при импорте нового товара в категорию 3-го уровня, в товаре появляются 3 визуально ОДИНАКОВЫХ кнопки, но каждая из них ведёт на родительские категории: соответственно 3-го (родительская), 2-го и 1-го уровня!

Подскажите, как это убрать! Надо чтобы была одна кнопка, ведущая в родительскую категорию.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Кто-то поможет понять в чём проблема? Никак не могу разрулить... :(

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Кто-то поможет понять в чём проблема? Никак не могу разрулить... :(

Если у Вас вот этот код выводит несколько кнопок,

<?php foreach ($cats as $cat) { ?>
  <a href="<?php echo $cat['cat']; ?>">Все товары раздела</a>
  <?php } ?>

то перепишите на такой:

  <a href="<?php echo array_pop($cats)['cat']; ?>">Все товары раздела</a>

Это если родительская категория идет последняя в списке.

  • +1 1

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Если у Вас вот этот код выводит несколько кнопок,

<?php foreach ($cats as $cat) { ?>
  <a href="<?php echo $cat['cat']; ?>">Все товары раздела</a>
  <?php } ?>

то перепишите на такой:

  <a href="<?php echo array_pop($cats)['cat']; ?>">Все товары раздела</a>

Это если родительская категория идет последняя в списке.

Спасибо. Но что-то не получается - ВКмод ругается на этот код. Не могу понять почему...

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Вот такую ошибку выдаёт и ссылается именно на эту строку: Parse error: syntax error, unexpected '[', expecting ',' or ';' in

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Вот такую ошибку выдаёт и ссылается именно на эту строку: Parse error: syntax error, unexpected '[', expecting ',' or ';' in

Тогда еще так попробуйте:

<?php if(!empty($cats)) { ?>
  <a href="<?php echo array_pop($cats)['cat]; ?>">Все товары раздела</a>
  <?php } ?>

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

 

Тогда еще так попробуйте:

<?php if(!empty($cats)) { ?>
  <a href="<?php echo array_pop($cats)['cat']; ?>">Все товары раздела</a>
  <?php } ?>

Не знаю почему, но та же ошибка вылазит... :(

Parse error: syntax error, unexpected '[', expecting ',' or ';' in

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Еще так попробуйте:

<?php if(!empty($cats)) { ?>
  <a href="<?php echo end($cats)['cat']; ?>">Все товары раздела</a>
  <?php } ?>

или так

<?php if(!empty($cats)) { ?>
  <a href="<?php echo (end($cats)['cat']); ?>">Все товары раздела</a>
  <?php } ?>

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Придется разбить на два шага:

<?php if(!empty($cats)) { ?>
  <a href="<?php $end = end($cats); echo $end['cat']; ?>">Все товары раздела</a>
  <?php } ?>
  • +1 1

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

 

Еще так попробуйте:

<?php if(!empty($cats)) { ?>
  <a href="<?php echo end($cats)['cat']; ?>">Все товары раздела</a>
  <?php } ?>

или так

<?php if(!empty($cats)) { ?>
  <a href="<?php echo (end($cats)['cat']); ?>">Все товары раздела</a>
  <?php } ?>

:|  никак - ошибка та же... Почистил ВКмод уже, кэш - тишина... :(

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

 

Придется разбить на два шага:

<?php if(!empty($cats)) { ?>
  <a href="<?php $end = end($cats); echo $end['cat']; ?>">Все товары раздела</a>
  <?php } ?>

СУПЕР!!!!!!!!!  :eek:  :eek:  :eek:

СПАСИБО ОГРОМНОЕ! Держи +++!!!

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

При таком коде ссылка генерируется на главную категорию. А как сделать ссылку на дочернюю?

 

Категория 1 -> Категория 2 -> Товар

 

То есть, чтобы ссылка вела на категорию 2, а не на категорию 1?

Изменено пользователем Truth_Explorer

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

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

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти

  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу

×

Важная информация

На нашем сайте используются файлы cookie и происходит обработка некоторых персональных данных пользователей, чтобы улучшить пользовательский интерфейс. Чтобы узнать для чего и какие персональные данные мы обрабатываем перейдите по ссылке. Если Вы нажмете «Я даю согласие», это означает, что Вы понимаете и принимаете все условия, указанные в этом Уведомлении о Конфиденциальности.