Jump to content

Non affichage de tinymce sur les pages CMS pour le marchand et pas pour le superadmin


Recommended Posts

Bonjour,
 
sous prestashop 1.6.0.6 je rencontre un problème curieux : l'éditeur d'une page CMS est wysiwyg si je suis connecté en tant qu'administrateur, mais pas en tant qu'employé (compte du marchand). Tinymce ne se greffe pas sur le textarea.
 
En regardant de plus près, autre mystère : le chargement des JS ne se fait pas dans le même ordre selon le compte ! Cela provoque des erreurs sous le compte marchand et aucune en admin. En forçant dans header.tpl à charger les JS comme en admin, cela ne change rien. Je soupçonne donc un souci au niveau du modèle ou des droits différents pour les deux mais je n'arrive pas à situer où cela a lieu.
 
J'ai remis à jour bloc_CMS et même réinstallé le module (en perdant la traduction au passage …) sans effet.
 
Une idée pour corriger cette erreur sans mettre à jour la boutique ?
 
PS : les erreurs JS résiduelles sur côté marchand
 

TypeError: e.widget is not a function
$.widget("ui.tagify", {
jquery.....min.js (ligne 4, col. 21)
 
TypeError: t.ui is undefined
jquery.....min.js (ligne 4

TypeError: $.widget is not a function
$.widget("ui.tagify", {
jquery.tagify.js (ligne 5)

TypeError: $(...).tagify is not a function
...('#'+input_id).tagify({delimiters: [13,44], addTagPrompt: 'Ajouter un mot-clé'})
index.p...78ae03e (ligne 818)

Merci.

 

Link to comment
Share on other sites

J'ai pu identifier la source de cette erreur et d'une autre qui empêchait l'ajout d'une image aux produits puis lors de la suppression, le retrait de la ligne contenant l'image de la fiche produit dans l'admin.

 

Les raisons sont les suivantes :

avec un autre employé que l'admin, l'ordre des JS est perturbé. Dans tous les cas JQuery n'est pas chargé en premier. Il faut commenter la ligne addJquery() de AdminController.php et ajouter à la main JQuery dans le header.tpl de l'admin,

thickbox s'attend à une version plus ancienne de JQuery et $.browser() est inconnu. Le problème se contourne en ajoutant jquery-migrate dans header.tpl après JQuery,

s'il y a des erreurs avec d'autres JS qui utilisent JQuery sous la forme (function … ).(JQuery), corriger en déplaçant JQuery, donc sous la forme JQuery.(function …) ; cette écriture vient aussi du fait que $ est désactivé pour éviter des soucis de compatibilité,

en ajoutant 'content' à la ligne foreach (array('errors', 'warnings', 'informations', 'confirmations') as $type) du contrôleur AdminController.php on corrige certaines erreurs de retour en ajax qui attendent un contenu ; par exemple lors de la suppression d'une image pour retirer la ligne de la fiche produit.

 

Apparemment ces erreurs peuvent toujours se produire avec la version 1.6.0.14 de prestashop puisque les versions de JQuery et de thickBox utilisées sont les mêmes (diff ne retourne aucune différence) : c'est très surprenant qu'il n'y ait pas eu de rapport de bug ni de correction.

Link to comment
Share on other sites

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...