0

Drupal を使って数週間しか経っていないのに、再発する問題を思いつきました。最適な解決策はありません。そのため、ここにいる誰かがベスト プラクティスの指針を示してくれることを願っています。

私が持っているのはregionnode.tpl.php の内部で、 type の 2 つの異なるCCKフィールドからコンテンツを表示するブロックが取り込まれていますnode_reference。これは、単一のノードを表示するときにうまく機能します。を使用する必要があるときに問題が発生しますview

たとえば、ニュース一覧と 1 つのニュース項目ビューがあるとします。単一のニュース項目を表示するときは、ニュース ノードnode_referenceフィールドを使用して、サイドバーに表示したい資料を参照できますが、ニュース リスト ビューでは、ノードを個別に参照したいと考えています。これを解決するためのベストプラクティスは何ですか?

いくつかアイデアがありますが、どれも論理的な選択とは思えません。どうしますか?

4

3 に答える 3

1

私の質問を読んだ後、それがかなりひどく説明されていることに気付いたので、もう一度やり直して、どのように解決したかについても説明します。

問題
通常の「ページ」(単一のノードのみを表示する場合) では、バナーに似たものを表示するサイドバーがあります。バナーはランダムであるか、常にサイドバーに表示する必要がある 1 つまたは複数を選択できます。これは、CCK の node_reference フィールドを使用して、単一のノードを表示するときに簡単に解決できます。問題は、ニュース一覧など、複数のノードを表示するビューを使用する場合です。

解決策
私の場合、デフォルトの Page コンテンツ タイプに追加のフィールドを作成することで、これを解決できました。これらのフィールドはviewdisplayおよび と呼ばれていargumentsました。次に、tpl.phpページ内にニュース一覧ビューを埋め込みました。それをニュースと呼びましょう。このようにして、私は大きな柔軟性を得て、ニュースページがメニュー構造のどこにあるかを知るのにも役立ちます.

最終的なコメント
この方法で欠点や危険性があるかどうかはまだわかっていませんが、もしあれば、遠慮なく私と共有してください :)

于 2010-04-07T07:35:51.613 に答える
1

あなたの問題についての私の理解は、ブロックをビューページに表示したくないということであり、ブロック情報をノードと一緒にインラインで表示したいということです。

最初の部分は簡単です。ブロックの表示設定を変更して、ビューがあるパスに表示されないようにすることができます。

2 番目の部分は、ビューの設定方法によって異なります。フィールドを使用している場合は、node_reference のフィールドを追加するだけで表示されます。ノード ビューを使用している場合は、テンプレートを上書きし、ノード参照フィールドを表示するテンプレートを作成する必要があります。

さらに説明が必要な場合は、コメントしてください。明確にすることができます

于 2010-02-18T08:13:27.600 に答える
0

ブロックを作成し、データベースを直接参照する独自のモジュールを作成する傾向があります。次に、パネル内にブロックを配置しました。これは、ビューや cck フィールドなどを使用するよりも柔軟性があるようです...

于 2010-02-18T22:41:49.347 に答える