[SPIP Zone] ! plugin "Porte plume"

Bonjour à tous,

Je viens de déposer un nouveau plugin, nommé "Porte Plume" dans le dossier _stable_ . Il offre une barre d'outil en jquery pour les texarea de SPIP en utilisant un fork de Markitup 1.1.4 (http://markitup.jaysalvat.com/)

Ce plugin est développé pour SPIP 2 et devrait permettre d'être suffisemment extensible pour tout le monde, du moins je l'espère !

4 pipelines sont proposés :

- porte_plume_barre_declarer, permet d'ajouter des noms de barres d'outils à charger... ajouter 'spip_super' dans le tableau executera ensuite la fonction "barre_outils_spip_super() qui doit retourner une instance de la classe "Barre_outil".

monplug_porte_plume_barre_declarer($flux){
  $flux[] = 'spip_super';
  return $flux;
}
function barre_outils_spip_super(){
  include_spip('inc/barre_outils');
  $set = new Barre_outils(array(
    'nameSpace' => 'spip_super',
    ...
    ... toutes les declarations de la barre et des icones
    ... cf inc/barre_outils_params.php
    ...
  ));
  return $set;
}

- porte_plume_barre_pre_charger, permet d'ajouter des boutons à une barre déclarée. Un exemple pourrait être :

monplug_porte_plume_barre_pre_charger($flux){
  $barre = &$flux['spip_super'];

  $barre->ajouterApres('bold', array(
    "id" => "couleur_jaune",
    "name" => _T('barre_outils:yellow'),
    "openWith" => '[color=yellow]',
    "closeWith" => '[/color]',
    "className" => "outil_couleur",
    "display" => true,
  ));

  $barre->ajouterAvant('italic', array(params...));
  
  return $flux;
}

- porte_plume_barre_charger, permet de cacher ou afficher les boutons existants. Par exemple :

monplug_porte_plume_barre_charger($flux){
  $barre = &$flux['spip_super'];

  $barre->cacher('bold');
  $barre->afficher(array('preview', 'clean'));
  
  return $flux;
}

- porte_plume_lien_classe_vers_icone, lie une classe css à une icone particulière, se trouvant dans le dossier /icones_barre ... une css étant alors créé en fonction de ces paramètres. Exemple :

monplug_porte_plume_lien_classe_vers_icone($flux){
  return array_merge($flux, array(
    'outil_couleur' => 'color_swatch.png',
  ));
}

Bien à tous,
Merci de vos retours et de vos tests.

--
MM.