Quero adicionar uma nova área que será de todo o site. Descreva o processo de inclusão dessa nova região no meu tema, se possível, generalize-o para adicionar qualquer nova região personalizada.
Quero adicionar uma nova área que será de todo o site. Descreva o processo de inclusão dessa nova região no meu tema, se possível, generalize-o para adicionar qualquer nova região personalizada.
Respostas:
Você define regiões no seu arquivo .info do tema. Consulte: Estrutura do arquivo .info
Você precisa colocar as tags de modelo relevantes no arquivo page.tpl.php.
Por exemplo, se você definiu a região sidebar
no arquivo .info dos seus temas, adicione: <?php print render($page['sidebar']); ?>
ao local relevante em seu page.tpl.php.
Outro ponto: não perca as regiões necessárias!
regions[content] = Content
regions[help] = Help
regions[page_top] = Page top
regions[page_bottom] = Page bottom
Mais sobre isso pode ser encontrado em http://drupal.org/update/themes/6/7#closure .
Para esclarecer este ponto: Se você definir suas próprias regiões, precisará definir tudo o que está usando, incluindo aquelas necessárias. Em outras palavras, você não pode apenas definir regiões adicionais: se você definir alguma, deverá definir todas elas.
Criar uma região para um tema do Drupal 7 não é diferente de criar uma região para uma região do Drupal 6; as diferenças entre o Drupal 7 e as versões anteriores são essencialmente:
mytheme_regions()
função, como foi feito no Drupal 5, mas são definidas no mytheme.info usando regions[]
diretivas, o que também é feito com os temas do Drupal 6.render()
, em vez de imprimir o conteúdo de uma variável.As regiões padrão do Drupal 7 são as seguintes:
regions[header] = Header
regions[highlighted] = Highlighted
regions[help] = Help
regions[content] = Content
regions[sidebar_first] = Left sidebar
regions[sidebar_second] = Right sidebar
regions[footer] = Footer
Os temas principais do Drupal 7 agora incluem uma região denominada 'destacada' que usa a mesma tela que a área de declaração de missão no Drupal 6; eles também incluem uma região chamada 'help', que por padrão tem o mesmo conteúdo da $help
variável usada pelo Drupal 6.
As regiões do tema são definidas no arquivo .info do seu tema - consulte a documentação . Basta adicionar uma linha com regions[corner] = Corner
para obter uma região de Canto.
Em seguida, você precisa editar o arquivo page.tpl.php e adicionar <php print render($corner); ?>
onde deseja que a região apareça. Se o seu tema não tiver um page.tpl.php, copie do tema base ou do módulo do sistema.
Armadilhas comuns:
Se o arquivo theme.info não tinha regiões declaradas, estava usando regiões padrão do Drupal. Se você deseja adicionar, precisará declarar novamente as regiões padrão. Obviamente, você pode remover qualquer região, mas apoie as regiões necessárias. Veja os documentos novamente.
Alterações no arquivo .info ou adição de novos arquivos ao tema (como page.tpl.php) serão notadas somente após a limpeza dos caches.
Omega, um tema base muito popular, não precisará de alterações no page.tpl.php, apenas no arquivo .info. Mas você precisará visitar as configurações de tema na interface do usuário e atribuir sua região a uma zona.
regions[content] = Content
única região necessária em D7? drupal.org/node/171205#regions parece implicar isso, mas, em seguida, drupal.org/node/171224 diz que as regiões exigidos são content
, help
, page_top
epage_bottom
content
é definitivamente muito importante. help
é suportado pelo core ( para gerar mensagens de ajuda), page_bottom
é provavelmente onde js inferiores é impresso e page_top
parece ser usado para barras de navegação, como as barras de ferramentas principais.
Siga as etapas abaixo para criar uma região personalizada no seu tema:
Vá para o seu arquivo theme.info e adicione esta linha.
regions[machine_name_of_your_region] = Name of your region
Embora você também possa chamar blocos de região no modelo de nó, geralmente você adiciona a região ao modelo de página do tema. Geralmente, é page.tpl.php ou, se você tiver arquivos de modelo personalizados para páginas diferentes, edite-os também. A nova região aparecerá apenas nas páginas criadas em torno do modelo ao qual você adiciona a nova região. Cole-o onde quiser que sua nova região apareça.
<?php if ($page['machine_name_of_your_region']): ?>
<div id="sidebar-first" class="column sidebar"><div class="section">
<?php print render($page['machine_name_of_your_region']); ?>
</div></div> <!-- /.section, /#sidebar-first -->
<?php endif; ?>
Configuração - Desempenho - Limpar todos os caches
Você só precisa defini-lo em dois arquivos.
;;;;;;;;;;;;;;;;;;;;;
;; Regions
;;;;;;;;;;;;;;;;;;;;;
regions[navigation] = 'Navigation'
regions[header] = 'Top Bar'
regions[highlighted] = 'Highlighted'
regions[new_region_name] = 'Region Name' ;; Add New Region
Agora renderize esta região
<?php if ($page['new_region']): ?>
<div class="new_region_class">
<?php print render($page['new_region']); ?>
</div>
<?php endif; ?>
Agora limpe todo o cache. Aqui você tem uma nova região no seu tema. Você pode vê-lo na sua página de configuração de bloco.
Para mais informações, visite http://drupal.org/node/171205