cancel
Showing results for 
Search instead for 
Did you mean: 

Помогите с кнопкой

Помогите с кнопкой

Ребята помогите с привязать действия на кнопку. Создал с помощью наблюдателя кнопку в редакторе заказа административной панели, кнопка видна, при нажатии есть вспмывающие окно с запросом на подтверждение действия. Когда нажимаю подтвердить выкидывает на страницу 404 со следующим URL

localhost/index.php/admin/mymod/mybutton/order_id/2

Файлы моего модуля

/app/etc/modules/My_Mod.xml

<?xml version="1.0" encoding="utf-8" standalone="no"?>
<config>
    <modules>
        <My_Mod>
            <active>true</active>
            <codePool>local</codePool>
        </My_Mod>
    </modules>
</config>

app/code/local/My/Mod/etc/config.xml

<?xml version="1.0" encoding="utf-8" standalone="no"?>
<config>
    <modules>
        <My_Mod>
            <version>0.1.0</version>
        </My_Mod>
    </modules>
	<global>
        <models>
            <my_mod>
                <class>My_Mod_Model</class>
            	<resourceModel>my_mod_resource</resourceModel>
            </my_mod>
        	<my_mod_resource>
                <class>My_Mod_Model_Resource</class>
            </my_mod_resource>
        </models>
    </global>
    <adminhtml>
        <events>
            <adminhtml_widget_container_html_before>
                <observers>
                    <my_mod>
                        <class>my_mod/observer</class>
                        <type>singleton</type>
                        <method>addButtons</method>
                    </my_mod>
                </observers>
            </adminhtml_widget_container_html_before>
        </events>
    </adminhtml>
</config>

app/code/local/My/Mod/Model/Observer.php

<?php
class My_Mod_Model_Observer
{
    public function addButtons($observer)
    {
        $block = $observer->getBlock();

        if ($block instanceof Mage_Adminhtml_Block_Sales_Order_View) {
            $message = Mage::helper('core')->__('Are you sure you want to do this?');
            $block->addButton('my_button', array(
                'label'     => Mage::helper('core')->__('My Button'),
                'onclick'   => "confirmSetLocation('{$message}', '{$block->getUrl('*/mymod/mybutton')}')",
                'class'     => 'go'
            ));
        }
    }
}

app/code/local/My/Mod/controllers/Adminhtml/MymodController.php

<?php
class My_Mod_Adminhtml_MymodController extends Mage_Adminhtml_Controller_Action  
{
    public function myButtonAction()
    {
    	die('test');
    }
}

Что я делаю не так? По кнопке хочу сделать добавление комментария к заказу и смены статуса

1 REPLY

Re: Помогите с кнопкой

На кнопку можно повесить только контроллер. Обзервер может сработать из контроллера.  Контроллеры задаются в

<config>
<admin> <routers>
<adminhtml>
<args>
<modules>

 

http://smartceo.ru
Методология организации интернет-торговли, технические решения, консалтинг.