





Description
J'ai écrit ce plugin pour pouvoir retirer automatiquement le bandeau "Prochainement" d'une exposition passée. Et quitte à écrire un plugin, autant faire quelque chose qui soit le plus universel possible.
Ce plugin permet de tester des dates, des heures, des utilisateurs et des contextes Joomla.
Un exemple simple qui affiche : Vous visiter le site à partir d'un ordinateur.
<p>Vous visiter le site à partir d'un <b>{lmf mobile} mobile {else} ordinateur {/lmf}.</b></p>
{lmf mobile}
est la balise avec sa condition, suivi du code à afficher si la condition est remplie. {else}
est une option qui permet d'indiquer le texte pour une condition non remplie. {/lmf}
termine la séquence.
Un autre usage est de cacher une partie d'article en cours d'écriture ou de relecture.
Pour vous faire découvrir ses possibilités, je vais faire un module affichant les horaires d'un magasin avec une information pour indiquer s'il est actuellement OUVERT ou FERME. Même si ce n'est pas l'usage premier de ce plugin, il permet de mettre en œuvre la plupart des principes de base.
<div style="text-align:center; padding:10px; border:2px solid #069">
<p>Le magasin est ouvert
<br>du mardi au vendredi de
<br>de 9h à 12h30 et de 15h à 19h
<br>et le samedi de 9h à 19h</p>
<p>Actuellement, nous sommes :
<span style="color:red">FERME</span>
</p>
</div>
le résultat :
Le magasin est ouvert
du mardi au vendredi de
de 9h à 12h30 et de 15h à 19h
et le samedi de 9h à 19h
Actuellement, nous sommes : FERME
Nous utilisons des parenthèses pour traiter les 2 cas : jours de la semaine et samedi.
!day=1,6,7
signifie tous les jours de la semaine sauf le lundi (1), samedi (6) et dimanche (7). day est le type de test, le point d'exclamation est la négation bien connue en PHP.
&&
est l'opérateur logique ET avec la condition suivante. Cet exemple ne comporte que 2 conditions, mais il n'y a pas de limite théorique.
hperiod=0900-1230,1500-1900
retourne vrai si l'heure actuelle est dans les plages indiquées. le nombre de plages n'est pas limité.
Voilà traité le cas des jours de la semaine.
l'opérateur ||
(OU) teste le cas du samedi.
day 6 && hperiod 0900-1900
vous l'avez compris vérifie que l'on soit un samedi entre 9 et 19h.
Si c'est le cas, OUVERT sera inséré et dans le cas contraire, ce sera le mot FERME en rouge.
Configuration
Une fois téléchargé et installé comme tous les plugins, il faut le publier. Vous pouvez aussi personnaliser son utilisation à l'aide des paramétres de configuration.
- Nombre de jours pour NEW : vous pouvez définir le nombre de jours pendant lesquels un article est considéré comme nouveau pour la condition NEW.
- Affichage DEBUG pour : permet de spécifier les personnes pour qui l'aide sera visible.
- DEBUG dans quel cas : en complément du paramètre précédent, il est possible d'indiquer dans quel situation les infos seront visibles.
- Balise(s) utilisée(s) : Par défaut, LM-Filter utilise la balise lmf pour encadrer les instructions de filtrage. Vous pouvez changer son nom par convenance personnelle ou à cause d'un conflit avec un autre plugin.
Vous pouvez aussi ajouter des balises alternatives en les séparant par des pipes (altGr+6). Exemple: lmf|filtre|filter|DansLeCasOu - Balise ELSE : Par défaut, LM-Filter utilise le mot else pour séparer les codes à insérer selon que la condition soit vraie ou fausse.
Vous pouvez ajouter d'autres mots en les séparant par des pipes (altGr+6). Exemple: else|sinon|DansLeCasOuCestPasVrai - Alias Mots-clés : Vous pouvez indiquer des alternatives pour les mots-clés des conditions. Il suffit d'écrire, sur une nouvelle ligne, le mot-clé d'origine puis le mot alternatif en les séparant par le signe égal.
Exemple:
hperiode=horaire
new=nouveau
new=NEU
Utilisation
Pour se servir du plugin dans un article ou un module custom, il suffit de taper une phrase comme celle-ci
FAUX
Les opérateurs de base
Mot-clé | Description |
---|---|
{lmf … } | balise ouvrante avec ses paramètres. * Le mot clé peut être modifié dans les paramètres du plugin. |
{else} | balise pour séparer les contenus à insérer selon que la condition soit vraie ou fausse * |
! | placé devant l'opérateur de condition, il inverse le sens du test exemple: admin et !admin, l'utilisateur est-il superadmin ou non ? |
= | affectation argument. exemple: datemax=20160625. L'argument ne doit être composé que de chiffres, de lettres non accentuées et des signes -,. |
&& | ET logique entre 2 conditions |
|| | OU logique entre 2 conditions |
virgule | séparateur de liste. exemple: id1, id2, idN. Important: un argument optionnel est indiqué entre crochet. Exemple: user1[,user2,...] |
* il est possible d'indiquer des alternatives aux noms des balises et des mots-clés pour les conditions.
Conditions sur date
Mot-clé | Paramétre(s) | Description |
---|---|---|
datemax | AAAAMMJJHHMM | date et heure à partir de laquelle le contenu ne sera plus inséré. Si l'heure n'est pas indiquéé, on considère la fin de journée soit 2400 |
datemin | AAAAMMJJHHMM | date et heure à partir de laquelle le contenu sera inséré Si l'heure n'est pas indiquéé, on considère le début de journée soit 0000 |
day | numéro(s) des jours | les jours séparés par des virgules du lundi (1) à dimanche (7). exemple pour le week-end: day=6,7 |
month | numéro(s) des mois | les mois séparés par des virgules de janvier (1) à décembre (12). exemple pour les mois d'été: month=7,8. Version 1.3 |
new | [nombre de jours] | Cet opérateur ne fonctionne que pour les articles Nombre de jours après la date de publication d'un article. (à la minute près) Par défaut, nombre de jours indiqué dans les paramètres du plugin. Exemple d'utilisation avec valeur par défaut = 10:
|
Conditions sur heure
Mot-clé | Paramétre(s) | Description |
---|---|---|
hmax | HHMM | heure jusqu'à laquelle le contenu sera inséré. Exemple pour le matin avant midi: hmax=1200 |
hmin | HHMM | heure à partir de laquelle le contenu sera inséré Exemple pour l'après-midi après 14h: hmin=1400 |
hperiod | HHMM-HHMM[,...] | plage(s) horaire(s) séparée(s) par des virgules pour lesquelles le contenu est inséré exemple: hperiod=0900-1200,1400-1900 |
Le paramètre est complété par des zéros, donc 09-121 sera compris comme 0900-1210
Conditions sur utilisateur
Mot-clé | Paramétre(s) | Description |
---|---|---|
guest | - | vrai si l'utilisateur n'est pas connecté !guest permet de savoir si l'utilisateur est connecté |
admin | - | vrai si un superadmin est connecté |
user | userid[,userid2,...] | vrai si un des utilisateurs dont l'ID est indiquée est connecté. exemple: user=80,105 |
username | username[,username2,...] | vrai si un des utilisateurs dont le username est indiqué est connecté. exemple: username=toto,titi |
group | groupid[,groupid2,...] | vrai si l'utilisateur connecté fait partie d'un des groupes indiqués. exemple: groupid=10,11,12 |
lang | code langue 1, code langue 2 | liste des codes langues. Pour le code Joomla "en-GB", "en" ou "gb" sont suffisant pour remplir la condition exemple: lang=en,gb. Version 1.3 |
Conditions sur contexte Joomla
Mot-clé | Paramétre(s) | Description |
---|---|---|
homepage | - | vrai si la page en cours est la page d'accueil du site. Dans le cas d'un blog, toutes les pages en vue blog sont considérées comme page d'accueil, mais pas les vues "article" affichées par "lire la suite" |
view | viewtype[,viewtype2,...] | vrai si le type de la page affichée est l'un des types indiqués. Exemple pour uniquement en vue blog et article: view=article,blog note: pensez à utiliser DEBUG pour connaître le type de vue d'une page |
mobile | - | vrai si le site est vu à partir d'un mobile |
Opérateurs divers
Mot-clé | Paramétre(s) | Description |
---|---|---|
debug | - | Affiche des informations de suivi sur le site si le paramètre plugin est "sur demande". Il suffit que le mot debug soit présent parmi les conditions. Exemple {lmf debug hmax=1200} |
Debug
La fonction debug sert à la fois pour connaitre la cause d'un échec mais aussi pour connaître la valeur courante des conditions.
L'image ci-contre montre les infos debug pour l'exemple au début de cet article sur les heures d'ouverture d'un magasin.
La 2ème ligne est un rappel de l'article concerné avec au-dessous votre condition telle qu'elle a été comprise par le plugin.
La dernière partie évalue chaque condition séparemment avec la valeur actuelle entre crochets et en gras.
Enfin, la toute dernère ligne, affiche l'équation booléenne correspondant à votre demande.
Téléchargement

LM-Filter_v5.0.zip (11.24 ko - 26/11/2023 18:26) téléchargé 7 fois
LM-Filter_v1.5.zip (11.72 ko - 26/11/2023 18:26) téléchargé 2 fois
- compatibilité Joomla5
v1.5 - 12/12/2022
- compatibilité PHP8.10
v1.4 - 16/09/2021
- compatibilité J4 et PHP8
v1.3 - 27/04/2017
- ajout critère mois
- ajout critère langage
v1.2 - 03/08/2016
- compatibilité php7
- bug affectation $keyalias
Support
Vous pouvez utiliser le forum ou le formulaire de contact