Completed
Push — spip-3.0 ( 484b62...e817f1 )
by cam
34:33
created
ecrire/xml/indenter.php 1 patch
Indentation   +17 added lines, -17 removed lines patch added patch discarded remove patch
@@ -36,30 +36,30 @@
 block discarded – undo
36 36
 // http://doc.spip.org/@phraserTout
37 37
 function phraserTout($phraseur, $data)
38 38
 {
39
-	xml_parsestring($this, $data);
39
+    xml_parsestring($this, $data);
40 40
 }
41 41
 
42
- var $depth = "";
43
- var $res = "";
44
- var $err = array();
45
- var $contenu = array();
46
- var $ouvrant = array();
47
- var $reperes = array();
48
- var $entete = '';
49
- var $page = '';
50
- var $dtc = NULL;
51
- var $sax = NULL;
42
+    var $depth = "";
43
+    var $res = "";
44
+    var $err = array();
45
+    var $contenu = array();
46
+    var $ouvrant = array();
47
+    var $reperes = array();
48
+    var $entete = '';
49
+    var $page = '';
50
+    var $dtc = NULL;
51
+    var $sax = NULL;
52 52
 }
53 53
 
54 54
 // http://doc.spip.org/@xml_indenter_dist
55 55
 function xml_indenter_dist($page, $apply=false)
56 56
 {
57
-	$sax = charger_fonction('sax', 'xml');
58
-	$f = new IndenteurXML();
59
-	$sax($page, $apply, $f);
60
-	if (!$f->err) return $f->entete . $f->res;
61
-	spip_log("indentation impossible " . count($f->err) . " erreurs de validation");
62
-	return $f->entete . $f->page;
57
+    $sax = charger_fonction('sax', 'xml');
58
+    $f = new IndenteurXML();
59
+    $sax($page, $apply, $f);
60
+    if (!$f->err) return $f->entete . $f->res;
61
+    spip_log("indentation impossible " . count($f->err) . " erreurs de validation");
62
+    return $f->entete . $f->page;
63 63
 }
64 64
 
65 65
 ?>
Please login to merge, or discard this patch.
ecrire/xml/sax.php 1 patch
Indentation   +210 added lines, -210 removed lines patch added patch discarded remove patch
@@ -21,207 +21,207 @@  discard block
 block discarded – undo
21 21
  * @return string
22 22
  */
23 23
 function xml_entites_html($texte){
24
-	if (!is_string($texte) OR !$texte
25
-	OR strpbrk($texte, "&\"'<>")==false
26
-	) return $texte;
27
-
28
-	if (!function_exists('spip_htmlspecialchars'))
29
-		include_spip("inc/filtres_mini");
30
-	$texte = spip_htmlspecialchars($texte,ENT_QUOTES);
31
-	return $texte;
24
+    if (!is_string($texte) OR !$texte
25
+    OR strpbrk($texte, "&\"'<>")==false
26
+    ) return $texte;
27
+
28
+    if (!function_exists('spip_htmlspecialchars'))
29
+        include_spip("inc/filtres_mini");
30
+    $texte = spip_htmlspecialchars($texte,ENT_QUOTES);
31
+    return $texte;
32 32
 }
33 33
 
34 34
 // http://doc.spip.org/@xml_debutElement
35 35
 function xml_debutElement($phraseur, $name, $attrs)
36 36
 {
37
-	$depth = $phraseur->depth;
38
-
39
-	$t = isset($phraseur->ouvrant[$depth]) ? $phraseur->ouvrant[$depth] : ' ';
40
-	// espace initial signifie: deja integree au resultat
41
-	if ($t[0] != ' ')
42
-	  {
43
-	    $phraseur->res .= '<' . $t . '>';
44
-	    $phraseur->ouvrant[$depth] = ' ' . $t;
45
-	  }
46
-	$t = $phraseur->contenu[$depth];
47
-	// n'indenter que s'il y a un separateur avant
48
-	$phraseur->res .= preg_replace("/[\n\t ]+$/",  "\n$depth", $t);
49
-	$phraseur->contenu[$depth] = "";
50
-	$att = '';
51
-	$sep = ' ';
52
-	foreach ($attrs as $k => $v) {
53
-	  $delim = strpos($v, "'") === false ? "'" : '"';
54
-	  $val = xml_entites_html($v);
55
-	  $att .= $sep .  $k . "=" . $delim
56
-	    . ($delim !== '"' ? str_replace('&quot;', '"', $val) : $val)
57
-	    . $delim;
58
-	  $sep = "\n $depth";
59
-	}
60
-	$phraseur->depth .= '  ';
61
-	$phraseur->contenu[$phraseur->depth] = "";
62
-	$phraseur->ouvrant[$phraseur->depth] = $name . $att;
63
-	$phraseur->reperes[$phraseur->depth] = xml_get_current_line_number($phraseur->sax);
37
+    $depth = $phraseur->depth;
38
+
39
+    $t = isset($phraseur->ouvrant[$depth]) ? $phraseur->ouvrant[$depth] : ' ';
40
+    // espace initial signifie: deja integree au resultat
41
+    if ($t[0] != ' ')
42
+        {
43
+        $phraseur->res .= '<' . $t . '>';
44
+        $phraseur->ouvrant[$depth] = ' ' . $t;
45
+        }
46
+    $t = $phraseur->contenu[$depth];
47
+    // n'indenter que s'il y a un separateur avant
48
+    $phraseur->res .= preg_replace("/[\n\t ]+$/",  "\n$depth", $t);
49
+    $phraseur->contenu[$depth] = "";
50
+    $att = '';
51
+    $sep = ' ';
52
+    foreach ($attrs as $k => $v) {
53
+        $delim = strpos($v, "'") === false ? "'" : '"';
54
+        $val = xml_entites_html($v);
55
+        $att .= $sep .  $k . "=" . $delim
56
+        . ($delim !== '"' ? str_replace('&quot;', '"', $val) : $val)
57
+        . $delim;
58
+        $sep = "\n $depth";
59
+    }
60
+    $phraseur->depth .= '  ';
61
+    $phraseur->contenu[$phraseur->depth] = "";
62
+    $phraseur->ouvrant[$phraseur->depth] = $name . $att;
63
+    $phraseur->reperes[$phraseur->depth] = xml_get_current_line_number($phraseur->sax);
64 64
 }
65 65
 
66 66
 // http://doc.spip.org/@xml_finElement
67 67
 function xml_finElement($phraseur, $name, $fusion_bal=false)
68 68
 {
69
-	$ouv = $phraseur->ouvrant[$phraseur->depth];
70
-
71
-	if ($ouv[0] != ' ')
72
-		$phraseur->ouvrant[$phraseur->depth] = ' ' . $ouv;
73
-	else $ouv= "";
74
-	$t = $phraseur->contenu[$phraseur->depth];
75
-	$phraseur->depth = substr($phraseur->depth, 2);
76
-	$t = preg_replace("/[\n\t ]+$/", "\n" . $phraseur->depth, $t);
77
-
78
-  // fusion <balise></balise> en <balise />.
79
-  // ATTENTION,  certains clients http croient que fusion ==> pas d'atttributs
80
-  // en particulier pour les balises Script et A.
81
-  // en presence d'attributs ne le faire que si la DTD est dispo et d'accord
82
-  // (param fusion_bal)
83
-
84
-	if ($t || (($ouv != $name) AND !$fusion_bal))
85
-	  $phraseur->res .= ($ouv ? ('<' . $ouv . '>') : '') . $t . "</" . $name . ">";
86
-	else
87
-	  $phraseur->res .= ($ouv ? ('<' . $ouv  . ' />') : ("</" .  $name . ">"));
69
+    $ouv = $phraseur->ouvrant[$phraseur->depth];
70
+
71
+    if ($ouv[0] != ' ')
72
+        $phraseur->ouvrant[$phraseur->depth] = ' ' . $ouv;
73
+    else $ouv= "";
74
+    $t = $phraseur->contenu[$phraseur->depth];
75
+    $phraseur->depth = substr($phraseur->depth, 2);
76
+    $t = preg_replace("/[\n\t ]+$/", "\n" . $phraseur->depth, $t);
77
+
78
+    // fusion <balise></balise> en <balise />.
79
+    // ATTENTION,  certains clients http croient que fusion ==> pas d'atttributs
80
+    // en particulier pour les balises Script et A.
81
+    // en presence d'attributs ne le faire que si la DTD est dispo et d'accord
82
+    // (param fusion_bal)
83
+
84
+    if ($t || (($ouv != $name) AND !$fusion_bal))
85
+        $phraseur->res .= ($ouv ? ('<' . $ouv . '>') : '') . $t . "</" . $name . ">";
86
+    else
87
+        $phraseur->res .= ($ouv ? ('<' . $ouv  . ' />') : ("</" .  $name . ">"));
88 88
 }
89 89
 
90 90
 // http://doc.spip.org/@xml_textElement
91 91
 function xml_textElement($phraseur, $data)
92 92
 {
93
-	$depth = $phraseur->depth;
94
-	$phraseur->contenu[$depth] .= preg_match('/^script/',$phraseur->ouvrant[$depth])
95
-	  ? $data
96
-	  : xml_entites_html($data);
93
+    $depth = $phraseur->depth;
94
+    $phraseur->contenu[$depth] .= preg_match('/^script/',$phraseur->ouvrant[$depth])
95
+      ? $data
96
+      : xml_entites_html($data);
97 97
 }
98 98
 
99 99
 function xml_piElement($phraseur, $target, $data)
100 100
 {
101
-	$depth = $phraseur->depth;
102
-
103
-	if (strtolower($target) != "php")
104
-	  $phraseur->contenu[$depth] .= $data;
105
-	else {
106
-		ob_start();
107
-		eval($data);
108
-		$data = ob_get_contents();
109
-		ob_end_clean();
110
-		$phraseur->contenu[$depth] .= $data;
111
-	}
101
+    $depth = $phraseur->depth;
102
+
103
+    if (strtolower($target) != "php")
104
+        $phraseur->contenu[$depth] .= $data;
105
+    else {
106
+        ob_start();
107
+        eval($data);
108
+        $data = ob_get_contents();
109
+        ob_end_clean();
110
+        $phraseur->contenu[$depth] .= $data;
111
+    }
112 112
 }
113 113
 
114 114
 
115 115
 // http://doc.spip.org/@xml_defautElement
116 116
 function xml_defaultElement($phraseur, $data)
117 117
 {
118
-	$depth = $phraseur->depth;
118
+    $depth = $phraseur->depth;
119 119
 
120
-	if (!isset($phraseur->contenu[$depth])) $phraseur->contenu[$depth]='';
121
-	$phraseur->contenu[$depth] .= $data;
120
+    if (!isset($phraseur->contenu[$depth])) $phraseur->contenu[$depth]='';
121
+    $phraseur->contenu[$depth] .= $data;
122 122
 }
123 123
 
124 124
 // http://doc.spip.org/@xml_parsestring
125 125
 function xml_parsestring($phraseur, $data)
126 126
 {
127
-	$phraseur->contenu[$phraseur->depth] ='';
128
-
129
-	if (!xml_parse($phraseur->sax, $data, true)) {
130
-		coordonnees_erreur($phraseur,
131
-			xml_error_string(xml_get_error_code($phraseur->sax))
132
-			. "<br />\n" .
133
-			(!$phraseur->depth ? '' :
134
-			 ('(' .
135
-			  _T('erreur_balise_non_fermee') .
136
-			  " <tt>" .
137
-			  $phraseur->ouvrant[$phraseur->depth] .
138
-			  "</tt> " .
139
-			  _T('ligne') .
140
-			  " " .
141
-			  $phraseur->reperes[$phraseur->depth] .
142
-			  ") <br />\n" )));
143
-	}
127
+    $phraseur->contenu[$phraseur->depth] ='';
128
+
129
+    if (!xml_parse($phraseur->sax, $data, true)) {
130
+        coordonnees_erreur($phraseur,
131
+            xml_error_string(xml_get_error_code($phraseur->sax))
132
+            . "<br />\n" .
133
+            (!$phraseur->depth ? '' :
134
+             ('(' .
135
+                _T('erreur_balise_non_fermee') .
136
+                " <tt>" .
137
+                $phraseur->ouvrant[$phraseur->depth] .
138
+                "</tt> " .
139
+                _T('ligne') .
140
+                " " .
141
+                $phraseur->reperes[$phraseur->depth] .
142
+                ") <br />\n" )));
143
+    }
144 144
 }
145 145
 
146 146
 // http://doc.spip.org/@coordonnees_erreur
147 147
 function coordonnees_erreur($phraseur, $msg)
148 148
 {
149
-	$entete_length = substr_count($phraseur->entete,"\n");
150
-	$phraseur->err[] = array($msg,
151
-		xml_get_current_line_number($phraseur->sax) + $entete_length,
152
-		xml_get_current_column_number($phraseur->sax));
149
+    $entete_length = substr_count($phraseur->entete,"\n");
150
+    $phraseur->err[] = array($msg,
151
+        xml_get_current_line_number($phraseur->sax) + $entete_length,
152
+        xml_get_current_column_number($phraseur->sax));
153 153
 }
154 154
 
155 155
 // http://doc.spip.org/@xml_sax_dist
156 156
 function xml_sax_dist($page, $apply=false, $phraseur=NULL, $doctype='', $charset=null)
157 157
 {
158
-	if (is_null($charset))
159
-		$charset = $GLOBALS['meta']['charset'];
160
-	if ($apply) {
161
-		ob_start();
162
-		if (is_array($apply))
163
-		  $r = call_user_func_array($page, $apply);
164
-		else $r = $page();
165
-		$page = ob_get_contents();
166
-		ob_end_clean();
167
-		// fonction sans aucun "echo", ca doit etre le resultat
168
-		if (!$page) $page = $r;
169
-	}
170
-
171
-	if (!$page) return '';
172
-	// charger la DTD et transcoder les entites,
173
-	// et escamoter le doctype que sax mange en php5 mais pas en  php4
174
-	if (!$doctype) {
175
-		if (!$r = analyser_doctype($page)) {
176
-			$page = _MESSAGE_DOCTYPE . _DOCTYPE_ECRIRE
177
-			  . preg_replace(_REGEXP_DOCTYPE, '', $page);
178
-			$r =  analyser_doctype($page);
179
-		}
180
-		list($entete, $avail, $grammaire, $rotlvl) = array_pad($r, 4, null);
181
-		$page = substr($page,strlen($entete));
182
-	} else {
183
-		$avail = 'SYSTEM';
184
-		$grammaire = $doctype;
185
-		$rotlvl = basename($grammaire);
186
-	}
187
-
188
-	include_spip('xml/analyser_dtd');
189
-	$dtc = charger_dtd($grammaire, $avail, $rotlvl);
190
-	$page = sax_bug($page, $dtc, $charset);
191
-
192
-	// compatibilite Tidy espace public
193
-	if (!$phraseur) {
194
-		$indenter_xml = charger_fonction('indenter', 'xml');
195
-		return $indenter_xml($page, $apply);
196
-	}
197
-
198
-	$xml_parser = xml_parser_create($charset);
199
-
200
-	xml_set_element_handler($xml_parser,
201
-			array($phraseur, "debutElement"),
202
-			array($phraseur, "finElement"));
203
-
204
-	xml_set_character_data_handler($xml_parser,
205
-				       array($phraseur, "textElement"));
206
-
207
-	xml_set_processing_instruction_handler($xml_parser,
208
-				       array($phraseur, 'piElement'));
209
-
210
-	xml_set_default_handler($xml_parser,
211
-				array($phraseur, "defaultElement"));
212
-
213
-	xml_parser_set_option($xml_parser, XML_OPTION_CASE_FOLDING, false);
214
-
215
-	$phraseur->sax = $xml_parser;
216
-	if (isset($entete)) {
217
-		$phraseur->entete = $entete;
218
-	}
219
-	$phraseur->page = $page;
220
-	$phraseur->dtc = $dtc;
221
-	$phraseur->phraserTout($xml_parser, $page);
222
-	xml_parser_free($xml_parser);
223
-	$phraseur->sax = '';
224
-	return $phraseur;
158
+    if (is_null($charset))
159
+        $charset = $GLOBALS['meta']['charset'];
160
+    if ($apply) {
161
+        ob_start();
162
+        if (is_array($apply))
163
+            $r = call_user_func_array($page, $apply);
164
+        else $r = $page();
165
+        $page = ob_get_contents();
166
+        ob_end_clean();
167
+        // fonction sans aucun "echo", ca doit etre le resultat
168
+        if (!$page) $page = $r;
169
+    }
170
+
171
+    if (!$page) return '';
172
+    // charger la DTD et transcoder les entites,
173
+    // et escamoter le doctype que sax mange en php5 mais pas en  php4
174
+    if (!$doctype) {
175
+        if (!$r = analyser_doctype($page)) {
176
+            $page = _MESSAGE_DOCTYPE . _DOCTYPE_ECRIRE
177
+                . preg_replace(_REGEXP_DOCTYPE, '', $page);
178
+            $r =  analyser_doctype($page);
179
+        }
180
+        list($entete, $avail, $grammaire, $rotlvl) = array_pad($r, 4, null);
181
+        $page = substr($page,strlen($entete));
182
+    } else {
183
+        $avail = 'SYSTEM';
184
+        $grammaire = $doctype;
185
+        $rotlvl = basename($grammaire);
186
+    }
187
+
188
+    include_spip('xml/analyser_dtd');
189
+    $dtc = charger_dtd($grammaire, $avail, $rotlvl);
190
+    $page = sax_bug($page, $dtc, $charset);
191
+
192
+    // compatibilite Tidy espace public
193
+    if (!$phraseur) {
194
+        $indenter_xml = charger_fonction('indenter', 'xml');
195
+        return $indenter_xml($page, $apply);
196
+    }
197
+
198
+    $xml_parser = xml_parser_create($charset);
199
+
200
+    xml_set_element_handler($xml_parser,
201
+            array($phraseur, "debutElement"),
202
+            array($phraseur, "finElement"));
203
+
204
+    xml_set_character_data_handler($xml_parser,
205
+                        array($phraseur, "textElement"));
206
+
207
+    xml_set_processing_instruction_handler($xml_parser,
208
+                        array($phraseur, 'piElement'));
209
+
210
+    xml_set_default_handler($xml_parser,
211
+                array($phraseur, "defaultElement"));
212
+
213
+    xml_parser_set_option($xml_parser, XML_OPTION_CASE_FOLDING, false);
214
+
215
+    $phraseur->sax = $xml_parser;
216
+    if (isset($entete)) {
217
+        $phraseur->entete = $entete;
218
+    }
219
+    $phraseur->page = $page;
220
+    $phraseur->dtc = $dtc;
221
+    $phraseur->phraserTout($xml_parser, $page);
222
+    xml_parser_free($xml_parser);
223
+    $phraseur->sax = '';
224
+    return $phraseur;
225 225
 }
226 226
 
227 227
 // SAX ne dit pas si une Entite est dans un attribut ou non.
@@ -234,21 +234,21 @@  discard block
 block discarded – undo
234 234
 // http://doc.spip.org/@sax_bug
235 235
 function sax_bug($data, $dtc, $charset=null)
236 236
 {
237
-	if (is_null($charset))
238
-		$charset = $GLOBALS['meta']['charset'];
237
+    if (is_null($charset))
238
+        $charset = $GLOBALS['meta']['charset'];
239 239
 
240
-	if ($dtc) {
241
-		$trans = array();
240
+    if ($dtc) {
241
+        $trans = array();
242 242
 		
243
-		foreach($dtc->entites as $k => $v) {
244
-			if (!strpos(" amp lt gt quot ", $k))
245
-			    $trans["&$k;"] = $v;
246
-		}
247
-		$data = strtr($data, $trans);
248
-	} else {
249
-		$data = html2unicode($data, true);
250
-	}
251
-	return unicode2charset($data, $charset);
243
+        foreach($dtc->entites as $k => $v) {
244
+            if (!strpos(" amp lt gt quot ", $k))
245
+                $trans["&$k;"] = $v;
246
+        }
247
+        $data = strtr($data, $trans);
248
+    } else {
249
+        $data = html2unicode($data, true);
250
+    }
251
+    return unicode2charset($data, $charset);
252 252
 }
253 253
 
254 254
 // Retirer < ? xml... ? > et autre PI, ainsi que les commentaires en debut
@@ -260,42 +260,42 @@  discard block
 block discarded – undo
260 260
 // http://doc.spip.org/@analyser_doctype
261 261
 function analyser_doctype($data)
262 262
 {
263
-	if (!preg_match(_REGEXP_DOCTYPE, $data, $page)) {
264
-		if (preg_match(_REGEXP_XML, $data, $page)) {
265
-			list(,$entete, $topelement) = $page;
266
-			if ($topelement == 'rss')
267
-			  return array($entete, 'PUBLIC', 
268
-				       _DOCTYPE_RSS,
269
-					     'rss-0.91.dtd');
270
-			else {
271
-				$dtd = $topelement . '.dtd';
272
-				$f = find_in_path($dtd);
273
-				if (file_exists($f))
274
-				  return array($entete, 'SYSTEM', $f, $dtd);
275
-			}
276
-		}
277
-		spip_log("Dtd pas vu pour " . substr($data, 0, 100));
278
-		return array();
279
-	}
280
-	list($entete,, $topelement, $avail,$suite) = $page;
281
-
282
-	if (!preg_match('/^"([^"]*)"\s*(.*)$/', $suite, $r))
283
-		if (!preg_match("/^'([^']*)'\s*(.*)$/", $suite, $r))
284
-			return  array();
285
-	list(,$rotlvl, $suite) = $r;
286
-
287
-	if (!$suite) {
288
-		if ($avail != 'SYSTEM') return array();
289
-		$grammaire = $rotlvl;
290
-		$rotlvl = '';
291
-	} else {
292
-		if (!preg_match('/^"([^"]*)"\s*$/', $suite, $r))
293
-			if (!preg_match("/^'([^']*)'\s*$/", $suite, $r))
294
-				return array();
295
-
296
-		$grammaire = $r[1];
297
-	}
298
-
299
-	return array($entete, $avail, $grammaire, $rotlvl);
263
+    if (!preg_match(_REGEXP_DOCTYPE, $data, $page)) {
264
+        if (preg_match(_REGEXP_XML, $data, $page)) {
265
+            list(,$entete, $topelement) = $page;
266
+            if ($topelement == 'rss')
267
+                return array($entete, 'PUBLIC', 
268
+                        _DOCTYPE_RSS,
269
+                            'rss-0.91.dtd');
270
+            else {
271
+                $dtd = $topelement . '.dtd';
272
+                $f = find_in_path($dtd);
273
+                if (file_exists($f))
274
+                    return array($entete, 'SYSTEM', $f, $dtd);
275
+            }
276
+        }
277
+        spip_log("Dtd pas vu pour " . substr($data, 0, 100));
278
+        return array();
279
+    }
280
+    list($entete,, $topelement, $avail,$suite) = $page;
281
+
282
+    if (!preg_match('/^"([^"]*)"\s*(.*)$/', $suite, $r))
283
+        if (!preg_match("/^'([^']*)'\s*(.*)$/", $suite, $r))
284
+            return  array();
285
+    list(,$rotlvl, $suite) = $r;
286
+
287
+    if (!$suite) {
288
+        if ($avail != 'SYSTEM') return array();
289
+        $grammaire = $rotlvl;
290
+        $rotlvl = '';
291
+    } else {
292
+        if (!preg_match('/^"([^"]*)"\s*$/', $suite, $r))
293
+            if (!preg_match("/^'([^']*)'\s*$/", $suite, $r))
294
+                return array();
295
+
296
+        $grammaire = $r[1];
297
+    }
298
+
299
+    return array($entete, $avail, $grammaire, $rotlvl);
300 300
 }
