Here With Me

Le blog technique d'Amaury Balmer qui parle de technologies open-source, mais surtout de WordPress !

Compatibilité entre MailPress et les autres… Cforms, Viper Video Quicktags…

| 14 Commentaires

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

14 Commentaires

  1. Et un ticket dans Trac ? :)

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

  3. il y a une options dans cform de protection du tinymce. si on active cette option : plus aucun probleme avec mailpress.

  4. cool !

    merci amaury. je m’en vais intégrer cela comme add on

  5. 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’);
    }
    }
    ?>

  6. désolé, peux tu supprimer ce commentaire et le précédent. merci

  7. J’avais abandonné mailpress a cause de ce genre de soucit :P

  8. 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.. ;)

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

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

  11. tu es sous php4. voir avec ton hébergeur pour passer sous php5

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

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

Répondre à Black Hat Annuler la réponse.

Champs Requis *.