varbase_dashboards-1.0.x-dev/varbase_dashboards.module

varbase_dashboards.module
<?php

/**
 * @file
 * Contains varbase_dashboards.module.
 */

/**
 * Implements hook_element_info_alter().
 */
function varbase_dashboards_page_attachments(array &$attachments) {
  $routers = [
    'entity.dashboard.canonical',
    'layout_builder.dashboards.view',
    'layout_builder.dashboards_override.view',
  ];

  if (in_array(\Drupal::routeMatch()->getRouteName(), $routers)) {
    // Attach our extra CSS for Varbase dashboard.
    $attachments['#attached']['library'][] = 'varbase_dashboards/style';
  }
}

/**
 * Implements hook_toolbar().
 */
function varbase_dashboards_toolbar_alter(&$items) {
  if (isset($items['dashboards'])) {
    unset($items['dashboards']);
  }
}

/**
 * Implements hook_element_info_alter().
 */
function varbase_dashboards_element_info_alter(array &$types) {
  if (isset($types['toolbar'])) {
    if (\Drupal::moduleHandler()->moduleExists('navigation')) {
      $types['toolbar']['#attached']['library'][] = 'varbase_dashboards/admin-navigation';
    }
    elseif (\Drupal::moduleHandler()->moduleExists('admin_toolbar')) {
      $types['toolbar']['#attached']['library'][] = 'varbase_dashboards/admin-toolbar';
    }
  }
}

/**
 * Implements hook_theme().
 */
function varbase_dashboards_theme($existing, $type, $theme, $path) {

  $theme = [
    'block__varbase_dashboard_user' => [
      'base hook' => 'block',
    ],
  ];

  if (\Drupal::service('theme.manager')->getActiveTheme()->getName() === \Drupal::config('system.theme')->get('admin')) {
    $active_theme = \Drupal::theme()->getActiveTheme()->getName();
    $base_theme_extensions = \Drupal::theme()->getActiveTheme()->getBaseThemeExtensions();

    if ($active_theme === 'gin' || in_array('gin', array_keys($base_theme_extensions))) {
      foreach (_back_end_layout_themes() as $layout_name) {
        $theme[$layout_name] = [
          'template' => str_replace("_", "-", $layout_name),
          'render element' => 'content',
          'base hook' => 'layout',
          'path' => \Drupal::moduleHandler()->getModule("varbase_dashboards")->getPath() . '/templates/layouts/gin',
        ];
      }
    }
    elseif ($active_theme === 'claro' || in_array('claro', array_keys($base_theme_extensions))) {
      foreach (_back_end_layout_themes() as $layout_name) {
        $theme[$layout_name] = [
          'template' => str_replace("_", "-", $layout_name),
          'render element' => 'content',
          'base hook' => 'layout',
          'path' => \Drupal::moduleHandler()->getModule("varbase_dashboards")->getPath() . '/templates/layouts/claro',
        ];
      }
    }
  }

  return $theme;
}

/**
 * Implements hook_theme_registry_alter().
 */
function varbase_dashboards_theme_registry_alter(&$info) {

  if (\Drupal::service('theme.manager')->getActiveTheme()->getName() === \Drupal::config('system.theme')->get('admin')) {
    $active_theme = \Drupal::theme()->getActiveTheme()->getName();
    $base_theme_extensions = \Drupal::theme()->getActiveTheme()->getBaseThemeExtensions();

    if ($active_theme === 'gin' || in_array('gin', array_keys($base_theme_extensions))) {
      foreach (_back_end_layout_themes() as $layout_id) {
        $info[$layout_id]['theme path'] = \Drupal::moduleHandler()->getModule("varbase_dashboards")->getPath();
        $info[$layout_id]['path'] = \Drupal::moduleHandler()->getModule("varbase_dashboards")->getPath() . '/templates/layouts/gin';
      }
    }
    elseif ($active_theme === 'claro' || in_array('claro', array_keys($base_theme_extensions))) {
      foreach (_back_end_layout_themes() as $layout_id) {
        $info[$layout_id]['theme path'] = \Drupal::moduleHandler()->getModule("varbase_dashboards")->getPath();
        $info[$layout_id]['path'] = \Drupal::moduleHandler()->getModule("varbase_dashboards")->getPath() . '/templates/layouts/claro';
      }
    }
  }
}

/**
 * Is the layout ID in the preset of back-end supported layouts.
 */
function _is_in_back_end_supported_layouts($layout_id) {
  return in_array($layout_id, _back_end_supported_layouts());
}

/**
 * Back-End supported layouts.
 */
function _back_end_supported_layouts() {
  $back_end_layout_list = [
    'layout_onecol',
    'layout_twocol',
    'layout_twocol_bricks',
    'layout_threecol_25_50_25',
    'layout_threecol_33_34_33',
    'layout_twocol_section',
    'layout_threecol_section',
    'layout_fourcol_section',
    'layout_1',
    'layout_2',
    'layout_3',
  ];

  return $back_end_layout_list;
}

/**
 * Back-End supported layout themes.
 */
function _back_end_layout_themes() {
  $back_end_layout_list = [
    'layout__onecol',
    'layout__twocol',
    'layout__twocol_bricks',
    'layout__threecol_25_50_25',
    'layout__threecol_33_34_33',
    'layout__twocol_section',
    'layout__threecol_section',
    'layout__fourcol_section',
    'layouts__1',
    'layouts__2',
    'layouts__3',
  ];

  return $back_end_layout_list;
}

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

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