Кнопка просмотра заказа Magento для процесса идентификации
Я должен поместить кнопку в вид заказа, который будет отправлять идентификатор заказа. Идентификатор будет использоваться для простого запроса к базе данных, после чего он должен вернуться к виду заказа.
Я узнал, как создать кнопку, я создал app/code/local/Mage/Adminhtml/Block/Sales/Order/View.php
после view.php от ядра.
Вот мой код:
class Mage_Adminhtml_Block_Sales_Order_View extends
Mage_Adminhtml_Block_Widget_Form_Container
{
public function __construct()
{
$this->_objectId = 'order_id';
$this->_controller = 'sales_order';
$this->_mode = 'view';
parent::__construct();
$this->_removeButton('delete');
$this->_removeButton('reset');
$this->_removeButton('save');
$this->setId('sales_order_view');
$order = $this->getOrder();
$this->_addButton('release_payment', array(
'label' => Mage::helper('sales')->__('Release Payment'),
'onclick' => 'setLocation(\'' . $this->getUrl('*/*/release') . '\')',
'class' => 'go'
));
}
Я хочу, чтобы это местоположение, которое должно быть sales_order/release, чтобы действительно что-то делать с идентификатором заказа. Я пытался понять, как, но мне не удается создать контроллер.
1 ответ
Вы, вероятно, должны собрать эти переопределения в модуль. В противном случае уродливый метод будет копировать
app/code/core/Mage/Adminhtml/controllers/OrderController.php
в
app/code/local/Mage/Adminhtml/controllers/OrderController.php
и добавить releaseAction()
-функция к этому.
Для более элегантного решения вам нужно создать модуль с параметрами конфигурации в etc/config.xml
файл для переопределения / перегрузки указанного блока и кода контроллера. С помощью этого метода ваши изменения лучше сдерживаются, и модуль легко включить / выключить. Также при расширении исходного блока / контроллера вам не нужно включать что-либо кроме модифицированных / добавленных методов, остальные будут выполняться из исходного файла.
На самом деле даже основная документация от Magento имеет приличные примеры: http://www.magentocommerce.com/wiki/5_-_modules_and_development/0_-_module_development_in_magento/how_to_overload_a_controller
И гуглил для magento controller overload
тоже дает хорошие результаты, поэтому я не буду приводить здесь длинный пример.