Javascript 如何在joomla中手动将模板设置为页面

Javascript 如何在joomla中手动将模板设置为页面,javascript,php,templates,joomla,joomla2.5,Javascript,Php,Templates,Joomla,Joomla2.5,我有一个Joomla登录页面,用户必须先登录或注册,然后才能访问主页 问题是,我的登录页和主页实际上是一个页面,但使用不同的模板,它会改变外观和功能。 当我使用登录页模板时,它将成为登录页;当我使用主页模板时,它将成为主页 因此,问题是:如何在index.php文件中手动更改/设置模板到特定页面? 例如: $user = JFactory::getUser(); if ($user->guest) { Set Landing page template } else { Set H

我有一个Joomla登录页面,用户必须先登录或注册,然后才能访问主页

问题是,我的登录页和主页实际上是一个页面,但使用不同的模板,它会改变外观和功能。 当我使用登录页模板时,它将成为登录页;当我使用主页模板时,它将成为主页

因此,问题是:如何在index.php文件中手动更改/设置模板到特定页面? 例如:

$user = JFactory::getUser();
if ($user->guest)
{
  Set Landing page template
}
else
{
  Set Home page template
}
请帮帮我


我想你的开始还可以。在模板文件夹landing.php和home.php中创建更多文件,并在index.php中调用它们:

$user = JFactory::getUser();
if ($user->guest)
{
  require_once('landing.php'); 
}
else
{
  require_once('home.php'); 
}
在landing.php中,您只需显示登录模块和消息标记:

<jdoc:include type="message" />
<jdoc:include type="modules" name="login" style="xhtml" />

在home.php中,您可能仍然希望加载登录模块、菜单模块等以及主页上的组件:

<jdoc:include type="modules" name="login" style="xhtml" />
<jdoc:include type="modules" name="topmenu" style="xhtml" />
<jdoc:include type="modules" name="rightmenu" style="xhtml" />
<jdoc:include type="message" />
<jdoc:include type="component" />


当然,您需要在元素周围添加所需的任何html结构。这有意义吗?

是的,这是一个聪明的解决方案,但在我的例子中:不是require_once('home.php');调用当前模板的不同.php样式。我需要调用不同(已安装)模板的.php样式。所以,我试着像你建议的那样调用另一个模板的index.php,但由于某些库中的错误,它对我不起作用。。。所以我需要不同的解决方案。是否有joomla php代码来设置模板,比如joomla php代码来获取路径和其他内容?你说的“php风格”是什么意思?当你说模板时,你是指tmpl文件夹中的内容还是模板文件夹中的内容?如果在templates文件夹中,您是指完全不同的Template还是特定的样式集?