function audio_js_field_formatter_view in audio.js 7
Implements hook_field_formatter_view().
File
- ./
audio_js.module, line 134 - This is the main script for the audio.js module. It merely contains the implementation of hooks invoked by Drupal core.
Code
function audio_js_field_formatter_view($entity_type, $entity, $field, $instance, $langcode, $items, $display) {
$element = array();
$settings = $display['settings'];
// Include main audio.js library.
if (module_exists('libraries')) {
$audiojs_path = libraries_get_path('audiojs');
$audio_library = $audiojs_path . "/audiojs/audio.min.js";
drupal_add_js($audio_library, 'file');
}
$module_path = drupal_get_path('module', 'audio_js');
$css_style = check_plain($settings['audio_js_style']);
drupal_add_css($module_path . '/css/audio_js_' . $css_style . '.css');
// Test whether you create a single player or a playlist.
if (!empty($items[1]) && $settings['audio_js_playlist'] == 0) {
// Create playlist player.
$variables = array(
'preload' => $settings['audio_js_preload'],
'autoplay' => $settings['audio_js_autoplay'],
'class' => $css_style,
);
$element[0]['#markup'] = theme('audio_js_audio_tag_for_playlist', $variables);
$list = array();
foreach ($items as $delta => $item) {
// Get the file url and label.
$file = _audio_js_get_items_info($display['type'], $instance, $item);
// Make sure the file is a mp3.
$file_parts = pathinfo($file['url']);
if ($file_parts['extension'] == 'mp3') {
$list[] = l($file['label'], NULL, array(
'attributes' => array(
'data-src' => $file['url'],
),
'fragment' => 'audio',
'external' => TRUE,
));
}
else {
drupal_set_message("Invalid file type. The audio.js player only supports mp3 files.", "warning");
}
}
$element[0]['#suffix'] = theme('item_list', array(
'items' => $list,
'title' => '',
'type' => 'ol',
'attributes' => array(
'class' => array(
'audiojs-playlist',
),
),
));
// Close opening tag in audio_js_audio_tag_for_playlist theme.
$element[0]['#suffix'] .= '</div>';
$loop = $settings['audio_js_loop'] ? TRUE : FALSE;
$settings = array(
'loop' => $loop,
'swf' => base_path() . $audiojs_path . "/audiojs/audiojs.swf",
);
if (!empty($items)) {
drupal_add_js(array(
'audio_js' => $settings,
), 'setting');
drupal_add_js($module_path . '/js/audio_js_playlist.js', 'file');
}
}
else {
// Create single player.
foreach ($items as $delta => $item) {
// Get the file url and label.
$file = _audio_js_get_items_info($display['type'], $instance, $item);
$variables = array(
'url' => $file['url'],
'description' => $file['label'],
'label' => $settings['audio_js_label'],
'preload' => $settings['audio_js_preload'],
'autoplay' => $settings['audio_js_autoplay'],
'loop' => $settings['audio_js_loop'],
'class' => $css_style,
);
// Make sure the file is a mp3.
$file_parts = pathinfo($file['url']);
if ($file_parts['extension'] == 'mp3') {
$element[$delta]['#markup'] = theme('audio_js_audio_tag', $variables);
}
else {
drupal_set_message("Invalid file type. The audio.js player only supports mp3 files.", "warning");
}
}
$settings = array(
'swf' => base_path() . $audiojs_path . "/audiojs/audiojs.swf",
);
if (!empty($items)) {
drupal_add_js(array(
'audio_js' => $settings,
), 'setting');
drupal_add_js($module_path . '/js/audio_js_init.js', 'file');
}
}
return $element;
}