Tôi đang cố gắng cung cấp cho các biên tập viên nội dung của mình khả năng thay đổi một biến cho một mô-đun tùy chỉnh. Biến này có thể có html. Tôi không muốn yêu cầu họ có bất kỳ kiến thức nào về HTML, vì vậy tôi muốn cung cấp cho họ khả năng có wysiwyg của chúng tôi (CKEditor do mô-đun CKEditor cung cấp) theo ý của họ. Tuy nhiên, như bây giờ, dữ liệu không lưu dưới dạng một biến. Tôi đã đọc ở một vài nơi (Do, stackexchange) rằng tôi cần phải làm một cái gì đó như thế này:
$form['foo']['bar'] = array(
'#type' => 'text_format',
'#title' => 'Bar',
'#definition' => 'Foo Bar',
'#default_value' => variable_get('bar', ''),
'#weight' => 1,
'#format' => 'filtered_html',
'#required' => FALSE,
);
Điều này không hoạt động ngoài luồng với system_sinstall_form ($ form). Một var_dump hiển thị điều này sau khi lưu:
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
Từ đó, bạn có thể thấy rằng 'định dạng' lưu chính xác, nhưng 'giá trị' thì không. Tôi đang thiếu gì?
Ngoài ra, nếu có một cách tốt hơn để làm điều này, xin vui lòng cho biết.