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