Magento管理员-客户编辑页面不再工作

Magento管理员-客户编辑页面不再工作,magento,magento-1.7,Magento,Magento 1.7,当我尝试使用Magento后端管理编辑客户时,在console.log中会出现以下错误,并且页面的后一部分永远不会加载 屏幕截图显示了它的显示方式(注意页眉正在加载,但之后什么也没有) --更新-- 这里是我的customer.xml <layout> <adminhtml_customer_edit> <reference name="content"> <block type="adminhtml/customer_edit

当我尝试使用Magento后端管理编辑客户时,在console.log中会出现以下错误,并且页面的后一部分永远不会加载

屏幕截图显示了它的显示方式(注意页眉正在加载,但之后什么也没有)

--更新-- 这里是我的customer.xml

<layout>
<adminhtml_customer_edit>
    <reference name="content">
        <block type="adminhtml/customer_edit" name="customer_edit"></block>
    </reference>
    <reference name="head">
        <block type="adminhtml/template" name="optional_zip_countries" as="optional_zip_countries" template="directory/js/optional_zip_countries.phtml" />
        <action method="addJs"><file>mage/adminhtml/product/composite/configure.js</file></action>
        <action method="addJs"><file>varien/configurable.js</file></action>
    </reference>
    <reference name="left">
        <block type="adminhtml/customer_edit_tabs" name="customer_edit_tabs">
            <block type="adminhtml/customer_edit_tab_view" name="customer_edit_tab_view" template="customer/tab/view.phtml">
                <block type="adminhtml/customer_edit_tab_view_sales" name="sales" template="customer/tab/view/sales.phtml" before="-" />
                <block type="adminhtml/customer_edit_tab_view_accordion" name="accordion" />
            </block>
            <action method="addTab"><name>customer_edit_tab_view</name><block>customer_edit_tab_view</block></action>
        </block>
    </reference>
    <reference name="js">
        <block type="adminhtml/template" template="customer/edit/js.phtml" name="customer.edit.js" as="customer_edit_js"></block>
    </reference>
</adminhtml_customer_edit>
<adminhtml_customer_group_index>
    <reference name="content">
        <block type="adminhtml/customer_group" name="customer_group"></block>
    </reference>
</adminhtml_customer_group_index>
<adminhtml_customer_wishlist>
    <block type="adminhtml/customer_edit_tab_wishlist" name="customer.wishlist.edit.tab" output="toHtml" />
</adminhtml_customer_wishlist>

<adminhtml_customer_orders>
    <block type="core/text_list" name="root" output="toHtml">
        <block type="adminhtml/customer_edit_tab_orders" name="adminhtml.customer.edit.tab.orders"/>
    </block>
</adminhtml_customer_orders>

<adminhtml_customer_carts>
    <block type="core/text_list" name="root" output="toHtml">
        <block type="adminhtml/customer_edit_tab_carts" name="admin.customer.carts"/>
    </block>
</adminhtml_customer_carts>

<adminhtml_customer_viewcart>
    <block type="core/text_list" name="root" output="toHtml">
        <block type="adminhtml/customer_edit_tab_view_cart" name="admin.customer.view.cart"/>
    </block>
</adminhtml_customer_viewcart>

<adminhtml_customer_viewwishlist>
    <block type="core/text_list" name="root" output="toHtml">
        <block type="adminhtml/customer_edit_tab_view_wishlist" name="admin.customer.view.wishlist"/>
    </block>
</adminhtml_customer_viewwishlist>

<adminhtml_customer_lastorders>
    <block type="core/text_list" name="root" output="toHtml">
        <block type="adminhtml/customer_edit_tab_view_orders" name="admin.customer.lastorders"/>
    </block>
</adminhtml_customer_lastorders>

<adminhtml_customer_productreviews>
    <block type="core/text_list" name="root" output="toHtml">
        <block type="adminhtml/customer_edit_tab_reviews" name="admin.customer.reviews"/>
    </block>
</adminhtml_customer_productreviews>

<adminhtml_customer_producttags>
    <block type="core/text_list" name="root" output="toHtml">
        <block type="adminhtml/customer_edit_tab_tag" name="admin.customer.tags"/>
    </block>
</adminhtml_customer_producttags>

<adminhtml_customer_taggrid>
    <block type="core/text_list" name="root" output="toHtml">
        <block type="adminhtml/customer_edit_tab_tag" name="admin.customer.tags"/>
    </block>
</adminhtml_customer_taggrid>

<adminhtml_customer_newsletter>
    <block type="core/text_list" name="root" output="toHtml">
        <block type="adminhtml/customer_edit_tab_newsletter_grid" name="admin.customer.newsletter.grid"/>
    </block>
</adminhtml_customer_newsletter>

<adminhtml_customer_grid>
    <block type="core/text_list" name="root" output="toHtml">
        <block type="adminhtml/customer_grid" name="admin.customer.grid"/>
    </block>
</adminhtml_customer_grid>