301 301
 ?>
Please login to merge, or discard this patch.
ecrire/xml/valider.php 1 patch
Indentation   +219 added lines, -219 removed lines patch added patch discarded remove patch
@@ -21,251 +21,251 @@  discard block
 block discarded – undo
21 21
 // http://doc.spip.org/@validerElement
22 22
 function validerElement($phraseur, $name, $attrs)
23 23
 {
24
-	if (!($p = isset($this->dtc->elements[$name]))) {
25
-		if ($p = strpos($name, ':')) {
26
-			$name = substr($name, $p+1);
27
-			$p = isset($this->dtc->elements[$name]);
28
-		}
29
-		if (!$p) {
30
-			coordonnees_erreur($this," <b>$name</b>&nbsp;: "
31
-				. _T('zxml_inconnu_balise'));
32
-			return; 
33
-		}
34
-	}
35
-	// controler les filles illegitimes, ca suffit 
36
-	$depth = $this->depth;
37
-	$ouvrant = $this->ouvrant;
24
+    if (!($p = isset($this->dtc->elements[$name]))) {
25
+        if ($p = strpos($name, ':')) {
26
+            $name = substr($name, $p+1);
27
+            $p = isset($this->dtc->elements[$name]);
28
+        }
29
+        if (!$p) {
30
+            coordonnees_erreur($this," <b>$name</b>&nbsp;: "
31
+                . _T('zxml_inconnu_balise'));
32
+            return; 
33
+        }
34
+    }
35
+    // controler les filles illegitimes, ca suffit 
36
+    $depth = $this->depth;
37
+    $ouvrant = $this->ouvrant;
38 38
 #	spip_log("trouve $name apres " . $ouvrant[$depth]);
39
-	if (isset($ouvrant[$depth])) {
40
-	    if (preg_match('/^\s*(\w+)/', $ouvrant[$depth], $r)) {
41
-	      $pere = $r[1];
39
+    if (isset($ouvrant[$depth])) {
40
+        if (preg_match('/^\s*(\w+)/', $ouvrant[$depth], $r)) {
41
+            $pere = $r[1];
42 42
 #	      spip_log("pere $pere");
43
-	      if (isset($this->dtc->elements[$pere])) {
44
-		$fils = $this->dtc->elements[$pere];
43
+            if (isset($this->dtc->elements[$pere])) {
44
+        $fils = $this->dtc->elements[$pere];
45 45
 #		spip_log("rejeton $name fils " . @join(',',$fils));
46
-		if (!($p = @in_array($name, $fils))) {
47
-			if ($p = strpos($name, ':')) {
48
-				$p = substr($name, $p+1);
49
-				$p = @in_array($p, $fils);
50
-			}
51
-		}
52
-		if (!$p) {
53
-	          $bons_peres = @join ('</b>, <b>', $this->dtc->peres[$name]);
54
-		  coordonnees_erreur($this, " <b>$name</b> "
55
-	            . _T('zxml_non_fils')
56
-	            . ' <b>'
57
-	            .  $pere
58
-	            . '</b>'
59
-	            . (!$bons_peres ? ''
60
-	               : ('<p style="font-size: 80%"> '._T('zxml_mais_de').' <b>'. $bons_peres . '</b></p>')));
61
-		} else if ($this->dtc->regles[$pere][0]=='/') {
62
-			$frat = substr($depth,2);
63
-			if (!isset($this->fratrie[$frat])) {
64
-				$this->fratrie[$frat] = '';
65
-			}
66
-			$this->fratrie[$frat] .= "$name ";
67
-		}
68
-	      }
69
-	    }
70
-	}
71
-	// Init de la suite des balises a memoriser si regle difficile
72
-	if ($this->dtc->regles[$name][0]=='/')
73
-	    $this->fratrie[$depth]='';
74
-	if (isset($this->dtc->attributs[$name])) {
75
-		  foreach ($this->dtc->attributs[$name] as $n => $v)
76
-		    { if (($v[1] == '#REQUIRED') AND (!isset($attrs[$n])))
77
-			coordonnees_erreur($this, " <b>$n</b>"
78
-			  . '&nbsp;:&nbsp;'
79
-			  . _T('zxml_obligatoire_attribut')
80
-			  . " <b>$name</b>");
81
-		    }
82
-	}
46
+        if (!($p = @in_array($name, $fils))) {
47
+            if ($p = strpos($name, ':')) {
48
+                $p = substr($name, $p+1);
49
+                $p = @in_array($p, $fils);
50
+            }
51
+        }
52
+        if (!$p) {
53
+                $bons_peres = @join ('</b>, <b>', $this->dtc->peres[$name]);
54
+            coordonnees_erreur($this, " <b>$name</b> "
55
+                . _T('zxml_non_fils')
56
+                . ' <b>'
57
+                .  $pere
58
+                . '</b>'
59
+                . (!$bons_peres ? ''
60
+                   : ('<p style="font-size: 80%"> '._T('zxml_mais_de').' <b>'. $bons_peres . '</b></p>')));
61
+        } else if ($this->dtc->regles[$pere][0]=='/') {
62
+            $frat = substr($depth,2);
63
+            if (!isset($this->fratrie[$frat])) {
64
+                $this->fratrie[$frat] = '';
65
+            }
66
+            $this->fratrie[$frat] .= "$name ";
67
+        }
68
+            }
69
+        }
70
+    }
71
+    // Init de la suite des balises a memoriser si regle difficile
72
+    if ($this->dtc->regles[$name][0]=='/')
73
+        $this->fratrie[$depth]='';
74
+    if (isset($this->dtc->attributs[$name])) {
75
+            foreach ($this->dtc->attributs[$name] as $n => $v)
76
+            { if (($v[1] == '#REQUIRED') AND (!isset($attrs[$n])))
77
+            coordonnees_erreur($this, " <b>$n</b>"
78
+                . '&nbsp;:&nbsp;'
79
+                . _T('zxml_obligatoire_attribut')
80
+                . " <b>$name</b>");
81
+            }
82
+    }
83 83
 }
84 84
 
85 85
 // http://doc.spip.org/@validerAttribut
86 86
 function validerAttribut($phraseur, $name, $val, $bal)
87 87
 {
88
-	// Si la balise est inconnue, eviter d'insister
89
-	if (!isset($this->dtc->attributs[$bal]))
90
-		return ;
88
+    // Si la balise est inconnue, eviter d'insister
89
+    if (!isset($this->dtc->attributs[$bal]))
90
+        return ;
91 91
 		
92
-	$a = $this->dtc->attributs[$bal];
93
-	if (!isset($a[$name])) {
94
-		$bons = join(', ',array_keys($a));
95
-		if ($bons)
96
-		  $bons = " title=' " .
97
-		    _T('zxml_connus_attributs') .
98
-		    '&nbsp;: ' .
99
-		    $bons .
100
-		    "'";
101
-		$bons .= " style='font-weight: bold'";
102
-		coordonnees_erreur($this, " <b>$name</b> "
103
-		. _T('zxml_inconnu_attribut').' '._T('zxml_de')
104
-		. " <a$bons>$bal</a> ("
105
-		. _T('zxml_survoler')
106
-		. ")");
107
-	} else{
108
-		$type =  $a[$name][0];
109
-		if (!preg_match('/^\w+$/', $type))
110
-			$this->valider_motif($phraseur, $name, $val, $bal, $type);
111
-		else if (method_exists($this, $f = 'validerAttribut_' . $type))
112
-			$this->$f($phraseur, $name, $val, $bal);
92
+    $a = $this->dtc->attributs[$bal];
93
+    if (!isset($a[$name])) {
94
+        $bons = join(', ',array_keys($a));
95
+        if ($bons)
96
+            $bons = " title=' " .
97
+            _T('zxml_connus_attributs') .
98
+            '&nbsp;: ' .
99
+            $bons .
100
+            "'";
101
+        $bons .= " style='font-weight: bold'";
102
+        coordonnees_erreur($this, " <b>$name</b> "
103
+        . _T('zxml_inconnu_attribut').' '._T('zxml_de')
104
+        . " <a$bons>$bal</a> ("
105
+        . _T('zxml_survoler')
106
+        . ")");
107
+    } else{
108
+        $type =  $a[$name][0];
109
+        if (!preg_match('/^\w+$/', $type))
110
+            $this->valider_motif($phraseur, $name, $val, $bal, $type);
111
+        else if (method_exists($this, $f = 'validerAttribut_' . $type))
112
+            $this->$f($phraseur, $name, $val, $bal);
113 113
 #		else spip_log("$type type d'attribut inconnu");
114
-	}
114
+    }
115 115
 }
116 116
 
117 117
 function validerAttribut_NMTOKEN($phraseur, $name, $val, $bal)
118 118
 {
119
-	$this->valider_motif($phraseur, $name, $val, $bal, _REGEXP_NMTOKEN);
119
+    $this->valider_motif($phraseur, $name, $val, $bal, _REGEXP_NMTOKEN);
120 120
 }
121 121
 
122 122
 function validerAttribut_NMTOKENS($phraseur, $name, $val, $bal)
123 123
 {
124
-	$this->valider_motif($phraseur, $name, $val, $bal, _REGEXP_NMTOKENS);
124
+    $this->valider_motif($phraseur, $name, $val, $bal, _REGEXP_NMTOKENS);
125 125
 }
126 126
 
127 127
 // http://doc.spip.org/@validerAttribut_ID
128 128
 function validerAttribut_ID($phraseur, $name, $val, $bal)
129 129
 {
130
-	if (isset($this->ids[$val])) {
131
-		list($l,$c) = $this->ids[$val];
132
-		coordonnees_erreur($this, " <p><b>$val</b> "
133
-		      . _T('zxml_valeur_attribut')
134
-		      . " <b>$name</b> "
135
-		      . _T('zxml_de')
136
-		      . " <b>$bal</b> "
137
-		      . _T('zxml_vu')
138
-		      . " (L$l,C$c)");
139
-	} else {
140
-		$this->valider_motif($phraseur, $name, $val, $bal, _REGEXP_ID);
141
-		$this->ids[$val] = array(xml_get_current_line_number($phraseur), xml_get_current_column_number($phraseur));
142
-	}
130
+    if (isset($this->ids[$val])) {
131
+        list($l,$c) = $this->ids[$val];
132
+        coordonnees_erreur($this, " <p><b>$val</b> "
133
+                . _T('zxml_valeur_attribut')
134
+                . " <b>$name</b> "
135
+                . _T('zxml_de')
136
+                . " <b>$bal</b> "
137
+                . _T('zxml_vu')
138
+                . " (L$l,C$c)");
139
+    } else {
140
+        $this->valider_motif($phraseur, $name, $val, $bal, _REGEXP_ID);
141
+        $this->ids[$val] = array(xml_get_current_line_number($phraseur), xml_get_current_column_number($phraseur));
142
+    }
143 143
 }
144 144
 
145 145
 // http://doc.spip.org/@validerAttribut_IDREF
146 146
 function validerAttribut_IDREF($phraseur, $name, $val, $bal)
147 147
 {
148
-	$this->idrefs[] = array($val, xml_get_current_line_number($phraseur), xml_get_current_column_number($phraseur));
148
+    $this->idrefs[] = array($val, xml_get_current_line_number($phraseur), xml_get_current_column_number($phraseur));
149 149
 }
150 150
 
151 151
 // http://doc.spip.org/@validerAttribut_IDREFS
152 152
 function validerAttribut_IDREFS($phraseur, $name, $val, $bal)
153 153
 {
154
-	$this->idrefss[] = array($val, xml_get_current_line_number($phraseur), xml_get_current_column_number($phraseur));
154
+    $this->idrefss[] = array($val, xml_get_current_line_number($phraseur), xml_get_current_column_number($phraseur));
155 155
 }
156 156
 
157 157
 // http://doc.spip.org/@valider_motif
158 158
 function valider_motif($phraseur, $name, $val, $bal, $motif)
159 159
 {
160
-	if (!preg_match($motif, $val)) {
161
-		coordonnees_erreur($this, "<b>$val</b> "
162
-		. _T('zxml_valeur_attribut')
163
-		. " <b>$name</b> "
164
-		. _T('zxml_de')
165
-		. " <b>$bal</b> "
166
-		. _T('zxml_non_conforme')
167
-		. "</p><p>"
168
-		. "<b>" . $motif . "</b>");
169
-	}
160
+    if (!preg_match($motif, $val)) {
161
+        coordonnees_erreur($this, "<b>$val</b> "
162
+        . _T('zxml_valeur_attribut')
163
+        . " <b>$name</b> "
164
+        . _T('zxml_de')
165
+        . " <b>$bal</b> "
166
+        . _T('zxml_non_conforme')
167
+        . "</p><p>"
168
+        . "<b>" . $motif . "</b>");
169
+    }
170 170
 }
171 171
 
172 172
 // http://doc.spip.org/@valider_idref
173 173
 function valider_idref($nom, $ligne, $col)
174 174
 {
175
-	if (!isset($this->ids[$nom]))
176
-		$this->err[]= array(" <p><b>$nom</b> " . _T('zxml_inconnu_id'), $ligne, $col);
175
+    if (!isset($this->ids[$nom]))
176
+        $this->err[]= array(" <p><b>$nom</b> " . _T('zxml_inconnu_id'), $ligne, $col);
177 177
 }
178 178
 
179 179
 // http://doc.spip.org/@valider_passe2
180 180
 function valider_passe2()
181 181
 {
182
-	if (!$this->err) {
183
-		foreach ($this->idrefs as $idref) {
184
-			list($nom, $ligne, $col) = $idref;
185
-			$this->valider_idref($nom, $ligne, $col);
186
-		}
187
-		foreach ($this->idrefss as $idref) {
188
-			list($noms, $ligne, $col) = $idref;
189
-			foreach(preg_split('/\s+/', $noms) as $nom)
190
-				$this->valider_idref($nom, $ligne, $col);
191
-		}
192
-	}
182
+    if (!$this->err) {
183
+        foreach ($this->idrefs as $idref) {
184
+            list($nom, $ligne, $col) = $idref;
185
+            $this->valider_idref($nom, $ligne, $col);
186
+        }
187
+        foreach ($this->idrefss as $idref) {
188
+            list($noms, $ligne, $col) = $idref;
189
+            foreach(preg_split('/\s+/', $noms) as $nom)
190
+                $this->valider_idref($nom, $ligne, $col);
191
+        }
192
+    }
193 193
 }
194 194
 
195 195
 // http://doc.spip.org/@debutElement
196 196
 function debutElement($phraseur, $name, $attrs)
197 197
 { 
198
-	if ($this->dtc->elements)
199
-		$this->validerElement($phraseur, $name, $attrs);
198
+    if ($this->dtc->elements)
199
+        $this->validerElement($phraseur, $name, $attrs);
200 200
 
201
-	if ($f = $this->process['debut']) $f($this, $name, $attrs);
202
-	$depth = $this->depth;
203
-	$this->debuts[$depth] =  strlen($this->res);
204
-	foreach ($attrs as $k => $v) {
205
-		$this->validerAttribut($phraseur, $k, $v, $name);
206
-	}
201
+    if ($f = $this->process['debut']) $f($this, $name, $attrs);
202
+    $depth = $this->depth;
203
+    $this->debuts[$depth] =  strlen($this->res);
204
+    foreach ($attrs as $k => $v) {
205
+        $this->validerAttribut($phraseur, $k, $v, $name);
206
+    }
207 207
 }
208 208
 
209 209
 // http://doc.spip.org/@finElement
210 210
 function finElement($phraseur, $name)
211 211
 {
212
-	$depth = $this->depth;
213
-	$contenu = $this->contenu;
212
+    $depth = $this->depth;
213
+    $contenu = $this->contenu;
214 214
 
215
-	$n = strlen($this->res);
216
-	$c = strlen(trim($contenu[$depth]));
217
-	$k = $this->debuts[$depth];
215
+    $n = strlen($this->res);
216
+    $c = strlen(trim($contenu[$depth]));
217
+    $k = $this->debuts[$depth];
218 218
 
219
-	$regle = $this->dtc->regles[$name];
220
-	$vide = ($regle  == 'EMPTY');
221
-	// controler que les balises devant etre vides le sont 
222
-	if ($vide) {
223
-		if ($n <> ($k + $c))
224
-			coordonnees_erreur($this, " <p><b>$name</b> "
225
-					   . _T('zxml_nonvide_balise'));
226
-	// pour les regles PCDATA ou iteration de disjonction, tout est fait
227
-	} elseif ($regle AND ($regle != '*')) {
228
-		if ($regle == '+') {
229
-		    // iteration de disjonction non vide: 1 balise au -
230
-			if ($n == $k) {
231
-				coordonnees_erreur($this, "<p>\n<b>$name</b> "
232
-				  . _T('zxml_vide_balise'));
233
-			}
234
-		} else {
235
-			$f = $this->fratrie[substr($depth,2)];
236
-			if (!preg_match($regle, $f)) {
237
-				coordonnees_erreur($this,
238
-				" <p>\n<b>$name</b> "
239
-				  .  _T('zxml_succession_fils_incorrecte')
240
-				  . '&nbsp;: <b>'
241
-				  . $f
242
-				  . '</b>');
243
-			}
244
-		}
219
+    $regle = $this->dtc->regles[$name];
220
+    $vide = ($regle  == 'EMPTY');
221
+    // controler que les balises devant etre vides le sont 
222
+    if ($vide) {
223
+        if ($n <> ($k + $c))
224
+            coordonnees_erreur($this, " <p><b>$name</b> "
225
+                        . _T('zxml_nonvide_balise'));
226
+    // pour les regles PCDATA ou iteration de disjonction, tout est fait
227
+    } elseif ($regle AND ($regle != '*')) {
228
+        if ($regle == '+') {
229
+            // iteration de disjonction non vide: 1 balise au -
230
+            if ($n == $k) {
231
+                coordonnees_erreur($this, "<p>\n<b>$name</b> "
232
+                    . _T('zxml_vide_balise'));
233
+            }
234
+        } else {
235
+            $f = $this->fratrie[substr($depth,2)];
236
+            if (!preg_match($regle, $f)) {
237
+                coordonnees_erreur($this,
238
+                " <p>\n<b>$name</b> "
239
+                    .  _T('zxml_succession_fils_incorrecte')
240
+                    . '&nbsp;: <b>'
241
+                    . $f
242
+                    . '</b>');
243
+            }
244
+        }
245 245
 
246
-	}
247
-	if ($f = $this->process['fin']) $f($this, $name, $vide);
246
+    }
247
+    if ($f = $this->process['fin']) $f($this, $name, $vide);
248 248
 }
249 249
 
250 250
 // http://doc.spip.org/@textElement
251 251
 function textElement($phraseur, $data)
252 252
 {	
253
-	if (trim($data)) {
254
-		$d = $this->depth;
255
-		$d = $this->ouvrant[$d];
256
-		preg_match('/^\s*(\S+)/', $d, $m);
257
-		if ($this->dtc->pcdata[$m[1]]) {
258
-			coordonnees_erreur($this, " <p><b>". $m[1] . "</b> "
259
-			. _T('zxml_nonvide_balise') // message a affiner
260
-			);
261
-		}
262
-	}
263
-	if ($f = $this->process['text']) $f($this, $data);
253
+    if (trim($data)) {
254
+        $d = $this->depth;
255
+        $d = $this->ouvrant[$d];
256
+        preg_match('/^\s*(\S+)/', $d, $m);
257
+        if ($this->dtc->pcdata[$m[1]]) {
258
+            coordonnees_erreur($this, " <p><b>". $m[1] . "</b> "
259
+            . _T('zxml_nonvide_balise') // message a affiner
260
+            );
261
+        }
262
+    }
263
+    if ($f = $this->process['text']) $f($this, $data);
264 264
 }
265 265
 
266 266
 function piElement($phraseur, $target, $data)
267 267
 {
268
-	if ($f = $this->process['pi']) $f($this, $target, $data);
268
+    if ($f = $this->process['pi']) $f($this, $target, $data);
269 269
 }
270 270
 
271 271
 // Denonciation des entitees XML inconnues
@@ -278,61 +278,61 @@  discard block
 block discarded – undo
278 278
 // http://doc.spip.org/@defautElement
279 279
 function defaultElement($phraseur, $data)
280 280
 {
281
-	if (!preg_match('/^<!--/', $data)
282
-	AND (preg_match_all('/&([^;]*)?/', $data, $r, PREG_SET_ORDER)))
283
-		foreach ($r as $m) {
284
-			list($t,$e) = $m;
285
-			if (!isset($this->dtc->entites[$e]))
286
-				coordonnees_erreur($this, " <b>$e</b> "
287
-				  . _T('zxml_inconnu_entite')
288
-				  . ' '
289
-				  );
290
-		}
291
-	if (isset($this->process['default']) AND ($f = $this->process['default'])) {
292
-		$f($this, $data);
293
-	}
281
+    if (!preg_match('/^<!--/', $data)
282
+    AND (preg_match_all('/&([^;]*)?/', $data, $r, PREG_SET_ORDER)))
283
+        foreach ($r as $m) {
284
+            list($t,$e) = $m;
285
+            if (!isset($this->dtc->entites[$e]))
286
+                coordonnees_erreur($this, " <b>$e</b> "
287
+                    . _T('zxml_inconnu_entite')
288
+                    . ' '
289
+                    );
290
+        }
291
+    if (isset($this->process['default']) AND ($f = $this->process['default'])) {
292
+        $f($this, $data);
293
+    }
294 294
 }
295 295
 
296 296
 // http://doc.spip.org/@phraserTout
297 297
 function phraserTout($phraseur, $data)
298 298
 { 
299
-	xml_parsestring($this, $data);
299
+    xml_parsestring($this, $data);
300 300
 
301
-	if (!$this->dtc OR preg_match(',^' . _MESSAGE_DOCTYPE . ',', $data)) {
302
-		$this->err[]= array('DOCTYPE ?', 0, 0);
303
-	} else {
304
-		$this->valider_passe2($this);
305
-	}
301
+    if (!$this->dtc OR preg_match(',^' . _MESSAGE_DOCTYPE . ',', $data)) {
302
+        $this->err[]= array('DOCTYPE ?', 0, 0);
303
+    } else {
304
+        $this->valider_passe2($this);
305
+    }
306 306
 }
