function track_da_files_field_formatter_view in Track da files 7
Implements hook_field_formatter_view().
File
- ./
track_da_files.module, line 211 - This file contains Track da files main functions.
Code
function track_da_files_field_formatter_view($entity_type, $entity, $field, $instance, $langcode, $items, $display) {
$element = array();
$separator = variable_get('clean_url', FALSE) ? '?' : '&';
$track_da_files_file_field_links_show_enabled = variable_get('track_da_files_file_field_links_show_enabled', 1);
$track_da_files_colorbox_enabled = variable_get('track_da_files_colorbox_enabled', 0);
switch ($display['type']) {
case 'track_da_files_file_default':
foreach ($items as $delta => $item) {
$access = user_access('view tracked files displays datas');
if ($access && (isset($track_da_files_file_field_links_show_enabled) && $track_da_files_file_field_links_show_enabled)) {
$query = "SELECT t.pid FROM {track_da_files_paths} t " . "WHERE t.fid = :fid AND t.path = :uri ";
$result = db_query($query, array(
':fid' => $item['fid'],
':uri' => $item['uri'],
))
->fetch();
if (!empty($result)) {
$pid = $result->pid;
$query2 = "SELECT COUNT(t.recid) counter FROM {track_da_files} t " . "WHERE t.pid = :pid GROUP BY t.pid ";
$result2 = db_query($query2, array(
':pid' => $pid,
))
->fetch();
if (!empty($result2)) {
$item['displays'] = $result2->counter;
}
}
}
// Register into file object entity id and type.
if (isset($entity_type)) {
$entity_info = entity_get_info($entity_type);
$item['type'] = $entity_type;
$item['id'] = $entity->{$entity_info['entity keys']['id']};
if (isset($display['settings']['force_download'])) {
$item['force_download'] = $display['settings']['force_download'];
}
if (isset($display['settings']['custom_link_text'])) {
$item['custom_link_text'] = $display['settings']['custom_link_text'];
}
}
$element[$delta] = array(
'#theme' => 'track_da_files_file_link',
'#file' => (object) $item,
);
}
break;
case 'track_da_files_url_plain':
foreach ($items as $delta => $item) {
// Register into file object entity id and type.
if (isset($entity_type)) {
$entity_info = entity_get_info($entity_type);
$item['type'] = $entity_type;
$item['id'] = $entity->{$entity_info['entity keys']['id']};
}
$element[$delta] = array(
'#theme' => 'track_da_files_url_plain',
'#file' => (object) $item,
);
}
break;
case 'track_da_files_file_table':
if (!empty($items)) {
// Display all values in a single element.
$element[0] = array(
'#theme' => 'track_da_files_file_formatter_table',
'#items' => $items,
);
foreach ($items as $delta => $item) {
// Register into file object entity id and type.
if (isset($entity_type)) {
$entity_info = entity_get_info($entity_type);
$element[0]['#items'][$delta]['type'] = $entity_type;
$element[0]['#items'][$delta]['id'] = $entity->{$entity_info['entity keys']['id']};
if (isset($display['settings']['force_download'])) {
$element[0]['#items'][$delta]['force_download'] = $display['settings']['force_download'];
}
if (isset($display['settings']['custom_link_text'])) {
$element[0]['#items'][$delta]['custom_link_text'] = $display['settings']['custom_link_text'];
}
}
$access = user_access('view tracked files displays datas');
if ($access && (isset($track_da_files_file_field_links_show_enabled) && $track_da_files_file_field_links_show_enabled)) {
$query = "SELECT t.pid FROM {track_da_files_paths} t " . "WHERE t.fid = :fid AND t.path = :uri ";
$result = db_query($query, array(
':fid' => $item['fid'],
':uri' => $item['uri'],
))
->fetch();
if (!empty($result)) {
$pid = $result->pid;
$query2 = "SELECT COUNT(t.recid) counter FROM {track_da_files} t " . "WHERE t.pid = :pid GROUP BY t.pid ";
$result2 = db_query($query2, array(
':pid' => $pid,
))
->fetch();
if (!empty($result2)) {
$element[0]['#items'][$delta]['displays'] = $result2->counter;
}
}
}
}
}
break;
case 'track_da_files_image':
case 'track_da_files_colorbox_image':
$element = array();
foreach ($items as $delta => $item) {
$field_count_show = $item['force_download'] = '';
$access = user_access('view tracked files displays datas');
if ($access && (isset($track_da_files_file_field_links_show_enabled) && $track_da_files_file_field_links_show_enabled)) {
$query = "SELECT t.pid FROM {track_da_files_paths} t " . "WHERE t.fid = :fid AND t.path = :uri ";
$result = db_query($query, array(
':fid' => $item['fid'],
':uri' => $item['uri'],
))
->fetch();
if (!empty($result)) {
$pid = $result->pid;
$query2 = "SELECT COUNT(t.recid) counter FROM {track_da_files} t " . "WHERE t.pid = :pid GROUP BY t.pid ";
$result2 = db_query($query2, array(
':pid' => $pid,
))
->fetch();
if (!empty($result2)) {
$item['displays'] = $result2->counter;
}
}
if (isset($item['displays']) && $item['displays'] > 0) {
$field_count_show = '<span class="file-displayed-counter">' . format_plural($item['displays'], 'displayed 1 time', 'displayed @count times') . '</span>';
}
}
// Register into file object entity id and type.
if (isset($entity_type)) {
$entity_info = entity_get_info($entity_type);
$item['type'] = $entity_type;
$item['id'] = $entity->{$entity_info['entity keys']['id']};
if (isset($display['settings']['force_download'])) {
$item['force_download'] = $display['settings']['force_download'];
}
}
if ($track_da_files_colorbox_enabled == 1 && $display['type'] == 'track_da_files_colorbox_image') {
$uri = array(
'path' => track_da_files_create_url($item['uri']),
'options' => array(
'query' => array(
'file' => '1',
'type' => $item['type'],
'id' => $item['id'],
),
'attributes' => array(
'class' => array(
'colorbox',
),
),
),
);
}
else {
$uri = array(
'path' => track_da_files_create_url($item['uri']),
'options' => array(
'query' => array(
'file' => '1',
'type' => $item['type'],
'id' => $item['id'],
'force' => $item['force_download'],
),
),
);
}
$element[$delta] = array(
'#theme' => 'image_formatter',
'#item' => $item,
'#image_style' => $display['settings']['image_style'],
'#path' => isset($uri) ? $uri : '',
'#suffix' => isset($field_count_show) ? $field_count_show : '',
);
}
break;
}
return $element;
}