2012-08-15 53 views
1

我试图在Joomla中实现不同的布局。我正在使用别名来为每个页面设置 不同的布局。我阅读了一本关于Joomla的电子书,并且没有其他方法可以创建不同的布局,或者将其设置在后端面板中。 我想问,是否有另一种方法/方法来为每个页面从后端面板设置不同的页面?我只是想确保它可能在Joomla 1.5中。动态布局(每页不同的布局)

我以前的方法

// Get Alias Page 
function getCurrentAlias(){ 
    $menu= &JSite::getMenu(); 
    $active= $menu->getActive(); 
    return $active->alias; 
} 

获得别名页面名称后,我用了一个条件语句来获取每个页面不同的内容 。

<-- Header Part --> 
<-- Start Content Part --> 
if($pageName == "home"){ 
    {{Content Home}} 
}elseif(preg_match("#^(news).*$#", $pageName)){ 
    {{Content News}} 
}...etc 
<-- End Content Part --> 
<-- Footer Part --> 
+0

你还不清楚:'为每个页面从后端面板设置不同页面的方法 – alfasin 2012-08-15 02:15:31

回答

1

首先,我推荐不要使用1.5,它会在下个月结束。然而,如果你打算使用1.5,那么你就比你需要的要困难得多。如果你想在一个页面之间有重大的结构差异,你可以为你想要使用的每个不同结构安装一个模板,然后将每个模板分配到相应的菜单项。您将不得不创建菜单项,即使它们位于网站上未显示的隐藏菜单中。

您还可以使用CSS和可折叠模块位置控制页面的结构。收藏此,您可以设置一个页面类后缀添加一个ID到页面的body标签,让您轻松拥有网页特定CSS:

<?php 
$menu = &JSite::getMenu(); 
$active = $menu->getActive(); 
if (is_object($active)) : 
$params = new JParameter($active->params); 
$pageclass = $params->get('pageclass_sfx'); 
endif; 
?> 

<body id="<?php echo $pageclass ? $pageclass : 'default'; ?>"> 

然后对每个模块位置的页面上,你可以让他们可折叠这样他们就不会在页面上显示出来,如果他们没有被使用:

<?php if ($this->countModules('top')) : ?><div id="top"><jdoc:include type="modules" name="top" style="xhtml" /></div><?php endif; ?> 

所以基本上,如果你不把任何模块中的“顶部”的位置使它不会被提上页。结合使用这两个项目,您可以使用单个模板精确控制每个页面的外观。

+0

我会尝试这种方法,希望它是我正在寻找.. – 2012-08-23 03:25:06

+0

谢谢,它的工作原理。模块的可见性可以在管理面板中设置,但我也必须使用条件语句来支持不同的结构。 – 2012-08-23 07:24:36

0

当我们在哪里使用Joomla! 1.5我们使用了一个名为“Menu Dependent Items”的扩展来加载特定的CSS,JS等

通过加载正确的CSS等我们能够完全重新布局任何给定的页面。

当然随着Joomla模板“样式”的出现! 2.5+我们不再需要它,因为我们可以将样式变体分配给菜单项。

+0

这不仅仅是加载CSS或JS,而是不同的HTML布局,在Joomla 1.5版本中可能会有这样的结果 – 2012-08-15 04:14:13