Estou tentando dar aos meus editores de conteúdo a capacidade de alterar uma variável para um módulo personalizado. Essa variável pode ter html. Não quero exigir que eles tenham conhecimento de HTML, então quero que eles tenham a capacidade de ter nosso wysiwyg (CKEditor fornecido pelo módulo CKEditor) à sua disposição. No entanto, a partir de agora, os dados não são salvos como uma variável. Eu li em alguns lugares (Do, stackexchange) que eu precisava fazer algo assim:
$form['foo']['bar'] = array(
'#type' => 'text_format',
'#title' => 'Bar',
'#definition' => 'Foo Bar',
'#default_value' => variable_get('bar', ''),
'#weight' => 1,
'#format' => 'filtered_html',
'#required' => FALSE,
);
Isso não funciona imediatamente com um system_settings_form ($ form). Um var_dump mostra isso após um salvamento:
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
Com isso, você pode ver que 'formato' salva corretamente, mas 'valor' não. o que estou perdendo?
Além disso, se houver uma maneira melhor de fazer isso, informe.