You are here

function _draggableviews_get_views_options in DraggableViews 7.2

Helper function that returns an option list of all draggable views or let you inspect a specific view to see if it's a draggable view itself and returns the appropriate option for that.

Parameters

$view: The view object to inspect. Optional.

Return value

An option array of draggable views.

1 call to _draggableviews_get_views_options()
draggableviews_handler_sort::options_form in views/draggableviews_handler_sort.inc
Basic options for all sort criteria

File

./draggableviews.module, line 573

Code

function _draggableviews_get_views_options($view = NULL) {
  if (!empty($view)) {
    $view_clone = clone $view;
    $view_clone
      ->set_display($view_clone->current_display);
    $view_clone
      ->init_handlers();
    if (isset($view_clone->field['draggableviews'])) {
      return $view_clone->name . ':' . $view_clone->current_display;
    }
  }

  // Check whether field exists for all enabled views. We only want the
  // 'setting' views.
  $views = views_get_enabled_views();
  $options = array();

  // Convert list of objects to options for the form.
  foreach ($views as $view_name => $view) {
    foreach ($view->display as $display_name => $display) {
      if ($display_name == 'default') {
        continue;
      }

      // Clone view and build it so we can see all the fields.
      $view_clone = clone $view;
      $view_clone
        ->set_display($display_name);
      $view_clone
        ->init_handlers();

      // If draggableviews field attached, show this view in options.
      if (isset($view_clone->field['draggableviews'])) {
        $options[$view_name . ':' . $display_name] = $view->human_name . ' (' . $display->display_title . ')';
      }
    }
  }
  return $options;
}