web-dev-qa-db-ja.com

Nodeリファレンスオートコンプリートビューの問題

まず、不適切な用語を使用した場合の謝罪-私はまだDrupal初心者です!

Drupal 6とCCK、ビュー、日付、カレンダー、リンク、場所、GMapを使用してバンドのWebサイトを作成しています。ここには、GigとVenueの2つのコンテンツタイプの懸念があります。

「Venue」コンテンツタイプには、すべての住所情報を格納するLocationフィールドがあります。また、 "Venue Website"(field_venue_website)など、他のフィールドもあります。

[Create Gig]ページのオートコンプリートフィールドで、[Venue]コンテンツタイプから既存のベニューを検索し、オートコンプリートドロップダウンリストに次の形式でベニューを表示します。

[場所名]、[市]、[国]

しかし、できれば次のように、Gigページで利用できるように、より多くの情報を抽出したいと思います。

[場所の名前] <-できれば、会場のページへのリンクとして[ストリート] [追加] [市] [州/県] [郵便番号] [国] [会場のウェブサイト] <-これは別のフィールドであることを忘れないでください。場所フィールドからではありません。

次のようにして、目標を部分的に達成しました。

  • タイプNode referenceの[会場]フィールド(field_gig_venue)を作成しました。
  • 次のようにフィールドを設定します。
    • オートコンプリートマッチング:含む
    • テキストフィールドのサイズ:100
    • 必須:オフ(後で変更される場合があります)
    • 値の数:1
    • ノードの選択に使用されるビュー:venue_search
  • 次の設定でビュー(venue_search)を作成しました:
    • 行スタイル:フィールド
    • インラインフィールド:
    • 場所の名前
    • 場所:市
    • 場所:国
    • セパレータ:、
    • 空のフィールドを非表示にする:はい
    • 関係:
    • コンテンツ:会場
    • フィールド:
    • 場所の名前
    • 場所:市
    • 場所:国
    • ノード:タイトル(表示から除外:はい)
    • フィルター:
    • ノード:タイプ=会場

これにより、必要に応じてオートコンプリートドロップダウンリストが表示されます。提出すると、結果は会場のページへのリンクとして[ロケーション名]になります。

しかし、オートコンプリートで認識されるのは会場の[場所名]だけです。たとえば、次の2つの会場があるとします。

ケンティッシュタウンフォーラム、ロンドン、イギリス

タンブリッジウェルズフォーラム、ケント、イギリス

「フォーラム」と入力し始めると、上記のようなドロップダウンの候補リストが表示されます。すごい!しかし、「UK」や「London」と入力しても何も表示されません。

それが役立つ場合は、ビューをプレビューしたときに生成されるクエリを次に示します。

SELECT node.nid AS nid,
   location.name AS location_name,
   location.city AS location_city,
   location.country AS location_country,
   node.title AS node_title
 FROM drupal_node node 
 LEFT JOIN drupal_content_type_gig node_data_field_gig_venue ON node.vid = node_data_field_gig_venue.vid
 LEFT JOIN drupal_node node_node_data_field_gig_venue ON node_data_field_gig_venue.field_gig_venue_nid = node_node_data_field_gig_venue.nid
 LEFT JOIN drupal_location_instance location_instance ON node.vid = location_instance.vid
 LEFT JOIN drupal_location location ON location_instance.lid = location.lid
 WHERE node.type in ('venue')

ここに私の質問があります:

  1. オートコンプリートが市や国でも機能するようにするにはどうすればよいですか?
  2. 最終ページ(アドレスブロックなど)で必要な出力を取得するための最良の方法は何ですか?他の関連フィールドを追加し、それらをビューの表示から除外できると想定し、それらを使用できるようにします。ただし、どのように使用すればよいですか?データが事前にフォーマットされた単一のフィールド?各値のフィールド?
  3. 次に、ビューから収集したデータをフィールドに取得するにはどうすればよいですか?

どんな助けでも大歓迎です!前もって感謝します!

[編集]

後述するように、私は何が起こっているのかを発見しました:

オートコンプリートフィールドは、入力されたテキストを受け取り、「会場」コンテンツタイプのどのノードタイトルがこのテキストに一致するかを確認します。次に、私のビューを使用して結果を表示し、フォーマットします。これは説明する画像です:

http://img215.imageshack.us/img215/3539/autocomplete.jpg

入力されたテキストをチェックするとき、ノードのタイトルをチェックする代わりに、なぜビューを無視するのですか?

2

私はあなたの質問に対する代替案を持っています。モジュール Automatic Nodetitles を使用して、コンテンツタイプのCCKフィールドから[Location name], [City], [Country]の形式で会場のタイトルを自動的に作成できます。つまり、場所名に追加のテキストフィールドを使用する必要があり、3つのフィールドを組み合わせるためにタイトルが自動的に作成されます。

このソリューションは、都市と国が会場コンテンツタイプタイトルを使用するすべての場所に表示されることを意味します。それが必要なものに適合するかどうかを判断する必要があります。

0
Mad Scientist
  1. Venueで、必要なフィールドのコンテンツを使用して計算フィールドを作成し、そのフィールドを使用できます。

  2. &3.ノード参照を取得したら、ギグのテンプレートを使用して、必要なフィールドを表示できます。または、ビューを使用することもできます。

0
sharpbites