Как изменить шаблон входа администратора в Magento 1.5 или 1.6
В magento 1.7.x и выше шаблон входа устанавливается в XML-файле макета, поэтому изменить шаблон очень легко.
Как добиться этого в 1.5.x или 1.6.x, где нет xml-макета, а блок и шаблон создаются на лету в контроллере?
См.
class Mage_Adminhtml_IndexController extends Mage_Adminhtml_Controller_Action { protected function _outTemplate($tplName, $data=array()) { $this->_initLayoutMessages('adminhtml/session'); $block = $this->getLayout()->createBlock('adminhtml/template')->setTemplate("$tplName.phtml"); foreach ($data as $index=>$value) { $block->assign($index, $value); } $html = $block->toHtml(); Mage::getSingleton('core/translate_inline')->processResponseBody($html); $this->getResponse()->setBody($html); } public function loginAction() { if (Mage::getSingleton('admin/session')->isLoggedIn()) { $this->_redirect('*'); return; } $loginData = $this->getRequest()->getParam('login'); $data = array(); if( is_array($loginData) && array_key_exists('username', $loginData) ) { $data['username'] = $loginData['username']; } else { $data['username'] = null; } $this->_outTemplate('login', $data); }
1
2 answers
Ну, ты мало что можешь сделать. Очевидной вещью было бы создать пользовательскую тему администратора и просто переписать шаблон. Но если вы планируете выпустить модуль сообщества, то это явно плохая идея.
Жаль, что они даже не дают имени этому блоку в методе _outTemplate()
. Может быть, стоило бы проверить, можете ли вы использовать событие adminhtml_block_html_before
1
Author: Ventus, 2014-07-11 08:33:39
В конце перешел к решению, в котором я перечислил, чтобы предварительно заблокировать событие HTML и заменить шаблон на лету.
Спасибо
0
Author: Php4u, 2014-07-13 20:00:41