Здравствуйте. Я хочу добавить одно поле в форму редактирования клиента magento. Это поле с точки зрения функциональности является всего лишь триггером, чтобы сделать несколько вещей в моем расширении. Я пытался сделать это, переопределив класс, добавив набор полей к новому объекту формы, а затем вызвав родительскую форму инициализации. Это не работает. Мне было интересно, как изменить объект в родительском классе. Пока у меня есть:
<adminhtml>
<rewrite>
<customer_edit_tab_account>Yougento_S2b_Block_Rewrite_Editcustomer</customer_edit_tab_account>
</rewrite>
</adminhtml>
Это установить перезапись, тогда мой класс (block / rewrite / editcustomer.php) будет
class Namespace_Module_Block_Rewrite_Editcustomer extends Mage_Adminhtml_Block_Customer_Edit_Tab_Account
{
public function initForm()
{
$form = new Varien_Data_Form();
$fieldset = $form->addFieldset('new_fieldset',
array('legend'=>Mage::helper('customer')->__('Extra options'))
);
$fieldset->addField('newattr', 'text',
array(
'label' => Mage::helper('customer')->__('Select type'),
'class' => 'input-text',
'name' => 'newattr',
'required' => false
)
);
$this->setForm($form);
return parent::initForm();
}
}
Мой код выполняется, но я предполагаю, что когда я вызываю родителя, новый объект формы заменяет новый вместо расширения. Это может быть больше вопрос php, но я подумал, что я бы определил его для magento