acquia_connector-8.x-1.22/acquia_connector.module
acquia_connector.module
<?php
/**
* @file
* Acquia Connector module.
*/
use Drupal\Core\Link;
use Drupal\Core\Url;
/**
* Implements hook_help().
*/
function acquia_connector_help($route_name) {
switch ($route_name) {
case 'help.page.acquia_connector':
$output = '<h2>' . t('Acquia Connector') . '</h2>';
$output .= '<p>' . t('The Acquia Connector module allows you to connect your site to Acquia.') . '<p>';
$output .= '<p>' . Link::fromTextAndUrl(t('Read more about the installation and use of the Acquia Connector module on the Acquia Library'), Url::fromUri('https://docs.acquia.com/cloud-platform/onboarding/install/', []))->toString() . '</p>';
$output .= '<dt>' . t('Receive updates from Acquia Subscription') . '</dt>';
$output .= '<dd>' . t('Receive dynamic updates on the Network Settings page from Acquia.com about your subscription and new features.') . '</dd>';
$output .= '</dl>';
return $output;
}
}
/**
* Implements hook_theme().
*/
function acquia_connector_theme() {
return [
'acquia_connector_banner' => [
'render element' => 'form',
'template' => 'acquia_connector_banner',
],
];
}
/**
* Implements hook_toolbar().
*/
function acquia_connector_toolbar() {
if (!\Drupal::currentUser()->hasPermission('view acquia connector toolbar')) {
return [];
}
$link = [
'#type' => 'link',
'#attributes' => [
'class' => [
'toolbar-icon',
],
],
];
/** @var \Drupal\acquia_connector\Subscription $subscription */
$subscription = Drupal::service('acquia_connector.subscription');
if ($subscription->isActive()) {
$subscription_data = $subscription->getSubscription();
if (isset($subscription_data['active']) && $subscription_data['active'] !== FALSE) {
$link['#title'] = t('Subscription active');
$link['#attributes']['class'][] = 'acquia-active-subscription';
}
$link['#url'] = Url::fromUri('https://cloud.acquia.com/app/develop/applications/' . $subscription->getSettings()->getApplicationUuid());
}
if (empty($link['#url'])) {
$link['#title'] = t('Subscription not active');
$link['#attributes']['class'][] = 'acquia-inactive-subscription';
$link['#url'] = Url::fromRoute('acquia_connector.setup_oauth');
}
return [
'acquia_connector' => [
'#type' => 'toolbar_item',
'tab' => $link,
'#weight' => 200,
'#cache' => [
'tags' => ['acquia_connector_subscription'],
],
'#attached' => [
'library' => [
'acquia_connector/acquia_connector.icons',
],
],
],
];
}
/**
* Implements hook_modules_installed().
*/
function acquia_connector_modules_installed(array $modules) {
/** @var \Drupal\acquia_connector\Services\AcquiaTelemetryService $telemetry_service */
$telemetry_service = \Drupal::service('acquia_connector.telemetry_service');
$installed_acquia_extensions = array_intersect($modules, $telemetry_service->getAcquiaExtensionNames());
if ($installed_acquia_extensions) {
$event_properties = ['installed_extensions' => array_values($installed_acquia_extensions)];
$telemetry_service->sendTelemetry('Acquia extensions installed', $event_properties);
}
$acquia_modules = array_filter($modules, static function (string $name) {
return str_starts_with($name, 'acquia_');
});
if (count($acquia_modules) > 0) {
\Drupal::service('acquia_connector.subscription')->getSubscription(TRUE);
}
}
/**
* Implements hook_modules_uninstalled().
*/
function acquia_connector_modules_uninstalled(array $modules) {
/** @var \Drupal\acquia_connector\Services\AcquiaTelemetryService $telemetry_service */
$telemetry_service = \Drupal::service('acquia_connector.telemetry_service');
$uninstalled_acquia_extensions = array_intersect($modules, $telemetry_service->getAcquiaExtensionNames());
if ($uninstalled_acquia_extensions) {
$event_properties = ['uninstalled_extensions' => array_values($uninstalled_acquia_extensions)];
$telemetry_service->sendTelemetry('Acquia extensions uninstalled', $event_properties);
}
$acquia_modules = array_filter($modules, static function (string $name) {
return str_starts_with($name, 'acquia_');
});
if (count($acquia_modules) > 0) {
\Drupal::service('acquia_connector.subscription')->getSubscription(TRUE);
}
}
/**
* Implements hook_cron().
*/
function acquia_connector_cron() {
$auth_service = \Drupal::service('acquia_connector.auth_service');
$auth_service->cronRefresh();
}
/**
* Implements hook_module_implements_alter().
*/
function acquia_connector_module_implements_alter(&$implementations, $hook) {
// The acquia_telemetry is deprecated, if the module could not be uninstalled
// while upgrading to acquia_connector:4.0.0.
if (isset($implementations['acquia_telemetry'])) {
unset($implementations['acquia_telemetry']);
}
}
