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.