2012-03-02 115 views
12

所以我試圖從塊中顯示一個自定義的list.phtml文件。 多數民衆贊成罰款,我能夠與類別ID 6如何從list.phtml中獲取Magento中的類別名稱

{{block type="catalog/product_list" category_id="6" template="catalog/product/list.phtml"}} 

上述工作正常顯示所有產品。但是現在我想要訪問類別ID 6的名稱,我將如何從list.phtml或者甚至是在不同的塊中執行此操作。我只需要id = 6的類別名稱。

回答

38

裏面的list.phtml塊模板,你可以用

<?php echo $this->getLayer()->getCurrentCategory()->getName() ?> 

在這種情況下,目前的類別由_getProductCollection()呼叫catalog/product_list塊層上設置獲取類別名稱。

在CMS頁面內容中,我無法直接訪問類別名稱。
從不同的塊獲取類別名稱可能會涉及更多。您可以嘗試

<?php echo Mage::getSingleton('catalog/layer')->getCurrentCategory()->getName() ?> 

當然,這也許是因爲當前沒有任何類別可能在層實例設置,所以一定要檢查,爲了避免難看的錯誤的情況。
基本上,如果catalog/product_list產品列表塊的_beforeToHtml()方法已被執行,當前類別將在圖層上設置。

編輯: 這一切都是假設你想要得到的類別名稱,而無需再次指定類別ID。如果你不關心,你可以隨時與

<?php echo Mage::getModel('catalog/category')->load($this->getCategoryId())->getName() ?> 
+0

獲得類別名稱這兩個突破的頁面並沒有什麼輸出,我怎麼設置當前層? – molleman 2012-03-02 14:23:44

+0

這是錯誤在magento中的非對象上調用成員函數getName() – molleman 2012-03-02 14:33:20

+1

註冊表中的當前圖層由目錄搜索模塊設置。我更新了使用Mage :: getSingleton('catalog/layer')'的答案,並且在圖層實例上設置了當前類別時添加了一個解釋。 – Vinai 2012-03-02 14:37:26

相關問題