Как изменить 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') . '\')');
}