You are here

function brightcove_cck_handler_field_video_tags_multiple::render in Brightcove Video Connect 6

Same name and namespace in other branches
  1. 6.2 brightcove_cck/views/brightcove_cck_handler_field_video_tags_multiple.inc \brightcove_cck_handler_field_video_tags_multiple::render()

Overrides brightcove_cck_handler_field_video_tags::render

File

brightcove_cck/views/brightcove_cck_handler_field_video_tags_multiple.inc, line 152
An extended subclass for field handling that adds multiple field grouping.

Class

brightcove_cck_handler_field_video_tags_multiple
@file An extended subclass for field handling that adds multiple field grouping.

Code

function render($values) {

  // If this is not a grouped field, use content_handler_field::render().
  if (!$this->defer_query) {
    return parent::render($values);
  }
  $options = $this->options;
  $vid = $values->node_vid;
  if (isset($this->field_values[$vid])) {

    // Gather items, respecting the 'Display n values starting from m' settings.
    $count_skipped = 0;
    $items = array();
    foreach ($this->field_values[$vid] as $item) {
      if (empty($options['multiple']['multiple_from']) || $count_skipped >= $options['multiple']['multiple_from']) {
        if (empty($options['multiple']['multiple_number']) || count($items) < $options['multiple']['multiple_number']) {

          // Grab the nid - needed for render_link().
          $video_id = $item['video_id'];
          $items[] = $item;
        }
        else {
          break;
        }
      }
      $count_skipped++;
    }
    foreach ($items as $item) {
      $video = brightcove_video_load($item['video_id']);
      if (!empty($video)) {
        if (isset($video->{$this->bc_field})) {
          $bc = _brightcove_initialize();
          $tags = $bc
            ->tags($video->{$this->bc_field});
          $output = join($this->options['separator'] . ' ', array_map('check_plain', $tags));
          $rendered[] = $this
            ->render_link($output, (object) array(
            'nid' => $item['_nid'],
          ));
        }
      }
    }
    if (count($rendered) > 1) {

      // TODO: could we use generic field display ?
      return theme('content_view_multiple_field', $rendered, $field, $values);
    }
    elseif ($rendered) {
      return $rendered[0];
    }
  }
  return '';
}