source: spip-zone/_plugins_/_dev_/dtarch/demo_articles.html @ 18112

Last change on this file since 18112 was 18112, checked in by james@…, 13 years ago

pfff, un raté :)

  • Property svn:executable set to *
File size: 3.3 KB
Line 
1[(#REM)
2
3        Noisette d'Archives Mensuelles pour SPIP 1.9.2c et +
4
5        Parametres:
6        self:           la page de destination, souvent celle ou apparait cette noisette.
7                                Penser a specifier {self=#SELF} en parametre pour l'INCLURE appelant
8        date:           la date de contexte, transmise par defaut ou specifiee par l'INCLURE appelant.
9                                Elle servira a mettre en evidence le mois choisi par le visiteur (class css 'on')
10                                Penser a specifier au minimum {date} en parametre pour l'INCLURE appelant
11        pour SPIP 1.9.3dev, on peut preferer {env}
12        var_date:       variable de navigation, facultatif, 'date' par defaut
13                                {var_date=date_liste} pour &date_liste=2008-02
14
15        Principe:
16        Cet exemple illustre comment generer une liste glissante de liens pointant
17        vers une page permettant l'affichage d'elements du mois choisi par le visiteur.
18        On se base sur l'ensemble des ARTICLES du site. Pour adapter a un autre ensemble
19        d'elelements, ou un groupe d'articles plus reduit (mot-cle, rubrique limitee)
20        ne pas perdre de vue qu'il y a 4 boucles dont les criteres doivent etre coherent.
21       
22        _reference      boucle englobante. Elle sert a definir la date de reference
23                                pour demarrer la liste. Cette date sera employee par les 3 autres boucles
24                                grace aux criteres {mois_relatif}
25                                Elle utilise le critere agenda en prenant le plus recent des articles
26                                de la periode visee.
27        _archives       boucle principale. Elle n'affichera que la #DATE des articles.
28                                En cas de gros volume, le parcours de la table peut s'averer contre-performant.
29                                On profite donc du fait qu'on utilisera que les #DATE, de plus avec un degre
30                                de precision au mois pres pour recuperer les donnees groupees par mois
31                                avec le critere fusion.
32                                Ensuite, on limite aux articles publies dans les 12 derniers mois.
33        _recent,
34        _ancien         deux boucles qui affichent quelque chose si un article est publie dans la periode qui suit
35                                ou qui precede.
36
37][(#REM)
38
39        Periode visee:
40        Comme dit plus haut, la date de contexte met en evidence le mois selectionne par le visiteur.
41        Elle ne peut donc servir a definir la fenetre.
42        On prend donc a la place l'anee de la date systeme, ajustee par un decalage determine par les liens
43        des boucles _recent et _ancien
44
45]#SET{date,#EVAL{date('Y-m')}}
46[(#SET{annee_fin,[(#GET{date}|annee|plus{#ENV{decal}})]})]
47[(#SET{annee_deb,[(#GET{annee_fin}|plus{#ENV{decal}|>{0}|?{1,-1}})]})]
48<BOUCLE_reference(ARTICLES)
49        {par date}{inverse}{0,1}
50        {agenda date, periode, #GET{annee_deb}, (#GET{date}|mois), 1, #GET{annee_fin}, (#GET{date}|mois), 31}
51><B_archives>
52<div id="archives" class="menu">
53        <h2><:dtarch:archives:></h2>
54        <BOUCLE_recent(ARTICLES){lang_select=non}{par date}{inverse}{0,1}{mois_relatif<0}>
55        <p>
56                <a href="[(#SELF|parametre_url{decal,[(#ENV{decal}|plus{1})]})]">+1an</a>
57        </p>
58        </BOUCLE_recent>
59        <ul>[(#REM)
60
61
62
63                ]<BOUCLE_archives(ARTICLES)
64                        {lang_select=non}{fusion DATE_FORMAT(date,'%Y-%m')}
65                        {par date}{inverse}
66                        {mois_relatif>=0}{mois_relatif<12}
67                >[<li>
68                        <a href="[(#SELF|parametre_url{#ENV{var_date,date},[(#DATE|affdate{Y-m})]})]"[
69                                class="(#DATE|affdate{Y-m}|=={[(#ENV{date}|affdate{Y-m})]}|?{on})"
70                        ]>(#DATE|affdate_mois_annee)</a>
71                </li>
72                ]</BOUCLE_archives>
73        </ul>
74        <BOUCLE_ancien(ARTICLES){lang_select=non}{par date}{inverse}{0,1}{mois_relatif>=12}>
75        <p>
76                <a href="[(#SELF|parametre_url{decal,[(#ENV{decal}|moins{1})]})]">-1an</a>
77        </p>
78        </BOUCLE_ancien>
79</div>
80</B_archives>
81</BOUCLE_reference>
Note: See TracBrowser for help on using the repository browser.