1 | <?php |
---|
2 | |
---|
3 | /* |
---|
4 | * Plugin CFG pour SPIP |
---|
5 | * (c) toggg 2007, distribue sous licence GNU/GPL |
---|
6 | * Documentation et contact: http://www.spip-contrib.net/ |
---|
7 | * |
---|
8 | * classe cfg_classic: storage a plat (classique) dans spip_meta |
---|
9 | */ |
---|
10 | |
---|
11 | if (!defined("_ECRIRE_INC_VERSION")) return; |
---|
12 | |
---|
13 | // cfg_meta retrouve et met a jour les donnees a plat dans spip_meta |
---|
14 | class cfg_depot_meta |
---|
15 | { |
---|
16 | var $champs = array(); |
---|
17 | var $champs_id = array(); |
---|
18 | var $val = array(); |
---|
19 | var $param = array(); |
---|
20 | var $messages = array('message_ok'=>array(), 'message_erreur'=>array(), 'erreurs'=>array()); |
---|
21 | |
---|
22 | // version du depot |
---|
23 | var $version = 2; |
---|
24 | |
---|
25 | function cfg_depot_meta($params=array()) |
---|
26 | { |
---|
27 | foreach ($params as $o=>$v) { |
---|
28 | $this->$o = $v; |
---|
29 | } |
---|
30 | } |
---|
31 | |
---|
32 | // recuperer les valeurs. |
---|
33 | // unserialize : si la valeur est deserialisable, elle est retournee deserialisee |
---|
34 | // permet a #CONFIG d'obtenir une valeur non deserialisee... |
---|
35 | function lire($unserialize=true) |
---|
36 | { |
---|
37 | $val = array(); |
---|
38 | if ($this->champs) { |
---|
39 | foreach ($this->champs as $name => $def) { |
---|
40 | // pour compat cfg, si la meta est deserialisable, la retourner deserialisee |
---|
41 | if ($unserialize && ($a = @unserialize($GLOBALS['meta'][$name]))) |
---|
42 | $val[$name] = $a; |
---|
43 | else { |
---|
44 | $val[$name] = $GLOBALS['meta'][$name]; |
---|
45 | } |
---|
46 | } |
---|
47 | // si pas d'argument, retourner comme le core serialize($GLOBALS['meta']) |
---|
48 | } else { |
---|
49 | $val = serialize($GLOBALS['meta']); |
---|
50 | } |
---|
51 | return array(true, $val); |
---|
52 | } |
---|
53 | |
---|
54 | |
---|
55 | // ecrit chaque enregistrement de meta pour chaque champ |
---|
56 | function ecrire() |
---|
57 | { |
---|
58 | foreach ($this->champs as $name => $def) { |
---|
59 | ecrire_meta($name, $this->val[$name]); |
---|
60 | } |
---|
61 | if (defined('_COMPAT_CFG_192')) ecrire_metas(); |
---|
62 | return array(true, $this->val); |
---|
63 | } |
---|
64 | |
---|
65 | |
---|
66 | // supprime chaque enregistrement de meta pour chaque champ |
---|
67 | function effacer(){ |
---|
68 | foreach ($this->champs as $name => $def) { |
---|
69 | if (!$this->val[$name]) { |
---|
70 | effacer_meta($name); |
---|
71 | } |
---|
72 | } |
---|
73 | if (defined('_COMPAT_CFG_192')) ecrire_metas(); |
---|
74 | return array(true, $this->val); |
---|
75 | } |
---|
76 | |
---|
77 | |
---|
78 | // charger les arguments de lire_config(meta::nom) |
---|
79 | // $args = 'nom'; ici |
---|
80 | function charger_args($args){ |
---|
81 | if ($args) $this->champs = array($args=>true); |
---|
82 | return true; |
---|
83 | } |
---|
84 | } |
---|
85 | ?> |
---|