Я пытаюсь добавить кнопку на вкладке Customers->Account Information
. Я хочу, чтобы кнопка выполняла действие при нажатии. Я хотел бы сделать это в пользовательском модуле. Я не слишком люблю идею перезаписи файлов ядра или любых классов. Из того, что у меня есть Google, вы можете сделать это, используя Observer
, например, here, если это правда, то я хотел бы сделать это таким образом.Как добавить кнопку на вкладку «Информация о пользователе» в Magento?
Я знаю, как создать базовый модуль, мне нужна помощь, так как вы помещаете кнопку на определенной вкладке без перезаписи файлов/классов?
Обновление 11/3/2013 11 утра:
Вот скриншот
Я хотел бы добавить кнопку на этой вкладке.
Обновление 2:48 вечера 11/3/2014
Вот мой код до сих пор, может быть, я делаю ошибку где-то.
Моя структура файла
-app
-local
-Rdtmodules
-ChangeGroupNotification
-etc
-config.xml
-Model
-Observer.php
-etc
-modules
-Rdtmodules_ChangeGroupNotification.xml
config.xml
<?xml version="1.0" encoding="UTF-8"?>
<config>
<modules>
<Rdtmodules_ChangeGroupNotification>
<version>1.0.0</version>
</Rdtmodules_ChangeGroupNotification>
</modules>
<global>
<models>
<rdtmodules_changegroupnotification>
<class>Rdtmodules_ChangeGroupNotification_Model</class>
</rdtmodules_changegroupnotification>
</models>
<events>
<adminhtml_block_html_before>
<observers>
<rdtmodules_changegroupnotification>
<class>rdtmodules_changegroupnotification/observer</class>
<method>sendCustomerGroupChangeNotification</method>
<type>singleton</type>
</rdtmodules_changegroupnotification>
</observers>
</adminhtml_block_html_before>
</events>
</global>
</config>
Observer.php
<?php
class Rdtmodules_ChangeGroupNotification_Model_Observer {
public function sendCustomerGroupChangeNotification(Varien_Event_Observer $observer) {
$block = $observer->getEvent()->getData('block');
if($block->getId() == 'customer_edit' && $block->getRequest()->getControllerName() == 'customer_edit') {
$block->addButton('test_print', array(
'label' => 'Test',
'onclick' =>'setLocation(\'' . $block->getUrl('html/sales_order/print') . '\')',
'class' => 'go'
));
}
}
}