varbase_core-8.x-8.18/modules/varbase_tour/varbase_tour.module

modules/varbase_tour/varbase_tour.module
<?php

/**
 * @file
 * Contains varbase_tour.module.
 */

/**
 * Implements hook_page_attachments().
 */
function varbase_tour_page_attachments(array &$page) {
  // Given that the current user is a logged in user.
  if (\Drupal::currentUser()->isAuthenticated()) {

    // When the url is NOT an admin route or in the admin theme.
    if (!\Drupal::service('router.admin_context')->isAdminRoute()) {
      // Then attach the seven tour styling library.
      // And attach the varbase tour default theme library.
      $page['#attached']['library'][] = 'seven/tour-styling';
      // $page['#attached']['library'][] = 'varbase_tour/admin-theme';
      $page['#attached']['library'][] = 'varbase_tour/default-theme';
    }

    // When the current page is the front page.
    if (\Drupal::service('path.matcher')->isFrontPage()) {
      $query_welcome = \Drupal::request()->query->get('welcome');
      if (isset($query_welcome)) {
        $varbase_tour_config = \Drupal::service('config.factory')->getEditable('varbase_core.general_settings');
        $welcome_status = $varbase_tour_config->get('welcome_status');

        // When we do have "/?tour=1&welcome=done" is in the URL address.
        // for the front page.
        if ($query_welcome == 'done'
            && isset($welcome_status)
            && $welcome_status == 1) {
          // Then update the "welcome status" checkbox config to unchecked.
          $varbase_tour_config->set('welcome_status', 0);
          $varbase_tour_config->save();
        }
      }
    }
  }
}

/**
 * Implements hook_theme().
 */
function varbase_tour_theme($existing, $type, $theme, $path) {
  return [
    'welcome_modal' => [
      'variables' => [
        'items' => [],
      ],
    ],
  ];
}

/**
 * Implements hook_page_top().
 */
function varbase_tour_page_top(array &$page_top) {

  // Given that the current user is a logged in user.
  if (\Drupal::currentUser()->isAuthenticated()) {
    // And the current page is the front page.
    if (\Drupal::service('path.matcher')->isFrontPage()) {
      $query_welcome = \Drupal::request()->query->get('welcome');
      if (isset($query_welcome)) {
        $varbase_tour_config = \Drupal::service('config.factory')->getEditable('varbase_core.general_settings');
        // When we do have "/?welcome" is in the URL address for the front page.
        if ($query_welcome != 'done') {
          // And the "welcome status" checkbox config is checked.
          $welcome_status = $varbase_tour_config->get('welcome_status');
          if (isset($welcome_status) && $welcome_status == 1) {
            $page_top['welcome_modal'] = [
              '#type' => 'container',
              '#theme' => 'welcome_modal',
              '#access' => \Drupal::currentUser()->isAuthenticated(),
              '#cache' => [
                'keys' => ['varbase_core'],
                'contexts' => ['user.permissions'],
              ],
            ];
          }
        }
      }
    }
  }
}

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

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