[SPIP][PLUGINS] v3.0-->v3.2
[lhc/web/www.git] / www / plugins-dist / porte_plume / porte_plume_pipelines.php
index c0abe8f..29b72ad 100644 (file)
@@ -1,21 +1,25 @@
 <?php
 /**
  * Déclarations d'autorisations et utilisations de pipelines
- * 
+ *
  * @plugin Porte Plume pour SPIP
  * @license GPL
  * @package SPIP\PortePlume\Pipelines
-**/
+ **/
 
-if (!defined("_ECRIRE_INC_VERSION")) return;
+if (!defined('_ECRIRE_INC_VERSION')) {
+       return;
+}
 
 #define('PORTE_PLUME_PUBLIC', true);
 
 /**
  * Fonction du pipeline autoriser. N'a rien à faire
+ *
  * @pipeline autoriser
  */
-function porte_plume_autoriser(){}
+function porte_plume_autoriser() {
+}
 
 /**
  * Autoriser l'action de previsu
@@ -23,26 +27,26 @@ function porte_plume_autoriser(){}
  * La fermer aux non identifiés si pas de porte plume dans le public
  *
  * @param  string $faire Action demandée
- * @param  string $type  Type d'objet sur lequel appliquer l'action
- * @param  int    $id    Identifiant de l'objet
- * @param  array  $qui   Description de l'auteur demandant l'autorisation
- * @param  array  $opt   Options de cette autorisation
+ * @param  string $type Type d'objet sur lequel appliquer l'action
+ * @param  int $id Identifiant de l'objet
+ * @param  array $qui Description de l'auteur demandant l'autorisation
+ * @param  array $opt Options de cette autorisation
  * @return bool          true s'il a le droit, false sinon
  */
