Tôi chỉ gặp phải vấn đề này, nhưng tôi không muốn sử dụng mô-đun beta (Định dạng tốt hơn) và tôi phải mở rộng chức năng và tự động hóa nó, để các cài đặt đó không bị mã hóa, nhưng được đặt từ văn phòng hỗ trợ .
Vì vậy, tôi đã làm như sau:
- Tôi đã thêm một cài đặt trên biểu mẫu Chỉnh sửa cài đặt của trường mà tôi cần định dạng văn bản mặc định cho
- Tôi đã sử dụng mã được cung cấp ở trên và sửa đổi nó một chút để nó được đặt định dạng văn bản mặc định là được lưu trong cài đặt của trường
- Tôi đã sử dụng Tính năng để xuất loại nội dung để tôi giữ các cài đặt của mình trong mã
Trường Chỉnh sửa phần Cài đặt
/**
* Implements hook_form_FIELD_UI_FIELD_EDIT_FORM_alter().
*/
function MY_MODULE_form_field_ui_field_edit_form_alter(&$form, &$form_state) {
if ($form['#field']['type'] == 'text_long') {
$instance = $form['#instance'];
// Fieldset for Default Formats settings.
$filters = filter_formats();
$options = array('_none' => t('None'));
foreach ($filters as $key => $filter) {
$options[$key] = $filter->name;
}
$form['instance']['settings']['default_filter'] = array(
'#type' => 'fieldset',
'#title' => t('Default Filter Settings'),
'#collapsible' => FALSE,
'#collapsed' => FALSE,
);
$form['instance']['settings']['default_filter']['wysiwyg_profile'] = array(
'#type' => 'select',
'#title' => t('Select a default format for this field'),
'#description' => t('The selected text format will influence the button and plugin configuration of WYSIWYG.'),
'#default_value' => isset($instance['settings']['default_filter']['wysiwyg_profile'])
? $instance['settings']['default_filter']['wysiwyg_profile'] : '_none',
'#options' => $options,
);
}
}
Vì vậy, phần mã này đủ rõ ràng ... nó thêm một bộ trường và thêm một danh sách chọn trong đó, được điền bởi các cấu hình WYSIWYG hiện có trên trang web của bạn. Các cấu hình WYSIWYG đó được gắn với các định dạng văn bản, vì vậy khi ai đó chọn định dạng / bộ lọc văn bản, nó thực sự chọn cấu hình được định cấu hình.
Bây giờ phần 2 là cùng mã được cung cấp ở trên bởi một người dùng khác và được lấy từ mô-đun Định dạng Tốt hơn.
/**
* Implements hook_element_info_alter().
*
* Sets the text format processor to a custom callback function.
* This code is taken from the Better Formats module.
*/
function MY_MODULE_element_info_alter(&$type) {
if (isset($type['text_format']['#process'])) {
foreach ($type['text_format']['#process'] as &$callback) {
if ($callback === 'filter_process_format') {
$callback = 'MY_MODULE_filter_process_format';
}
}
}
}
/**
* Callback for MY_MODULE_element_info_alter().
*
* Alters the default text format of fields.
*/
function MY_MODULE_filter_process_format($element) {
$element = filter_process_format($element);
// Configuration array that specifies the fields that need to be altered.
$field_info = field_info_instance($element['#entity_type'],
$element['#field_name'],
$element['#bundle']);
// Change input format to configured value.
if (isset($field_info['settings']['default_filter']['wysiwyg_profile']) && $field_info['settings']['default_filter']['wysiwyg_profile'] != '_none') {
$element['format']['format']['#default_value'] = $field_info['settings']['default_filter']['wysiwyg_profile'];
}
return $element;
}
Vì vậy, các cài đặt được lưu, do đó Tính năng Xuất có thể hoặc bất kỳ phương pháp nào bạn sử dụng để lưu cài đặt của mình.
Tôi hy vọng điều này sẽ giúp bất cứ ai khác gặp phải vấn đề này!