2010-10-25 29 views
6

Tôi đã tạo chế độ xem (Drupal 6.x, Chế độ xem 2.x). Tôi muốn có thể thêm hàng tóm tắt ở cuối chế độ xem này - tổng cộng một số cột và bao gồm tổng số trong hàng tóm tắt.Làm cách nào để thêm hàng tóm tắt vào Chế độ xem Drupal?

Tôi làm cách nào để thực hiện việc này? Có một số cái móc thay đổi dữ liệu Views mà tôi có thể thực hiện, để thay đổi dữ liệu được xây dựng (trước khi nó được theo chủ đề) không?

(Lưu ý rằng tôi không thể sử dụng views_calc vì một số dữ liệu theo quan điểm này xuất phát từ xem mối quan hệ, mà views_calc không hỗ trợ tại thời điểm viết bài.)

Trả lời

6

Để trả lời câu hỏi của riêng tôi một vài giờ sau ... Có một cách để triển khai hook_views_pre_render():

/** 
* Implementation of hook_views_pre_render(). 
*/ 
function mymodule_views_pre_render(&$view) { 
    if ($view->name == 'myview') { 
    // perform calculations on each row 
    $pointsEarned = $pointsPossible = 0; 
    foreach($view->result as $submission) { 
     if (is_numeric($submission->node_data_field_pointsearned_field_pointsearned_value)) { 
     $pointsEarned += $submission->node_data_field_pointsearned_field_pointsearned_value; 
     $pointsPossible += $submission->node_node_data_field_pointspossible_field_pointspossible_value; 
     } 
    } 


    // insert a 'total' row 
    $row = new stdClass(); 
    $row->node_data_field_pointsearned_field_pointsearned_value = $pointsEarned; 
    $row->node_node_data_field_pointspossible_field_pointspossible_value = $pointsPossible; 
    $view->result[] = $row; 

    if ($pointsPossible > 0) { 
     // insert an 'average' row 
     $row = new stdClass(); 
     $row->users_name = 'Average:'; 
     $row->node_data_field_pointsearned_field_pointsearned_value = round($pointsEarned/$pointsPossible * 100) . "%"; 
     $view->result[] = $row; 
    } 
    } 
} 
+0

Nếu bạn có thêm cột thì mã đó sẽ tạo nhiều cảnh báo. Để loại bỏ các thêm $ row-> field_YOUR_FIELD = array(); sau khi tạo hàng mới để xóa chúng. –

1

Cá nhân, tôi sẽ xử lý điều này trong các mẫu chế độ xem. Tạo một views-view.tpl.php cho chế độ xem của bạn, sau đó chỉnh sửa và tính toán tóm tắt.

Một tùy chọn khác là tạo một màn hình khác cho cùng một chế độ xem, sau đó tạo views-view-unformatted.tpl.php và tính và in tóm tắt bằng cách thực hiện print $row; để tránh gọi mẫu trường. Màn hình xem thêm sử dụng khi cần.

4

Liếc xung quanh, có vẻ như Views Calc có thể làm những gì bạn muốn.

+0

Tại sao một downvote? Điều này rất hữu ích. –

+3

Chế độ xem Calc không hỗ trợ Quan hệ Chế độ xem. Câu hỏi ban đầu nói rằng Chế độ xem Calc không thể được sử dụng vì lý do đó. – smokris

1

Nếu có ai khác gặp phải câu hỏi này, bạn có thể sử dụng Views Summarize để thêm hiển thị bảng tóm tắt. Bạn chỉ cần đặt màn hình và sau đó chọn cách bạn muốn mỗi cột tóm tắt. Tôi chưa thể làm việc này với Chế độ xem dữ liệu xuất, nhưng nó hoạt động nếu bạn chỉ muốn xem dữ liệu trên trang web.

Các vấn đề liên quan