[résolu] fonction staticInclude() semble devenue muette depuis la v 5.8.9

décembre 2022 modifié dans Bogues

En bricolant les thèmes, je viens de m'apercevoir que la fonction staticInclude(x); ne renvoie plus rien depuis la version 5.8.9 de PluXml.

tests effectués au travers d'une énième page statique avec le code suivant:

<?php
$plxShow = plxShow::getInstance();
$plxShow->staticInclude(1);
?>

test effectué avec php7+ et php 8+ (apache/win)
test okay dans v 5.8.7 et v 5.8.8
test muet dans v 5.8.9 et v 5.8.10

En regardant de plus prés la fonction, la seule difference se trouve sur une ligne .

depuis la v 5.8.9 qui n'affiche plus rien:

        $plxGlob_stats = plxGlob::getInstance(PLX_ROOT . $this->plxMotor->aConf['racine_statiques'], true, 'statiques');

et antérieur à la v 5.8.9, qui affiche bien la page inclue et interprétée.

        $plxGlob_stats = plxGlob::getInstance(PLX_ROOT . $this->plxMotor->aConf['racine_statiques']);

Cdt


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

Réponses

  • bazooka07bazooka07 PluXml Lead Developer, Moderator

    Le contenu ci-dessous d'une page statique marche avec la version 5.8.10 à venir :

    <p>Test de plxShow::staticInclude()</p>
    <div class="static-include">
    <?php
    $this->staticInclude(3);
    ?>
    </div>
    <p>Fin de test</p>
    

    Dans le contexte d'une page statique, $this correspond à $plxShow.

    C'est la version 5.8.10 du jour. Et elle change presque tous les jours. Donc utiliser "git pull upstream master", en remplaçant éventuellement "upstream" par "origin"
    Le contenu ci-dessus ne fonctionne pas avec la v5.8.9 de PluXml.

    P.S.: IL y a tellement de nouveautés que la prochaine version de PluXml sera plutôt : 5.9.0

  • mars 2023 modifié

    @bazooka07

    P.S.: IL y a tellement de nouveautés que la prochaine version de PluXml sera plutôt : 5.9.0

    Merci, et moi qui ne croyais plus au Père Noël

    Bon , en effet ce défaut est réglé avec la dernière 5.8.10 . , je n'avais pas percuté qu'il maqué un champs dans l'appel de la fonction. (rester scotcher sur la fonction glob() de php)

    Solution dans la 5.8.9 , mettre à jour l'appel à la fonction danspublic function staticInclude($id):

                # On génère un nouvel objet plxGlob
                $plxGlob_stats = plxGlob::getInstance(PLX_ROOT . $this->plxMotor->aConf['racine_statiques'], false, true, 'statiques');
    


    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

  • Bonjour,
    Je viens de l'installer ( sans les données exemples) et j'ai ce message d'erreur :-1:

    <ul class="author-list unstyled-list">
    <br />
    <b>Fatal error</b>:  Uncaught TypeError: array_walk(): Argument #1 ($array) must be of type array, bool given in F:\htdocs\PluXml-5.8.10\core\lib\class.plx.show.php:2089
    Stack trace:
    #0 F:\htdocs\PluXml-5.8.10\core\lib\class.plx.show.php(2089): array_walk(false, Object(Closure))
    #1 F:\htdocs\PluXml-5.8.10\themes\defaut\sidebar.php(28): plxShow-&gt;authorList()
    #2 F:\htdocs\PluXml-5.8.10\themes\defaut\erreur.php(27): include('F:\\htdocs\\dvpts...')
    #3 F:\htdocs\PluXml-5.8.10\index.php(60): include('F:\\htdocs\\dvpts...')
    #4 {main}
      thrown in <b>F:\htdocs\PluXml-5.8.10\core\lib\class.plx.show.php</b> on line <b>2089</b><br />
    
  • bazooka07bazooka07 PluXml Lead Developer, Moderator

    Bonjour,
    Effectivement, s'il n'y a aucun article, ça plante.

    Dans class.plx.show à la ligne 2078, ajouter le test sur $arts comme suit :

            $arts = $this->plxMotor->plxGlob_arts->query($motif,'art','desc',0,false,'before');
            if(empty($arts)) {
                return;
            }
    
            $nbArts = array();
    

    La logique voudrait que je désactive l'entrée "articles" dans le menu du back-office.
    Je ferai une mise à jour dès que possible.

  • Merci
    Le message d'erreur ne s'affiche plus...

  • En attendant qu'un fil de discussion relative à cette nouvelle version soit créée, petit bogue que je viens de decouvrir.
    Juste après l'installation, paramétrage ---> description Blog ou Cms à l'Xml --> si je modifie cette description,l'apostrophe est remplacée par son entité Html et c'est cette entité qui s'affiche sur le front-end.

  • bazooka07bazooka07 PluXml Lead Developer, Moderator

    Je suis allé un peu plus loin :
    Si aucun article, alors pas d'onglet "articles" et "commentaires" dans le menu back-office.
    Et après authentification on affiche directement la page "nouvel article"

  • Par contre en allant dans parametres.xml, et en corrigeant l'entité html par l'apostrophe la modification est prise en compte.

  • bazooka07bazooka07 PluXml Lead Developer, Moderator

    @cpalo,
    Pour répondre à la problématique que tu soulèves et être compatible avec PHP8.0, j'ai modifié :

    • plxAdmin::editConfiguration() ( filter_var(trim($v), FILTER_SANITIZE_STRING) remplacé par strip_tags )
    • plxUtils::strcheck()

    Pour la description, le titre, et quelques autres, j'ai autorisé quelques balises HTML basiques (<i>, <em>, <a>, <sup>)

    Faire une mise à jour depuis Github (git pull upstream master)

  • Bonjour,
    J'ai rencontré le même problème avec PluXML 5.8.7 (la fonction est utilisée sur un thème personnel pour afficher les menus); le problème était apparent sur 5.8.8 et 5.8.9.
    La modification du fichier (core > lib > class.plx.show.php) a en effet résolu le problème, merci!!!

  • TomekTomek Member

    Merci pour le correctif. Je me demandais pourquoi ça ne fonctionnait pas sur le site que je suis en train de faire.
    Le temps (trop long) de trouver ce sujet.

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