function calendar_build_calendar in Calendar 7
Same name in this branch
- 7 includes/calendar.inc \calendar_build_calendar()
- 7 calendar_multiday/includes/calendar.inc \calendar_build_calendar()
Same name and namespace in other branches
- 5.2 calendar.inc \calendar_build_calendar()
- 6.2 includes/calendar.inc \calendar_build_calendar()
- 6.2 calendar_multiday/includes/calendar.inc \calendar_build_calendar()
- 7.2 includes/calendar.inc \calendar_build_calendar()
- 7.2 calendar_multiday/includes/calendar.inc \calendar_build_calendar()
Build calendar
Parameters
unknown_type $view:
unknown_type $items:
Return value
themed table
2 calls to calendar_build_calendar()
- template_preprocess_calendar in theme/
theme.inc - Display a view as a calendar.
- template_preprocess_calendar in calendar_multiday/
theme/ theme.inc - Display a view as a calendar.
File
- calendar_multiday/
includes/ calendar.inc, line 14 - Calendar building functions for the Calendar module.
Code
function calendar_build_calendar($view, $items) {
// Remove nodes outside the selected date range.
$values = array();
foreach ($items as $delta => $item) {
if (empty($item->calendar_start_date) || empty($item->calendar_end_date)) {
continue;
}
$item_start = date_format($item->calendar_start_date, DATE_FORMAT_DATE);
$item_end = date_format($item->calendar_end_date, DATE_FORMAT_DATE);
if ($item_start >= $view->date_info->min_date_date && $item_start <= $view->date_info->max_date_date || $item_end >= $view->date_info->min_date_date && $item_end <= $view->date_info->max_date_date) {
$values[$item_start][date_format($item->date_start, 'H:i:s')][] = $item;
}
}
$items = $values;
ksort($items);
$rows = array();
$curday = clone $view->date_info->min_date;
switch ($view->date_info->granularity) {
case 'year':
$rows = array();
$view->date_info->mini = TRUE;
for ($i = 1; $i <= 12; $i++) {
$rows[$i] = calendar_build_mini_month($curday, $view, $items);
}
$view->date_info->mini = FALSE;
break;
case 'month':
$rows = $view->date_info->mini ? calendar_build_mini_month($curday, $view, $items) : calendar_build_month($curday, $view, $items);
break;
case 'day':
$rows = calendar_build_day($curday, $view, $items);
break;
case 'week':
$rows = calendar_build_week($curday, $view, $items);
// Merge the day names in as the first row.
$rows = array_merge(array(
calendar_week_header($view),
), $rows);
break;
}
return $rows;
}