function global_filter_get_view_next_value in Views Global Filter 6
Same name and namespace in other branches
- 8 global_filter.module \global_filter_get_view_next_value()
- 7 global_filter.module \global_filter_get_view_next_value()
In the supplied view return the successor to the supplied reference value.
Parameters
$ref_base_value: the base field value (eg nid, uid), whose successor is to be found and returned based on the supplied view
$view_id: the machine_name of the view to be evaluated; defaults to the view set in the 'global_filter_view_autocycle' variable
Return value
next value of the specified view; this will be the first value if $ref_view_value could not be found
1 call to global_filter_get_view_next_value()
File
- ./
global_filter.module, line 333 - global_filter.module
Code
function global_filter_get_view_next_value($ref_base_value = NULL, $view_id = NULL) {
if ($ref_base_value == NULL && isset($_SESSION['global_filter']['view_autocycle'])) {
$ref_base_value = $_SESSION['global_filter']['view_autocycle'];
}
if (empty($view_id)) {
$view_id = variable_get('global_filter_view_autocycle', '');
$view_id = drupal_substr($view_id, 5);
// prefix=='view_';
}
$view = views_get_view($view_id);
if (!is_object($view)) {
drupal_set_message(t('Global Filter: could not find view: %view', array(
'%view' => empty($view_id) ? t('no name specified') : $view_id,
)), 'error');
return $ref_base_value;
}
$view
->init_display();
$view
->pre_execute();
$view
->execute();
if (empty($view->result)) {
return $ref_base_value;
}
// Find $ref_view_value in the view result set; must be a base-field.
foreach ($view->result as $row) {
if ($row->{$view->base_field} == $ref_base_value) {
$next_row = current($view->result);
// current will give us next
break;
}
}
if (empty($next_row)) {
$next_row = reset($view->result);
}
return $_SESSION['global_filter']['view_autocycle'] = $next_row->{$view->base_field};
}