Điểm:0

Cách thêm hộp kiểm bằng hook_field_widget_WIDGET_TYPE_form_alter()

lá cờ gb

Chạy Drupal 9 với mô-đun đoạn văn, đoạn văn có thể thu gọn và cài đặt đoạn văn jquery ui accordion. Tôi muốn sửa đổi biểu mẫu của các đoạn văn, cụ thể là nơi nó hiển thị các tệp riêng tư bằng cách thêm hộp kiểm 'Chuyển sang Công khai' bên dưới mỗi mô tả tệp (xem hình ảnh đính kèm).

Tôi đang sử dụng hook_field_widget_WIDGET_TYPE_form_alter(). Đây là mã ví dụ:

**
 * Triển khai hook_field_widget_WIDGET_TYPE_form_alter().
 */

 function sbn_field_widget_paragraphs_form_alter(&$element, &$form_state, $context) {
     if (!empty($element['subform']['field_private_files'])) {
         
# $element['subform']['field_private_files']['widget'][0]['#default_value']['switch'] = [
# '#type' => 'hộp kiểm',
# '#title' => t('Chuyển sang Công khai'),
# '#required' => SAI,
# '#default_value' => SAI,
# ];

     $element['subform']['field_private_files']['widget'][0]['#default_value']['switch'] = mảng(
        '#type' => 'hộp kiểm',
        '#title' => t('Chuyển sang chế độ công khai'),
        '#size' => 10,
        '#maxlength' => 255,
        '#giá_trị_mặc_định' => 1,
        '#required' => SAI,
        '#description' => '<p>' . t('Chuyển từ riêng tư sang công khai.') . '</p>',
    );
 
        // dsm($element);
     }
}

Tôi biết các phần tử mảng ở đó vì tôi đã sử dụng dsm để in ra toàn bộ biểu mẫu nếu ['subform']['field_private_files'] tồn tại:

   [field_private_files] => Mảng
        (
            [#type] => vùng chứa
            [#parents] => Mảng
                (
                    [0] => trường_body1
                    [1] => 7
                    [2] => biểu mẫu con
                    [3] => trường_body2
                    [4] => 0
                    [5] => biểu mẫu con
                    [6] => field_private_files_wrapper
                )

            [#attributes] => Mảng
                (
                    [lớp] => Mảng
                        (
                            [0] => trường--loại-tệp
                            [1] => trường--tên-trường-tệp-riêng
                            [2] => trường--tệp-tệp-chung
                            [3] => đoạn-nội-dung
                        )

                )

            [tiện ích con] => Mảng
                (
                    [0] => Mảng
                        (
                            [#title] => Tệp riêng tư
                            [#mô tả] => 
                            [#field_parents] => Mảng
                                (
                                    [0] => trường_body1
                                    [1] => 7
                                    [2] => biểu mẫu con
                                    [3] => trường_body2
                                    [4] => 0
                                    [5] => biểu mẫu con
                                )

                            [#required] => 
                            [#delta] => 0
                            [#trọng lượng] => 0
                            [#type] => Managed_file
                            [#upload_location] => riêng tư://
                            [#upload_validators] => Mảng
                                (
                                    [file_validate_size] => Mảng(1)
                                    [file_validate_extensions] => Mảng(1)
                                )

                            [#value_callback] => Mảng
                                (
                                    [0] => Drupal\file\Plugin\Field\FieldWidget\FileWidget
                                    [1] => giá trị
                                )

                            [# process] => Mảng
                                (
                                    [0] => Mảng(2)
                                    [1] => Mảng(2)
                                )

                            [#progress_indicator] => rung giật
                            [#extend] => 1
                            [#field_name] => field_private_files
                            [#entity_type] => đoạn văn
                            [#display_field] => 1
                            [#display_default] => 1
                            [#description_field] => 1
                            [#cardinality] => -1
                            [#default_value] => Mảng
                                (
                                    [id_mục_tiêu] => 436
                                    [hiển thị] => 1
                                    [mô tả] => Biên bản phiên điều hành 15-11-21
                                    [fids] => Mảng(1)
                                )

Mọi đề xuất về cách viết mã này để hộp kiểm sẽ được in dưới phần 'mô tả' của từng phần Tệp riêng tư của mỗi đoạn (có thể có nhiều đoạn được đính kèm với mỗi nút). Cảm ơn!

sonfd avatar
lá cờ in
Điều này nên được thực hiện với một tiện ích trường dành cho trường Tệp riêng tư, không phải thông qua biểu mẫu của đoạn văn.
SomebodySysop avatar
lá cờ gb
Bạn có thể chỉ ra một ví dụ về những gì bạn có ý nghĩa? Tôi đã mất rất nhiều thời gian chỉ để tìm ra cách sử dụng dấu móc với các đoạn văn! Không có nhiều tài liệu về cách sử dụng ngoài đó.
sonfd avatar
lá cờ in
https://www.drupal.org/docs/creating-custom-modules/creating-custom-field-types-widgets-and-formatters/create-a-custom-field-widget

Đăng câu trả lời

Hầu hết mọi người không hiểu rằng việc đặt nhiều câu hỏi sẽ mở ra cơ hội học hỏi và cải thiện mối quan hệ giữa các cá nhân. Ví dụ, trong các nghiên cứu của Alison, mặc dù mọi người có thể nhớ chính xác có bao nhiêu câu hỏi đã được đặt ra trong các cuộc trò chuyện của họ, nhưng họ không trực giác nhận ra mối liên hệ giữa câu hỏi và sự yêu thích. Qua bốn nghiên cứu, trong đó những người tham gia tự tham gia vào các cuộc trò chuyện hoặc đọc bản ghi lại các cuộc trò chuyện của người khác, mọi người có xu hướng không nhận ra rằng việc đặt câu hỏi sẽ ảnh hưởng—hoặc đã ảnh hưởng—mức độ thân thiện giữa những người đối thoại.