Respostas:
Existe um módulo de contribuição ThemeKey que
permite definir regras de troca de tema simples ou sofisticadas, que permitem a seleção automática de um tema, dependendo do caminho atual, termos de taxonomia, idioma, tipo de nó e muitas outras propriedades. Também pode ser facilmente estendido para suportar propriedades adicionais expostas por outros módulos. Em combinação com a herança de tema do Drupal e as propriedades ThemeKey, você pode facilmente obter recursos como:
canais com estilo individual uma tela de primeira página / "splash", temas móveis de tema de Natal selecionados por data / hora para diferentes dispositivos móveis detectados automaticamente temas especiais para navegadores "limitados" ou "antigos", conteúdo específico de usuário, usuário ou função indicando seu ambiente (produção, preparo, teste, sandbox, ...) testando seu reprojeto com segurança em um servidor ativo
Verifique também a questão relacionada aqui .
Você também pode fazer isso criando um módulo personalizado.
Método 1
Use isso se desejar criar um tema para uma página existente, com base no caminho interno do Drupal (também conhecido como origem do caminho). Este exemplo usa hook_custom_theme .
<?php
function MYMODULE_custom_theme() {
// match node/1
if (arg(0) == 'node' && arg(1) == '1') {
return variable_get('admin_theme');
}
}
Método 2
Use isso se desejar criar um tema para uma página existente, com base no caminho da URL (também conhecido como caminho do caminho). Este exemplo também usa 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étodo 3
Use isso se desejar criar um tema e criar uma página. Este exemplo usa hook_menu . Para saber mais, dê uma olhada em outro ótimo artigo no 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 você é um desenvolvedor de módulos, pode usar hook_admin_paths para definir quais caminhos devem ser renderizados com o tema de administração.
Basta dar à página um caminho que comece com admin: 'admin / mypage'
Esta funcionalidade está agora no núcleo D7.
Existe um módulo que expõe efetivamente "hook_admin_paths" à interface do usuário: https://drupal.org/project/admin_theme