[ar] [ast] [bg] [br] [ca] [co] [cpf] [cs] [da] [de] [en] [eo] [es] [eu] [fa] [fon] [fr] [gl] [id] [it] [ja] [lb] [nl] [oc] [pl] [pt] [ro] [ru] [sk] [sv] [tr] [uk] [vi] [zh] Espace de traduction

Home > English documentation > Webmasters > Creating your first template > One template, several articles

One template, several articles

Now it starts to become useful

October 2003 — updated on : February 2012

All the versions of this article:

The preceding lesson enabled us to extract the content of article no 1 from the database and build a web page from it. Let’s generalise for more than one single web page...

Our template is not terribly useful if it can only display article no 1. Let’s enhance it to display any article:

For that we will call our web page with a parameter, id_article=2. Type the following into your web browser http://yoursite.net/spip.php?page=tutorial&id_article=2.

And there it appears... still article 1. So let’s fix that problem by modifying the line in the tutorial.html template that defines the "article loop":

(As you can see, you simply replace {id_article=1} with {id_article}.)

And now, http://yoursite.net/spip.php?page=tutorial&id_article=2 should display article 2 [1].

The loop called BOUCLE_article will be executed inside a "context" that includes the id_article variable having a value of 2 (i.e. the value which was passed in the URL). If you specify {id_article=1} in the template, it will specifically find article no 1, but if you only specify {id_article}, it will find the article whose number is indicated by the context (in this case, by the URL).

Now click on:
-  http://yoursite.net/spip.php?page=tutorial&id_article=1,
-  http://yoursite.net/spip.php?page=tutorial&id_article=2 and
-  http://yoursite.net/spip.php?page=tutorial.

Do you see the difference? The first two pages show you articles no 1 and 2, the third does not have a id_article in its context, and generates an error.

Congratulations! Your template is now "contextual".


[1if it doesn’t, well it should have, and you should check the coding carefully...

Show the template of this page Site powered by SPIP | Translation area | Private area