Comment puis-je détecter si l'utilisateur que la page consulte actuellement est considéré comme administratif? Une page administrative peut être reconnue lorsque le thème d'administration est activé.
Dans mon cas, je voudrais imprimer un avis si cette condition est remplie et si l'utilisateur peut "administrer les modules".
Cela peut être fait avec path_is_admin(current_path())
.
Par exemple, l'implémentation de hook suivante peut être utilisée.
function mymodule_init() {
if (user_access('administer modules') && path_is_admin(current_path())) {
drupal_set_message(t('Message'));
}
}
La réponse de Daniel est correcte pour déterminer si le chemin actuel est "administratif", mais si vous voulez vérifier plus directement si le thème d'administration est utilisé (votre question semble un peu vague quant à ce que vous recherchez), vous pouvez le faire …
global $theme;
if ($theme === variable_get('admin_theme', 'seven')) {
// …
}
… Bien que cela risque d'échouer si vous essayez de l'exécuter trop tôt dans le processus bootstrap, à savoir avant $theme
est défini.
Pour ceux qui recherchent la méthode Drupal 8:
if (\Drupal::service('router.admin_context')->isAdminRoute()) {
// …
}
(Testé avec une fonction de prétraitement en 8.7.5 et tilisé dans un core-patch en 8.0)
Pour vérifier si le thème d'administration est utilisé (pour Drupal 8), vous pouvez utiliser
$theme_name = \Drupal::service('theme.manager')->getActiveTheme()->getName();
pour obtenir le nom du thème.