我正在尝试覆盖Magento管理区域内的phtml文件。具体来说,我试图覆盖的文件是: app / design / adminhtml / default / default / template / catalog / form / renderer / fieldset / element.phtml
在 app / code / local / CompanyName / Website / etc / config.xml 中,我有:
<rewrite>
<catalog_form_renderer_fieldset_element>CompanyName_Website_Block_Adminhtml_Catalog_Form_Renderer_Fieldset_Element</catalog_form_renderer_fieldset_element>
</rewrite>
我已放入 app / code / local / CompanyName / Website / Block / Adminhtml / Catalog / Form / Renderer / Fieldset / Element.php 的重写块PHP文件。该文件包含:
<?php
class CompanyName_Website_Block_Adminhtml_Catalog_Form_Renderer_Fieldset_Element extends Mage_Adminhtml_Block_Widget_Form_Renderer_Fieldset_Element
{
public function _construct()
{
parent::_construct();
$this->setTemplate('catalog/form/renderer/fieldset/element.phtml');
}
}
最后,覆盖模板文件位于 app / design / frontend / enterprise / CompanyName / template / catalog / form / renderer / fieldset / element.phtml ,并包含我覆盖的实际模板
我看到一个白色屏幕并在日志中出现此错误:Fatal error: Allowed memory size of 268435456 bytes exhausted (tried to allocate 227543041 bytes) in /var/www/html/gold/lib/Varien/Object.php on line 569
有什么想法?我是否正在扩展正确的课程?文件放置正确吗?等等。在同一个config.xml文件中还有其他<rewrite>
块可以正常工作,所以我一定是犯了错误!
感谢。
答案 0 :(得分:1)
由于几个原因,这很奇怪。
您似乎只对更改此块的模板感兴趣。为什么不覆盖它的默认模板'widget / form / renderer / fieldset / element.phtml'?
你确定你没有像print_r($ someObject-&gt; getData());你的构造函数或模板中的某个地方?
进一步Mage_Adminhtml_Block_Widget_Form_Renderer_Fieldset_Element :: _ construct()仅设置模板文件,因此可能没有理由调用parent :: _ construct()。
您是否在构造函数和模板文件中设置了一些error_log()以确保它们被调用?该模板的完整路径是什么?即它是/ app / design / adminhtml / default / default ...?或/ app / design / adminhtml / company / ...?如果是后者,我假设您有适当的配置以允许adminhtml模板覆盖?
/lib/Varien/Object.php第569行的内容是什么? (我的必须是一个不同的版本,因为该行在评论及其周围似乎不相关的东西)
编辑: 要覆盖adminhtml模板。将其添加到&lt; config&gt; /app/etc/local.xml中的节点
<stores>
<admin>
<design>
<package>
<name>default</name>
</package>
<theme>
<default>companyname</default>
</theme>
</design>
</admin>
</stores>
现在在/ app / design / adminhtml / default / named'companyname'中创建一个文件夹,并将'template','layout'等文件夹放在其中,就像任何主题一样。例如/app/design/adminhtml/default/companyname/template/widget/form/renderer/fieldset/element.phtml适合您的情况。