You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 

85 lines
2.1 KiB

<?php
/**
* Déclarations de fonctions servant à la construction du javascript
*
* @plugin Porte Plume pour SPIP
* @license GPL
* @package SPIP\PortePlume\Javascript
**/
if (!defined("_ECRIRE_INC_VERSION")) return;
/**
* Retourne la définition de la barre markitup désignée.
* (cette déclaration est au format json)
*
* Deux pipelines 'porte_plume_pre_charger' et 'porte_plume_charger'
* permettent de récuperer l'objet de classe Barre_outil
* avant son export en json pour modifier des elements.
*
* @pipeline_appel porte_plume_barre_pre_charger
* Charge des nouveaux boutons au besoin
* @pipeline_appel porte_plume_barre_charger
* Affiche ou cache certains boutons
*
* @return string Déclaration json
*/
function porte_plume_creer_json_markitup(){
// on recupere l'ensemble des barres d'outils connues
include_spip('porte_plume_fonctions');
if (!$sets = barre_outils_liste()) {
return null;
}
// 1) On initialise tous les jeux de barres
$barres = array();
foreach($sets as $set) {
if (($barre = barre_outils_initialiser($set)) AND is_object($barre))
$barres[$set] = $barre;
}
// 2) Préchargement
/**
* Charger des nouveaux boutons au besoin
*
* @example
* $barre = &$flux['spip'];
* $barre->ajouterApres('bold',array(params));
* $barre->ajouterAvant('bold',array(params));
*
* $bold = $barre->get('bold');
* $bold['id'] = 'bold2';
* $barre->ajouterApres('italic',$bold);
* @pipeline_appel porte_plume_barre_pre_charger
*/
$barres = pipeline('porte_plume_barre_pre_charger', $barres);
// 3) Chargement
/**
* Cacher ou afficher certains boutons au besoin
*
* @example
* $barre = &$flux['spip'];
* $barre->afficher('bold');
* $barre->cacher('bold');
*
* $barre->cacherTout();
* $barre->afficher(array('bold','italic','header1'));
* @pipeline_appel porte_plume_barre_charger
*/
$barres = pipeline('porte_plume_barre_charger', $barres);
// 4 On crée les jsons
$json = "";
foreach($barres as $set=>$barre) {
$json .= $barre->creer_json();
}
return $json;
}
?>