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);
}
