Jump to content

[1.7.8.1] Probleme avec TinyMCE sur les pages CMS


Recommended Posts

Bonjour. J'ai d'abord posté ici : Pblm tinyMCE
en pensant que le probléme venait d'une simple configuration dans le tableau de bord.
Mais je ne pense pas....

Version de PS : 1.7.8.1
Thème (défaut/perso) : Thème enfant de classic
Hébergement : O2switch
Version de PHP : 7.3
Navigateur(s) concerné(s) : Tous

Quand j'essaye de simplement modifier le texte contenu dans les pages CMS ( a propos - cgv ) via apparence > page
J'ai un champ éditeur dispo pour le contenu (tinyMCE) en anglais, mais ce même champ éditeur de texte disparait
si je vais sur l'onglet Français. Je ne sais pas si vous me suivez ? 🙂

Pour la version FR, j'ai une erreur dans la console :  Uncaught TypeError: tinyMCE.activeEditor.getBody() is null

En cherchant j'ai trouvé la balise de l'éditeur qui s'active ou pas :

<div data-locale="en" class="translationsFields-cms_page_content_1 tab-pane translation-field panel panel-default translation-label-en">
<div id="mceu_13" class="mce-tinymce mce-container mce-panel" hidefocus="1" tabindex="-1" role="application" style="visibility: hidden; border-width: 1px; width: 100%;">
.tab-content > .tab-pane {
    display: none;
}

En résumé la balise .tab-content passe en display block en EN et en display none en FR

? C'est assez curieux ?

Impossible d'éditer les pages en FR car l'éditeur n'est pas actif donc,
et idem en EN si j'édite du contenu, mes modifs ne sont pas prises en compte (malgré le message )

Je n'ai pas de bug affiché...

Une idée ?

J'en profite aussi pour une question. Savez vous si il est facile de mettre à jour tinyMCE ?
J'ai localisé le fichier : monsitequivabien.com/js/tiny_mce/tinymce.min.js
Mais comme rien n'est jamais simple dans Prestashop, je me dit que le simple remplacement du JS ne suffira pas.
 

Link to comment
Share on other sites

L'erreur dans la console (avec FIREFOX)

Pour les modules, j'ai désactivé les modules non-prestashop
et j'ai aussi testé via le back-office, les options de paramètres avancés / debug.

Je précise aussi que tous les caches sont inactifs

Cela ne change rien.
 

bug-tinyMCE.jpg

Edited by Bertrand-Kaer (see edit history)
  • Like 1
Link to comment
Share on other sites

Si j'édite le texte en version EN, puis "enregistrer" il y a une notification qui me confirme l'enregistrement.
Mais quand je regarde si les modifications ont été prises en compte, ce n'est pas le cas...

J'ai essayé de modifier la description d'un produit. Pour tester tinyMCE.
Pas de pblm. L'éditeur marche bien (mise à part les fonts OPEN SANS signalées comme abscentes dans /themes/new-theme/public/...)

A partir de là, j'en déduit qu'il doit y avoir une sorte de conflit avec les onglets pour la traduction sur les pages CMS.

J'ai aussi trouvé cet article intéressant : https://mypresta.eu/prestashop-17/extend-text-editor-in-new-presta.html
pour celles et ceux qui veulent performer l'éditeur de texte.

 

Edited by Bertrand-Kaer (see edit history)
Link to comment
Share on other sites

Dans CHROME, la console  indique

Uncaught TypeError: Cannot read property 'textContent' of null
    at e.value (cms_page_form.bundle.js?1.7.8.1:25)
    at tN.<anonymous> (cms_page_form.bundle.js?1.7.8.1:25)
    at vp.c.fire (<anonymous>:2:197006)
    at tN.fire (<anonymous>:2:197532)
    at tN.load (<anonymous>:2:347090)
    at bw (<anonymous>:2:328168)
    at ww (<anonymous>:2:330246)
    at Aw (<anonymous>:2:332445)
    at tN.<anonymous> (<anonymous>:2:333551)
    at Array.<anonymous> (<anonymous>:2:96969)

