动态布局(每页的不同布局)

时间:2012-08-15 02:13:12

标签: php joomla joomla1.5

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

我以前的方法

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

获取Alias页面名称后,我使用条件语句来获取不同的内容 对于每一页。

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

2 个答案:

答案 0 :(得分:1)

首先,我建议不要使用1.5,它会在下个月达到使用寿命。

但是,如果你打算使用1.5,那么你所做的事情要比你需要的要困难得多。如果您希望从一个页面到另一个页面存在显着的结构差异,则可以为要使用的每个不同结构安装模板,然后将每个模板分配给相应的菜单项。您必须创建菜单项,即使它们位于网站上未显示的隐藏菜单中。

您还可以使用CSS和可折叠模块位置控制页面结构。添加这个,这样你就可以设置一个页面类后缀,为页面的body标签添加一个ID,使得页面特定的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; ?>

所以基本上,如果你没有把任何模块放在“顶部”位置,它就永远不会放在页面上。结合使用这两个项目,您可以使用单个模板准确控制每个页面的外观。

答案 1 :(得分:0)

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

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

当然随着Joomla模板“Styles”的出现! 2.5+我们不再需要它,因为我们只能为菜单项指定样式变化。