You are here

function videojs_style_plugin::render in Video.js (HTML5 Video Player) 7

Same name and namespace in other branches
  1. 6.2 includes/videojs_style_plugin.inc \videojs_style_plugin::render()
  2. 6 includes/videojs_style_plugin.inc \videojs_style_plugin::render()

Render the display in this style.

Overrides views_plugin_style::render

File

includes/videojs_style_plugin.inc, line 69
Display style plugin for Views that renders rows as a Video.js.

Class

videojs_style_plugin
Style plugin to display a Video.js.

Code

function render() {
  if (empty($this->row_plugin)) {
    vpr('views_plugin_style_default: Missing row plugin');
    return;
  }
  $view = $this->view;

  // Group the rows according to the grouping field, if specified.
  $sets = $this
    ->render_grouping($this->view->result, $this->options['grouping']);
  $fields = $this->display->handler
    ->get_handlers('field');
  $items = array();
  foreach ($sets as $title => $records) {
    foreach ($records as $row_index => $row) {
      $filepath = NULL;
      $fileid = NULL;
      foreach ($this->options['path_field'] as $field_name) {
        if (isset($row->{$fields[$field_name]->field_alias})) {
          $fileid = $row->{$fields[$field_name]->field_alias};
          break;
        }
      }
      $file = db_fetch_object(db_query("SELECT filepath FROM {files} WHERE fid = %d", $fileid));
      $filepath = $file->filepath;
      $this->view->row_index = $row_index;

      // get the file path from the file object
      $items[] = array(
        'uri' => $filepath,
        'description' => trim(strip_tags($this->row_plugin
          ->render($row))),
      );
    }
  }
  $view->rows = array(
    '#theme' => 'videojs',
    '#items' => $items,
    '#player_id' => 'videojs-view-' . str_replace('_', '-', $view->name),
    '#attached' => videojs_add(FALSE),
  );
  return drupal_render($view->rows);
}