[英]Magento: overriding Adminhtml template causes memory limit exhaustion
我试图覆盖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>
块,它们工作正常,所以我一定在弄错!
谢谢。
这很奇怪,原因有两个。
似乎您只是对更改此块的模板感兴趣。 为什么不仅仅覆盖其默认模板'widget / form / renderer / fieldset / element.phtml'?
您确定没有像print_r($ someObject-> 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模板。 将其添加到/app/etc/local.xml中的<config>节点
<stores>
<admin>
<design>
<package>
<name>default</name>
</package>
<theme>
<default>companyname</default>
</theme>
</design>
</admin>
</stores>
现在,在/ app / design / adminhtml / default /中创建一个名为“ companyname”的文件夹,并像放置任何主题一样在其中放置“ template”,“ layout”等文件夹。 例如/case/app/design/adminhtml/default/companyname/template/widget/form/renderer/fieldset/element.phtml。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.