307 307
 
308 308
 // Init
309 309
 function ValidateurXML($process=array()) {
310
-	if (is_array($process)) $this->process = $process;
310
+    if (is_array($process)) $this->process = $process;
311 311
 }
312 312
 
313
- var $ids = array();
314
- var $idrefs = array();
315
- var $idrefss = array();
316
- var $debuts = array();
317
- var $fratrie = array();
313
+    var $ids = array();
314
+    var $idrefs = array();
315
+    var $idrefss = array();
316
+    var $debuts = array();
317
+    var $fratrie = array();
318 318
 
319
- var $dtc = NULL;
320
- var $sax = NULL;
321
- var $depth = "";
322
- var $entete = '';
323
- var $page = '';
324
- var $res = "";
325
- var $err = array();
326
- var $contenu = array();
327
- var $ouvrant = array();
328
- var $reperes = array();
329
- var $process =  array(
330
-			'debut' => 'xml_debutElement',
331
-			'fin' => 'xml_finElement',
332
-			'text' => 'xml_textElement',
333
-			'pi' => 'xml_piElement',
334
-			'default' => 'xml_defaultElement'
335
-				 );
319
+    var $dtc = NULL;
320
+    var $sax = NULL;
321
+    var $depth = "";
322
+    var $entete = '';
323
+    var $page = '';
324
+    var $res = "";
325
+    var $err = array();
326
+    var $contenu = array();
327
+    var $ouvrant = array();
328
+    var $reperes = array();
329
+    var $process =  array(
330
+            'debut' => 'xml_debutElement',
331
+            'fin' => 'xml_finElement',
332
+            'text' => 'xml_textElement',
333
+            'pi' => 'xml_piElement',
334
+            'default' => 'xml_defaultElement'
335
+                    );
336 336
 }
337 337
 
338 338
 // Retourne une structure ValidateurXML, dont le champ "err" est un tableau
@@ -341,8 +341,8 @@  discard block
 block discarded – undo
341 341
 // http://doc.spip.org/@xml_valider_dist
342 342
 function xml_valider_dist($page, $apply=false, $process=false, $doctype='', $charset=null)
343 343
 {
344
-	$f = new ValidateurXML($process);
345
-	$sax = charger_fonction('sax', 'xml');
346
-	return $sax($page, $apply, $f, $doctype, $charset);
344
+    $f = new ValidateurXML($process);
345
+    $sax = charger_fonction('sax', 'xml');
346
+    return $sax($page, $apply, $f, $doctype, $charset);
347 347
 }
348 348
 ?>
Please login to merge, or discard this patch.
ecrire/xml/interfaces.php 1 patch
Indentation   +15 added lines, -15 removed lines patch added patch discarded remove patch
@@ -13,7 +13,7 @@  discard block
 block discarded – undo
13 13
 if (!defined('_ECRIRE_INC_VERSION')) return;
14 14
 
15 15
 define('_REGEXP_DOCTYPE',
16
-	'/^((?:<\001?[?][^>]*>\s*)*(?:<!--.*?-->\s*)*)*<!DOCTYPE\s+(\w+)\s+(\w+)\s*([^>]*)>\s*/s');
16
+    '/^((?:<\001?[?][^>]*>\s*)*(?:<!--.*?-->\s*)*)*<!DOCTYPE\s+(\w+)\s+(\w+)\s*([^>]*)>\s*/s');
17 17
 
18 18
 define('_REGEXP_XML', '/^(\s*(?:<[?][^x>][^>]*>\s*)?(?:<[?]xml[^>]*>)?\s*(?:<!--.*?-->\s*)*)<(\w+)/s');
19 19
 
@@ -31,14 +31,14 @@  discard block
 block discarded – undo
31 31
 define('_REGEXP_ENTITY_DEF', '/^%('  . _SUB_REGEXP_SYMBOL . '+);/');
32 32
 define('_REGEXP_TYPE_XML', 'PUBLIC|SYSTEM|INCLUDE|IGNORE|CDATA');
33 33
 define('_REGEXP_ENTITY_DECL', '/^<!ENTITY\s+(%?)\s*(' .
34
-		_SUB_REGEXP_SYMBOL .
35
-		'+;?)\s+(' .
36
-		_REGEXP_TYPE_XML .
37
-		')?\s*(' .
38
-		"('([^']*)')" .
39
-		'|("([^"]*)")' .
34
+        _SUB_REGEXP_SYMBOL .
35
+        '+;?)\s+(' .
36
+        _REGEXP_TYPE_XML .
37
+        ')?\s*(' .
38
+        "('([^']*)')" .
39
+        '|("([^"]*)")' .
40 40
                 '|\s*(%' . _SUB_REGEXP_SYMBOL . '+;)\s*' .
41
-       		')\s*(--.*?--)?("([^"]*)")?\s*>\s*(.*)$/s');
41
+                ')\s*(--.*?--)?("([^"]*)")?\s*>\s*(.*)$/s');
42 42
 
43 43
 define('_REGEXP_INCLUDE_USE', '/^<!\[\s*%\s*([^;]*);\s*\[\s*(.*)$/s');
44 44
 
@@ -47,12 +47,12 @@  discard block
 block discarded – undo
47 47
 // Document Type Compilation
48 48
 
49 49
 class DTC {
50
-	var	$macros = array();
51
-	var 	$elements = array();
52
-	var 	$peres = array();
53
-	var 	$attributs = array();
54
-	var	$entites = array();
55
-	var	$regles = array();
56
-	var	$pcdata = array();
50
+    var	$macros = array();
51
+    var 	$elements = array();
52
+    var 	$peres = array();
53
+    var 	$attributs = array();
54
+    var	$entites = array();
55
+    var	$regles = array();
56
+    var	$pcdata = array();
57 57
 }
58 58
 ?>
Please login to merge, or discard this patch.
ecrire/base/upgrade.php 1 patch
Indentation   +253 added lines, -253 removed lines patch added patch discarded remove patch
@@ -30,38 +30,38 @@  discard block
 block discarded – undo
30 30
  */
31 31
 function base_upgrade_dist($titre='', $reprise='')
32 32
 {
33
-	if (!$titre) return; // anti-testeur automatique
34
-	if ($GLOBALS['spip_version_base']!=$GLOBALS['meta']['version_installee']) {
35
-		if (!is_numeric(_request('reinstall'))) {
36
-			include_spip('base/create');
37
-			spip_log("recree les tables eventuellement disparues","maj."._LOG_INFO_IMPORTANTE);
38
-			creer_base();
39
-		}
33
+    if (!$titre) return; // anti-testeur automatique
34
+    if ($GLOBALS['spip_version_base']!=$GLOBALS['meta']['version_installee']) {
35
+        if (!is_numeric(_request('reinstall'))) {
36
+            include_spip('base/create');
37
+            spip_log("recree les tables eventuellement disparues","maj."._LOG_INFO_IMPORTANTE);
38
+            creer_base();
39
+        }
40 40
 		
41
-		// quand on rentre par ici, c'est toujours une mise a jour de SPIP
42
-		// lancement de l'upgrade SPIP
43
-		$res = maj_base();
41
+        // quand on rentre par ici, c'est toujours une mise a jour de SPIP
42
+        // lancement de l'upgrade SPIP
43
+        $res = maj_base();
44 44
 
45
-		if ($res) {
46
-			// on arrete tout ici !
47
-			exit;
48
-		}
49
-	}
50
-	spip_log("Fin de mise a jour SQL. Debut m-a-j acces et config","maj."._LOG_INFO_IMPORTANTE);
45
+        if ($res) {
46
+            // on arrete tout ici !
47
+            exit;
48
+        }
49
+    }
50
+    spip_log("Fin de mise a jour SQL. Debut m-a-j acces et config","maj."._LOG_INFO_IMPORTANTE);
51 51
 	
52
-	// supprimer quelques fichiers temporaires qui peuvent se retrouver invalides
53
-	@spip_unlink(_CACHE_RUBRIQUES);
54
-	@spip_unlink(_CACHE_PIPELINES);
55
-	@spip_unlink(_CACHE_PLUGINS_PATH);
56
-	@spip_unlink(_CACHE_PLUGINS_OPT);
57
-	@spip_unlink(_CACHE_PLUGINS_FCT);
58
-	@spip_unlink(_CACHE_CHEMIN);
59
-	@spip_unlink(_DIR_TMP."plugin_xml_cache.gz");
52
+    // supprimer quelques fichiers temporaires qui peuvent se retrouver invalides
53
+    @spip_unlink(_CACHE_RUBRIQUES);
54
+    @spip_unlink(_CACHE_PIPELINES);
55
+    @spip_unlink(_CACHE_PLUGINS_PATH);
56
+    @spip_unlink(_CACHE_PLUGINS_OPT);
57
+    @spip_unlink(_CACHE_PLUGINS_FCT);
58
+    @spip_unlink(_CACHE_CHEMIN);
59
+    @spip_unlink(_DIR_TMP."plugin_xml_cache.gz");
60 60
 
61
-	include_spip('inc/auth');
62
-	auth_synchroniser_distant();
63
-	$config = charger_fonction('config', 'inc');
64
-	$config();
61
+    include_spip('inc/auth');
62
+    auth_synchroniser_distant();
63
+    $config = charger_fonction('config', 'inc');
64
+    $config();
65 65
 }
66 66
 
67 67
 /**
@@ -74,63 +74,63 @@  discard block
 block discarded – undo
74 74
  * @return array|bool
75 75
  */
76 76
 function maj_base($version_cible = 0, $redirect = '') {
77
-	global $spip_version_base;
77
+    global $spip_version_base;
78 78
 
79
-	$version_installee = @$GLOBALS['meta']['version_installee'];
80
-	//
81
-	// Si version nulle ou inexistante, c'est une nouvelle installation
82
-	//   => ne pas passer par le processus de mise a jour.
83
-	// De meme en cas de version superieure: ca devait etre un test,
84
-	// il y a eu le message d'avertissement il doit savoir ce qu'il fait
85
-	//
86
-	// version_installee = 1.702; quand on a besoin de forcer une MAJ
79
+    $version_installee = @$GLOBALS['meta']['version_installee'];
80
+    //
81
+    // Si version nulle ou inexistante, c'est une nouvelle installation
82
+    //   => ne pas passer par le processus de mise a jour.
83
+    // De meme en cas de version superieure: ca devait etre un test,
84
+    // il y a eu le message d'avertissement il doit savoir ce qu'il fait
85
+    //
86
+    // version_installee = 1.702; quand on a besoin de forcer une MAJ
87 87
 	
88
-	spip_log("Version anterieure: $version_installee. Courante: $spip_version_base","maj."._LOG_INFO_IMPORTANTE);
89
-	if (!$version_installee OR ($spip_version_base < $version_installee)) {
90
-		sql_replace('spip_meta', 
91
-		      array('nom' => 'version_installee',
92
-			    'valeur' => $spip_version_base,
93
-			    'impt' => 'non'));
94
-		return false;
95
-	}
96
-	if (!upgrade_test()) return true;
88
+    spip_log("Version anterieure: $version_installee. Courante: $spip_version_base","maj."._LOG_INFO_IMPORTANTE);
89
+    if (!$version_installee OR ($spip_version_base < $version_installee)) {
90
+        sql_replace('spip_meta', 
91
+                array('nom' => 'version_installee',
92
+                'valeur' => $spip_version_base,
93
+                'impt' => 'non'));
94
+        return false;
95
+    }
96
+    if (!upgrade_test()) return true;
97 97
 	
98
-	$cible = ($version_cible ? $version_cible : $spip_version_base);
98
+    $cible = ($version_cible ? $version_cible : $spip_version_base);
99 99
 
100
-	if ($version_installee <= 1.926) {
101
-		$n = floor($version_installee * 10);
102
-		while ($n < 19) {
103
-			$nom  = sprintf("v%03d",$n);
104
-			$f = charger_fonction($nom, 'maj', true);
105
-			if ($f) {
106
-				spip_log( "$f repercute les modifications de la version " . ($n/10),"maj."._LOG_INFO_IMPORTANTE);
107
-				$f($version_installee, $spip_version_base);
108
-			} else spip_log( "pas de fonction pour la maj $n $nom","maj."._LOG_INFO_IMPORTANTE);
109
-			$n++;
110
-		}
111
-		include_spip('maj/v019_pre193');
112
-		v019_pre193($version_installee, $version_cible);
113
-	}
114
-	if ($version_installee < 2000) {
115
-		if ($version_installee < 2)
116
-			$version_installee = $version_installee*1000;
117
-		include_spip('maj/v019');
118
-	}
119
-	if ($cible < 2)
120
-		$cible = $cible*1000;
100
+    if ($version_installee <= 1.926) {
101
+        $n = floor($version_installee * 10);
102
+        while ($n < 19) {
103
+            $nom  = sprintf("v%03d",$n);
104
+            $f = charger_fonction($nom, 'maj', true);
105
+            if ($f) {
106
+                spip_log( "$f repercute les modifications de la version " . ($n/10),"maj."._LOG_INFO_IMPORTANTE);
107
+                $f($version_installee, $spip_version_base);
108
+            } else spip_log( "pas de fonction pour la maj $n $nom","maj."._LOG_INFO_IMPORTANTE);
109
+            $n++;
110
+        }
111
+        include_spip('maj/v019_pre193');
112
+        v019_pre193($version_installee, $version_cible);
113
+    }
114
+    if ($version_installee < 2000) {
115
+        if ($version_installee < 2)
116
+            $version_installee = $version_installee*1000;
117
+        include_spip('maj/v019');
118
+    }
119
+    if ($cible < 2)
120
+        $cible = $cible*1000;
121 121
 
122
-	include_spip('maj/svn10000');
123
-	ksort($GLOBALS['maj']);
124
-	$res = maj_while($version_installee, $cible, $GLOBALS['maj'], 'version_installee','meta', $redirect, true);
125
-	if ($res) {
126
-		if (!is_array($res))
127
-			spip_log("Pb d'acces SQL a la mise a jour","maj."._LOG_INFO_ERREUR);
128
-		else {
129
-			echo _T('avis_operation_echec') . ' ' . join(' ', $res);
130
-			echo install_fin_html();
131
-		}
132
-	}
133
-	return $res;
122
+    include_spip('maj/svn10000');
123
+    ksort($GLOBALS['maj']);
124
+    $res = maj_while($version_installee, $cible, $GLOBALS['maj'], 'version_installee','meta', $redirect, true);
125
+    if ($res) {
126
+        if (!is_array($res))
127
+            spip_log("Pb d'acces SQL a la mise a jour","maj."._LOG_INFO_ERREUR);
128
+        else {
129
+            echo _T('avis_operation_echec') . ' ' . join(' ', $res);
130
+            echo install_fin_html();
131
+        }
132
+    }
133
+    return $res;
134 134
 }
135 135
 
136 136
 /**
@@ -166,48 +166,48 @@  discard block
 block discarded – undo
166 166
  */
167 167
 function maj_plugin($nom_meta_base_version, $version_cible, $maj, $table_meta='meta'){
168 168
 
169
-	if ($table_meta!=='meta')
170
-		lire_metas($table_meta);
171
-	if ( (!isset($GLOBALS[$table_meta][$nom_meta_base_version]) )
172
-			|| (!spip_version_compare($current_version = $GLOBALS[$table_meta][$nom_meta_base_version],$version_cible,'='))){
169
+    if ($table_meta!=='meta')
170
+        lire_metas($table_meta);
171
+    if ( (!isset($GLOBALS[$table_meta][$nom_meta_base_version]) )
172
+            || (!spip_version_compare($current_version = $GLOBALS[$table_meta][$nom_meta_base_version],$version_cible,'='))){
173 173
 
174
-		// $maj['create'] contient les directives propres a la premiere creation de base
175
-		// c'est une operation derogatoire qui fait aboutir directement dans la version_cible
176
-		if (isset($maj['create'])){
177
-			if (!isset($GLOBALS[$table_meta][$nom_meta_base_version])){
178
-				// installation : on ne fait que l'operation create
179
-				$maj = array("init"=>$maj['create']);
180
-				// et on lui ajoute un appel a inc/config
181
-				// pour creer les metas par defaut
182
-				$config = charger_fonction('config','inc');
183
-				$maj[$version_cible] = array(array($config));
184
-			}
185
-			// dans tous les cas enlever cet index du tableau
186
-			unset($maj['create']);
187
-		}
188
-		// si init, deja dans le bon ordre
189
-		if (!isset($maj['init'])){
190
-			include_spip('inc/plugin'); // pour spip_version_compare
191
-			uksort($maj,'spip_version_compare');
192
-		}
174
+        // $maj['create'] contient les directives propres a la premiere creation de base
175
+        // c'est une operation derogatoire qui fait aboutir directement dans la version_cible
176
+        if (isset($maj['create'])){
177
+            if (!isset($GLOBALS[$table_meta][$nom_meta_base_version])){
178
+                // installation : on ne fait que l'operation create
179
+                $maj = array("init"=>$maj['create']);
180
+                // et on lui ajoute un appel a inc/config
181
+                // pour creer les metas par defaut
182
+                $config = charger_fonction('config','inc');
183
+                $maj[$version_cible] = array(array($config));
184
+            }
185
+            // dans tous les cas enlever cet index du tableau
186
+            unset($maj['create']);
187
+        }
188
+        // si init, deja dans le bon ordre
189
+        if (!isset($maj['init'])){
190
+            include_spip('inc/plugin'); // pour spip_version_compare
191
+            uksort($maj,'spip_version_compare');
192
+        }
193 193
 
194
-		// la redirection se fait par defaut sur la page d'administration des plugins
195
-		// sauf lorsque nous sommes sur l'installation de SPIP
196
-		// ou define _REDIRECT_MAJ_PLUGIN
197
-		$redirect = (defined('_REDIRECT_MAJ_PLUGIN')?_REDIRECT_MAJ_PLUGIN:generer_url_ecrire('admin_plugin'));
198
-		if (defined('_ECRIRE_INSTALL')) {
199
-			$redirect = parametre_url(generer_url_ecrire('install'),'etape', _request('etape'));
200
-		}
194
+        // la redirection se fait par defaut sur la page d'administration des plugins
195
+        // sauf lorsque nous sommes sur l'installation de SPIP
196
+        // ou define _REDIRECT_MAJ_PLUGIN
197
+        $redirect = (defined('_REDIRECT_MAJ_PLUGIN')?_REDIRECT_MAJ_PLUGIN:generer_url_ecrire('admin_plugin'));
198
+        if (defined('_ECRIRE_INSTALL')) {
199
+            $redirect = parametre_url(generer_url_ecrire('install'),'etape', _request('etape'));
200
+        }
201 201
 		
202
-		$res = maj_while($current_version, $version_cible, $maj, $nom_meta_base_version, $table_meta, $redirect);
203
-		if ($res) {
204
-			if (!is_array($res))
205
-				spip_log("Pb d'acces SQL a la mise a jour","maj."._LOG_INFO_ERREUR);
206
-			else {
207
-				echo "<p>"._T('avis_operation_echec') . ' ' . join(' ', $res)."</p>";
208
-			}
209
-		}
210
-	}
202
+        $res = maj_while($current_version, $version_cible, $maj, $nom_meta_base_version, $table_meta, $redirect);
203
+        if ($res) {
204
+            if (!is_array($res))
205
+                spip_log("Pb d'acces SQL a la mise a jour","maj."._LOG_INFO_ERREUR);
206
+            else {
207
+                echo "<p>"._T('avis_operation_echec') . ' ' . join(' ', $res)."</p>";
208
+            }
209
+        }
210
+    }
211 211
 }
212 212
 
213 213
 /**
@@ -221,17 +221,17 @@  discard block
 block discarded – undo
221 221
  * @return void
222 222
  */
223 223
 function relance_maj($meta,$table,$redirect=''){
224
-	include_spip('inc/headers');
225
-	if (!$redirect){
226
-		// recuperer la valeur installee en cours
227
-		// on la tronque numeriquement, elle ne sert pas reellement
228
-		// sauf pour verifier que ce n'est pas oui ou non
229
-		// sinon is_numeric va echouer sur un numero de version 1.2.3
230
-		$installee = intval($GLOBALS[$table][$meta]);
231
-		$redirect = generer_url_ecrire('upgrade',"reinstall=$installee&meta=$meta&table=$table",true);
232
-	}
233
-	echo redirige_formulaire($redirect);
234
-	exit();
224
+    include_spip('inc/headers');
225
+    if (!$redirect){
226
+        // recuperer la valeur installee en cours
227
+        // on la tronque numeriquement, elle ne sert pas reellement
228
+        // sauf pour verifier que ce n'est pas oui ou non
229
+        // sinon is_numeric va echouer sur un numero de version 1.2.3
230
+        $installee = intval($GLOBALS[$table][$meta]);
231
+        $redirect = generer_url_ecrire('upgrade',"reinstall=$installee&meta=$meta&table=$table",true);
232
+    }
233
+    echo redirige_formulaire($redirect);
234
+    exit();
235 235
 }
236 236
 
237 237
 /**
@@ -244,21 +244,21 @@  discard block
 block discarded – undo
244 244
  * @return
245 245
  */
246 246
 function maj_debut_page($installee,$meta,$table){
247
-	static $done = false;
248
-	if ($done) return;
249
-	include_spip('inc/minipres');
250
-	@ini_set("zlib.output_compression","0"); // pour permettre l'affichage au fur et a mesure
251
-	$timeout = _UPGRADE_TIME_OUT*2;
252
-	$titre = _T('titre_page_upgrade');
253
-	$balise_img = charger_filtre('balise_img');
254
-	$titre .= $balise_img(chemin_image('searching.gif'));
255
-	echo ( install_debut_html($titre));
256
-	// script de rechargement auto sur timeout
257
-	$redirect = generer_url_ecrire('upgrade',"reinstall=$installee&meta=$meta&table=$table",true);
258
-	echo http_script("window.setTimeout('location.href=\"".$redirect."\";',".($timeout*1000).")");
259
-	echo "<div style='text-align: left'>\n";
260
-	ob_flush();flush();
261
-	$done = true;
247
+    static $done = false;
248
+    if ($done) return;
249
+    include_spip('inc/minipres');
250
+    @ini_set("zlib.output_compression","0"); // pour permettre l'affichage au fur et a mesure
251
+    $timeout = _UPGRADE_TIME_OUT*2;
252
+    $titre = _T('titre_page_upgrade');
253
+    $balise_img = charger_filtre('balise_img');
254
+    $titre .= $balise_img(chemin_image('searching.gif'));
255
+    echo ( install_debut_html($titre));
256
+    // script de rechargement auto sur timeout
257
+    $redirect = generer_url_ecrire('upgrade',"reinstall=$installee&meta=$meta&table=$table",true);
258
+    echo http_script("window.setTimeout('location.href=\"".$redirect."\";',".($timeout*1000).")");
259
+    echo "<div style='text-align: left'>\n";
260
+    ob_flush();flush();
261
+    $done = true;
262 262
 }
