[SPIP] +2.1.12
[velocampus/web/www.git] / www / extensions / porte_plume / porte_plume_start.js_fonctions.php
diff --git a/www/extensions/porte_plume/porte_plume_start.js_fonctions.php b/www/extensions/porte_plume/porte_plume_start.js_fonctions.php
new file mode 100644 (file)
index 0000000..6af9205
--- /dev/null
@@ -0,0 +1,63 @@
+<?php
+
+if (!defined("_ECRIRE_INC_VERSION")) return;
+
+/**
+ * Retourne la definition de la barre markitup designee.
+ * (cette declaration est au format json)
+ * 
+ * Deux pipelines 'porte_plume_pre_charger' et 'porte_plume_charger' 
+ * permettent de recuperer l'objet de classe Barre_outil
+ * avant son export en json pour modifier des elements.
+ * 
+ * @return string : declaration json
+ */
+function porte_plume_creer_json_markitup(){
+       // on recupere l'ensemble des barres d'outils connues
+       include_spip('inc/barre_outils');
+       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 prechargement
+       // charge des nouveaux boutons au besoin
+       // exemples : 
+       //              $barre = &$flux['spip'];
+       //      $barre->ajouterApres('bold',array(params));
+       //      $barre->ajouterAvant('bold',array(params));             
+       // 
+       //      $bold = $barre->get('bold');
+       //      $bold['id'] = 'bold2';
+       //      $barre->ajouterApres('italic',$bold);
+       $barres = pipeline('porte_plume_barre_pre_charger', $barres);
+
+               
+       // 3 chargement
+       //              permet de cacher ou afficher certains boutons au besoin
+       //              exemples :
+       //              $barre = &$flux['spip'];
+       //      $barre->afficher('bold');
+       //      $barre->cacher('bold');
+       //
+       //              $barre->cacherTout();
+       //              $barre->afficher(array('bold','italic','header1'));
+       $barres = pipeline('porte_plume_barre_charger', $barres);
+
+
+       // 4 on cree les jsons
+       $json = "";
+       foreach($barres as $set=>$barre) {
+               $json .= $barre->creer_json();
+       }
+       return $json;
+}
+
+
+?>