it-swarm.com.de

Benutzerdefiniertes Modul zum Hinzufügen einer CSS-Datei im Admin-Bereich

Wie füge ich admin.css in meinem Theme, damit es in den Admin-Bereich geladen wird (und vorzugsweise nur in den Admin-Bereich)?

Im Moment, wenn ich admin.css über das x.libraries.yml Datei, es wird nur im Frontend geladen.

pdate :

Also ... basierend auf Ihren Kommentaren/Antworten habe ich ein Modul erstellt admin-css. Aber nichts passiert. Die Datei wird nicht geladen. Was mache ich falsch?

Innerhalb admin_css.info.yml:

name: Admin CSS
description: Alters the Admin CSS for better usability.
package: Custom

type: module
core: 8.x

Innerhalb admin_css.libraries.yml:

admin-css:
  version: 1.x
  css:
    theme:
      css/admin.css: {}

Innerhalb admin_css.module:

<?php

function admin_css_attachments(array &$attachments) {
    $is_admin = \Drupal::service('router.admin_context')->isAdminRoute();
    if ($is_admin) {
      $attachments['#attached']['library'][] = 'admin_css/admin-css';
      return;
    }

}
3
Pim

Wenn Sie nicht dasselbe Thema für Front- und Backend verwenden, ist dies nicht der richtige Ansatz.

Wenn etwas die Themenebene überschreitet, z. Sie haben Funktionen, die Sie auf zwei separate Themen anwenden müssen, sie gehören in ein Modul.

Anweisungen dazu finden Sie unter Hinzufügen von Stylesheets (CSS) und JavaScript (JS) zu einem Drupal 8-Modul , insbesondere im Abschnitt zu Anhängen einer Bibliothek an alle (oder eine Teilmenge von) Seiten , die ein erfundenes Codebeispiel enthält:

function contextual_page_attachments(array &$attachments) {
  if (!\Drupal::currentUser()->hasPermission('access contextual links')) {
    return;
  }

  $attachments['#attached']['library'][] = 'contextual/drupal.contextual-links';
}
3
Clive

Der Hook heißt "hook_page_attachments", daher müssen Sie Ihre Funktion von umbenennen

function admin_css_attachments(array &$attachments) {

zu

function admin_css_page_attachments(array &$attachments) {
2
mfrosch