media_bulk_upload.pages.inc in D7 Media 7.2
Same filename and directory in other branches
Common pages for the Media Bulk Upload module.
File
modules/media_bulk_upload/includes/media_bulk_upload.pages.incView source
<?php
/**
* @file
* Common pages for the Media Bulk Upload module.
*/
/**
* Menu callback; Edit multiple files on the same page using multiform module.
*
* @todo When http://drupal.org/node/1227706 is fixed, filter the $files
* array using file_access($file, 'edit').
*
* @see media_bulk_upload_file_operation_edit_multiple()
*/
function media_bulk_upload_file_page_edit_multiple($files) {
if (empty($files)) {
return MENU_ACCESS_DENIED;
}
$forms = array();
foreach ($files as $file) {
// To maintain unique form_ids, append the file id.
$forms[] = array(
'media_edit_' . $file->fid,
$file,
);
}
$form = call_user_func_array('multiform_get_form', $forms);
$form['#attributes']['class'][] = 'media-bulk-upload-multiedit-form';
// Improve the display of each file form.
foreach (element_children($form['multiform']) as $key) {
$fid = $form['multiform'][$key]['fid']['#value'];
$file = $files[$fid];
// Add the filename to each 'subform'.
$title = t('<em>Edit @type</em> @title', array(
'@type' => $file->type,
'@title' => $file->filename,
));
$form['multiform'][$key]['#prefix'] = '<h2>' . $title . '</h2>';
// Remove the 'replace file' functionality.
$form['multiform'][$key]['replace_upload']['#access'] = FALSE;
$form['multiform'][$key]['replace_keep_original_filename']['#access'] = FALSE;
// Remove any actions.
$form['multiform'][$key]['actions']['#access'] = FALSE;
// Hide additional settings under a collapsible fieldset.
$form['multiform'][$key]['settings'] = array(
'#type' => 'fieldset',
'#title' => t('Additional settings'),
'#weight' => 99,
'#collapsible' => TRUE,
'#collapsed' => TRUE,
// FAPI #collapsed and #collapsible not available in a render array.
'#attached' => array(
'js' => array(
'misc/form.js',
'misc/collapse.js',
),
),
'#attributes' => array(
'class' => array(
'collapsible',
'collapsed',
),
),
);
$form['multiform'][$key]['settings']['additional_settings'] = $form['multiform'][$key]['additional_settings'];
unset($form['multiform'][$key]['additional_settings']);
}
if (isset($form['buttons']['Delete'])) {
$form['buttons']['Delete']['#access'] = FALSE;
}
// Add a cancel button at the bottom of the form.
$form['buttons']['cancel'] = array(
'#type' => 'link',
'#title' => t('Cancel'),
'#weight' => 50,
);
if (isset($_GET['destination'])) {
$form['buttons']['cancel']['#href'] = $_GET['destination'];
}
else {
if (user_access('administer files')) {
$form['buttons']['cancel']['#href'] = 'admin/content/file';
}
else {
$form['buttons']['cancel']['#href'] = '<front>';
}
}
// Override the page title since each file form sets a title.
drupal_set_title(t('Edit multiple files'));
// Allow other modules to alter the form.
drupal_alter('media_bulk_upload_edit_multiple_form', $form);
return $form;
}
Functions
Name | Description |
---|---|
media_bulk_upload_file_page_edit_multiple | Menu callback; Edit multiple files on the same page using multiform module. |