2012-08-15 40 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