Templates Joomla 3插件-如果未在菜单级别定义,如何覆盖模板
我喜欢创建一个插件,只有在菜单上没有设置模板时才覆盖模板 现在,我正在努力解决插件和框架的生命周期阶段 我需要在回调方法“onAfterInitialise”中设置模板,但此时“活动菜单”不可用 在回调方法“onAfterRoute”期间,活动菜单变为可用,但get my“setTemplate”调用被忽略,因为模板似乎已由系统设置,因为菜单已设置模板Templates Joomla 3插件-如果未在菜单级别定义,如何覆盖模板,templates,plugins,joomla3.5,Templates,Plugins,Joomla3.5,我喜欢创建一个插件,只有在菜单上没有设置模板时才覆盖模板 现在,我正在努力解决插件和框架的生命周期阶段 我需要在回调方法“onAfterInitialise”中设置模板,但此时“活动菜单”不可用 在回调方法“onAfterRoute”期间,活动菜单变为可用,但get my“setTemplate”调用被忽略,因为模板似乎已由系统设置,因为菜单已设置模板 public function onAfterInitialise() { $menu = JFactory::getApplicati
public function onAfterInitialise() {
$menu = JFactory::getApplication()->getMenu();
// this is null
$active = $menu->getActive();
var_dump($active);
// otherwiese I could easily get the template style id
// and verify if it is the default one ....
}
public function onAfterRoute() {
if ( JFactory::getApplication()->isClient( 'site' ) ) {
// get ignored by the system
$this->_setTemplateStyle(10);
}
}
// set template via id
protected function _setTemplateStyle( $style ) {
$style = JCckDatabase::loadObject( 'SELECT id,template,params,home FROM #__template_styles WHERE id = '.(int)$style );
// var_dump($style);
if ( is_object( $style ) ) {
JFactory::getApplication()->setTemplate( $style->template, $style->params );
}
}
有什么想法吗