We launched new forums in March 2019—join us there. In a hurry for help with your website? Get Help Now!
    • 1186
    • 202 Posts
    Bonjour,

    Sérieux problème avec la publication / dépublication de documents :
    Lorsque je programme, via le manager, sous le compte "admin", la publication ou la dépublication d’un document dont l’affichage est géré par le snippet Newslisting, tout le site plante à la date de publication (ou de dépublication), avec l’erreur :

    « MODx Parse Error »
    MODx encountered the following error while attempting to parse the requested resource:
    « Execution of a query to the database failed - You have an error in your SQL syntax. Check the manual that corresponds to your MySQL server version for the right syntax to use near 'WHERE `alliancel`.trets_site_content.pub_date < 1148057654 AND »
          SQL: UPDATE `alliancel`.modx_site_content SET published=1, publishedon=1148057654, publishedby= WHERE `alliancel`.modx_site_content.pub_date < 1148057654 AND `alliancel`.modx_site_content.pub_date!=0
    


    Le site refonctionne après vide du cache.

    Apparemment, je ne suis pas la seule à qui ce problème est arrivé (cf. Topic http://modxcms.com/forums/index.php/topic,4528.0.html dans le forum anglais, irrésolu à ce jour)

    Je ne sais pas si c’est un bug du noyau MODx (versions 0.9.2 utilisée), si c’est un bug du template Newslisting (version 6.4.2 utilisée), ou autre chose. La requête SQL produite ne donne aucune valeur à "publishedby" (cf. plus haut), ce qui me parait bizarre, est-ce le fait de gérer la publication de documents sous le compte admin qui génèrerait ce bug ?

    Merci d’avance pour votre aide !

      R
      • 33175
      • 711 Posts
      Désolé, malgré mon post côté anglais, je n’ai toujours pas réponse valable.

      Ce que je peux dire, c’est que si je publie un document maintenant et que je l’enregistre aussitôt après, j’obtiens l’erreur que tu indiques. La seule solution que j’ai trouvé, dans ce cas précis, est de cocher la case "publier", de choisir la date et l’heure, et de modifier les minutes pour quelques minutes plutôt. Là, ça fonctionne.

      Je continue de creuser ce problème mais j’ai l’impression que ça bugue si l’heure de publication est ultérieure à l’heure courante. Je n’ai pas encore eu le temps de tester cette possibilité.
      Si quelqu’un peut l’indiquer, je ferais remonter l’information.

      Je n’avais pas pensé à NewsListing comme source du problème. C’est une piste intéressante. Suivant mon temps, je verrai pour tester ceci.

      Autre point important que tu soulignes, c’est que le problème concerne aussi la date de dépublication. Comme je ne m’en sert pas, je ne l’avais pas remarqué.

      Quelques questions pour cibler le problème, à tout ceux qui ont ou non pas ce problème :
      - avez vous ce problème ?
      - quelle version de Modx utilisée vous (pour la 0.9.2.x merci de préciser si la 0.9.2.0 ou la 0.9.2.1) ?
      - utilisez vous NewsListing ou Ditto ?
      - quelle version de NewsListing ou de Ditto utilisez vous ?
      - avec quel compte utilisateur publiez vous vos documents ?

      Merci de votre aide.
        Sorry for my english. I&#39;m french... My dictionary is near me, but it&#39;s only a dictionary !
        • 33175
        • 711 Posts
        avez vous ce problème ?
        Oui
        quelle version de Modx utilisée vous (pour la 0.9.2.x merci de préciser si la 0.9.2.0 ou la 0.9.2.1) ?
        0.9.2.0
        utilisez vous NewsListing ou Ditto ?
        NewsListing
        quelle version de NewsListing ou de Ditto utilisez vous ?
        6.4.2
        avec quel utilisateur publiez vous vos documents ?
        un compte administrateur
          Sorry for my english. I&#39;m french... My dictionary is near me, but it&#39;s only a dictionary !
          • 1186
          • 202 Posts
          Bonjour,

          Merci Guillaume pour ta réponse !

          J’ai fait des tests avec MODx 0.9.2.0 et 0.9.2.1, compte admin, Newslisting 6.4.2, même erreur.
          L’absence de valeur dans la requête SQL pour "publishedby" me semble tout de même bien bizarre.

          La requête SQL est générée par le parseur d’après mes recherches, "document.parser.class.inc.php", ligne 475 :

                $sql = "UPDATE ".$this->getFullTableName("site_content")." SET published=1, publishedon=".time().", publishedby=".$this->getLoginUserID()."WHERE ".$this->getFullTableName("site_content").".pub_date < $timeNow AND ".$this->getFullTableName("site_content").".pub_date!=0";
          


          ".$this->getLoginUserID()." ne renvoit dans ce cas aucune valeur...

          Cela donne-t-il des idées de solution à quelqu’un ?

            R
            • 33175
            • 711 Posts
            Je n’ai pas encore eu le temps d’essayer Ditto. Peut être que ce problème est résolu ?
              Sorry for my english. I&#39;m french... My dictionary is near me, but it&#39;s only a dictionary !
              • 1186
              • 202 Posts
              C’était justement ma prochaine piste d’investigation.
              Je vais donc tester tout ça avec Ditto, retour positif ou négatif dès que c’est fait !
                R
                • 1186
                • 202 Posts
                J’ai testé avec Ditto, toujours le même problème.
                J’ai testé la publication/dépublication sur un document classique, non géré par Newslisting ou Ditto, même erreur.
                J’ai testé ensuite avec MODx 0.9.1 et Newslisting 6.4.2, et là, ô miracle, ça marche.

                Il y a donc a priori un problème généré par la version 0.9.2.x de MODx.

                Dans le fichier "document.parser.class.inc.php", la function checkPublishStatus() diffère effectivement un peu entre les deux versions. Or c’est cette fonction qui génère l’instruction SQL déclenchant l’erreur.

                Help !!!!!


                  R
                  • 33175
                  • 711 Posts
                  Merci beaucoup pour ces précisions et tes recherches smiley Il fallait le trouver ce bug smiley Bien joué smiley
                    Sorry for my english. I&#39;m french... My dictionary is near me, but it&#39;s only a dictionary !
                    • 1186
                    • 202 Posts
                    Merci Guillaume !

                    Suite au message de Ryan Thrash côté anglais, j’ai donc posté le tout dans le MODx Bug report.
                    J’espère que c’était la bonne procédure à suivre !

                    J’ai au passage découvert une coquille dans le fichier "document.parser.class.inc.php", ligne 481 (version 0.9.2.1 complète, et version 0.9.2.1 patchée) :

                    il y a "publihsedby=0" au lieu de "publishedby=0" (inversion du s et du h)
                    ce qui forcément provoque une erreur MySQL quand cette ligne est traitée (Unknown column ’publihsedby’ in ’field list’)



                      R
                      • 33175
                      • 711 Posts
                      Génial smiley ça va marché chez moi grin

                      Merci Moon smiley
                        Sorry for my english. I&#39;m french... My dictionary is near me, but it&#39;s only a dictionary !