1

我正在尝试在 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 -->
4

2 回答 2

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; ?>

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

于 2012-08-16T16:56:13.390 回答
0

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

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

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

于 2012-08-15T03:51:44.953 回答