Categorias
Mera Falacia

Como criar um tema filho em Drupal

Tema filho? É um tema de Drupal que herda tudo de um outro tema e muda só algumas coisas. Também conhecido como subtema. Neste blog eu estou usando o Bartiky, um subtema do Bartik, porque eu queria mudar algumas coisas no Bartik mas é um tema que vem com o Drupal core, portanto sagrado, não posso mexer nele. Daí criei esse subtema de nome extremamente original.

É muito fácil fazer um subtema. Comece criando o arquivo .info:

name = bartiky
core = 7.x
engine = phptemplate
base theme = bartik
stylesheets[all][] = bartiky.css
regions[header] = Header
regions[help] = Help
regions[page_top] = Page top
regions[page_bottom] = Page bottom
regions[highlighted] = Highlighted
regions[featured] = Featured
regions[content] = Content
regions[sidebar_first] = Sidebar first
regions[sidebar_second] = Sidebar second
regions[triptych_first] = Triptych first
regions[triptych_middle] = Triptych middle
regions[triptych_last] = Triptych last
regions[footer_firstcolumn] = Footer first column
regions[footer_secondcolumn] = Footer second column
regions[footer_thirdcolumn] = Footer third column
regions[footer_fourthcolumn] = Footer fourth column
regions[footer] = Footer
view rawbartiky.info hosted with ❤ by GitHub

Quase todos os parâmetros são auto-explicativos. O engine indica que eu uso o sistema de templates padrão do Drupal, o PHPTemplate. Existem outros como o Smarty, muito usado em outros frameworks PHP, e o Peroxide, que me permite usar HAML. E tem uma linha, stylesheets[all][] = bartiky.css onde eu defino um arquivo de CSS que eu vou carregar. Mas meu tema filho vai carregar todos os CSS do tema pai primeiro, e só então o meu. Isso facilita a vida se eu quiser sobreescrever alguma regra de um arquivo CSS do tema pai: basta copiar a regra pro meu arquivo CSS e alterá-la a vontade. E depois eu declaro todas as regiões que o tema pai declara — o Drupal é burrinho e não faz isso por padrão ainda. Na verdade o que eu fiz foi copiar o bartik.info e tirar tudo que eu não precisava.

Depois disso, foi só colocar meu CSS:

code {
padding: 0;
}
view rawbartiky.css hosted with ❤ by GitHub

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *