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.
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.
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
On ne peut pas exporter les formulaires, désinstaller les scripts, réinstaller les nouveaux scripts, réimporter les formulaires (les validations seraient toujours là ?)
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
Bonjour Robert.
J'ai installé BreezingForms et la librairie sur plusieurs sites sans rencontrer ce problème.
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.
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.
Salut, J'ai exporté le fichier .xml depuis Joomla3 sans problème, mais lorsque j'essaie de l'importer dans Joomla4, j'obtiens le message "Package Installer: XML element 'element' at line 32 : Field 'tags_content' doesn't have a default value" et le formulaire n'est pas importé. Avez-vous rencontré quelque chose de similaire jusqu'à présent ? Merci
Hello,
Je n'ai personnellement jamais rencontré ce problème. Je peux tester un import de votre fichier sur mon site de tests (en Joomla 5, je n'ai plus de Joomla 4 à disposition).
Veuillez préalablement zipper le fichier .xml et me le faire parvenir à l'aide de mon formulaire de contact.
Merci pour votre réponse. J'ai finalement réussi à résoudre cela, mais je rencontre maintenant un autre problème. Ma première question est la suivante : étant donné que Crosstec a très probablement cessé ses activités, disposez-vous d'une mise à jour disponible de Breezingforms qui soit entièrement compatible avec Joomla4 (je veux dire plus compatible que celle disponible chez Crosstec) ? Avez-vous essayé dans Joomla4 de mettre à jour dynamiquement les données d'un champ en utilisant un fichier .php ? Pour moi, cela ne fonctionne pas. J'ai également publié cela sur le forum de Joomla au cas où quelqu'un rencontrerait un problème similaire https://forum.joomla.org/viewtopic.php?f=814&t=1009791
Merci
Bonjour.
Plus compatible que compatible ? Je ne pense pas...
Je ne comprends pas ceci :
De quel type de fichier php parlez-vous ?
PS : Je suis en voyage jusque samedi inclus et risque de ne répondre qu'à partir de dimanche.
Tout d'abord, merci de votre aide. Avez-vous vérifié le lien vers le forum Joomla mentionné ci-dessus ?
https://forum.joomla.org/viewtopic.php?f=814&t=1009791
Bonjour.
Je comprends maintenant.
Non, je n'ai jamais eu besoin de mettre à jour dynamiquement des informations de formulaire depuis un fichier PHP.
J'espère que vous pourrez trouver réponse sur le forum de Joomla. De mon côté, je n'ai pas d'idée.