function calendar_views_pre_render in Calendar 7.3
Same name and namespace in other branches
- 8 calendar.module \calendar_views_pre_render()
Implements hook_views_pre_render().
Track the current date as the user moves from calendar display to calendar display.
File
- ./
calendar.module, line 142 - Adds calendar filtering and displays to Views.
Code
function calendar_views_pre_render(&$view) {
global $user;
$style_options = $view->display_handler
->get_option('style_options');
$tracking = variable_get('calendar_track_date', 0);
if (!empty($tracking) && ($tracking == 2 || !empty($user->uid))) {
foreach ($view->argument as $id => &$argument) {
// If this is not a default date, i.e. we have browsed to a new calendar
// period on a display we were already on, store the midpoint of the current
// view as the current date in a session.
if (date_views_handler_is_date($argument, 'argument') && empty($argument->is_default)) {
$date_range = $argument->date_handler
->arg_range($argument->argument);
$session_date = $date_range[0];
$days = intval(($date_range[1]
->format('U') - $date_range[0]
->format('U')) / 3600 / 24 / 2);
date_modify($session_date, "+{$days} days");
$_SESSION[$view->name]['default_date'] = $session_date;
}
}
}
}