Forza il rendering di una pagina nel tema admin (modalità overlay)


13

C'è un modo per forzare il rendering di una pagina in tema admin, come le pagine che il loro percorso inizia con 'admin /'?

Risposte:


4

C'è un modulo contrib che ThemeKey che

consente di definire regole di commutazione del tema semplici o sofisticate che consentono la selezione automatica di un tema in base al percorso corrente, ai termini della tassonomia, alla lingua, al tipo di nodo e a molte altre proprietà. Può anche essere facilmente esteso per supportare proprietà aggiuntive esposte da altri moduli. In combinazione con l'eredità del tema di Drupal e le proprietà di ThemeKey puoi facilmente ottenere funzionalità come:

canali in stile individuale uno schermo di prima pagina / "splash" temi tematici natalizi per data / ora selezionati per diversi dispositivi mobili rilevati automaticamente temi speciali per contenuti, utenti o temi specifici per browser "limitati" o "vecchi" indicando l'ambiente (produzione, gestione temporanea, test, sandbox, ...) testando la riprogettazione in modo sicuro su un server live

Controlla anche la domanda correlata qui .


14

Puoi anche farlo creando un modulo personalizzato.

Metodo 1

Usalo se vuoi creare un tema per una pagina esistente, in base al percorso interno di Drupal (noto anche come sorgente del percorso). Questo esempio utilizza hook_custom_theme .

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

Metodo 2

Utilizzare questo se si desidera creare un tema di una pagina esistente, in base al percorso URL (noto anche come alias percorso). Questo esempio usa anche 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');
  }
}

Metodo 3

Usalo se vuoi creare temi e creare una pagina. Questo esempio usa hook_menu . Per saperne di più, dai un'occhiata a un altro fantastico articolo su hook_menu .

<?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.';
}

7

Se sei uno sviluppatore di moduli, puoi utilizzare hook_admin_paths per definire quali percorsi devono essere rappresentati con il tema di amministrazione.


4

Basta dare alla pagina un percorso che inizia con admin: 'admin / mypage'


1
Perché il downvote? Questa funzionalità è nel core D7, la domanda non specifica quale versione, ma al momento della pubblicazione della domanda D7 è stata rilasciata.
MediaFormat,

Sì, commento perfettamente sensato IMO.
Countzero,

2
non sembra che le pagine personalizzate che iniziano con 'admin /' caricino necessariamente il tema admin.
DrCord

perfetto e semplicistico per le viste!
Patoshi

Questo non funziona.
Christia,

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.