Збірник готових рецептів для рішення найпоширеніших проблем при установці сайту на SPIP. Цю статтю ми регулярно оновлюємо новими рішеннями.
Меню на основі розділів
<li><a href="#URL_RUBRIQUE" [title="(#TITRE|supprimer_numero)"]>[(#TITRE|supprimer_numero)]</a></li>Меню на основі статтей
<li><a href="#URL_ARTICLE" title="#TITRE">#TITRE</a></li>Зазвичай, кожен розділ, іноді стаття, має порядковий номер. Окрім як задавати порядок виведення його можна використовувати для для приховування / відкриття пунктів меню за допомогою такого критерію:
{titre==^[[:digit:]]}
Якщо кожна мовна версія сайту знаходиться в кореневій папці,
то ми просто виводимо назви мов цих розділів.
<div class="language">
<BOUCLE_languages(RUBRIQUES) {racine} {par num titre} {titre==^[[:digit:]]}>
[<a href="#URL_SITE_SPIP?lang=#LANG" [title="#NOM_SITE_SPIP - (#TITRE|supprimer_numero|textebrut)"]>(#LANG|traduire_nom_langue)</a>]
</BOUCLE_languages>
</div>Кейворди дуже зручно використовувати для налаштувань зовнішнього вигляду і керування статями. У даному прикладі я створив групу ключових слів "Службові", і ключове слово id_mot = 1, яким я регулюю виводити чи ні форму зворотного зв’язку для цієї статті.
<BOUCLE_feedback(MOTS) {id_article} {id_mot=1} {0,1}> #FORMULAIRE_FEEDBACK</BOUCLE_feedback>Додавання відразу з підтримкою lightbox. Підтримка забезпечується rel=lightbox.
<B_gallery>
<h3>Фотогаллерея</h3>
<BOUCLE_gallery(DOCUMENTS) {id_article}{extension==jpg|png|gif} {mode=document} >
<div class="gallery-item">
[<a href="#URL_DOCUMENT" title="#TITRE" rel="lightbox">(#LOGO_DOCUMENT|image_reduire{150,0})</a>]
</div>
</BOUCLE_gallery>Ключовий момент - # _rubs: TITRE, цей тег виводить # TITRE рубрики з циклу _rubs.
<BOUCLE_rubs(RUBRIQUES)>
<ul>
<BOUCLE_arts(ARTICLES){id_rubrique}>
<li>#_rubs:TITRE - #TITRE</li>
</BOUCLE_arts>
</ul>
</BOUCLE_rubs>Шлях до поточної сторінки (розділу). При необхідності легко переробити на статтю.
<div class="pathway">
<a href="#URL_SITE_SPIP"><:accuel:></a>
<BOUCLE_pathway(HIERARCHIE) {id_rubrique}>
<a href="#URL_RUBRIQUE">[(#TITRE|supprimer_numero)]</a>
</BOUCLE_pathway>
<a href="#URL_RUBRIQUE">[(#TITRE|supprimer_numero)]</a>
</div>Якщо у нас так організована структура сайту, що в кореневі папки - це мовні версії сайту, то часто не треба показувати це в шляху, тоді запит змінюється наступним чином (фактично ми додаємо LIMIT 1,100):
<div class="pathway">
<a href="#URL_SITE_SPIP"><:accuel:></a>
<BOUCLE_pathway(HIERARCHIE) {id_rubrique} {1,100}>
<a href="#URL_RUBRIQUE">[(#TITRE|supprimer_numero)]</a>
</BOUCLE_pathway>
<a href="#URL_RUBRIQUE">[(#TITRE|supprimer_numero)]</a>
</div>Часто треба виводити останні статті з двох розділів і вкладених підрозділів з сортуванням за датою. Варіант - виводимо спочатку з одного, а потім з другого - не підходить. Тоді використовуємо масив і отримуємо такий код.
#SET{rubs, #ARRAY}
<BOUCLE_list (RUBRIQUES) {id_parent IN 4,8}>
#SET{rubs, #GET{rubs}|push{#ID_RUBRIQUE}}
</BOUCLE_list>
<ul>
<BOUCLE_last (ARTICLES) {id_rubrique IN #GET{rubs}} {par date} {inverse} {0,5}>
<li><a href="#URL_ARTICLE" title="#TITRE">#TITRE</a></li>
</BOUCLE_last>
</ul>Виводимо елементи по 3 штуки в ряд.
<table>
<B_row>
<tr>
<BOUCLE_row (ARTICLES) {id_rubrique=5} {doublons} {par date} {0,3}>
<td background="IMG/[(#LOGO_ARTICLE|fichier)]" >
<a href="#URL_ARTICLE">#TITRE</a>
</td>
</BOUCLE_row>
</tr>
<BOUCLE_row_again (BOUCLE_row)></BOUCLE_row_again>
</B_row>
</table>Використовуємо при виділення кольором поточного посилання у меню.
class="[(#ID_RUBRIQUE|=={#_main:ID_RUBRIQUE}|?{on,''})]"[(#COMPTEUR_BOUCLE|modulo{3}|=={0}|?{'<div class="clear"></div>'})]В даному випадку у рубрики 1133 заданиа арабська мова , і ми перевіряємо якщо співпадає поточна мова з арабською, то виводимо одне, якщо ні - то інше.
<BOUCLE_arlang (RUBRIQUES) {id_rubrique=1133} {lang=#LANG} {0,1}>
<link rel="stylesheet" type="text/css" href="elements/voltaire-#LANG.css" media="screen,print">
</BOUCLE_arlang>
</B_arlang>
<link rel="stylesheet" type="text/css" href="elements/voltaire.css" media="screen,print">
<//B_arlang>