263 263
 
264 264
 define('_UPGRADE_TIME_OUT', 20);
@@ -298,46 +298,46 @@  discard block
 block discarded – undo
298 298
  */
299 299
 function maj_while($installee, $cible, $maj, $meta='', $table='meta', $redirect='', $debut_page = false)
300 300
 {
301
-	# inclusions pour que les procedures d'upgrade disposent des fonctions de base
302
-	include_spip('base/create');
303
-	include_spip('base/abstract_sql');
304
-	$trouver_table = charger_fonction('trouver_table','base');
305
-	include_spip('inc/plugin'); // pour spip_version_compare
306
-	$n = 0;
307
-	$time = time();
308
-	// definir le timeout qui peut etre utilise dans les fonctions
309
-	// de maj qui durent trop longtemps
310
-	define('_TIME_OUT',$time+_UPGRADE_TIME_OUT);
301
+    # inclusions pour que les procedures d'upgrade disposent des fonctions de base
302
+    include_spip('base/create');
303
+    include_spip('base/abstract_sql');
304
+    $trouver_table = charger_fonction('trouver_table','base');
305
+    include_spip('inc/plugin'); // pour spip_version_compare
306
+    $n = 0;
307
+    $time = time();
308
+    // definir le timeout qui peut etre utilise dans les fonctions
309
+    // de maj qui durent trop longtemps
310
+    define('_TIME_OUT',$time+_UPGRADE_TIME_OUT);
311 311
 
312
-	reset($maj);
313
-	while (list($v,)=each($maj)) {
314
-		// si une maj pour cette version
315
-		if ($v=='init' OR
316
-			(spip_version_compare($v,$installee,'>')
317
-			AND spip_version_compare($v,$cible,'<='))) {
318
-			if ($debut_page)
319
-				maj_debut_page($v,$meta,$table);
320
-			echo "MAJ $v";
321
-			$etape = serie_alter($v, $maj[$v], $meta, $table, $redirect);
322
-			$trouver_table(''); // vider le cache des descriptions de table
323
-			# echec sur une etape en cours ?
324
-			# on sort
325
-			if ($etape) return array($v, $etape);
326
-			$n = time() - $time;
327
-			spip_log( "$table $meta: $v en $n secondes",'maj.'._LOG_INFO_IMPORTANTE);
328
-			if ($meta) ecrire_meta($meta, $installee=$v,'oui', $table);
329
-			echo "<br />";
330
-		}
331
-		if (time() >= _TIME_OUT) {
332
-			relance_maj($meta,$table,$redirect);
333
-		}
334
-	}
335
-	$trouver_table(''); // vider le cache des descriptions de table
336
-	// indispensable pour les chgt de versions qui n'ecrivent pas en base
337
-	// tant pis pour la redondance eventuelle avec ci-dessus
338
-	if ($meta) ecrire_meta($meta, $cible,'oui',$table);
339
-	spip_log( "MAJ terminee. $meta: $installee",'maj.'._LOG_INFO_IMPORTANTE);
340
-	return array();
312
+    reset($maj);
313
+    while (list($v,)=each($maj)) {
314
+        // si une maj pour cette version
315
+        if ($v=='init' OR
316
+            (spip_version_compare($v,$installee,'>')
317
+            AND spip_version_compare($v,$cible,'<='))) {
318
+            if ($debut_page)
319
+                maj_debut_page($v,$meta,$table);
320
+            echo "MAJ $v";
321
+            $etape = serie_alter($v, $maj[$v], $meta, $table, $redirect);
322
+            $trouver_table(''); // vider le cache des descriptions de table
323
+            # echec sur une etape en cours ?
324
+            # on sort
325
+            if ($etape) return array($v, $etape);
326
+            $n = time() - $time;
327
+            spip_log( "$table $meta: $v en $n secondes",'maj.'._LOG_INFO_IMPORTANTE);
328
+            if ($meta) ecrire_meta($meta, $installee=$v,'oui', $table);
329
+            echo "<br />";
330
+        }
331
+        if (time() >= _TIME_OUT) {
332
+            relance_maj($meta,$table,$redirect);
333
+        }
334
+    }
335
+    $trouver_table(''); // vider le cache des descriptions de table
336
+    // indispensable pour les chgt de versions qui n'ecrivent pas en base
337
+    // tant pis pour la redondance eventuelle avec ci-dessus
338
+    if ($meta) ecrire_meta($meta, $cible,'oui',$table);
339
+    spip_log( "MAJ terminee. $meta: $installee",'maj.'._LOG_INFO_IMPORTANTE);
340
+    return array();
341 341
 }
342 342
 
343 343
 /**
@@ -359,45 +359,45 @@  discard block
 block discarded – undo
359 359
  * @return int
360 360
  */
361 361
 function serie_alter($serie, $q = array(), $meta='', $table='meta', $redirect='') {
362
-	$meta2 = $meta . '_maj_' . $serie;
363
-	$etape = intval(@$GLOBALS[$table][$meta2]);
364
-	foreach ($q as $i => $r) {
365
-		if ($i >= $etape) {
366
-			$msg = "maj $table $meta2 etape $i";
367
-			if (is_array($r)
368
-			  AND function_exists($f = array_shift($r))) {
369
-				spip_log( "$msg: $f " . join(',',$r),'maj.'._LOG_INFO_IMPORTANTE);
370
-				// pour les fonctions atomiques sql_xx
371
-				// on enregistre le meta avant de lancer la fonction,
372
-				// de maniere a eviter de boucler sur timeout
373
-				// mais pour les fonctions complexes,
374
-				// il faut les rejouer jusqu'a achevement.
375
-				// C'est a elle d'assurer qu'elles progressent a chaque rappel
376
-				if (strncmp($f,"sql_",4)==0)
377
-					ecrire_meta($meta2, $i+1, 'non', $table);
378
-				echo " <span title='$i'>.</span>";
379
-				call_user_func_array($f, $r);
380
-				// si temps imparti depasse, on relance sans ecrire en meta
381
-				// car on est peut etre sorti sur timeout si c'est une fonction longue
382
-				if (time() >= _TIME_OUT) {
383
-					relance_maj($meta,$table,$redirect);
384
-				}
385
-				ecrire_meta($meta2, $i+1, 'non', $table);
386
-				spip_log( "$meta2: ok", 'maj.'._LOG_INFO_IMPORTANTE);
387
-			}
388
-			else {
389
-				if (!is_array($r))
390
-					spip_log("maj $i format incorrect","maj."._LOG_ERREUR);
391
-				else
392
-					spip_log("maj $i fonction $f non definie","maj."._LOG_ERREUR);
393
-				// en cas d'erreur serieuse, on s'arrete
394
-				// mais on permet de passer par dessus en rechargeant la page.
395
-				return $i+1;
396
-			}
397
-		}
398
-	}
399
-	effacer_meta($meta2, $table);
400
-	return 0;
362
+    $meta2 = $meta . '_maj_' . $serie;
363
+    $etape = intval(@$GLOBALS[$table][$meta2]);
364
+    foreach ($q as $i => $r) {
365
+        if ($i >= $etape) {
366
+            $msg = "maj $table $meta2 etape $i";
367
+            if (is_array($r)
368
+              AND function_exists($f = array_shift($r))) {
369
+                spip_log( "$msg: $f " . join(',',$r),'maj.'._LOG_INFO_IMPORTANTE);
370
+                // pour les fonctions atomiques sql_xx
371
+                // on enregistre le meta avant de lancer la fonction,
372
+                // de maniere a eviter de boucler sur timeout
373
+                // mais pour les fonctions complexes,
374
+                // il faut les rejouer jusqu'a achevement.
375
+                // C'est a elle d'assurer qu'elles progressent a chaque rappel
376
+                if (strncmp($f,"sql_",4)==0)
377
+                    ecrire_meta($meta2, $i+1, 'non', $table);
378
+                echo " <span title='$i'>.</span>";
379
+                call_user_func_array($f, $r);
380
+                // si temps imparti depasse, on relance sans ecrire en meta
381
+                // car on est peut etre sorti sur timeout si c'est une fonction longue
382
+                if (time() >= _TIME_OUT) {
383
+                    relance_maj($meta,$table,$redirect);
384
+                }
385
+                ecrire_meta($meta2, $i+1, 'non', $table);
386
+                spip_log( "$meta2: ok", 'maj.'._LOG_INFO_IMPORTANTE);
387
+            }
388
+            else {
389
+                if (!is_array($r))
390
+                    spip_log("maj $i format incorrect","maj."._LOG_ERREUR);
391
+                else
392
+                    spip_log("maj $i fonction $f non definie","maj."._LOG_ERREUR);
393
+                // en cas d'erreur serieuse, on s'arrete
394
+                // mais on permet de passer par dessus en rechargeant la page.
395
+                return $i+1;
396
+            }
397
+        }
398
+    }
399
+    effacer_meta($meta2, $table);
400
+    return 0;
401 401
 }
402 402
 
403 403
 
@@ -407,49 +407,49 @@  discard block
 block discarded – undo
407 407
 
408 408
 // http://doc.spip.org/@upgrade_types_documents
409 409
 function upgrade_types_documents() {
410
-	if (include_spip('base/medias')
411
-	AND function_exists('creer_base_types_doc'))
412
-		creer_base_types_doc();
410
+    if (include_spip('base/medias')
411
+    AND function_exists('creer_base_types_doc'))
412
+        creer_base_types_doc();
413 413
 }
414 414
 
415 415
 // http://doc.spip.org/@upgrade_test
416 416
 function upgrade_test() {
417
-	sql_drop_table("spip_test", true);
418
-	sql_create("spip_test", array('a' => 'int'));
419
-	sql_alter("TABLE spip_test ADD b INT");
420
-	sql_insertq('spip_test', array('b' => 1), array('field'=>array('b' => 'int')));
421
-	$result = sql_select('b', "spip_test");
422
-	// ne pas garder le resultat de la requete sinon sqlite3 
423
-	// ne peut pas supprimer la table spip_test lors du sql_alter qui suit
424
-	// car cette table serait alors 'verouillee'
425
-	$result = $result?true:false; 
426
-	sql_alter("TABLE spip_test DROP b");
427
-	return $result;
417
+    sql_drop_table("spip_test", true);
418
+    sql_create("spip_test", array('a' => 'int'));
419
+    sql_alter("TABLE spip_test ADD b INT");
420
+    sql_insertq('spip_test', array('b' => 1), array('field'=>array('b' => 'int')));
421
+    $result = sql_select('b', "spip_test");
422
+    // ne pas garder le resultat de la requete sinon sqlite3 
423
+    // ne peut pas supprimer la table spip_test lors du sql_alter qui suit
424
+    // car cette table serait alors 'verouillee'
425
+    $result = $result?true:false; 
426
+    sql_alter("TABLE spip_test DROP b");
427
+    return $result;
428 428
 }
429 429
 
430 430
 // pour versions <= 1.926
431 431
 // http://doc.spip.org/@maj_version
432 432
 function maj_version ($version, $test = true) {
433
-	if ($test) {
434
-		if ($version>=1.922)
435
-			ecrire_meta('version_installee', $version, 'oui');
436
-		else {
437
-			// on le fait manuellement, car ecrire_meta utilise le champs impt qui est absent sur les vieilles versions
438
-			$GLOBALS['meta']['version_installee'] = $version;
439
-			sql_updateq('spip_meta',  array('valeur' => $version), "nom=" . sql_quote('version_installee') );
440
-		}
441
-		spip_log( "mise a jour de la base en $version","maj."._LOG_INFO_IMPORTANTE);
442
-	} else {
443
-		echo _T('alerte_maj_impossible', array('version' => $version));
444
-		exit;
445
-	}
433
+    if ($test) {
434
+        if ($version>=1.922)
435
+            ecrire_meta('version_installee', $version, 'oui');
436
+        else {
437
+            // on le fait manuellement, car ecrire_meta utilise le champs impt qui est absent sur les vieilles versions
438
+            $GLOBALS['meta']['version_installee'] = $version;
439
+            sql_updateq('spip_meta',  array('valeur' => $version), "nom=" . sql_quote('version_installee') );
440
+        }
441
+        spip_log( "mise a jour de la base en $version","maj."._LOG_INFO_IMPORTANTE);
442
+    } else {
443
+        echo _T('alerte_maj_impossible', array('version' => $version));
444
+        exit;
445
+    }
446 446
 }
447 447
 
448 448
 // pour versions <= 1.926
449 449
 // http://doc.spip.org/@upgrade_vers
450 450
 function upgrade_vers($version, $version_installee, $version_cible = 0){
451
-	return ($version_installee<$version
452
-		AND (($version_cible>=$version) OR ($version_cible==0))
453
-	);
451
+    return ($version_installee<$version
452
+        AND (($version_cible>=$version) OR ($version_cible==0))
453
+    );
454 454
 }
455 455
 ?>
Please login to merge, or discard this patch.
ecrire/base/trouver_table.php 1 patch
Indentation   +115 added lines, -115 removed lines patch added patch discarded remove patch
@@ -62,120 +62,120 @@
 block discarded – undo
62 62
  *
63 63
 **/
64 64
 function base_trouver_table_dist($nom, $serveur='', $table_spip = true){
65
-	static $nom_cache_desc_sql=array();
66
-	global $tables_principales, $tables_auxiliaires, $table_des_tables;
67
-
68
-	if (!spip_connect($serveur)
69
-	OR !preg_match('/^[a-zA-Z0-9._-]*/',$nom))
70
-		return null;
71
-
72
-	$connexion = &$GLOBALS['connexions'][$serveur ? strtolower($serveur) : 0];
73
-	$objets_sql = lister_tables_objets_sql("::md5");
74
-
75
-	// le nom du cache depend du serveur mais aussi du nom de la db et du prefixe
76
-	// ce qui permet une auto invalidation en cas de modif manuelle du fichier
77
-	// de connexion, et tout risque d'ambiguite
78
-	if (!isset($nom_cache_desc_sql[$serveur][$objets_sql])){
79
-		$nom_cache_desc_sql[$serveur][$objets_sql] =
80
-		  _DIR_CACHE . 'sql_desc_'
81
-		  . ($serveur ? "{$serveur}_":"")
82
-		  . substr(md5($connexion['db'].":".$connexion['prefixe'].":$objets_sql"),0,8)
83
-			.'.txt';
84
-		// nouveau nom de cache = nouvelle version en memoire
85
-		unset($connexion['tables']);
86
-	}
87
-
88
-	// un appel avec $nom vide est une demande explicite de vidange du cache des descriptions
89
-	if (!$nom){
90
-		spip_unlink($nom_cache_desc_sql[$serveur][$objets_sql]);
91
-		$connexion['tables'] = array();
92
-		return null;
93
-	}
94
-
95
-	$nom_sql = $nom;
96
-	if (preg_match('/\.(.*)$/', $nom, $s))
97
-		$nom_sql = $s[1];
98
-	else
99
-		$nom_sql = $nom;
100
-
101
-	$fdesc = $desc = '';
102
-	$connexion = &$GLOBALS['connexions'][$serveur ? $serveur : 0];
103
-
104
-	// base sous SPIP: gerer les abreviations explicites des noms de table
105
-	if ($connexion['spip_connect_version']) {
106
-		if ($table_spip AND isset($table_des_tables[$nom])) {
107
-			$nom = $table_des_tables[$nom];
108
-			$nom_sql = 'spip_' . $nom;
109
-		}
110
-	}
111
-
112
-	// si c'est la premiere table qu'on cherche
113
-	// et si on est pas explicitement en recalcul
114
-	// on essaye de recharger le cache des decriptions de ce serveur
115
-	// dans le fichier cache
116
-	if (!isset($connexion['tables'][$nom_sql])
117
-	  AND defined('_VAR_MODE') AND _VAR_MODE!=='recalcul'
118
-	  AND (!isset($connexion['tables']) OR !$connexion['tables'])) {
119
-		if (lire_fichier($nom_cache_desc_sql[$serveur][$objets_sql],$desc_cache)
120
-		  AND $desc_cache=unserialize($desc_cache))
121
-		  $connexion['tables'] = $desc_cache;
122
-	}
123
-	if ($table_spip AND !isset($connexion['tables'][$nom_sql])) {
124
-
125
-		if (isset($tables_principales[$nom_sql]))
126
-			$fdesc = $tables_principales[$nom_sql];
127
-		// meme si pas d'abreviation declaree, trouver la table spip_$nom
128
-		// si c'est une table principale,
129
-		// puisqu'on le fait aussi pour les tables auxiliaires
130
-		elseif ($nom_sql==$nom AND isset($tables_principales['spip_' .$nom])){
131
-			$nom_sql = 'spip_' . $nom;
132
-			$fdesc = &$tables_principales[$nom_sql];
133
-		}
134
-		elseif (isset($tables_auxiliaires[$n=$nom])
135
-		  OR isset($tables_auxiliaires[$n='spip_'.$nom])) {
136
-			$nom_sql = $n;
137
-			$fdesc = &$tables_auxiliaires[$n];
138
-		}  # table locale a cote de SPIP, comme non SPIP:
139
-	}
140
-	if (!isset($connexion['tables'][$nom_sql])) {
141
-
142
-		// La *vraie* base a la priorite
143
-		$desc = sql_showtable($nom_sql, $table_spip, $serveur);
144
-		if (!$desc OR !$desc['field']) {
145
-			if (!$fdesc) {
146
-				spip_log("trouver_table: table inconnue '$serveur' '$nom'",_LOG_INFO_IMPORTANTE);
147
-				return null;
148
-			}
149
-			// on ne sait pas lire la structure de la table :
150
-			// on retombe sur la description donnee dans les fichiers spip
151
-			$desc = $fdesc;
152
-		}
153
-		else {
154
-			$desc['exist'] = true;
155
-		}
156
-
157
-		$desc['table'] = $desc['table_sql'] = $nom_sql;
158
-		$desc['connexion']= $serveur;
159
-
160
-		// charger les infos declarees pour cette table
161
-		// en lui passant les infos connues
162
-		// $desc est prioritaire pour la description de la table
163
-		$desc = array_merge(lister_tables_objets_sql($nom_sql,$desc),$desc);
164
-
165
-		// si tables_objets_sql est bien fini d'init, on peut cacher
166
-		$connexion['tables'][$nom_sql] = $desc;
167
-		$res = &$connexion['tables'][$nom_sql];
168
-		// une nouvelle table a ete decrite
169
-		// mettons donc a jour le cache des descriptions de ce serveur
170
-		if (is_writeable(_DIR_CACHE))
171
-			ecrire_fichier($nom_cache_desc_sql[$serveur][$objets_sql],serialize($connexion['tables']),true);
172
-	}
173
-	else
174
-		$res = &$connexion['tables'][$nom_sql];
175
-
176
-	// toujours retourner $nom dans id_table
177
-	$res['id_table']=$nom;
178
-
179
-	return $res;
65
+    static $nom_cache_desc_sql=array();
66
+    global $tables_principales, $tables_auxiliaires, $table_des_tables;
67
+
68
+    if (!spip_connect($serveur)
69
+    OR !preg_match('/^[a-zA-Z0-9._-]*/',$nom))
70
+        return null;
71
+
72
+    $connexion = &$GLOBALS['connexions'][$serveur ? strtolower($serveur) : 0];
73
+    $objets_sql = lister_tables_objets_sql("::md5");
74
+
75
+    // le nom du cache depend du serveur mais aussi du nom de la db et du prefixe
76
+    // ce qui permet une auto invalidation en cas de modif manuelle du fichier
77
+    // de connexion, et tout risque d'ambiguite
78
+    if (!isset($nom_cache_desc_sql[$serveur][$objets_sql])){
79
+        $nom_cache_desc_sql[$serveur][$objets_sql] =
80
+            _DIR_CACHE . 'sql_desc_'
81
+            . ($serveur ? "{$serveur}_":"")
82
+            . substr(md5($connexion['db'].":".$connexion['prefixe'].":$objets_sql"),0,8)
83
+            .'.txt';
84
+        // nouveau nom de cache = nouvelle version en memoire
85
+        unset($connexion['tables']);
86
+    }
87
+
88
+    // un appel avec $nom vide est une demande explicite de vidange du cache des descriptions
89
+    if (!$nom){
90
+        spip_unlink($nom_cache_desc_sql[$serveur][$objets_sql]);
91
+        $connexion['tables'] = array();
92
+        return null;
93
+    }
94
+
95
+    $nom_sql = $nom;
96
+    if (preg_match('/\.(.*)$/', $nom, $s))
97
+        $nom_sql = $s[1];
98
+    else
99
+        $nom_sql = $nom;
100
+
101
+    $fdesc = $desc = '';
102
+    $connexion = &$GLOBALS['connexions'][$serveur ? $serveur : 0];
103
+
104
+    // base sous SPIP: gerer les abreviations explicites des noms de table
105
+    if ($connexion['spip_connect_version']) {
106
+        if ($table_spip AND isset($table_des_tables[$nom])) {
107
+            $nom = $table_des_tables[$nom];
108
+            $nom_sql = 'spip_' . $nom;
109
+        }
110
+    }
111
+
112
+    // si c'est la premiere table qu'on cherche
113
+    // et si on est pas explicitement en recalcul
114
+    // on essaye de recharger le cache des decriptions de ce serveur
115
+    // dans le fichier cache
116
+    if (!isset($connexion['tables'][$nom_sql])
117
+      AND defined('_VAR_MODE') AND _VAR_MODE!=='recalcul'
118
+      AND (!isset($connexion['tables']) OR !$connexion['tables'])) {
119
+        if (lire_fichier($nom_cache_desc_sql[$serveur][$objets_sql],$desc_cache)
120
+          AND $desc_cache=unserialize($desc_cache))
121
+            $connexion['tables'] = $desc_cache;
122
+    }
123
+    if ($table_spip AND !isset($connexion['tables'][$nom_sql])) {
124
+
125
+        if (isset($tables_principales[$nom_sql]))
126
+            $fdesc = $tables_principales[$nom_sql];
127
+        // meme si pas d'abreviation declaree, trouver la table spip_$nom
128
+        // si c'est une table principale,
129
+        // puisqu'on le fait aussi pour les tables auxiliaires
130
+        elseif ($nom_sql==$nom AND isset($tables_principales['spip_' .$nom])){
131
+            $nom_sql = 'spip_' . $nom;
132
+            $fdesc = &$tables_principales[$nom_sql];
133
+        }
134
+        elseif (isset($tables_auxiliaires[$n=$nom])
135
+          OR isset($tables_auxiliaires[$n='spip_'.$nom])) {
136
+            $nom_sql = $n;
137
+            $fdesc = &$tables_auxiliaires[$n];
138
+        }  # table locale a cote de SPIP, comme non SPIP:
139
+    }
140
+    if (!isset($connexion['tables'][$nom_sql])) {
141
+
142
+        // La *vraie* base a la priorite
143
+        $desc = sql_showtable($nom_sql, $table_spip, $serveur);
144
+        if (!$desc OR !$desc['field']) {
145
+            if (!$fdesc) {
146
+                spip_log("trouver_table: table inconnue '$serveur' '$nom'",_LOG_INFO_IMPORTANTE);
147
+                return null;
148
+            }
149
+            // on ne sait pas lire la structure de la table :
150
+            // on retombe sur la description donnee dans les fichiers spip
151
+            $desc = $fdesc;
152
+        }
153
+        else {
154
+            $desc['exist'] = true;
155
+        }
156
+
157
+        $desc['table'] = $desc['table_sql'] = $nom_sql;
158
+        $desc['connexion']= $serveur;
159
+
160
+        // charger les infos declarees pour cette table
161
+        // en lui passant les infos connues
162
+        // $desc est prioritaire pour la description de la table
163
+        $desc = array_merge(lister_tables_objets_sql($nom_sql,$desc),$desc);
164
+
165
+        // si tables_objets_sql est bien fini d'init, on peut cacher
166
+        $connexion['tables'][$nom_sql] = $desc;
167
+        $res = &$connexion['tables'][$nom_sql];
168
+        // une nouvelle table a ete decrite
169
+        // mettons donc a jour le cache des descriptions de ce serveur
170
+        if (is_writeable(_DIR_CACHE))
171
+            ecrire_fichier($nom_cache_desc_sql[$serveur][$objets_sql],serialize($connexion['tables']),true);
172
+    }
173
+    else
174
+        $res = &$connexion['tables'][$nom_sql];
175
+
176
+    // toujours retourner $nom dans id_table
177
+    $res['id_table']=$nom;
178
+
179
+    return $res;
180 180
 }
