[résolu] Plncalendrier : Liens perdus après mise à jour Pluxml 5.8.9

PaulPaul Member
avril 2023 modifié dans Plugins

Bonjour,

J'utilise le plugin Plncalendrier. Il est parfait pour les rendez-vous de ma chorale.
Après avoir mis à jour Pluxml, je constate 2 bogues :
1. Les fèches de navigation pour éditer le calendrier précédent et le calendrier suivant ont disparu.
2. Le lien avec l'article associé à une date n'ouvre pas l'article souhaité

Merci pour votre aide
Paul

Mots clés:

Réponses

  • Bonjour,

    Je ne connais pas ce plugin, as tu tenté ce qui est indiqué dans ce post https://forum.pluxml.org/index.php?p=/discussion/4896/plugin-plncalendrier/p6 ou essayer de contacter l'auteur https://forum.pluxml.org/index.php?p=/profile/Gari qui semble avoir deserté le forum depuis plusieurs années.


    Cordialement,
    gcyrillus

    Mon site PluXml: https://re7net.com | Plugins: https://ressources.pluxopolis.net/banque-plugins/index.php?all_versions | demos sur free http://gcyrillus.free.fr/new | Thèmes: tester et télécharger @ https://pluxthemes.com
    Indiquez [RESOLU] dans le titre de votre question une fois le soucis réglè, Merci

  • PaulPaul Member

    Bonjour,
    J'ai adressé un message à Gari sans réponse. Alors, j'ai résolu mes problèmes tout seul en modifiant le fichier plnCalendrier.plnCalendrier.php
    1. en ligne 51 et 61, j'ai ajouté **les fêches en code ascii **à défaut d'afficher les images
    2. en ligne 92, j'ai ajouté un / pour éditer l'article associé à la date du calendrier . Le lien devient href="?article'.$Event["Article"].'/"'.$Title.

    Ainsi c'est résolu pour moi. J'ai retrouvé les fonctionnalités du calendrier.

  • avril 2023 modifié

    Bonjour, @Paul

    Pour le lien, tu peut aussi ajouté la fonction urlrewrite() de pluxml lorsque celle-ci est activé . Il faut alors aussi embarqué la class plxMotor dans plnCalendrier.php.
    dans plnCalendrier.plnCalendrier.php le lien peut-être réecrit comme ceci href="'.$plxMotor->urlRewrite('?article'.$Event["Article"]).'/" ligne 92

    et la modification supplémentaire sur la fonction DisplayMonth() dans plnCalendrier.php (toujours pour le lien)

    cliquer pour voir le code
        public function DisplayMonth($Date)
        {
            $Month              = substr($Date,5,2);
            $Year               = substr($Date,0,4);
    
            $DatePrec           = new DateTime($Date."-01");
            $DatePrec->sub(date_interval_create_from_date_string('1 month'));
            $CalendrierMoisPrec = new plnCalendrierMois($DatePrec->format('Y-m'));
            $CalendrierMois     = new plnCalendrierMois($Date,$this->Calendrier);
            $DateSuiv           = new DateTime($Date."-01");
            $DateSuiv->add(date_interval_create_from_date_string('1 month'));
            $CalendrierMoisSuiv = new plnCalendrierMois($DateSuiv->format('Y-m'));
    
            # récupération d'une instance de plxMotor
            $plxMotor = plxMotor::getInstance();
    
    ?>      
            <table class="plnCalendrier">
                <tr>
                    <th class="mois" title="<?php echo ucfirst(plxDate::getCalendar("month",$Month))." ".$Year;?>"><?php echo ucfirst(plxDate::getCalendar("short_month",$Month));?></th>
                    <th><?php echo substr(plxDate::getCalendar("day",1),0,3);?></th>
                    <th><?php echo substr(plxDate::getCalendar("day",2),0,3);?></th>
                    <th><?php echo substr(plxDate::getCalendar("day",3),0,3);?></th>
                    <th><?php echo substr(plxDate::getCalendar("day",4),0,3);?></th>
                    <th><?php echo substr(plxDate::getCalendar("day",5),0,3);?></th>
                    <th><?php echo substr(plxDate::getCalendar("day",6),0,3);?></th>
                    <th><?php echo substr(plxDate::getCalendar("day",0),0,3);?></th>
                </tr>
            <?php
            foreach ($CalendrierMois->getWeeks() as $Semaine) {?>
                <tr>
                    <th title="Semaine <?php echo sprintf("%02d",$Semaine);?>"><?php echo sprintf("%02d",$Semaine);?></th>
                    <?php for($i=1;$i<=7;$i++)
                    {
                        $Jour       = $CalendrierMois->getDayFromWeekAndNumber($Semaine,$i);
                        $Class      = "";
                        $Circles    = "";
                        $Contents   = "";
                        if($Jour == false)
                        {
                            $Jour = $CalendrierMoisPrec->getDayFromWeekAndNumber($Semaine,$i);
                            if($Jour == false)
                                $Jour = $CalendrierMoisSuiv->getDayFromWeekAndNumber($Semaine,$i);
                            $Class = ' class="gris"';
                        }
                        elseif(isset($this->Calendrier[$Jour->Date]))
                        {
                            $Evenements = $this->Calendrier[$Jour->Date];
                            $Class      = ' class="event"';
                            foreach($Evenements as $Event)
                            {
                                $Title = "";
                                if($Event["Libelle"] != "")                             $Title  .= $Event["Libelle"];
                                if($Event["Libelle"] != "" && $Event["Texte"] != "")    $Title  .= ' : ';
                                if($Event["Texte"] != "")                               $Title  .= $Event["Texte"];
                                if($Title != "")                                        $Title   = ' title="'.$Title.'"';
                                if($Title != "" or $Event["Style"] != "")
                                {
                                    if($Event["Article"] != "")
                                        $Circles .= '<a href="'.$plxMotor->urlRewrite('?article'.(int)$Event["Article"]).'/" class="'.$Event["Style"].'"'.$Title.'></a>'."\n";
                                    else
                                        $Circles .= '<span class="'.$Event["Style"].'"'.$Title.'></span>'."\n";
                                }
                            }
                        }
                        if($Circles != "")
                            $Circles = '<div class="event">'.$Circles."</div>";
                        echo '<td'.$Class.'>'.$Jour->getNumero().$Circles."</td>\n";
                    }
                    ?>
                </tr>
            <?php } ?>  
            </table>    
    <?php
        }
    

    Pour le passage à php 8.2.5 et éviter le warning , modifier aussi pnlCalendrier.php en ajoutant juste devant la déclaration de la class

    #[\AllowDynamicProperties]
    class plnCalendrier extends plxPlugin
    

    ( trouvé ici https://forum.alsacreations.com/topic-20-90415-1.html )

    P.S. Peut-tu ajouter aux premiers post de tes question [résolu] si ils le sont pour une meilleur visibilité ? Merci


    Cordialement,
    gcyrillus

    Mon site PluXml: https://re7net.com | Plugins: https://ressources.pluxopolis.net/banque-plugins/index.php?all_versions | demos sur free http://gcyrillus.free.fr/new | Thèmes: tester et télécharger @ https://pluxthemes.com
    Indiquez [RESOLU] dans le titre de votre question une fois le soucis réglè, Merci

  • PaulPaul Member

    Bonjour,
    En effet le problème est résolu, mais seulement en local avec wamp.
    Avec mon site de production sur IONOS, le lien entre le calendrier et les articles n'est pas complet. La barre d'adresse affiche le bon numéro de l'article, mais pas son nom associé.

    Cordialement

  • avril 2023 modifié

    @paul, c'est normal, c'est comme ça que le plugin est construit, il te faut le faire manuellement en ajoutant son titre(version url) derriere le numéro: dans la case de la colonne Article associé .

    exemple 0001/premier-article

    Cdt

    edit, à vrai dire , ce serai plutôt 1/premier-article
    Puis re-modifier les lignes initialement modifiées dans plnCalendrier.php et plnCalendrier.plnCalendrier.php en enlevant le (int) et le / que tu avais ajouté .
    Cela donnerait alors respectivement:

    $Circles .= '<a href="'.$plxMotor->urlRewrite('?article'.$Event["Article"]).'" class="'.$Event["Style"].'"'.$Title.'></a>'."\n";
    

    et

    $LienAvant  = '<a class="event '.$Event["Style"].'" href="'.$plxMotor->urlRewrite('?article'.$Event["Article"]).'"'.$Title.'>';
    

    Il te faudra alors indiqué X/ ou X/titre-de-article dans la colonne article associé (la barre doit être ajouté derriere le numéro, même si numéro seul.


    Cordialement,
    gcyrillus

    Mon site PluXml: https://re7net.com | Plugins: https://ressources.pluxopolis.net/banque-plugins/index.php?all_versions | demos sur free http://gcyrillus.free.fr/new | Thèmes: tester et télécharger @ https://pluxthemes.com
    Indiquez [RESOLU] dans le titre de votre question une fois le soucis réglè, Merci

  • @Paul Je viens de mettre en ligne un fork du plugin avec les modifications evoquées précedement et en y ajoutant aussi un select pour choisir d'un click l'article à associer , avec son url complete!

    https://github.com/gcyrillus/plnCalendrier


    Cordialement,
    gcyrillus

    Mon site PluXml: https://re7net.com | Plugins: https://ressources.pluxopolis.net/banque-plugins/index.php?all_versions | demos sur free http://gcyrillus.free.fr/new | Thèmes: tester et télécharger @ https://pluxthemes.com
    Indiquez [RESOLU] dans le titre de votre question une fois le soucis réglè, Merci

  • PaulPaul Member
    avril 2023 modifié

    Merci beaucoup. Mon calendrier est à nouveau opérationnel.
    Cordialement
    Paul

  • hello, j'ai eu le même problème.
    Merci pour la solution de l'url des articles, en ajoutant simplement le / comme tu l'as décrit, ça fonctionne !!

    pour afficher les flèches de navigation, il faut modifier simplement les liens vers les images dans le fichier "site.css" du plugin
    -> dans le répertoire plnCalendrier/css

    les liens sont de la forme
    background-image: url(./plnCalendrier/images/48px-Crystal_Clear_action_2leftarrow.png)

    à remplacer par
    background-image: url(../plugins/plnCalendrier/images/48px-Crystal_Clear_action_2leftarrow.png)

  • Merci,
    Ca marche bien maintenant. Je retrouve les flèches . Il y a 5 liens à modifier dans le fichier site.css

  • et chez moi j'ai dû aussi faire la même manipulation dans le fichier site.css qui est utilisé comme cache (stocké dans le répertoire data)

Connectez-vous ou Inscrivez-vous pour répondre.