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

Главная | Обратная связь

drupal hosting | друпал хостинг | it patrol .inc