web-dev-qa-db-ja.com

2つの値を持つCCKフィールド?

1つの入力に対して2つの値をCCKフィールドに持たせる方法はありますか?

たとえば、「ナトリウム」というフィールドと、「190mg」と「8%」の2つの値というフィールドです。最初は量で、2番目は1日の値の%です。

そうでない場合、これを達成するための最良の方法は何ですか?

編集:

私が探している最良のソリューションは、フィールドグループのセットで、各行に3つの入力があることです。ラベル|値(必須)|値(オプション)-つまり、Sodium | 190mg | 8%

4
Kevin

CCK 3.0+の一部にすぎないCCKマルチグループオプションをご覧ください。この機能により、複数の基本フィールドを1つのフィールドグループに組み合わせることができます。これがどのようにして起こったかについてのlong履歴については http://drupal.org/node/119102 を参照してください。

CCK 3.0はまだAlphaでしか使用できないため、実際にそれを使用するための適切なドキュメントを見つけることができません。そのため、残念ながら、いくつか試してみる必要があります。

もう1つのオプションは、独自のCCKフィールドタイプを作成することです。この場合、1つのフィールドに複数の入力を作成しても問題はありません。結論としては、独自のカスタムフィールドを使用して確実にこれを達成できること、欠点はカスタムコードを記述していること(これは避けた方がいい)であり、CCK 3.0に組み込まれているマルチグループオプションほど柔軟ではないことです。

6
beeradb

つまり、ある方法で2つのcckフィールドを1つに結合したいのですか?

2つの別個のフィールド「sodium mg」と「sodium%」を使用し、計算フィールドを追加して、これら2つのフィールドの値を1つのフィールド、たとえば「ナトリウム値」に組み合わせることができます。

そのような計算されたフィールドを可能にする 計算されたフィールド モジュールに関するいくつかの詳細(プロジェクトページから):

計算フィールドは、コンテンツタイプにカスタムの「計算フィールド」を追加できる非常に強力なフィールドモジュールです。これらの計算されたフィールドには、PHPコードを介して定義した値が入力されます。他のフィールド、現在のユーザー、データベーステーブルなど、Drupalで利用可能なものを使用して名前を付けることができます。(まだパワー?:))また、計算されたフィールド値を他のコンテンツフィールドと共にデータベースに保存するか、ノードビュー中にその場で「計算」するかを選択できます。 (ただし、ビューを使用するにはデータベースに保存された値が必要です。)このフィールドは文字通りスイスアーミーナイフのフィールドです。したがって、PHPベースの値を調理してください!

2
30equals

何か不足している可能性がありますが、最も簡単なことは、文字列「Sodium | 190mg | 8%」全体をテキストフィールドに入力し、テーマレベルで値を解析して、必要なことをすべて実行することです。 、グラフの作成など。テキストフィールドの下に例を示し、問題を解決しました。アルファは必要ありません。

1
d3l3t3m3

必要なすべてのデータを単一のCCKフィールドに追加できますが、これをサポートするCCKタイプが必要です。

CCKを使用すると、データストアの形式(field_settings)、入力フォームの形式(ウィジェット)、フィールドのレンダリング方法(フォーマッター)を指定できます。

どのようにしたいかは明確ではありませんが、最も簡単な方法は、単一の入力/ストレージを作成し、カスタムフォーマッタを使用して、正規表現などに基づいて単一の値を2つとして表示することです。 。

ウィジェットを作成して、フィールドのカスタムフォームを作成し、データを保存する方法を説明することもできます。フィールドに複数の値が設定されている場合は、deltaを使用して値を区切ることができます。これには、CCKの内部動作に関する深い知識が必要ですが、データ制御が向上します。

これらすべてを行うためのドキュメントは非常に限られていますが、他のモジュールを見ると、それを行う方法についてのアイデアが得られます。

0
googletorp

Drupal 6でこれを達成できるようにするモジュールはマルチグループと呼ばれ、アルファリリースを持つCCK 3.xの一部です。このモジュールを使用すると、複数のフィールドを次に、CCKが複数値フィールドに使用するおなじみの「別の方法」でフィールドセットを表示します。

0
jhedstrom