L'erreur serait dans cms_page_form.bundle.js ?
 

Edited by Bertrand-Kaer (see edit history)
Link to comment
Share on other sites

10 minutes ago, joseantgv said:

Je ne peux pas reproduire l'erreur. Pouvez-vous télécharger une capture d'écran du back-office avec le champ que vous essayez de modifier ?

Ci joint 2 captures d'écrans.
On voit que le champ de l'éditeur (tinyMCE) en FR n'est pas visible ( c'est du JS qui met la balise textarea en visibility: hidden; ) 
En version Anglaise çà marche. Même si le clic sur les différents boutons transforme ensuite le visuel de l'éditeur tinyMCE. 

Si je regarde la config pour tinyMCE ( dans CONFIG ) je constate que mes modifs sont prises en compte pour les autres tinyMCE (dans produits)
mais pas dans les pages CMS ? Ce qui est assez déconcertant quand même. Y a-t-il une autre place pour gérer le tinyMCE des page CMS ???

 

presta-tinyMCE-EN.jpg

presta-tinyMCE-FR.jpg

Link to comment
Share on other sites

Après la mise à jour de Prestashop 1.7.8.2, TINY MCE (le champ de texte) est de nouveau dispo dans les différentes langues.
Donc, c'était bien un bug.
Merci aux développeurs Prestashop ! Ca a été relativement vite mais il faut bien argumenter sinon, c'est plus long 🙂
 

 

  • Like 1
Link to comment
Share on other sites

  • 10 months later...
  • 3 months later...

Hello, je rencontre moi aussi ce souci sur différentes versions de Prestashop, notamment après mise à jour en 1.7.8 :

  • 1.7.8.5 / php 7.4
  • 1.7.8.8 / php 7.3

L'affichage semble capricieux : lorsqu'on recharge la page, parfois ça s'affiche à nouveau correctement mais le plus souvent, c'est le non affichage de l'élément TinyMCE incluant le contenu qui n'apparait même pas dans le code HTML si on fait l'inspecteur du navigateur, ni l'iframe qui est censée être affichée par l'éditeur TinyMCE.

ça impacte :

  • les pages produit (champs récapitulatif et description)
  • les pages CMS (champ "Contenu de la page")

Mais j'ai testé sur le champ Description de la page Catégorie (BO) et ça s'affiche toujours bien dans mon cas.

Sur la page produit en BO, j'ai l'erreur suivante dans la console de l'inspecteur dans Chrome :

ncaught TypeError: Cannot read properties of null (reading 'textContent')
    at handleCounterTinyExtraField (8?_token=xx:5781:47)

Aussi, l'éditeur TinyMCE semble ne pas correctement se charger et cela, de manière intermittente puisque parfois ça fonctionne et d'autres fois, en majorité, non.

Cela se produit aussi bien sur mon poste, sur Chrome/FireFox que sur les postes des marchands, donc des configurations très différentes.

Pour ceux qui ont déjà rencontré par le passé ce souci, vous avez pu le solutionner ?

Et pour ceux qui verraient par hasard ce post, une idée ? Uns piste de recherche à explorer ?

Merci pour vos retour !

Link to comment
Share on other sites

  • 2 weeks later...

En fait, je viens de découvrir une piste sérieuse : j'ai un module intitulé "Champs supplémentaires produit" et lorsque je le désactive, il semblerait que les champs s'affichent correctement en BO.

N'auriez-vous pas ce même module ou un autre module qui engendre ce comportement ?
Je ne sais pas exactement quel hook est concerné, mais pour isoler ce module, j'ai recherché dans PERSONNALISER > Apparence > Position les hook commençants par "adminproduct" en cochant la case "Afficher les points d'accroche invisibles". ça permet de voir quels sont les modules appelés en BO sur la page d'édition de la fiche produit.

J'ai une version ancienne de ce module (1.7.38), je vais tenter avec une mise à jour du module, voir si ça permet son usage sans régression sur les champs.

Link to comment
Share on other sites

  • 3 months later...
  • 2 months later...

Bonjour, j'espère que cette solution vous aidera.

J'avais le même problème que beaucoup ici, à savoir que les langues autres que la langue par défaut ne s'affichaient pas, mais en plus il était impossible de modifier le texte des pages CMS même dans la langue par défaut.

Ce n'est pas un problème de version de PHP, la seule solution qui fonctionne et qui a été donnée dans le fil cité plus haut sur GitHub est la suivante :

Il faut télécharger une version "fraîche" de Prestashop, la décompresser localement, et aller remplacer les deux fichiers suivants dans votre FTP :

"js/admin/tinymce.inc.js"

"admin/themes/new-theme/public/cms_page_form.bundle.js"

Comme certains utilisateurs disaient que cela fonctionnait en version 1.7.8.7, j'ai utilisé les fichiers de cette version-là, mais c'est possible que cela fonctionne sur d'autres versions.

Pour info, je n'ai pas upgradé depuis une ancienne version, j'ai installé de zéro un site en 1.7.8.9 et j'avais le même souci. Après avoir remplacé ces deux fichiers par ceux de la version 1.7.8.7 je vois de nouveau les autres langues s'afficher, et les modifications de texte sont bien prises en compte.

Bonne chance !

Link to comment
Share on other sites

  • 7 months later...
On 12/3/2021 at 9:28 AM, BKaernel said:

Ci joint 2 captures d'écrans.
On voit que le champ de l'éditeur (tinyMCE) en FR n'est pas visible ( c'est du JS qui met la balise textarea en visibility: hidden; ) 
En version Anglaise çà marche. Même si le clic sur les différents boutons transforme ensuite le visuel de l'éditeur tinyMCE. 

Si je regarde la config pour tinyMCE ( dans CONFIG ) je constate que mes modifs sont prises en compte pour les autres tinyMCE (dans produits)
mais pas dans les pages CMS ? Ce qui est assez déconcertant quand même. Y a-t-il une autre place pour gérer le tinyMCE des page CMS ???

 

presta-tinyMCE-EN.jpg

presta-tinyMCE-FR.jpg

Bonjour,

J'ai exactement le même problème avec 1.7.8.9. J'ai remplacé les JS, remplacer tout le dossier admin\themes\new-theme de mon site par celui d'une version téléchargée et rien. Et j'ai toujours le même problème.

Quelqu'un aurait-il une autre idée ?

 

Capture d'écran 2024-04-12 145717.png

Link to comment
Share on other sites

Bonjour Fanny,

Regarde ma solution de février 2023. C'est sûrement dû à un module qui cause une régression.

Dans la fiche produit en BO? dans son onglet Modules, tu verras les modules qui sont chargés pour les fiches produit. Tente de désactiver ces modules pour tester si l'affichage des champs de description fonctionnent à nouveau.

Dans mon cas, c'était un module qui causait ce souci et en le mettant à jour, ça l'a réglé. Si le module en question n'a pas de mise à jour, il faudra le désinstaller et trouver un module alternatif si la fonctionnalité était nécessaire.

Tiens-nous au courant,

Link to comment
Share on other sites

On 4/13/2024 at 8:58 AM, Jovicyr said:

Bonjour Fanny,

Regarde ma solution de février 2023. C'est sûrement dû à un module qui cause une régression.

Dans la fiche produit en BO? dans son onglet Modules, tu verras les modules qui sont chargés pour les fiches produit. Tente de désactiver ces modules pour tester si l'affichage des champs de description fonctionnent à nouveau.

Dans mon cas, c'était un module qui causait ce souci et en le mettant à jour, ça l'a réglé. Si le module en question n'a pas de mise à jour, il faudra le désinstaller et trouver un module alternatif si la fonctionnalité était nécessaire.

Tiens-nous au courant,

J'ai testé en désactivant quasiment tout les modules mais sans résultat. Tous mes modules sont à jour et j'ai une erreur différente de la fois dernière.

J'ai l'impression que l'EN qui devrait être désactivé sur l'ensemble du site, ne l'est pas totalement au final...

Capture d'écran 2024-04-16 154608.png

Link to comment
Share on other sites

  • 2 weeks later...

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...