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

uptime_widget.install
<?php

/**
 * @file
 * Sets post-install messages and deletes variables when uninstalled.
 */

use Drupal\Core\Url;
use Drupal\Core\Link;

/**
 * Implements hook_install().
 */
function uptime_widget_install() {
  global $base_url;
  \Drupal::configFactory()->getEditable('uptime_widget.settings')->set('url_name', $base_url)->save();
  $uptime_admin_page_url = Url::fromRoute('uptime.admin_page');
  $block_admin_display = Url::fromRoute('block.admin_display');
  $text = t('@config_link and place the block at @blocks_link.', [
      '@config_link' => Link::fromTextAndUrl(t('Get an API key'), $uptime_admin_page_url)->toString(),
      '@blocks_link' => Link::fromTextAndUrl(t('Structure > Blocks > Place the Uptime block'), $block_admin_display)->toString(),
    ]
  );
  \Drupal::messenger()->addMessage($text);
}

/**
 * Implements hook_uninstall().
 */
function uptime_widget_uninstall() {
  // Clear variables.
  \Drupal::state()->delete('uptime_widget.ratio');
  \Drupal::state()->delete('uptime_widget.next_execution');
  \Drupal::state()->delete('uptime_widget.monitors');
  drupal_flush_all_caches();
}

/**
 * Implements hook_requirements().
 */
function uptime_widget_requirements($phase) {
  $requirements = [];

  // Report Uptime widget.
  if ($phase == 'runtime') {
    $config = \Drupal::config('uptime_widget.settings');
    $requirements['uptime_widget'] = [
      'title' => t('Uptime widget'),
      'value' => t('The current Uptime ratio is @ratio %.', ['@ratio' => \Drupal::state()->get('uptime_widget.ratio', 0)]),
      'severity' => REQUIREMENT_INFO,
    ];
    if (!($config->get('api_key') || $config->get('monitor_id'))) {
      $config_link = Link::createFromRoute(t('Uptime widget settings'), 'uptime.admin_page')->toString();
      $requirements['uptime_widget']['description'] = t('The API key and the Monitor ID should be set in the @config.', ['@config' => $config_link]);
      $requirements['uptime_widget']['value'] = t('API credentials is not set yet.');
      $requirements['uptime_widget']['severity'] = REQUIREMENT_WARNING;
    }
  }

  return $requirements;
}

/**
 * Remove unnecessary configuration parts.
 */
function uptime_widget_update_8001() {
  $config = \Drupal::configFactory()->getEditable('uptime_widget.settings');
  $config->clear('next_execution');
  $config->clear('ratio');
  $config->save();
}

/**
 * Change uptime_widget_fancy_block plugin id.
 */
function uptime_widget_update_8101() {
  $uptime_block_id = 'block.block.uptime';
  $all_config_array = \Drupal::configFactory()->listAll();
  foreach ($all_config_array as $value) {
    if (strpos($value, $uptime_block_id) !== FALSE) {
      $config = \Drupal::configFactory()->getEditable($value);
      $config->set('plugin', 'uptime_widget_block');
      $config->save();
    }
  }
}

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

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