Запуск Drupal 9 с установленным модулем абзацев, сворачиваемыми абзацами и аккордеоном абзацев jquery ui. Я хочу изменить форму абзацев, особенно там, где она отображает личные файлы, добавив флажок «Переключиться на общедоступный» под описанием каждого файла (см. Прикрепленное изображение).
Я использую hook_field_widget_WIDGET_TYPE_form_alter(). Вот пример кода:
**
* Реализует hook_field_widget_WIDGET_TYPE_form_alter().
*/
функция sbn_field_widget_paragraphs_form_alter(&$элемент, &$form_state, $контекст) {
if (!empty($element['subform']['field_private_files'])) {
# $element['subform']['field_private_files']['widget'][0]['#default_value']['switch'] = [
# '#type' => 'флажок',
# '#title' => t('Переключиться на общедоступный'),
# '#required' => ЛОЖЬ,
# '#default_value' => ЛОЖЬ,
# ];
$element['subform']['field_private_files']['widget'][0]['#default_value']['switch'] = array(
'#type' => 'флажок',
'#title' => t('Переключиться на общедоступный'),
'#размер' => 10,
'#maxlength' => 255,
'#значение_по_умолчанию' => 1,
'#required' => ЛОЖЬ,
'#описание' => '<p>' . t('Переключиться с приватного на общедоступный.') . '</p>',
);
// dsm($element);
}
}
Я знаю, что элементы массива есть, потому что я использовал dsm для распечатки всей формы, если существует ['subform']['field_private_files']:
[field_private_files] => Массив
(
[#type] => контейнер
[#parents] => Массив
(
[0] => поле_тело1
[1] => 7
[2] => подчиненная форма
[3] => field_body2
[4] => 0
[5] => подчиненная форма
[6] => field_private_files_wrapper
)
[#атрибуты] => Массив
(
[класс] => Массив
(
[0] => поле--тип-файл
[1] => field--name-field-private-files
[2] => field--widget-file-generic
[3] => содержание абзацев
)
)
[виджет] => Массив
(
[0] => Массив
(
[#title] => Личные файлы
[#описание] =>
[#field_parents] => Массив
(
[0] => поле_тело1
[1] => 7
[2] => подчиненная форма
[3] => field_body2
[4] => 0
[5] => подчиненная форма
)
[#обязательно] =>
[#дельта] => 0
[#вес] => 0
[#type] => управляемый_файл
[#upload_location] => личное://
[#upload_validators] => Массив
(
[file_validate_size] => Массив (1)
[file_validate_extensions] => Массив (1)
)
[#value_callback] => Массив
(
[0] => Drupal\файл\плагин\поле\виджет поля\виджет файла
[1] => значение
)
[#процесс] => Массив
(
[0] => Массив(2)
[1] => Массив(2)
)
[#progress_indicator] => пульсирующий
[#расширенный] => 1
[#field_name] => field_private_files
[#entity_type] => абзац
[#display_field] => 1
[#display_default] => 1
[#description_field] => 1
[#мощность] => -1
[#default_value] => Массив
(
[целевой_id] => 436
[отображение] => 1
[описание] => Протокол исполнительной сессии 11-15-21
[fids] => Массив(1)
)
Любые предложения о том, как закодировать это, чтобы флажок печатался под «описанием» каждого раздела «Частные файлы» каждого абзаца (к каждому узлу может быть несколько абзацев). Спасибо!