--- /dev/null
+<?php\r
+/*\r
+ * Plugin Compositions\r
+ * (c) 2007-2009 Cedric Morin\r
+ * Distribue sous licence GPL\r
+ *\r
+ */\r
+\r
+if (!defined("_ECRIRE_INC_VERSION")) return;\r
+\r
+// lister les exec ou apparait l'interface de composition et le type correspondant\r
+// peut etre etendu par des plugins\r
+$GLOBALS['compositions_exec']['naviguer'] = 'rubrique';\r
+$GLOBALS['compositions_exec']['articles'] = 'article';\r
+$GLOBALS['compositions_exec']['mots_edit'] = 'mot';\r
+$GLOBALS['compositions_exec']['sites'] = 'site';\r
+$GLOBALS['compositions_exec']['breves_voir'] = 'breve';\r
+$GLOBALS['compositions_exec']['auteur_infos'] = 'auteur';\r
+\r
+/**\r
+ * Fonction vide pour le pipeline homonyme\r
+ */\r
+function compositions_autoriser(){}\r
+\r
+/**\r
+ * Autorisation de modifier la composition\r
+ *\r
+ * @param <type> $faire\r
+ * @param <type> $type\r
+ * @param <type> $id\r
+ * @param <type> $qui\r
+ * @param <type> $opt\r
+ * @return <type>\r
+ */\r
+function autoriser_styliser_dist($faire, $type='', $id=0, $qui = NULL, $opt = NULL){\r
+ include_spip('compositions_fonctions');\r
+ if (!autoriser('modifier',$type,$id,$qui,$opt))\r
+ return false;\r
+ if (compositions_verrouiller($type, $id) AND !autoriser('webmestre'))\r
+ return false;\r
+ return true;\r
+}\r
+\r
+\r
+/**\r
+ * Pipeline styliser pour definir le fond d'un objet en fonction de sa composition\r
+ *\r
+ * @param array $flux\r
+ * @return array\r
+ */\r
+function compositions_styliser($flux){\r
+ include_spip('compositions_fonctions');\r
+ if (compositions_styliser_auto()){\r
+ if (!defined('_DIR_PLUGIN_Z')){\r
+ $type = $flux['args']['fond']; // on fait l'approximation fond=type\r
+ // si le type n'est pas l'objet d'une composition, ne rien faire\r
+ if (in_array($type,compositions_types())){\r
+ $contexte = isset($flux['args']['contexte'])?$flux['args']['contexte']:$GLOBALS['contexte'];\r
+ $serveur = $flux['args']['connect'];\r
+\r
+ $ext = $flux['args']['ext'];\r
+ $_id_table = id_table_objet($type);\r
+\r
+ if ($id = $contexte[$_id_table] AND $composition = compositions_determiner($type,$id,$serveur)){\r
+ if ($fond = compositions_selectionner($composition, $type, '', $ext, true, "")){\r
+ $flux['data'] = substr($fond, 0, - strlen(".$ext"));\r
+ }\r
+ }\r
+ }\r
+ }\r
+ else {\r
+ $contexte = isset($flux['args']['contexte'])?$flux['args']['contexte']:$GLOBALS['contexte'];\r
+ if (!test_espace_prive()\r
+ AND preg_match(',(^|/)contenu/([^/]*)$,i',$flux['args']['fond'],$regs)\r
+ AND $type = $regs[2]\r
+ AND in_array($type,compositions_types())){\r
+ $serveur = $flux['args']['connect'];\r
+\r
+ $ext = $flux['args']['ext'];\r
+ $_id_table = id_table_objet($type);\r
+\r
+ if ($id = $contexte[$_id_table] AND $composition = compositions_determiner($type,$id,$serveur)){\r
+ if ($fond = compositions_selectionner($composition, $type, '', $ext, true, "")){\r
+ $flux['data'] = substr($fond, 0, - strlen(".$ext"));\r
+ }\r
+ }\r
+ }\r
+ }\r
+ }\r
+ return $flux;\r
+}\r
+\r
+/**\r
+ * Affichage du formulaire de selection de la composition\r
+ *\r
+ * @param array $flux\r
+ * @return array\r
+ */\r
+function compositions_affiche_milieu($flux){\r
+ $exec = $flux['args']['exec'];\r
+ if (isset($GLOBALS['compositions_exec'][$exec])){\r
+ $type = $GLOBALS['compositions_exec'][$exec];\r
+ $_id = id_table_objet($type);\r
+ if ($id = $flux['args'][$_id]) {\r
+ $config = unserialize($GLOBALS['meta']['compositions']);\r
+ $aut = autoriser('styliser',$type,$id);\r
+ include_spip('compositions_fonctions');\r
+ if (($config['masquer_formulaire'] != 'oui' OR $aut) \r
+ AND (is_array(reset(compositions_lister_disponibles($type))) OR ($type == 'rubrique' AND $config['tout_verrouiller'] != 'oui'))\r
+ ) {\r
+ $deplie = $aut ? false : -1;\r
+ $ids = 'formulaire_editer_composition_objet-' . "$type-$id";\r
+ $bouton = bouton_block_depliable(strtoupper(_T('compositions:composition')), $deplie, $ids);\r
+ $flux['data'] .= debut_cadre('e', chemin('compositions-24.png','images/'),'',$bouton, '', '', true);\r
+ $flux['data'] .= recuperer_fond('prive/editer/compositions', array_merge($_GET, array('type'=>$type,'id'=>$id)));\r
+ $flux['data'] .= fin_cadre();\r
+ }\r
+ }\r
+ }\r
+\r
+ return $flux;\r
+}\r
+\r
+function compositions_compositions_lister_disponibles($flux){return $flux;}\r
+\r
+?>
\ No newline at end of file