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

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

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