-function autoriser_porteplume_previsualiser_dist($faire, $type, $id, $qui, $opt){
+function autoriser_porteplume_previsualiser_dist($faire, $type, $id, $qui, $opt) {
        return
-               (test_espace_prive() AND autoriser('ecrire'))
-         OR (!test_espace_prive() AND autoriser('afficher_public','porteplume'));
+               (test_espace_prive() and autoriser('ecrire'))
+               or (!test_espace_prive() and autoriser('afficher_public', 'porteplume'));
 }
 
 /**
  * Autoriser le porte plume dans l'espace public ?
  *
  * @param  string $faire Action demandée
- * @param  string $type  Type d'objet sur lequel appliquer l'action
- * @param  int    $id    Identifiant de l'objet
- * @param  array  $qui   Description de l'auteur demandant l'autorisation
- * @param  array  $opt   Options de cette autorisation
+ * @param  string $type Type d'objet sur lequel appliquer l'action
+ * @param  int $id Identifiant de l'objet
+ * @param  array $qui Description de l'auteur demandant l'autorisation
+ * @param  array $opt Options de cette autorisation
  * @return bool          true s'il a le droit, false sinon
  */
 function autoriser_porteplume_afficher_public_dist($faire, $type, $id, $qui, $opt) {
@@ -50,8 +54,9 @@ function autoriser_porteplume_afficher_public_dist($faire, $type, $id, $qui, $op
        if (defined('PORTE_PLUME_PUBLIC')) {
                return PORTE_PLUME_PUBLIC;
        }
+
        return ($GLOBALS['meta']['barre_outils_public'] !== 'non');
-       
+
        // n'autoriser qu'aux identifies :
        # return $qui['id_auteur'] ? PORTE_PLUME_PUBLIC : false;
 }
@@ -66,11 +71,12 @@ function autoriser_porteplume_afficher_public_dist($faire, $type, $id, $qui, $op
  * @param  string $flux Contenu du head
  * @return string Contenu du head
  */
-function porte_plume_insert_head_public($flux){
+function porte_plume_insert_head_public($flux) {
        include_spip('inc/autoriser');
        if (autoriser('afficher_public', 'porteplume')) {
                $flux = porte_plume_inserer_head($flux, $GLOBALS['spip_lang']);
        }
+
        return $flux;
 }
 
@@ -81,33 +87,33 @@ function porte_plume_insert_head_public($flux){
  * @param  string $flux Contenu du head
  * @return string Contenu du head
  */
-function porte_plume_insert_head_prive($flux){
-       $js = find_in_path('javascript/porte_plume_forcer_hauteur.js');
-       $flux = porte_plume_inserer_head($flux, $GLOBALS['spip_lang'], $prive=true)
+function porte_plume_insert_head_prive($flux) {
+       $js = timestamp(find_in_path('javascript/porte_plume_forcer_hauteur.js'));
+       $flux = porte_plume_inserer_head($flux, $GLOBALS['spip_lang'], true)
                . "<script type='text/javascript' src='$js'></script>\n";
-       
+
        return $flux;
 }
 
 /**
  * Ajout des scripts du porte-plume au texte (un head) transmis
  *
- * @param  string $flux  Contenu du head
- * @param  string $lang  Langue en cours d'utilisation
- * @param  bool   $prive Est-ce pour l'espace privé ?
+ * @param  string $flux Contenu du head
+ * @param  string $lang Langue en cours d'utilisation
+ * @param  bool $prive Est-ce pour l'espace privé ?
  * @return string Contenu du head complété
  */
-function porte_plume_inserer_head($flux, $lang, $prive = false){
-       $markitup = find_in_path('javascript/jquery.markitup_pour_spip.js');
-       $js_previsu = find_in_path('javascript/jquery.previsu_spip.js');
-       $js_start = parametre_url(generer_url_public('porte_plume_start.js'), 'lang', $lang);
-       if (defined('_VAR_MODE') AND _VAR_MODE=="recalcul")
-               $js_start = parametre_url($js_start, 'var_mode', 'recalcul');
-
-       $flux .= 
-                  "<script type='text/javascript' src='$markitup'></script>\n"
-               .  "<script type='text/javascript' src='$js_previsu'></script>\n"
-               .  "<script type='text/javascript' src='$js_start'></script>\n";
+function porte_plume_inserer_head($flux, $lang, $prive = false) {
+       $markitup = timestamp(find_in_path('javascript/jquery.markitup_pour_spip.js'));
+       $js_previsu = timestamp(find_in_path('javascript/jquery.previsu_spip.js'));
+
+       $hash = md5(porte_plume_creer_json_markitup());
+       $js_start = produire_fond_statique('javascript/porte_plume_start.js', array('lang' => $lang, 'hash' => $hash));
+
+       $flux .=
+               "<script type='text/javascript' src='$markitup'></script>\n"
+               . "<script type='text/javascript' src='$js_previsu'></script>\n"
+               . "<script type='text/javascript' src='$js_start'></script>\n";
 
        return $flux;
 }
@@ -116,10 +122,10 @@ function porte_plume_inserer_head($flux, $lang, $prive = false){
  * Ajout des CSS du porte-plume au head privé
  *
  * @pipeline header_prive_css
- * @param string $flux  Contenu du head
+ * @param string $flux Contenu du head
  * @return string Contenu du head complété
  */
-function porte_plume_insert_head_prive_css($flux){
+function porte_plume_insert_head_prive_css($flux) {
        return porte_plume_insert_head_css($flux, true);
 }
 
@@ -127,28 +133,30 @@ function porte_plume_insert_head_prive_css($flux){
  * Ajout des CSS du porte-plume au head public
  *
  * Appelé aussi depuis le privé avec $prive à true.
- * 
+ *
  * @pipeline insert_head_css
- * @param string $flux  Contenu du head
- * @param  bool  $prive Est-ce pour l'espace privé ?
+ * @param string $flux Contenu du head
+ * @param  bool $prive Est-ce pour l'espace privé ?
  * @return string Contenu du head complété
  */
-function porte_plume_insert_head_css($flux='', $prive = false){
+function porte_plume_insert_head_css($flux = '', $prive = false) {
        include_spip('inc/autoriser');
        // toujours autoriser pour le prive.
        if ($prive or autoriser('afficher_public', 'porteplume')) {
                if ($prive) {
-                       $cssprive = find_in_path('css/barre_outils_prive.css');
+                       $cssprive = timestamp(find_in_path('css/barre_outils_prive.css'));
                        $flux .= "<link rel='stylesheet' type='text/css' media='all' href='$cssprive' />\n";
                }
-               $css = direction_css(find_in_path('css/barre_outils.css'), lang_dir());
-               $css_icones = generer_url_public('barre_outils_icones.css');
-               if (defined('_VAR_MODE') AND _VAR_MODE=="recalcul")
-                       $css_icones = parametre_url($css_icones, 'var_mode', 'recalcul');
+               $css = timestamp(direction_css(find_in_path('css/barre_outils.css'), lang_dir()));
+
+               $hash = md5(barre_outils_css_icones());
+               $css_icones = produire_fond_statique('css/barre_outils_icones.css', array('hash' => $hash));
+
                $flux
                        .= "<link rel='stylesheet' type='text/css' media='all' href='$css' />\n"
-                       .  "<link rel='stylesheet' type='text/css' media='all' href='$css_icones' />\n";
+                       . "<link rel='stylesheet' type='text/css' media='all' href='$css_icones' />\n";
        }
+
        return $flux;
 }
 
@@ -161,8 +169,9 @@ function porte_plume_insert_head_css($flux='', $prive = false){
  * @return array
  *     Tableaux des metas et valeurs par défaut
  */
-function porte_plume_configurer_liste_metas($metas){
+function porte_plume_configurer_liste_metas($metas) {
        $metas['barre_outils_public'] = 'oui';
+
        return $metas;
 }
 
@@ -174,10 +183,13 @@ function porte_plume_configurer_liste_metas($metas){
  * @param array $flux Données du pipeline
  * @return array      Données du pipeline
  */
-function porte_plume_affiche_milieu($flux){
-       if ($flux['args']['exec']=='configurer_avancees')
-               $flux['data'] .= recuperer_fond('prive/squelettes/inclure/configurer',array('configurer'=>'configurer_porte_plume'));
+function porte_plume_affiche_milieu($flux) {
+       if ($flux['args']['exec'] == 'configurer_avancees') {
+               $flux['data'] .= recuperer_fond(
+                       'prive/squelettes/inclure/configurer',
+                       array('configurer' => 'configurer_porte_plume')
+               );
+       }
 
        return $flux;
 }
-?>