J'essaie de donner à mes éditeurs de contenu la possibilité de modifier une variable pour un module personnalisé. Cette variable peut avoir du html. Je ne veux pas leur demander d'avoir une connaissance du HTML, je veux donc leur donner la possibilité d'avoir notre wysiwyg (CKEditor fourni par le module CKEditor) à leur disposition. Cependant, pour l'instant, les données ne sont pas enregistrées en tant que variable. J'ai lu à quelques endroits (Do, stackexchange) que je devais faire quelque chose comme ça:
$form['foo']['bar'] = array(
'#type' => 'text_format',
'#title' => 'Bar',
'#definition' => 'Foo Bar',
'#default_value' => variable_get('bar', ''),
'#weight' => 1,
'#format' => 'filtered_html',
'#required' => FALSE,
);
Cela ne fonctionne pas immédiatement avec un system_settings_form ($ form). Un var_dump le montre après une sauvegarde:
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
De là, vous pouvez voir que «format» enregistre correctement, mais pas «valeur». Qu'est-ce que je rate?
De plus, s'il existe une meilleure façon de le faire, veuillez le dire.