Princípio geral

Todo o conteúdo de um site gerido pelo SPIP fica instalado numa base de dados MySQL. Para apresentar essas informações aos visitantes do site, é preciso realiza a operação que consistem em ler as informações, organizá-las e dispô-las, de modo a exibir uma página HTML no navegador web.

A menos que utilize um gestor de conteúdo avançado como o SPIP, esta operação é consideravelmente fastidiosa:
-  é preciso conhecer a programação PHP e MySQL, e escrever «rotinas», relativamente complexas;
-  a integração dessas rotinas num layout de página HTML elaborado é bastante penoso;
-  é preciso desenvolver toda uma interface para que os utentes autorizados modifiquem o conteúdo da base de dados;
-  é preciso levar em conta problemas de desempenho: o recurso sistemático ao código MySQL e PHP é ávido de recursos, retardando a visita e , em casos extremos, provoca o congelamento do servidor web

O SPIP oferece uma solução completa para contornar estas dificuldades:
-  o layout do site é realizado por meio de gabaritos no formato HTML, chamados de templates, contendo instruções simplificadas que permitem indicar onde e como se dispõe as informações recuperadas da base de dados na página;
-  um sistema de cache permite armazenar cada página e evitar provocar chamados à base de dadosa cada visita. Não apenas a carga sobre o servidor é reduzida e a velocidade é largamente acelerada, além disso um site em SPIP permanece consultável mesmo que a base de dados tenha congelado;
-  uma «área restrita» permite aos administradores e aos redatores gerir o conjunto dos dados do site.

Para cada tipo de página, um template

A vantagem (e a limitação) de um sistema de publicação automatizado é poder definir um gabarito para, por exemplo, todas as matérias. Nesse gabarito (template), especifica-se onde ficarão localizados, por exemplo, o título, o texto, os links de navegação... da matéria, e o sistema montará cada página individual de matéria, colocando automaticamente esses elementos extraídos da base de dados, no layout concebido pelo webmaster.

Um tal sistema automatizado permite assim obter uma apresentação coerente em todo o site... E isso é, também, a sua limitação: ele não permite definir uma interface diferente para cada página isolada (veremos mais à frente que o SPIP possibilita no entanto uma certa flexibilidade).

Ao instalar o SPIP, um conjunto de templates padrão é fornecido. Ele encontra-se no diretório
squelettes-dist/, na raiz do seu site. Quer você modifique estes ficheiros para adaptá-los às suas necessidades, ou se quiser instalar outro conjunto de templates, é conveniente criar um diretório chamado squelettes/ ao mesmo nível. Para mais detalhes sobre esta questão, leia a matéria Onde gravar os seus templates .

Quando um visitante solicita a página http://exemple.org/spip.php?article3437, o SPIP vai procurar um template chamado «article.html». O SPIP baseia-se no endereço URL da página para determinar qual template usar:

O URL chamará o template
spip.php?article3437 article.html
spip.php?rubrique143 rubrique.html
spip.php?mot12 mot.html
spip.php?auteur5 auteur.html
spip.php?site364 site.html

Com dois casos particulares:

-  O URL spip.php chama o template sommaire.html. Trata-se da página principal do site.
-  L’URL spip.php?page=abcdchama o template abcd.html. Por outras palavras, você pode criar templates que não foram previstos pelo sistema e nomeá-los como quiser

Esta sintaxe serve igualmente para páginas como mapa do site ou resultado de buscas, por exemplo: spip.php?page=plan, spip.php?page=recherche&recherche=esquilo.

Ao chamar um template, o SPIP passa-lhe o contexto

Além disso, você já deve ter reparado que o URL fornece outros elementos além do nome do template. Por exemplo, em spip.php?article3437, o número da matéria requisitada (3437); em spip.php?page=recherche&recherche=esquilo, a palavra buscada (esquilo).

Trata-se de um «contexto», ou seja, uma ou mais «variáveis de ambiente», que o SPIP vai fornecer ao template para que elas possam ser usadas na composição da página. Com efeito, o template article.html precisa conhecer o número da matéria requisitada para recuperar o seu título, o seu texto... na base de dados. Igualmente, o template recherche.html precisa conhecer as palavras buscadas pelo visitante para encontrar os registos da base de dados que contêm esses termos.

Em todo o URL, as variáveis de ambiente aparecem após o «?». Havendo mais de uma, elas serão separadas por «&».

