web-dev-qa-db-ja.com

Webサイト上の複数のスタイル

Joomlaを作成しています!訪問者のタイプに応じて3つの異なるスタイルを備えた3.x Webサイト(主に色の違いと異なるモジュールが表示されるかどうか):

  • 「人」の青いスタイル
  • 小さな店のためのグリーンスタイル
  • 大きな店の赤いスタイル

ウェブサイトにも2つの言語がありますが、スタイルはそれらに応じて変更されることはありません。

私の質問は、これらのスタイルを管理するためのベストプラクティスは何でしょうか。

これまでの私の考え:

  • 3つの異なるテンプレートを使用しますが、それらの間の唯一の違いはCSSです。
  • すべてのスタイルを含む単一のテンプレートを使用し、訪問者の選択に応じてクラスを(セッションで)処理するプラグインを作成(または検索?)します。
2
Shaz

人、大小の店は異なるユーザーグループになると思います。したがって、シンプルで単純なアプローチは、スタイルのバリエーションをユーザーグループとACLに基づくことです。

1。異なるモジュールを表示するには:ユーザーグループごとにアクセスレベルを作成し、各ユーザーグループの関連するアクセスレベルに目的のモジュールを割り当てることができます。

2。異なるスタイルを使用するには/配色(CSS):すべてのスタイルのバリエーションと配色を処理する3つの追加のcssファイルを作成できます。次に、テンプレートで現在のユーザーのユーザーグループを確認し、関連するcssファイルを呼び出すことができます。

ユーザーデータへのアクセス方法

$user = JFactory::getUser(); //Get the current user object
$user->groups; //Returns an array with the ids of the usergroups of the user.



スタイルを割り当てるための代替的で少しトリッキーなアプローチ:
テンプレートのCSS/Scheme/Style設定をバックエンドし、バックエンドから3つの異なるスタイルを作成できます。これにより、テンプレートの対応するCSSルールまたはファイルがトリガーされます。次に、さまざまなメニュー項目を作成し、各ユーザーグループにアクセス権を付与して、対応するテンプレートスタイルをこれらのメニュー項目に割り当てることができます。

1
FFrewin

私たちは過去にこれと戦いました、そして私たちの経験では常に面倒になるので、より単純なアプローチのためにそれを放棄しました。その後、私たちは Chameleon と呼ばれる拡張機能を見つけました。これは、私たちが望んでいること、およびあなたが求めていることを正確に実行するものでしたが、プロジェクトに実装するには遅すぎました。私は個人的な経験に基づいてコメントすることはできませんが、レビューで高く評価されているようで、非常に強力で柔軟なようです。

Chameleon detects:

★ Browser (IE v6, FF, iPhone, iPad, tablet, mobile etc; using Categorizr for smart detection)
★ Browser language
★ Date, time, time of day
★ Page type (article, category, front page etc)
★ Virtuemart page types, cart contents, categories & coupons
★ Hikashop page types, categories and specific items
★ K2 page types, categories, authors and more
★ User id and group, logged-in and logged-out users
★ Article id, section, category and tags (J3.x)
★ Component
★ Domain/sub-domain of your site
★ Page URL and HTTP referrer
★ Random probability
★ GeoIP detection of the guest’s city/country
★ All "children" of a given menu or menu item
★ Anything else you can detect with a snippet of PHP.
2
GDP