1 file.admin.inc | file_type_form($form, &$form_state, $type = NULL) |
Form constructor for the file type settings form.
Parameters
object $type: The file type.
See also
file_file_type_form_validate()
file_file_type_form_submit()
File
- core/
modules/ file/ file.admin.inc, line 151 - Admin page callbacks for the File module.
Code
function file_type_form($form, &$form_state, $type = NULL) {
if (!isset($type->type)) {
// This is a new type.
$type = array(
'type' => '',
'name' => '',
'description' => '',
'module' => 'file',
'mimetypes' => array(),
);
$type = (object) $type;
}
$form['#file_type'] = $type;
$form['module'] = array(
'#type' => 'hidden',
'#value' => $type->module,
);
$form['name'] = array(
'#type' => 'textfield',
'#title' => t('Name'),
'#description' => t('This is the human readable name of the file type.'),
'#required' => TRUE,
'#default_value' => $type->name,
'#size' => 30,
);
$form['type'] = array(
'#type' => 'machine_name',
'#default_value' => $type->type,
'#maxlength' => 255,
'#disabled' => (bool) $type->type,
'#machine_name' => array(
'exists' => 'file_type_load',
'source' => array('name'),
),
'#description' => t('A unique machine-readable name for this file type. It must only contain lowercase letters, numbers, and underscores.'),
);
$form['description'] = array(
'#type' => 'textarea',
'#title' => t('Description'),
'#description' => t('This is the description of the file type.'),
'#default_value' => $type->description,
);
$mimetypes_description = t('The media (MIME) type(s) to be associated with this file type. When uploading a file, Backdrop automatically identifies the file type based on its media type. If multiple file types have the same media type, you will be prompted to manually select the file type.');
$mimetypes_description .= ' ' . l(t('More information about media types'), 'https://en.wikipedia.org/wiki/Media_type') . '.';
$mimetypes_description .= theme('item_list', array('items' => array(
t('Enter one media type per line'),
t('Asterisks can be used as wildcards (e.g.: !example)', array('!example' => '<code>image/*</code>')),
)));
$form['mimetypes'] = array(
'#type' => 'textarea',
'#title' => t('Media types'),
'#description' => $mimetypes_description,
'#default_value' => implode("\n", $type->mimetypes),
);
include_once BACKDROP_ROOT . '/core/includes/file.mimetypes.inc';
$mimetypes = file_mimetype_mapping();
$form['mimetype_mapping'] = array(
'#type' => 'fieldset',
'#title' => t('Available media types'),
'#collapsible' => TRUE,
'#collapsed' => TRUE,
);
$form['mimetype_mapping']['mapping'] = array(
'#theme' => 'item_list',
'#items' => $mimetypes['mimetypes'],
);
$form['actions'] = array('#type' => 'actions');
$form['actions']['submit'] = array(
'#type' => 'submit',
'#value' => t('Save'),
);
if (!empty($type->type)) {
$form['actions']['delete'] = array(
'#type' => 'submit',
'#value' => t('Delete'),
);
}
return $form;
}