Wie kann ich feststellen, ob es sich bei der aktuell angezeigten Seite um eine Verwaltungsseite handelt?


18

Wie erkenne ich, ob der Benutzer, den die Seite gerade anzeigt, als Administrator eingestuft wird? Eine Verwaltungsseite kann erkannt werden, wenn das Verwaltungsdesign aktiviert ist.

In meinem Fall möchte ich einen Hinweis ausdrucken, wenn diese Bedingung erfüllt ist und der Benutzer Module verwalten kann.

Antworten:


30

Dies kann mit erfolgen path_is_admin(current_path()).

Beispielsweise kann die folgende Hook-Implementierung verwendet werden.

function mymodule_init() {
  if (user_access('administer modules') && path_is_admin(current_path())) {
      drupal_set_message(t('Message'));
  }
}

1
Die Antwort hängt von der Definition des OP für "administrativ" ab, und diese Definition hat sich möglicherweise geändert, seit die Frage zum ersten Mal gestellt wurde. Einige betrachten Inhaltsbearbeitungsseiten als "Administrationsseiten", aber path_is_admin () gibt für eine Seite wie node / 123 / edit den Wert false zurück. In der Zwischenzeit kann diese Seite das Admin-Design verwenden oder nicht. Auf jeder Seite wird möglicherweise das Admin-Design verwendet, und auf jeder Seite wird möglicherweise das Admin-Design nicht verwendet. Die aktuelle Definition im OP lautet "Eine Verwaltungsseite kann erkannt werden, wenn das Verwaltungsthema aktiviert ist."
Arnoldbird

9

Daniels Antwort ist korrekt, um festzustellen, ob der aktuelle Pfad "administrativ" ist. Wenn Sie jedoch direkter prüfen möchten, ob das Verwaltungsthema verwendet wird (Ihre Frage scheint etwas vage zu sein, wonach Sie suchen), können Sie dies tun …

global $theme;
if ($theme === variable_get('admin_theme', 'seven')) {
  // …
}

... obwohl dies wahrscheinlich fehlschlägt, wenn Sie versuchen, es zu früh im Bootstrap-Prozess auszuführen, und zwar bevor $themedefiniert ist.


OP geklärt, so dass es nicht auf die Suche nach Admin-Thema gerichtet ist. Das Admin-Thema ist lediglich ein Hinweis auf einen Administrationspfad.
Daniel

Ich war immer noch verwirrt, bis ich sah, dass dies eines der Dinge ist, bei denen Sie eine Frage gestellt und diese dann selbst beantwortet haben. Derp, ich verstehe es jetzt.
Garrett Albright

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.