Os loops e as tags

As informações abaixo tratam da linguagem de descrição de layout dos templates do SPIP; como pode verificar no Princípio geral, trabalha-se com ficheiros «.html».

Esta documentação é intencionalmente técnica (trata-se das referencias técnicas); você pode preferir começar pelo nosso guia Passo-a-passo, mais didático, e voltar aqui para uma documentação mais precisa.

Os loops

A noção básica do da linguagem do SPIP é o loop.

-  A lógica do loop

Uma base de dados, tradicionamente, é uma lista de elementos: aqui, uma lista de matérias, uma lista de seções, uma lista de autores etc. Para «fabricar» o site, extrai-se desta lista alguns desses elementos:
-  no nível mais básico, quer-se extrair um único elemento de uma lista; por exemplo, exibir uma matéria desejada;
-  mas é frequente extrair vários elementos de uma lista; por exemplo, na página de uma seção, quer-se extrair todas as matérias contidas nessa seção, bem como todas as subseções contidas nela;
-  mais sutil: pode acontecer de não haver elementos que satisfaçam um determinado ambiente; o SPIP deve então poder gerir a eventualidade da inexistência desses elementos; por exemplo, o template de exibição das seções demanda a exibição de todas as subseções contidas numa seção; o que fazer, se não houver subseções nessa seção específica?

Estas três situações são tratadas pela noção única de loop, que permite ao mesmo tempo gerir a exibição de um único elemento, de vários elementos, ou a ausência de elementos.

O sistema de loop permite, num único código:
-  indicar que parte do código HTML precisa de que tipo de elemento (em que lugar queremos recuperar a lista de matérias, em que lugar queremos incluir a lista de subseções...);
-  prever a exibição de um elemento único;
-  indicar como deverá ser exibida uma lista de vários elementos;
-  determinar o que deve ser exibido quando não há nenhum elemento correspondente.

Analogia com a programação em PHP/MySQL

Aqueles que já programaram consultas MySQL em PHP sabem que o tratamento ocorre em dois tempos:
-  a construção da sintaxe da consulta (que consiste em dizer «eu quero recuperar a lista de matérias contidas na seção tal...»);
-  a análise e a exibição dos resultados através de um loop.

São estes dois eventos que, no SPIP, são geridos através de loops.

As tags SPIP

Graças aos loops, recupera-se elementos únicos ou listas de elementos: por exemplo, uma lista de matérias ou uma lista de seções...

No entanto, cada elemento dessas listas é composto de diversos elementos específicos: por exemplo, uma matéria é composta de um título, um sobretítulo, um subtítulo, um texto de introdução (cabeçalho), um texto principal, um post-scriptum etc. Existem tags próprias do SPIP, que permitem indicar em que lugar se deve exibir esses elementos: «colocar o título aqui», «colocar o texto aqui»...

As tags no interior dos loops

Eis, através de um caso clássico, o princípio geral de funcionamento de um loop acompanhado das suas tags (atenção, isto não é linguagem SPIP, e sim uma descrição lógica):

LOOP: exibir a lista de matérias desta seção
exibir aqui o título da matéria
exibir o subtítulo
exibir o texto
Fim do LOOP

Este loop, analisado pelo SPIP, pode dar três resultados diferentes.

-  Não há nenhuma matéria nesta seção.

Neste caso, evidentemente, nenhum dos elementos «exibir aqui... (título, subtítulo...)» é usado. Ao contrário, se tiver sido previsto, pode-se exibir uma mensagem do tipo «Não há nenhuma matéria».

-  Há uma única matéria nesta seção.

Neste caso, a página HTML é simplesmente construída no modelo do loop:

Título da matéria
Subtítulo
Texto da matéria

-  Há várias matérias nesta seção.

A descrição do layout («exibir aqui...») será calculada sucessivamente para cada uma das matérias, resultando simplesmente em:

Título da matéria 1
Subtítulo da matéria 1
Texto da matéria 1

Título da matéria 2
Subtítulo da matéria 2
Texto da matéria 2
...
Subtítulo da última matéria
Subtítulo da última matéria
Texto da última matéria

A continuação deste guia de referência estrutura-se do modo seguinte:
-  sintaxe geral dos loops;
-  sintaxe geral das tags do SPIP;
-  e, em seguida, uma página específica a cada tipo de loops, indicando quais tags que neles podem ser usadas.

Autor Ricardo Porto Publié le :

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