Um template, várias matérias

A lição anterior permitiu-nos extrair os dados da matéria nº 1 da base de dados e montar uma página web. Generalizemos...

O nosso template é bastante inútil se servir apenas para exibir a matéria nº 1. Vamos ensiná-lo a exibir qualquer matéria:

Para isso, vamos chamar a nossa página web com um parâmetro, do tipo id_article=2: aponte o seu navegador para o URL a seguir
«http://seusitio.net/spip.php?page=tutorial&id_article=2».

Aparece... de novo a matéria 1 (e não a 2). Modifiquemos no template tutorial.html a linha que define o «loop materia»:
<BOUCLE_materia(ARTICLES){id_article}>
(Como pode ver, substitui-se simplesmente {id_article=1} por {id_article}, sem mais.)

E pronto: http://seusitio.net/spip.php?page=tutorial&id_article=2 dá-lhe agora a matéria 2. [1]

O BOUCLE_materia é executado num «contexto» em que id_article é igual a 2 (é o valor que foi transmitido no URL). Se especificarmos {id_article=1} ele vai buscar a matéria nº 1, mas se lhe pedirmos apenas {id_article}, ele vai buscar a matéria cujo número for indicado pelo contexto (aqui, o URL).

Visite agora estas páginas:
-  http://seusite.net/spip.php?page=tutorial&id_article=1,
-  http://seusite.net/spip.php?page=tutorial&id_article=2 e
-  http://seusite.net/spip.php?page=tutorial [*].

Vê a diferença? As duas primeiras páginas dão-lhe as matérias nº 1 e nº 2, a terceira não tem id_article no seu contexto, e gera um erro.

Bravo! Agora, o seu template é «contextual».

Notas

[1Não? Mas deveria...

Autor guidaq, Ricardo Porto Publié le : Mis à jour : 05/02/25

Traductions : عربي, català, corsu, Deutsch, English, Español, فارسى, français, italiano, 日本語, Nederlands, polski, Português, русский, slovenčina, svenska, Türkçe, українська