Хобрук: Ваш путь к мастерству в программировании

Magento — отображение всех продуктов в категории на целевой странице продукта.

У меня есть сайт magento, и я продаю различные предметы, одним из которых являются настольные свечи. Я бы хотел, чтобы всякий раз, когда кто-то заходит на мой сайт через, скажем, Google и попадает на страницу определенного продукта, он мог сказать: «Нажмите здесь, чтобы просмотреть все свечи в этой категории», т.е. просмотреть все другие свечи, которые находятся в этой категории. той же категории, что и та, на которую они смотрят (надеюсь, это имеет смысл!)

Это что-то, что должно быть закодировано в Magento, или оно уже доступно?

Спасибо, Найдж.

19.01.2012

Ответы:


1

Предположения:
1 - $_product загружен (как в catalog/product/view.phtml). Если это не так, убедитесь, что вы его загрузили.
2 – $_product принадлежит хотя бы к одной категории. Если нет, ничего не будет показано.

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

Сценарий 1. Пользователь переходит на страницу продукта с категорией в URL-адресе:

<?php $category = Mage::registry('current_category'); ?>

Сценарий 2. Пользователь переходит к продукту БЕЗ категории в URL-адресе:

<?php
$categories = $_product->getCategoryIds();
$category = Mage::getModel('catalog/category')->load($categories[0]);
?>

Как только ваша категория загружена, вы можете получить URL-адрес и имя категории.

<?php
$url = $category->getUrl();
$name = $category->getName();
?>

Теперь создайте ссылку:

<a href="<php echo $url; ?>Click here to view all <?php echo $name; ?></a>";

Все вместе сейчас:

<?php 
$url = null;
if ( $category = Mage::registry('current_category') ) {
  $url = $category->getUrl();
  $name = $category->getName();
} elseif ( $categories = $_product->getCategoryIds() ) {
  $category = Mage::getModel('catalog/category')->load($categories[0]);
  $url = $category->getUrl();
  $name = $category->getName();
}
$link = is_null($url) ? '' : "<a href=\"{$url}\">Click here to view all {$name}</a>";
?>

Вы можете поместить его в свой файл catalog/product/view.phtml или в любое другое место, которое вам нужно.

19.01.2012
Новые материалы

Учебные заметки JavaScript Object Oriented Labs
Вот моя седьмая неделя обучения программированию. После ruby ​​и его фреймворка rails я начал изучать самый популярный язык интерфейса — javascript. В отличие от ruby, javascript — это более..

Разбор строк запроса в vue.js
Иногда вам нужно получить данные из строк запроса, в этой статье показано, как это сделать. В жизни каждого дизайнера/разработчика наступает момент, когда им необходимо беспрепятственно..

Предсказание моей следующей любимой книги 📚 Благодаря данным Goodreads и машинному обучению 👨‍💻
«Если вы не любите читать, значит, вы не нашли нужную книгу». - J.K. Роулинг Эта статья сильно отличается от тех, к которым вы, возможно, привыкли . Мне очень понравилось поработать над..

Основы принципов S.O.L.I.D, Javascript, Git и NoSQL
каковы принципы S.O.L.I.D? Принципы SOLID призваны помочь разработчикам создавать надежные, удобные в сопровождении приложения. мы видим пять ключевых принципов. Принципы SOLID были разработаны..

Как настроить Selenium в проекте Angular
Угловой | Селен Как настроить Selenium в проекте Angular Держите свое приложение Angular и тесты Selenium в одной рабочей области и запускайте их с помощью Mocha. В этой статье мы..

Аргументы прогрессивного улучшения почти всегда упускают суть
В наши дни в кругах веб-разработчиков много болтают о Progressive Enhancement — PE, но на самом деле почти все аргументы с обеих сторон упускают самую фундаментальную причину, по которой PE..

Введение в Джанго Фреймворк
Схема «работать умно, а не усердно» В этой и последующих статьях я познакомлю вас с тем, что такое фреймворк Django и как создать свое первое приложение с помощью простых и понятных шагов, а..