web-dev-qa-db-fra.com

le texte de l'éditeur wordpress qtranslate ne fonctionne pas

J'ai installé qtranslate sur mon site wordpress, tout fonctionne correctement, mais parfois l'éditeur de contenu ne montre pas le texte. Lorsque je force le rafraîchissement de la page à quelques reprises (Ctrl + r) le texte s'affiche éventuellement up .

J'allais mettre des images ici pour l'expliquer, mais, cet article contient déjà les images que je voudrais mettre (mais les questions diffèrent) qtranslate ne fonctionne pas correctement

J'ai désactivé tous les plugins, et ce problème est toujours là, j'ai essayé beaucoup d'autres choses à

Error:

Uncaught TypeError: Cannot set property 'setup' of undefined
Line: 303, qtranslate_javascript.php

$q_config['js']['qtrans_hook_on_tinyMCE'] = "
qtrans_hook_on_tinyMCE = function(id) {

tinyMCEPreInit.mceInit[id].setup = function(ed) {
    ed.onSaveContent.add(function(ed, o) {
        if (!ed.isHidden())  {
            qtrans_save(switchEditors.pre_wpautop(o.content));
        }
    });
};
ed = new tinymce.Editor(id, tinyMCEPreInit.mceInit[id]);
    ed.render();
}
";

ID de journalisation de la console:

qtrans_textarea_content post.php:467
qtrans_textarea_acf_settings 

Autres notes

J'ai également essayé d'ajouter la try{} catch(e){} pour éviter que le script ne s'effondre, cela ne semble pas du tout aider, je suis à court d'options et j'ai vraiment besoin d'aide pour cela.

À votre santé

1
Val

J'ai trouvé un bon article qui résout ce problème,

http://wordpress.org/support/topic/plugin-qtranslate-problems-displaying-in-the-edit?replies=21#post-3160564

Le problème est sur la ligne 225 de qtranslate_javascript.php

Remplacer

var waitForTinyMCE = window.setInterval(function() {
                if(typeof(tinyMCE) !== 'undefined' && typeof(tinyMCE.get2) == 'function' && tinyMCE.get2('content')!=undefined) {
                    content=jQuery('#content').val();
                    tinyMCE.get2('content').remove();
                    jQuery('#content').val(content);
                    window.clearInterval(waitForTinyMCE);
                }
            }, 250);

WITH:Changez seulement le 250 en 500 :) ceci devrait résoudre le problème ...

var waitForTinyMCE = window.setInterval(function() {
                if(typeof(tinyMCE) !== 'undefined' && typeof(tinyMCE.get2) == 'function' && tinyMCE.get2('content')!=undefined) {
                    content=jQuery('#content').val();
                    tinyMCE.get2('content').remove();
                    jQuery('#content').val(content);
                    window.clearInterval(waitForTinyMCE);
                }
            }, 500);
1
Val