No URL spip.php?page=recherche&recherche=ecureuil, existem duas variáveis: page e recherche, às quais são atribuídos os respectivos valores «recherche» e «esquilo».

No caso de spip.php?article3437, o SPIP simplificou o URL, que corresponde, na verdade a: spip.php?page=article&id_article=3437 (sim, sim, você pode testar!). Há aqui duas variáveis: page, com o valor "article", e id_article, com o valor "3437". Estas variáveis permitem ao SPIP usar os dados da materia 3437 dentro do template article.html.

O princípio de funcionamento do cache, de modo simplificado

Diagrama simplificado do sistema de cache

O SPIP verifica se uma página correspondente ao URL requisitado consta do CACHE

  1. Se a página existe, o SPIP verifica se ela não é muito antiga.
    1. Se a página é muito antiga, o SPIP recalcula-a a partir do template e da base MySQL e, em seguida, armazena-a no CACHE, antes de a enviar ao visitante.
    2. Se a página é recente, o SPIP exibe-a ao visitante.
  2. Se a página não existe, o SPIP calcula-a a partir do template e da base MySQL e, em seguida, armazena-a no CACHE, antes de a enviar ao visitante.

Numa próxima visita, se o tempo entre ambas as visitas é suficientemente curto, será esta nova página armazenada em /tmp/cache que será enviada, sem precisar fazer um novo cáculo a partir da base de dados. Em caso de indisponibilidade da base de dados, será forçosamente essa página em cache que será exibida, mesmo se for «muito antiga».

Nota. Vemos aqui que cada página do site é armazenada no cache individualmente, e cada recálculo é provocado pelas visitas do site. Em particular, não há um recálculo de todas as páginas do site de uma só vez em intervalos regulares (este tipo de «grande manobra» costuma sobrecarregar o servidor e, eventualmente, travá-lo).

Por padrão, se não for usada nenhuma tag #CACHE no início do template, uma página é considerada como muito velha após 24 horas. [1]

O ficheiro .html

No SPIP, chamamos os ficheiros .html de templates. São eles que descrevem a interface gráfica das suas páginas.

Estes ficheiros são escritos diretamente em HTML, ao qual se adiciona instruções que permitem indicar ao SPIP onde ele deverá colocar os elementos recuperados da base de dados (do género: «colocar o título aqui», «indicar neste lugar a lista de matérias sobre o mesmo tema»...).

As instruções para a colocação dos elementos são escritas numa linguagem específica, que é o assunto deste manual de utilização. Esta linguagem constitui também a única dificuldade do SPIP.

«Mais uma linguagem?» Sim, terá que aprender uma nova linguagem. No entanto, não é complicada, e permite criar interfaces complexas muito rapidamente. Comparada com a dupla PHP/MySQL, verá que poupará muito tempo (sobretudo, é muito mais simples). é uma markup language, ou seja uma linguagem que usa tags semelhantes às do HTML.

O que pode ser incluído num ficheiro .html

Os ficheiros .html são essencialmente ficheiros «texto», completados por instruções de colocação de elementos da base de dados.

O SPIP analiza unicamente as instruções de colocação dos elementos da base de dados (codificadas de acordo com a linkguagem específica do SPIP); ele não se importa com o que é colocado no ficheiro que não corresponda a essas instruções.

O seu conteúdo essencial é portanto HTML. Você determina o layout, a versão do HTML desejada etc. Você pode, evidentemente, incluir folhas de estilo (CSS), mas também JavaScript, Flash... resumindo: tudo o que se coloca habitualmente numa página Web.

Mas você pode igualmente (tudo isto é ainda texto) criar XML (por exemplo, «backend.html» gera XML).

Mais original: todas as páginas exibidas ao visitante são retiradas do CACHE por uma página escrita em PHP. Você pode, assim, incluir nos seus templates instruções PHP, elas serão executadas na ocasião da visita. Usada de formabastante refinada, esta possibilidade confere uma grande flexibilidade ao SPIP, que você pode assim completar (por exemplo, incluir um contador etc.), ou mesmo alterar certos elementos do layout em função de informações extraídas da base de dados.

Notas

[1Assim que compreenda a linguagem SPIP, você poderá alterar esta duração, usando a tag #CACHE.

Autor Ricardo Porto Publié le :

Traductions : عربي, català, corsu, English, Español, français, italiano, Nederlands, Português, українська