source: trunk/spip/esqueleto-redcta/plugins/cfg/cfg/classes/cfg_id.php @ 152

Last change on this file since 152 was 152, checked in by guille, 15 years ago

se agregaron svn_update y cfg para el 2.0

File size: 1.9 KB
Line 
1<?php
2
3/*
4 * Plugin CFG pour SPIP
5 * (c) toggg, marcimat 2007-2008, distribue sous licence GNU/GPL
6 * Documentation et contact: http://www.spip-contrib.net/
7 */
8
9if (!defined("_ECRIRE_INC_VERSION")) return;
10
11
12// apres que le parseur a trouve les champs
13function cfg_pre_charger_cfg_id($nom, &$cfg){
14
15        // id a renseigner
16        $cfg->champs[$nom]['id'] = count($cfg->champs_id);
17        $cfg->champs_id[] = $nom;       
18
19        // Cas des champs multi, si des champs (Y)
20        // sont declares id par la classe cfg_id,
21        // <input type='x' name='Yn' class='cfg_id'>
22        // on les ajoute dans le chemin pour retrouver les donnees
23        // #CONFIG{.../y1/y2/y3/...}
24        //
25        if (_request('_cfg_affiche')) {
26                $cfg->param['cfg_id'] = implode('/', array_map('_request', $cfg->champs_id));
27        } 
28           
29        return true;
30}
31
32
33function cfg_pre_traiter_cfg_id($nom, &$cfg){
34       
35        // lorsque c'est un champ de type multi que l'on modifie
36        // et si l'identifiant a change,  il faut soit le copier, soit de deplacer
37        //
38        // pour ca, on compare le hidden name='cfg_id' aux champs editables
39        // qui ont la classe css 'cfg_id'
40        if ($cfg->champs_id) {
41                $new_id = implode('/', array_map('_request', $cfg->champs_id));
42                if ($new_id != $cfg->param['cfg_id']){
43                        // si c'est un deplacement, on efface
44                        if (!_request('_cfg_copier')) {
45                                // et ne pas perdre les valeurs suite a l'effacement dans ce cas precis
46                                $vals = $cfg->val;
47                                $cfg->effacer();
48                                $cfg->val = $vals;
49                        }
50                        $cfg->param['cfg_id'] = $new_id;
51                        // recreer un depot avec le nouvel identifiant
52                        // (sinon les requetes ne creent pas les bons 'where')
53                        include_spip('inc/cfg_config');
54                        $cfg->depot = new cfg_depot($cfg->param['depot'], $cfg->params);
55                        // recharger le formulaire avec le nouvel identifiant (sinon les parametres
56                        // <!-- param=valeur --> de formulaires qui contienent
57                        // #ENV{cfg_id} ou #ENV{id} ne sont pas a jour)
58                        $cfg->formulaire();
59                }
60        }       
61       
62        return true;
63}
64
65?>
Note: See TracBrowser for help on using the repository browser.