<adminhtml_customer_cart>
    <block type="core/text_list" name="root" output="toHtml">
        <block type="adminhtml/customer_edit_tab_cart" name="admin.customer.view.edit.cart" />
    </block>
</adminhtml_customer_cart>
代码在第92-97行

if (Mage::getSingleton('admin/session')->isAllowed('newsletter/subscriber')) {
    $this->addTab('newsletter', array(
       'label'     => Mage::helper('customer')->__('Newsletter'),
       'content'   => $this->getLayout()->createBlock('adminhtml/customer_edit_tab_newsletter')->initForm()->toHtml()
    ));
}
一旦这段代码被注释掉,页面就会按预期呈现,因此它肯定与这段代码中的某些内容有关。上面数组中的“内容”中包含的内容有问题。我将很快发布该视图

--更新-- 如上所述,问题100%是由上面的以下行引起的

'content'   => $this->getLayout()->createBlock('adminhtml/customer_edit_tab_newsletter')->initForm()->toHtml()
下面是来自该管理块的代码:

/**
 * Customer account form block
 *
 * @category   Mage
 * @package    Mage_Adminhtml
 * @author      Magento Core Team <core@magentocommerce.com>
 */
class Mage_Adminhtml_Block_Customer_Edit_Tab_Newsletter extends Mage_Adminhtml_Block_Widget_Form
{

public function __construct()
{
    parent::__construct();
    $this->setTemplate('customer/tab/newsletter.phtml');
}

public function initForm()
{
    $form = new Varien_Data_Form();
    $form->setHtmlIdPrefix('_newsletter');
    $customer = Mage::registry('current_customer');
    $subscriber = Mage::getModel('newsletter/subscriber')->loadByCustomer($customer);
    Mage::register('subscriber', $subscriber);

    if ($customer->getWebsiteId() == 0) {
        $this->setForm($form);
        return $this;
    }

    $fieldset = $form->addFieldset('base_fieldset', array('legend'=>Mage::helper('customer')->__('Newsletter Information')));

    $fieldset->addField('subscription', 'checkbox',
         array(
                'label' => Mage::helper('customer')->__('Subscribed to Newsletter?'),
                'name'  => 'subscription'
         )
    );

    if ($customer->isReadonly()) {
        $form->getElement('subscription')->setReadonly(true, true);
    }

    $form->getElement('subscription')->setIsChecked($subscriber->isSubscribed());

    if($changedDate = $this->getStatusChangedDate()) {
         $fieldset->addField('change_status_date', 'label',
             array(
                    'label' => $subscriber->isSubscribed() ? Mage::helper('customer')->__('Last Date Subscribed') : Mage::helper('customer')->__('Last Date Unsubscribed'),
                    'value' => $changedDate,
                    'bold'  => true
             )
        );
    }

    $this->setForm($form);
    return $this;
}

public function getStatusChangedDate()
{
    $subscriber = Mage::registry('subscriber');
    if($subscriber->getChangeStatusAt()) {
        return $this->formatDate(
            $subscriber->getChangeStatusAt(),
            Mage_Core_Model_Locale::FORMAT_TYPE_MEDIUM, true
        );
    }

    return null;
}

protected function _prepareLayout()
{
    $this->setChild('grid',
        $this->getLayout()->createBlock('adminhtml/customer_edit_tab_newsletter_grid','newsletter.grid')
    );
    return parent::_prepareLayout();
}

}
/**
*客户帐户表格组
*
*@category法师
*@package Mage_Adminhtml
*@author Magento核心团队
*/
类Mage_Adminhtml_Block_Customer_Edit_Tab_Newsletter扩展了Mage_Adminhtml_Block_Widget_表单
{
公共函数构造()
{
父项::_构造();
$this->setTemplate('customer/tab/newsletter.phtml');
}
公共函数initForm()
{
$form=新变量数据形式();
$form->setHtmlIdPrefix(“U新闻稿”);
$customer=Mage::注册表(“当前客户”);
$subscriber=Mage::getModel('newsletter/subscriber')->loadByCustomer($customer);
Mage::寄存器('subscriber',$subscriber);
如果($customer->getWebsiteId()==0){
$this->setForm($form);
退还$this;
}
$fieldset=$form->addFieldset('base_fieldset',array('legend'=>Mage::helper('customer')->(Newsletter Information'));
$fieldset->addField('订阅','复选框',
排列(
'label'=>Mage::helper('customer')->\uuuuuu('Subscribed to Newsletter?'),
“名称”=>“订阅”
)
);
如果($customer->isReadonly()){
$form->getElement('subscription')->setReadonly(true,true);
}
$form->getElement('subscription')->setIsChecked($subscriber->isSubscribed());
如果($changedDate=$this->getStatusChangedDate()){
$fieldset->addField('change\u status\u date','label',
排列(
'label'=>$subscriber->isSubscribed()?Mage::helper('customer')->\uuuu('Last Date Subscribed'):Mage::helper('customer')->\uuuuu('Last Date Unsubscribed'),
“值”=>$changedDate,
'bold'=>正确
)
);
}
$this->setForm($form);
退还$this;
}
公共函数getStatusChangedDate()
{
$subscriber=Mage::注册表('subscriber');
如果($subscriber->getChangeStatusAt()){
返回$this->formattate(
$subscriber->getChangeStatusAt(),
Mage_Core_Model_Locale::FORMAT_TYPE_MEDIUM,true
);
}
返回null;
}
受保护函数_prepareLayout()
{
$this->setChild('grid',
$this->getLayout()->createBlock('adminhtml/customer\u edit\u tab\u newsletter\u grid','newsletter.grid')
);
返回父项::_prepareLayout();
}
}

您有500个内部服务器错误,因此有3个地方需要检查:

  • 检查apache/nginx日志以查看错误消息
  • 检查var/report文件夹
  • 在浏览器中,查看页面源并滚动到底部
    如前所述,这是我将尝试做的

    • 检查apache/nginx的错误日志,并滚动到底部以查找最新的错误,此错误日志可能非常庞大,具体取决于它的使用时间。您可能希望删除它,然后在它触发错误并写入日志文件时让apache重新创建它
    • Magento在会话和缓存方面可能存在问题。注销Magento中的任何管理/客户会话,清空管理中的所有缓存
    • 清空所有浏览器会话/缓存等。。我甚至可能使用不同的浏览器
    • 查看console.log并使用stack trace选项,这将突出显示它所采用的路径,在查看调用的javascript时非常有用
    • 在您提到的视图/文件中,一次注释掉一行或一个块,然后再次运行页面,看看会发生什么。这可以帮助您缩小“问题代码”的范围

    希望这有帮助

    你能从app\design\adminhtml\default\default\layout\customer.xml?@KeyurShah中放置你的customer.xml吗?我已经在我最初的postCheck中添加了customer.xml,以查看来自本地或社区的模块是否覆盖了类Mage\u adminhtml\u Block\u customer\u Edit\u Tab\u Newsletter\u
    if (Mage::getSingleton('admin/session')->isAllowed('newsletter/subscriber')) {
        $this->addTab('newsletter', array(
           'label'     => Mage::helper('customer')->__('Newsletter'),
           'content'   => $this->getLayout()->createBlock('adminhtml/customer_edit_tab_newsletter')->initForm()->toHtml()
        ));
    }
    
    'content'   => $this->getLayout()->createBlock('adminhtml/customer_edit_tab_newsletter')->initForm()->toHtml()
    
    /**
     * Customer account form block
     *
     * @category   Mage
     * @package    Mage_Adminhtml
     * @author      Magento Core Team <core@magentocommerce.com>
     */
    class Mage_Adminhtml_Block_Customer_Edit_Tab_Newsletter extends Mage_Adminhtml_Block_Widget_Form
    {
    
    public function __construct()
    {
        parent::__construct();
        $this->setTemplate('customer/tab/newsletter.phtml');
    }
    
    public function initForm()
    {
        $form = new Varien_Data_Form();
        $form->setHtmlIdPrefix('_newsletter');
        $customer = Mage::registry('current_customer');
        $subscriber = Mage::getModel('newsletter/subscriber')->loadByCustomer($customer);
        Mage::register('subscriber', $subscriber);
    
        if ($customer->getWebsiteId() == 0) {
            $this->setForm($form);
            return $this;
        }
    
        $fieldset = $form->addFieldset('base_fieldset', array('legend'=>Mage::helper('customer')->__('Newsletter Information')));
    
        $fieldset->addField('subscription', 'checkbox',
             array(
                    'label' => Mage::helper('customer')->__('Subscribed to Newsletter?'),
                    'name'  => 'subscription'
             )
        );
    
        if ($customer->isReadonly()) {
            $form->getElement('subscription')->setReadonly(true, true);
        }
    
        $form->getElement('subscription')->setIsChecked($subscriber->isSubscribed());
    
        if($changedDate = $this->getStatusChangedDate()) {
             $fieldset->addField('change_status_date', 'label',
                 array(
                        'label' => $subscriber->isSubscribed() ? Mage::helper('customer')->__('Last Date Subscribed') : Mage::helper('customer')->__('Last Date Unsubscribed'),
                        'value' => $changedDate,
                        'bold'  => true
                 )
            );
        }
    
        $this->setForm($form);
        return $this;
    }
    
    public function getStatusChangedDate()
    {
        $subscriber = Mage::registry('subscriber');
        if($subscriber->getChangeStatusAt()) {
            return $this->formatDate(
                $subscriber->getChangeStatusAt(),
                Mage_Core_Model_Locale::FORMAT_TYPE_MEDIUM, true
            );
        }
    
        return null;
    }
    
    protected function _prepareLayout()
    {
        $this->setChild('grid',
            $this->getLayout()->createBlock('adminhtml/customer_edit_tab_newsletter_grid','newsletter.grid')
        );
        return parent::_prepareLayout();
    }
    
    }