2010-09-08 42 views
2

比方說,我有兩個categegories,A和B.如何在產品視圖頁面中顯示分類定製設計佈局?

我設定一個使用「layout_a」上目錄 - >目錄分類 - >點擊一個類別 - >點擊定製設計標籤

我設置B到使用目錄中的'layout_b' - >目錄類別 - >單擊一個類別 - >單擊自定義設計選項卡

當我訪問類別A和B時,顯示的產品使用我在管理面板上設置的自己的佈局。當我點擊產品列表頁面上的一個項目時,產品視圖頁面不使用自定義設計。

如何執行產品視圖頁以使用其類別的自定義設計?

+1

想你的意思:「我集B使用「layout_b 'on ...「:) :) – 2010-09-08 12:55:05

回答

4

我自己找到了答案。位於/app/code/Mage/Catalog/controllers/ProductController.php

    1. 打開產物控制器添加以下代碼_initProductLayout方法

      $最新情況:> addHandle( '類別_' $產品 - > getCategoryId());位於/app/design/frontend/default/default/layout/catalog.xml

    2. 打開目錄佈局XML添加

    <CATEGORY_"your category id"> 
        <reference name="root"> 
        <action method="setTemplate"><template>yourtemplate here</template></action> 
        </reference> 
    </CATEGORY_"your category id"> 
    
  • 0

    您可以在產品目錄應用定製設計更新>管理產品>設計,然後應用按類別

    這是否達到你所需要的?

    +1

    差不多,但不完美。我只想按照類別應用自定義設計。如果我在產品目錄 - >管理產品 - >設計上設置了自定義設計,產品將使用我設置的佈局。假設我的產品屬於類別A和B.如果我爲產品設置了佈局B,那麼當客戶點擊類別 - >產品時,如何使其使用佈局A? – Moon 2010-09-08 13:00:43

    6

    在當前版本的Magento中,有另一種方法可以在不改變內核的情況下執行此操作代碼。假設您有一個自定義模板來顯示某個類別的產品。在管理中,轉到目錄 - >分類 - >管理類別,然後選擇要應用修改後的產品模板的類別。將「應用於產品」更改爲「是」,並將以下內容放入「自定義佈局更新」中;

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

    其中NEW_VIEW是您要使用的新模板的名稱。如果您有子類別,您可能需要將其「使用父類別設置」設置爲「是」才能使其浮動。

    0

    使用下拉類型和名稱屬性代碼'which_category'創建一個屬性。在選項選項卡填寫 'category_a' 和 'category_b'

    創建兩個文件在/ app /設計/前端/默認/ YOURTEMP /模板/目錄/產品/

    讓說: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定義它們)

    相關問題