BreezingForms pour Joomla! 4 Installation ou mise à jour…

Crosstec a mis à disposition sa version de BreezingForms pour Joomla! 4.

Si son installation sur une nouvelle configuration ne pose pas de problème, il n'en va pas de même pour une mise à jour depuis une version précédente.

Mais alors que faire ?

BreezingForms, dans sa version 1.9.1 Build 942 et + a été retravaillé pour correspondre à la structure de Joomla! 4 et PHP8. C'est une excellente nouvelle cependant, après une mise à jour de BF d'une version pour Joomla! 3 vers Joomla! 4, il y a de grandes chances pour que vos formulaires retournent des erreurs et ne fonctionnent pas comme attendu. Voyons pourquoi et que faire pour remettre les pendules à l'heure.

Le problème

Lors d'une mise à jour, BreezingForms ne remplace pas les "Scripts" et "Pièces" de sa librairie (ou bibliothèque). Il s'ensuit que votre nouvelle installation est bien conforme à PHP8 mais pas cette librairie qui date encore et toujours de Joomla 3 et PHP7.x…

La solution

Il va falloir remplacer ces scripts et pièces par les nouveaux compatibles PHP8…

Commencez par vous rendre dans l'administration de votre Joomla! et depuis le menu Composants, sélectionnez BreezingForms → Scripts.

Sélectionnez alors tous les scripts présents et supprimez-les. Veillez à ce qu'il n'en reste aucun !

Sélectionnez ensuite dans le menu BreezingForms l'onglet Pièces et faites de même, supprimez toutes les pièces.

Rendez-vous ensuite dans le menu Configuration de BreezingForms, cliquez le lien Installez le package.

Sélectionnez le package nommé stdlib.english puis cliquez l'option Désinstaller des packages.

Si vous avez installé la version francisée de la librairie, nommée stdlib.french, il faudra la désinstaller également

Réinstallation de la nouvelle librairie

La nouvelle librairie peut être trouvée en décompressant l'archive d'installation de BreezingForms. Vous pouvez également la télécharger ci-dessous sous forme de fichier compressé.

Vous devez être enregistré et connecté pour accéder aux téléchargements.

Une fois ce fichier téléchargé, dézippez-le, toujours sur la page d'installation des packages, cliquez le bouton de recherche de fichier et sélectionnez votre librairie juste décompressée sur votre disque dur, puis validez par Installer le package. Ce dernier doit maintenant apparaître dans la liste des packages installés.

Afin de mettre votre (vos) formulaire(s) à jour, il reste à les éditer puis reparamétrer vos scripts de validation de champs (ils auront été remis par défaut suite à la suppression des anciens scripts) et terminer par enregistrer et tester.

Votre installation devrait à présent être bien à jour et fonctionnelle.

