Esse tutorial mostra como transformar um template HTML em um tema do Drupal.
Como pré-requisito para entender esse tutorial você vai precisar entender um pouco de PHP, HTML e CSS para conseguir acompanhar tudo.
Para esse tutorial também é necessário que você já tenha uma instalação do Drupal na sua máquina. Caso você ainda não tenha ou não saiba como fazer essa instalação pode ver esse tutorial e esse screencast.
Para o melhor entendimento desse tutorial, quando nos referimos a template estaremos falando de um layout feito em HTML e que ainda não tem funcionalidade no Drupal. Quando nos referirmos a tema estamos nos referindo a um template já funcionando no Drupal.
Então, antes de mais nada, precisamos encontrar um template. No nosso tutorial vamos pegar um template já pronto na Internet, no seu caso você mesmo pode fazer um ou pagar um designer para que o faça.
O template escolhido para esse tutorial foi o Standardized disponível em http://www.freecsstemplates.org/preview/standardized. Esse template é grátis, podendo ser baixado gratuitamente. Você precisará manter os créditos do tema, pois ele está licenciado sob a Creative Commons, mas isso não é problema pois estamos em uma comunidade se Software livre não é? :-)
Em seguida precisaremos montar nosso tema propriamente dito. Eu tenho por hábito partir de um tema pré-existente, mas você não precisa fazer isso, é uma questão pessoal. Para esse tutorial, vou usar como base o tema Bluemarine que já vem com toda instalação do Drupal.
Assim, a primeira coisa a fazer é baixar o template (acima você tem o endereço para download). Em seguida entramos na pasta themes da nossa instalação do Drupal e copiamos toda a pasta do tema bluemarine com um nome diferente, no nosso caso o nome do nosso tema será tutorial. O resultado final será algo como mostrado abaixo.

Em seguida copiamos alguns elementos do template para a pasta do nosso novo tema. No caso desse nosso tema, vamos copiar a pasta images e o arquivo default.css que estão na pasta do template para a pasta do nosso tema. Em seguida, apagamos o arquivo style.css que já estava na pasta do nosso tema e renomeamos o arquivo default.css para style.css. Isso é necessário pois o Drupal entende, por padrão, que o nome do arquivo de CSS do nosso tema se chama style.css. Obviamente podemos ter outros aquivos CSS, mas para o nosso tema vamos fazer seguindo o padrão. Uma outra coisa que podemos fazer é baixar um thumbnail para substituir o que já existe do bluemarine. Isso Não é imprescindível mas é importante pois é através desse thumbnail que vamos poder visualizar na área de administração de temas qual é o nosso tema. No caso do template que baixamos, ele já tem um thumbnail em http://www.freecsstemplates.org/download/thumbnail/standardized. Baixe esse arquivo e substitua o arquivo screenshot.png que está na pasta do nosso tema.
Com isso terminamos os preparativos e podemos partir para a construção do tema propriamente dita. Como eu disse me baseio em um tema para construir os meus, então o trabalho aqui é um pouco de copiar e colar, e vou mostrar como estava antes e depois até o resultado final.
Para começar o trabalho, primeiro renomeamos o arquivo page.tpl.php do tema que copiamos para algo como page.tpl.php.old e copiamos o arquivo index.html do template para a pasta do tema com o nome page.tpl.php. No final poderemos apagar o page.tpl.php.old. Em seguida abrimos os dois arquivos para montar o tema. Para facilitar o entendimento, dividi em partes de forma que podemos ir acompanhando pedaço por pedaço da construção do tema.
Começamos com a tag HTML do nosso tema. No tema original ela é assim:
![]()
Aqui vemos duas marcações em PHP, com a variável $language que é o código do idioma do site. Isso é usado para formatar o HTML de acordo com os padrões da W3C. No nosso template veio assim:

Perceba que aqui existe um comentário sobre a licença do template, e a tag HTML não tem designação de idioma, então modificamos para que fique assim:

