Joaktree : tentative de correction du code pour PHP 8

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

  • [RÉGLÉ] Joaktree : tentative de correction du code pour PHP 8

    Bonjour,

    Mon site de généalogie tourne sur mon serveur PlanetHoster World Pro dont la version PHP (pour tout le serveur) est 8.1
    Dans la mesure où our le moment, il n'y a pas d'alternative à cette version pour J3, j'ai continué avec elle.

    Récemment, j'ai ajouté près de 90 individus à mon fichier géré par Heredis 2022 et pour mettre à jour Joaktree, j'ai besoin d'abord de vider la table correspondant au GedCom concerné.
    Mais j'obtiens dans le fichier modèle une erreur 0 :
    Non-static method jt_gedcomfile2::deleteGedcomData() cannot be called statically
    La fonction concernée est celle-ci
    Code:
    /*    ** function for clearing the tables for a specfic gedcom file
        */
        public function deleteGedCom() {
            $canDo    = JoaktreeHelper::getActions();
            if ($canDo->get('core.delete')) {
                $cids = JFactory::getApplication()->input->get( 'cid', null, 'array' );
                $msg = '';
                foreach ($cids as $cid_num => $app_id) {
                    $app_id    = (int) $app_id;
                    $msg   .= '+'.jt_gedcomfile2::deleteGedcomData($app_id, true);
                }            
                $return = $msg;            
            } else {
                $return = JText::_('JT_NOTAUTHORISED');
            }      
            return $return;
        }
    ​
    J'ai tenté de modifier en "public static" les fonctions "public" du fichier helper contenant la fonction deleteGedcomData du helper, sans succès. Pas mieux en le faisant dans le fichier modèle où se déclenche l'erreur.
    J'imagine que j'aurai d'autres erreurs du même type une fois celle-ci réglée.

    Que puis-je faire ?
    Merci de votre aide.
    "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
    Salut Robert.

    Je n'ai pas mon ordi sur moi, je n'ai donc pas les fichiers de joaktree pour pouvoir t'aider correctement.

    Mais si tu a déclaré deleteGedcomData en static, le message d'erreur doit être différent.
    Dernière édition par roland_d_alsace à 17/08/2023, 09h04
    A tous les utilisateurs de Joomla du très Grand Est de la France et du Jura suisse
    Rejoignez le Joomla Users Groupe Alsace...
    roland_d_alsace va-t-il devenir roland_du_grand_est ?

    Commentaire


    • #3
      Merci Roland,

      J'ai pourtant passé en static cette fonction, en fait je l'ai fait pour toutes les "public function" des deux fichiers model et helper, sans disparition de l'erreur 0.
      Cliquez sur l'image pour l'afficher en taille normale

Nom : image.png 
Affichages : 64 
Taille : 11,7 Ko 
ID : 2054151
      "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
        Bonjour,

        Certaines modifications de "public function" en "public static function" déclenchent à leur tour une erreur 0, et le retour en arrière aboutit ensuite à une erreur sur $this...
        Je cale !
        "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


        • #5
          Salut Robert.

          $this-> ne peut pas appeler une méthode déclarée en static, il faut remplacer par self::

          A tous les utilisateurs de Joomla du très Grand Est de la France et du Jura suisse
          Rejoignez le Joomla Users Groupe Alsace...
          roland_d_alsace va-t-il devenir roland_du_grand_est ?

          Commentaire


          • #6
            Merci Roland,

            Tout ça me rappelle mes modifications pour tenter de passer en J4, il y a maintenant 6 ans !
            Je ne sais pas si j'aurai le courage, car il y a très probablement de très nombreuses modifications à faire, ne serait-ce que pour cette compatibilité PHP 8.

            Sinon, pour info, un Canadien anglophone avec qui j'avais déjà été en relation il y a un peu plus de 4 ans m'a de nouveau contacté. Il voudrait essayer de rendre Joaktree compatible J4. Je lui ai transmis le zip du composant et des modules/plugins version 2. Je ne sais pas s'il saura le faire.
            Compte tenu du code actuel, je pense que le travail sera énorme et que le projet de réécriture complète de daneel serait la meilleure méthode pour passer en J4.
            "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
              Bonjour,

              Je ne comprends pas ! Ce matin, repartant sur le sujet, j'ai simplement ajouté static à la fonction "deleteGedcomData " et l'effacement fonctionne tant en 8.0 qu'en 8.1
              Il me restera à m'assurer que d'autres fonctionnalités ne renvoient pas à leur tour d'erreurs comparables.
              "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