[SPIP][PLUGINS] v3.0-->v3.2
[lhc/web/www.git] / www / plugins-dist / vertebres / vertebres_pipelines.php
index 8e1718e..e884aba 100644 (file)
@@ -1,43 +1,79 @@
 <?php
 
-if (!defined('_ECRIRE_INC_VERSION')) return;
+/***************************************************************************\
+ *  SPIP, Systeme de publication pour l'internet                           *
+ *                                                                         *
+ *  Copyright (c) 2001-2016                                                *
+ *  Arnaud Martin, Antoine Pitrou, Philippe Riviere, Emmanuel Saint-James  *
+ *                                                                         *
+ *  Ce programme est un logiciel libre distribue sous licence GNU/GPL.     *
+ *  Pour plus de details voir le fichier COPYING.txt ou l'aide en ligne.   *
+\***************************************************************************/
 
-/*
- * Determiner l'utilisation du vertebreur
- * lorsque l'on passe un appel spip.php?page=table:articles
+/**
+ * Utilisations de pipelines
+ *
+ * @package SPIP\Vertebres\Pipelines
+ **/
+
+if (!defined('_ECRIRE_INC_VERSION')) {
+       return;
+}
+
+if (!defined('_DIR_VERTEBRES')) {
+       /**
+        * Chemin du répertoire stockant les squelettes calculés des vertèbres
+        *
+        * @var string
+        **/
+       define('_DIR_VERTEBRES', _DIR_CACHE . 'vertebres/');
+}
+
+/**
+ * Déterminer l'utilisation du vertebreur
+ *
+ * Lorsqu'on inclut le squelette `prive/vertebres:$table`,
+ * vérifier l'autorisation et créer le squelette spécifique
+ * à la table demandée si on la trouve
+ *
+ * @pipeline styliser
+ * @uses base_trouver_table_dist()
+ * @uses public_vertebrer_dist()
+ *
+ * @param array $flux Données du pipeline
+ * @return array Données du pipeline
  */
 function vertebres_styliser($flux) {
 
        // si pas de squelette trouve,
        // on verifie si on demande une vue de table
        if (!$squelette = $flux['data']
-         AND $fond = $flux['args']['fond']
-         AND strncmp($fond,'prive/vertebres:',16)==0
-         AND $table = substr($fond,16)
-         AND include_spip('inc/autoriser')
-               AND autoriser('webmestre')) {
+               and $fond = $flux['args']['fond']
+               and strncmp($fond, 'prive/vertebres:', 16) == 0
+               and $table = substr($fond, 16)
+               and include_spip('inc/autoriser')
+               and autoriser('webmestre')
+       ) {
 
                $ext = $flux['args']['ext'];
                $connect = $flux['args']['connect'];
-               
+
                // Si pas de squelette regarder si c'est une table
                // et si l'on a la permission de l'afficher
                $trouver_table = charger_fonction('trouver_table', 'base');
-               if ($desc= $trouver_table($table, $connect)) {
+               if ($desc = $trouver_table($table, $connect)) {
                        $fond = $table;
-                       $base = _DIR_TMP . 'table_' . $fond . ".$ext";
-                       if (!file_exists($base)
-                       OR  (defined('_VAR_MODE') AND _VAR_MODE)) {
+                       $base = _DIR_VERTEBRES . 'table_' . $fond . ".$ext";
+                       if (!file_exists($base) or (defined('_VAR_MODE') and _VAR_MODE)) {
+                               sous_repertoire(_DIR_VERTEBRES);
                                $vertebrer = charger_fonction('vertebrer', 'public');
                                ecrire_fichier($base, $vertebrer($desc));
                        }
-                       
+
                        // sauver les changements
-                       $flux['data'] = _DIR_TMP . 'table_' . $fond;
+                       $flux['data'] = _DIR_VERTEBRES . 'table_' . $fond;
                }
        }
-       
+
        return $flux;
 }
-
-?>