1.20.x file.install file_update_1005()

Add the default file types and convert custom or modified file types from Drupal 7 file_entity.

File

modules/file/file.install, line 901
Install, update and uninstall functions for File module.

Code

function file_update_1005() {
  $default_file_types = array(
    'audio' => array(
      'type' => 'audio',
      'name' => 'Audio',
      'description' => 'An audio file is a sound recording.',
      'mimetypes' => array(
        'audio/*'
      ),
      'disabled' => FALSE,
      'storage' => 4,
      'module' => 'file'
    ),
    'document' => array(
      'type' => 'document',
      'name' => 'Document',
      'description' => 'A document file is written information.',
      'mimetypes' => array(
        'text/plain',
        'application/msword',
        'application/vnd.ms-excel',
        'application/pdf',
        'application/vnd.ms-powerpoint',
        'application/vnd.oasis.opendocument.text',
        'application/vnd.oasis.opendocument.spreadsheet',
        'application/vnd.oasis.opendocument.presentation',
        'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet',
        'application/vnd.openxmlformats-officedocument.presentationml.presentation',
        'application/vnd.openxmlformats-officedocument.wordprocessingml.document',
      ),
      'disabled' => FALSE,
      'storage' => 4,
      'module' => 'file',
    ),
    'image' => array(
      'type' => 'image',
      'name' => 'Image',
      'description' => 'An image file is a still visual.',
      'mimetypes' => array(
        'image/*',
      ),
      'disabled' => FALSE,
      'storage' => 4,
      'module' => 'file',
    ),
    'video' => array(
      'type' => 'video',
      'name' => 'Video',
      'description' => 'A video file is a moving visual recording.',
      'mimetypes' => array(
        'video/*',
      ),
      'disabled' => FALSE,
      'storage' => 4,
      'module' => 'file',
    ),
  );
  foreach ($default_file_types as $machine => $type) {
    $config = config('file.type.' . $machine);
    if ($config->isNew()) {
      $config->setData($type);
      $config->save();
    }
  }

  // Check to see if there were file types in a D7 db.
  if (db_table_exists('file_type')) {
    $result = db_query("SELECT type, label, description, mimetypes FROM {file_type}")->fetchAll();
    foreach ($result as $record) {
      $mimetypes = unserialize($record->mimetypes);
      $storage = FILE_TYPE_STORAGE_NORMAL;

      if (file_type_load($record->type)) {
        $storage = FILE_TYPE_STORAGE_OVERRIDE;
      }

      $config = config('file.type.' . $record->type);
      $config->set('module', 'file');
      $config->set('type', $record->type);
      $config->set('name', $record->label);
      $config->set('description', $record->description);
      $config->set('mimetypes', $mimetypes);
      $config->set('storage', $storage);
      $config->save();
    }

    // Delete the file type table.
    db_drop_table('file_type');
  }
}