2009-04-30 10 views
0

皆さん、私はJoomlaで基本的な機能を実装しようとしていますが、私の周りに私の頭を抱く運がない。閲覧中のセクションを確認する

私のクライアントは、いくつかのセクションでJoomlaをセットアップしました。各セクションには独自のカテゴリがあり、最終的にコンテンツが下にあります。

それぞれのセクションには、わずかに異なる色成分(たとえば、セクションAとすべての後続の子ページが赤色、セクションB-青色など)が必要です。特定の罫線と背景は、各セクションに応じて一意である必要があります。

すべてのセクションで使用される1つのテーマがあります。どこかテーマファイルで、私はCSSの変数に応じてそのセットに基づいて上の午前、そしてどの部分を検出する必要があります。

<html> 
    <body class="cars-section"> 

    </body> 
</html> 

私は必要なのは、右側のセクションに私の体のクラスを設定することで、すべての私を着色は魔法のように働くように設定されています。

これはJoomlaの世界でどのように行うことができますか?そんなことをする別の方法がありますか?

答えて

0

はボディCSS-クラス分けを達成するために、いくつかの方法があります。

  1. のJoomlaのメニューページクラス接尾システムを利用しています。
  2. テンプレート内から選択したメニューリンクに基づいてクラスを出力します。もちろん、これを行う場合は、テンプレートを少し変更する必要があります。

    $ menu = & JSite :: getMenu();
    $ active = $ menu-> getActive();
    <本文<?php if($ active-> alias)echo 'class = "'。$ active-> alias。 '"'? > >

+0

これは私に現在のページのエイリアスを取得します。私のセクションにページが1つしかない場合、これは正常に動作します。 ただし、セクションには子ページの階層を設定できます。誰かが最も深い子ページをクリックするとどうなりますか?エイリアスは、ルートセクションの名前を私に知らせるのではなく、その子ページのエイリアスを返します。 – Hady

1

あなたがリクエストからセクションのIDをピックアップする必要があります。

関連のリクエスト変数を取得するには、これを使用します。

<?php 
$option = JRequest::getWord('option', null); 
$view = JRequest::getWord('view', null); 
$idalias = JRequest::getVar('id', null); 
if (strpos($idalias, ":") != false) { 
    $idandalias = explode(":", $idalias); 
    $id = $idandalias[0]; 
} else { 
    $id = JRequest::getInt ('id' , 0); 
} 

そして、あなたはセクションのページ上にある場合、あなたが何であるかのセクションを確認するには、このようなものを使用する:セクションで

if ($option=="com_content" && $view=="section") { 
    $sectid = $id; 
} 

をページだけでリクエストを使用できますが、他のページでもデータベースクエリを行う必要があります。

else { 
    $database =& JFactory::getDBO(); 
    if ($option=="com_content" && $view=="category") { 
    $query = "SELECT section FROM jos_categories WHERE id=$id"; 
    } 
    if ($option=="com_content" && $view=="article" } { 
    $query = "SELECT sectionid FROM jos_content WHERE id=$id"; 
    } 
    $database->setQuery($query); 
    $sectid = $database->loadResult(); 
} 

セクションIDを持っているときに、それを使って正しいクラスを設定して挿入することができます。

if ($sectid == '3') { 
    $my_cars_section_class = 'three'; 
} 
?> 
<body class="<?php echo $my_cars_section_class; ?>"> 

何かがそうするべきです。

関連する問題