2015-11-10 20 views
0

我已經創建了一個自定義模塊,它將一些信息附加到每個產品上。現在,我想在產品名稱下的目錄頁面上顯示自定義信息。如何在每個產品名稱下的Magento Catalog頁面上添加自定義內容?

這裏是快照,告訴你我正在嘗試做什麼。

Catalog page

這裏是我的佈局XML

<?xml version="1.0"?> 
<!-- 
/** 
* Custom module 

*/ 
--> 
<layout> 
    <catalog_category_default translate="label"> 
     <reference name="name.after"> 
      <block type="catalog/product_list" name="custom_content" template="custommodule/default.phtml"/> 
     </reference>    
    </catalog_category_default> 
</layout> 

但是,這是行不通的。是否可以在不修改任何.phtml文件的情況下呈現產品名稱下的自定義內容?

非常感謝!

回答

0

我知道,這是一個快速和骯髒的黑客工具,更勤奮Magento的開發者將在冷笑,但它會給你你想要的結果,很容易讓你impliment

「正確的'解決方案可能涉及編寫一個自定義塊並在您的應用/設計/前端/ YourPackage/YourTheme/template/product/list.phtml的foreach循環中調用它 - 但是,我可以爲您提供一個快速且骯髒的hackaround,不應該太貴了。您可以通過濫用產品屬性系統來輕鬆完成此操作。

首先在產品使用的屬性集中創建一個新的產品屬性。 我們將使用它來存儲我們想要在產品名稱和價格之間注入的自定義內容。爲了這個例子,我們將其稱爲customcontent。確保在「前端產品視圖頁」值上將該屬性的Visible設置爲「否」。

編輯你的產品,並設置這個新的屬性等於你想要的自定義內容 - 這很好,你在這裏也使用html標籤。默認情況下,產品屬性具有(由於某種原因)30個字符的任意限制,但如果您需要它來保存更長的字符串,您可以通過編輯app/code/mage/eav/model/entity/Attribute.php改變ATTRIBUTE_CODE_MAX_LENGTH的值。

然後在你的應用程序/設計/前端/ YourPackage/YourTheme /模板/產品/ list.phtml,找到下面的代碼行線周圍某處49

<?php foreach ($_productCollection as $_product): ?> 

後直接將其插入如下:

<?php $_customcontent =$_product->getResource()->getAttribute('customcontent')->getFrontend()->getValue($_product);?> 

你現在存儲從您的產品在字符串中的變量customcontent屬性,叫做$ _customcontent

所以,如果你發現以下麗NE在list.phtml

<h2 class="product-name"><a href="<?php echo $_product->getProductUrl() ?>" title="<?php echo $_productNameStripped; ?>"><?php echo $_helper->productAttribute($_product, $_product->getName() , 'name'); ?></a></h2> 

您可以輕鬆地添加新的段落或標題在其下方,並使用

<?php echo $_customcontent ?> 

我知道這可能代表了深深的非正統的解決您的自定義的內容填充它,但它確實有效並且可以很快完成,並且不需要您知道編寫自己的自定義塊的任何信息。

+0

感謝我們的答案,但我在我的問題明確提到,我不想修改主題的list.phtml文件,我想用我的幫助模塊的佈局來實現這個xml和自定義的.phtml文件。 –

0

你可以嘗試:

<catalog_categoryd_default> 
<reference name="content"> 
    <block type="catalog/product_list" name="custom_content" template="custommodule/default.phtml" after="nameofTheNameBlock"/> 
</reference> 
</catalog_categoryd_default> 
+0

這不起作用 –

相關問題