function pdfpreview_field_formatter_view in PDFPreview 7.2
Same name and namespace in other branches
- 7 pdfpreview.module \pdfpreview_field_formatter_view()
Implements hook_field_formatter_view()
See also
File
- ./
pdfpreview.module, line 130 - This file contains hooks for the pdfpreview module
Code
function pdfpreview_field_formatter_view($entity_type, $entity, $field, $instance, $langcode, $items, $display) {
$element = array();
$settings = $display['settings'];
$image_items = array();
$non_pdfs = array();
list($preview_width, $preview_height) = explode('x', variable_get('pdfpreview_previewsize', PDFPREVIEW_DEFAULT_SIZE));
foreach ($items as $delta => $item) {
if (isset($item['display']) && !$item['display']) {
continue;
}
//don't show hidden files
if ($item['filemime'] == 'application/pdf' && ($preview_uri = _pdfpreview_create_preview($item))) {
$image_items[$delta] = array(
'fid' => $item['fid'],
'uri' => $preview_uri,
'alt' => isset($item['description']) ? $item['description'] : '',
'width' => $preview_width,
'height' => $preview_height,
'title' => isset($item['description']) ? $item['description'] : '',
'attributes' => array(
'class' => array(
'pdfpreview-file',
),
),
);
}
else {
//For non pdf files, we defer processing.
$non_pdfs[$delta] = $item;
}
}
// Render PDF preview files using the image or picture formatter.
switch ($display['type']) {
case 'pdfpreview':
$element += image_field_formatter_view($entity_type, $entity, $field, $instance, $langcode, $image_items, $display);
break;
case 'pdfpreview_picture':
$picture_display = array_merge(array(), $display);
$picture_display['type'] = 'picture';
$element += picture_field_formatter_view($entity_type, $entity, $field, $instance, $langcode, $image_items, $picture_display);
break;
}
foreach (element_children($element) as $delta) {
$element[$delta]['#theme_wrappers'][] = 'pdfpreview_formatter';
$element[$delta]['#settings'] = $settings;
$element[$delta]['#fid'] = $items[$delta]['fid'];
}
if ((!isset($settings['fallback_formatter']) || $settings['fallback_formatter']) && !empty($non_pdfs)) {
// Process non PDF files using default file formatter.
module_load_include('inc', 'file', 'file.field');
$display['type'] = 'file_default';
$element = array_merge($element, file_field_formatter_view($entity_type, $entity, $field, $instance, $langcode, $non_pdfs, $display));
}
return $element;
}