181 181
 ?>
Please login to merge, or discard this patch.
ecrire/base/connect_sql.php 1 patch
Indentation   +229 added lines, -229 removed lines patch added patch discarded remove patch
@@ -26,108 +26,108 @@  discard block
 block discarded – undo
26 26
 
27 27
 // http://doc.spip.org/@spip_connect
28 28
 function spip_connect($serveur='', $version='') {
29
-	global $connexions, $spip_sql_version;
30
-
31
-	$serveur = !is_string($serveur) ? '' : strtolower($serveur);
32
-	$index = $serveur ? $serveur : 0;
33
-	if (!$version) $version = $spip_sql_version;
34
-	if (isset($connexions[$index][$version])) return $connexions[$index];
35
-
36
-	include_spip('base/abstract_sql');
37
-	$install = (_request('exec') == 'install');
38
-
39
-	// Premiere connexion ?
40
-	if (!($old = isset($connexions[$index]))) {
41
-		$f = (!preg_match('/^[\w\.]*$/', $serveur))
42
-		? '' // nom de serveur mal ecrit
43
-		: ($serveur ?
44
-		   ( _DIR_CONNECT. $serveur . '.php') // serveur externe
45
-		    : (_FILE_CONNECT ? _FILE_CONNECT // serveur principal ok
46
-		       : ($install ? _FILE_CONNECT_TMP // init du serveur principal
47
-			 : ''))); // installation pas faite
48
-
49
-		unset($GLOBALS['db_ok']);
50
-		unset($GLOBALS['spip_connect_version']);
51
-		if ($f) { 
52
-			if (is_readable($f)) { 
53
-				include($f);
54
-			} elseif ($serveur AND !$install) {
55
-				// chercher une declaration de serveur dans le path
56
-				// qui pourra un jour servir a declarer des bases sqlite
57
-				// par des plugins. Et sert aussi aux boucles POUR.
58
-				find_in_path("$serveur.php",'connect/',true);
59
-			}
60
-		}
61
-		if (!isset($GLOBALS['db_ok'])) {
62
-		  // fera mieux la prochaine fois
63
-			if ($install) return false;
64
-			if ($f AND is_readable($f))
65
-				spip_log("spip_connect: fichier de connexion '$f' OK.", _LOG_INFO_IMPORTANTE);
66
-			else
67
-				spip_log("spip_connect: fichier de connexion '$f' non trouve", _LOG_INFO_IMPORTANTE);
68
-			spip_log("spip_connect: echec connexion ou serveur $index mal defini dans '$f'.", _LOG_HS);
69
-			// ne plus reessayer si ce n'est pas l'install
70
-			return $connexions[$index]=false;
71
-		}
72
-		$connexions[$index] = $GLOBALS['db_ok'];
73
-	}
74
-	// si la connexion a deja ete tentee mais a echoue, le dire!
75
-	if (!$connexions[$index]) return false;
76
-
77
-	// la connexion a reussi ou etait deja faite.
78
-	// chargement de la version du jeu de fonctions
79
-	// si pas dans le fichier par defaut
80
-	$type = $GLOBALS['db_ok']['type'];
81
-	$jeu = 'spip_' . $type .'_functions_' . $version;
82
-	if (!isset($GLOBALS[$jeu])) {
83
-		if (!find_in_path($type . '_' . $version . '.php', 'req/', true)){
84
-		  spip_log("spip_connect: serveur $index version '$version' non defini pour '$type'", _LOG_HS);
85
-			// ne plus reessayer
86
-			return $connexions[$index][$version] = array();
87
-		}
88
-	}
89
-	$connexions[$index][$version] = $GLOBALS[$jeu];
90
-	if ($old) return $connexions[$index];
91
-
92
-	$connexions[$index]['spip_connect_version'] = isset($GLOBALS['spip_connect_version']) ? $GLOBALS['spip_connect_version'] : 0;
93
-
94
-	// initialisation de l'alphabet utilise dans les connexions SQL
95
-	// si l'installation l'a determine.
96
-	// Celui du serveur principal l'impose aux serveurs secondaires
97
-	// s'ils le connaissent
98
-
99
-	if (!$serveur) {
100
-		$charset = spip_connect_main($GLOBALS[$jeu]);
101
-		if (!$charset) {
102
-			unset($connexions[$index]);
103
-			spip_log("spip_connect: absence de charset", _LOG_AVERTISSEMENT);
104
-			return false;
105
-		}
106
-	} else	{
107
-		// spip_meta n'existe pas toujours dans la base
108
-		// C'est le cas d'un dump sqlite par exemple 
109
-		if ($connexions[$index]['spip_connect_version']
110
-		AND sql_showtable('spip_meta', true, $serveur)
111
-		AND $r = sql_getfetsel('valeur', 'spip_meta', "nom='charset_sql_connexion'",'','','','',$serveur))
112
-			$charset = $r;
113
-		else $charset = -1;
114
-	}
115
-	if ($charset != -1) {
116
-		$f = $GLOBALS[$jeu]['set_charset'];
117
-		if (function_exists($f))
118
-			$f($charset, $serveur);
119
-	}
120
-	return $connexions[$index];
29
+    global $connexions, $spip_sql_version;
30
+
31
+    $serveur = !is_string($serveur) ? '' : strtolower($serveur);
32
+    $index = $serveur ? $serveur : 0;
33
+    if (!$version) $version = $spip_sql_version;
34
+    if (isset($connexions[$index][$version])) return $connexions[$index];
35
+
36
+    include_spip('base/abstract_sql');
37
+    $install = (_request('exec') == 'install');
38
+
39
+    // Premiere connexion ?
40
+    if (!($old = isset($connexions[$index]))) {
41
+        $f = (!preg_match('/^[\w\.]*$/', $serveur))
42
+        ? '' // nom de serveur mal ecrit
43
+        : ($serveur ?
44
+           ( _DIR_CONNECT. $serveur . '.php') // serveur externe
45
+            : (_FILE_CONNECT ? _FILE_CONNECT // serveur principal ok
46
+               : ($install ? _FILE_CONNECT_TMP // init du serveur principal
47
+             : ''))); // installation pas faite
48
+
49
+        unset($GLOBALS['db_ok']);
50
+        unset($GLOBALS['spip_connect_version']);
51
+        if ($f) { 
52
+            if (is_readable($f)) { 
53
+                include($f);
54
+            } elseif ($serveur AND !$install) {
55
+                // chercher une declaration de serveur dans le path
56
+                // qui pourra un jour servir a declarer des bases sqlite
57
+                // par des plugins. Et sert aussi aux boucles POUR.
58
+                find_in_path("$serveur.php",'connect/',true);
59
+            }
60
+        }
61
+        if (!isset($GLOBALS['db_ok'])) {
62
+            // fera mieux la prochaine fois
63
+            if ($install) return false;
64
+            if ($f AND is_readable($f))
65
+                spip_log("spip_connect: fichier de connexion '$f' OK.", _LOG_INFO_IMPORTANTE);
66
+            else
67
+                spip_log("spip_connect: fichier de connexion '$f' non trouve", _LOG_INFO_IMPORTANTE);
68
+            spip_log("spip_connect: echec connexion ou serveur $index mal defini dans '$f'.", _LOG_HS);
69
+            // ne plus reessayer si ce n'est pas l'install
70
+            return $connexions[$index]=false;
71
+        }
72
+        $connexions[$index] = $GLOBALS['db_ok'];
73
+    }
74
+    // si la connexion a deja ete tentee mais a echoue, le dire!
75
+    if (!$connexions[$index]) return false;
76
+
77
+    // la connexion a reussi ou etait deja faite.
78
+    // chargement de la version du jeu de fonctions
79
+    // si pas dans le fichier par defaut
80
+    $type = $GLOBALS['db_ok']['type'];
81
+    $jeu = 'spip_' . $type .'_functions_' . $version;
82
+    if (!isset($GLOBALS[$jeu])) {
83
+        if (!find_in_path($type . '_' . $version . '.php', 'req/', true)){
84
+            spip_log("spip_connect: serveur $index version '$version' non defini pour '$type'", _LOG_HS);
85
+            // ne plus reessayer
86
+            return $connexions[$index][$version] = array();
87
+        }
88
+    }
89
+    $connexions[$index][$version] = $GLOBALS[$jeu];
90
+    if ($old) return $connexions[$index];
91
+
92
+    $connexions[$index]['spip_connect_version'] = isset($GLOBALS['spip_connect_version']) ? $GLOBALS['spip_connect_version'] : 0;
93
+
94
+    // initialisation de l'alphabet utilise dans les connexions SQL
95
+    // si l'installation l'a determine.
96
+    // Celui du serveur principal l'impose aux serveurs secondaires
97
+    // s'ils le connaissent
98
+
99
+    if (!$serveur) {
100
+        $charset = spip_connect_main($GLOBALS[$jeu]);
101
+        if (!$charset) {
102
+            unset($connexions[$index]);
103
+            spip_log("spip_connect: absence de charset", _LOG_AVERTISSEMENT);
104
+            return false;
105
+        }
106
+    } else	{
107
+        // spip_meta n'existe pas toujours dans la base
108
+        // C'est le cas d'un dump sqlite par exemple 
109
+        if ($connexions[$index]['spip_connect_version']
110
+        AND sql_showtable('spip_meta', true, $serveur)
111
+        AND $r = sql_getfetsel('valeur', 'spip_meta', "nom='charset_sql_connexion'",'','','','',$serveur))
112
+            $charset = $r;
113
+        else $charset = -1;
114
+    }
115
+    if ($charset != -1) {
116
+        $f = $GLOBALS[$jeu]['set_charset'];
117
+        if (function_exists($f))
118
+            $f($charset, $serveur);
119
+    }
120
+    return $connexions[$index];
121 121
 }
122 122
 
123 123
 function spip_sql_erreur($serveur='')
124 124
 {
125
-	$connexion = spip_connect($serveur);
126
-	$e = sql_errno($serveur);
127
-	$t = (isset($connexion['type']) ? $connexion['type'] : 'sql');
128
-	$m = "Erreur $e de $t: " . sql_error($serveur) . "\n" . $connexion['last'];
129
-	$f = $t . $serveur;
130
-	spip_log($m, $f.'.'._LOG_ERREUR);
125
+    $connexion = spip_connect($serveur);
126
+    $e = sql_errno($serveur);
127
+    $t = (isset($connexion['type']) ? $connexion['type'] : 'sql');
128
+    $m = "Erreur $e de $t: " . sql_error($serveur) . "\n" . $connexion['last'];
129
+    $f = $t . $serveur;
130
+    spip_log($m, $f.'.'._LOG_ERREUR);
131 131
 }
132 132
 
133 133
 // Cette fonction ne doit etre appelee qu'a travers la fonction sql_serveur
@@ -137,14 +137,14 @@  discard block
 block discarded – undo
137 137
 
138 138
 // http://doc.spip.org/@spip_connect_sql
139 139
 function spip_connect_sql($version, $ins='', $serveur='', $cont=false) {
140
-	$desc = spip_connect($serveur, $version);
141
-	if (function_exists($f = @$desc[$version][$ins])) return $f;
142
-	if ($cont) return $desc;
143
-	if ($ins)
144
-		spip_log("Le serveur '$serveur' version $version n'a pas '$ins'", _LOG_ERREUR);
145
-	include_spip('inc/minipres');
146
-	echo minipres(_T('info_travaux_titre'), _T('titre_probleme_technique'));
147
-	exit;
140
+    $desc = spip_connect($serveur, $version);
141
+    if (function_exists($f = @$desc[$version][$ins])) return $f;
142
+    if ($cont) return $desc;
143
+    if ($ins)
144
+        spip_log("Le serveur '$serveur' version $version n'a pas '$ins'", _LOG_ERREUR);
145
+    include_spip('inc/minipres');
146
+    echo minipres(_T('info_travaux_titre'), _T('titre_probleme_technique'));
147
+    exit;
148 148
 }
149 149
 
150 150
 /**
@@ -167,54 +167,54 @@  discard block
 block discarded – undo
167 167
  * @return array
168 168
  */
169 169
 function spip_connect_db($host, $port, $login, $pass, $db='', $type='mysql', $prefixe='', $auth='') {
170
-	global $db_ok;
171
-
172
-	// temps avant nouvelle tentative de connexion
173
-	// suite a une connection echouee
174
-	if (!defined('_CONNECT_RETRY_DELAY'))
175
-		define('_CONNECT_RETRY_DELAY',30);
176
-
177
-	$f = "";
178
-	// un fichier de identifiant par combinaison (type,host,port,db)
179
-	// pour ne pas declarer tout indisponible d'un coup
180
-	// si en cours d'installation ou si db=@test@ on ne pose rien
181
-	// car c'est un test de connexion
182
-	if (!defined('_ECRIRE_INSTALL') AND !$db=="@test@")
183
-		$f = _DIR_TMP . $type . '.' . substr(md5($host.$port.$db),0,8) . '.out';
184
-	elseif ($db=='@test@')
185
-		$db = '';
186
-
187
-	if ($f
188
-		AND @file_exists($f)
189
-	  AND (time() - @filemtime($f) < _CONNECT_RETRY_DELAY)) {
190
-		spip_log( "Echec : $f recent. Pas de tentative de connexion", _LOG_HS);
191
-		return;
192
-	}
193
-
194
-	if (!$prefixe)
195
-		$prefixe = isset($GLOBALS['table_prefix'])
196
-		? $GLOBALS['table_prefix'] : $db;
197
-	$h = charger_fonction($type, 'req', true);
198
-	if (!$h) {
199
-		spip_log( "les requetes $type ne sont pas fournies", _LOG_HS);
200
-		return;
201
-	}
202
-	if ($g = $h($host, $port, $login, $pass, $db, $prefixe)) {
203
-
204
-		if (!is_array($auth)) {
205
-			// compatibilite version 0.7 initiale
206
-			$g['ldap'] = $auth;
207
-			$auth = array('ldap' => $auth);
208
-		}
209
-		$g['authentification'] = $auth;
210
-		$g['type'] = $type;
211
-		return $db_ok = $g;
212
-	}
213
-	// En cas d'indisponibilite du serveur, eviter de le bombarder
214
-	if ($f) {
215
-		@touch($f);
216
-		spip_log( "Echec connexion serveur $type : host[$host] port[$port] login[$login] base[$db]", $type.'.'._LOG_HS);
217
-	}
170
+    global $db_ok;
171
+
172
+    // temps avant nouvelle tentative de connexion
173
+    // suite a une connection echouee
174
+    if (!defined('_CONNECT_RETRY_DELAY'))
175
+        define('_CONNECT_RETRY_DELAY',30);
176
+
177
+    $f = "";
178
+    // un fichier de identifiant par combinaison (type,host,port,db)
179
+    // pour ne pas declarer tout indisponible d'un coup
180
+    // si en cours d'installation ou si db=@test@ on ne pose rien
181
+    // car c'est un test de connexion
182
+    if (!defined('_ECRIRE_INSTALL') AND !$db=="@test@")
183
+        $f = _DIR_TMP . $type . '.' . substr(md5($host.$port.$db),0,8) . '.out';
184
+    elseif ($db=='@test@')
185
+        $db = '';
186
+
187
+    if ($f
188
+        AND @file_exists($f)
189
+      AND (time() - @filemtime($f) < _CONNECT_RETRY_DELAY)) {
190
+        spip_log( "Echec : $f recent. Pas de tentative de connexion", _LOG_HS);
191
+        return;
192
+    }
193
+
194
+    if (!$prefixe)
195
+        $prefixe = isset($GLOBALS['table_prefix'])
196
+        ? $GLOBALS['table_prefix'] : $db;
197
+    $h = charger_fonction($type, 'req', true);
198
+    if (!$h) {
199
+        spip_log( "les requetes $type ne sont pas fournies", _LOG_HS);
200
+        return;
201
+    }
202
+    if ($g = $h($host, $port, $login, $pass, $db, $prefixe)) {
203
+
204
+        if (!is_array($auth)) {
205
+            // compatibilite version 0.7 initiale
206
+            $g['ldap'] = $auth;
207
+            $auth = array('ldap' => $auth);
208
+        }
209
+        $g['authentification'] = $auth;
210
+        $g['type'] = $type;
211
+        return $db_ok = $g;
212
+    }
213
+    // En cas d'indisponibilite du serveur, eviter de le bombarder
214
+    if ($f) {
215
+        @touch($f);
216
+        spip_log( "Echec connexion serveur $type : host[$host] port[$port] login[$login] base[$db]", $type.'.'._LOG_HS);
217
+    }
218 218
 }
219 219
 
220 220
 // Premiere connexion au serveur principal:
@@ -233,25 +233,25 @@  discard block
 block discarded – undo
233 233
 // http://doc.spip.org/@spip_connect_main
234 234
 function spip_connect_main($connexion)
235 235
 {
236
-	if ($GLOBALS['spip_connect_version']< 0.1 AND _DIR_RESTREINT){
237
-		include_spip('inc/headers');
238
-		redirige_url_ecrire('upgrade', 'reinstall=oui');
239
-	}
240
-
241
-	if (!($f = $connexion['select'])) return false;
242
-	// en cas d'erreur select retourne la requette (is_string=true donc)
243
-	if (!$r = $f('valeur','spip_meta', "nom='charset_sql_connexion'")
244
-	  OR is_string($r))
245
-		return false;
246
-	if (!($f = $connexion['fetch'])) return false;
247
-	$r = $f($r);
248
-	return ($r['valeur'] ? $r['valeur'] : -1);
236
+    if ($GLOBALS['spip_connect_version']< 0.1 AND _DIR_RESTREINT){
237
+        include_spip('inc/headers');
238
+        redirige_url_ecrire('upgrade', 'reinstall=oui');
239
+    }
240
+
241
+    if (!($f = $connexion['select'])) return false;
242
+    // en cas d'erreur select retourne la requette (is_string=true donc)
243
+    if (!$r = $f('valeur','spip_meta', "nom='charset_sql_connexion'")
244
+      OR is_string($r))
245
+        return false;
246
+    if (!($f = $connexion['fetch'])) return false;
247
+    $r = $f($r);
248
+    return ($r['valeur'] ? $r['valeur'] : -1);
249 249
 }
250 250
 
251 251
 // compatibilite
252 252
 function spip_connect_ldap($serveur='') {
253
-	include_spip('auth/ldap');
254
-	return auth_ldap_connect($serveur);
253
+    include_spip('auth/ldap');
254
+    return auth_ldap_connect($serveur);
255 255
 }
256 256
 
257 257
 // Echappement d'une valeur (num, string, array) sous forme de chaine PHP
@@ -259,23 +259,23 @@  discard block
 block discarded – undo
259 259
 // Usage sql un peu deprecie, a remplacer par sql_quote()
260 260
 // http://doc.spip.org/@_q
261 261
 function _q ($a) {
262
-	return (is_numeric($a)) ? strval($a) :
263
-		(!is_array($a) ? ("'" . addslashes($a) . "'")
264
-		 : join(",", array_map('_q', $a)));
262
+    return (is_numeric($a)) ? strval($a) :
263
+        (!is_array($a) ? ("'" . addslashes($a) . "'")
264
+         : join(",", array_map('_q', $a)));
265 265
 }
266 266
 
267 267
 
268 268
 // Recuperer le nom de la table de jointure xxxx sur l'objet yyyy
269 269
 // http://doc.spip.org/@table_jointure
270 270
 function table_jointure($x, $y) {
271
-	$trouver_table = charger_fonction('trouver_table', 'base');
272
-	$xdesc = $trouver_table(table_objet($x));
273
-	$ydesc = $trouver_table(table_objet($y));
274
-	$ix = @$xdesc['key']["PRIMARY KEY"];
275
-	$iy = @$ydesc['key']["PRIMARY KEY"];
276
-	if ($table = $ydesc['tables_jointures'][$ix]) return $table;
277
-	if ($table = $xdesc['tables_jointures'][$iy]) return $table;
278
-	return '';
271
+    $trouver_table = charger_fonction('trouver_table', 'base');
272
+    $xdesc = $trouver_table(table_objet($x));
273
+    $ydesc = $trouver_table(table_objet($y));
274
+    $ix = @$xdesc['key']["PRIMARY KEY"];
275
+    $iy = @$ydesc['key']["PRIMARY KEY"];
276
+    if ($table = $ydesc['tables_jointures'][$ix]) return $table;
277
+    if ($table = $xdesc['tables_jointures'][$iy]) return $table;
278
+    return '';
279 279
 }
280 280
 
281 281
 /**
@@ -288,29 +288,29 @@  discard block
 block discarded – undo
288 288
  * @return array
289 289
  */
