Sto tentando di dare ai miei editor di contenuti la possibilità di cambiare una variabile per un modulo personalizzato. Questa variabile può avere HTML. Non voglio richiedere loro di avere alcuna conoscenza dell'HTML, quindi voglio dare loro la possibilità di avere a disposizione il nostro wysiwyg (CKEditor fornito dal modulo CKEditor). Tuttavia, a partire da ora, i dati non vengono salvati come variabile. Ho letto in alcuni punti (Do, stackexchange) che avevo bisogno di fare qualcosa del genere:
$form['foo']['bar'] = array(
'#type' => 'text_format',
'#title' => 'Bar',
'#definition' => 'Foo Bar',
'#default_value' => variable_get('bar', ''),
'#weight' => 1,
'#format' => 'filtered_html',
'#required' => FALSE,
);
Questo non funziona immediatamente con un system_settings_form ($ form). Un var_dump lo mostra dopo un salvataggio:
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
Da questo, puoi vedere che 'format' salva correttamente, ma 'value' no. Che cosa mi manca?
Inoltre, se esiste un modo migliore per farlo, ti preghiamo di comunicarlo.