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":
<BOUCLE_article(ARTICLES){id_article}>
(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".