如何为 user/visit 设置 Joomla 模板

How to set Joomla template for user/visit

我想为通过我的带有 iframe 的移动应用程序连接到网站的用户使用特定的 Joomla 模板(没有导航,没有顶部和底部)。我假设该用户将从特定地址开始连接,使用 tmpl 参数(或类似参数),但是有没有办法为这些用户锁定该模板?

也许有一些插件可以在会话数据中设置模板并覆盖默认模板选择?

有一个名为 Template Assigner - http://extensions.joomla.org/extension/template-assigner 的 Joomla 扩展。它完全符合您的要求。

插件允许我仅为特定用户组设置模板,而不是根据 url 切换模板,但由于您的想法,我创建了非常简单的插件来执行此操作,代码如下:

defined('_JEXEC') or die;
class plgSystemMobiler extends JPlugin
{
    public function onAfterInitialise()
    {
        $app = JFactory::getApplication();
        $jinput = $app->input;

        if (isset($_REQUEST['mobile'])) $par=(int)$_REQUEST['mobile'];
        if (isset($par)) $jinput->cookie->set('mobile', $par, time() + 100000, $app->get('cookie_path', '/'), $app->get('cookie_domain'), $app->isSSLConnection());

        $cookie=$jinput->cookie->get('mobile');
        if (intval($cookie)>0) JFactory::getApplication()->input->set('templateStyle', intval($cookie));
    }
}