1 file.install | file_update_1006() |
Add the default file display settings and convert saved file display settings from Drupal 7 file_entity.
File
- core/
modules/ file/ file.install, line 1011 - Install, update and uninstall functions for File module.
Code
function file_update_1006() {
$default_file_displays = array(
'audio' => array(
'type' => 'audio',
'default' => array(
'formatter' => 'file_field_file_audio',
'settings' => array(
'file_field_file_audio' => array(
'controls' => 1,
'autoplay' => 0,
'loop' => 0,
'preload' => '',
'multiple_file_behavior' => 'tags',
),
),
),
'preview' => array(
'formatter' => 'file_field_file_audio',
'settings' => array(
'file_field_file_audio' => array(
'controls' => 1,
'autoplay' => 0,
'loop' => 0,
'preload' => '',
'multiple_file_behavior' => 'tags',
),
),
),
),
'document' => array(
'type' => 'document',
'default' => array(
'formatter' => 'file_field_file_download_link',
'settings' => array(
'file_field_file_download_link' => array(
'text' => 'Download [file:name]',
),
),
),
'preview' => array(
'formatter' => 'file_field_file_download_link',
'settings' => array(
'file_field_file_download_link' => array(
'text' => 'Download [file:name]',
),
),
),
),
'image' => array(
'type' => 'image',
'default' => array(
'formatter' => 'file_field_image',
'settings' => array(
'file_field_image' => array(
'image_style' => '',
'image_link' => '',
'image_float' => '',
),
),
),
'preview' => array(
'formatter' => 'file_field_image',
'settings' => array(
'file_field_image' => array(
'image_style' => 'thumbnail',
'image_link' => '',
'image_float' => '',
),
),
),
),
'video' => array(
'type' => 'video',
'default' => array(
'formatter' => 'file_field_file_video',
'settings' => array(
'file_field_file_video' => array(
'controls' => 1,
'autoplay' => 0,
'loop' => 0,
'muted' => 0,
'width' => '',
'height' => '',
'preload' => '',
'multiple_file_behavior' => 'tags',
),
),
),
'preview' => array(
'formatter' => 'file_field_file_video',
'settings' => array(
'file_field_file_video' => array(
'controls' => 1,
'autoplay' => 0,
'loop' => 0,
'muted' => 0,
'width' => '',
'height' => '',
'preload' => '',
'multiple_file_behavior' => 'tags',
),
),
),
),
);
foreach ($default_file_displays as $machine => $display) {
$config = config('file_display.' . $machine);
if ($config->isNew()) {
$config->setData($display);
$config->save();
}
}
if (db_table_exists('file_display')) {
$types = array();
$formatter_weights = array();
$result = db_query("SELECT name, weight, settings FROM {file_display} WHERE status = 1")->fetchAll();
foreach ($result as $record) {
$name_parts = explode('__', $record->name);
$filetype = $name_parts[0];
$view_mode = $name_parts[1];
$formatter = $name_parts[2];
$settings = unserialize($record->settings);
$types[$filetype][$view_mode]['settings'][$formatter] = $settings;
$formatter_weights[$filetype][$view_mode][$formatter] = $record->weight;
}
foreach ($types as $filetype => $view_modes) {
$config = config('file_display.' . $filetype);
$config->set('type', $filetype);
foreach ($view_modes as $name => $settings) {
// Pick one formatter for each view mode. Select by lowest weight.
$weight_formatters = array_flip($formatter_weights[$filetype][$name]);
ksort($weight_formatters);
$formatter = reset($weight_formatters);
$view_mode_settings = array(
'formatter' => $formatter,
'settings' => $settings['settings'],
);
$config->set($name, $view_mode_settings);
}
$config->save();
}
// Delete the file type table.
db_drop_table('file_display');
}
}