[SPIP] +2.1.12
[velocampus/web/www.git] / www / plugins / auto / noiZetier / formulaires / editer_composition_heritages_noizetier.php
diff --git a/www/plugins/auto/noiZetier/formulaires/editer_composition_heritages_noizetier.php b/www/plugins/auto/noiZetier/formulaires/editer_composition_heritages_noizetier.php
new file mode 100644 (file)
index 0000000..0d7b16f
--- /dev/null
@@ -0,0 +1,68 @@
+<?php
+
+// Sécurité
+if (!defined("_ECRIRE_INC_VERSION")) return;
+
+include_spip('inc/editer');
+
+function heritiers(){
+       // Pour le moment (à reprendre en SPIP 3.0), on définit en dur les types pouvant recevoir un héritage
+       return array('article','rubrique','breve','site');
+};
+
+function formulaires_editer_composition_heritages_noizetier_charger($id){
+       include_spip('inc/autoriser');
+       $contexte = array();
+       
+       $type = noizetier_page_type($id);
+       $compo = noizetier_page_composition($id);
+       // Seulement si on a le droit de configurer le noizetier
+       // et qu'il s'agit d'une composition de rubrique
+       if (autoriser('configurer', 'noizetier') AND $type AND $type=='rubrique') {
+               $contexte['editable'] = true;
+       } else {
+               $contexte['message_erreur'] = _T('spip:erreur');
+       }
+
+       // Si on peut bien éditer la composition
+       if ($contexte['editable']){
+               $contexte['_noizetier_compositions'] = unserialize($GLOBALS['meta']['noizetier_compositions']);
+               $contexte['_heritiers'] = heritiers();
+               foreach($contexte['_heritiers'] as $t)
+                       if (isset($contexte['_noizetier_compositions']['rubrique'][$compo]['branche'][$t]))
+                               $contexte['heritage-'.$t] = $contexte['_noizetier_compositions']['rubrique'][$compo]['branche'][$t];
+       }
+       else{
+               $contexte['editable'] = false;
+       }
+
+       return $contexte;
+}
+
+function formulaires_editer_composition_heritages_noizetier_traiter($id){
+       include_spip('inc/autoriser');
+       include_spip('inc/noizetier');
+       $retours = array();
+       $type = noizetier_page_type($id);
+       $compo = noizetier_page_composition($id);
+       if (autoriser('configurer', 'noizetier') AND $type AND $type=='rubrique') {
+               $noizetier_compositions = unserialize($GLOBALS['meta']['noizetier_compositions']);
+               $branche = array();
+               foreach(heritiers() as $t)
+                       if ($h = _request('heritage-'.$t))
+                               $branche[$t] = $h;
+               if (count($branche)>0)
+                       $noizetier_compositions['rubrique'][$compo]['branche'] = $branche;
+               else
+                       unset($noizetier_compositions['rubrique'][$compo]['branche']);
+               ecrire_meta('noizetier_compositions',serialize($noizetier_compositions));
+               $retours['message_ok'] = _T('noizetier:formulaire_composition_mise_a_jour');
+               
+               //Si on est dans l'espace privé, on redirige vers la liste des compos
+               if (_request('exec') == 'noizetier_composition_heritages')
+                       $retours['redirect'] = generer_url_ecrire('noizetier_compositions');
+       }
+       return $retours;
+}
+
+?>