Des pipelines permettent de compléter une barre d’outil existante. Ils sont au nombre de 3 :
-
barre_outils_pre_chargersert à ajouter des boutons à une barre. -
barre_outils_chargersert à afficher ou masquer certains boutons -
porte_plume_lien_classe_vers_iconesert à 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 :
- function pp_codes_porte_plume_barre_pre_charger($barres){
- $barre = &$barres['edition'];
- // ...
- return $barres;
- }
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 :
- "id" => "sepCode",
- "separator" => "---------------",
- "display" => true,
- ));
- // groupe code et bouton <code>
- "id" => 'grpCode',
- "name" => _T('pp_codes:outil_inserer_code'),
- "className" => 'outil_code',
- "openWith" => "<code>",
- "closeWith" => "</code>",
- "display" => true,
- ));
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) :
- $barre->cacherTout();
- 'bold','italic',
- 'sepLink','link',
- 'sepCitations', 'quote',
- 'sepCaracteres','guillemets', 'guillemets_simples',
- 'guillemets_de', 'guillemets_de_simples',
- 'guillemets_autres', 'guillemets_autres_simples',
- 'A_grave', 'E_aigu', 'oe', 'OE',
- ));
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 » :
- function pp_loremipsum_porte_plume_lien_classe_vers_icone($flux){
- 'outil_lorem_ipsum' => 'newspaper.png',
- 'outil_lorem_ipsum_big' => 'newspaper_add.png',
- ));
- }