Как отобразить макет индивидуального дизайна категории на странице просмотра продукта? - PullRequest
2 голосов
/ 08 сентября 2010

Допустим, у меня есть две категории: A и B.

Я установил A для использования 'layout_a' в Каталоге -> Категории каталога -> Выберите категорию -> щелкните вкладку нестандартного дизайна

Я установил B, чтобы использовать 'layout_b' в Каталоге -> Категории каталога -> Выберите категорию -> щелкните вкладку пользовательского дизайна

Когда я захожу в категории A и B, они отображают продукты, используя свой собственный макет, который я установил на панели администратора. Когда я щелкаю элемент на странице со списком продуктов, страница просмотра продуктов не использует индивидуальный дизайн.

Как заставить страницу представления продукта использовать индивидуальный дизайн своей категории?

Ответы [ 4 ]

6 голосов
/ 15 февраля 2012

В текущих версиях Magento есть другой способ сделать это без изменения кода ядра.Допустим, у вас есть собственный шаблон для отображения продукта категории.В Admin перейдите в Каталог-> Категории-> Управление категориями и выберите категорию, к которой вы хотите применить измененный шаблон продукта.Измените «Применить к продуктам» на «Да» и добавьте следующее в Обновление пользовательского макета;

<reference name="product.info">
  <action method="setTemplate"> <template>catalog/product/NEW_VIEW.phtml</template></action>
</reference>

Где NEW_VIEW - это имя нового шаблона, который вы хотите использовать.Если у вас есть подкатегории, вам может потребоваться, чтобы для их «Использовать настройки родительской категории» было установлено значение «Да», чтобы они могли перемещаться.

4 голосов
/ 08 сентября 2010

Я нашел ответ самостоятельно.

  1. Открыть Контроллер продукта, расположенный в /app/code/Mage/Catalog/controllers/ProductController.php

  2. добавить следующий код в метод _initProductLayout

    $ update-> addHandle ('CATEGORY _'. $ Product-> getCategoryId ());

  3. Открыть XML-формат каталога, расположенный в /app/design/frontend/default/default/layout/catalog.xml

  4. добавить

<CATEGORY_"your category id">
    <reference name="root">
  <action method="setTemplate"><template>yourtemplate here</template></action>
    </reference>
</CATEGORY_"your category id">
0 голосов
/ 27 мая 2013

Создайте атрибут с выпадающим типом и именем атрибута code 'which_category'.На вкладке параметров заполните 'category_a' и 'category_b'

Создайте два файла в / app / design / frontend / default / YOURTEMP / template / catalog / product /

, скажем, view_cat_a.phtml и view_cat_b.phtml

Вы можете создать свою страницу представления товара определенной категории на основе view.phtml.

Изменить view.phtml на:

<?php 
$_helper = $this->helper('catalog/output'); 
$_product = $this->getProduct();
    if ( $_product->getAttributeText('which_category') == category_a) {
        include('view_cat_a.phtml');
    } else {
        include('view_cat_b.phtml');
    }

Когда высоздать товар вы можете выбрать категорию по атрибуту (определить их в attribute_set)

0 голосов
/ 08 сентября 2010

Вы можете применить обновления пользовательского дизайна в Каталоге продуктов> Управление продуктами> Дизайн, а затем применить их в соответствии с категориями

Достигается ли то, что вам нужно?

...