290 290
 function query_echappe_textes($query){
291
-	static $codeEchappements = array("''"=>"\x1@##@\x1", "\'"=>"\x2@##@\x2", "\\\""=>"\x3@##@\x3");
292
-	$query = str_replace(array_keys($codeEchappements), array_values($codeEchappements), $query);
293
-	if (preg_match_all("/((['])[^']*(\\2))|(([\"])[^\"]*(\\5))/S",$query,$textes)){
294
-		$textes = reset($textes); // indice 0 du match
295
-		switch(count($textes)){
296
-			case 0:$replace=array();break;
297
-			case 1:$replace=array('%1$s');break;
298
-			case 2:$replace=array('%1$s','%2$s');break;
299
-			case 3:$replace=array('%1$s','%2$s','%3$s');break;
300
-			case 4:$replace=array('%1$s','%2$s','%3$s','%4$s');break;
301
-			case 5:$replace=array('%1$s','%2$s','%3$s','%4$s','%5$s');break;
302
-			default:
303
-				$replace = range(1,count($textes));
304
-				$replace = '%'.implode('$s,%',$replace).'$s';
305
-				$replace = explode(',',$replace);
306
-				break;
307
-		}
308
-		$query = str_replace($textes,$replace,$query);
309
-	}
310
-	else
311
-		$textes = array();
312
-
313
-	return array($query, $textes);
291
+    static $codeEchappements = array("''"=>"\x1@##@\x1", "\'"=>"\x2@##@\x2", "\\\""=>"\x3@##@\x3");
292
+    $query = str_replace(array_keys($codeEchappements), array_values($codeEchappements), $query);
293
+    if (preg_match_all("/((['])[^']*(\\2))|(([\"])[^\"]*(\\5))/S",$query,$textes)){
294
+        $textes = reset($textes); // indice 0 du match
295
+        switch(count($textes)){
296
+            case 0:$replace=array();break;
297
+            case 1:$replace=array('%1$s');break;
298
+            case 2:$replace=array('%1$s','%2$s');break;
299
+            case 3:$replace=array('%1$s','%2$s','%3$s');break;
300
+            case 4:$replace=array('%1$s','%2$s','%3$s','%4$s');break;
301
+            case 5:$replace=array('%1$s','%2$s','%3$s','%4$s','%5$s');break;
302
+            default:
303
+                $replace = range(1,count($textes));
304
+                $replace = '%'.implode('$s,%',$replace).'$s';
305
+                $replace = explode(',',$replace);
306
+                break;
307
+        }
308
+        $query = str_replace($textes,$replace,$query);
309
+    }
310
+    else
311
+        $textes = array();
312
+
313
+    return array($query, $textes);
314 314
 }
315 315
 
316 316
 /**
@@ -322,37 +322,37 @@  discard block
 block discarded – undo
322 322
  * @return string
323 323
  */
324 324
 function query_reinjecte_textes($query, $textes){
325
-	static $codeEchappements = array("''"=>"\x1@##@\x1", "\'"=>"\x2@##@\x2", "\\\""=>"\x3@##@\x3");
326
-	# debug de la substitution
327
-	#if (($c1=substr_count($query,"%"))!=($c2=count($textes))){
328
-	#	spip_log("$c1 ::". $query,"tradquery"._LOG_ERREUR);
329
-	#	spip_log("$c2 ::". var_export($textes,1),"tradquery"._LOG_ERREUR);
330
-	#	spip_log("ini ::". $qi,"tradquery"._LOG_ERREUR);
331
-	#}
332
-	switch (count($textes)){
333
-		case 0:break;
334
-		case 1:$query=sprintf($query,$textes[0]);break;
335
-		case 2:$query=sprintf($query,$textes[0],$textes[1]);break;
336
-		case 3:$query=sprintf($query,$textes[0],$textes[1],$textes[2]);break;
337
-		case 4:$query=sprintf($query,$textes[0],$textes[1],$textes[2],$textes[3]);break;
338
-		case 5:$query=sprintf($query,$textes[0],$textes[1],$textes[2],$textes[3],$textes[4]);break;
339
-		default:
340
-			array_unshift($textes,$query);
341
-			$query = call_user_func_array('sprintf',$textes);
342
-			break;
343
-	}
344
-
345
-	$query = str_replace(array_values($codeEchappements), array_keys($codeEchappements), $query);
346
-
347
-	return $query;
325
+    static $codeEchappements = array("''"=>"\x1@##@\x1", "\'"=>"\x2@##@\x2", "\\\""=>"\x3@##@\x3");
326
+    # debug de la substitution
327
+    #if (($c1=substr_count($query,"%"))!=($c2=count($textes))){
328
+    #	spip_log("$c1 ::". $query,"tradquery"._LOG_ERREUR);
329
+    #	spip_log("$c2 ::". var_export($textes,1),"tradquery"._LOG_ERREUR);
330
+    #	spip_log("ini ::". $qi,"tradquery"._LOG_ERREUR);
331
+    #}
332
+    switch (count($textes)){
333
+        case 0:break;
334
+        case 1:$query=sprintf($query,$textes[0]);break;
335
+        case 2:$query=sprintf($query,$textes[0],$textes[1]);break;
336
+        case 3:$query=sprintf($query,$textes[0],$textes[1],$textes[2]);break;
337
+        case 4:$query=sprintf($query,$textes[0],$textes[1],$textes[2],$textes[3]);break;
338
+        case 5:$query=sprintf($query,$textes[0],$textes[1],$textes[2],$textes[3],$textes[4]);break;
339
+        default:
340
+            array_unshift($textes,$query);
341
+            $query = call_user_func_array('sprintf',$textes);
342
+            break;
343
+    }
344
+
345
+    $query = str_replace(array_values($codeEchappements), array_keys($codeEchappements), $query);
346
+
347
+    return $query;
348 348
 }
349 349
 
350 350
 // Pour compatibilite. Ne plus utiliser.
351 351
 // http://doc.spip.org/@spip_query
352 352
 function spip_query($query, $serveur='') {
353
-	global $spip_sql_version;
354
-	$f = spip_connect_sql($spip_sql_version, 'query', $serveur, true);
355
-	return function_exists($f) ? $f($query, $serveur) : false;
353
+    global $spip_sql_version;
354
+    $f = spip_connect_sql($spip_sql_version, 'query', $serveur, true);
355
+    return function_exists($f) ? $f($query, $serveur) : false;
356 356
 }
357 357
 
358 358
 ?>
Please login to merge, or discard this patch.
ecrire/base/abstract_sql.php 1 patch
Indentation   +319 added lines, -319 removed lines patch added patch discarded remove patch
@@ -53,13 +53,13 @@  discard block
 block discarded – undo
53 53
  * 
54 54
 **/
55 55
 function sql_serveur($ins_sql='', $serveur='', $continue=false) {
56
-	static $sql_serveur = array();
57
-	if (!isset($sql_serveur[$serveur][$ins_sql])){
58
-		$f = spip_connect_sql(sql_ABSTRACT_VERSION, $ins_sql, $serveur, $continue);
59
-		if (!is_string($f) OR !$f) return $f;
60
-		$sql_serveur[$serveur][$ins_sql] = $f;
61
-	}
62
-	return $sql_serveur[$serveur][$ins_sql];
56
+    static $sql_serveur = array();
57
+    if (!isset($sql_serveur[$serveur][$ins_sql])){
58
+        $f = spip_connect_sql(sql_ABSTRACT_VERSION, $ins_sql, $serveur, $continue);
59
+        if (!is_string($f) OR !$f) return $f;
60
+        $sql_serveur[$serveur][$ins_sql] = $f;
61
+    }
62
+    return $sql_serveur[$serveur][$ins_sql];
63 63
 }
64 64
 
65 65
 /**
@@ -81,16 +81,16 @@  discard block
 block discarded – undo
81 81
  * 		Retourne le nom du charset si effectivement trouve, sinon false.
82 82
 **/
83 83
 function sql_get_charset($charset, $serveur='', $option=true){
84
-  // le nom http du charset differe parfois du nom SQL utf-8 ==> utf8 etc.
85
-	$desc = sql_serveur('', $serveur, true,true);
86
-	$desc = $desc[sql_ABSTRACT_VERSION];
87
-	$c = $desc['charsets'][$charset];
88
-	if ($c) {
89
-		if (function_exists($f=@$desc['get_charset'])) 
90
-			if ($f($c, $serveur, $option!==false)) return $c;
91
-	}
92
-	spip_log( "SPIP ne connait pas les Charsets disponibles sur le serveur $serveur. Le serveur choisira seul.", _LOG_AVERTISSEMENT);
93
-	return false;
84
+    // le nom http du charset differe parfois du nom SQL utf-8 ==> utf8 etc.
85
+    $desc = sql_serveur('', $serveur, true,true);
86
+    $desc = $desc[sql_ABSTRACT_VERSION];
87
+    $c = $desc['charsets'][$charset];
88
+    if ($c) {
89
+        if (function_exists($f=@$desc['get_charset'])) 
90
+            if ($f($c, $serveur, $option!==false)) return $c;
91
+    }
92
+    spip_log( "SPIP ne connait pas les Charsets disponibles sur le serveur $serveur. Le serveur choisira seul.", _LOG_AVERTISSEMENT);
93
+    return false;
94 94
 }
95 95
 
96 96
 
@@ -116,9 +116,9 @@  discard block
 block discarded – undo
116 116
  * 		Retourne true si elle reussie.
117 117
 **/
118 118
 function sql_set_charset($charset,$serveur='', $option=true){
119
-	$f = sql_serveur('set_charset', $serveur,  $option==='continue' OR $option===false);
120
-	if (!is_string($f) OR !$f) return false;
121
-	return $f($charset, $serveur, $option!==false);
119
+    $f = sql_serveur('set_charset', $serveur,  $option==='continue' OR $option===false);
120
+    if (!is_string($f) OR !$f) return false;
121
+    return $f($charset, $serveur, $option!==false);
122 122
 }
123 123
 
124 124
 
@@ -168,33 +168,33 @@  discard block
 block discarded – undo
168 168
  *
169 169
 **/
170 170
 function sql_select ($select = array(), $from = array(), $where = array(),
171
-	$groupby = array(), $orderby = array(), $limit = '', $having = array(),
172
-	$serveur='', $option=true) {
173
-	$f = sql_serveur('select', $serveur,  $option==='continue' OR $option===false);
174
-	if (!is_string($f) OR !$f) return false;
175
-
176
-	$debug = (defined('_VAR_MODE') AND _VAR_MODE == 'debug');
177
-	if (($option !== false) AND !$debug) {
178
-		$res = $f($select, $from, $where, $groupby, $orderby, $limit, $having, $serveur, is_array($option) ? true : $option);
179
-	} else {
180
-		$query = $f($select, $from, $where, $groupby, $orderby, $limit, $having, $serveur, false);
181
-		if (!$option) return $query;
182
-		// le debug, c'est pour ce qui a ete produit par le compilateur
183
-		if (isset($GLOBALS['debug']['aucasou'])) {
184
-			list($table, $id,) = $GLOBALS['debug']['aucasou'];
185
-			$nom = $GLOBALS['debug_objets']['courant'] . $id;
186
-			$GLOBALS['debug_objets']['requete'][$nom] = $query;
187
-		}
188
-		$res = $f($select, $from, $where, $groupby, $orderby, $limit, $having, $serveur, true);
189
-	}
190
-
191
-	// en cas d'erreur
192
-	if (!is_string($res)) return $res;
193
-	// denoncer l'erreur SQL dans sa version brute
194
-	spip_sql_erreur($serveur);
195
-	// idem dans sa version squelette (prefixe des tables non substitue)
196
-	erreur_squelette(array(sql_errno($serveur), sql_error($serveur), $res), $option);
197
-	return false;
171
+    $groupby = array(), $orderby = array(), $limit = '', $having = array(),
172
+    $serveur='', $option=true) {
173
+    $f = sql_serveur('select', $serveur,  $option==='continue' OR $option===false);
174
+    if (!is_string($f) OR !$f) return false;
175
+
176
+    $debug = (defined('_VAR_MODE') AND _VAR_MODE == 'debug');
177
+    if (($option !== false) AND !$debug) {
178
+        $res = $f($select, $from, $where, $groupby, $orderby, $limit, $having, $serveur, is_array($option) ? true : $option);
179
+    } else {
180
+        $query = $f($select, $from, $where, $groupby, $orderby, $limit, $having, $serveur, false);
181
+        if (!$option) return $query;
182
+        // le debug, c'est pour ce qui a ete produit par le compilateur
183
+        if (isset($GLOBALS['debug']['aucasou'])) {
184
+            list($table, $id,) = $GLOBALS['debug']['aucasou'];
185
+            $nom = $GLOBALS['debug_objets']['courant'] . $id;
186
+            $GLOBALS['debug_objets']['requete'][$nom] = $query;
187
+        }
188
+        $res = $f($select, $from, $where, $groupby, $orderby, $limit, $having, $serveur, true);
189
+    }
190
+
191
+    // en cas d'erreur
192
+    if (!is_string($res)) return $res;
193
+    // denoncer l'erreur SQL dans sa version brute
194
+    spip_sql_erreur($serveur);
195
+    // idem dans sa version squelette (prefixe des tables non substitue)
196
+    erreur_squelette(array(sql_errno($serveur), sql_error($serveur), $res), $option);
197
+    return false;
198 198
 }
199 199
 
200 200
 
@@ -231,9 +231,9 @@  discard block
 block discarded – undo
231 231
  *  
232 232
 **/
233 233
 function sql_get_select($select = array(), $from = array(), $where = array(),
234
-	$groupby = array(), $orderby = array(), $limit = '', $having = array(),
235
-	$serveur='') {
236
-	return sql_select ($select, $from, $where, $groupby, $orderby, $limit, $having, $serveur, false);
234
+    $groupby = array(), $orderby = array(), $limit = '', $having = array(),
235
+    $serveur='') {
236
+    return sql_select ($select, $from, $where, $groupby, $orderby, $limit, $having, $serveur, false);
237 237
 }
238 238
 
239 239
 
@@ -267,13 +267,13 @@  discard block
 block discarded – undo
267 267
  *
268 268
 **/
269 269
 function sql_countsel($from = array(), $where = array(),
270
-		      $groupby = array(), $having = array(),
271
-	$serveur='', $option=true) {
272
-	$f = sql_serveur('countsel', $serveur,  $option==='continue' OR $option===false);
273
-	if (!is_string($f) OR !$f) return false;
274
-	$r = $f($from, $where, $groupby, $having, $serveur, $option!==false);
275
-	if ($r===false) spip_sql_erreur($serveur);
276
-	return $r;
270
+                $groupby = array(), $having = array(),
271
+    $serveur='', $option=true) {
272
+    $f = sql_serveur('countsel', $serveur,  $option==='continue' OR $option===false);
273
+    if (!is_string($f) OR !$f) return false;
274
+    $r = $f($from, $where, $groupby, $having, $serveur, $option!==false);
275
+    if ($r===false) spip_sql_erreur($serveur);
276
+    return $r;
277 277
 }
278 278
 
279 279
 /**
@@ -300,11 +300,11 @@  discard block
 block discarded – undo
300 300
  * 		Ce retour n'est pas pertinent pour savoir si l'operation est correctement realisee.
301 301
 **/
302 302
 function sql_alter($q, $serveur='', $option=true) {
303
-	$f = sql_serveur('alter', $serveur,  $option==='continue' OR $option===false);
304
-	if (!is_string($f) OR !$f) return false;
305
-	$r = $f($q, $serveur, $option!==false);
306
-	if ($r===false) spip_sql_erreur($serveur);
307
-	return $r;
303
+    $f = sql_serveur('alter', $serveur,  $option==='continue' OR $option===false);
304
+    if (!is_string($f) OR !$f) return false;
305
+    $r = $f($q, $serveur, $option!==false);
306
+    if ($r===false) spip_sql_erreur($serveur);
307
+    return $r;
308 308
 }
309 309
 
310 310
 /**
@@ -327,9 +327,9 @@  discard block
 block discarded – undo
327 327
  * 		presentant une ligne de resultat d'une selection 
328 328
  */
329 329
 function sql_fetch($res, $serveur='', $option=true) {
330
-	$f = sql_serveur('fetch', $serveur,  $option==='continue' OR $option===false);
331
-	if (!is_string($f) OR !$f) return false;
332
-	return $f($res, NULL, $serveur, $option!==false);
330
+    $f = sql_serveur('fetch', $serveur,  $option==='continue' OR $option===false);
331
+    if (!is_string($f) OR !$f) return false;
332
+    return $f($res, NULL, $serveur, $option!==false);
333 333
 }
334 334
 
335 335
 
@@ -356,14 +356,14 @@  discard block
 block discarded – undo
356 356
  * 		presentant une ligne de resultat d'une selection 
357 357
  */
358 358
 function sql_fetch_all($res, $serveur='', $option=true){
359
-	$rows = array();
360
-	if (!$res) return $rows;
361
-	$f = sql_serveur('fetch', $serveur,  $option==='continue' OR $option===false);
362
-	if (!is_string($f) OR !$f) return array();
363
-	while ($r = $f($res, NULL, $serveur, $option!==false))
364
-		$rows[] = $r;
365
-	sql_free($res, $serveur);
366
-	return $rows;
359
+    $rows = array();
360
+    if (!$res) return $rows;
361
+    $f = sql_serveur('fetch', $serveur,  $option==='continue' OR $option===false);
362
+    if (!is_string($f) OR !$f) return array();
363
+    while ($r = $f($res, NULL, $serveur, $option!==false))
364
+        $rows[] = $r;
365
+    sql_free($res, $serveur);
366
+    return $rows;
367 367
 }
368 368
 
369 369
 /**
@@ -391,11 +391,11 @@  discard block
 block discarded – undo
391 391
  * 		Operation effectuee (true), sinon false.
392 392
 **/
393 393
 function sql_seek($res, $row_number, $serveur='', $option=true) {
394
-	$f = sql_serveur('seek', $serveur,  $option==='continue' OR $option===false);
395
-	if (!is_string($f) OR !$f) return false;
396
-	$r = $f($res, $row_number, $serveur, $option!==false);
397
-	if ($r===false) spip_sql_erreur($serveur);
398
-	return $r;
394
+    $f = sql_serveur('seek', $serveur,  $option==='continue' OR $option===false);
395
+    if (!is_string($f) OR !$f) return false;
396
+    $r = $f($res, $row_number, $serveur, $option!==false);
397
+    if ($r===false) spip_sql_erreur($serveur);
398
+    return $r;
399 399
 }
400 400
 
401 401
 
@@ -420,11 +420,11 @@  discard block
 block discarded – undo
420 420
  * 		False en cas d'erreur.
421 421
 **/
422 422
 function sql_listdbs($serveur='', $option=true) {
423
-	$f = sql_serveur('listdbs', $serveur,  $option==='continue' OR $option===false);
424
-	if (!is_string($f) OR !$f) return false;
425
-	$r = $f($serveur);
426
-	if ($r===false) spip_sql_erreur($serveur);
427
-	return $r;
423
+    $f = sql_serveur('listdbs', $serveur,  $option==='continue' OR $option===false);
424
+    if (!is_string($f) OR !$f) return false;
425
+    $r = $f($serveur);
426
+    if ($r===false) spip_sql_erreur($serveur);
427
+    return $r;
428 428
 }
429 429
 
430 430
 
@@ -447,29 +447,29 @@  discard block
 block discarded – undo
447 447
 **/
448 448
 function sql_selectdb($nom, $serveur='', $option=true)
449 449
 {
450
-	$f = sql_serveur('selectdb', $serveur,  $option==='continue' OR $option===false);
451
-	if (!is_string($f) OR !$f) return false;
452
-	$r = $f($nom, $serveur, $option!==false);
453
-	if ($r===false) spip_sql_erreur($serveur);
454
-	return $r;
450
+    $f = sql_serveur('selectdb', $serveur,  $option==='continue' OR $option===false);
451
+    if (!is_string($f) OR !$f) return false;
452
+    $r = $f($nom, $serveur, $option!==false);
453
+    if ($r===false) spip_sql_erreur($serveur);
454
+    return $r;
455 455
 }
456 456
 
457 457
 // http://doc.spip.org/@sql_count
458 458
 function sql_count($res, $serveur='', $option=true)
459 459
 {
460
-	$f = sql_serveur('count', $serveur,  $option==='continue' OR $option===false);
461
-	if (!is_string($f) OR !$f) return false;
462
-	$r = $f($res, $serveur, $option!==false);
463
-	if ($r===false) spip_sql_erreur($serveur);
464
-	return $r;
460
+    $f = sql_serveur('count', $serveur,  $option==='continue' OR $option===false);
461
+    if (!is_string($f) OR !$f) return false;
462
+    $r = $f($res, $serveur, $option!==false);
463
+    if ($r===false) spip_sql_erreur($serveur);
464
+    return $r;
465 465
 }
466 466
 
467 467
 // http://doc.spip.org/@sql_free
468 468
 function sql_free($res, $serveur='', $option=true)
469 469
 {
470
-	$f = sql_serveur('free', $serveur,  $option==='continue' OR $option===false);
471
-	if (!is_string($f) OR !$f) return false;
472
-	return $f($res);
470
+    $f = sql_serveur('free', $serveur,  $option==='continue' OR $option===false);
471
+    if (!is_string($f) OR !$f) return false;
472
+    return $f($res);
473 473
 }
474 474
 
475 475
 // Cette fonction ne garantit pas une portabilite totale
@@ -479,41 +479,41 @@  discard block
 block discarded – undo
479 479
 // http://doc.spip.org/@sql_insert
480 480
 function sql_insert($table, $noms, $valeurs, $desc=array(), $serveur='', $option=true)
481 481
 {
482
-	$f = sql_serveur('insert', $serveur,  $option==='continue' OR $option===false);
483
-	if (!is_string($f) OR !$f) return false;
484
-	$r = $f($table, $noms, $valeurs, $desc, $serveur, $option!==false);
485
-	if ($r === false) spip_sql_erreur($serveur);
486
-	return $r;
482
+    $f = sql_serveur('insert', $serveur,  $option==='continue' OR $option===false);
483
+    if (!is_string($f) OR !$f) return false;
484
+    $r = $f($table, $noms, $valeurs, $desc, $serveur, $option!==false);
485
+    if ($r === false) spip_sql_erreur($serveur);
486
+    return $r;
487 487
 }
488 488
 
489 489
 // http://doc.spip.org/@sql_insertq
490 490
 function sql_insertq($table, $couples=array(), $desc=array(), $serveur='', $option=true)
491 491
 {
492
-	$f = sql_serveur('insertq', $serveur,  $option==='continue' OR $option===false);
493
-	if (!is_string($f) OR !$f) return false;
494
-	$r = $f($table, $couples, $desc, $serveur, $option!==false);
495
-	if ($r === false) spip_sql_erreur($serveur);
496
-	return $r;
492
+    $f = sql_serveur('insertq', $serveur,  $option==='continue' OR $option===false);
493
+    if (!is_string($f) OR !$f) return false;
494
+    $r = $f($table, $couples, $desc, $serveur, $option!==false);
495
+    if ($r === false) spip_sql_erreur($serveur);
496
+    return $r;
497 497
 }
