web-dev-qa-db-fra.com

Forcer le rendu d'une page dans le thème administrateur (mode superposition)

Existe-t-il un moyen de forcer le rendu d'une page dans le thème admin, comme les pages dont le chemin commence par "admin /"?

13
hpn

Il y a un module contrib ThemeKey qui

vous permet de définir des règles de changement de thème simples ou sophistiquées qui permettent la sélection automatique d'un thème en fonction du chemin d'accès actuel, des termes de taxonomie, de la langue, du type de nœud et de nombreuses autres propriétés. Il peut également être facilement étendu pour prendre en charge des propriétés supplémentaires exposées par d'autres modules. En combinaison avec l'héritage de thème et les propriétés ThemeKey de Drupal, vous pouvez facilement obtenir des fonctionnalités telles que:

canaux de style individuel un écran de première page/"splash" un thème de Noël sélectionné par date/heure thèmes mobiles pour différents appareils mobiles auto-détectés thèmes spéciaux pour les navigateurs "limités" ou "anciens" contenu, utilisateur ou thèmes spécifiques au rôle indiquant votre environnement (production, staging, test, sandbox,…) test de votre refonte en toute sécurité sur un serveur live

Vérifiez également la question connexe ici .

4
Refineo

Vous pouvez également le faire en créant un module personnalisé.

Méthode 1

Utilisez-le si vous souhaitez créer un thème pour une page existante, en fonction du chemin interne de Drupal (alias source du chemin). Cet exemple utilise hook_custom_theme .

<?php
function MYMODULE_custom_theme() {
  // match node/1
  if (arg(0) == 'node' && arg(1) == '1') {
    return variable_get('admin_theme');
  }
}

Méthode 2

Utilisez-le si vous souhaitez créer un thème pour une page existante, en fonction du chemin URL (alias chemin alias). Cet exemple utilise également hook_custom_theme .

<?php
function MYMODULE_custom_theme() {
  // get arguments
  $arg = explode('/', substr(request_uri(), strlen(base_path())));
  // match {wildcard}/path 
  // Using strpos as $arg[1] may end up having stuff like so ?order=title&sort=asc
  if (isset($arg[1]) && strpos($arg[1], 'path') !== false && !isset($arg[2])) {
    return variable_get('admin_theme');
  }
}

Méthode 3

Utilisez-le si vous souhaitez créer un thème et créer une page. Cet exemple utilise hook_men . Pour en savoir plus, jetez un œil à un autre excellent article sur hook_men .

<?php
function MYMODULE_menu() {
  $items = array();

  // match some/path
  $output['some/path'] = array(
    'title' => t('Page Title'),
    'page callback' => 'MYMODULE_page',
    'theme callback' => 'variable_get',
    'theme arguments' => array('admin_theme'),
  )
}

function MYMODULE_page() {
  return 'Hello world.';
}
14
timofey.com

Si vous êtes un développeur de modules, vous pouvez utiliser hook_admin_paths pour définir les chemins à rendre avec le thème d'administration.

7
Daniel

Donnez simplement à la page un chemin commençant par admin: 'admin/mypage'

4
MediaFormat
  1. Cette fonctionnalité est maintenant dans le noyau D7.

  2. Il existe un module qui expose efficacement "hook_admin_paths" à l'interface utilisateur: https://drupal.org/project/admin_theme

1
aaronbauman