繁体   English   中英

Magento:覆盖Adminhtml模板会导致内存限制耗尽

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM