Accueil du site > Extensions > Porte Plume > Compléter une barre d’outil

Compléter une barre d’outil

Des pipelines permettent de compléter une barre d’outil existante. Ils sont au nombre de 3 :

  • barre_outils_pre_charger sert à ajouter des boutons à une barre.
  • barre_outils_charger sert à afficher ou masquer certains boutons
  • porte_plume_lien_classe_vers_icone sert à compléter les relations classes css / icone

barre_outils_pre_charger

Il reçoit un tableau avec comme clé les nom de barres, et comme valeur l’instance de l’objet Barre_outils de la barre en question.

Dans ce pipeline, on récupère donc une barre d’outil comme cela en indiquant son nom :

  1. function pp_codes_porte_plume_barre_pre_charger($barres){
  2.     $barre = &$barres['edition'];
  3.     // ...
  4.     return $barres;
  5. }

Une fois que l’on a sélectionné la barre sur laquelle on veut agir, il suffit d’appeler les fonctions prévues. Deux seront utiles, voire 3 :

  • $barre->ajouterAvant($id, $description),
  • $barre->ajouterApres($id, $description),
  • $description = $barre->get($id).

Ca se passe de commentaire, c’est assez simple :

  1. $barre->ajouterApres('grpCaracteres', array(
  2.     "id" => "sepCode",
  3.     "separator" => "---------------",
  4.     "display"   => true,
  5. ));
  6. $barre->ajouterApres('sepCode', array(
  7.     // groupe code et bouton <code>
  8.     "id"          => 'grpCode',
  9.     "name"        => _T('pp_codes:outil_inserer_code'),
  10.     "className"   => 'outil_code',
  11.     "openWith" => "<code>",
  12.     "closeWith" => "</code>",      
  13.     "display"     => true,
  14. ));

barre_outils_charger

Ce pipeline sert pour cacher ou afficher les boutons créés (pour modifier la configuration par défaut donc). Seront utiles 4 fonctions :

  • $barre->afficher($id),
  • $barre->afficher(array($ids)),
  • $barre->afficherTout(),
  • $barre->cacher($id),
  • $barre->cacher(array($ids)),
  • $barre->cacherTout().

Exemple récupéré de la barre « forum » (qui ne fait que cacher certains boutons de la barre d’édition) :

  1. $barre->cacherTout();
  2. $barre->afficher(array(
  3.     'bold','italic',
  4.     'sepLink','link',
  5.     'sepCitations', 'quote',
  6.     'sepCaracteres','guillemets', 'guillemets_simples',
  7.        'guillemets_de', 'guillemets_de_simples',
  8.        'guillemets_autres', 'guillemets_autres_simples',
  9.        'A_grave', 'E_aigu', 'oe', 'OE',
  10. ));

porte_plume_lien_classe_vers_icone

Ce pipeline complète les relations entre les classes CSS et les icones du répertoire icones_barre/, comme ici dans l’extension « lorem ipsum » :

  1. function pp_loremipsum_porte_plume_lien_classe_vers_icone($flux){
  2.     return array_merge($flux, array(   
  3.         'outil_lorem_ipsum' => 'newspaper.png',
  4.         'outil_lorem_ipsum_big' => 'newspaper_add.png',
  5.     ));
  6. }