source: spip-zone/_plugins_/compositions/formulaires/editer_composition_objet.php @ 52816

Last change on this file since 52816 was 52816, checked in by kent1@…, 8 years ago

if (!defined("_ECRIRE_INC_VERSION")) return; sur tout fichier PHP pour sécurité future principalement

File size: 3.6 KB
Line 
1<?php
2/*
3 * Plugin Compositions
4 * (c) 2007-2009 Cedric Morin
5 * Distribue sous licence GPL
6 *
7 */
8
9if (!defined("_ECRIRE_INC_VERSION")) return;
10
11include_spip('inc/compositions');
12/**
13 * Chargement des donnees du formulaire
14 *
15 * @param string $type
16 * @param int $id
17 * @return array
18 */
19function formulaires_editer_composition_objet_charger($type,$id,$hide_form=false){
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        $valeurs['_hide'] = (($hide_form AND is_null(_request('composition')))?' ':'');
30
31        $row = sql_fetsel('composition,composition_lock',$table_objet_sql,"$id_table_objet=".intval($id));
32        $valeurs['composition'] = $row['composition'];
33        $valeurs['composition_lock'] = $row['composition_lock'];
34       
35        if ($type=='rubrique')
36                $valeurs['composition_branche_lock'] = sql_getfetsel('composition_branche_lock',$table_objet_sql,"$id_table_objet=".intval($id));
37
38        $trouver_table = charger_fonction('trouver_table', 'base');
39        $desc = $trouver_table($table_objet_sql);
40        if (isset($desc['field']['id_rubrique'])) {
41                $_id_rubrique = ($type == 'rubrique') ? 'id_parent' : 'id_rubrique';
42                $id_rubrique = sql_getfetsel($_id_rubrique,$table_objet_sql,"$id_table_objet=".intval($id),'','','','',$serveur);
43                $valeurs['composition_heritee'] = compositions_heriter($type, $id_rubrique);
44                $valeurs['verrou_branche'] = compositions_verrou_branche($id_rubrique);
45        } else {
46                $valeurs['composition_heritee'] = '';
47                $valeurs['verrou_branche'] = false;
48        }
49        $valeurs['composition_verrouillee'] = compositions_verrouiller($type, $id);
50
51        $valeurs['compositions'] = compositions_lister_disponibles($type);
52        $valeurs['_compositions'] = reset($valeurs['compositions']); // on ne regarde qu'un seul type
53        if (is_array($valeurs['_compositions']) AND !isset($valeurs['_compositions'][''])){
54                $valeurs['_compositions'] = array_merge(
55                        array(''=>array('nom'=>_T('compositions:composition_defaut'),'description'=>'','icon'=>'','configuration'=>'')),
56                        $valeurs['_compositions']
57                );
58        }
59       
60        // Si on h�rite d'une composition
61        // On modifie le tableau des compositions
62        if ($valeurs['composition_heritee'] AND $valeurs['composition_heritee'] != '-') {
63                $compo_defaut = $valeurs['_compositions'][$valeurs['composition_heritee']];
64                $compo_vide = $valeurs['_compositions'][''];
65                unset($valeurs['_compositions'][$valeurs['composition_heritee']]);
66                unset($valeurs['_compositions']['']);
67                $valeurs['_compositions'] = array_merge(
68                        array('' => $compo_defaut,'-' => $compo_vide),
69                        $valeurs['_compositions']
70                );
71        }
72       
73        $valeurs['_hidden'] = "<input type='hidden' name='$id_table_objet' value='$id' />";
74
75        if (!autoriser('styliser',$type,$id))
76                $valeurs['editable'] = false;
77
78        return $valeurs;
79}
80
81/**
82 * Traitement
83 *
84 * @param string $type
85 * @param int $id
86 * @return array
87 */
88function formulaires_editer_composition_objet_traiter($type,$id){
89        $valeurs = array();
90        $table_objet_sql = table_objet_sql($type);
91        $id_table_objet = id_table_objet($type);
92        $update = array();
93
94        if (!is_null($p = _request('composition')))
95                $update['composition'] = $p;
96
97        if (autoriser('webmestre'))
98                $update['composition_lock'] = _request('composition_lock')?1:0;
99               
100        if (autoriser('webmestre') AND $type == 'rubrique')
101                $update['composition_branche_lock'] = _request('composition_branche_lock')?1:0;
102
103        sql_updateq($table_objet_sql,$update,"$id_table_objet=".intval($id));
104
105        // mettre a jour la liste des types de compo en cache
106        compositions_cacher();
107        return array('message_ok'=>'','editable'=>true);
108}
Note: See TracBrowser for help on using the repository browser.