filter ~ afficher sous conditions

Afficher selon certaines conditions : date, utilisateur, langage, mobile ...

➠ filter : affiche du contenu si toutes les conditions sont remplies

Cliquer pour lire la documentation

Reprise du plugin LM-Filter de Lomart
{up filter | datemax=20171225}
contenu si vrai
{====}
contenu si faux
{/up filter}
Le contenu si faux est optionnel. Il doit être après le contenu si vrai et séparé par {===} (au minima 3 signes égal)
{up filter | admin} contenu si vrai {====} contenu si faux {/up filter}
--> affiche si admin connecté. admin=0 affiche si admin NON connecté
author Lomart version UP-1.0 license GNU/GPL tags editor
  • filter: aucun argument prévu
  • datemax: vrai jusqu'à cette date AAAAMMJJHHMM
  • datemin: vrai à partir de cette date AAAAMMJJHHMM
  • period: vrai entre ces dates AAAAMMJJHHMM-AAAAMMJJHHMM
  • day: liste des jours autorisés. 1=lundi, 7=dimanche
  • month: liste des mois autorisés. 1=janvier, ...
  • hmax: vrai jusqu'à cette heure HHMM
  • hmin: vrai à partir de cette heure HHMM
  • hperiod: vrai entre ces heures HHMM-HHMM
  • guest: vrai si utilisateur invité
  • admin: vrai si admin connecté
  • user: liste des userid autorisé. ex: 700,790
  • username: liste des username autorisé. ex: admin,lomart
  • group: liste des usergroup autorisé. ex: 8,12
  • lang: liste des langages autorisé. ex: fr,ca
  • mobile: vrai si affiché sur un mobile
  • homepage: vrai si affiché sur la page d'accueil
  • server-host: vrai si le domaine du serveur contient un des termes de la liste
  • server-ip: vrai si l'adresse IP du serveur des dans la liste
  • artid: vrai si l'ID de l'article courant est dans la liste
  • catid: vrai si l'ID de la catégorie de l'article courant est dans la liste
  • menuid: vrai si l'ID du menu actif est dans la liste
  • info = 0: affiche les valeurs actuelles des arguments pour les conditions

    Affichage sous conditions

    Cette action est une reprise "simplifié" de mon plugin LM-Filter

    Il permet d'afficher du contenu en fonction de conditions. Un petit exemple pour comprendre le principe

    {up filter | day=2,3,4,5,6 | hperiod=0900-1200,1500-1900 } 
      Le magasin est ouvert 
    {====}
      Le magasin est fermé
    {/up filter}

    La première condition day vérifie que le jour (1:lundi à 7:dimanche) et la seconde hperiod les plages horaires autorisées.

    Le contenu entre les shortcodes est le texte à afficher. En option, il peut être séparé en 2 blocs par le shortcode {===}. Le nombre de signe égal doit être de 3 au minimum. La première partie est le texte pour des conditions remplies et la seconde das le cas inverse.

    Résultat du test ci-dessus :


    Le magasin est fermé

    Exemples de shortcode

    datemax : {up filter | datemax=20170910 } avant le 2017091000 {====} après le 201709102359{/up filter}

    datemin : {up filter | datemin=201709101453 } avant le 201709101453 {====} après le 201709101453{/up filter}

    period : {up filter | period=20170714,20170815 } tous les ans entre le 14 juillet et le 15 août 2017 {====} c'est pas les vacances 2017{/up filter}
            {up filter | period=0714,081510 } entre le 14 juillet et le 15 août 10h {====} c'est pas les vacances{/up filter}

    day : {up filter | day=6,7 } Vive le weekend {====}c'est la semaine{/up filter}

    month : {up filter | month=7,8 }vacances {====} fini les vacances{/up filter}

    Heure

    hmax : {up filter | hmax=1530 } avant 15h30 {====} après 15h30 {/up filter}

    hmin : {up filter | hmin=1530 } après 15h30 {====} avant 15h30 {/up filter}

    hperiod : {up filter | hperiod=0900-1200,1500-1700 } C'est ouvert {====} C'est fermé {/up filter}

    Combiné : {up filter | hperiod=0900-1200,1700-2200 | day=2,3,4,5,6 } C'est ouvert {====} C'est fermé {/up filter}

    Utilisateur

    guest : {up filter | guest } je suis invité {====} je ne suis pas invité {/up filter}

    admin : {up filter | admin } je suis admin {======} je ne suis pas admin {/up filter}

    user : {up filter | user=700 } je suis le user 700 {/up filter}

    username : {up filter | username=lomart } je suis lomart {/up filter}

    group : {up filter | group=8,9 } je suis du groupe 8 ou 9 {======} je suis ni du groupe 8, ni du 9 {/up filter}

    Langue

    lang : {up filter | lang=fr } je parle français {====} je ne parle pas français {/up filter}

    Divers

    mobile : {up filter | mobile } vu sur mobile {====} vu sur ordi {/up filter}

    homepage : {up filter | homepage } affiché en page d'accueil {====} ailleurs {/up filter}

    combiné : {up filter | homepage | mobile=0 } homepage sur ordi {===} une de ces 2 conditions n'est pas correcte{/up filter}

    Serveur

    server-host : {up filter | server-host=.lomart.fr } site en production {====} site de test {/up filter}

    Actuellement, vous regardez le site en production , dont l'URL est up.lomart.fr}

    server-host : {up filter | server-ip=::1,localhost }locale{====}publique{/up filter}

    Actuellement, vous regardez la version publique du site, dont l'adresse IP est 109.234.162.147}

    Les conditions

    motclé description type valeur
    datemax vrai jusqu'à cette date AAAAMMJJHHMM
    datemin vrai à partir de cette date AAAAMMJJHHMM
    period vrai entre ces dates
    Si l'année est omise, le test est fait pour l'année en cours.
    Exemple: 1224,01021000 = du 24 décembre minuit au 2 janvier de l'année suivante à 10h
    AAAAMMJJHHMM, AAAAMMJJHHMM
    day liste des jours autorisés. 1,7 -> lundi ou dimanche
    month liste des mois autorisés 1,2 -> janvier ou février
    hmax vrai jusqu'à cette heure HHMM
    hmin vrai à partir de cette heure HHMM
    hperiod vrai entre ces plages horaires (liste possible) HHMM-HHMM
    guest vrai si l'internaute n'est pas identifié (invité) 1|0
    admin vrai si un admin est connecté 1|0
    user liste des userid autorisés 8,12
    username liste des username autorisés ex: admin,lomart
    group liste des usergroup autorisés 8,12
    lang liste des langages autorisés. Seule une partie du code est nécessaire ex: fr,ca
    mobile vrai si le site est affiché sur un mobile 1|0
    homepage vrai si le shortcode est affiché sur la page d'accueil 1|0
    server-host vrai si l'argument figure dans le nom du serveur hôte.
    exemple: server-host:.lomart.fr (un sous-domaine de lomart.fr)
    tout ou partie du nom
    server-ip vrai si l'IP correspond à une de la liste. localhost, ::1, 192.168.0.1 pour des serveurs locaux adresse IP
    • Une condition, comme argument d'une option filter 1, s'exprime en indiquant le type de condition (mot-clé), suivi du signe 2 points et de la valeur. datemax:20191225
    • Plusieurs conditions sont possibles en les séparant par des points-virgules. day:6,7;hperiod:9-12
    • >Pour inverser le sens de la condition, il suffit d'ajouter un point d'exclamation devant le type de condition. !admin
    • Un mot-clé sans valeur est équivalent à mot-clé:1 (ou vrai). Une condition fausse s'exprime par mot-clé:0 ou !mot-clé.
    • Pour les dates, la partie heure (HHMM) est optionnelle.

    1 L'action filter permet également d'utiliser une autre forme. Voir filter ~ afficher sous conditions

    Nouveautés version 1.7

    Il est possible de saisir les conditions comme argument de l'option filter. La syntaxe est identique à celle des options filter des autres actions.

    {up filter=day:2,3,4,5,6 ; hperiod:0900-1200,1500-1900 } 
      Le magasin est ouvert
    {====}
      Le magasin est fermé 
    {/up filter}

    Cette forme permet de saisir une condition inverse. Exemple: filter=!admin signifie si pas administrateur.

    Restriction d'utilisation

    ATTENTION   l'action filter filtre UNIQUEMENT le contenu renvoyé par une autre action.
    Aucune possibilité d'intercepter des ajouts de CSS dans le head ou le lancement de javascript.

    Un exemple pour être plus clair :

    {up filter | period=1220-1226}
    {up snowfall=images/noel }
    {up filter}
    🞮

    L'utilisation imbriquée des shortcodes ci-dessous devraient afficher des images évoquant Noël entre les 20 et 26 décembre. Cela ne peux pas fonctionner UP évalue les actions enfants en premier. L'action snowfall met en place un javascript et ne renvoit aucun contenu. Donc lors de l'évaluation de l'action filter, snowfall est déjà actif

    Il faut donc utiliser les options de filtrage proposées par les actions ayant ce genre de fonctionnement.

    {up snowfall=images/noel | filter=period:1220-1226}