[PLUGINS] +set de base
[lhc/web/www.git] / www / plugins / compositions_v3 / formulaires / editer_composition_objet.php
1 <?php
2 /*
3 * Plugin Compositions
4 * (c) 2007-2009 Cedric Morin
5 * Distribue sous licence GPL
6 *
7 */
8
9 if (!defined("_ECRIRE_INC_VERSION")) return;
10
11 include_spip('inc/compositions');
12 /**
13 * Chargement des donnees du formulaire
14 *
15 * @param string $type
16 * @param int $id
17 * @return array
18 */
19 function formulaires_editer_composition_objet_charger($type,$id){
20 $valeurs = array();
21 $table_objet_sql = table_objet_sql($type);
22 $id_table_objet = id_table_objet($type);
23 $valeurs[$id_table_objet] = intval($id);
24
25 $valeurs['editable'] = true;
26 $valeurs['id'] = "$type-$id";
27 $valeurs['id_objet'] = $id;
28 $valeurs['objet'] = $type;
29
30 $row = sql_fetsel('composition,composition_lock',$table_objet_sql,"$id_table_objet=".intval($id));
31 $valeurs['composition'] = $row['composition'];
32 $valeurs['composition_lock'] = $row['composition_lock'];
33
34 if ($type=='rubrique')
35 $valeurs['composition_branche_lock'] = sql_getfetsel('composition_branche_lock',$table_objet_sql,"$id_table_objet=".intval($id));
36
37 $valeurs['composition_heritee'] = compositions_heriter($type, $id);
38 $valeurs['verrou_branche'] = compositions_verrou_branche($type, $id);
39 $valeurs['verrou_branche'] = false;
40 $valeurs['composition_verrouillee'] = compositions_verrouiller($type, $id);
41
42 $valeurs['compositions'] = compositions_lister_disponibles($type);
43 $valeurs['_compositions'] = reset($valeurs['compositions']); // on ne regarde qu'un seul type
44 if (is_array($valeurs['_compositions']) AND !isset($valeurs['_compositions'][''])){
45 $valeurs['_compositions'] = array_merge(
46 array(''=>array('nom'=>_T('compositions:composition_defaut'),'description'=>'','icon'=>'','configuration'=>'')),
47 $valeurs['_compositions']
48 );
49 }
50
51 // Si on herite d'une composition
52 // On modifie le tableau des compositions
53 if ($valeurs['composition_heritee'] AND $valeurs['composition_heritee'] != '-') {
54 $compo_defaut = $valeurs['_compositions'][$valeurs['composition_heritee']];
55 $compo_vide = $valeurs['_compositions'][''];
56 unset($valeurs['_compositions'][$valeurs['composition_heritee']]);
57 unset($valeurs['_compositions']['']);
58 $valeurs['_compositions'] = array_merge(
59 array('' => $compo_defaut,'-' => $compo_vide),
60 $valeurs['_compositions']
61 );
62 }
63
64 $valeurs['_hidden'] = "<input type='hidden' name='$id_table_objet' value='$id' />";
65
66 if (!autoriser('styliser',$type,$id))
67 $valeurs['editable'] = false;
68
69 return $valeurs;
70 }
71
72 /**
73 * Traitement
74 *
75 * @param string $type
76 * @param int $id
77 * @return array
78 */
79 function formulaires_editer_composition_objet_traiter($type,$id){
80 $valeurs = array();
81 $table_objet_sql = table_objet_sql($type);
82 $id_table_objet = id_table_objet($type);
83 $update = array();
84
85 if (!is_null($p = _request('composition')))
86 $update['composition'] = $p;
87
88 if (autoriser('webmestre'))
89 $update['composition_lock'] = _request('composition_lock')?1:0;
90
91 if (autoriser('webmestre') AND $type == 'rubrique')
92 $update['composition_branche_lock'] = _request('composition_branche_lock')?1:0;
93
94 sql_updateq($table_objet_sql,$update,"$id_table_objet=".intval($id));
95
96 // mettre a jour la liste des types de compo en cache
97 compositions_cacher();
98 return array('message_ok'=>'','editable'=>true);
99 }