11 commentaires

  • Bonjour

     

    Merci pour le tuto, qui m'effraie un peu.  Quand tu parles de "il reste à les éditer puis reparamétrer vos scripts de validation", c'est du genre FF::ff_validemail_repeat qu'il faut remettre ?   Donc, il faut se souvenir dans chaque formulaire où il y a des scripts de validation ou y-a-t-il une autre méthode. Travail fastidieux en vue, si c'est le cas.   Et autre question en relation, contenbuilder est toujours bien obligatoire pour visualiser les données entrées dans les différents formulaires mais celui-ci n'est toujours pas porté sous joomla 4.

    Edité le Lundi 16 Janvier 2023 10:38 par Eddy.
    • Bonjour Michel.

      La suite d'actions que vous mentionnez ne peut être faite comme ça, les scripts ayant une ID, dans la base de données, c'est cette ID qui est mentionnée. L'installation des nouveaux scripts leur donnera une ID différente que la précédente. Il faudra sans aucun doute remettre les validations en place.

      Concernant Content Builder, il est "indispensable" pour visionner les entrées de formulaire sur le fronrend, dans le backend, vous avez la possibilité d'afficher toutes les entrées.

      Une option alternative est l'enregistrement des données sur une feuille de calcul Google Sheets si vous avez une licence.

        J'attire votre attention sur le fait qu'actuellement, il vous faut la version Pro de BreezingForms pour passer en J4, la version free est toujours en cours d'adaptation et devrait voir prochainement le jour.

      Bonne semaine

  • Une future mise à jour de breezingform pourrait-elle actualiser les scripts  de façon automatique sans devoir re-écrire les scripts de validation  ? C'est du domaine du possible ou techniquement impossible ?
    Je me vois mal devoir modifier tous mes formulaires et leurs scripts de validation après la mise à jour.
    Merci
    • Bonjour Michel.

      Dans le script d'installation de BreezingForms, les scripts et pièces ont une ID MAIS dans votre base de données, cette ID est non valable, la table est de type AUTO-INCREMENT. C'est-à- dire que, même si la table est vide avant l'insertion des nouveaux scripts, la première ID suivra la dernière qui s'y trouvait et BF ne retrouverait donc pas le script qui correspond à son champ.

      Ceci n'est que ma déduction !

      D'autant que, même si une manipulation dans la BDD à l'aide de "TRUNCATE" réinitialiserait l'indexation de la table et en perdrait ses données enregistrées, il faudrait s'assurer que les nouveaux scripts aient la même ID que les précédents. Alors, et sans certitude, cela pourrait fonctionner.

      Je crains que la méthode le contrôle et de réattribution des scripts de validation soit la plus facile et rapide. La faute n'est pas au développeur, mais à l'évolution de PHP.

      Croyez-moi, je ne comprends pas très bien non plus pourquoi il faut remplacer la librairie, car j'ai comparé une ancienne librairie et la nouvelle et je n'y trouve pas de grandes différences, seul un script semble avoir eu une modification, cependant, j'ai dû moi aussi remplacer cette librairie comme mentionné par Markus Bopp lui-même ici.

      Il sera intéressant de demander à Crosstec la raison de ce remplacement, je m'en charge…

      Bonne journée.

  • Merci pour cette information, mais après avoir suivi scrupuleusement ces instructions, je n'arrive pas à installer le package ! Le message d'erreur est le suivant : "Installation du package: élément XML 'piece' A la ligne 394 : Field 'id' doesn't have a default value" Incompréhensible, j'ai 5 sites sur 6 qui rencontre le même problème !!! Si vous avez une idée, elle sera bienvenue… Belle soirée

    Robert

    Edité le Mercredi 22 Février 2023 17:39 par Eddy.
    • Bonjour Robert.

      J'ai installé BreezingForms et la librairie sur plusieurs sites sans rencontrer ce problème.

      1. Avez-vous installé la librairie trouvée dans votre package ou celle téléchargée ici ?
      2. Que dit la ligne 394 et ses alentours si vous ouvrez le fichier xml avec un éditeur de texte ?

      Si vous souhaitez que je jette un œil à l'installation, je vous suggère de mettre ce tutoriel en œuvre et me contacter à l'aide du formulaire de contact afin de me fournir des identifiants de connexion à l'une de vos administrations. J'y jetterai un œil avec plaisir.

  • Salut
    Merci pour ce tuto et pour le site. Tu parle de la version francaise de la librairie (stdlib.french). J'aurais aimé la récupérer mais je ne la trouve pas sur le site de Crosstech, que ca soit sur le forum ou dans les parties telechargement.
    • Bonjour. 

      La version française de la librairie n'est plus fonctionnelle sous PHP8 et n'a été fournie que sporadiquement par un traducteur volontaire. Il faudrait traduire la nouvelle version. Peut-être si je trouve le temps mais je ne promets rien. 

Connectez-vous pour poster un commentaire

Afin d'éviter les messages indésirables, les commentaires sont réservés aux membres inscrits. Veuillez vous inscrire ou vous connecter pour publier votre commentaire

FAIRE UN DON

paypal btn

Via PayPal

PLUGIN UP DE LOMART

Universal Plugin : UP

De très nombreuses actions pour vos articles en un unique plugin.
up lomart