Điểm:0

Truyền đối số cho url iframe của entity_browser (phương thức)

lá cờ de

Tôi có một biểu mẫu Tôi có một trường thuộc loại Phạm vi Ngày, tôi cũng có một trường khác thuộc loại entity_browser(modal) với một tiện ích dạng xem lựa chọn.

Hành vi bình thường khi tôi nhấp vào Nút của trường trình duyệt thực thể, là mở phương thức, nếu chúng tôi kiểm tra mã, nó có thể thấy tương tự như sau:

<form 
   data-entity-browser-uuid="a9b7680318c9f1a1aca1abc308d8c6d0ac880b4a" 
   data-drupal-selector="entity-browser-event-browser-form" 
   action="/entity-browser/modal/event_browser?uuid=a9b7680318c9f1a1aca1abc308d8c6d0ac880b4a&original_path=/node/add/activity" 
   method="post" 
   id="entity-browser-event-browser-form">....
</form>

Điều tôi đang cố gắng thực hiện là khi ngày được chọn, hãy chuyển các giá trị này làm đối số cho url iframe đại loại như sau:

<form 
   action="/entity-browser/modal/event_browser?uuid=a9b7680318c9f1a1aca1abc308d8c6d0ac880b4&aoriginal_path=/node/add/activity&start=12-02-2022&end=14-02-2022" 
....
</form>

Sau đó, từ chế độ xem, hãy lấy các giá trị này và lọc nội dung.

Những gì tôi có cho đến nay

Xem lại mã của mô-đun entity_browser, tôi thấy rằng lớp Phương thức (Drupal\entity_browser\Plugin\EntityBrowser\Display\Modal), là một phần của móc quy trình, điều này sẽ gửi một sự kiện mà một người có thể đăng ký.

Trên thực tế, tôi có thể thêm tham số vào đối số truy vấn trong đăng ký này, tôi đã mã hóa các giá trị dưới dạng thử nghiệm, nhưng chúng không hiển thị khi tôi làm mới biểu mẫu nơi tôi tạo nội dung chứa trường loại entity_browser.

Ví dụ:

chức năng công khai trênAlterEntityBrowserDisplayData(AlterEntityBrowserDisplayData $event) {
    if ($event->getBrowserID() === "event_browser") {
       $data = $event->getData();
     if (isset($data["query_parameters"]["query"])) {
        $data["query_parameters"]["query"]['start'] = '12-02-2022';
        $data["query_parameters"]["query"]['end'] = '14-02-2022';
        $event->setData($data);
      }
    }

  }

Nếu tôi có thể làm cho nó hoạt động, thì tôi phải tìm ra cách nào đó với ajax để tiếp tục thay đổi các giá trị này khi các giá trị trong trường ngày tháng thay đổi.

Tôi không biết nếu đây là cách tốt nhất để làm điều đó, tôi không biết bạn nghĩ gì.

Cập nhật

Đăng ký sự kiện đang hoạt động, tức là khi hiển thị biểu mẫu nội dung, các tham số mới sẽ được thêm vào url iframe.

Điều duy nhất mà tôi sẽ thiếu là cập nhật các tham số qua ajax khi các giá trị của trường ngày thay đổi.

Tôi có thể thêm lệnh gọi lại ajax vào trường ngày để lắng nghe khi giá trị thay đổi, tôi thấy có một trường nhập loại bị ẩn ở đó dường như có các giá trị mà entity_browser sẽ sử dụng. Vấn đề là nó không có id để thay thế các giá trị.

Ví dụ:

<input 
   data-drupal-selector="edit-field-event-entity-browser-entity-browser-path" 
   type="hidden" 
   name="field_evento[entity_browser][entity_browser][path]" 
   value="/entity-browser/modal/event_browser?uuid=1d0cbf414d0af02542405648750ccf4d157438fb&original_path=/node/add/activity&start=12-02-2022&end=14-02-2022"
>

Vấn đề là nó không có id để thay thế các giá trị.

Có thể làm gì trong những trường hợp này?

Điểm:0
lá cờ cn
  1. Tôi khuyên bạn nên tạo một tiện ích Tham chiếu thực thể tùy chỉnh, tiện ích này sẽ mở rộng tiện ích mà bạn đang cố gắng thay đổi.
  2. Sau đó, sử dụng trạng thái biểu mẫu Drupal để đặt trường tham chiếu thực thể của bạn thành điều kiện và chỉ hiển thị trường đó nếu phạm vi ngày được chọn.
  3. Thêm mã JS cập nhật các giá trị đã gửi (thêm ngày đã chọn) khi nhấn nút mở trình duyệt thực thể.
  4. Trong hook_form_entity_browser_media_entity_browser_modal_form_alter hoặc hook_inline_entity_form_entity_form_alter hoặc hook_field_widget_WIDGET_TYPE_form_alter làm công việc lọc.

Đă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.