[SPIP] ~2.1.12 -->2.1.25
[velocampus/web/www.git] / www / ecrire / exec / fond.php
1 <?php
2
3 /***************************************************************************\
4 * SPIP, Systeme de publication pour l'internet *
5 * *
6 * Copyright (c) 2001-2014 *
7 * Arnaud Martin, Antoine Pitrou, Philippe Riviere, Emmanuel Saint-James *
8 * *
9 * Ce programme est un logiciel libre distribue sous licence GNU/GPL. *
10 * Pour plus de details voir le fichier COPYING.txt ou l'aide en ligne. *
11 \***************************************************************************/
12
13 if (!defined('_ECRIRE_INC_VERSION')) return;
14
15 /**
16 * Un exec generique qui utilise le fond homonyme de l'exec demande
17 * dans l'url
18 */
19 function exec_fond_dist(){
20
21 exec_fond_args(_request('exec'));
22 }
23
24 function exec_fond_args($exec){
25
26 $fond = trim(recuperer_fond("prive/exec/$exec", $_REQUEST));
27 // pas d'autorisation
28 // c'est au fond de les gerer avec #AUTORISER,
29 // et de renvoyer un fond vide le cas echeant
30 // qui declenchera un minipres acces interdit
31 if (!$fond) {
32 include_spip('inc/minipres');
33 echo minipres();
34 } else {
35
36 $titre = "exec_$exec";
37 $navigation = "";
38 $extra = "";
39
40 // recuperer le titre dans le premier hn de la page
41 if (preg_match(",<h[1-6][^>]*>(.+)</h[1-6]>,Uims",$fond,$match)){
42 $titre = $match[1];
43 }
44
45 // recuperer la hierarchie (au-dessus du contenu)
46 if (preg_match(",<!--#hierarchie-->.+<!--/#hierarchie-->,Uims",$fond,$match)){
47 $hierarchie = $match[0];
48 $fond = str_replace($hierarchie,"",$fond);
49 }
50
51 // recuperer la navigation (colonne de gauche)
52 if (preg_match(",<!--#navigation-->.+<!--/#navigation-->,Uims",$fond,$match)){
53 $navigation = $match[0];
54 $fond = str_replace($navigation,"",$fond);
55 }
56
57 // recuperer les extras (colonne de droite)
58 if (preg_match(",<!--#extra-->.+<!--/#extra-->,Uims",$fond,$match)){
59 $extra = $match[0];
60 $fond = str_replace($extra,"",$fond);
61 }
62
63 include_spip('inc/presentation'); // alleger les inclusions avec un inc/presentation_mini
64 $commencer_page = charger_fonction('commencer_page','inc');
65 echo $commencer_page($titre);
66
67 if ($hierarchie){
68 echo debut_grand_cadre(true);
69 echo pipeline(
70 'affiche_hierarchie',
71 array(
72 'args' => array(
73 'exec' => $exec
74 ),
75 'data' => $hierarchie
76 )
77 );
78 echo fin_grand_cadre(true);
79 }
80
81 echo debut_gauche("exec_$exec",true);
82 $contexte = array('exec'=>$exec);
83 $objet = objet_type(preg_replace(",_edit$,","",$exec));
84 $id = id_table_objet($objet);
85 if (_request($id))
86 $contexte[$id] = _request($id);
87
88 echo $navigation;
89 echo pipeline('affiche_gauche',array('args'=>$contexte,'data'=>''));
90
91 echo creer_colonne_droite("exec_$exec",true);
92 echo $extra;
93 echo pipeline('affiche_droite',array('args'=>$contexte,'data'=>''));
94
95 echo debut_droite("exec_$exec",true);
96 echo $fond;
97 echo pipeline('affiche_milieu',array('args'=>$contexte,'data'=>''));
98
99 echo fin_gauche(),fin_page();
100 }
101 }
102
103 ?>