You are here

function theme_viewreference_formatter_link in View reference 6.2

Same name and namespace in other branches
  1. 6.3 viewreference.module \theme_viewreference_formatter_link()
  2. 6 viewreference.module \theme_viewreference_formatter_link()
  3. 7.3 viewreference.module \theme_viewreference_formatter_link()

Theme function for 'link' nodereference field formatter.

File

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

Code

function theme_viewreference_formatter_link($element) {
  $output = '';
  if (!empty($element['#item']['view_id']) && is_numeric($element['#item']['view_id'])) {
    $view = db_fetch_object(db_query("SELECT name, position, title FROM {viewreference} WHERE view_id = '%d'", $element['#item']['view_id']));
    if ($view) {
      $view_object = views_get_view($view->name);
      if ($view_object && $view_object
        ->access($view->position)) {
        $title = $view_object
          ->get_title() ? $view_object
          ->get_title() : $view->title;
        if (isset($view_object->display[$view->position]->display_options['path']) && !$view_object->disabled) {
          $args = viewreference_get_element_args($element);
          $url_args = implode("/", $args);
          $path = $view_object->display[$view->position]->display_options['path'];
          if ($url_args) {
            $path .= "/" . $url_args;
          }
          $output .= l($title, $view_object
            ->get_url($args, $path));
        }
        else {
          $output .= check_plain($title);
        }
      }
    }
  }
  return $output;
}