Utilisation du filtre
Ajouter le code du filtre dans votre fichier mes_fonctions.php
Vous pouvez ensuite utiliser le filtre selon la syntaxe
[(#DATE_DEBUT|duree{#DATE_FIN})]
Il est possible d’ajouter un 2e paramètre pour préciser le formatage de durée
[(#DATE_DEBUT|duree{#DATE_FIN,horaire})]
Différents formatages de durée proposés
Voici les différents formatages proposés
Valeur | Définition | Exemple |
---|---|---|
court | on arrondit à la durée la plus proche (formatage par défaut) | 4 semaines |
etendu | affichage complet en lettres | 4 semaines 3 jours 23 heures 2 minutes |
horaire | affichage heures et minutes | 2h04 |
minute | affichage minutes cumulées | 124 |
iso8601 | affichage selon la norme iso 8601 | P18Y9W4DT11H9M8S |
ical | même chose que iso8601 | P18Y9W4DT11H9M8S |
Pour faciliter l’internationalisation, il est aussi possible de sortir un élément inviduellement :
- Y : année
- W : semaine
- D : jour
- H : heure
- M : minute
- S : seconde
Exemple d’utilisation
On veut « un format à l’anglaise » qui affiche la durée de la façon suivante : 4’46’’
[(#DATE_DEBUT|duree{#DATE_FIN,M})']][(#DATE_DEBUT|duree{#DATE_FIN,S})'']
Références techniques
Exemple d’utilisation avec le plugin Agenda
Je programme un site de cinéma qui utilise le plugin Agenda pour saisir les séances. Pour chaque séance, le rédacteur saisit une date de début et fin
Voici ma boucle pour afficher toutes les séance d’un film avec l’heure de début de film et la durée
<B_seance><table>
<tr>
<td>Jour</td>
<td>Séance</td>
<td>Titre du film</td>
<td>Durée</td>
</tr>
<BOUCLE_seance(EVENEMENTS){id_article}{par date_debut}>
<tr>
<td>[(#DATE_DEBUT|affdate_jourcourt)]</td>
<td>[(#DATE_DEBUT|heures)h][(#DATE_DEBUT|minutes)]</td>
<td><a href="#URL_ARTICLE">#TITRE</a></td>
<td>[(#DATE_DEBUT|duree{#DATE_FIN,minute}) min]</td>
</tr>
</BOUCLE_seance>
</table></B_seance>
Explications
On utilise une boucle EVENEMENTS pour récupérer les séances liées à l’article grâce au critère {id_article}
par ordre chronologique grâce au critère {par date_debut}
<BOUCLE_seance(EVENEMENTS){id_article}{par date_debut}>
L’affichage des résultats se fait dans un tableau
Pour afficher la durée on utilise la filtre duree
avec l’option d’affichage minute
[(#DATE_DEBUT|duree{#DATE_FIN,minute}) min]
Utiliser le filtre durée pour calculer l’âge d’un élément
Pour calculer l’âge d’un élément, il faut utiliser comme date de fin, la date actuelle.
[(#DATE|duree{#ENV{date}})]
Développement
Le code du filtre est disponible sur la zone à l’adresse http://zone.spip.org/trac/spip-zone...
Voir aussi
Le filtre date_relative peut aussi très pratique.
Aucune discussion
Ajouter un commentaire
Avant de faire part d’un problème sur un plugin X, merci de lire ce qui suit :
Merci d’avance pour les personnes qui vous aideront !
Par ailleurs, n’oubliez pas que les contributeurs et contributrices ont une vie en dehors de SPIP.
Suivre les commentaires : |