498 498
 
499 499
 // http://doc.spip.org/@sql_insertq_multi
500 500
 function sql_insertq_multi($table, $couples=array(), $desc=array(), $serveur='', $option=true)
501 501
 {
502
-	$f = sql_serveur('insertq_multi', $serveur,  $option==='continue' OR $option===false);
503
-	if (!is_string($f) OR !$f) return false;
504
-	$r = $f($table, $couples, $desc, $serveur, $option!==false);
505
-	if ($r === false) spip_sql_erreur($serveur);
506
-	return $r;
502
+    $f = sql_serveur('insertq_multi', $serveur,  $option==='continue' OR $option===false);
503
+    if (!is_string($f) OR !$f) return false;
504
+    $r = $f($table, $couples, $desc, $serveur, $option!==false);
505
+    if ($r === false) spip_sql_erreur($serveur);
506
+    return $r;
507 507
 }
508 508
 
509 509
 // http://doc.spip.org/@sql_update
510 510
 function sql_update($table, $exp, $where='', $desc=array(), $serveur='', $option=true)
511 511
 {
512
-	$f = sql_serveur('update', $serveur,  $option==='continue' OR $option===false);
513
-	if (!is_string($f) OR !$f) return false;
514
-	$r = $f($table, $exp, $where, $desc, $serveur, $option!==false);
515
-	if ($r === false) spip_sql_erreur($serveur);
516
-	return $r;
512
+    $f = sql_serveur('update', $serveur,  $option==='continue' OR $option===false);
513
+    if (!is_string($f) OR !$f) return false;
514
+    $r = $f($table, $exp, $where, $desc, $serveur, $option!==false);
515
+    if ($r === false) spip_sql_erreur($serveur);
516
+    return $r;
517 517
 }
518 518
 
519 519
 // Update est presque toujours appelee sur des constantes ou des dates
@@ -522,63 +522,63 @@  discard block
 block discarded – undo
522 522
 // http://doc.spip.org/@sql_updateq
523 523
 function sql_updateq($table, $exp, $where='', $desc=array(), $serveur='', $option=true)
524 524
 {
525
-	$f = sql_serveur('updateq', $serveur,  $option==='continue' OR $option===false);
526
-	if (!is_string($f) OR !$f) return false;
527
-	$r = $f($table, $exp, $where, $desc, $serveur, $option!==false);
528
-	if ($r === false) spip_sql_erreur($serveur);
529
-	return $r;
525
+    $f = sql_serveur('updateq', $serveur,  $option==='continue' OR $option===false);
526
+    if (!is_string($f) OR !$f) return false;
527
+    $r = $f($table, $exp, $where, $desc, $serveur, $option!==false);
528
+    if ($r === false) spip_sql_erreur($serveur);
529
+    return $r;
530 530
 }
531 531
 
532 532
 // http://doc.spip.org/@sql_delete
533 533
 function sql_delete($table, $where='', $serveur='', $option=true)
534 534
 {
535
-	$f = sql_serveur('delete', $serveur,  $option==='continue' OR $option===false);
536
-	if (!is_string($f) OR !$f) return false;
537
-	$r = $f($table, $where, $serveur, $option!==false);
538
-	if ($r === false) spip_sql_erreur($serveur);
539
-	return $r;
535
+    $f = sql_serveur('delete', $serveur,  $option==='continue' OR $option===false);
536
+    if (!is_string($f) OR !$f) return false;
537
+    $r = $f($table, $where, $serveur, $option!==false);
538
+    if ($r === false) spip_sql_erreur($serveur);
539
+    return $r;
540 540
 }
541 541
 
542 542
 // http://doc.spip.org/@sql_replace
543 543
 function sql_replace($table, $couples, $desc=array(), $serveur='', $option=true)
544 544
 {
545
-	$f = sql_serveur('replace', $serveur,  $option==='continue' OR $option===false);
546
-	if (!is_string($f) OR !$f) return false;
547
-	$r = $f($table, $couples, $desc, $serveur, $option!==false);
548
-	if ($r === false) spip_sql_erreur($serveur);
549
-	return $r;
545
+    $f = sql_serveur('replace', $serveur,  $option==='continue' OR $option===false);
546
+    if (!is_string($f) OR !$f) return false;
547
+    $r = $f($table, $couples, $desc, $serveur, $option!==false);
548
+    if ($r === false) spip_sql_erreur($serveur);
549
+    return $r;
550 550
 }
551 551
 
552 552
 
553 553
 // http://doc.spip.org/@sql_replace_multi
554 554
 function sql_replace_multi($table, $tab_couples, $desc=array(), $serveur='', $option=true)
555 555
 {
556
-	$f = sql_serveur('replace_multi', $serveur,  $option==='continue' OR $option===false);
557
-	if (!is_string($f) OR !$f) return false;
558
-	$r = $f($table, $tab_couples, $desc, $serveur, $option!==false);
559
-	if ($r === false) spip_sql_erreur($serveur);
560
-	return $r;
556
+    $f = sql_serveur('replace_multi', $serveur,  $option==='continue' OR $option===false);
557
+    if (!is_string($f) OR !$f) return false;
558
+    $r = $f($table, $tab_couples, $desc, $serveur, $option!==false);
559
+    if ($r === false) spip_sql_erreur($serveur);
560
+    return $r;
561 561
 }
562 562
 
563 563
 // http://doc.spip.org/@sql_drop_table
564 564
 function sql_drop_table($table, $exist='', $serveur='', $option=true)
565 565
 {
566
-	$f = sql_serveur('drop_table', $serveur,  $option==='continue' OR $option===false);
567
-	if (!is_string($f) OR !$f) return false;
568
-	$r = $f($table, $exist, $serveur, $option!==false);
569
-	if ($r === false) spip_sql_erreur($serveur);
570
-	return $r;
566
+    $f = sql_serveur('drop_table', $serveur,  $option==='continue' OR $option===false);
567
+    if (!is_string($f) OR !$f) return false;
568
+    $r = $f($table, $exist, $serveur, $option!==false);
569
+    if ($r === false) spip_sql_erreur($serveur);
570
+    return $r;
571 571
 }
572 572
 
573 573
 // supprimer une vue sql
574 574
 // http://doc.spip.org/@sql_drop_view
575 575
 function sql_drop_view($table, $exist='', $serveur='', $option=true)
576 576
 {
577
-	$f = sql_serveur('drop_view', $serveur,  $option==='continue' OR $option===false);
578
-	if (!is_string($f) OR !$f) return false;
579
-	$r = $f($table, $exist, $serveur, $option!==false);
580
-	if ($r === false) spip_sql_erreur($serveur);
581
-	return $r;
577
+    $f = sql_serveur('drop_view', $serveur,  $option==='continue' OR $option===false);
578
+    if (!is_string($f) OR !$f) return false;
579
+    $r = $f($table, $exist, $serveur, $option!==false);
580
+    if ($r === false) spip_sql_erreur($serveur);
581
+    return $r;
582 582
 }
583 583
 
584 584
 /**
@@ -601,16 +601,16 @@  discard block
 block discarded – undo
601 601
 **/
602 602
 function sql_showbase($spip=NULL, $serveur='', $option=true)
603 603
 {
604
-	$f = sql_serveur('showbase', $serveur,  $option==='continue' OR $option===false);
605
-	if (!is_string($f) OR !$f) return false;
604
+    $f = sql_serveur('showbase', $serveur,  $option==='continue' OR $option===false);
605
+    if (!is_string($f) OR !$f) return false;
606 606
 
607
-	// la globale n'est remplie qu'apres l'appel de sql_serveur.
608
-	if ($spip == NULL){
609
-		$connexion = $GLOBALS['connexions'][$serveur ? strtolower($serveur) : 0];
610
-		$spip = $connexion['prefixe'] . '\_%';
611
-	}
607
+    // la globale n'est remplie qu'apres l'appel de sql_serveur.
608
+    if ($spip == NULL){
609
+        $connexion = $GLOBALS['connexions'][$serveur ? strtolower($serveur) : 0];
610
+        $spip = $connexion['prefixe'] . '\_%';
611
+    }
612 612
 
613
-	return $f($spip, $serveur, $option!==false);
613
+    return $f($spip, $serveur, $option!==false);
614 614
 }
615 615
 
616 616
 /**
@@ -634,50 +634,50 @@  discard block
 block discarded – undo
634 634
 **/
635 635
 function sql_alltable($spip=NULL, $serveur='', $option=true)
636 636
 {
637
-	$q = sql_showbase($spip, $serveur, $option);
638
-	$r = array();
639
-	if ($q) while ($t = sql_fetch($q, $serveur)) { $r[] = array_shift($t);}
640
-	return $r;
637
+    $q = sql_showbase($spip, $serveur, $option);
638
+    $r = array();
639
+    if ($q) while ($t = sql_fetch($q, $serveur)) { $r[] = array_shift($t);}
640
+    return $r;
641 641
 }
642 642
 
643 643
 // http://doc.spip.org/@sql_showtable
644 644
 function sql_showtable($table, $table_spip = false, $serveur='', $option=true)
645 645
 {
646
-	$f = sql_serveur('showtable', $serveur,  $option==='continue' OR $option===false);
647
-	if (!is_string($f) OR !$f) return false;
648
-
649
-	// la globale n'est remplie qu'apres l'appel de sql_serveur.
650
-	if ($table_spip){
651
-		$connexion = $GLOBALS['connexions'][$serveur ? strtolower($serveur) : 0];
652
-		$prefixe = $connexion['prefixe'];
653
-		$vraie_table = preg_replace('/^spip/', $prefixe, $table);
654
-	} else $vraie_table = $table;
655
-
656
-	$f = $f($vraie_table, $serveur, $option!==false);
657
-	if (!$f) return array();
658
-	if (isset($GLOBALS['tables_principales'][$table]['join']))
659
-		$f['join'] = $GLOBALS['tables_principales'][$table]['join'];
660
-	elseif (isset($GLOBALS['tables_auxiliaires'][$table]['join']))
661
-		$f['join'] = $GLOBALS['tables_auxiliaires'][$table]['join'];
662
-	return $f;
646
+    $f = sql_serveur('showtable', $serveur,  $option==='continue' OR $option===false);
647
+    if (!is_string($f) OR !$f) return false;
648
+
649
+    // la globale n'est remplie qu'apres l'appel de sql_serveur.
650
+    if ($table_spip){
651
+        $connexion = $GLOBALS['connexions'][$serveur ? strtolower($serveur) : 0];
652
+        $prefixe = $connexion['prefixe'];
653
+        $vraie_table = preg_replace('/^spip/', $prefixe, $table);
654
+    } else $vraie_table = $table;
655
+
656
+    $f = $f($vraie_table, $serveur, $option!==false);
657
+    if (!$f) return array();
658
+    if (isset($GLOBALS['tables_principales'][$table]['join']))
659
+        $f['join'] = $GLOBALS['tables_principales'][$table]['join'];
660
+    elseif (isset($GLOBALS['tables_auxiliaires'][$table]['join']))
661
+        $f['join'] = $GLOBALS['tables_auxiliaires'][$table]['join'];
662
+    return $f;
663 663
 }
664 664
 
665 665
 // http://doc.spip.org/@sql_create
666 666
 function sql_create($nom, $champs, $cles=array(), $autoinc=false, $temporary=false, $serveur='', $option=true) {
667
-	$f = sql_serveur('create', $serveur,  $option==='continue' OR $option===false);
668
-	if (!is_string($f) OR !$f) return false;
669
-	$r = $f($nom, $champs, $cles, $autoinc, $temporary, $serveur, $option!==false);
670
-	if ($r === false) spip_sql_erreur($serveur);
671
-	return $r;
667
+    $f = sql_serveur('create', $serveur,  $option==='continue' OR $option===false);
668
+    if (!is_string($f) OR !$f) return false;
669
+    $r = $f($nom, $champs, $cles, $autoinc, $temporary, $serveur, $option!==false);
670
+    if ($r === false) spip_sql_erreur($serveur);
671
+    return $r;
672 672
 }
673 673
 
674 674
 function sql_create_base($nom, $serveur='', $option=true)
675 675
 {
676
-	$f = sql_serveur('create_base', $serveur,  $option==='continue' OR $option===false);
677
-	if (!is_string($f) OR !$f) return false;
678
-	$r = $f($nom, $serveur, $option!==false);
679
-	if ($r === false) spip_sql_erreur($serveur);
680
-	return $r;
676
+    $f = sql_serveur('create_base', $serveur,  $option==='continue' OR $option===false);
677
+    if (!is_string($f) OR !$f) return false;
678
+    $r = $f($nom, $serveur, $option!==false);
679
+    if ($r === false) spip_sql_erreur($serveur);
680
+    return $r;
681 681
 }
682 682
 
683 683
 // Fonction pour creer une vue 
@@ -686,19 +686,19 @@  discard block
 block discarded – undo
686 686
 // (en mettant $option du sql_select a false pour recuperer la requete)
687 687
 // http://doc.spip.org/@sql_create_view
688 688
 function sql_create_view($nom, $select_query, $serveur='', $option=true) {
689
-	$f = sql_serveur('create_view', $serveur,  $option==='continue' OR $option===false);
690
-	if (!is_string($f) OR !$f) return false;
691
-	$r = $f($nom, $select_query, $serveur, $option!==false);
692
-	if ($r === false) spip_sql_erreur($serveur);
693
-	return $r;
689
+    $f = sql_serveur('create_view', $serveur,  $option==='continue' OR $option===false);
690
+    if (!is_string($f) OR !$f) return false;
691
+    $r = $f($nom, $select_query, $serveur, $option!==false);
692
+    if ($r === false) spip_sql_erreur($serveur);
693
+    return $r;
694 694
 }
695 695
 
696 696
 // http://doc.spip.org/@sql_multi
697 697
 function sql_multi($sel, $lang, $serveur='', $option=true)
698 698
 {
699
-	$f = sql_serveur('multi', $serveur,  $option==='continue' OR $option===false);
700
-	if (!is_string($f) OR !$f) return false;
701
-	return $f($sel, $lang);
699
+    $f = sql_serveur('multi', $serveur,  $option==='continue' OR $option===false);
700
+    if (!is_string($f) OR !$f) return false;
701
+    return $f($sel, $lang);
702 702
 }
703 703
 
704 704
 
@@ -713,9 +713,9 @@  discard block
 block discarded – undo
713 713
  *      False si le serveur est indisponible
714 714
  */
715 715
 function sql_error($serveur='') {
716
-	$f = sql_serveur('error', $serveur, 'continue');
717
-	if (!is_string($f) OR !$f) return false;
718
-	return $f('query inconnue', $serveur);
716
+    $f = sql_serveur('error', $serveur, 'continue');
717
+    if (!is_string($f) OR !$f) return false;
718
+    return $f('query inconnue', $serveur);
719 719
 }
720 720
 
721 721
 /**
@@ -729,36 +729,36 @@  discard block
 block discarded – undo
729 729
  *      False si le serveur est indisponible
730 730
  */
731 731
 function sql_errno($serveur='') {
732
-	$f = sql_serveur('errno', $serveur, 'continue');
733
-	if (!is_string($f) OR !$f) return false;
734
-	return $f($serveur);
732
+    $f = sql_serveur('errno', $serveur, 'continue');
733
+    if (!is_string($f) OR !$f) return false;
734
+    return $f($serveur);
735 735
 }
736 736
 
737 737
 // http://doc.spip.org/@sql_explain
738 738
 function sql_explain($q, $serveur='', $option=true) {
739
-	$f = sql_serveur('explain', $serveur,  'continue');
740
-	if (!is_string($f) OR !$f) return false;
741
-	$r = $f($q, $serveur, $option!==false);
742
-	if ($r === false) spip_sql_erreur($serveur);
743
-	return $r;
739
+    $f = sql_serveur('explain', $serveur,  'continue');
740
+    if (!is_string($f) OR !$f) return false;
741
+    $r = $f($q, $serveur, $option!==false);
742
+    if ($r === false) spip_sql_erreur($serveur);
743
+    return $r;
744 744
 }
745 745
 
746 746
 // http://doc.spip.org/@sql_optimize
747 747
 function sql_optimize($table, $serveur='', $option=true) {
748
-	$f = sql_serveur('optimize', $serveur,  $option==='continue' OR $option===false);
749
-	if (!is_string($f) OR !$f) return false;
750
-	$r = $f($table, $serveur, $option!==false);
751
-	if ($r === false) spip_sql_erreur($serveur);
752
-	return $r;
748
+    $f = sql_serveur('optimize', $serveur,  $option==='continue' OR $option===false);
749
+    if (!is_string($f) OR !$f) return false;
750
+    $r = $f($table, $serveur, $option!==false);
751
+    if ($r === false) spip_sql_erreur($serveur);
752
+    return $r;
753 753
 }
754 754
 
755 755
 // http://doc.spip.org/@sql_repair
756 756
 function sql_repair($table, $serveur='', $option=true) {
757
-	$f = sql_serveur('repair', $serveur,  $option==='continue' OR $option===false);
758
-	if (!is_string($f) OR !$f) return false;
759
-	$r = $f($table, $serveur, $option!==false);
760
-	if ($r === false) spip_sql_erreur($serveur);
761
-	return $r;
757
+    $f = sql_serveur('repair', $serveur,  $option==='continue' OR $option===false);
758
+    if (!is_string($f) OR !$f) return false;
759
+    $r = $f($table, $serveur, $option!==false);
760
+    if ($r === false) spip_sql_erreur($serveur);
761
+    return $r;
762 762
 }
763 763
 
764 764
 // Fonction la plus generale ... et la moins portable
@@ -766,11 +766,11 @@  discard block
 block discarded – undo
766 766
 
767 767
 // http://doc.spip.org/@sql_query
768 768
 function sql_query($ins, $serveur='', $option=true) {
769
-	$f = sql_serveur('query', $serveur,  $option==='continue' OR $option===false);
770
-	if (!is_string($f) OR !$f) return false;
771
-	$r = $f($ins, $serveur, $option!==false);
772
-	if ($r === false) spip_sql_erreur($serveur);
773
-	return $r;
769
+    $f = sql_serveur('query', $serveur,  $option==='continue' OR $option===false);
770
+    if (!is_string($f) OR !$f) return false;
771
+    $r = $f($ins, $serveur, $option!==false);
772
+    if ($r === false) spip_sql_erreur($serveur);
773
+    return $r;
774 774
 }
775 775
 
776 776
 /**
@@ -819,14 +819,14 @@  discard block
 block discarded – undo
819 819
  *
820 820
 **/
821 821
 function sql_fetsel($select = array(), $from = array(), $where = array(),
822
-	$groupby = array(), $orderby = array(), $limit = '',
823
-	$having = array(), $serveur='', $option=true) {
824
-	$q = sql_select($select, $from, $where,	$groupby, $orderby, $limit, $having, $serveur, $option);
825
-	if ($option===false) return $q;
826
-	if (!$q) return array();
827
-	$r = sql_fetch($q, $serveur, $option);
828
-	sql_free($q, $serveur, $option);
829
-	return $r;
822
+    $groupby = array(), $orderby = array(), $limit = '',
823
+    $having = array(), $serveur='', $option=true) {
824
+    $q = sql_select($select, $from, $where,	$groupby, $orderby, $limit, $having, $serveur, $option);
825
+    if ($option===false) return $q;
826
+    if (!$q) return array();
827
+    $r = sql_fetch($q, $serveur, $option);
828
+    sql_free($q, $serveur, $option);
829
+    return $r;
830 830
 }
831 831
 
832 832
 
@@ -883,11 +883,11 @@  discard block
 block discarded – undo
883 883
  *
884 884
 **/
885 885
 function sql_allfetsel($select = array(), $from = array(), $where = array(),
886
-	$groupby = array(), $orderby = array(), $limit = '',
887
-	$having = array(), $serveur='', $option=true) {
888
-	$q = sql_select($select, $from, $where,	$groupby, $orderby, $limit, $having, $serveur, $option);
889
-	if ($option===false) return $q;
890
-	return sql_fetch_all($q, $serveur, $option);
886
+    $groupby = array(), $orderby = array(), $limit = '',
887
+    $having = array(), $serveur='', $option=true) {
888
+    $q = sql_select($select, $from, $where,	$groupby, $orderby, $limit, $having, $serveur, $option);
889
+    if ($option===false) return $q;
890
+    return sql_fetch_all($q, $serveur, $option);
891 891
 }
892 892
 
893 893
 
@@ -932,14 +932,14 @@  discard block
 block discarded – undo
932 932
  *
933 933
 **/
934 934
 function sql_getfetsel($select, $from = array(), $where = array(), $groupby = array(), 
935
-	$orderby = array(), $limit = '', $having = array(), $serveur='', $option=true) {
936
-	if (preg_match('/\s+as\s+(\w+)$/i', $select, $c)) $id = $c[1];
937
-	elseif (!preg_match('/\W/', $select)) $id = $select;
938
-	else {$id = 'n'; $select .= ' AS n';}
939
-	$r = sql_fetsel($select, $from, $where,	$groupby, $orderby, $limit, $having, $serveur, $option);
940
-	if ($option===false) return $r;
941
-	if (!$r) return NULL;
942
-	return $r[$id]; 
935
+    $orderby = array(), $limit = '', $having = array(), $serveur='', $option=true) {
936
+    if (preg_match('/\s+as\s+(\w+)$/i', $select, $c)) $id = $c[1];
937
+    elseif (!preg_match('/\W/', $select)) $id = $select;
938
+    else {$id = 'n'; $select .= ' AS n';}
939
+    $r = sql_fetsel($select, $from, $where,	$groupby, $orderby, $limit, $having, $serveur, $option);
940
+    if ($option===false) return $r;
941
+    if (!$r) return NULL;
942
+    return $r[$id]; 
943 943
 }
944 944
 
945 945
 /**
@@ -957,8 +957,8 @@  discard block
 block discarded – undo
957 957
  * 		Numero de version du serveur SQL
958 958
 **/
959 959
 function sql_version($serveur='', $option=true) {
960
-	$row = sql_fetsel("version() AS n", '','','','','','',$serveur);
961
-	return ($row['n']);
960
+    $row = sql_fetsel("version() AS n", '','','','','','',$serveur);
961
+    return ($row['n']);
962 962
 }
963 963
 
964 964
 /**
@@ -994,11 +994,11 @@  discard block
 block discarded – undo
994 994
  * 		Le serveur SQL prefere t'il des transactions pour les insertions multiples ?
995 995
 **/
996 996
 function sql_preferer_transaction($serveur='', $option=true) {
997
-	$f = sql_serveur('preferer_transaction', $serveur,  'continue');
998
-	if (!is_string($f) OR !$f) return false;
999
-	$r = $f($serveur, $option!==false);
1000
-	if ($r === false) spip_sql_erreur($serveur);
1001
-	return $r;
997
+    $f = sql_serveur('preferer_transaction', $serveur,  'continue');
998
+    if (!is_string($f) OR !$f) return false;
999
+    $r = $f($serveur, $option!==false);
1000
+    if ($r === false) spip_sql_erreur($serveur);
1001
+    return $r;
1002 1002
 };
