2012-12-04 102 views
2

屬性所以我在這個模板是對每一個產品上市的一側的CMS塊。調用的CMS塊在Magento

我有這樣的代碼在CMS塊:

{{block type="core/template" name="some_unique_name" template="myfolder/my_dynamic_php_content.phtml"}} 

這my_dynamic_php_content.phtml:

<?php echo $_product->getData('product_brand'); ?> 

和我得到的錯誤:

Call to a member function getData() on a non-object in /home/magento/public_html/shorepowerinc.com/app/design/frontend/fortis/default/template/myfolder/my_dynamic_php_content.phtml on line 1

我是那種的新手,所以如果任何人都可以解釋這裏發生了什麼,我將不勝感激!

回答

2

兩件事情從此卻下落不明;

1)您需要加載模型您已經顯示屬性時使用了錯誤的語法當前產品和

2)。

要加載在你的塊中的當前產品型號添加到您的my_dynamic_php_content.phtml模板的頂部;

<?php  
    $_prodID = Mage::registry('current_product')->getId(); 
    $_product = Mage::getModel('catalog/product')->load($_prodID); 
?> 

然後到輸出在模板中的屬性; (請注意,它使用的是camelcase,但如果您在設置屬性時使用了它,則保留下劃線)。

編輯

以上回答可以工作,但下劃線將Varien_Object::_underscore()處理和當時的約定是爲使用$ _product->的getData( 'product_brand')或$ _product-> getProductBrand() 。感謝下面的評論中的Ben Marks獲取此信息。

+0

感謝您的幫助:) – bwright

+0

沒有probs在所有! :) – McNab

+1

如果我可能有點迂腐:它是由dev的,但底線是處理['Varien_Object :: _下劃線()'](https://github.com/benmarks/magento-mirror/blob/ 1.7.0.2/lib/Varien/Object.php#L702),現行慣例是使用'$ _product-> getData('product_brand')'或'$ _product-> getProductBrand()'。 – benmarks