function global_filter_get_view_next_value in Views Global Filter 8
Same name and namespace in other branches
- 6 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
int $ref_base_value: the base field value (eg nid, uid), whose successor is to be found and returned based on the supplied view
string $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
mixed next value of the specified view; this will be the first value if $ref_base_value is empty
2 calls to global_filter_get_view_next_value()
- global_filter_init in ./
global_filter.module - Implements hook_init().
- global_filter_slidebox_data_alter in plugins/
slidebox.inc - Implements hook_slidebox_data_alter().
File
- ./
global_filter.module, line 320 - global_filter.module
Code
function global_filter_get_view_next_value($ref_base_value = NULL, $view_id = NULL) {
if ($ref_base_value == NULL) {
$ref_base_value = global_filter_get_session_value('view_autocycle');
}
if (empty($view_id)) {
$view_id = global_filter_get_module_parameter('view_autocycle');
// String prefix=='view_'.
$view_id = drupal_substr($view_id, 5);
}
$view = views_get_view($view_id);
if (!is_object($view)) {
drupal_set_message(t('Global Filter: auto-cycle 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) {
// Current will give us next...
$next_row = current($view->result);
break;
}
}
if (empty($next_row)) {
if (isset($ref_base_value)) {
// Reference value was set, but not found.
return FALSE;
}
// Return first view result.
$next_row = reset($view->result);
}
$value = $next_row->{$view->base_field};
global_filter_set_on_session('view_autocycle', $value);
return $value;
}