Magento管理员-客户编辑页面不再工作
当我尝试使用Magento后端管理编辑客户时,在console.log中会出现以下错误,并且页面的后一部分永远不会加载 屏幕截图显示了它的显示方式(注意页眉正在加载,但之后什么也没有) --更新-- 这里是我的customer.xmlMagento管理员-客户编辑页面不再工作,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
<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的错误日志,并滚动到底部以查找最新的错误,此错误日志可能非常庞大,具体取决于它的使用时间。您可能希望删除它,然后在它触发错误并写入日志文件时让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();
}
}