You are here

function viewreference_get_view in View reference 6.3

Same name and namespace in other branches
  1. 7.3 viewreference.module \viewreference_get_view()

Helper function for stock theme functions.

Parameters

$element: The field element.

$params: An array of special features needed to be built: 'embed' - The $view->preview() of the view display 'title' - The display title of the view display 'link' - A link to the view display, or the title if link not available.

Return value

The view object.

5 calls to viewreference_get_view()
theme_viewreference_formatter_default in ./viewreference.module
Theme function for 'default' viewreference field formatter.
theme_viewreference_formatter_full in ./viewreference.module
Theme function for 'full' viewreference field formatter.
theme_viewreference_formatter_link in ./viewreference.module
Theme function for 'link' viewreference field formatter.
theme_viewreference_formatter_path in ./viewreference.module
Theme function for 'path' viewreference field formatter.
theme_viewreference_formatter_plain in ./viewreference.module
Theme function for 'plain' viewreference field formatter.

File

./viewreference.module, line 241
Defines a field type for referencing a view from a node.

Code

function viewreference_get_view($element, $params = array()) {
  if (!empty($element['#item']['view_id'])) {
    $view_id_parts = explode(":", $element['#item']['view_id']);
    $view['name'] = $view_id_parts[0];
    $view['display'] = $view_id_parts[1];
    $view['view'] = views_get_view($view['name']);
    if ($view['view'] && $view['view']
      ->access($view['display'])) {
      if (in_array('embed', $params)) {
        $view['args'] = viewreference_get_element_args($element);
        $view['embed'] = $view['view']
          ->preview($view['display'], $view['args']);
      }
      if (in_array('title', $params) || in_array('link', $params)) {
        $view['title'] = theme('viewreference_display_title', $view['view'], $view['name'], $view['display']);
        if (in_array('link', $params)) {
          if (isset($view['view']->display[$view['display']]->display_options['path']) && !$view['view']->disabled) {
            $view['args'] = $view['args'] ? $view['args'] : viewreference_get_element_args($element);
            $view['url_args'] = implode("/", $view['args']);
            $view['path'] = $view['view']->display[$view['display']]->display_options['path'];
            if ($view['url_args']) {
              $view['path'] .= "/" . $view['url_args'];
            }
            $view['link'] .= l($view['title'], $view['view']
              ->get_url($view['args'], $view['path']));
          }
          else {
            $view['link'] .= $view['title'];
          }
        }
      }
      return $view;
    }
  }
}