source: spip-zone/_squelettes_/gribouille/compat_gribouille.php

Last change on this file was 18869, checked in by marcimat@…, 14 years ago
  • un Gribouille compatible 1.9.2 et 1.9.3, et peut être aussi avec les préfixe de table différents de 'spip', en croisant les doigts que je pête rien !
File size: 3.8 KB
Line 
1<?php
2       
3if (!defined("_ECRIRE_INC_VERSION")) return;
4define('_COMPAT_GRIBOUILLE_192', true);
5
6/* fichier de compatibilite vers spip 1.9.2 */
7if (version_compare($GLOBALS['spip_version_code'], '1.9300', '<')
8        AND $f = charger_fonction('compat_gribouille', 'inc'))
9                $f();
10
11function inc_compat_gribouille_dist($quoi = NULL) {
12        if (!function_exists($f = 'compat_gribouille_defs')) $f .= '_dist';
13        $defs = $f();
14
15        if (is_string($quoi))
16                $quoi = array($quoi);
17        else if (is_null($quoi))
18                $quoi = array_keys($defs);
19
20        foreach ($quoi as $d) {
21                if (!function_exists($d)
22                AND isset($defs[$d])) {
23                        eval ("function $d".$defs[$d]);
24                }
25        }
26}
27
28function compat_gribouille_defs_dist() {
29        $defs = array(
30                'sql_fetch' => 
31                        '(
32                                $res,
33                                $serveur=\'\'
34                        ) {
35                                return spip_fetch_array($res);
36                        }',
37               
38                'sql_query' => 
39                        '($res, $serveur=\'\') {
40                                return spip_query_db($res);
41                        }',     
42               
43                // n'existe pas en 1.9.2
44                'sql_alter' => 
45                        '($res, $serveur=\'\') {
46                                return spip_query_db(\'ALTER \' . $res);
47                        }',     
48                               
49                // n'existe pas en 1.9.2
50                // on cree la requete directement
51                'sql_delete' => 
52                        '($table, $where=\'\', $serveur=\'\') {
53                                if (!is_array($table)) $table = array($table);
54                                if (!is_array($where)) $where = array($where);
55                                $query = \'DELETE FROM \'
56                                                . implode(\',\', $table)
57                                                . \' WHERE \'
58                                                . implode(\' AND \', $where);
59                                return spip_query_db($query);
60                        }',
61                       
62                // sql_quote : _q directement
63                'sql_quote' => 
64                        '(
65                                $val,
66                                $serveur=\'\'
67                        ) {
68                                return _q($val);
69                        }',     
70                                               
71                'sql_select' => 
72                        '(
73                                $select = array(),
74                                $from = array(),
75                                $where = array(),
76                                $groupby = array(),
77                                $orderby = array(),
78                                $limit = \'\',
79                                $having = array(),
80                                $serveur=\'\'
81                        ) {
82                                return spip_abstract_select(
83                                        $select,
84                                        $from,
85                                        $where,
86                                        $groupby,
87                                        $orderby,
88                                        $limit,
89                                        $limit,
90                                        $sousrequete = \'\',
91                                        $having,
92                                        $table = \'\',
93                                        $id = \'\',
94                                        $serveur);
95                        }',
96                       
97                // n'existe pas en 1.9.2
98                // on cree la requete directement
99                'sql_update' => 
100                        '(
101                                $table,
102                                $champs,
103                                $where=\'\',
104                                $desc=array(),
105                                $serveur=\'\'
106                        ) {
107                                if (!is_array($table))  $table = array($table);
108                                if (!is_array($champs)) $champs = array($champs);
109                                if (!is_array($where))  $where = array($where);
110
111                                $query = $r = \'\';
112                                foreach ($champs as $champ => $val)
113                                        $r .= \',\' . $champ . "=$val";
114                                if ($r = substr($r, 1))
115                                        $query = \'UPDATE \'
116                                                        . implode(\',\', $table)
117                                                        . \' SET \' . $r
118                                                        . (empty($where) ? \'\' :\' WHERE \' . implode(\' AND \', $where));
119                                if ($query)
120                                        return spip_query_db($query);
121                        }',
122
123                'sql_updateq' => 
124                        '(
125                                $table,
126                                $champs,
127                                $where=\'\',
128                                $desc=array(),
129                                $serveur=\'\'
130                        ) {
131                                if (!is_array($champs)) $exp = array($champs);
132                               
133                                foreach ($champs as $k => $val) {
134                                        $champs[$k] = sql_quote($val);
135                                }
136                               
137                                return sql_update(                             
138                                        $table,
139                                        $champs,
140                                        $where,
141                                        $desc,
142                                        $serveur
143                                );
144                        }',     
145                       
146               
147                // n'existe pas en 1.9.2
148                // on cree la requete directement
149                'sql_insertq' => 
150                        '(
151                                $table,
152                                $champs
153                        ) {
154                                if (!is_array($champs)) $exp = array($champs);
155                               
156                                foreach ($champs as $k => $val) {
157                                        $champs[$k] = sql_quote($val);
158                                }
159                               
160                                $query = "INSERT INTO $table (".implode(",", array_keys($champs)).") VALUES (".implode(",", $champs).")";
161                                return sql_query($query);
162                        }',
163               
164                'sql_showtable' => '($table, $serveur=\'\') {
165                        return spip_abstract_showtable($table, \'mysql\', true);
166                }'
167               
168
169                /*
170                'sql_count' =>
171                        '(
172                                $res,
173                                $serveur=\'\'
174                        ) {
175                                return spip_mysql_count($res);
176                        }'
177               
178               
179                'sql_selectdb' =>
180                        '(
181                                $res,
182                                $serveur=\'\'
183                        ) {
184                                $GLOBALS[\'spip_mysql_db\'] = mysql_select_db($res);
185                                return $GLOBALS[\'spip_mysql_db\'];
186                        }',     
187               
188               
189                */
190        );
191        return $defs;
192}
193
194
195
196?>
Note: See TracBrowser for help on using the repository browser.