Risposte:
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 .
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.';
}
Se sei uno sviluppatore di moduli, puoi utilizzare hook_admin_paths per definire quali percorsi devono essere rappresentati con il tema di amministrazione.
Basta dare alla pagina un percorso che inizia con admin: 'admin / mypage'
Questa funzionalità è ora nel core D7.
C'è un modulo che espone efficacemente "hook_admin_paths" all'interfaccia utente: https://drupal.org/project/admin_theme