如何使用插件以编程方式设置模板

时间:2013-11-18 13:41:15

标签: php joomla joomla3.2

如何使用自定义插件更改后端的模板集?

我提出了使用

的不同解决方案
$doc= JFactory::getDocument();
$doc->setTemplate("my_tempalte_name");

哪个不起作用。

1 个答案:

答案 0 :(得分:2)

在Joomla 3.2中。 +您可以使用JApplicationSite::setTemplate方法。

您需要将其放入系统插件中,该插件会在onAfterInitialise上触发。

public function onAfterInitialise()
{
    $app = JFactory::getApplication();
    // We want to change the template just on the FE
    if ($app instanceof JApplicationSite)
    {
        $template = $app->getTemplate(); //use just debugging
        var_dump($template); //use just debugging
        // Set the new template and style params
        $app->setTemplate('protostar', null);
        $template = $app->getTemplate(); //use just debugging
        var_dump($template); //use just debugging
    }

}

签名JApplicationSite::setTemplate是:

/**
 * Overrides the default template that would be used
 *
 * @param   string  $template     The template name
 * @param   mixed   $styleParams  The template style parameters
 *
 * @return  void
 *
 * @since   3.2
 */
public function setTemplate($template, $styleParams = null)