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