2013-01-03 73 views
0

在我們的magento網站中,我們有商店的根類別(這只是「默認類別」)。在此基礎上,我們設置了一些頂級類別(比如我們稱之爲「電子」和「傢俱」),並附帶一些子類別。magento中的自定義頂級類別着陸頁

因此,作爲一個例子我們的品類結構可能

  • 電子
    • DVD播放器
    • MP3播放器
    • 計算機
  • 傢俱
    • 3丕歐洲經委會
    • 座椅
    • 沙發牀

我已成功地編輯了「子類別」,如「DVD播放器」,這樣我們顯示自定義的產品佈局/模板列表顯示。

現在我們要做的是針對頂級類別(根類別下的第一個類別),顯示所有子類別及其關聯縮略圖圖像的自定義網格,而不是產品列表!

如何爲這些頂級類別分配完全不同的模板?

如果有人能提供關於如何做到這一點的洞察力和步驟的,我們需要採取(我應確定與代碼本身,它只是如何實現它,如自定義模塊和模板)

謝謝

回答

4

聽起來像你想要一個自定義頁面佈局,您可以應用到您的頂級類別。頁面佈局本質上是一個命名的頁面模板,您可以在下拉列表中選擇該模板以應用於產品或類別。

定義佈局,將其添加在模塊的​​3210的global/page/layouts節點,就像這樣:

<global> 
    <page> 
     <layouts> 
      <my_custom_layout_name translate="label"> 
       <label>My Custom Layout</label> 
       <template>page/my-custom-layout.phtml</template> 
       <layout_handle>my_custom_layout</layout_handle> 
      </my_custom_layout_name> 
     <layouts> 
    <page> 
<global> 

然後你只需要在應用程序/設計某處創建page/my-custom-layout.phtml模板文件模板後備鏈。

layout_handle節點指定將添加到使用此佈局的任何頁面的新佈局句柄的名稱,從而允許您使用<my_custom_layout>節點將其定位到佈局XML文件中。

.phtml文件如果引用將是整個HTML頁面模板,所以它應該包括<html><head><body>標籤和其他任何你想在默認page/*.phtml模板之一(1column,空發現, 2columns-left等)。在這個和有針對性的佈局XML之間,你可以從頭開始完全自定義這個頁面。

最後一步是在編輯目錄 - >管理類別中的每個父類別時,在「自定義設計」選項卡下選擇此新佈局。如果在下拉菜單中看不到您的佈局,請確保您的XML配置正確(請參閱app/code/core/Mage/Page/etc/config.xml以供參考)並刷新緩存。

+0

我會接受你的回答,因爲它似乎是最好的解決方案,並且它已經升級了。然而,我急於完成工作,我發現了一種使用觀察者自動檢查其頂層類別頁面並完全改變佈局的方式。將來,雖然我認爲你的解決方案可能是一個更清潔的方式。 – Lee

+0

我也試過這個,但它沒有出現在模板列表中。也嘗試recache和reindex但仍然沒有顯示。 – Mike

1

這樣做的一種方法是創建一個新的模板,將其作爲您的類別網格,然後將該模板作爲所選類別的靜態塊進行調用,您將通過CMS選擇該模板。見下文。

創建類別網格模板

  1. 導航到「應用程序/設計/前端/默認/模板/目錄/導航」
  2. 在這條道路,我們將創建一個文件調用category_listing.phtml
  3. 該文件將有以下代碼:

    <?php $_maincategorylisting=$this->getCurrentCategory()?> 
    <?php $_categories=$this->getCurrentChildCategories()?> 
    <h2><?php echo $this->__('Browse Products') ?> </h2> 
    <div class="subcat-listing"> 
    <ul class="subcat-products"> 
    <? foreach ($_categories as $_category):?> 
    <? if($_category->getIsActive()): ?> 
    <?php $cur_category=Mage::getModel('catalog/category')->load($_category->getId()); ?> 
    <?php $layer = Mage::getSingleton('catalog/layer'); ?> 
    <?php $layer->setCurrentCategory($cur_category); ?> 
    <? if($_imageUrl=$this->getCurrentCategory()->getImageUrl()):?> 
    <li> <a href="<?php echo $this->getCategoryUrl($_category) ?>" title="<?php echo $this->htmlEscape($_category->getName()) ?>"> 
    <img src="<?php echo $_imageUrl ?>" width="auto" alt="<?php echo $this->htmlEscape($_category->getName()) ?>" /> 
    </a> 
    <h3><?php echo $this->htmlEscape($_category->getName()) ?></h3> 
    <? if($_description=$this->getCurrentCategory()->getDescription()):?> 
    <p class="category-description"> 
    <?php echo $_description ?></</p> 
    <?php endif; ?> 
    <? endif; ?> 
    <? endif; ?> 
    <?php endforeach; ?> 
    </ul> 
    </div> 
    <?php $layer->setCurrentCategory($_maincategorylisting); ?> 
    

調用此模板的靜態塊

  1. 轉到菜單「CMS /靜態塊」,並創建新的塊。

  2. 將此項添加到CMS塊的內容部分:
    {{block type="catalog/navigation" name="catalog.categories" template="catalog/navigation/category_listing.phtml"}}。然後保存塊。

在類別頁面上使用此靜態塊。

  1. 轉到菜單目錄/管理類別

  2. 現在我們需要找到我們要顯示在

  3. 新的網格中選擇您想要的categorie的類別,然後在顯示設置我們設置了以下信息:

    顯示模式:靜態模塊 CMS模塊:類別列表(我們之前創建的模塊) 是主播:否

  4. 點擊「保存」。請記住,在「自定義設計」選項卡中,您可能需要選擇您的模板。還要記住,這個類別有很多圖像分配給它。