You are here

function oa_related_oa_paragraph_media_render in Open Atrium Related Content 7.2

Render function for the paragraph_media bundle.

1 string reference to 'oa_related_oa_paragraph_media_render'
oa_related_oa_related_field_info in ./oa_related.paragraphs.info.inc
@file Used to define information for specific fields on paragraph entities. For now these fields are of the 'Widget type' => 'Select list'.

File

./oa_related.paragraphs.inc, line 10
Render various paragraph types.

Code

function oa_related_oa_paragraph_media_render(&$vars, $bundle, $field_name, $value) {
  $layout = isset($value) ? $value : 'none';

  // For images, add a class pull-LAYOUT where LAYOUT is the layout config value.
  $vars['classes_array'][] = drupal_html_class('pull-' . $layout);

  // Update caption titles and any display properties as needed.
  if (isset($vars['content']['field_oa_media']['#items'])) {
    for ($i = 0; $i < count($vars['content']['field_oa_media']['#items']); $i++) {
      $item =& $vars['content']['field_oa_media'][$i];
      switch ($layout) {
        case 'full':
        case 'grid2':

          // For large images we need to change the view mode to fetch original image sizes.
          if ($vars['field_oa_media'][$i]['type'] == 'image') {
            $item['#display_settings']['file_view_mode'] = 'default';
          }
          break;
        case 'center':
        case 'none':
          $item['#display_settings']['file_view_mode'] = 'default';
          break;
      }

      // Set the title based on the image alt/title or filename.
      $item['#title'] = !empty($vars['field_oa_media'][$i]['alt']) ? $vars['field_oa_media'][$i]['alt'] : (!empty($vars['field_oa_media'][$i]['title']) ? $vars['field_oa_media'][$i]['title'] : $vars['field_oa_media'][$i]['filename']);
      $vars['theme_hook_suggestions'][] = 'oa_related_paragraphs_media_render';
    }
  }
  switch ($layout) {
    case 'table':
    case 'preview':
      $header = array();
      $rows = array();
      if ($layout == 'table') {
        $header = array(
          '',
          t('Title'),
          t('Filename'),
          t('Size'),
        );
      }

      // Render all the images in the paragraph item.
      $view = field_view_field('paragraphs_item', $vars['paragraphs_item'], 'field_oa_media', 'default');

      // now loop through the media and build the table
      for ($i = 0; $i < count($vars['content']['field_oa_media']['#items']); $i++) {
        $item =& $vars['content']['field_oa_media'][$i];
        $file = (object) $vars['field_oa_media'][$i];
        if ($layout == 'preview') {
          $title = l($item['#title'], 'file/' . $file->fid);
          if ($item['#title'] != $file->filename) {
            $title .= '<br/>' . $file->filename;
          }
          if ($file->type != 'video') {
            $title .= ' (' . format_size($file->filesize) . ')';
          }
          $row = array(
            array(
              'data' => $view[$i],
              'width' => '258',
            ),
            $title,
          );
        }
        elseif ($layout == 'table') {
          $icon = file_icon_url($file);
          $row = array(
            theme('image', array(
              'path' => $icon,
            )),
          );
          if ($item['#title'] == $file->filename) {
            $row[] = array(
              'data' => l($item['#title'], 'file/' . $file->fid),
              'colspan' => 2,
            );
          }
          else {
            $row[] = l($item['#title'], 'file/' . $file->fid);
            $row[] = l($file->filename, 'file/' . $file->fid);
          }
          $row[] = $file->type != 'video' ? format_size($file->filesize) : '';
        }
        $rows[] = $row;
      }
      $vars['content']['oa_media_table'] = array(
        '#theme' => 'table',
        '#header' => $header,
        '#rows' => $rows,
      );
      $vars['theme_hook_suggestions'][] = 'oa_related_paragraphs_media_render';
      break;
    case 'left':
    case 'right':
    case 'grid3':
    case 'grid4':
    case 'grid5':
      $vars['theme_hook_suggestions'][] = 'oa_related_paragraphs_media_render';
      break;
  }
}