Comme beaucoup des utilisateurs de MailPress, je suis frustré de voir l'éditeur visuel cassé lors de la rédaction d'un email. En fait, il se trouve que MailPress fonctionne très bien lorsqu'il est installé sans aucun autre plugin interagissant avec l'éditeur visuel.
J'ai donc cherché une solution sur le net, et sur le groupe de support de MailPress, je suis tombé sur un sujet traitant du problème, et la réponse d'André m'a fait sourire :)
ask viper and cform dev to stop spreading their code all over all admin pages ! ?
En fait, il a en partie raison... Les plugins en questions, Viper Video Quicktags, Cforms et bien d'autres, ajoutent sans trop se soucier leur bouton à l'éditeur visuel de WordPress, et ils ne font pas du tout attention sur quelle page est chargé l'éditeur et encore moins par quel plugin... Mais ils n'ont pas tort... Lorsque j'ajoute le plugin Viper Video Quicktags, je souhaite ajouter les boutons des services vidéos... Et si je déporte l'éditeur visuel sur une page du site, je souhaite également avoir ses boutons...
En fait, le fautif à mes yeux est WordPress, les filtres offrent des superbes possibilités d'extensibilité, mais le nombre d'incompatibilités entre les extensions est en croissance exponentielle... Ici, l'éditeur visuel devrait pouvoir être appelé avec ou sans les filtres. (WordPress le propose déjà pour la fonction get_posts/query_posts)
Mais trêve de bavardage, pour corriger l'incompatibilité, j'ai développé un petit plugin qui corrige la situation pour les 2 plugins (cforms, viper vidéo quicktags), et de la sorte pas besoin de modifier/désactiver l'un ou l'autre des plugins...
<?php /* Plugin Name: MailPress Fix TinyMCE Plugin URI: https://www.herewithme.fr Description: Fix TinyMCE for MailPress with Viper Video Quicktags and Cforms Author: Amaury Balmer Version: 0.1 Author URI: https://www.herewithme.fr */ add_action( 'init', 'fixTinyMCE_MailPress', 999 ); function fixTinyMCE_MailPress() { if ( !isset($_GET['page']) && $_GET['page'] != 'mailpress_write' ) { return false; } // Viper video quicktags global $VipersVideoQuicktags; remove_filter( 'tiny_mce_version', array(&$VipersVideoQuicktags, 'tiny_mce_version') ); remove_filter( 'mce_external_plugins', array(&$VipersVideoQuicktags, 'mce_external_plugins') ); remove_action( 'edit_form_advanced', array(&$VipersVideoQuicktags, 'AddQuicktagsAndFunctions') ); remove_action( 'edit_page_form', array(&$VipersVideoQuicktags, 'AddQuicktagsAndFunctions') ); if ( 1 == $VipersVideoQuicktags->settings['tinymceline'] ) remove_filter( 'mce_buttons', array(&$VipersVideoQuicktags, 'mce_buttons') ); else remove_filter( 'mce_buttons_' . $VipersVideoQuicktags->settings['tinymceline'], array(&$VipersVideoQuicktags, 'mce_buttons') ); // Cforms remove_filter( 'mce_external_plugins', 'cforms_plugin'); remove_filter( 'mce_buttons', 'cforms_button'); return true; } ?>
Le fichier est également disponible au téléchargement ici.
14 Commentaires
Répondre →