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;
}
}