Pronto, temos essa parte terminada. Em seguida vamos para os cabeçalhos. É nessa parte que são declarados os estilos, javascript e várias outras partes importantes do tema do Drupal. Abaixo o original, no tema bluemarine:
E abaixo o original no nosso template:

Por fim temos o resultado final:
Veja que o resultado final é igual ao original do bluemarine. Nem sempre será, no nosso tema vamos usar a estrutura básica, então não precisamos de alterações. Agora uma breve explicação do que é cada uma das variáveis nessa seção:
Agora vamos ver a parte do cabeçalho do nosso tema. Se você já deu uma olhada no tema que escolhemos como padrão, lembrará que ele tem um cabeçalho com o menu, em uma barra verde, e abaixo um título. Vamos então ver como fazer isso. Primeiro vemos como é no tema original, o bluemarine:
E depois como veio no template:
Por último vemos como ficou:
Vejamos o que é cada uma dessas variáveis:
Note ainda que mativemos a estrutura do HTML básico do nosso template. Isso porque podem haver elementos HTML que precisaremos para manter o estilo pretendido. No caso, deixamos o DIV com sua classe header que ele já possui.
Em seguida vamos para a seção que trata do menu. Vejamos como é o original no bluemarine
E como o template escolhido trata essa parte:
Por fim, como ficou com a alteração que fizemos:
Antes de mais nada, veja que cortamos algumas coisas no nosso código. O Drupal vem com dois níveis de menu, prontos para serem usados: o primário e o secundário. No nosso caso, só vamos usar o primário, e o secundário foi excluído. Outra coisa que excluímos foi a caixa de pesquisa, pois vamos usar um bloco para isso. Então vejamos o que significa cada uma dessas variáveis:
Agora vamos para a parte principal do nosso tema. O tema nos permite personalizar a apresentação do conteúdo do site. O Drupal entende que o conteúdo é tudo que é exibido na parte principal do do seu site, assim nem tudo que é exibido nessa seção é de fato conteúdo, mas coisas como os formulários de edição, configuração e etc. também são exibidos nessa área. Vejamos como é o original no bluemarine:
Em seguida como veio no nosso template. Note que não está tudo que há no template, apenas uma parte.
Por último como ficou depois de alterarmos:
Novamente veja que mudamos apenas o que precisamos do Drupal. Parte da formatação original do template ficou. Vejamos o que é cada uma dessas variáveis:
Veremos agora a nossa barra lateral da esquerda, que terá a caixa de busca, caixa de login, e, quando logado, o menu de administração (também conhecido como navegação). Vejamos então o original no bluemarine:
Como o template escolhido veio:
E como ficou no final:
Nesse caso temos apenas uma variável, $sidebar_left, que irá carregar todos os blocos que posicionarmos na esquerda. Nesse momento cabe uma explicação sobre como carregar os blocos no Drupal e quais variáveis são usadas para isso.
O Drupal trabalha com um conceito de região. Por padrão ele define 5 regiões onde podemos posicionar blocos. Essas regiões são mostradas no template page.tpl.php em forma de variáveis como abaixo:
É possível que se defina outras regiões, mas esse tutorial não irá cobrir isso. Num futuro tutorial falaremos disso.
Agora veremos a última parte do nosso tema, o rodapé. Abaixo a verão original no bluemarine:
E em seguida o template:
Por fim, a versão alterada no nosso tema:
Novamente, parte do template foi mantida, pois ela é fundamental para a formatação correta do site. Vejamos o que é cada uma dessas variáveis:
Pronto, para esse tema que escolhemos, isso é tudo que precisamos mexer com PHP/HTML. Veremos agora como deixar mais próximo do template original, pois ainda são necessários alguns pequenos ajustes de CSS.
Antes de mais nada, precisamos habilitar o nosso novo tema. Assim você deve se logar como administrador, e ir na parte de temas (Adminsitrar -> Construção do site -> Temas) e habilitar o nosso novo tema, e definí-lo como padrão:
Vejamos como ficou o site com essas mudanças que fizemos (clique na imagem para ampliar):
Veja que ainda existem coisas a serem feitas. Precisamos colocar o bloco de login, a caixa de busca e formatar o conteúdo.
Vamos criar um item que apareça no menu superior. Para isso crie uma página (Criar conteúdo -> Página) e preencha os campos que desejar e em opções de menu preencha como abaixo:
Isso fará com que apareça um menu na barra verde. Vejam que, como eu disse antes, o primary links é diferente do menu de navegação.
Agora nós temos um item no menu superior, podemos criar tantos quantos desejarmos.
Agora vamos habilitar a caixa de busca na barra lateral da esquerda, para isso vá até a página de adminstração de blocos (Administrar -> Construção do Site - > Blocos) e habilitamos o bloco da busca na esquerda conforme abaixo:![]()
Para que usuários anônimos acessem a caixa de busca, precisamos dar a permissão correta:
Pronto, temos todos os elementos que precisamos no nosso site.
Nossa caixa de busca ficou assim:
Agora faltam os ajustes de CSS. Precisaremos identificar quais as classes que definem a cor das duas caixas, login e busca além dos botões e caixa de texto.
Olhando o código fonte do template, identifiquei que a caixa de login, no template, tem aplicada a classe boxA e a de busca boxB. Olhando o código gerado pelo site até o momento, pude identificar que o bloco de login possui a classe block-user e o bloco de busca possui a classe block-search.
Assim, tendo mapeado as classes de origem e destino, editamos o arquivo style.css e trocamos todas as ocorrências de uma classe (no caso boxA e boxB) por outra (no caso block-user e block-search). Assim temos o resultado para a caixa de busca:
Mas ainda ainda não está como esperávamos. Nem o botão nem a caixa de texto está como esperávamos, para isso precisaremos trocar mais uma parte do CSS pelas classes corretas.
Vejamos então. A caixa de texto padrão do template utiliza a classe text que vamos ter que trocar pela classe que o Drupal utiliza, chamada form-text. Para isso, editamos novamente o arquivo style.css e procuramos or todas as ocorrências de input.text e trocamos por input.form-text. Igualmente com o botão, que no template tem a classe button e no Drupal a classe é form-submit.
Pronto, com todas as classes trocadas, temos como resultado final:
Então até o momento temos o seguinte com usuário anônimo(clique para ampliar):
E com usuário administrador(clique para ampliar):
No entanto não está 100% igual ao que desejamos, pois acima de cada bloco temos um título, coisa que não há no nosso template original. Assim precisamos desabilitar isso. Para tanto acesse a área de adminstração dos blocos (Administrar -> Construção do site -> Blocos) e escolha a opção "configurar" dos dois blocos que queremos tirar o título e troque o nome do título do bloco para <none>, como abiaxo:
Por fim, precisamos definir o nome do site, o slogan e a mensagem de rodapé. Para isso acesse a área de adminsitração do site na parte de informações (Administrar -> Configuração do site -> Informações do site) e altere os dados como abaixo e depois salve as informacões(clique para ampliar):
Isso por si só fará com que você tenha esses dados configurado. Porém o slogan do site depende do seu tema. Alguns desse elementos são controlados individualmente por cada tema, e o nosso tema está com o slogan desativado, então teremos que ativá-lo. Para isso acesse a área de configuração do tema (Administrar -> Construção do site -> Temas) e clique na opção "Configurar" do nosso tema e, em seguida, marque a caixa de "Slogan do site", conforme abaixo:
Pronto, isso termina com a configuração do nosso site, veja como ficará na versão final, com usuário anônimo(clique para ampliar):
E com o usuário logado(clique para ampliar):
Temos um template aplicado no nosso site. É bom lembrar novamente que esse não é o único método de fazer temas, e para algumas pessoas não é o melhor. Também deve-se lembrar que esse é um exemplo simples e que o Drupal te deixa fazer muito mais coisa do que foi mostrado nesse simples tutorial.
Abaixo vocĂȘ pode baixar o template pronto
Duvidas, sugestões e comentários são bem vindos.
Um abraço e espero que seja útil para você.