auto_alter-8.x-1.x-dev/auto_alter.install

auto_alter.install
<?php

/**
 * @file
 * Install, update and uninstall functions for the auto_alter module.
 */

use Drupal\auto_alter\AutoAlterCredentials;
use Drupal\Core\Url;
use Drupal\image\Entity\ImageStyle;

/**
 * Implements hook_install().
 */
function auto_alter_install() {
  $style = ImageStyle::create(['name' => 'auto_alter_help', 'label' => 'Auto Alter help (get smaller files)']);

  $configuration = [
    'uuid' => NULL,
    'id' => 'image_scale',
    'weight' => 0,
    'data' => [
      'width' => 1440,
      'height' => 1440,
    ],
  ];
  $configuration_convert = [
    'uuid' => NULL,
    'id' => 'image_convert',
    'weight' => 1,
    'data' => [
      'extension' => 'jpg',
    ],
  ];
  $effect = \Drupal::service('plugin.manager.image.effect')->createInstance($configuration['id'], $configuration);
  $effect_convert = \Drupal::service('plugin.manager.image.effect')->createInstance($configuration_convert['id'], $configuration_convert);
  // Add it to the image style and save.
  $style->addImageEffect($effect->getConfiguration());
  $style->addImageEffect($effect_convert->getConfiguration());
  $style->save();
}

/**
 * Implements hook_requirements().
 */
function auto_alter_requirements($phase) {
  $requirements = [];
  if ($phase == 'runtime') {
    $config = \Drupal::config('auto_alter.settings');
    $credentials = new AutoAlterCredentials($config);
    $key = $credentials->getApikey();
    $url = $config->get('endpoint');
    $engine = $config->get('engine');
    if ($engine == 'alttext_ai') {
      $url= true;
    }
    if (!$key || !$url) {
      $requirements['auto_alter'] = [
        'title' => t('Automatic Alternative Text'),
        'severity' => REQUIREMENT_ERROR,
        'description' => t('API key and Endpoint URL is not set and it is required for the module to work. Please set it up at the <a href=":settings">Image Automatic Alternative Text settings page</a>.', [
          ':settings' => Url::fromRoute('auto_alter.settings')->toString(),
        ]),
      ];
    }
  }
  return $requirements;
}

/**
 * Implements hook_uninstall().
 */
function auto_alter_uninstall() {
  $configs = [
    'image.style.auto_alter_help',
  ];

  foreach ($configs as $config) {
    // Deleting config.
    \Drupal::configFactory()->getEditable($config)->delete();
  }
}

/**
 * Implements hook_update_N().
 */
function auto_alter_update_8400() {
  \Drupal::configFactory()->getEditable('image.style.auto_alter_help')->delete();
  $style = ImageStyle::create(['name' => 'auto_alter_help', 'label' => 'Auto Alter help (get smaller files)']);
  $configuration = [
    'uuid' => NULL,
    'id' => 'image_scale',
    'weight' => 0,
    'data' => [
      'width' => 1440,
      'height' => 1440,
    ],
  ];
  $configuration_convert = [
    'uuid' => NULL,
    'id' => 'image_convert',
    'weight' => 1,
    'data' => [
      'extension' => 'jpg',
    ],
  ];
  $effect = \Drupal::service('plugin.manager.image.effect')->createInstance($configuration['id'], $configuration);
  $effect_convert = \Drupal::service('plugin.manager.image.effect')->createInstance($configuration_convert['id'], $configuration_convert);
  // Add it to the image style and save.
  $style->addImageEffect($effect->getConfiguration());
  $style->addImageEffect($effect_convert->getConfiguration());
  $style->save();
}

/**
 * Convert api key config to credential provider config.
 */
function auto_alter_update_8401() {
   $config = \Drupal::configFactory()->getEditable('auto_alter.settings');
   $key = $config->get('api_key');
   if ($key) {
       $config
         ->set('credential_provider', 'config')
         ->set('credentials.config.api_key', $key)
         ->clear('api_key')
         ->save(TRUE);
  }
}

function auto_alter_update_9001() {
  $config = \Drupal::configFactory()->getEditable('auto_alter.settings');
  $engine = $config->get('engine');
  $key = $config->get('credentials.config.api_key');
  if (is_null($engine) && $key) {
    $config
      ->set('engine', 'azure_cognitive_services')
      ->save(TRUE);
  }
}

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

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