2013-03-18 5 views
0

В Magento проекте, у меня есть четыре категории и у меня есть 2 файла шаблона для продуктоврасположение Два продукта в Magento

Как

1)/Каталог товаров/view.phtml (оригинал)

2)/Каталог товаров/newview.phtml (новый файл)

Теперь я хочу, чтобы отобразить расположение продукта на основе категории

как идентификатор категории 1 и 2, дисплей базового продукта O п view.phtml

и категории 3 и 4, дисплей продукт, основанный на newview.phtml

ответ

0

Вы можете установить на каждом изделии в бэкэнда в закладке дизайн набора:

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

Else вы может также выполнить это через Observer, чтобы получить весь продукт из категории X за один выстрел.

Создайте свой собственный модуль, соблюдая controller_action_layout_generate_blocks_after событие с функцией как этот:

public function generateBlocksAfter($event) 
{      
    $controller = $event->getAction(); 
//limit to the product view page 
if($controller->getFullActionName() != 'catalog_product_view') 
{ 
    return; 
} 
$layout  = $controller->getLayout(); 
$product_info = $layout->getBlock('product.info'); 
if(!$product_info) 
{ 
    Mage::log('Could not find product.info block'); 
    return; 
} 
$id = Mage::registry('current_product')->getId(); 
$prod = Mage::getModel('catalog/product')->load($id); 
$category_ids = $prod->getCategoryIds(); 
if(in_array(3,$category_ids) || in_array(4,$category_ids))  
    $product_info->setTemplate('catalog/product/newview.phtml'); 
} 
+0

Можете ли вы сказать мне, что это правильный способ добавления наблюдаемых? местный (реж) -> Mage (реж) -> Каталог (Реж) == модальный (реж) -> Observer.php (File) == и т.д. (реж) -> config.xml ======= ======= Observer.php класс Mage_Catalog_Model_Observer { функция generateBlocksAfter общественности ($ событие) {.....}} ===== == config.xml ====== ....

+0

Я предлагаю, чтобы установить это в модуле самостоятельно не в Mage_Catalog, но да, кажется, правильный подход – dagfr

0

использовать этот код для отображения в соответствии с категориями ид в local.xml файлах

 <reference name="product_list"> 
      <action method="setTemplate"><name>catalog/product/list_new.phtml</name></action> 
     </reference> 
</CATEGORY_5>