Thực hiện chế độ xem mà không hiển thị


8

Tôi muốn lập trình thực hiện một chế độ xem (cung cấp đối số) và nhận kết quả thô mà không hiển thị. Có thể không?

Khi tôi sử dụng $view->preview('default', $args);nó sẽ chuyển đổi kết quả thành HTML. Tôi biết tôi có thể sử dụng $view->resultđể lặp lại các kết quả thô, nhưng tùy chỉnh được hiển thị mà tôi đang sử dụng cho một số trường là lỗi và cung cấp cho tôi WSOD (Tôi không có hứng thú hoặc khả năng sửa chữa trình kết xuất, đó là trường hợp cạnh :))

Tôi đang sử dụng Chế độ xem 3 với Drupal 7


Có lẽ $ view-> exec () có thể giúp đỡ. Ví dụ đơn giản: drupal.stackexchange.com/questions/9121/ từ
kalabro

Câu trả lời:



3

$ view-> preview () thường được sử dụng để chỉ xem màn hình, vì vậy nói cách khác, nó sẽ hiển thị thông qua định dạng đã chỉ định.

$ view-> exec_display () cũng trả về màn hình ở định dạng có liên quan được chỉ định trong dạng xem.

Tôi nghĩ rằng bạn có thể phải thực hiện truy vấn trực tiếp tức là db_query ()


Tôi đoán tôi sẽ phải dùng đến việc tự xây dựng truy vấn bằng db_query. Cảm ơn vì đã giúp đỡ :)
Daniel

0

Bạn sẽ nhận được một số thành công nếu bạn sử dụng view::preview()mã của riêng mình, nhưng thay đổi nó để thay vì gọi ->display_handler->preview(), ->execute()thay vào đó , nó gọi :

$view = views_get_view($view_name);
$view->set_display($display_name);
$view->preview = TRUE;
$view->pre_execute($args);
$view->execute($display_name);

Điều này sẽ hoạt động bởi vì, đối với hầu hết các trình xử lý hiển thị, cuộc gọi đến ...->display_handler->preview()thực sự chỉ là một trình bao bọc xung quanh cuộc gọi trở lại view::render(). Mà chính nó bắt đầu bằng cách gọi $this->execute(...).

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.