Как изменить URL кнопки "Назад" в виде сетки в админке magento?

Я работаю в сообществе Magento, версия 1.7.

У меня есть сетка в админке. Теперь, когда я нажимаю на этот URL, он открывает форму с двумя вкладками в левой боковой панели. Когда я нажимаю на вторую вкладку, она показывает сетку в правой части.

Затем я нажимаю на строку этой сетки, она открывает форму на другой странице. В этой форме есть кнопка назад.

Как я могу изменить его URL на предыдущую страницу?

3 ответа

Решение

Добавьте пользовательскую кнопку "Назад" и удалите кнопку по умолчанию в конструкторе класса контейнера контейнера.

$data = array(
        'label' =>  'Back',
        'onclick'   => 'setLocation(\'' . $this->getUrl('*/*/*') . '\')',
        'class'     =>  'back'
   );
$this->addButton ('my_back', $data, 0, 100,  'header'); 
...
parent::__construct();
...
$this->_removeButton('back');

Просто нужно переопределить getBackUrl функция:

class [Namespace]_[Module]_Block_Adminhtml_[CustomBlock] extends Mage_Adminhtml_Block_Widget_Form_Container
{

/** code **/

public function getBackUrl()
    {
        parent::getBackUrl();
        return $this->getUrl('[New URL]');
    }

/** code **/
}

Примечание: проверено в Magento ver. 1.9.1.0

Просто переопределите кнопку возврата по умолчанию:

parent::__construct();

$data = array(
        'label' =>  'Back',
        'onclick'   => 'setLocation(\'' . $this->getUrl('*/*/*') . '\')',
        'class'     =>  'back'
   );
$this->addButton ('back', $data, 0, 100,  'header'); 

Обратите внимание на размещение parrent::__construct();

Вот самый простой способ изменить URL-адрес кнопки возврата.

protected function _construct()
{
    $this->_objectId = 'row_id';
    $this->_blockGroup = 'Namespace_Modulename';
    $this->_controller = 'adminhtml_grid';
    parent::_construct();
    if ($this->_isAllowedAction('Namespace_Modulename::add_row')) {
        $this->buttonList->update('save', 'label', __('Save'));
    } else {
        $this->buttonList->remove('save');
    }
    /**
     * Below line to change your back url of grid
     */
    $this->buttonList->update('back', 'onclick', 'setLocation(\'' . $this->getUrl('*/*/index') . '\')');
}
Другие вопросы по тегам