您在這裡

COD Session 中遇到 views_get_view() 的錯誤

amouro's 的頭像
amouro 在 2012-02-13 (週一) 17:52 發表

利用 COD Support 要建立他的 Schedule 頁面時,發現超過 10 個以上的場地(Room)將無法顯示出來。
從 views 的設定找了很久,也追蹤到 session_room_list 的 views 設定,最後花了超過三個小時才發現到癥結所在。(參考 http://drupal.org/node/713900)
原來 views_get_view("view name") 預設顯示 10 筆,且不會遵照 Items to display 的設定產生資料結果,因此必須後續指定 $view->set_items_per_page(0);

因此自己暫時加上一行,要求不限制顯示數量,這才解決了頭痛很久的問題

<?php
# /cod_support/cod_session/cod_session.module line: 884
function _cod_session_schedule_rooms($schedule_view) {
// @todo I think Interactive is no longer needed here
//$interactive = $schedule_view->cod_schedule_interactive;
$rooms = array();

// Try and load the schedule room list view.
$room_view = views_get_view('schedule_room_list');

+ // views_get_view() don't respect "Items to display:". Set a number here.
+ $room_view->set_items_per_page(0);
?>

接續的問題是,如何讀取原本 views 裡面的 Items per page 的設定,
這個 views name: schedule_room_list 是由 COD 預設自行建立,只有 Default display,
因此該怎麼讀出他的資料供 cod_session.module 使用呢?