0

に基づく特別なコンボボックスを使用するフィールドが必要なカスタムノードタイプがありますlist_text。タイプを選択するlist_textと、通常、選択可能なテキストの静的リストを入力できますが、このリストは動的、つまり、の結果に基づいて作成する必要がありdb_queryます。Drupal 7を使用してこれを行うための最良の方法は何ですか?

明確にするための簡単な例:このカスタムタイプXのノードには、別のノードを指すフィールドが含まれているため、タイプXのノードが作成されるたびに、他のすべてのノードを含むコンボボックスが必要になります。

(最善の解決策は、ノードの作成中にのみコンボボックスを表示し、編集中には表示しないことです。ただし、編集中にコンボボックスが表示された場合は、コンボボックスを使用することもできます。)

options_select私は自分のデータ型を定義し、それに応じて実装することでカスタマイズしようとしましたhook_options_list。コンボボックスは作成中に正しい値で表示されましたが、保存できませんでした。何が問題だったのかわかりませんが、最初の送信時に別のテーマに変更され、もう一度試してみると、内部サーバーエラー。フィールドの完全に新しいデータ型を定義することで、私はまったく正しい方向に進んでいますか?確かにもっと簡単な方法があるに違いありませんか?

4

2 に答える 2

0

新しいデータ型は必要ないという点で正しいです。これを行う方法についての良いチュートリアルがあります。特にD7用ではありませんが、まだ適用できないものはあまり見当たりませんでした。特にD7でそれを行うためのより良い方法があるかもしれませんが、もしそうなら私もそれを知りたいです:)

于 2011-01-18T04:23:33.503 に答える
0

allegroconmoltoによってリンクされたチュートリアルは、正しい方法で私を送ってくれました。それをありがとう。

これを行う簡単な方法は次のとおりです:チュートリアル

基本的に、私が想定したように、それは一般的な問題であり、したがって、それに対する簡単な解決策がwebform今ではモジュールに含まれていました。hook_webform_select_options_infoコールバックメソッドを登録するために使用できるを提供します。コールバックメソッドは、Webフォームの対応するオプション選択が表示されるたびに呼び出されるため、adbqueryまたはその他の結果を簡単に入力できます。チャームのように機能し、実装にほとんど時間がかかりません。

于 2011-01-18T17:54:02.803 に答える