私はdrupalでカスタムフィールドを作成しようとしています。7. wysiwygフィールド以外のevrythingはうまく動作します。 私はWYSIWYG要素を構築するために、次のコードを使用しています:drupalのカスタムフィールドのWYSIWYG 7
$element['my_body'] = array(
'#title' => t('Editor'),
'#type' => 'text_format',
'#tree' => true,
'#rows' => 20,
'#format' => 'filtered_html',
);
その(通常のテキストエリア)をWYSIWYGていない場合は、すべての罰金行く救うが、私はTEXT_FORMATに変更した後、Drupalは配列としてフィールドの値を取得2つのキー(値とフォーマット)で、drupalがフィールドの値を保存している間はエラーになります。 私が理解している限り、drupalは2つの異なる値(body_filterとformat)を持ち、2つのキー(値とフォーマット)を持つbody_filter配列ではありません。
誰でも私にこの問題を解決するヒントを与えることができます(googleとdrupal.orgに関連するものは見つかりません)。
ありがとうございました。
私がそれを理解する限り、Drupalは実際にデータを自動的に保存します。 Drupalは、フォーム内のフィールド名に対してdbフィールド名(module.installファイルで作成されたもの)をチェックすることによって、「魔法」を実行します。 これはfield_sql_storage_field_storage_write()で発生しています –
ああ、フィールドを作成しています。はい、これらの値はスキーマに従って自動的に保存されます。 *しかし*、あなたはhttp://api.drupal.org/api/drupal/modules--field--field.api.php/function/hook_field_presave/7を実装してそれを変更し、配列を2つの別々の値に分割することができます。あなたのスキーマに従って。また、text.moduleがどのように同じ "問題"を持っているかを見ることができますが、私はそれを理解することができませんでした。 – Berdir