|
[05/09]
:. Resumo do dia [05/09] :. Lançado Django 1.0, framework para aplicações web [04/09] :. Google Chrome será integrado ao Android [04/09] :. AMD anuncia oficialmente grade de futuros lançamentos [04/09] :. Samsung: Blu-Ray terá mais 5 anos de vida [04/09] :. Resumo do dia [04/09] :. A nova temporada de lançamentos de distros [04/09] :. Governo chinês desenvolve chip compatível com instruções x86 [04/09] :. Google altera licença 'ameaçadora' do navegador Chrome [04/09] :. Kingston lança memória de baixa latência para notebooks [04/09] :. Michael Dell afirma: não faremos smartphones [04/09] :. XO que roda Windows virá em outubro; Amazon também venderá [04/09] :. Intel deve lançar processador de 6 núcleos em 15 de setembro [03/09] :. Veja os logs do sistema pela web, com o phpLogCon [03/09] :. Phoronix Test Suite 1.2, agora suporta BSD e OpenSolaris :. Mais noticias » |
Nós que já fizemos alguns sites na vida sabemos que fazer sites é fácil, difícil é mantê-los. Se publicamos muito texto, temos que enchê-lo de tags marcando negritos, parágrafos e afins. O código em si fica totalmente ilegível. E se pudéssemos digitar todo o conteúdo de nosso site em arquivos de texto com marcação simples plenamente legível, sem quinhentas mil tags? E se toda a parte visual do site se concentrasse em dois únicos arquivos? Poderíamos mudar todo o visual do site mexendo apenas neles! Melhor: e se um shell-script montasse automaticamente as páginas PHP completinhas, com o visual e o conteúdo, prontas para o upload? Vamos aprender a fazer sites "the Linux way" com txt2tags, PHP e shell-script! TXT2TAGSPrimeiro vamos cuidar do conteúdo. Vamos dar uma olhada num trecho do código fonte desta página do meu site, o LINUX para o Resgate:
<H1>Criando um relatório de hardware - Parte I</H1>
<P> <I>Por <A HREF="mailto:robertobech@linuxparaoresgate.com">Roberto Bechtlufft</A>, 30/03/2007</I> </P> <P> Acredito que muitos de vocês conheçam programas como o <A HREF="http://www.lavalys.com/">EVEREST</A>, que gera um relatório completo do hardware do PC: modelo do processador, fabricante do HD, quantidade de memória RAM instalada. O programa é de fato muito bom, mas tem alguns inconvenientes: </P> <UL> <LI>A versão gratuita tem recursos limitados; <LI>Você precisa comprar uma licença para cada PC em que for rodar o programa. Dá para imaginar uma coisa dessas? <LI>Você precisa de um PC que boote o windows para rodar o programa (ou seja, se o windows não boota...) </UL> <P> Caso você tenha em mãos um PC que não boota, ou que esteja sem HD, pode ser complicado conseguir informações sobre o hardware. Por isso, é muito importante saber usar as ferramentas do LINUX para essa tarefa, já que você pode bootar o Live-CD até se o micro estiver sem HD. E nem vai precisar do modo gráfico, pode fazer tudo via linha de comando. </P> <P> Vamos usar algumas ferramentas bem básicas do Linux, dessas que vêm instaladas em qualquer distribuição. </P>
No nosso navegador a página pode ficar muito bonitinha, mas convenhamos, num editor de textos a gente percebe a zona que é esse bando de tags. Pois bem, imaginem que pudéssemos obter o mesmíssimo resultado com este código:
=Criando um relatório de hardware - Parte I=
//Por [Roberto Bechtlufft robertobech@linuxparaoresgate.com], 30/03/2007// Acredito que muitos de vocês conheçam programas como o [EVEREST http://www.lavalys.com/], que gera um relatório completo do hardware do PC: modelo do processador, fabricante do HD, quantidade de memória RAM instalada. O programa é de fato muito bom, mas tem alguns inconvenientes: - A versão gratuita tem recursos limitados; - Você precisa comprar uma licença para cada PC em que for rodar o programa. Dá para imaginar uma coisa dessas? - Você precisa de um PC que boote o windows para rodar o programa (ou seja, se o windows não boota...) Caso você tenha em mãos um PC que não boota, ou que esteja sem HD, pode ser complicado conseguir informações sobre o hardware. Por isso, é muito importante saber usar as ferramentas do LINUX para essa tarefa, já que você pode bootar o Live-CD até se o micro estiver sem HD. E nem vai precisar do modo gráfico, pode fazer tudo via linha de comando. Vamos usar algumas ferramentas bem básicas do Linux, dessas que vêm instaladas em qualquer distribuição.
As vantagens são óbvias, mas vamos listá-las mesmo assim: Para fazermos essa mágica toda só precisamos de um programa chamado txt2tags. Ele é desenvolvido por um brasileiro muito conhecido na comunidade Linux, o Aurélio, e tem pacotes para Ubuntu, Debian, Fedora, Slackware, FreeBSD e até mesmo Windows. Usar o programa é muito simples: nós escrevemos um arquivo de texto com a formatação do txt2tags (como vimos no exemplo acima), tomando o cuidado de deixar a primeira linha em branco. Suponhamos que nosso arquivo se chame "teste.txt". Para transformar esse arquivo de texto em um arquivo html basta abrirmos um terminal e digitarmos: txt2tags -t html teste.txt
A flag -t indica o tipo de arquivo, já que o txt2tags também pode converter seu arquivo para os formatos XHTML, SGML, LaTeX, Lout, Man page, MoinMoin, MagicPoint e PageMaker. Uau :-)
Se tudo correu bem, podemos abrir nosso arquivo html em nosso browser favorito e nos desmancharmos de prazer :-) Depois podemos aprender todas as marcações do txt2tags rapidamente nesta página do site oficial. O txt2tags também é utilizado na confecção do site Dicas-L. O Rubens, editor do site, explicou todo o processo que ele utiliza em http://www.dicas-l.com.brRecomendo um dia inteiro de diversão com o txt2tags, se familiarizando com nossa nova maneira de criar páginas html, antes de irmos para o próximo passo, o TEMPLATE PHP.
Template PHPAgora que o conteúdo não é mais problema, vamos cuidar do visual do site. O primeiro site que eu fiz se chamava "A Gazeta de Algol", era sobre um velho jogo de videogame chamado Phantasy Star. O site era uma bagunça. Cada página continha, além do conteúdo, toda a formatação visual. Eu nem imaginava que quando meu site tivesse algumas dezenas de páginas e eu decidisse mudar o visual dele eu teria que mudar página por página... Claro que o uso de CSS resolve parte do problema: mudando o arquivo de CSS podemos mudar o tipo e o tamanho das fontes, a cor de fundo das páginas, mas... e se eu decidisse encaixar um menu no topo, e um rodapé em todas as páginas? Aí eu teria que fazer a mudança em cada página do site, uma por uma... trabalhoso, não? Da maneira como faço as coisas agora, toda a parte visual do site fica em dois arquivos: header.html e footer.html. No header.html eu coloco o visual da parte superior do site, como o logotipo, o menu e coisas do gênero. No footer.html eu coloco o rodapé do site. Como nós mexemos com PHP estamos familiarizados com o conceito de includes, não é mesmo? Vocês já devem ter sacado que vou encaixar um include('header.html') e um include('footer.html') em cada página que eu fizer, não é mesmo? Tá. Vamos supor que eu pegue cada página de conteúdo - que deveria ter apenas CONTEÚDO - e encaixe um "include" no início e outro no fim. Temos dois problemas: Pois vamos fazer melhor. Vamos criar um arquivo 'template.php': <?php
require($_SERVER['DOCUMENT_ROOT'] . "/header.html"); include "__CONTEUDO__"; # inclui a página require($_SERVER['DOCUMENT_ROOT'] . "/footer.html"); ?> ATENÇÃO: uso a variável DOCUMENT_ROOT para o o PHP saber onde é o raiz do site. É importante se referenciar ao raiz do webserver porque, quando você fizer o upload das páginas, os links funcionarão corretamente, desde que seu host de hospedagem tenha definido esta variável corretamente. No entanto, alguns hosts não têm essa variável definida, e nesse caso você vai precisar dar outro jeito de se referir à raiz de seu site! Supondo que tenhamos uma página de conteúdo (teste.html) só precisaríamos criar uma cópia deste template.php, renomear este arquivo template.php para teste.php, substituir a linha <?php
require($_SERVER['DOCUMENT_ROOT'] . "/header.html"); include "teste.html"; # inclui a página require($_SERVER['DOCUMENT_ROOT'] . "/footer.html"); ?> O arquivo de template teste.php iria incluir automaticamente não só nossas páginas header.html e footer.html como também nossa página de conteúdo teste.html, que continuaria purinha, só com conteúdo, plenamente legível e facilmente editável. Desta forma, para cada página de nosso site teríamos três páginas, desta maneira: O arquivo teste.txt, o único no qual você teria que mexer para fazer alterações (lembre-se: deixe a primeira linha em branco!): =Teste=
Este é um arquivo de **testes** para ilustrar como tudo funciona. O arquivo teste.html, com o conteúdo formatado em HTML, gerado automaticamente pelo txt2tags, no qual você não precisa nem tocar: <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML> <HEAD> <META NAME="generator" CONTENT="http://txt2tags.sf.net"> <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=utf-8"> </HEAD><BODY BGCOLOR="white" TEXT="black"> <FONT SIZE="4"> <P> Este é um arquivo de <B>testes</B> para ilustrar como tudo funciona. </P> </FONT> </BODY></HTML> Note que o txt2tags cria até o preâmbulo do HTML sozinho :-) Teríamos ainda o arquivo teste.php, que junta o html acima com os dois arquivos header.html e footer.html, que contém os elementos visuais do do nosso site. Ele é uma cópia do arquivo template.php, bastando alterar, no entanto, a referência à página html que queremos. Veja como ficou: <?php
require($_SERVER['DOCUMENT_ROOT'] . "/header.html"); include "teste.html"; # inclui a página require($_SERVER['DOCUMENT_ROOT'] . "/footer.html"); ?> Pronto. Agora basta fazermos o upload dos arquivos teste.html e teste.php. Se quisermos, podemos até subir o teste.txt para que nossos visitantes tenham acesso ao código-fonte do site :-) "Mas Roberto", vocês dizem, "é impossível fazer tantas cópias e alterações do arquivo template.php quando você tem centenas de páginas!" Meus caros, nada é impossível quando contamos com o shell-script.
Shell-scriptEssa é a parte mais divertida: vamos criar um script chamado montapagina.sh: #!/bin/bash
# Vamos supor que estamos desenvolvendo este site no Apache. # Ajustamos o valor da variável BASEDIR para o diretório raiz de # documentos do nosso Apache. Geralmente é /var/www. No meu # Fedora 7 é /var/www/html BASEDIR=/var/www/html # Busca todos os subdiretórios DIRS=$(find . -type d); # Entra em cada subdiretório para realizar as operações. # Se configuramos direitinho a variável BASEDIR aí em cima # nem precisamos mexer em mais nada. for DIRECTORY in $DIRS; do echo; echo ">>> Entrando no diretório $BASEDIR/$DIRECTORY"; cd $BASEDIR/$DIRECTORY; for FILE in *.txt; do HTMLFILE=$(echo $FILE | sed "s/.txt/.html/g"); PHPFILE=$(echo $FILE | sed "s/.txt/.php/g"); txt2tags -t html $FILE &> /dev/null; sed "s/__CONTEUDO__/$HTMLFILE/g" $BASEDIR/template.php > $PHPFILE; echo "$PHPFILE criado com sucesso!"; done; done; O que este script faz: Veja que estou partindo do princípio que nosso site está sendo feito no raiz do servidor apache, e que o scipt também se encontra neste mesmo diretório. Ao fim da operação, o script vai ter montado TODO o nosso site em questão de segundos! Nossos diretórios estarão populados de arquivos html e php prontos para serem upados! Se um dia decidirmos mudar o visual do site, só precisamos mudar os arquivos header.html e footer.html. A idéia é mudar toda a estrutura, alterando o template.php? Então é só mudar e rodar novamente nosso script montapagina, e todo nosso site será reconstruído com o novo template! Roberto M Bechtlufft é administrador de sistemas Linux e editor do site Linux Para o Resgate (http://www.linuxparaoresgate
|
|||||