N'afficher une page qu'à certaines conditions ?

Réduire
X
 
  • Filtrer
  • Heure
  • Afficher
Tout effacer
nouveaux messages

  • [RÉGLÉ] N'afficher une page qu'à certaines conditions ?

    Bonjour,

    Quelqu'un sait-il s'il existe une extension (plugin ? éventuellement pour J3 si pas pour J4) qui pourrait n'afficher une page de site que pendant des périodes données : choix des jours, de l'heure de début et de fin, un peu comme le font des extensions "open hours", mais au lieu d'afficher le message, activerait/désactiverait un mien de menu ?

    Merci de votre aide !
    Robert

    PS : plutôt que les extensions de type Open hours qui affichent les jours et heures, je pensais plutôt comme modèle à "Support is Online" ou équivalent, qui affiche un message d'absence en dehors des heures de disponibilité.
    Dernière édition par RobertG à 10/12/2021, 08h19
    "Patience et longueur de temps font plus que force ni que rage..." (La Fontaine : Le Lion et le Rat) - "Il n'y a pas de problèmes; il n'y a que des solutions" (André Gide).
    MoovJla et LazyDbBackup sur www.joomxtensions.com - FaQ sur www.fontanil.info - Site pro : www.robertg-conseil.fr chez PHPNET, sites perso chez PlanetHoster + sites gérés chez PHPNET, PlanetHoster, Ionos et OVH

  • #2
    Il y a au moins 2 extensions intéressantes, toutes deux de chez Regular Labs :
    • Advanced Module Manager : permet de définir un nombre de condition pour l'affichage d'un module, voire d'un article avec "article anywhere" qui place l'article dans ledit module.
    • Conditional Content : permet de créer un affichage conditionnel de tout ou partie d'un article (marche aussi avec un module de contenu personnalisé ou même un champ "texte" dans un "page builder")
    Le second sera plus proche de ton besoin.
    woluweb aime ceci.
    Je préfère éclairer que briller.” - “J'ai peut-être l'air froid, mais je suis pas givré.- "ça dépend ça dépasse"
    Ne m'envoyez pas de message privé pour résoudre vos problèmes sans y avoir été invité.
    Dolmenhir : tailleur de site web depuis 1997. Spécialiste Joomla depuis 2005. https://www.dolmenhir.fr

    Commentaire


    • #3
      Merci de tes suggestions, mais la page en question n'affiche en fait pas un article mais un accès à une visioconférence via JChatSocial (c'est un lien de menu spécifique sur le composant), et je voudrais éviter que des visiteurs, même identifiés, y accèdent n'importe quand, mais seulement quelques minutes avant le début de la conférence, et plus quelques minutes après sa fin.
      Le but est alors d'activer ou désactiver le lien de menu en fonction de jours et heures de début et de fin définis dans une extension, a priori un plugin.

      Je complète : je veux éviter que n'importe qui du groupe autorisé puisse n'importe quand lancer une visio avec d'autres membres, ces visioconférences étant des cours, pas des échanges entre membres
      "Patience et longueur de temps font plus que force ni que rage..." (La Fontaine : Le Lion et le Rat) - "Il n'y a pas de problèmes; il n'y a que des solutions" (André Gide).
      MoovJla et LazyDbBackup sur www.joomxtensions.com - FaQ sur www.fontanil.info - Site pro : www.robertg-conseil.fr chez PHPNET, sites perso chez PlanetHoster + sites gérés chez PHPNET, PlanetHoster, Ionos et OVH

      Commentaire


      • #4
        Avec Conditional Content, tu n'influes pas sur le menu, certes, mais tu conditionnes l'affichage du contenu de l'article, dans lequel tu peux alors mettre le lien vers la visio qui apparaît quand les conditions sont remplies, ou un message de substitution dans le cas contraire.
        Je préfère éclairer que briller.” - “J'ai peut-être l'air froid, mais je suis pas givré.- "ça dépend ça dépasse"
        Ne m'envoyez pas de message privé pour résoudre vos problèmes sans y avoir été invité.
        Dolmenhir : tailleur de site web depuis 1997. Spécialiste Joomla depuis 2005. https://www.dolmenhir.fr

        Commentaire


        • #5
          Envoyé par RobertG Voir le message
          Le but est alors d'activer ou désactiver le lien de menu en fonction de jours et heures de début et de fin définis dans une extension, a priori un plugin.
          J'ai jamais rien vu capable d'une telle chose sous Joomla (et effectivement, seul un plugin pourrait faire ce job).
          Mais rien à ma connaissance.
          Conditionner l'affichage d'un menu, oui (avec advanced module manager), mais pas d'un lien dans un menu...
          D'ailleurs, Regular labs avait été récemment sollicité pour faire un "Advanced menu manager" mais voici la réponse
          Morten Hansen :: Hi Mr Reugalar Labs First of all a big thank you and all the love to your great extensions. My life wouldn´t be the same without them. ...especially What Nothing ???? Dear Santa... I have a big wish Create 'Advanced MENU manager' Same as 'Advanced module mana...


          (ReReplacer serait donc une piste à étudier...)
          Je préfère éclairer que briller.” - “J'ai peut-être l'air froid, mais je suis pas givré.- "ça dépend ça dépasse"
          Ne m'envoyez pas de message privé pour résoudre vos problèmes sans y avoir été invité.
          Dolmenhir : tailleur de site web depuis 1997. Spécialiste Joomla depuis 2005. https://www.dolmenhir.fr

          Commentaire


          • #6
            Je suis en train d'envisager un plugin (ça m'occupe ! ) qui pourrait faire le boulot... Définition dans ses paramètres du jour et des heures (voire plusieurs jours et heures) et comparaison pour activer ou désactiver.
            Mon problème à l'instant est que je n'arrive pas à trouver de doc sur les différents types de champs utilisables dans le manifeste, pour faire une liste déroulante au lieu de boutons radio, par exemple, ou pour permettre la sélection d'une heure sans sélectionner de date...

            PS : je viens de trouver https://docs.joomla.org/Form_field/fr je vais explorer
            Dernière édition par RobertG à 10/12/2021, 10h02
            "Patience et longueur de temps font plus que force ni que rage..." (La Fontaine : Le Lion et le Rat) - "Il n'y a pas de problèmes; il n'y a que des solutions" (André Gide).
            MoovJla et LazyDbBackup sur www.joomxtensions.com - FaQ sur www.fontanil.info - Site pro : www.robertg-conseil.fr chez PHPNET, sites perso chez PlanetHoster + sites gérés chez PHPNET, PlanetHoster, Ionos et OVH

            Commentaire


            • #7
              Envoyé par RobertG Voir le message
              PS : je viens de trouver https://docs.joomla.org/Form_field/fr je vais explorer
              Bon courage !
              Et je vais suivre ça car ce serait alors un plugin particulièrement intéressant.
              Je préfère éclairer que briller.” - “J'ai peut-être l'air froid, mais je suis pas givré.- "ça dépend ça dépasse"
              Ne m'envoyez pas de message privé pour résoudre vos problèmes sans y avoir été invité.
              Dolmenhir : tailleur de site web depuis 1997. Spécialiste Joomla depuis 2005. https://www.dolmenhir.fr

              Commentaire


              • #8
                De fait, mais c'est vrai que la solution ReReplacer proposée par dolmenhir est la 1e qui me vient en tête.
                Et l'implémenter sur un site prend moins de temps que d'écrire les deux lignes que je viens de commettre sur ce thread
                Présentations : slides.woluweb.be | Coordonnées complètes : www.woluweb.be

                Un message d’erreur sur votre site Joomla... ayez le reflexe de consulter la base de connaissance : https://kb.joomla.fr

                Ce forum, vous l'aimez ? Il vous a sauvé la vie ? Vous y apprenez régulièrement ? Alors adhérer à l'AFUJ, l'Association Francophone des Utilisateurs de Joomla : https://www.joomla.fr/association/adherer

                Commentaire


                • #9
                  Merci !

                  La gestion est complexe : un ou plusieurs type de session (formation-1, formation-2, etc.) ? Surtout jours et heures prédéfinis à long terme évitant de les redéfinir souvent, auquel cas il faudrait avoir un module de paramétrage accessible aux animateurs sans accès au plugin...
                  "Patience et longueur de temps font plus que force ni que rage..." (La Fontaine : Le Lion et le Rat) - "Il n'y a pas de problèmes; il n'y a que des solutions" (André Gide).
                  MoovJla et LazyDbBackup sur www.joomxtensions.com - FaQ sur www.fontanil.info - Site pro : www.robertg-conseil.fr chez PHPNET, sites perso chez PlanetHoster + sites gérés chez PHPNET, PlanetHoster, Ionos et OVH

                  Commentaire


                  • #10
                    En fait, au niveau du code du plugin, c'est extrêmement simple si on n'a qu'une seule définition de date et heure : si le jour n'est pas le bon, on sort ; sinon si on est dans la plage horaire, on publie le lien s'il ne l'est pas déjà, si on est hors de la plage on le dépublie s'il ne l'est pas déjà.
                    Cette partie-là est créée, je n'ai pas encore testé le code.

                    Il reste à imaginer la gestion de plusieurs liens correspondant à plusieurs sessions/pages différentes selon le groupe de membres par exemple, plusieurs jour pour la même formation et éventuellement plusieurs plages horaires par jour.
                    Je n'ai pas trouvé si dans un plugin une option pouvait dupliquer les paramètres pour gérer ça.

                    PS : cette discussion serait peut-être plus à sa place maintenant dans la section développement
                    "Patience et longueur de temps font plus que force ni que rage..." (La Fontaine : Le Lion et le Rat) - "Il n'y a pas de problèmes; il n'y a que des solutions" (André Gide).
                    MoovJla et LazyDbBackup sur www.joomxtensions.com - FaQ sur www.fontanil.info - Site pro : www.robertg-conseil.fr chez PHPNET, sites perso chez PlanetHoster + sites gérés chez PHPNET, PlanetHoster, Ionos et OVH

                    Commentaire


                    • #11
                      Les dates/horaires des sessions sont-elles définies une fois pour toutes ou susceptibles d'être ajoutées en cours de route ?
                      Dans le premier cas, ton contrôle initial, couplé à des "if" ou des "switch" dans ton code suffira à publier ou dépublier les liens.
                      Dans le second, il faut alors checker la table qui enregistre ces dates/horaires et, le cas échéant, générer via le code les liens de menu et leurs attributs liés (cible, menu parent...).
                      Oui, je sais, c'est toujours plus facile à dire qu'à faire
                      Je préfère éclairer que briller.” - “J'ai peut-être l'air froid, mais je suis pas givré.- "ça dépend ça dépasse"
                      Ne m'envoyez pas de message privé pour résoudre vos problèmes sans y avoir été invité.
                      Dolmenhir : tailleur de site web depuis 1997. Spécialiste Joomla depuis 2005. https://www.dolmenhir.fr

                      Commentaire


                      • #12
                        Pour le moment en effet, j'ignore si les jours et heures seront fixes (sans compter qu'il peut y avoir des jours de vacances...). J'essaie d'imaginer quelque chose qui puisse être utilisé dans d'autres situations.

                        A priori, dans le cas actuel, il doit y avoir 3 formations distinctes, donc à mon sens trois groupes d'utilisateurs et trois liens de menu. Les sessions ne seront jamais simultanées, d'après les dernières infos que j'ai eues.
                        Il faudrait donc que je commence par gérer le paramétrage pour chaque formation, le ou les jours des séances, l'éventualité de plus d'une séance par jour... ça deviendrait un peu l'équivalent d'un gestionnaire d'événements où on pourrait paramétrer des enregistrements individuels, pouvant alors être multiples dans une journée, et répétés. Bref, ce n'est pas simple !
                        "Patience et longueur de temps font plus que force ni que rage..." (La Fontaine : Le Lion et le Rat) - "Il n'y a pas de problèmes; il n'y a que des solutions" (André Gide).
                        MoovJla et LazyDbBackup sur www.joomxtensions.com - FaQ sur www.fontanil.info - Site pro : www.robertg-conseil.fr chez PHPNET, sites perso chez PlanetHoster + sites gérés chez PHPNET, PlanetHoster, Ionos et OVH

                        Commentaire


                        • #13
                          Je n'ai pas tous les tenants et aboutissants, mais en l'état voilà comment, sur le papier, j'aborderai le problème :

                          Axiome : l'extension qui gère les formations gère aussi la relation entre dates/horaires/groupes cibles.
                          1. consulter la table qui gère les formations
                          2. vérifier dans la table des menus s'il existe un lien pour chaque formation
                          3. si le lien existe
                            1. publier le lien de menu si la date est à venir
                            2. dépublier le lien si la date est dépassée
                          4. si le lien n'existe pas
                            1. créer le lien de menu en répercutant dans ses paramètres les caractéristiques de la formation (groupe utilisateur, dates/heures de début et fin de publication)
                          Cas particulier (je ne sais pas si c'est pris en compte) si une même formation propose plusieurs dates mais que le lien reste le même.
                          Dans ce cas, soit on crée un lien de menu pour chacune des dates (étape 4.1) soit on (re)publie le lien (étape 3.1)

                          Second cas, qui rejoint le premier dans une certaine mesure : un même lien pour plusieurs horaires dans une même journée.

                          Compte tenu du premier et second cas, je pense qu'il est bien plus simple de produire un lien de menu unique par session de formation quitte à, si besoin, gérer la hiérarchisation des liens de menu entre-eux (lien de menu parent) lors de la création du lien de menu.

                          Le problème central est d'établir une relation fiable entre une formation et un lien de menu, pour être sûr que tel lien corresponde à telle formation et ainsi éviter de publier/dépublier ou créer à tort un lien. Dans ce cas, la méthode la plus fiable reste de s'appuyer sur une table de correspondance dans laquelle on associe l'id de la formation et l'id du lien.
                          Cette table peut éventuellement s'enrichir d'information particulières comme la date, l'horaire, le groupe, le statut publié/dépublié... même si ces informations sont facilement récupérables par le biais de jointures.

                          Le plugin peut aussi proposer, en plus du traitement à la volée, un bouton de génération/màj des liens et/ou de consultation des sessions en cours ou à venir.

                          NB : encore une fois, c'est une analyse d'un point de vue extérieurs qui n'a pas accès à toutes les données du problème.
                          Je préfère éclairer que briller.” - “J'ai peut-être l'air froid, mais je suis pas givré.- "ça dépend ça dépasse"
                          Ne m'envoyez pas de message privé pour résoudre vos problèmes sans y avoir été invité.
                          Dolmenhir : tailleur de site web depuis 1997. Spécialiste Joomla depuis 2005. https://www.dolmenhir.fr

                          Commentaire


                          • #14
                            Je n'ai hélas moi non plus accès à toutes les données du problème, d'autant que le projet s'enrichit au-delà de ce qui était prévu, et que des conseils précédemment donnés ont déjà été oubliés car pas mis en œuvre rapidement... Disons que je conseille et que parfois j'ai l'impression d'avoir un "bof" en retour, ou même "elles se contenteront de ça", c'est à dire de l'état sans tenir compte des ces conseils. Et si souvent j'insiste sur des points, c'est pour ne pas recevoir d'appels "au secours" parce que les choses ont été mal calculées.

                            Le site n'a qu'un rôle d'information notamment sur les différentes offres de formation de l'entreprise et il a été choisi JChatSocial pour les visioconférences, les formatrices propriétaires du site ne voulant pas utiliser Zoom pour ça (elles l'utilisaient précédemment dans une entreprise où elles étaient employées.

                            Premier problème : rien ne gère les formations sur le site, il y a uniquement inscription dans un groupe par un administrateur depuis l'administration ou depuis le site par l'utilisateur puis changement de groupe par un administrateur, retour manuel au groupe "enregistrés" à la fin de la session.
                            La communication étant ce qu'elle est (je n'interviens qu'en tant que conseiller de l'amie qui construit le site et quand je pose une question, je ne suis jamais sûr qu'elle ne se perdra pas en route), je n'ai toujours pas compris comment les participants seront informés des dates et heures des sessions.

                            Le lien de menu existe, le code pour le publier/dépublier a été créé tout à l'heure. Si l'on suit mes conseils, ce lien va correspondre à une formation et une seule (et un groupe correspondant) et être utilisé pour toutes les sessions de cette formation. J'ai conseillé de créer un lien par formation, mais pour le moment, je n'ai pas été suivi, le choix actuel va donc permettre à tous les membres enregistrés d'accéder aux conférences, même à celles d'un autre formation que la leur.

                            Donc pour le moment, j'ai un plugin qui doit être fonctionnel pour ce lien de menu si les sessions de visioconférence ont lieu le même jour de chaque semaine et à la même heure. Les paramètres actuel sont un jour, une heure de début, une heure de fin et l'ID du lien de menu.
                            La question du nombre de séances et des plages de dates de vacances n'est pas encore gérée.

                            Où ça se complique au niveau d'un plugin, c'est s'il y a plus d'une séance par jour ou semaine pour cette formation.
                            C'est pourquoi en effet un gestionnaire d'événement permettrait les paramétrages de dates, heures et groupes, et le plugin pourrait alors interroger la table de ce gestionnaire pour récupérer ces paramètres et activer ou désactiver le lien de menu.
                            "Patience et longueur de temps font plus que force ni que rage..." (La Fontaine : Le Lion et le Rat) - "Il n'y a pas de problèmes; il n'y a que des solutions" (André Gide).
                            MoovJla et LazyDbBackup sur www.joomxtensions.com - FaQ sur www.fontanil.info - Site pro : www.robertg-conseil.fr chez PHPNET, sites perso chez PlanetHoster + sites gérés chez PHPNET, PlanetHoster, Ionos et OVH

                            Commentaire


                            • #15
                              Trop d'incertitudes concernant le projet de site, je jette l'éponge !
                              "Patience et longueur de temps font plus que force ni que rage..." (La Fontaine : Le Lion et le Rat) - "Il n'y a pas de problèmes; il n'y a que des solutions" (André Gide).
                              MoovJla et LazyDbBackup sur www.joomxtensions.com - FaQ sur www.fontanil.info - Site pro : www.robertg-conseil.fr chez PHPNET, sites perso chez PlanetHoster + sites gérés chez PHPNET, PlanetHoster, Ionos et OVH

                              Commentaire

                              Annonce

                              Réduire
                              Aucune annonce pour le moment.

                              Partenaire de l'association

                              Réduire

                              Hébergeur Web PlanetHoster
                              Travaille ...
                              X