Это сообщение об ошибке: Неустранимая ошибка: вызовите функцию-член initForm() для не-объекта в C: \ wamp \ www \ magento \ app \ code \ core \ Mage \ Adminhtml \ Block \ Customer \ Edit \ Tabs.php в строке 58Ошибка Magento при переопределении в локальной папке
Я копирую этот файл: C: \ wamp \ www \ magento \ app \ code \ core \ Mage \ Adminhtml \ Block \ Customer \ Edit \ Accounts.php к: C: \ WAMP \ WWW \ Magento \ приложение \ кода \ Local \ my_project \ Adminhtml \ Block \ Customer \ Edit \ Tab \ Accounts.php
затем редактировать только эту функцию:
<?php
class My_Project_Adminhtml_Block_Customer_Edit_Tab_Account extends Mage_Adminhtml_Block_Customer_Edit_Tab_Account
{
public function initForm()
{
Mage::log('Debug1: _initForm was called',null,'globe.log');
$form = new Varien_Data_Form();
$form->setHtmlIdPrefix('_account');
$form->setFieldNameSuffix('account');
$customer = Mage::registry('current_customer');
/* @var $customerForm Mage_Customer_Model_Form */
$customerForm = Mage::getModel('customer/form');
$customerForm->setEntity($customer)
->setFormCode('adminhtml_customer')
->initDefaultValues();
$fieldset = $form->addFieldset('base_fieldset',
array('legend'=>Mage::helper('customer')->__('Account Information'))
);
$attributes = $customerForm->getAttributes();
//Start of edit//
//Remove the Un-needed labels from the Customer Information Form
//These are the codes that I added:
unset($attributes['prefix']);
unset($attributes['firstname']);
unset($attributes['middlename']);
unset($attributes['lastname']);
unset($attributes['suffix']);
unset($attributes['taxvat']);
unset($attributes['dob']);
unset($attributes['gender']);
//End of edit//
foreach ($attributes as $attribute) {
$attribute->unsIsVisible();
}
$this->_setFieldset($attributes, $fieldset);
/**Usual codes continues here**/
это те коды на линии 56-60 из Tabs.php
$this->addTab('account', array(
'label' => Mage::helper('customer')->__('Account Information'),
'content' => $this->getLayout()->createBlock('adminhtml/customer_edit_tab_account')->initForm()->toHtml(),
'active' => Mage::registry('current_customer')->getId() ? false : true
));
То, что я хочу сделать здесь, чтобы удалить имена, почтовый индекс, страна, пол и т.д., в информационной форме счета, только электронная почта останется.
Если я все это делаю в файлах Core, все идет хорошо, но если я попытаюсь переопределить это и сохранить его в локальной папке, возникает эта ошибка.
P.S. Я также добавляю файл config.xml в свой локальный файл и добавляю xml в C: \ wamp \ www \ magento \ app \ etc \ modules с именем My_Project_Adminhtml.xml
Спасибо, что заранее, для тех, кто поможет.
это мой config.xml сохранить на C: \ WAMP \ WWW \ Magento \ приложение \ код \ Local \ my_project \ Adminhtml \ и т.д.
<?xml version="1.0" ?>
<config>
<modules>
<My_Project_Adminhtml>
<version>1.0</version>
</My_Project_Adminhtml>
</modules>
<global>
<blocks>
<adminhtml>
<rewrite>
<customer_edit_tab_account>
My_Project_Adminhtml_Block_Customer_Edit_Tab_Account
</customer_edit_tab_account>
</rewrite>
</adminhtml>
</blocks>
</global>
</config>
это мой модуль XML сэкономить на .../приложение/и т.д./модули папки
<?xml version="1.0" ?>
<config>
<modules>
<My_Project_Adminhtml>
<active>true</active>
<codePool>local</codePool>
</My_Project_Adminhtml>
</modules>
</config>
является примером My_Project_Adminhtml или фактическим значением, которое вы пытаетесь использовать? Вы не должны использовать подчеркивание в разделе пространства имен, иначе он будет ожидать, что путь ко всем вашим классам будет My \ Project \ Adminhtml –
его просто примером, значение на самом деле всего лишь 1 слово, например Planet_Adminhtml ... извините, чтобы ввести вас в заблуждение , – Jediscript