Rafael Caceres

humanizando o caos

Analista de Sistemas e Desenvolvedor Web da Talk Interactive. Tenta misturar agile com ux em seus projetos. É (quase) casado, músico experimental, malabarista de sinal, filosofo de buteco e empreendedor maluco.

Fiz uma tradução de uma parte do guia de temas da documentação do drupal. Segue abaixo.

A camada de temas é responsável por criar o HTML que o browser irá receber. Podem ser usadas varias abordagens, como o Smarty, PHPAL e PHPTemplate.
Existem várias maneiras de customizar a aparencia do seu site. A mais simples é usando CSS para sobrepor as classes e IDs nativos do Drupal. Mas é fácil de ir além e customizar o HTML. Um arquivo template Drupal consiste de HTML padrão e PHP. Adicionalmente, cada parte dinamica de uma página Drupal ( como uma box, lista ou breadcrumb ) pode ser sobrescrita simplesmente declarando a função com o nome apropriado.
Um tema é uma coleção de arquivos que definem a camada de apresentação. Podemos criar um ou mais “sub-temas” ou variações sobre um tema. Apenas o arquivo .info é obrigatório, mas a maioria dos temas e sub-temas também usarão outros arquivos. O diagrama abaixo ilustra os arquivos que são encontrados em um tipico tema e sub-tema.

.info (obrigatório)

Tudo que é necessário para o Drupal reconhecer seu tema é um arquivo .info. Metadados, folhas de estilo, JavaScript, block regions entre outras coisas podem ser definidas aqui. Todo o resto é opcional.  O nome interno do tema é derivado desse arquivo. Por exemplo, se o nome é “drop.info”, então o Drupal verá o nome do tema como “drop”. (Drupal 5 e anteriores usam o nome da pasta do tema).

Arquivos de template (.tpl.php)

Os templates são usados para a marcação xHTML e variáveis do PHP. Em alguns casos eles podem retornar outros tipos de dados (eg. xml, rss). Cada arquivo .tpl.php manipula a saida de um pedaço especifico de dados “temáveis”(themable), e em alguns casos isso pode manipular multiplos arquivos .tpl.php através de sugetões.(link para suggestions) Eles são opcionais, e se não existe nenhum em seu tema será usada a saída padrão. Evite ter logicas complexas nesses arquivos. Na maioria dos casos, pode ser diretamente tags xHTML e variaveis PHP. Um punhado desses templates existem em diretórios onde o core e contributed modules existem. Copiar eles para a pasta do seu tema força o Drupal ler sua versão.
Nota: O theme registry faz cache das informações sobre os dados do tema disponiveis. Você deve resetar-lo quando adicionar ou remover arquivos de template ou funções no seu tema.

Template.php

Para toda a logica condicional e processamento de dados de saida, existe o template.php. Ele não é obrigatório, mas para manter os arquivos .tpl.php limpos, podemos usá-lo mantendo preprocessors que geram variaveis antes delas serem fundidas com a marcação dentro dos arquivos .tpl.php. Funções customizadas, sobreescrevendo funções dos temas ou qualquer outra customização de saida pode ser feita aqui. Esse arquivo deve começar com a tag “<?php” de abertura do PHP, mas a tag de fechamento não é necessária e é recomendado que ela seja omitida.

Sub-temas

Vendo por cima, sub-temas se comportam como qualquer outro tema. A unica diferença é que eles herdam os recursos dos seus temas pai. Para criar um, é necessário usar uma entrada de “base theme” no seu .info. Isso fará ele herdar os recursos do tema pai. Podem haver multiplos níveis de herança; e.g, um sub-tema pode declarar outro sub-tema como sua base. Não há muito limite pra isso.

(O Drupal 5 e inferiores exigtem que os sub-temas sejam subdiretorios no tema pai. Não é mais o caso.)

Leave a Reply