0

私は何時間も解決策を見つけようとしてきました...コメント/ガイダンスをいただければ幸いです!..ありがとう...カテゴリ別にさまざまな製品を一覧表示するための拡張機能を作成しました。私が達成しようとしているのは、設定されているカテゴリに応じてサイト全体の背景を変更することです。たとえば、電子機器は青い背景、ファッションは赤い背景などです。

いくつか問題があります:1。カテゴリの並べ替え機能が動的であるため(ドロップダウンリスト/送信ボタン)、ページが変更されないため(モジュールに表示されるもののみが変更されます)、ページごとに異なるテンプレートを使用できません、2。ページサフィックスを使用して新しいテンプレートを定義できません。

良い解決策は、if($ categoryId == X)-> set_new_backgroundのようなphpステートメントですが、サイトの背景のクラスは、作業中のphpファイルの外部に設定されています。また、DIVの背景を設定しても、サイトの背景は変更されません。

どんなアイデアや助けも大歓迎です!ありがとうございました!

この投稿を報告する

4

3 に答える 3

1

上記の@Theodeoreの回答を参照してください。完全です。私が行う唯一の追加は、代わりにテンプレートレベルでクラスを使用することです。これにより、cssで色を定義し、各カテゴリのクラスを作成できます。

これが最速になります(ルックアップテーブルは必要ありません)。したがって、次の$catClassをbodyに追加するだけです。

if ($option=='com_content' && $view=='category') 
    $catClass = ' cat'.JRequest::getVar('id');

この後、$ catClassには、「cat16」のようなものが含まれます。これを追加できます。

したがって、「」の前に上記のコードをテンプレートに挿入できます。

<body class="your classes <?php echo $catClass; ?>">

これは次のようなものを出力します:

<body class="your classes cat16">

次に、単一のcssでルールがあります。

body.cat16 {background-image:url(../image1.jpg);}
body.cat18 {background-image:url(../image2.jpg);}

これは、ブラウザの読み込みがはるかに高速になるため、個別のcssファイルを使用するよりも優れています。

于 2013-02-20T07:59:54.690 に答える
1

あなたの問題にはいくつかのアプローチがあります

1)カテゴリごとにテンプレートのオーバーライドを使用して、コンポーネントにさまざまなテンプレートをロードできます

2)さまざまなcssスタイルをロードできます

$document =& JFactory::getDocument();
If ($cat==1){
 $document->addStyleSheet("/mybluetheme.css");
}
else
{
 $document->addStyleSheet("/myredtheme.css");
}

3)カスタムプラグイン http://www.rockettheme.com/magazine/jan-2012/1342-creating-a-simple-macro-replacement-plug-inを使用して、ドキュメントの本文に特定のクラスを追加できます。

4)最後ではありませんが、色を指定して体に隠されたdivをエコーすることができます

<?php 
if($category==1){
$color="#ffffee";
}
else{
$color="#eeeeee";
}
echo "<div class='hiddencolor' style='display:none'>".$color."</div>";
?>

次に、jqueryコードを使用します

$(document).ready(function() {


        var mycolor = $(".hiddencolor").text();
        alert(mycolor);
        // change the body background css
        $("body").css("background", mycolor);
});

http://jsfiddle.net/zWzvd/

于 2013-02-18T21:05:00.893 に答える
0

テンプレートコードを編集するこの方法を試すことができます。動的にする必要があります。 http://forum.joomla.org/viewtopic.php?p=2271520

また

カテゴリの色をテーブルに保存できます。ページが読み込まれたときにクエリを実行し、値が返された場合はそれを使用してサイトの背景に色を付けます。基本的に、コードをテンプレートに配置します。

于 2013-02-18T21:10:00.397 に答える