Спробуйте самі!
Ось можливе рішення:
<BOUCLE_rubrique(RUBRIQUES){id_rubrique}>
<h1>#TITRE</h1>
<BOUCLE_article(ARTICLES){id_rubrique}{par date}{inverse}{0,10}>
<a href="#URL_ARTICLE">#TITRE</a><br/>
</BOUCLE_article>
[(#TEXTE|justifier)]
</BOUCLE_rubrique>
Викликаємо сторінку: http://yoursite.net/spip.php?page=tutorial&id_rubrique=1
. Що відбувається?
Наш цикл ARTICLES
викликається всередині циклу RUBRIQUES
, який відповідає за виведення всієї інформації про рубрику. Контекст циклу ARTICLES
задається циклом RUBRIQUES
, який і визначає значення id_rubrique
. Сам цикл RUBRIQUES
отримує це значення з URL в адресному рядку браузера, де ми ввели http://yoursite.net/spip.php?page=tutorial&id_rubrique=1
, отже id_rubrique=1
. Тобто ми з рівня ARTICLES
зробили запит про значення id_rubrique
. На цьому рівні нічого не змінилося.
Але цикл RUBRIQUES
дозволяє SPIP вибрати значення полів для рубрики, про яку ми зробили запит, таким чином ми можемо відобразити назву рубрики #TITRE
та її пояснювальний текст #TEXTE
. Зазначимо, що значення тегу #TEXTE
залежить від того, в якому циклі він розташований. Зараз він в циклі RUBRIQUES
і тому виводить текст рубрики, а якби він містився в циклі ARTICLES
, то виводив би текст статті. Функція відображення в SPIP гарантує, що використання #TEXTE
для статей не викличе конфлікту із значенням цього тегу для зовнішнього циклу.
Зазначимо ще: ми використали перший фільтр для тега #TEXTE
, а саме |justifier
. Цей фільтр встановлює вирівнювання тексту по ширині, додаючи style = "align: justify"
в теги <p>
.