Skip to content
Snippets Groups Projects
Forked from project / debugbar
3 commits behind the upstream repository.
Code owners
Assign users and groups as approvers for specific file changes. Learn more.
debugbar.module 1.69 KiB
<?php

/**
 * @file
 * Module implementation file.
 */

use Drupal\Core\Render\Markup;
use Drupal\debugbar\LazyBuilder;

/**
 * Implements hook_page_top().
 */
function debugbar_page_top(array &$page_top) {
  /** @var \DebugBar\DebugBar $debugBar */
  $debugBar = Drupal::service('debugbar.debugbar');

  $scripts = [];
  foreach ($debugBar->getJavascriptRenderer()
    ->getAssets('inline_head') as $script) {
    $scripts[] = [
      '#markup' => Markup::create($script),
    ];
  }

  $page_top['debugbar'] = [
    'scripts' => $scripts,
  ];
}

/**
 * Implements hook_page_bottom().
 */
function debugbar_page_bottom(array &$page_bottom) {
  $page_bottom['debugbar'] = [
    'bar' => [
      '#lazy_builder' => [LazyBuilder::class . '::renderDebugBar', []],
      '#create_placeholder' => TRUE,
    ],
    '#attached' => [
      'library' => ['debugbar/debugbar'],
    ],
  ];
}

/**
 * Implements hook_library_info_build().
 */
function debugbar_library_info_build(): array {
  /** @var \DebugBar\DebugBar $debugBar */
  $debugBar = Drupal::service('debugbar.debugbar');

  $jsRenderer = $debugBar->getJavascriptRenderer();

  $js = [
    'js/debugbar.js' => [],
  ];
  foreach ($jsRenderer->getAssets('js', DRUPAL_ROOT) as $script) {
    $js['vendor://maximebf/debugbar/src/DebugBar/Resources/' . $script] = ['type' => 'external'];
  }

  $css = [];
  foreach ($jsRenderer->getAssets('css', DRUPAL_ROOT) as $style) {
    $css['vendor://maximebf/debugbar/src/DebugBar/Resources/' . $style] = ['type' => 'external'];
  }

  return [
    'debugbar' => [
      'header' => TRUE,
      'js' => $js,
      'css' => ['component' => $css],
      'dependencies' => [
        'core/drupal',
        'core/jquery',
      ],
    ],
  ];
}