first import
This commit is contained in:
@@ -0,0 +1,332 @@
|
||||
<?php
|
||||
|
||||
/**
|
||||
* @file
|
||||
* Media Theming
|
||||
*
|
||||
* Theming functions for the Media module.
|
||||
*/
|
||||
|
||||
/**
|
||||
* Display the media file browser.
|
||||
* @TODO this is depreciated I think
|
||||
* @param array $element
|
||||
* The form element.
|
||||
* @return string
|
||||
*/
|
||||
function theme_media_file_browser($element) {
|
||||
// Add the CSS for our display.
|
||||
$output = '<div class="media browser">' . $element . '</div>';
|
||||
|
||||
return $output;
|
||||
}
|
||||
|
||||
/**
|
||||
* Display a media file list.
|
||||
* @TODO this is depreciated I think
|
||||
* @param array $element
|
||||
* The form element.
|
||||
* @return string
|
||||
*/
|
||||
function theme_media_file_list($element) {
|
||||
// Add the CSS for our display.
|
||||
return '<div class="media-file-list">' . theme('form_element', $element, $element['#children']) . '</div>';
|
||||
}
|
||||
|
||||
/**
|
||||
* Display a browser pane.
|
||||
* @TODO this is depreciated I think
|
||||
*
|
||||
* @param array $form
|
||||
* The form element.
|
||||
* @return string
|
||||
*/
|
||||
function theme_media_browser_pane($form) {
|
||||
return;
|
||||
$output = array();
|
||||
|
||||
// render the drawers
|
||||
$output[] = '<div' . drupal_attributes($form['#attributes']) . '>';
|
||||
|
||||
// render the drawer list
|
||||
$output[] = ' <div class="browser drawers">';
|
||||
$output[] = drupal_render_form(null, $form['drawers']);
|
||||
$output[] = ' </div>';
|
||||
|
||||
// render the drawer displays
|
||||
$output[] = drupal_render_form(null, $form);
|
||||
$output[] = '</div>';
|
||||
|
||||
return implode("\n", $output);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Default theming function for creating the browser frame.
|
||||
* Assumes an array of file objects as $files and an
|
||||
* array of $parameters
|
||||
* @param $variables
|
||||
* array of variables
|
||||
* @return unknown_type
|
||||
*/
|
||||
function theme_media_browser_content_frame($variables) {
|
||||
// Pull out all the variables into a usable form
|
||||
extract($variables);
|
||||
// Did we get any files back?
|
||||
if (! count($files)) {
|
||||
// @TODO display no files found
|
||||
}
|
||||
|
||||
$html = array();
|
||||
|
||||
// On the first invocation, load javascript and build the browser frame
|
||||
if ($invoke) {
|
||||
|
||||
|
||||
}
|
||||
// Render the results limiter
|
||||
$html[] = theme('media_browser_control_result_limit', array('parameters' => $parameters));
|
||||
// Render the actual content
|
||||
$form = drupal_get_form('media_file_listing_form', $files, $parameters);
|
||||
$html[] = drupal_render($form);
|
||||
|
||||
// Make sure to close the wrapping div
|
||||
if ($invoke) {
|
||||
$html[] = '</div>';
|
||||
}
|
||||
return implode("\n", $html);
|
||||
}
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* Display a item list of files as thumbnails. Implements
|
||||
* the admin thumbnail theme for now- serves as a wrapper
|
||||
*
|
||||
* @param $files
|
||||
* An array of file objects to display.
|
||||
* @return
|
||||
*/
|
||||
function theme_media_browser_thumbnails($variables) {
|
||||
$files = $variables['files'];
|
||||
$style_name = $variables['style_name'];
|
||||
$thumbnails = array();
|
||||
foreach ($files as $file) {
|
||||
$thumbnails[] = theme('media_admin_thumbnail', array('file' => $file, 'style_name' => $style_name));
|
||||
}
|
||||
return theme('item_list', array('items' => $thumbnails, 'attributes' => array('class' => 'media_content_navigator results')));
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Theme a thumbnail.
|
||||
* @param $variables
|
||||
* array items being passed in
|
||||
*/
|
||||
function theme_media_admin_thumbnail($variables) {
|
||||
$path = drupal_get_path('module', 'media');
|
||||
$file = $variables['file'];
|
||||
$style_name = $variables['style_name'];
|
||||
if (isset($file)) {
|
||||
$file_url = file_create_url($file->uri);
|
||||
}
|
||||
else {
|
||||
return '';
|
||||
}
|
||||
$output = '';
|
||||
if (module_exists('styles')) {
|
||||
$thumbnail = theme('styles',
|
||||
array(
|
||||
'field_type' => 'file',
|
||||
'style_name' => $style_name,
|
||||
'uri' => $file->uri,
|
||||
'description' => t('Thumbnail for !filename.', array('!filename' => $file->filename)),
|
||||
'object' => $variables['file'],
|
||||
));
|
||||
}
|
||||
else {
|
||||
// Display a thumbnail for images.
|
||||
if (strstr($file->filemime, 'image')) {
|
||||
$thumbnail = theme('image_style',
|
||||
array(
|
||||
'style_name' => 'thumbnail',
|
||||
'path' => $file->uri,
|
||||
'alt' => t('Thumbnail for !filename.', array('!filename' => $file->filename)),
|
||||
)
|
||||
);
|
||||
}
|
||||
// Display the 'unknown' icon for other file types.
|
||||
else {
|
||||
$thumbnail = theme('image',
|
||||
array(
|
||||
'path' => $path . '/images/file-unknown.png',
|
||||
'alt' => t('Thumbnail for !filename.', array('!filename' => $file->filename)),
|
||||
'attributes' => array('class' => 'file-unknown'),
|
||||
));
|
||||
}
|
||||
}
|
||||
$output .= l($thumbnail,
|
||||
$file_url,
|
||||
array(
|
||||
'html' => TRUE,
|
||||
'attributes' => array('class' => 'media-thumbnail'),
|
||||
));
|
||||
return $output;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Theme operations for a thumbnail.
|
||||
*/
|
||||
function theme_media_admin_thumbnail_operations($variables) {
|
||||
$destination = drupal_get_destination();
|
||||
$file = $variables['file'];
|
||||
$output = l(t('edit'), 'media/' . $file->fid . '/edit', array('query' => $destination));
|
||||
return $output;
|
||||
}
|
||||
|
||||
/**
|
||||
* Add messages to the page.
|
||||
*/
|
||||
function template_preprocess_media_dialog_page(&$variables) {
|
||||
$variables['messages'] = theme('status_messages');
|
||||
}
|
||||
|
||||
/* ******************************************** */
|
||||
/* Content navigation controls */
|
||||
/* ******************************************** */
|
||||
|
||||
|
||||
/**
|
||||
* Theme function to display the results limiting- 10, 30, 50 results
|
||||
* per page.
|
||||
*
|
||||
* @param $variables
|
||||
* array parameters
|
||||
* @return unknown
|
||||
*/
|
||||
function theme_media_browser_control_result_limit($variables) {
|
||||
// Pull out all the variables into a usable form
|
||||
extract($variables);
|
||||
|
||||
if (!isset($limits)) {
|
||||
$limits = array(10, 30, 50);
|
||||
}
|
||||
|
||||
// @NOTE these do not need to be aware of the current
|
||||
// page because clicking them will reset the
|
||||
// display to 1 -> $limit
|
||||
$parameters['page'] = 0;
|
||||
// save the active limit
|
||||
$current_limit = $parameters['limit'];
|
||||
$per_display = array();
|
||||
foreach ($limits as $limit) {
|
||||
if ($limit == $current_limit) {
|
||||
$class = 'active';
|
||||
}
|
||||
else {
|
||||
$class = '';
|
||||
}
|
||||
// set the value of this limit parameter to this limit value
|
||||
$parameters['limit'] = $limit;
|
||||
$per_display[] = l($limit, $limit, array('query' => $parameters, 'attributes' => array('class' => $class)));
|
||||
}
|
||||
|
||||
return theme('item_list', array('items' => $per_display, 'attributes' => array('class' => 'result_limit')));
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Stolen from file.module theme_file_link
|
||||
*
|
||||
* @param $variables
|
||||
* An associative array containing:
|
||||
* - file: A file object to which the link will be created.
|
||||
*/
|
||||
function theme_media_link($variables) {
|
||||
$file = $variables['file'];
|
||||
|
||||
$url = 'media/' . $file->fid;
|
||||
$icon = theme('file_icon', array('file' => $file));
|
||||
|
||||
// Set options as per anchor format described at
|
||||
// http://microformats.org/wiki/file-format-examples
|
||||
$options = array(
|
||||
'attributes' => array(
|
||||
'type' => $file->filemime . '; length=' . $file->filesize,
|
||||
),
|
||||
);
|
||||
|
||||
// Use the description as the link text if available.
|
||||
if (empty($file->description)) {
|
||||
$link_text = check_plain($file->filename);
|
||||
}
|
||||
else {
|
||||
$link_text = check_plain($file->description);
|
||||
$options['attributes']['title'] = check_plain($file->filename);
|
||||
}
|
||||
|
||||
return '<span class="file">' . $icon . ' ' . l($link_text, $url, $options) . '</span>';
|
||||
}
|
||||
|
||||
/**
|
||||
* Adds a wrapper around a preview of a media file.
|
||||
* @param unknown_type $element
|
||||
* @return unknown_type
|
||||
*/
|
||||
function theme_media_thumbnail($variables) {
|
||||
$label = '';
|
||||
$element = $variables['element'];
|
||||
$destination = drupal_get_destination();
|
||||
|
||||
// Wrappers to go around the thumbnail
|
||||
$prefix = '<div class="media-item"><div class="media-thumbnail">';
|
||||
$suffix = '</div></div>';
|
||||
|
||||
// Arguments for the thumbnail link
|
||||
$thumb = $element['#children'];
|
||||
$target = 'media/' . $element['#file']->fid . '/edit';
|
||||
$options = array('query' => $destination, 'html' => TRUE, 'attributes' => array('title' => t('Click to edit details')));
|
||||
|
||||
// Element should be a field renderable array... This is a little wonky - admitted.
|
||||
if (!empty($element['#show_names']) && $element['#name']) {
|
||||
$label = '<div class="label-wrapper"><label class="media-filename">' . $element['#name'] . '</label></div>';
|
||||
}
|
||||
|
||||
// How can I attach CSS here?
|
||||
//$element['#attached']['css'][] = drupal_get_path('module', 'media') . '/css/media.css';
|
||||
drupal_add_css(drupal_get_path('module', 'media') . '/css/media.css');
|
||||
|
||||
$output = $prefix;
|
||||
if (!empty($element['#add_link'])) {
|
||||
$output .= l($thumb, $target, $options);
|
||||
}
|
||||
else {
|
||||
$output .= $thumb;
|
||||
}
|
||||
$output .= $label . $suffix;
|
||||
return $output;
|
||||
}
|
||||
|
||||
function template_preprocess_media_thumbnail(&$variables) {
|
||||
// Set the name for the thumbnail to be the filename. This is done here so
|
||||
// that other modules can hijack the name displayed if it should not be the
|
||||
// filename.
|
||||
$variables['element']['#name'] = isset($variables['element']['#file']->filename) ? check_plain($variables['element']['#file']->filename) : NULL;
|
||||
}
|
||||
|
||||
/**
|
||||
* Field formatter for displaying a file as a large icon.
|
||||
*/
|
||||
function theme_media_formatter_large_icon($variables) {
|
||||
$file = $variables['file'];
|
||||
$icon_dir = media_variable_get('icon_base_directory') . '/' . media_variable_get('icon_set');
|
||||
$icon = file_icon_path($file, $icon_dir);
|
||||
$variables['path'] = $icon;
|
||||
// theme_image() requires the 'alt' attribute passed as its own variable.
|
||||
// @see http://drupal.org/node/999338
|
||||
if (!isset($variables['alt']) && isset($variables['attributes']['alt'])) {
|
||||
$variables['alt'] = $variables['attributes']['alt'];
|
||||
}
|
||||
return theme('image', $variables);
|
||||
}
|
||||
Reference in New Issue
Block a user