ajax_dashboard-8.x-2.x-dev/ajax_dashboard.module

ajax_dashboard.module
<?php

/**
 * @file
 * Contains ajax_dashboard.module.
 */

use Drupal\Core\Routing\RouteMatchInterface;
use Drupal\ajax_dashboard\AJAXDashboard;
use Drupal\ajax_dashboard\AJAXDashboardControl;
use Drupal\ajax_dashboard\AJAXDashboardButton;

/**
 * Implements hook_help().
 */
function ajax_dashboard_help($route_name, RouteMatchInterface $route_match) {
  switch ($route_name) {
    // Main module help for the ajax_dashboard module.
    case 'help.page.ajax_dashboard':
      $output = '';
      $output .= '<h3>' . t('About') . '</h3>';
      $output .= '<p>' . t('Creates a means of producing simple, themable ajax dashboards') . '</p>';
      return $output;

    default:
  }
}

/**
 * Implements hook_theme().
 */
function ajax_dashboard_theme() {
  return [
    'ajax_dashboard' => [
      'render element' => 'dashboard',
    ],
    'ajax_dashboard_control' => [
      'render element' => 'control',
    ],
    'ajax_dashboard_button' => [
      'render element' => 'button',
    ],

  ];
}

/**
 * Implements hook_theme_suggestions_HOOK().
 */
function ajax_dashboard_theme_suggestions_ajax_dashboard($variables) {
  $suggestions = [];
  $original = $variables['theme_hook_original'];
  $suggestions[] = $original;
  $suggestions[] = $original . '__' . $variables['dashboard']['#id'];

  return $suggestions;
}

/**
 * Implements hook_theme_suggestions_HOOK().
 */
function ajax_dashboard_theme_suggestions_ajax_dashboard_control($variables) {
  $suggestions = [];
  $original = $variables['theme_hook_original'];
  $suggestions[] = $original;
  $suggestions[] = $original . '__' . $variables['control']['#control_id'];
  $suggestions[] = $original . '__' . $variables['control']['#dashboard_id'];
  $suggestions[] = $original . '__' . $variables['control']['#dashboard_id'] . '__' . $variables['control']['#control_id'];

  return $suggestions;
}

/**
 * Implements hook_theme_suggestions_HOOK().
 */
function ajax_dashboard_theme_suggestions_ajax_dashboard_button($variables) {
  $suggestions = [];
  $original = $variables['theme_hook_original'];
  $suggestions[] = $original;
  $suggestions[] = $original . '__' . $variables['button']['#button_id'];
  $suggestions[] = $original . '__' . $variables['button']['#control_id'];
  $suggestions[] = $original . '__' . $variables['button']['#dashboard_id'];
  $suggestions[] = $original . '__' . $variables['button']['#control_id'] . '__' . $variables['button']['#button_id'];
  $suggestions[] = $original . '__' . $variables['button']['#dashboard_id'] . '__' . $variables['button']['#button_id'];
  $suggestions[] = $original . '__' . $variables['button']['#dashboard_id'] . '__' . $variables['button']['#control_id'];
  $suggestions[] = $original . '__' . $variables['button']['#dashboard_id'] . '__' . $variables['button']['#control_id'] . '__' . $variables['button']['#button_id'];

  return $suggestions;
}

/**
 * Implements hook_preprocess_HOOK().
 *
 * @param $variables
 * @throws \Drupal\Core\Entity\EntityStorageException
 */
function ajax_dashboard_preprocess_ajax_dashboard(&$variables) {
  if ($variables['dashboard']['#id']) {
    $variables['dashboard']['#params'] = !empty($variables['dashboard']['#params']) ? $variables['dashboard']['#params'] : [];
    $dashboard_config = AJAXDashboard::getDashboardConfig($variables['dashboard']['#id'], $variables['dashboard']['#params']);

    // We got the dashboard either from config or YAML. Load it here.
    if (!empty($dashboard_config)) {
      AJAXDashboard::buildDashboard($dashboard_config, $variables);
    }
  }
}

/**
 * Implements hook_preprocess_HOOK().
 *
 * @param $variables
 */
function ajax_dashboard_preprocess_ajax_dashboard_control(&$variables) {
  AJAXDashboardControl::buildControl($variables);
}

/**
 * Implements hook_preprocess_HOOK().
 *
 * @param $variables
 * @throws \Drupal\Core\TypedData\Exception\MissingDataException
 */
function ajax_dashboard_preprocess_ajax_dashboard_button(&$variables) {
  AJAXDashboardButton::buildButton($variables);
}

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

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