Điểm:0

Gửi kết quả hook pre process_views_view đến biểu mẫu hoặc dịch vụ tùy chỉnh

lá cờ pe

Tôi đang phát triển một tính năng cho phép người dùng ẩn danh nhận được qua email kết quả của một khía cạnh + API tìm kiếm.

Các khía cạnh và API tìm kiếm hoạt động hoàn hảo. Mô-đun tùy chỉnh cũng cho phép gửi email. Tôi cũng đã tạo một biểu mẫu tùy chỉnh (FormAPi) để cho phép người dùng gửi thư và gửi dữ liệu khi gửi.

Để có kết quả tìm kiếm khía cạnh, tôi sử dụng tiền xử lý_views_view Trong .module tập tin

hàm my_module_pre process_views_view__VIEW_ID(mảng &$biến): void {
  foreach ($variables['view']->kết quả là $result) {
    $node = $result->_object->getEntity();
    $title = $node->get('title')->getValue()[0]['value'];
    $custom_field = $node->get('custom_field')->getValue()[0]['value'];
  }
}

Mỗi khi một khía cạnh được sửa đổi, tôi có thể xem kết quả bằng một bãi rác() và mọi thứ đều ổn. Có thể đây không phải là cái móc phù hợp trong trường hợp của tôi nhưng nó trả về những gì tôi mong đợi.

Tuy nhiên, tôi không biết cách chuyển kết quả của hook này sang biểu mẫu tùy chỉnh được chèn vào khối tùy chỉnh trên trang có chế độ xem kết quả thuộc tính.

Khi người dùng gửi biểu mẫu, tôi cần biết hook đã trả về trước đó trong SendSearchForm() là gì

hàm công khai submitForm(mảng &$form, FormStateInterface $form_state) {

        // email do người dùng nhập
        $email = $form_state->getValue('email');
        // gửi email nhưng cũng cần gửi kết quả my_module_pre process_views_view__VIEW_ID
        $this->sendEmail($email, $facets_result);
    }

Bạn có đề xuất nào để thực hiện việc này đúng cách với Drupal không?

CHỈNH SỬA: Tôi đã thấy hơn những gì tôi có thể sử dụng chức năng drupal_static. Nó là một ý tưởng tốt ?

Kevin avatar
lá cờ in
Đây không phải là những gì móc tiền xử lý dành cho (gọi và giao tiếp với các chức năng/phương thức khác). Tất cả những gì bạn có thể làm là đặt biến cấu hình hoặc mục bộ đệm để lưu trữ mục này, nhưng có thể sẽ không chính xác 100% vì bạn không có nhiều cách để phân biệt người dùng ẩn danh này với người dùng ẩn danh kia. Có thể lưu trữ nó trong cửa hàng tạm thời của người dùng.. không chắc chắn.
lá cờ pe
@Kevin Cảm ơn bạn đã bình luận. Thật vậy, tôi cũng nhận ra rằng hooks không dành cho điều đó. Vì hook trả về chính xác những gì tôi muốn, tôi đã cố gắng sử dụng nó nhưng tôi phải tìm ra thứ khác. Có thể lập trình chạy tìm kiếm do người dùng thực hiện bằng cách truy xuất các tham số tại thời điểm gửi biểu mẫu.
lá cờ pe
@Kevin Tôi đã làm được những gì mình muốn bằng cách tìm nạp lựa chọn trong javascript. Tôi nghĩ rằng tôi sẽ xóa câu hỏi vì chủ đề không còn phù hợp nữa.

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