我試圖在Customers->Account Information
選項卡中添加一個按鈕。我希望按鈕在點擊時執行操作。我想在自定義模塊中執行此操作。我不太喜歡重寫核心文件或任何類的想法。從我google搜索到的人都說你可以用Observer
做這個,一個例子是here,如果那是真的,那麼我想這樣做。如何將按鈕添加到Magento中的客戶信息選項卡?
我知道如何製作一個基本模塊,我需要幫助的是如何在不重寫文件/類的情況下在特定選項卡中放置按鈕?
更新2013年11月3日上午11點:
下面是截圖
我想補充此選項卡上的按鈕。
更新下午2:48 2014年11月3日
這裏是我到目前爲止的代碼,也許我犯了一個錯誤的地方。
我的文件結構
-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'
));
}
}
}