Artigos & Ideias

[HTACCESS] Montar um Sistema de Templates

Escrito por:

Criar um site em que a mudança de template seja feita de forma fácil, provavelmente parece complicado. Quando pensei em criar um sistema de templates pensei que ia ser uma tarefa bastante complicada, porém, depois de andar a pensar nisso durante alguns dias, encontrei uma maneira que me permite mudar as templates, bastando para isso mudar o .htaccess.

Suponhamos a seguinte estrutura:

Estrutura do Site

+ root
	+ templates
		+ versao1
			- css
			- imagens
			- javascript
		+ versao2
			- css
			- imagens
			- javascript

Nota que as diferentes templates estão em pastas separadas dentro da pasta templates (exactamente a mesma estrutura do wordpress, ../wp-content/themes/Nome da Theme) que inclui uma pasta para o CSS, o Javascript e as imagens que essa mesma template use. Qualquer outro tipo de ficheiros específicos para a template pode ser adicionado, basta criar uma nova pasta na template em questão.

O .HTACCESS

RewriteRule ^css/(.*)	/templates/versao1/css/$1
RewriteRule ^imagens/(.*)	/templates/versao1/imagens/$1
RewriteRule ^javascript/(.*)	/templates/versao1/javascript/$1

O .htaccess altera o caminho do pedido a partir do root para a template actual. Basicamente, para mudares depois de template, só tens que ir ao ficheiro acima e mudar o nome da template antiga (versao1) para a nova (versao2).

Referenciar Ficheiros

<script type="text/javascript" src="/javascript/jquery.js"></script>
	<link rel="stylesheet" type="text/css" href="/css/style.css" />

	<!-- Chamar uma imagem... -->

	<img src="/imagens/imagem1.png" />

Uma vez que o .htaccess muda o caminho do pedido, podemos de forma simples, chamar o javascript, css, imagens, etc, pela forma normal. Assim, não revelamos a nossa estrutura de ficheiros, e conseguimos manter o código mais pequeno e mudar de templates é tão fácil como perder 2 segundos a mudar o nome no ficheiro.

Achas que é uma boa solução? Existe uma maneira melhor de fazer isto? Se sim for, partilha.

6


Sobre o Autor

Carlos Gonçalves é um Freelancer com bastante experiência em linguagens de programação e webdesign. Vocacionado para as novas tecnologias, aposta na qualidade dos serviços, atendimento rápido e sempre disponível para melhor satisfazer os seus clientes. Autor do site cgoncalves.com

Comentários

  1. João Pedro Pereira  2 Janeiro 2010

    Este sistema só me parece o mais indicado se estivermos a falar de mudar permanentemente um template para uma outra versão, acho que pode ser feito assim, é simples e eficaz. Agora se pretendermos algo mais dinâmico acho que utilizarmos PHP torna as coisas mais simples e fáceis de utilizar até, podemos também utilizar JavaScript mas para isso é preciso o developer dominar JavaScript e pelo que tenho visto poucos sabem fazê-lo bem.

    Aqui há uns meses desenvolvi um sistema de templates em PHP, dá uma vista de olhos: http://joaopedropereira.com/blog/2009/02/09/template-system-kiss-1/ por acaso tenciono desenvolvê-lo mais, não tenho é tido tempo.

    (responder)
  2. Carlos Gonçalves  2 Janeiro 2010

    @João Pedro Pereira: sim, o sistema é aconselhado mais para versões de templates, porém não invalida que possa mudar de uma para outra totalmente diferente, tem é que respeitar os mesmos “padrões” que a anterior.

    Evidentemente um sistema de templates em PHP é sempre melhor, basta ver o exemplo do teu que fizeste, enquanto que este é um sistema simples, com meia dúzia de linhas, o teu já é um pouco mais complexo.

    Já agora fiz o download e hei de experimentar.

    (responder)
  3. Diogo Fonseca  9 Junho 2010

    Olhe o criei um assim:
    RewriteRule ^/(.*) /base/$1

    Mas não teve enfeito/não fez nada
    Como devo fazer?(não sou muito bom com htaccess)

    (responder)

Comentar

Nota: A moderação de comentários está activada e pode atrasar o teu comentário. Não há necessidade de reenviares o teu comentário.

  1. Carlos Gonçalves  Dezembro 27, 2009
  2. Fernando  Abril 28, 2010
  3. Os Meus 10 Artigos Mais Populares | Carlos Gonçalves  Julho 3, 2010
More in Outros (1 of 12 articles)

# #