Ich versuche, meinen Inhaltseditoren die Möglichkeit zu geben, eine Variable für ein benutzerdefiniertes Modul zu ändern. Diese Variable kann HTML haben. Ich möchte nicht, dass sie HTML-Kenntnisse haben, und möchte ihnen daher die Möglichkeit geben, unser wysiwyg (CKEditor, bereitgestellt vom CKEditor-Modul) zur Verfügung zu haben. Derzeit werden die Daten jedoch nicht als Variable gespeichert. Ich habe an einigen Stellen (Do, stackexchange) gelesen, dass ich so etwas tun musste:
$form['foo']['bar'] = array(
'#type' => 'text_format',
'#title' => 'Bar',
'#definition' => 'Foo Bar',
'#default_value' => variable_get('bar', ''),
'#weight' => 1,
'#format' => 'filtered_html',
'#required' => FALSE,
);
Dies funktioniert nicht sofort mit einem system_settings_form ($ form). Ein var_dump zeigt dies nach dem Speichern:
array (size=7)
'#type' => string 'text_format' (length=11)
'#title' => string 'Bar' (length=7)
'#definition' => string 'Foo Bar' (length=74)
'#default_value' =>
array (size=2)
'value' => string '' (length=0)
'format' => string 'filtered_html' (length=9)
'#weight' => int 1
'#format' => string 'filtered_html' (length=9)
'#required' => boolean false
Daran können Sie erkennen, dass "Format" korrekt gespeichert wird, "Wert" jedoch nicht. Was vermisse ich?
Auch wenn es einen besseren Weg gibt, sagen Sie es bitte.