2010-07-05 3 views
2

l'aide copier-coller (ou le plugin code) les utilisateurs sont en mesure d'insérer du contenu, y compris des portées à rendement plages imbriquées, même si je pensais que mes paramètres interdisent plages imbriquées. Je souhaite que les intervalles imbriqués soient éliminés lorsque l'action "nettoyage" est effectuée.Configuration/Nettoyage problème

Effectuer un nettoyage manuel (commande "mceCleanup" qui est déclenchée après avoir collé du texte) n'aide pas non plus. En fonction du TinyMCE documentation, un utilisateur peut choisir les éléments enfants à supprimer lors de l'exécution du "nettoyage" pour les nœuds parents définis.

Y at-il un problème avec ma config? Si oui, qu'est-ce qui ne va pas? Des suggestions?

Voilà ma configuration (la partie pertinente, j'utilise la dernière version de tinymce (3.3.8), se produit dans tous les principaux navigateurs):

cleanup : true, 

    encoding: "xml", 

    dialog_type : "modal", 

    object_resizing: false, 
    paste_strip_class_attributes: "all", 

    entity_encoding: "raw", 

    fix_nesting: true, 

    invalid_elements: "strong,ul,ol,li", 


    // The valid_elements option defines which elements will remain in the edited text when the editor saves. 
    valid_elements: "@[id|class|title|style]," 
    + "a[name|href|target|title]," 
    + "#p,-ol,-ul,-li,br,img[src],-sub,-sup,-b,-i," 
    + "-span,hr", 

    valid_child_elements : "body[p|ol|ul]" //EDIT: had some ","s instead of "|"s 
    + ",p[a|span|b|i|sup|sub|img|hr|#text]" 
    + ",span[a|b|i|sup|sub|img|#text]" 
    + ",a[span|b|i|sup|sub|img|#text]" 
    + ",b[span|a|i|sup|sub|img|#text]" 
    + ",i[span|a|b|sup|sub|img|#text]" 
    + ",sup[span|a|i|b|sub|img|#text]" 
    + ",sub[span|a|i|b|sup|img|#text]" 
    + ",li[span|a|b|i|sup|sub|img|ol|ul|#text]" 
    + ",ol[li]" 
    + ",ul[li]" 

Répondre

2

Je ne pense pas qu'il y ait un problème votre config.

Le problème est que le code TinyMCE ignore totalement l'attribut valid_child_elements depuis la version 3.3b1 (25 Janvier 2010). Je Window Grep d'examiner tous les fichiers du 3.3.8 téléchargement et la chaîne valid_child_elements ne se trouve que deux fois (et sur la même ligne) dans /jscripts/tiny_mce/Classes/Editor.js - cela se révèle être une simple instruction d'affectation qui est utilisée nulle part ailleurs.

Il se trouve que dans la version 3.2.7 (22 Septembre 2009) ou au-dessous (voir http://sourceforge.net/projects/tinymce/files), l'attribut valid_child_elements appelle une fonction appelée addValidChildRules dans /jscripts/tiny_mce/Classes/dom/Serializer.js que je crois ne ce que vous voulez essentiellement. Il y a des bugs dans cette version. Je les ai finalement obtenu les balises imbriquées à supprimer après l'ajout d'un paramètre de configuration simplifiée valid_child_elements à l'un des exemples de fichiers dans le téléchargement:

valid_child_elements : "span[a|b|i|sup|sub|img|#text]" 

Hope this helps.

+0

avait déjà recherché par le code et seulement trouvé les deux endroits que vous avez fait. L'explication que cela fonctionnait autrefois (version 3.2.7) l'explique un peu. Donc vous avez configuré tinymce en utilisant valid_child_elements dans la version 3.2.7? – Thariama

+0

Oui, tout en utilisant 3.2.7 et la configuration en utilisant les paramètres de 'valid_child_elements' comme je l'ai montré dans le bloc de code ci-dessus, il supprimé correctement les balises span imbriquées. Lorsque j'ai essayé avec les éléments supplémentaires que vous avez fournis pour "valid_child_elements" dans votre question ci-dessus, cependant, j'ai des erreurs Javascript. – Bermo

+0

merci pour vos efforts - cela m'a beaucoup aidé (la générosité est à vous). développeur chef de tinymce m'a dit lorsqu'on lui a demandé que sa fonctionnalité retournera dans la version 3.4, mais sera appliquée à l'aide d'une autre façon plus commode de configuration – Thariama