source: spip-zone/_plugins_/legendes/trunk/action/editer_legende.php @ 114710

Last change on this file since 114710 was 114710, checked in by bruno@…, 5 months ago

pas de fermeture php + simple quotes sur le test _ECRIRE_INC_VERSION

File size: 3.6 KB
Line 
1<?php
2/**
3 * Plugin Canevas pour Spip 2.0
4 * Licence GPL
5 *
6 *
7 */
8
9if (!defined('_ECRIRE_INC_VERSION')) return;
10
11function action_editer_legende_dist(){
12
13        $securiser_action = charger_fonction('securiser_action', 'inc');
14        $arg = $securiser_action();
15
16        // si id_legende n'est pas un nombre, c'est une creation
17        if (!$id_legende = intval($arg)) {
18                $id_document = _request('id_document');
19                if (!$id_legende = legendes_action_insert_legende($id_document))
20                        return array(false,_L('echec'));
21        }
22       
23        $err = action_legende_set($id_legende);
24        return array($id_legende,$err);
25}
26
27function action_legende_set($id_legende){
28        $err = '';
29
30        $c = array();
31        $c['posy'] = _request('top');
32        $c['posx'] = _request('left');
33        $c['width'] = _request('width');
34        $c['height'] = _request('height');
35        $c['texte'] = _request('texte');
36        $c['id_document'] = _request('id_document');
37
38        include_spip('inc/modifier');
39
40        $err .= legendes_action_revision_legende($id_legende, $c);
41
42        return $err;
43}
44
45// creer une nouvelle legende
46function legendes_action_insert_legende($id_document){
47        include_spip('inc/autoriser');
48        if (!autoriser('creerdans','legende',$id_document))
49                return false;
50       
51        $champs = array(
52                'id_document' => $id_document,
53                'id_auteur' => $GLOBALS['visiteur_session']['id_auteur'],
54                'date' => date('Y-m-d H:i:s'));
55
56        // Envoyer aux plugins
57        $champs = pipeline('pre_insertion',
58                array(
59                        'args' => array(
60                        'table' => 'spip_legendes',
61                        ),
62                        'data' => $champs
63                )
64        );
65
66        $id_legende = sql_insertq("spip_legendes", $champs);
67
68        if (!$id_legende){
69                spip_log("legendes action insert legende : impossible d'ajouter une legende");
70                return false;
71        } 
72        return $id_legende;     
73}
74
75// enregistrer une revision de legende
76function legendes_action_revision_legende ($id_legende, $c=false) {
77       
78        include_spip('inc/autoriser');
79
80        if (!autoriser('modifier', 'legende', $id_legende)){
81                spip_log("editer_legende $id_legende refus " . join(' ', $c));
82                return false;
83        }
84        modifier_contenu('legende', $id_legende, array(
85                'invalideur' => "id='id_legende/$id_legende'"
86        ), $c);
87       
88        return ''; // pas d'erreur
89}
90
91// supprimer une legende
92function legendes_action_supprime_legende($id_legende){
93        include_spip('inc/autoriser');
94        if (!autoriser('supprimer','legende',$id_legende))
95                return false;
96               
97        if (intval($id_legende)){
98                sql_delete("spip_legendes", "id_legende=".intval($id_legende));
99        }
100        $id_legende = 0;
101        return $id_legende;
102}
103
104// tourner une legende
105function legendes_action_tourner_legende($id_legende,$angle){
106       
107        // recuperer les infos dela note à tourner
108        $legende = sql_fetsel('*','spip_legendes','id_legende='.intval($id_legende));
109        $c = array();
110        foreach($legende as $key=>$val)
111                $c[$key] = $val;
112        $n = array();
113       
114        // recuperer les infos de l'image associee
115        $image = sql_fetsel('*','spip_documents','id_document='.intval($c['id_document']));
116        $largeur = $image['largeur'];
117        $hauteur = $image['hauteur'];
118       
119        include_spip('inc/modifier');
120       
121        if($angle==0){
122                return '';
123        }
124        if($angle==-90){
125                $n['posx'] = $c['posy'];
126                $n['posy'] = $hauteur - ($c['posx'] + $c['width']);
127                $n['width'] = $c['height'];
128                $n['height'] = $c['width'];
129                $err .= legendes_action_revision_legende($id_legende, $n);
130        }
131        if($angle==90){
132                $n['posx'] = $largeur - ($c['posy'] + $c['height']);
133                $n['posy'] = $c['posx'];
134                $n['width'] = $c['height'];
135                $n['height'] = $c['width'];
136                $err .= legendes_action_revision_legende($id_legende, $n);
137        }
138        if($angle==180){
139                $n['posx'] = $largeur - ($c['posx'] + $c['width']);
140                $n['posy'] = $hauteur - ($c['posy'] + $c['height']);
141                $n['width'] = $c['width'];
142                $n['height'] = $c['height'];
143                $err .= legendes_action_revision_legende($id_legende, $n);
144        }
145       
146        return $err;
147
148}
Note: See TracBrowser for help on using the repository browser.