我需要重寫一個Magento核心塊文件,其完整路徑爲app/code/core/Mage/Core/Block/Template.php
,以便重寫getTemplateFile()
函數。 我沒有重寫它們的問題,但結果很奇怪。在getTemplateFile()
函數中我有$this->getTemplate()
,它返回一個模板。當我在覈心塊功能中使用print_r($this->getTemplate())
時,它爲我提供了所有正在加載的PHTML,而在重寫的塊中,我只獲得了其中的一部分。你有什麼想法爲什麼會發生這種情況?我正在使用Magento CE 1.8.1.0。Magento重寫Core/Block/Template.php(Magento CE 1.8.1.0)
0
A
回答
1
您不能在Magento中重寫block/model/helper的父類,只能重寫特定的實例。
下面是Magento的類重寫的工作原理。每當核心Magento代碼(以及編碼良好的模塊)實例化一個對象時,他們都會使用工廠方法。
$layout->createBlock('core/template');
core/template
string是一個類的別名。 Magento使用它來查找要使用的實際類名。默認情況下,這是Mage_Core_Block_Template
。當你創建一個重寫,你告訴Magento
嘿,每當你創建一個
core/template
塊對象?改爲使用我的班級。
問題? Magento中有很多塊,其中從core/template
繼承。當Magento的實例,這些
$layout->createBlock('page/html_head')
它解析爲類Mage_Page_Block_Html_Head
,從核心模板類
#File: app/code/core/Mage/Page/Block/Html/Head.php
class Mage_Page_Block_Html_Head extends Mage_Core_Block_Template
{
}
換句話說繼承之一,有沒有辦法重寫系統瞭解你換在core/template
類。
所以,當你說
核心區塊功能,它給了我所有正在加載的PHTMLs,而在重寫塊我只得到其中的一些
這聽起來就像您看到的core/template
塊的PHTML一樣,但跳過了從Mage_Core_Block_Template
繼承的任何塊。
相關問題
- 1. Magento CE 1.8.1.0總計含稅不正確
- 2. 表單字段的Magento 1.8.1.0
- 3. Appgentia magento CE 1.7.0.2
- 4. Magento:重寫Mage_Eav_Model_Entity_Type
- 5. Magento的1.8.1.0無法啓用緩存
- 6. 在Magento-CE開發
- 7. Magento網址重寫類別
- 8. Magento的URL重寫
- 9. Magento重寫頭痛
- 10. Magento佈局重寫
- 11. 重寫Magento模型
- 12. Magento CE ::折扣優惠?
- 13. Magento的CE模塊權限
- 14. 如何知道在Magento CE
- 15. Magento的1.7 CE - 產品
- 16. PayPal集成Magento CE 1.7
- 17. Magento重寫社區代碼池重寫
- 18. Magento網址重寫爲本地IP
- 19. 重寫Magento的AutoSuggest(Minisearch)
- 20. Magento重寫/ lib /文件?
- 21. 導入url重寫爲magento
- 22. Magento重寫模塊模型
- 23. Magento過濾網址重寫
- 24. Magento模塊的URL重寫
- 25. 重寫動態Magento URL
- 26. Magento,無法重寫Mage_Sales_Model_Quote_Address_Total_Subtotal
- 27. Magento塊重寫不正常
- 28. URL重寫Magento的1.7
- 29. Magento的 - 從沒有重寫
- 30. Magento - 重寫層次結構