Làm cách nào để chuyển hướng truy vấn bộ lọc bị lộ sang trang kết quả lượt xem nằm trong trang bảng điều khiển khác?


8

Thiết lập của tôi: Drupal 7.2, Bảng 7.x-3.0-alpha3, Lượt xem 7.x-3.0-beta3, bộ công cụ Chaos 7.x-1.0-beta1

Nói rằng tôi muốn tạo một trang web thư mục trái cây. Trong chế độ xem, tôi có một khung nội dung "trái cây" với các bộ lọc được hiển thị dựa trên phân loại "màu". Trang web này được cho là có hai trang bảng điều khiển. Trang bảng điều khiển đầu tiên chỉ hiển thị hộp bộ lọc được hiển thị "tìm kiếm một loại trái cây" với danh sách thả xuống cho "màu" và nút tìm kiếm. Khi chọn từ danh sách thả xuống và nhấp vào nút tìm kiếm, người dùng có nghĩa vụ được chuyển hướng đến trang bảng điều khiển thứ hai bao gồm ngăn nội dung của chế độ xem hiển thị danh sách các loại trái cây phù hợp với bộ lọc (màu).

Vấn đề là: hộp bộ lọc bị lộ trên trang đầu tiên sẽ không chuyển hướng đến trang kết quả sau khi nhấp vào nút áp dụng. Làm cách nào để thiết lập chế độ xem và bảng để đạt được điều này?

Câu trả lời:


7
function hook_form_alter(&$form, &$form_state, $form_id) {  
  if ($form_id=='views_exposed_form') {
    global $base_url;
    $form['#action'] = $base_url.'/path_that_you_want'; 
  }
}

Điều này hoạt động tốt, nhưng thay vì sử dụng $ base_url, tôi nghĩ có lẽ bạn nên sử dụng url('path_that_you_want').
John Fiala

1
Tôi đã thử điều này nhưng không thành công. Thực tế, thuộc tính 'hành động' của tôi nói một điểm đến khác. Làm thế nào tôi có thể sửa lỗi này?
sokratis

Xin chào, tôi thêm mã này vào đâu, xin vui lòng cho tôi biết Cảm ơn
Nhà phát triển React

0

Tôi không chắc có cách nào "đúng" hay không nhưng tôi đã thực hiện điều này bằng cách viết hook_form_alter cho biểu mẫu bộ lọc được hiển thị để thay đổi đích.

Không lý tưởng, nhưng tôi đã nhận được kết quả tôi cần.


Làm thế nào bạn làm điều này? Bạn có thể vui lòng gửi mã của bạn?
Michiel

0

Giải pháp đơn giản nhất là

  • Tạo trang xem
  • Tạo chế độ xem phơi sáng
  • Dưới Nâng cao> hình thức tiếp xúc. Đặt "biểu mẫu được hiển thị trong khối: Có"
  • Thêm khối "Biểu mẫu phơi bày: ..." vào trang đầu được yêu cầu.

0

Giải pháp đơn giản nhất là Tạo trang chế độ xem Tạo chế độ xem hiển thị Dưới Nâng cao> biểu mẫu được hiển thị. Đặt "biểu mẫu được hiển thị trong khối: Có" Thêm khối "Biểu mẫu được hiển thị: ..." vào trang trước được yêu cầu.

Chính thức ở trên xen kẽ đã cho tôi một nửa với khối bộ lọc tiếp xúc làm việc để mở và hiển thị kết quả trên trang mới.

Tuy nhiên, tôi cũng cần khối bộ lọc ở trên trang kết quả đó. Vì vậy, tôi đã đính kèm biểu mẫu (khối bộ lọc tiếp xúc) thông qua khu vực xem trong tiêu đề. Sau đó, tôi gặp phải hành vi đệ quy khi cả hai hiển thị trong cùng một chế độ xem.

Để giải quyết, tôi tách hai màn hình (trang & khối) thành các chế độ xem tương ứng của riêng chúng - tạo một khối làm bộ lọc được hiển thị bao gồm các trường cho kết quả, sau đó một chế độ xem hoàn toàn mới cho trang để có URL. Chế độ xem trang có một trường (tiêu đề) được ghi đè dưới dạng khoảng trắng (chủ yếu vì kết quả sẽ dư thừa nhưng cũng không chính xác - Tôi thấy kết quả được hiển thị chính xác từ các trường trong khối bộ lọc được hiển thị). Tôi giữ các cài đặt được lọc giống nhau giữa cả hai màn hình và sử dụng các bộ lọc phơi sáng tốt hơn bằng cách sử dụng ajax trên cả hai màn hình.

Tôi đã làm điều này trong D8 nhưng có khả năng sẽ giống nhau trên 7.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.