[(#REM) Le mini calendrier mensuel est une table répondant à la recommandation xhtml 1.0 strict
date: date du mois à afficher sous forme de calendrier (date)
lien_navigation: Si la page affichant ce calendrier n'est pas celle de destination des liens (url)
var_date: variable de navigation, date par defaut (texte)
date_precedente: Si on force un lien vers une date mensuelle passée (date)
date_suivante: Si on force un lien vers une date mensuelle future (date)
annee_precedente: Si on force un lien vers une date mensuelle d'une année passée (date)
annee_suivante: Si on force un lien vers une date mensuelle d'une année future (date)
jours: Liste des jours sur lesquels afficher un lien (tableau)
][(#SET{url,[(#ENV{lien_navigation,#SELF})]})][
][(#SET{date_precedente,[(#ENV{date_precedente,[(#DATE|mois_precedent)]})]})
][(#SET{date_suivante,[(#ENV{date_suivante,[(#DATE|mois_suivant)]})]})
][(#SET{id_calendrier,<:calendrier:minical|minical_compteur:>})
]
[(#REM) Ligne de navigation par mois ou par année
][[(#REM) debut CONFIG calendrier/navigation]
[(#CONFIG{calendrier/par_annee}|=={oui}|?{' '})
[(#SET{annee_precedente,[(#ENV{annee_precedente,[(#DATE|annee_precedente)]})]})]
[(#SET{annee_suivante,[(#ENV{annee_suivante,[(#DATE|annee_suivante)]})]})]
#CONFIG{calendrier/texte_precedent,«}
[(#DATE|annee)]
#CONFIG{calendrier/texte_suivant,»}
[(#REM) fin CONFIG calendrier/par_annee]]
[(#GET{date_precedente}|?{' '})#CONFIG{calendrier/texte_precedent,«} ]
(#CONFIG{calendrier/navigation}|!={non}|?{' '})
][(#DATE|nom_mois)][(#CONFIG{calendrier/par_annee}|=={oui}|?{'',' '})[(#DATE|annee)]][
(#CONFIG{calendrier/navigation}|!={non}|?{' '})
[(#GET{date_suivante}|?{' '}) #CONFIG{calendrier/texte_suivant,»}]]
[(#REM) Affichage des jours de la semaine
Dépend de la langue balise #LANG :
par convention, les pays anglosaxons et le Japon débutent la semaine par le dimanche
les autres pays commencent par le lundi.
On prévoit malgré cette convention un moyen de forcer le jour de début,
utile par exemple pour les quebecois francophones qui utilisent des calendriers anglosaxons
Appelons ce jour le "début de semaine culturel" ou "premier jour culturel"
(à noter toutefois qu'un français du vieux continent qui consulte un calendrier canadien écrit en français n'est pas soumis
à cette contrainte culturelle. Le mieux serait peut-être que SPIP gére la #LANG fr-ca pour prendre en compte
ce code dans la convention adoptée par ce squelette)
Concernant l'affichage des jours, le texte visible peut être abrégé ou complet.
On peut aussi afficher une itiniale du jour.
La possibilité d'afficher un nombre donné des premiers caractères du jour est également offerte.
][(#CONFIG{calendrier/premier_jour_culturel}|?{' '})
[(#SET{pjc,#CONFIG{calendrier/premier_jour_culturel}})]
][(#CONFIG{calendrier/premier_jour_culturel}|?{'',' '})
[(#LANG|match{en|ja}|?{' '})
[(#SET{pjc,1})]
][(#LANG|match{en|ja}|?{'',' '})
[(#SET{pjc,2})]
]
][(#SET{jour_1,[(#GET{pjc}|plus{0}|jour_semaine)]})]
[(#SET{jour_2,[(#GET{pjc}|plus{1}|jour_semaine)]})]
[(#SET{jour_3,[(#GET{pjc}|plus{2}|jour_semaine)]})]
[(#SET{jour_4,[(#GET{pjc}|plus{3}|jour_semaine)]})]
[(#SET{jour_5,[(#GET{pjc}|plus{4}|jour_semaine)]})]
[(#SET{jour_6,[(#GET{pjc}|plus{5}|jour_semaine)]})]
[(#SET{jour_7,[(#GET{pjc}|plus{6}|jour_semaine)]})
]
[(#GET{jour_1}|date_jour{[(#CONFIG{calendrier/jour_semaine_abbr})]})]
|
[(#GET{jour_2}|date_jour{[(#CONFIG{calendrier/jour_semaine_abbr})]})]
|
[(#GET{jour_3}|date_jour{[(#CONFIG{calendrier/jour_semaine_abbr})]})]
|
[(#GET{jour_4}|date_jour{[(#CONFIG{calendrier/jour_semaine_abbr})]})]
|
[(#GET{jour_5}|date_jour{[(#CONFIG{calendrier/jour_semaine_abbr})]})]
|
[(#GET{jour_6}|date_jour{[(#CONFIG{calendrier/jour_semaine_abbr})]})]
|
[(#GET{jour_7}|date_jour{[(#CONFIG{calendrier/jour_semaine_abbr})]})]
|
[(#REM) Corps du mini-calendrier
Le corps du calendrier contient entre 4 et 6 lignes de tableau selon le mois :
-* un mois de février d'une année non-bissextile commençant par un premier jour "culturel" contient 28 jours
répartis en 4 semaines de 7 jours affichées sur une seule lignes, soit 4 lignes
c'est le cas, par exemple, pour la langue 'fr',
des années 1999, 2010, 2021 etc... a priori tous les 11 ans ?
-* un mois de 31 jours dont le premier jour est un 6ieme ou un 7ieme jour "culturel", ou
un mois de 30 jours dont le premier jour est un 7ieme jour "culturel"
est affiché sur 6 lignes
-* tous les autres cas affichent un mois sur 5 lignes de tableau
Pour la première semaine, la ligne de tableau peut commencer par des jours du mois precedent.
Pour les cinquième et sixième semaines, la ligne de tableau peut se terminer par des jours du mois suivant.
Si une cellule du tableau représente le jour actuel, le marquer pour affichage dans une classe CSS particulière
Prevoir un systeme pour afficher ou non les jours hors période, c-à-d du mois précédent ou suivant.
]
[(#SET{debut,[(#DATE|debut_mois|debut_semaine{#GET{pjc}}|affdate{Y-m-d})]})]
[[
(#MODELE{minical/semaine}{var_date}{date}{hors_periode=mois_precedent}{pjc=#GET{pjc}}{debut=#GET{debut}}{jours}{url=#GET{url}})
]
]
[(#SET{debut,[(#GET{debut}|date_voisine{7,jour})]})]
[[
(#MODELE{minical/semaine}{var_date}{date}{pjc=#GET{pjc}}{debut=#GET{debut}}{jours}{url=#GET{url}})
]
]
[(#SET{debut,[(#GET{debut}|date_voisine{7,jour})]})]
[[
(#MODELE{minical/semaine}{var_date}{date}{pjc=#GET{pjc}}{debut=#GET{debut}}{jours}{url=#GET{url}})
]
]
[(#SET{debut,[(#GET{debut}|date_voisine{7,jour})]})]
[[
(#MODELE{minical/semaine}{var_date}{date}{pjc=#GET{pjc}}{debut=#GET{debut}}{jours}{url=#GET{url}})
]
]
[(#SET{debut,[(#GET{debut}|date_voisine{7,jour})]})]
[[
(#MODELE{minical/semaine}{var_date}{date}{hors_periode=mois_suivant}{pjc=#GET{pjc}}{debut=#GET{debut}}{jours}{url=#GET{url}})
]
]
[(#SET{debut,[(#GET{debut}|date_voisine{7,jour})]})]
[[
(#MODELE{minical/semaine}{var_date}{date}{hors_periode=mois_suivant}{pjc=#GET{pjc}}{debut=#GET{debut}}{jours}{url=#GET{url}})
]
]
[(#CONFIG{calendrier/revenir_aujourdhui}|!={non}|?{' '})
<:calendrier:revenir_aujourdhui:>
|
]