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: http://www.herewithme.fr Description: Fix TinyMCE for MailPress with Viper Video Quicktags and Cforms Author: Amaury Balmer Version: 0.1 Author URI: http://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.
29 octobre 2009 à 15:02
Et un ticket dans Trac ? :)
29 octobre 2009 à 15:03
Faudrait :)
30 octobre 2009 à 11:00
Perso, je n’arrive même pas à l’installer , mailpress.
Quand je l’installe j’ai ce message
Parse error: syntax error, unexpected T_STRING, expecting
T_OLD_FUNCTION or T_FUNCTION or T_VAR or '}' in /homez.157/mysite/www/
wp-content/plugins/mailpress/MailPress.php on line 95
et quand je passe en php5 via htaccess j’ai celui-là
Catchable fatal error: Object of class stdClass could not be converted
to string in /homez.157/mysite/www/wp-includes/classes.php on line 273
2 novembre 2009 à 17:55
il y a une options dans cform de protection du tinymce. si on active cette option : plus aucun probleme avec mailpress.
3 novembre 2009 à 11:39
cool !
merci amaury. je m’en vais intégrer cela comme add on
3 novembre 2009 à 14:50
settings[‘tinymceline’] ) ? ‘mce_buttons’ : ‘mce_buttons_’ . $VipersVideoQuicktags->settings[‘tinymceline’];
remove_filter( $Viper_mce_buttons, array(&$VipersVideoQuicktags, ‘mce_buttons’) );
remove_filter( ‘mce_external_plugins’, array(&$VipersVideoQuicktags, ‘mce_external_plugins’) );
remove_filter( ‘tiny_mce_version’, array(&$VipersVideoQuicktags, ‘tiny_mce_version’) );
remove_action( ‘edit_form_advanced’, array(&$VipersVideoQuicktags, ‘AddQuicktagsAndFunctions’) );
remove_action( ‘edit_page_form’, array(&$VipersVideoQuicktags, ‘AddQuicktagsAndFunctions’) );
// Cforms
remove_filter( ‘mce_buttons’, ‘cforms_button’);
remove_filter( ‘mce_external_plugins’, ‘cforms_plugin’);
}
}
?>
3 novembre 2009 à 14:51
désolé, peux tu supprimer ce commentaire et le précédent. merci
1 décembre 2009 à 19:05
J’avais abandonné mailpress a cause de ce genre de soucit :P
3 janvier 2010 à 13:44
En effet, l’activation de Cform débranche le tinyMCE dans l’editeur MailPress… Par contre, le Kimili Flash Embeder, lui ne pose aucun souci, le bouton apparait bien dans tous les éditeurs.. Ne faudrait’il pas simplement voir comment kimili impémente son bouton et simplement faire pareil?
Je vais tester avec NextGen, car c’est important.. ;)
3 janvier 2010 à 13:51
Et bien voilà!! NextGen lui, comme Kimili, ne casse pas le TinyMCE, tout va bien et leurs boutons sont présents partout, en page, post et MailPress.. donc, à mon avis, le responsable n’est ni MailPress ni WordPress, mais bien Cforms et les plugins qui implémentent leur bouton de manière sans doute pas propre ou intrusive..
Faudrait passer un peu de temps a comparer les PHP qui gere le Tiny de ces plugins et voir pk certains ne font pas les choses proprement.
21 janvier 2010 à 19:52
Bonsoir,
Je rencontre ce même type d’erreur :
Parse error: syntax error, unexpected T_STRING, expecting
T_OLD_FUNCTION or T_FUNCTION or T_VAR or ‘}’ in /homez.157/mysite/www/
wp-content/plugins/mailpress/MailPress.php on line 95
et pour le site concerné CForms n’est pas activé.
Merci pour votre aide.
22 janvier 2010 à 00:49
tu es sous php4. voir avec ton hébergeur pour passer sous php5
5 mai 2010 à 13:02
Il y a une case dans les options du cforms :
« A cocher si vous rencontrez des erreurs avec TinyMCE causée par d’autres extensions. »
Cela résoud les soucis avec Mailpress
4 octobre 2010 à 09:57
Pas évident, j’ai aussi le souci, c’est de plus en plus délicat je trouve et pénible de jongler avec tout les filtres qui se multiplie.