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