[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


Loops within loops

Displaying content from several levels

October 2003 — updated on : February 2012

All the versions of this article:

We know how to generate a list of titles in a section. Now we are going to display the section’s own elements on the same page: its title, its explanatory text, etc.

Give it a try.

Here’s one possible solution:

We call the page with the URL http://yoursite.net/spip.php?page=tutorial&id_rubrique=1[[<*>Note that in versions prior to SPIP 1.9, the URL for displaying our tutorial was written as: http://yoursite.net/tutorial.php3. In this case we’re passing it a parameter http://yoursite.net/tutorial.php3?id_rubrique=1. So, what’s happening here?

Our ARTICLES loop is integrated inside a RUBRIQUES (section) loop. The ARTICLES loop’s context is the id_rubrique generated by the RUBRIQUES loop, which will itself have the context given by the URL (id_rubrique=1). Therefore we are at the ARTICLES level, within the requested id_rubrique. At this point nothing has changed.

However, the RUBRIQUES loop allows SPIP to select the field values for the section in question: we can thus display the section’s #TITRE and #TEXTE. Note that this instance of #TEXTE would be that of the section even if we were also to call the article’s #TEXTE within the ARTICLES loop. The display function of SPIP guarantees that #TEXTE of an article does not interfere with identically named tags in the outer loop.

Finally, a filter has been introduced |justifier on the #TEXTE field. This filter justifies the contents of the text before inserting it in the final page.

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