2011-02-01 88 views
0

我創建了一個Joomla 1.6模板,我想使第一頁與其他頁面不同(我說,其他的文章)。我想到的是類似的東西:在Joomla模板中,如何使第一頁與使用文章的頁面不同?

<?php 
if(this_page_link_to_an_artcile || this_page_is_not_the_main) { 
    ?> <jdoc:include type="component" /> <?php 
} 
?> 

我看着在一個標準模板,並得到多少有些失落試圖找到「如果」,這使得無法在某些頁面中顯示。

回答

1
// Is Frontpage? 
$option = JRequest::getCmd('option'); 
$view = JRequest::getCmd('view'); 

$frontpage = ($option == 'com_content' && $view == 'featured') 
$is_article = ($option == 'com_content'); 
if ($is_article && !$frontpage) 
{ 
    // ... 
} 

編輯:現在在1.6的Joomla!)

$is_article || !$frontpage應該總是返回true ...因爲如果它不是一個物品,它不是頭版而定。關於如何定義「是一篇文章」,當然。)

1

您可以使用joomla的多個模板,並將它們分配給不同的菜單項/頁面。 例如,您可以將主要模板(包含文章)和僅用於主頁的另一個模板(即前者)鏈接到「主頁」菜單項。

您可以使用模板管理器執行菜單項/模板分配。

+0

但我不想有兩個不同的模板,但只有一個。一些默認模板的工作方式相同。 – 2011-02-01 13:15:35

+0

嗯,我從來沒有這樣做過,但可以工作的是獲取ItemID並檢查它是否是「Home」頁面並隱藏Component和顯示模塊,反之亦然。恩。$ menus =&JSite :: getMenu(); $ menu = $ menus-> getActive(); $ itemid = $ menu-> id; – GoofyHTS 2011-02-01 13:24:00

+0

但我怎麼能先知道主頁的id是什麼?例如,現在在我的頁面中它是435,但不能確定它會一直如此,對嗎? – 2011-02-02 11:57:47

0

你是什麼意思?根據加載哪個組件和模塊,Joomla中的頁面看起來不同。你計劃在你的主頁上有什麼內容?您可能只需要將默認菜單更改爲其他類型。

除非主頁上存在結構性差異,否則不需要添加更多代碼,只需更改菜單類型即可。

爲了適應從一個頁面到另一個頁面的結構差異,您需要製作僅在需要時才顯示的可摺疊位置。

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

您還需要利用可添加到菜單項中的頁面類後綴參數。這使您可以添加特定於頁面的樣式。我通常將它添加到我的模板index.php中的BODY標籤。

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

如果你想爲每個頁面或一組頁面設置單獨的樣式,那麼你可以將它添加到你的模板index.php/head:

<?php $active = JFactory::getApplication()->getMenu()->getActive();?> 

之後,使包裝的div涵蓋所有的頁面在體內的標籤,例如:

<body> 
<div class="<?php echo $active->alias; ?> "> 
----- PAGE CONTENT----- 
</div> 
</body> 

這樣,你得到的風格要與個人風格的任何頁面。例如,對於「家」頁面,在你的CSS文件,你應該爲

.home .footer {} 

設置屬性設置爲只在主頁上顯示的.footer格屬性。

相關問題