setka-8.x-1.0/setka_editor.install
setka_editor.install
<?php /** * @file * Install, update and uninstall functions for Setka Editor module. */ use Drupal\Core\Database\Database; /** * Implements hook_requirements(). */ function setka_editor_requirements($phase) { $requirements['setka_editor'] = [ 'title' => t('Setka Editor'), ]; if ($phase == 'install' || $phase == 'runtime') { $directory = \Drupal::service('file_system')->realpath("public://setka"); if ($phase == 'install') { file_prepare_directory($directory, FILE_CREATE_DIRECTORY | FILE_MODIFY_PERMISSIONS); } $is_writable = is_writable($directory); $is_directory = is_dir($directory); if (!$is_writable || !$is_directory) { if (!$is_directory) { $error = t('The directory %directory does not exist.', ['%directory' => $directory]); } else { $error = t('The directory %directory is not writable.', ['%directory' => $directory]); } $description = t("You may need to create directory manually at file system or change the current directory's permissions so that it is writable."); if (!empty($description)) { $description = [ '#type' => 'inline_template', '#template' => '{{ error }} {{ description }}', '#context' => [ 'error' => $error, 'description' => $description, ], ]; $requirements['setka_editor']['description'] = $description; $requirements['setka_editor']['severity'] = REQUIREMENT_ERROR; } } else { $requirements['setka_editor']['value'] = t('Setka Editor images directory is writable.'); } } return $requirements; } /** * Adds specific Setka Editor fields to DB. */ function setka_editor_install() { $schema = Database::getConnection()->schema(); if (!$schema->fieldExists('file_managed', 'alt')) { $spec = [ 'type' => 'varchar', 'description' => "Setka Editor images alt", 'length' => 255, 'not null' => FALSE, ]; $schema->addField('file_managed', 'alt', $spec); } } /** * Removes specific Setka Editor fields from DB. */ function setka_editor_uninstall() { $schema = Database::getConnection()->schema(); if ($schema->fieldExists('file_managed', 'alt')) { $schema->dropField('file_managed', 'alt'); } } /** * Add alt field for Setka Editor images. */ function setka_editor_update_8001() { $spec = [ 'type' => 'varchar', 'description' => "Setka Editor images alt", 'length' => 255, 'not null' => FALSE, ]; $schema = Database::getConnection()->schema(); $schema->addField('file_managed', 'alt', $spec); }