1003 1003
 
1004 1004
 /**
@@ -1020,11 +1020,11 @@  discard block
 block discarded – undo
1020 1020
  *      false en cas d'erreur
1021 1021
 **/
1022 1022
 function sql_demarrer_transaction($serveur='', $option=true) {
1023
-	$f = sql_serveur('demarrer_transaction', $serveur,  'continue');
1024
-	if (!is_string($f) OR !$f) return false;
1025
-	$r = $f($serveur, $option!==false);
1026
-	if ($r === false) spip_sql_erreur($serveur);
1027
-	return $r;
1023
+    $f = sql_serveur('demarrer_transaction', $serveur,  'continue');
1024
+    if (!is_string($f) OR !$f) return false;
1025
+    $r = $f($serveur, $option!==false);
1026
+    if ($r === false) spip_sql_erreur($serveur);
1027
+    return $r;
1028 1028
 };
1029 1029
 
1030 1030
 /**
@@ -1046,11 +1046,11 @@  discard block
 block discarded – undo
1046 1046
  *      false en cas d'erreur
1047 1047
 **/
1048 1048
 function sql_terminer_transaction($serveur='', $option=true) {
1049
-	$f = sql_serveur('terminer_transaction', $serveur,  'continue');
1050
-	if (!is_string($f) OR !$f) return false;
1051
-	$r = $f($serveur, $option!==false);
1052
-	if ($r === false) spip_sql_erreur($serveur);
1053
-	return $r;
1049
+    $f = sql_serveur('terminer_transaction', $serveur,  'continue');
1050
+    if (!is_string($f) OR !$f) return false;
1051
+    $r = $f($serveur, $option!==false);
1052
+    if ($r === false) spip_sql_erreur($serveur);
1053
+    return $r;
1054 1054
 };
1055 1055
 
1056 1056
 
@@ -1075,9 +1075,9 @@  discard block
 block discarded – undo
1075 1075
 **/
1076 1076
 function sql_hex($val, $serveur='', $option=true)
1077 1077
 {
1078
-	$f = sql_serveur('hex', $serveur,  $option==='continue' OR $option===false);
1079
-	if (!is_string($f) OR !$f) return false;
1080
-	return $f($val);
1078
+    $f = sql_serveur('hex', $serveur,  $option==='continue' OR $option===false);
1079
+    if (!is_string($f) OR !$f) return false;
1080
+    return $f($val);
1081 1081
 }
1082 1082
 
1083 1083
 /**
@@ -1102,16 +1102,16 @@  discard block
 block discarded – undo
1102 1102
 **/
1103 1103
 function sql_quote($val, $serveur='', $type='')
1104 1104
 {
1105
-	$f = sql_serveur('quote', $serveur, true);
1106
-	if (!is_string($f) OR !$f) $f = '_q';
1107
-	return $f($val, $type);
1105
+    $f = sql_serveur('quote', $serveur, true);
1106
+    if (!is_string($f) OR !$f) $f = '_q';
1107
+    return $f($val, $type);
1108 1108
 }
1109 1109
 
1110 1110
 function sql_date_proche($champ, $interval, $unite, $serveur='', $option=true)
1111 1111
 {
1112
-	$f = sql_serveur('date_proche', $serveur, true);
1113
-	if (!is_string($f) OR !$f) return false;
1114
-	return $f($champ, $interval, $unite);
1112
+    $f = sql_serveur('date_proche', $serveur, true);
1113
+    if (!is_string($f) OR !$f) return false;
1114
+    return $f($champ, $interval, $unite);
1115 1115
 }
1116 1116
 
1117 1117
 /**
@@ -1143,16 +1143,16 @@  discard block
 block discarded – undo
1143 1143
  *     Expression de requête SQL
1144 1144
 **/
1145 1145
 function sql_in($val, $valeurs, $not='', $serveur='', $option=true) {
1146
-	if (is_array($valeurs)) {
1147
-		$f = sql_serveur('quote', $serveur, true);
1148
-		if (!is_string($f) OR !$f) return false;
1149
-		$valeurs = join(',', array_map($f, array_unique($valeurs)));
1150
-	} elseif (isset($valeurs[0]) AND $valeurs[0]===',') $valeurs = substr($valeurs,1);
1151
-	if (!strlen(trim($valeurs))) return ($not ? "0=0" : '0=1');
1152
-
1153
-	$f = sql_serveur('in', $serveur,  $option==='continue' OR $option===false);
1154
-	if (!is_string($f) OR !$f) return false;
1155
-	return $f($val, $valeurs, $not, $serveur, $option!==false);
1146
+    if (is_array($valeurs)) {
1147
+        $f = sql_serveur('quote', $serveur, true);
1148
+        if (!is_string($f) OR !$f) return false;
1149
+        $valeurs = join(',', array_map($f, array_unique($valeurs)));
1150
+    } elseif (isset($valeurs[0]) AND $valeurs[0]===',') $valeurs = substr($valeurs,1);
1151
+    if (!strlen(trim($valeurs))) return ($not ? "0=0" : '0=1');
1152
+
1153
+    $f = sql_serveur('in', $serveur,  $option==='continue' OR $option===false);
1154
+    if (!is_string($f) OR !$f) return false;
1155
+    return $f($val, $valeurs, $not, $serveur, $option!==false);
1156 1156
 }
1157 1157
 
1158 1158
 // Penser a dire dans la description du serveur 
@@ -1160,13 +1160,13 @@  discard block
 block discarded – undo
1160 1160
 
1161 1161
 // http://doc.spip.org/@sql_in_select
1162 1162
 function sql_in_select($in, $select, $from = array(), $where = array(),
1163
-		    $groupby = array(), $orderby = array(), $limit = '', $having = array(), $serveur='')
1163
+            $groupby = array(), $orderby = array(), $limit = '', $having = array(), $serveur='')
1164 1164
 {
1165
-	$liste = array(); 
1166
-	$res = sql_select($select, $from, $where, $groupby, $orderby, $limit, $having, $serveur); 
1167
-	while ($r = sql_fetch($res)) {$liste[] = array_shift($r);}
1168
-	sql_free($res);
1169
-	return sql_in($in, $liste);
1165
+    $liste = array(); 
1166
+    $res = sql_select($select, $from, $where, $groupby, $orderby, $limit, $having, $serveur); 
1167
+    while ($r = sql_fetch($res)) {$liste[] = array_shift($r);}
1168
+    sql_free($res);
1169
+    return sql_in($in, $liste);
1170 1170
 }
1171 1171
 
1172 1172
 /**
@@ -1197,32 +1197,32 @@  discard block
 block discarded – undo
1197 1197
  *    Position apres le saut.
1198 1198
  */
1199 1199
 function sql_skip($res, $pos, $saut, $count, $serveur='', $option=true){
1200
-	// pas de saut en arriere qu'on ne sait pas faire sans sql_seek
1201
-	if (($saut=intval($saut))<=0) return $pos;
1202
-
1203
-	$seek = $pos + $saut;
1204
-	// si le saut fait depasser le maxi, on libere la resource
1205
-	// et on sort
1206
-	if ($seek>=$count) {sql_free($res, $serveur, $option); return $count;}
1207
-
1208
-	if (sql_seek($res, $seek))
1209
-		$pos = $seek;
1210
-	else
1211
-		while ($pos<$seek AND sql_fetch($res, $serveur, $option))
1212
-			$pos++;
1213
-	return $pos;
1200
+    // pas de saut en arriere qu'on ne sait pas faire sans sql_seek
1201
+    if (($saut=intval($saut))<=0) return $pos;
1202
+
1203
+    $seek = $pos + $saut;
1204
+    // si le saut fait depasser le maxi, on libere la resource
1205
+    // et on sort
1206
+    if ($seek>=$count) {sql_free($res, $serveur, $option); return $count;}
1207
+
1208
+    if (sql_seek($res, $seek))
1209
+        $pos = $seek;
1210
+    else
1211
+        while ($pos<$seek AND sql_fetch($res, $serveur, $option))
1212
+            $pos++;
1213
+    return $pos;
1214 1214
 }
1215 1215
 
1216 1216
 // http://doc.spip.org/@sql_test_int
1217 1217
 function sql_test_int($type, $serveur='', $option=true)
1218 1218
 {
1219
-  return preg_match('/^(TINYINT|SMALLINT|MEDIUMINT|INT|INTEGER|BIGINT)/i',trim($type));
1219
+    return preg_match('/^(TINYINT|SMALLINT|MEDIUMINT|INT|INTEGER|BIGINT)/i',trim($type));
1220 1220
 }
1221 1221
 
1222 1222
 // http://doc.spip.org/@sql_test_date
1223 1223
 function sql_test_date($type, $serveur='', $option=true)
1224 1224
 {
1225
-  return preg_match('/^(DATE|DATETIME|TIMESTAMP|TIME)/i',trim($type));
1225
+    return preg_match('/^(DATE|DATETIME|TIMESTAMP|TIME)/i',trim($type));
1226 1226
 }
1227 1227
 
1228 1228
 /**
@@ -1245,15 +1245,15 @@  discard block
 block discarded – undo
1245 1245
  * 		La date formatee
1246 1246
  */
1247 1247
 function sql_format_date($annee=0, $mois=0, $jour=0, $h=0, $m=0, $s=0, $serveur=''){
1248
-	$annee = sprintf("%04s",$annee);
1249
-	$mois = sprintf("%02s",$mois);
1248
+    $annee = sprintf("%04s",$annee);
1249
+    $mois = sprintf("%02s",$mois);
1250 1250
 
1251
-	if ($annee == "0000") $mois = 0;
1252
-	if ($mois == "00") $jour = 0;
1251
+    if ($annee == "0000") $mois = 0;
1252
+    if ($mois == "00") $jour = 0;
1253 1253
 
1254
-	return sprintf("%04u",$annee) . '-' . sprintf("%02u",$mois) . '-'
1255
-		. sprintf("%02u",$jour) . ' ' . sprintf("%02u",$h) . ':'
1256
-		. sprintf("%02u",$m) . ':' . sprintf("%02u",$s);
1254
+    return sprintf("%04u",$annee) . '-' . sprintf("%02u",$mois) . '-'
1255
+        . sprintf("%02u",$jour) . ' ' . sprintf("%02u",$h) . ':'
1256
+        . sprintf("%02u",$m) . ':' . sprintf("%02u",$s);
1257 1257
 }
1258 1258
 
1259 1259
 
@@ -1277,28 +1277,28 @@  discard block
 block discarded – undo
1277 1277
 **/
1278 1278
 function description_table($nom, $serveur=''){
1279 1279
 
1280
-	global $tables_principales, $tables_auxiliaires;
1281
-	static $trouver_table;
1280
+    global $tables_principales, $tables_auxiliaires;
1281
+    static $trouver_table;
1282 1282
 
1283
-	/* toujours utiliser trouver_table
1283
+    /* toujours utiliser trouver_table
1284 1284
 	 qui renverra la description theorique
1285 1285
 	 car sinon on va se comporter differement selon que la table est declaree
1286 1286
 	 ou non
1287 1287
 	 */
1288
-	if (!$trouver_table) $trouver_table = charger_fonction('trouver_table', 'base');
1289
-	if ($desc = $trouver_table($nom, $serveur))
1290
-		return $desc;
1288
+    if (!$trouver_table) $trouver_table = charger_fonction('trouver_table', 'base');
1289
+    if ($desc = $trouver_table($nom, $serveur))
1290
+        return $desc;
1291 1291
 
1292
-	// sauf a l'installation :
1293
-	include_spip('base/serial');
1294
-	if (isset($tables_principales[$nom]))
1295
-		return $tables_principales[$nom];
1292
+    // sauf a l'installation :
1293
+    include_spip('base/serial');
1294
+    if (isset($tables_principales[$nom]))
1295
+        return $tables_principales[$nom];
1296 1296
 
1297
-	include_spip('base/auxiliaires');
1298
-	if (isset($tables_auxiliaires[$nom]))
1299
-		return $tables_auxiliaires[$nom];
1297
+    include_spip('base/auxiliaires');
1298
+    if (isset($tables_auxiliaires[$nom]))
1299
+        return $tables_auxiliaires[$nom];
1300 1300
 
1301
-	return false;
1301
+    return false;
1302 1302
 }
1303 1303
 
1304 1304
 
Please login to merge, or discard this patch.
ecrire/base/create.php 1 patch
Indentation   +79 added lines, -79 removed lines patch added patch discarded remove patch
@@ -26,17 +26,17 @@  discard block
 block discarded – undo
26 26
  * @return bool
27 27
  */
28 28
 function base_determine_autoinc($table,$desc=array()){
29
-	if ($t=lister_tables_principales() AND isset($t[$table]))
30
-		$autoinc = true;
31
-	elseif ($t=lister_tables_auxiliaires() AND isset($t[$table]))
32
-		$autoinc = false;
33
-	else {
34
-		// essayer de faire au mieux !
35
-		$autoinc = (isset($desc['key']['PRIMARY KEY'])
36
-						AND strpos($desc['key']['PRIMARY KEY'],',')===false
37
-						AND strpos($desc['field'][$desc['key']['PRIMARY KEY']],'default')===false);
38
-	}
39
-	return $autoinc;
29
+    if ($t=lister_tables_principales() AND isset($t[$table]))
30
+        $autoinc = true;
31
+    elseif ($t=lister_tables_auxiliaires() AND isset($t[$table]))
32
+        $autoinc = false;
33
+    else {
34
+        // essayer de faire au mieux !
35
+        $autoinc = (isset($desc['key']['PRIMARY KEY'])
36
+                        AND strpos($desc['key']['PRIMARY KEY'],',')===false
37
+                        AND strpos($desc['field'][$desc['key']['PRIMARY KEY']],'default')===false);
38
+    }
39
+    return $autoinc;
40 40
 }
41 41
 
42 42
 /**
@@ -55,51 +55,51 @@  discard block
 block discarded – undo
55 55
  * @return void
56 56
  */
57 57
 function creer_ou_upgrader_table($table,$desc,$autoinc,$upgrade=false,$serveur='') {
58
-	#spip_log("creer_ou_upgrader_table table=$table autoinc=$autoinc upgrade=$upgrade","dbinstall"._LOG_INFO_IMPORTANTE);
59
-	$sql_desc = $upgrade ? sql_showtable($table,true,$serveur) : false;
60
-	#if (!$sql_desc) $sql_desc = false;
61
-	#spip_log("table=$table sql_desc:$sql_desc","dbinstall"._LOG_INFO_IMPORTANTE);
62
-	if (!$sql_desc) {
63
-		if ($autoinc==='auto')
64
-			$autoinc = base_determine_autoinc($table,$desc);
65
-		#spip_log("sql_create $table autoinc=$autoinc","dbinstall"._LOG_INFO_IMPORTANTE);
66
-		sql_create($table, $desc['field'], $desc['key'], $autoinc, false, $serveur);
67
-		// verifier la bonne installation de la table (php-fpm es-tu la ?)
68
-		$sql_desc = sql_showtable($table,true,$serveur);
69
-		#if (!$sql_desc) $sql_desc = false;
70
-		#spip_log("Resultat table=$table sql_desc:$sql_desc","dbinstall"._LOG_INFO_IMPORTANTE);
71
-		if (!$sql_desc){
72
-			// on retente avec un sleep ?
73
-			sleep(1);
74
-			sql_create($table, $desc['field'], $desc['key'], $autoinc, false, $serveur);
75
-			$sql_desc = sql_showtable($table,true,$serveur);
76
-			#if (!$sql_desc) $sql_desc = false;
77
-			#spip_log("Resultat table=$table sql_desc:$sql_desc","dbinstall"._LOG_INFO_IMPORTANTE);
78
-			if (!$sql_desc){
79
-				spip_log("Echec creation table $table","maj"._LOG_CRITIQUE);
80
-			}
81
-		}
82
-	}
83
-	else {
84
-		#spip_log("sql_alter $table ... (on s'en fiche)","dbinstall"._LOG_INFO_IMPORTANTE);
85
-		// ajouter les champs manquants
86
-		// on ne supprime jamais les champs, car c'est dangereux
87
-		// c'est toujours a faire manuellement
88
-		$last = '';
89
-		foreach($desc['field'] as $field=>$type){
90
-			if (!isset($sql_desc['field'][$field]))
91
-				sql_alter("TABLE $table ADD $field $type".($last?" AFTER $last":""),$serveur);
92
-			$last = $field;
93
-		}
94
-		foreach($desc['key'] as $key=>$type){
95
-			// Ne pas oublier les cas des cles non nommees dans la declaration et qui sont retournees
96
-			// par le showtable sous la forme d'un index de tableau "KEY $type" et non "KEY"
97
-			if (!isset($sql_desc['key'][$key]) AND !isset($sql_desc['key']["$key $type"]))
98
-				sql_alter("TABLE $table ADD $key ($type)",$serveur);
99
-			$last = $field;
100
-		}
58
+    #spip_log("creer_ou_upgrader_table table=$table autoinc=$autoinc upgrade=$upgrade","dbinstall"._LOG_INFO_IMPORTANTE);
59
+    $sql_desc = $upgrade ? sql_showtable($table,true,$serveur) : false;
60
+    #if (!$sql_desc) $sql_desc = false;
61
+    #spip_log("table=$table sql_desc:$sql_desc","dbinstall"._LOG_INFO_IMPORTANTE);
62
+    if (!$sql_desc) {
63
+        if ($autoinc==='auto')
64
+            $autoinc = base_determine_autoinc($table,$desc);
65
+        #spip_log("sql_create $table autoinc=$autoinc","dbinstall"._LOG_INFO_IMPORTANTE);
66
+        sql_create($table, $desc['field'], $desc['key'], $autoinc, false, $serveur);
67
+        // verifier la bonne installation de la table (php-fpm es-tu la ?)
68
+        $sql_desc = sql_showtable($table,true,$serveur);
69
+        #if (!$sql_desc) $sql_desc = false;
70
+        #spip_log("Resultat table=$table sql_desc:$sql_desc","dbinstall"._LOG_INFO_IMPORTANTE);
71
+        if (!$sql_desc){
72
+            // on retente avec un sleep ?
73
+            sleep(1);
74
+            sql_create($table, $desc['field'], $desc['key'], $autoinc, false, $serveur);
75
+            $sql_desc = sql_showtable($table,true,$serveur);
76
+            #if (!$sql_desc) $sql_desc = false;
77
+            #spip_log("Resultat table=$table sql_desc:$sql_desc","dbinstall"._LOG_INFO_IMPORTANTE);
78
+            if (!$sql_desc){
79
+                spip_log("Echec creation table $table","maj"._LOG_CRITIQUE);
80
+            }
81
+        }
82
+    }
83
+    else {
84
+        #spip_log("sql_alter $table ... (on s'en fiche)","dbinstall"._LOG_INFO_IMPORTANTE);
85
+        // ajouter les champs manquants
86
+        // on ne supprime jamais les champs, car c'est dangereux
87
+        // c'est toujours a faire manuellement
88
+        $last = '';
89
+        foreach($desc['field'] as $field=>$type){
90
+            if (!isset($sql_desc['field'][$field]))
91
+                sql_alter("TABLE $table ADD $field $type".($last?" AFTER $last":""),$serveur);
92
+            $last = $field;
93
+        }
94
+        foreach($desc['key'] as $key=>$type){
95
+            // Ne pas oublier les cas des cles non nommees dans la declaration et qui sont retournees
96
+            // par le showtable sous la forme d'un index de tableau "KEY $type" et non "KEY"
97
+            if (!isset($sql_desc['key'][$key]) AND !isset($sql_desc['key']["$key $type"]))
98
+                sql_alter("TABLE $table ADD $key ($type)",$serveur);
99
+            $last = $field;
100
+        }
101 101
 
102
-	}
102
+    }
103 103
 }
104 104
 
105 105
 /**
@@ -120,20 +120,20 @@  discard block
 block discarded – undo
120 120
  */
121 121
 function alterer_base($tables_inc, $tables_noinc, $up=false, $serveur='')
122 122
 {
123
-	if ($up === false) {
124
-		$old = false;
125
-		$up = array();
126
-	} else {
127
-		$old = true;
128
-		if (!is_array($up)) $up = array($up);
129
-	}
130
-	foreach($tables_inc as $k => $v)
131
-		if (!$old OR in_array($k, $up))
132
-			creer_ou_upgrader_table($k,$v,true,$old,$serveur);
123
+    if ($up === false) {
124
+        $old = false;
125
+        $up = array();
126
+    } else {
127
+        $old = true;
128
+        if (!is_array($up)) $up = array($up);
129
+    }
130
+    foreach($tables_inc as $k => $v)
131
+        if (!$old OR in_array($k, $up))
132
+            creer_ou_upgrader_table($k,$v,true,$old,$serveur);
133 133
 
134
-	foreach($tables_noinc as $k => $v)
135
-		if (!$old OR in_array($k, $up))
136
-			creer_ou_upgrader_table($k,$v,false,$old,$serveur);
134
+    foreach($tables_noinc as $k => $v)
135
+        if (!$old OR in_array($k, $up))
136
+            creer_ou_upgrader_table($k,$v,false,$old,$serveur);
137 137
 }
138 138
 
139 139
 /**
@@ -147,14 +147,14 @@  discard block
 block discarded – undo
147 147
  */
148 148
 function creer_base($serveur='') {
149 149
 
150
-	// Note: les mises a jour reexecutent ce code pour s'assurer
151
-	// de la conformite de la base
152
-	// pas de panique sur  "already exists" et "duplicate entry" donc.
150
+    // Note: les mises a jour reexecutent ce code pour s'assurer
151
+    // de la conformite de la base
152
+    // pas de panique sur  "already exists" et "duplicate entry" donc.
153 153
 
154
-	alterer_base(lister_tables_principales(),
155
-		     lister_tables_auxiliaires(),
156
-		     false,
157
-		     $serveur);
154
+    alterer_base(lister_tables_principales(),
155
+                lister_tables_auxiliaires(),
156
+                false,
157
+                $serveur);
158 158
 }
159 159
 
160 160
 /**
@@ -167,10 +167,10 @@  discard block
 block discarded – undo
167 167
  * @return void
168 168
  */
169 169
 function maj_tables($upgrade_tables=array(),$serveur=''){
170
-	alterer_base(lister_tables_principales(),
171
-		     lister_tables_auxiliaires(),
172
-		     $upgrade_tables,
173
-		     $serveur);
170
+    alterer_base(lister_tables_principales(),
171
+                lister_tables_auxiliaires(),
172
+                $upgrade_tables,
173
+                $serveur);
174 174
 }
175 175
 
176 176
 ?>
Please login to merge, or discard this patch.