Forçar uma página a ser renderizada no tema do administrador (modo de sobreposição)

13

Existe uma maneira de forçar uma página a ser renderizada no tema admin, como páginas cujo caminho começa com 'admin /'?

hpn
fonte

Respostas:

4

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 .

Refineo
fonte
14

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.';
}
timofey.com
fonte
7

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.

Daniel
fonte
4

Basta dar à página um caminho que comece com admin: 'admin / mypage'

MediaFormat
fonte
1
Por que o voto negativo? Essa funcionalidade está no núcleo D7, a questão não especifica qual versão, mas no momento dos pôsteres, a pergunta D7 foi lançada.
MediaFormat
Sim, comentário perfeitamente senso IMO.
Countzero
2
parece que as páginas personalizadas que começam com 'admin /' carregam necessariamente o tema do administrador.
DrCord
perfeito e simplista para vistas!
Patoshi # 28/16
Isso não funciona.
Christia