2011-01-23 8 views
0

Drupalサイトの既定のテーマがあります。ここで私は、ビュー、ブロックなどを作成し、私が一般向けにしたい方法ですべてのスタイルをとった。さて、管理者として私は全く別のテーマを持っていたいと思います。問題はありません。私はテーマディレクトリに2番目のテーマを作成し、管理者ユーザーのテーマ設定を2番目のテーマに切り替えます。しかし、第2のテーマで全く異なるコンテンツ(ビュー、ブロックなど)を表示したい場合はどうでしょうか。 例としてフロントページを使用しましょう。 私のフロントページには、ビューを使ったスライドショーがあります。このビューは、私が使っているテーマに関係なく、明らかにフロントページに表示されます。私の最初のページでは、スライドショーよりも2番目のテーマのビュー(ブログ記事のリストなど)を全く違う方法で表示することができます。最初のテーマに使用しているビューは?異なるDrupalテーマで表示する方法

答えて

1

テーマごとにブロックが設定されるため、最も簡単な方法はブロック内にビューを配置することです。異なるテーマは完全に異なるブロック構成を持つことができます。このアプローチの潜在的な問題は、ブロックでホストされているビューでうまくいくために引数のようなものを取得するためにはもう少し作業が必要だということです。

あなたのために働く別のオプションは、同じ視点で異なるテーマをテーマにすることです。ビューはDrupalのテーマレイヤーでうまくいき、特定のビューまたはビュー表示用のテンプレートファイルを作成できます。ビューの管理ページでテーマ情報のリンクをチェックすると、ビューのオーバーライドがすべて表示されます。もちろんこれは、あなたが見せたいものの間に共通の要素がいくつかあると仮定しています。

3つ目のオプションは、1ページに複数のビューを表示し、権限システムを使用して、一度に1つしか表示されないようにすることです。私は過去にこのアプローチを使用しましたが、要件が変更されたときに複数のビューに変更を複製する必要があったため、管理がやや面倒になりました。

+0

私の必要と答えによれば、権限は主に私が今注目しているもののようです。ありがとう。 –

0

異なるパス上で発生する管理テーマについての質問で、ブロックにはパスの表示設定があります。ビューは単にページに表示されるのではなく、ブロック内にある場合は処理され、そうでない場合は処理されます。

フロントについては、2つのテーマがあり、ユーザーが切り替えることができる場合は、自分の「ルーティングコード」が必要です。これはサポートされていません。つまり、テーマに応じて関連ブロックを呼び出す独自のブロックが必要です。

+0

「adminテーマ」という言葉は、ほとんどの場合、drupalの管理ページのテーマを誤解を招くようなものです。それは私が意味するものではありません。私たちは2つのテーマを持っています。テーマ1はフロントページにスライドショーを表示しますが、テーマ2がアクティブになっている場合は、フロントページには代わりにブログ投稿のリストが表示されます。 –

+0

ビューについては、それらはページです - 私はそれらの設定にパスを与えました。 –

0

この縫い目は、かなり新しい2つの非常に強力なモジュールの不思議なアプリケーションのようです。

コンテキストからhttp://drupal.org/project/contextスペースと一緒に - http://drupal.org/project/spaces

または

パネルhttp://drupal.org/project/panels

どちらも、あなたが出力を変更するページのコンテキストを設定することができるような概念を持っていますさまざまな基準に基づいています。あなたの場合、条件はページを閲覧しているユーザーの役割です。 CurtainDogが提案したトリックよりも扱いにくく、どちらも非常に有効なアプローチです。これらの2つのモジュールの利点は、組織と選択プロセスをはるかに単純明快にすることです。 パネルには、インターフェイスでさらに多くのオプションがありますが、コードレベルで少し習熟しています。コンテキスト/スペースは、プログラミングレベルでの操作が非常に簡単ですが、ほとんどのタスクを実行するためにはより多くのコーディングが必要です。私はいずれかにコミットする前に両方を試すことをお勧めします。両方の素晴らしいディスカッションのためにthis podcastを聞いてください。

+0

ありがとう!私はパネルに精通していましたが、文脈やスペースは私には新しいものです。非常に強力なモジュール! –

関連する問題