0

皆さん、私は Joomla で初歩的な機能を実装しようとしていますが、それについて理解することができません。

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

各セクションには、わずかに異なる色コンポーネントが必要です (たとえば、セクション A とそれに続くすべての子ページは赤、セクション B は青など)。特定の境界線と背景は、各セクションに従って一意である必要があります。

すべてのセクションで使用される 1 つのテーマがあります。テーマ ファイルのどこかで、現在のセクションを検出し、それに基づいて css 変数を設定する必要があります。

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

    </body>
</html>

ボディのクラスを適切なセクションに設定するだけで、すべてのカラーリングが魔法のように機能するように設定されています。

Joomlaの世界でこれを行う方法はありますか? そのようなことを行う別の方法はありますか。

4

2 に答える 2

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

そのような何かがそれを行う必要があります。

于 2009-05-21T15:13:42.357 に答える