Completed
Push — master ( e49a31...3bb7a8 )
by cam
01:35
created
ecrire/inc_version.php 2 patches
Indentation   +213 added lines, -213 removed lines patch added patch discarded remove patch
@@ -17,7 +17,7 @@  discard block
 block discarded – undo
17 17
  **/
18 18
 
19 19
 if (defined('_ECRIRE_INC_VERSION')) {
20
-	return;
20
+    return;
21 21
 }
22 22
 
23 23
 /**
@@ -36,15 +36,15 @@  discard block
 block discarded – undo
36 36
 define('_PHP_MIN', '7.3.0');
37 37
 
38 38
 if (!defined('_DIR_RESTREINT_ABS')) {
39
-	/** le nom du repertoire ecrire/ */
40
-	define('_DIR_RESTREINT_ABS', 'ecrire/');
39
+    /** le nom du repertoire ecrire/ */
40
+    define('_DIR_RESTREINT_ABS', 'ecrire/');
41 41
 }
42 42
 
43 43
 /** Chemin relatif pour aller dans ecrire
44 44
  *  vide si on est dans ecrire, 'ecrire/' sinon */
45 45
 define(
46
-	'_DIR_RESTREINT',
47
-	(!is_dir(_DIR_RESTREINT_ABS) ? '' : _DIR_RESTREINT_ABS)
46
+    '_DIR_RESTREINT',
47
+    (!is_dir(_DIR_RESTREINT_ABS) ? '' : _DIR_RESTREINT_ABS)
48 48
 );
49 49
 
50 50
 /** Chemin relatif pour aller à la racine */
@@ -59,8 +59,8 @@  discard block
 block discarded – undo
59 59
 
60 60
 // Icones
61 61
 if (!defined('_NOM_IMG_PACK')) {
62
-	/** Nom du dossier images */
63
-	define('_NOM_IMG_PACK', 'images/');
62
+    /** Nom du dossier images */
63
+    define('_NOM_IMG_PACK', 'images/');
64 64
 }
65 65
 /** le chemin http (relatif) vers les images standard */
66 66
 define('_DIR_IMG_PACK', (_DIR_RACINE . 'prive/' . _NOM_IMG_PACK));
@@ -69,8 +69,8 @@  discard block
 block discarded – undo
69 69
 define('_ROOT_IMG_PACK', dirname(__DIR__) . '/prive/' . _NOM_IMG_PACK);
70 70
 
71 71
 if (!defined('_JAVASCRIPT')) {
72
-	/** Nom du repertoire des  bibliotheques JavaScript */
73
-	define('_JAVASCRIPT', 'javascript/');
72
+    /** Nom du repertoire des  bibliotheques JavaScript */
73
+    define('_JAVASCRIPT', 'javascript/');
74 74
 } // utilisable avec #CHEMIN et find_in_path
75 75
 /** le nom du repertoire des  bibliotheques JavaScript du prive */
76 76
 define('_DIR_JAVASCRIPT', (_DIR_RACINE . 'prive/' . _JAVASCRIPT));
@@ -80,47 +80,47 @@  discard block
 block discarded – undo
80 80
 # mais on peut les mettre ailleurs et changer completement les noms
81 81
 
82 82
 if (!defined('_NOM_TEMPORAIRES_INACCESSIBLES')) {
83
-	/** Nom du repertoire des fichiers Temporaires Inaccessibles par http:// */
84
-	define('_NOM_TEMPORAIRES_INACCESSIBLES', 'tmp/');
83
+    /** Nom du repertoire des fichiers Temporaires Inaccessibles par http:// */
84
+    define('_NOM_TEMPORAIRES_INACCESSIBLES', 'tmp/');
85 85
 }
86 86
 if (!defined('_NOM_TEMPORAIRES_ACCESSIBLES')) {
87
-	/** Nom du repertoire des fichiers Temporaires Accessibles par http:// */
88
-	define('_NOM_TEMPORAIRES_ACCESSIBLES', 'local/');
87
+    /** Nom du repertoire des fichiers Temporaires Accessibles par http:// */
88
+    define('_NOM_TEMPORAIRES_ACCESSIBLES', 'local/');
89 89
 }
90 90
 if (!defined('_NOM_PERMANENTS_INACCESSIBLES')) {
91
-	/** Nom du repertoire des fichiers Permanents Inaccessibles par http:// */
92
-	define('_NOM_PERMANENTS_INACCESSIBLES', 'config/');
91
+    /** Nom du repertoire des fichiers Permanents Inaccessibles par http:// */
92
+    define('_NOM_PERMANENTS_INACCESSIBLES', 'config/');
93 93
 }
94 94
 if (!defined('_NOM_PERMANENTS_ACCESSIBLES')) {
95
-	/** Nom du repertoire des fichiers Permanents Accessibles par http:// */
96
-	define('_NOM_PERMANENTS_ACCESSIBLES', 'IMG/');
95
+    /** Nom du repertoire des fichiers Permanents Accessibles par http:// */
96
+    define('_NOM_PERMANENTS_ACCESSIBLES', 'IMG/');
97 97
 }
98 98
 
99 99
 
100 100
 /** Le nom du fichier de personnalisation */
101 101
 if (!defined('_NOM_CONFIG')) {
102
-	define('_NOM_CONFIG', 'mes_options');
102
+    define('_NOM_CONFIG', 'mes_options');
103 103
 }
104 104
 
105 105
 // Son emplacement absolu si on le trouve
106 106
 if (
107
-	@file_exists($f = _ROOT_RACINE . _NOM_PERMANENTS_INACCESSIBLES . _NOM_CONFIG . '.php')
108
-	or (@file_exists($f = _ROOT_RESTREINT . _NOM_CONFIG . '.php'))
107
+    @file_exists($f = _ROOT_RACINE . _NOM_PERMANENTS_INACCESSIBLES . _NOM_CONFIG . '.php')
108
+    or (@file_exists($f = _ROOT_RESTREINT . _NOM_CONFIG . '.php'))
109 109
 ) {
110
-	/** Emplacement absolu du fichier d'option */
111
-	define('_FILE_OPTIONS', $f);
110
+    /** Emplacement absolu du fichier d'option */
111
+    define('_FILE_OPTIONS', $f);
112 112
 } else {
113
-	define('_FILE_OPTIONS', '');
113
+    define('_FILE_OPTIONS', '');
114 114
 }
115 115
 
116 116
 if (!defined('MODULES_IDIOMES')) {
117
-	/**
118
-	 * Modules par défaut pour la traduction.
119
-	 *
120
-	 * Constante utilisée par le compilateur et le décompilateur
121
-	 * sa valeur etant traitée par inc_traduire_dist
122
-	 */
123
-	define('MODULES_IDIOMES', 'public|spip|ecrire');
117
+    /**
118
+     * Modules par défaut pour la traduction.
119
+     *
120
+     * Constante utilisée par le compilateur et le décompilateur
121
+     * sa valeur etant traitée par inc_traduire_dist
122
+     */
123
+    define('MODULES_IDIOMES', 'public|spip|ecrire');
124 124
 }
125 125
 
126 126
 // *** Fin des define *** //
@@ -128,10 +128,10 @@  discard block
 block discarded – undo
128 128
 
129 129
 // Inclure l'ecran de securite
130 130
 if (
131
-	!defined('_ECRAN_SECURITE')
132
-	and @file_exists($f = _ROOT_RACINE . _NOM_PERMANENTS_INACCESSIBLES . 'ecran_securite.php')
131
+    !defined('_ECRAN_SECURITE')
132
+    and @file_exists($f = _ROOT_RACINE . _NOM_PERMANENTS_INACCESSIBLES . 'ecran_securite.php')
133 133
 ) {
134
-	include $f;
134
+    include $f;
135 135
 }
136 136
 
137 137
 
@@ -139,30 +139,30 @@  discard block
 block discarded – undo
139 139
  * Détecteur de robot d'indexation
140 140
  */
141 141
 if (!defined('_IS_BOT')) {
142
-	define(
143
-		'_IS_BOT',
144
-		isset($_SERVER['HTTP_USER_AGENT'])
145
-		and preg_match(
146
-			// mots generiques
147
-			',bot|slurp|crawler|spider|webvac|yandex|'
148
-			// MSIE 6.0 est un botnet 99,9% du temps, on traite donc ce USER_AGENT comme un bot
149
-			. 'MSIE 6\.0|'
150
-			// UA plus cibles
151
-			. '80legs|accoona|AltaVista|ASPSeek|Baidu|Charlotte|EC2LinkFinder|eStyle|facebook|flipboard|hootsuite|FunWebProducts|Google|Genieo|INA dlweb|InfegyAtlas|Java VM|LiteFinder|Lycos|MetaURI|Moreover|Rambler|Scooter|ScrubbyBloglines|Yahoo|Yeti'
152
-			. ',i',
153
-			(string)$_SERVER['HTTP_USER_AGENT']
154
-		)
155
-	);
142
+    define(
143
+        '_IS_BOT',
144
+        isset($_SERVER['HTTP_USER_AGENT'])
145
+        and preg_match(
146
+            // mots generiques
147
+            ',bot|slurp|crawler|spider|webvac|yandex|'
148
+            // MSIE 6.0 est un botnet 99,9% du temps, on traite donc ce USER_AGENT comme un bot
149
+            . 'MSIE 6\.0|'
150
+            // UA plus cibles
151
+            . '80legs|accoona|AltaVista|ASPSeek|Baidu|Charlotte|EC2LinkFinder|eStyle|facebook|flipboard|hootsuite|FunWebProducts|Google|Genieo|INA dlweb|InfegyAtlas|Java VM|LiteFinder|Lycos|MetaURI|Moreover|Rambler|Scooter|ScrubbyBloglines|Yahoo|Yeti'
152
+            . ',i',
153
+            (string)$_SERVER['HTTP_USER_AGENT']
154
+        )
155
+    );
156 156
 }
157 157
 
158 158
 if (!defined('_IS_CLI')) {
159
-	define(
160
-		'_IS_CLI',
161
-		!isset($_SERVER['HTTP_HOST'])
162
-		and !strlen($_SERVER['DOCUMENT_ROOT'])
163
-		and !empty($_SERVER['argv'])
164
-		and empty($_SERVER['REQUEST_METHOD'])
165
-	);
159
+    define(
160
+        '_IS_CLI',
161
+        !isset($_SERVER['HTTP_HOST'])
162
+        and !strlen($_SERVER['DOCUMENT_ROOT'])
163
+        and !empty($_SERVER['argv'])
164
+        and empty($_SERVER['REQUEST_METHOD'])
165
+    );
166 166
 }
167 167
 
168 168
 // *** Parametrage par defaut de SPIP ***
@@ -174,61 +174,61 @@  discard block
 block discarded – undo
174 174
 // Ne pas les rendre indefinies.
175 175
 
176 176
 global
177
-	$nombre_de_logs,
178
-	$taille_des_logs,
179
-	$table_prefix,
180
-	$cookie_prefix,
181
-	$dossier_squelettes,
182
-	$filtrer_javascript,
183
-	$type_urls,
184
-	$debut_date_publication,
185
-	$ip,
186
-	$mysql_rappel_connexion,
187
-	$mysql_rappel_nom_base,
188
-	$test_i18n,
189
-	$ignore_auth_http,
190
-	$ignore_remote_user,
191
-	$derniere_modif_invalide,
192
-	$home_server,
193
-	$help_server,
194
-	$url_glossaire_externe,
195
-	$tex_server,
196
-	$traiter_math,
197
-	$xhtml,
198
-	$xml_indent,
199
-	$source_vignettes,
200
-	$formats_logos,
201
-	$controler_dates_rss,
202
-	$spip_pipeline,
203
-	$spip_matrice,
204
-	$plugins,
205
-	$surcharges,
206
-	$exceptions_des_tables,
207
-	$tables_principales,
208
-	$table_des_tables,
209
-	$tables_auxiliaires,
210
-	$table_primary,
211
-	$table_date,
212
-	$table_titre,
213
-	$tables_jointures,
214
-	$liste_des_statuts,
215
-	$liste_des_etats,
216
-	$liste_des_authentifications,
217
-	$spip_version_branche,
218
-	$spip_version_code,
219
-	$spip_version_base,
220
-	$spip_sql_version,
221
-	$spip_version_affichee,
222
-	$visiteur_session,
223
-	$auteur_session,
224
-	$connect_statut,
225
-	$connect_toutes_rubriques,
226
-	$hash_recherche,
227
-	$hash_recherche_strict,
228
-	$ldap_present,
229
-	$meta,
230
-	$connect_id_rubrique,
231
-	$puce;
177
+    $nombre_de_logs,
178
+    $taille_des_logs,
179
+    $table_prefix,
180
+    $cookie_prefix,
181
+    $dossier_squelettes,
182
+    $filtrer_javascript,
183
+    $type_urls,
184
+    $debut_date_publication,
185
+    $ip,
186
+    $mysql_rappel_connexion,
187
+    $mysql_rappel_nom_base,
188
+    $test_i18n,
189
+    $ignore_auth_http,
190
+    $ignore_remote_user,
191
+    $derniere_modif_invalide,
192
+    $home_server,
193
+    $help_server,
194
+    $url_glossaire_externe,
195
+    $tex_server,
196
+    $traiter_math,
197
+    $xhtml,
198
+    $xml_indent,
199
+    $source_vignettes,
200
+    $formats_logos,
201
+    $controler_dates_rss,
202
+    $spip_pipeline,
203
+    $spip_matrice,
204
+    $plugins,
205
+    $surcharges,
206
+    $exceptions_des_tables,
207
+    $tables_principales,
208
+    $table_des_tables,
209
+    $tables_auxiliaires,
210
+    $table_primary,
211
+    $table_date,
212
+    $table_titre,
213
+    $tables_jointures,
214
+    $liste_des_statuts,
215
+    $liste_des_etats,
216
+    $liste_des_authentifications,
217
+    $spip_version_branche,
218
+    $spip_version_code,
219
+    $spip_version_base,
220
+    $spip_sql_version,
221
+    $spip_version_affichee,
222
+    $visiteur_session,
223
+    $auteur_session,
224
+    $connect_statut,
225
+    $connect_toutes_rubriques,
226
+    $hash_recherche,
227
+    $hash_recherche_strict,
228
+    $ldap_present,
229
+    $meta,
230
+    $connect_id_rubrique,
231
+    $puce;
232 232
 
233 233
 # comment on logge, defaut 4 tmp/spip.log de 100k, 0 ou 0 suppriment le log
234 234
 $nombre_de_logs = 4;
@@ -283,48 +283,48 @@  discard block
 block discarded – undo
283 283
 // Prendre en compte les entetes HTTP_X_FORWARDED_XX
284 284
 //
285 285
 if (isset($_SERVER['HTTP_X_FORWARDED_PROTO']) and $_SERVER['HTTP_X_FORWARDED_PROTO'] === 'https') {
286
-	if (empty($_SERVER['HTTP_X_FORWARDED_HOST'])) {
287
-		$_SERVER['HTTP_X_FORWARDED_HOST'] = $_SERVER['HTTP_HOST'];
288
-	}
289
-	if (empty($_SERVER['HTTP_X_FORWARDED_PORT'])) {
290
-		$_SERVER['HTTP_X_FORWARDED_PORT'] = 443;
291
-	}
286
+    if (empty($_SERVER['HTTP_X_FORWARDED_HOST'])) {
287
+        $_SERVER['HTTP_X_FORWARDED_HOST'] = $_SERVER['HTTP_HOST'];
288
+    }
289
+    if (empty($_SERVER['HTTP_X_FORWARDED_PORT'])) {
290
+        $_SERVER['HTTP_X_FORWARDED_PORT'] = 443;
291
+    }
292 292
 }
293 293
 if (isset($_SERVER['HTTP_X_FORWARDED_HOST'])) {
294
-	if (isset($_SERVER['HTTP_X_FORWARDED_PORT']) and is_numeric($_SERVER['HTTP_X_FORWARDED_PORT'])) {
295
-		$_SERVER['SERVER_PORT'] = $_SERVER['HTTP_X_FORWARDED_PORT'];
296
-		if (isset($_SERVER['HTTP_X_FORWARDED_PROTO']) and $_SERVER['HTTP_X_FORWARDED_PROTO'] === 'https') {
297
-			$_SERVER['HTTPS'] = 'on';
298
-			if (isset($_SERVER['REQUEST_SCHEME'])) {
299
-				$_SERVER['REQUEST_SCHEME'] = 'https';
300
-			}
301
-		}
302
-	}
303
-	$host = $_SERVER['HTTP_X_FORWARDED_HOST'];
304
-	if (strpos($host, ',') !== false) {
305
-		$h = explode(',', $host);
306
-		$host = trim(reset($h));
307
-	}
308
-	// securite sur le contenu de l'entete
309
-	$host = strtr($host, "<>?\"\{\}\$'` \r\n", '____________');
310
-	$_SERVER['HTTP_HOST'] = $host;
294
+    if (isset($_SERVER['HTTP_X_FORWARDED_PORT']) and is_numeric($_SERVER['HTTP_X_FORWARDED_PORT'])) {
295
+        $_SERVER['SERVER_PORT'] = $_SERVER['HTTP_X_FORWARDED_PORT'];
296
+        if (isset($_SERVER['HTTP_X_FORWARDED_PROTO']) and $_SERVER['HTTP_X_FORWARDED_PROTO'] === 'https') {
297
+            $_SERVER['HTTPS'] = 'on';
298
+            if (isset($_SERVER['REQUEST_SCHEME'])) {
299
+                $_SERVER['REQUEST_SCHEME'] = 'https';
300
+            }
301
+        }
302
+    }
303
+    $host = $_SERVER['HTTP_X_FORWARDED_HOST'];
304
+    if (strpos($host, ',') !== false) {
305
+        $h = explode(',', $host);
306
+        $host = trim(reset($h));
307
+    }
308
+    // securite sur le contenu de l'entete
309
+    $host = strtr($host, "<>?\"\{\}\$'` \r\n", '____________');
310
+    $_SERVER['HTTP_HOST'] = $host;
311 311
 }
312 312
 //
313 313
 // On note le numero IP du client dans la variable $ip
314 314
 //
315 315
 if (isset($_SERVER['HTTP_X_FORWARDED_FOR'])) {
316
-	$ip = $_SERVER['HTTP_X_FORWARDED_FOR'];
317
-	if (strpos($ip, ',') !== false) {
318
-		$ip = explode(',', $ip);
319
-		$ip = reset($ip);
320
-	}
321
-	// ecraser $_SERVER['REMOTE_ADDR'] si elle est en localhost
322
-	if (isset($_SERVER['REMOTE_ADDR']) and $_SERVER['REMOTE_ADDR'] === '127.0.0.1') {
323
-		$_SERVER['REMOTE_ADDR'] = $ip;
324
-	}
316
+    $ip = $_SERVER['HTTP_X_FORWARDED_FOR'];
317
+    if (strpos($ip, ',') !== false) {
318
+        $ip = explode(',', $ip);
319
+        $ip = reset($ip);
320
+    }
321
+    // ecraser $_SERVER['REMOTE_ADDR'] si elle est en localhost
322
+    if (isset($_SERVER['REMOTE_ADDR']) and $_SERVER['REMOTE_ADDR'] === '127.0.0.1') {
323
+        $_SERVER['REMOTE_ADDR'] = $ip;
324
+    }
325 325
 }
326 326
 if (isset($_SERVER['REMOTE_ADDR'])) {
327
-	$ip = $_SERVER['REMOTE_ADDR'];
327
+    $ip = $_SERVER['REMOTE_ADDR'];
328 328
 }
329 329
 
330 330
 // Pour renforcer la privacy, decommentez la ligne ci-dessous (ou recopiez-la
@@ -409,24 +409,24 @@  discard block
 block discarded – undo
409 409
 
410 410
 // Liste des statuts.
411 411
 $liste_des_statuts = [
412
-	'info_administrateurs' => '0minirezo',
413
-	'info_redacteurs' => '1comite',
414
-	'info_visiteurs' => '6forum',
415
-	'texte_statut_poubelle' => '5poubelle'
412
+    'info_administrateurs' => '0minirezo',
413
+    'info_redacteurs' => '1comite',
414
+    'info_visiteurs' => '6forum',
415
+    'texte_statut_poubelle' => '5poubelle'
416 416
 ];
417 417
 
418 418
 $liste_des_etats = [
419
-	'texte_statut_en_cours_redaction' => 'prepa',
420
-	'texte_statut_propose_evaluation' => 'prop',
421
-	'texte_statut_publie' => 'publie',
422
-	'texte_statut_poubelle' => 'poubelle',
423
-	'texte_statut_refuse' => 'refuse'
419
+    'texte_statut_en_cours_redaction' => 'prepa',
420
+    'texte_statut_propose_evaluation' => 'prop',
421
+    'texte_statut_publie' => 'publie',
422
+    'texte_statut_poubelle' => 'poubelle',
423
+    'texte_statut_refuse' => 'refuse'
424 424
 ];
425 425
 
426 426
 // liste des methodes d'authentifications
427 427
 $liste_des_authentifications = [
428
-	'spip' => 'spip',
429
-	'ldap' => 'ldap'
428
+    'spip' => 'spip',
429
+    'ldap' => 'ldap'
430 430
 ];
431 431
 
432 432
 // Experimental : pour supprimer systematiquement l'affichage des numeros
@@ -476,12 +476,12 @@  discard block
 block discarded – undo
476 476
 // Definition personnelles eventuelles
477 477
 
478 478
 if (_FILE_OPTIONS) {
479
-	include_once _FILE_OPTIONS;
479
+    include_once _FILE_OPTIONS;
480 480
 }
481 481
 
482 482
 if (!defined('SPIP_ERREUR_REPORT')) {
483
-	/** Masquer les warning */
484
-	define('SPIP_ERREUR_REPORT', E_ALL ^ E_NOTICE ^ E_DEPRECATED);
483
+    /** Masquer les warning */
484
+    define('SPIP_ERREUR_REPORT', E_ALL ^ E_NOTICE ^ E_DEPRECATED);
485 485
 }
486 486
 error_reporting(SPIP_ERREUR_REPORT);
487 487
 
@@ -494,10 +494,10 @@  discard block
 block discarded – undo
494 494
 // ===> on execute en neutralisant les messages d'erreur
495 495
 
496 496
 spip_initialisation_core(
497
-	(_DIR_RACINE . _NOM_PERMANENTS_INACCESSIBLES),
498
-	(_DIR_RACINE . _NOM_PERMANENTS_ACCESSIBLES),
499
-	(_DIR_RACINE . _NOM_TEMPORAIRES_INACCESSIBLES),
500
-	(_DIR_RACINE . _NOM_TEMPORAIRES_ACCESSIBLES)
497
+    (_DIR_RACINE . _NOM_PERMANENTS_INACCESSIBLES),
498
+    (_DIR_RACINE . _NOM_PERMANENTS_ACCESSIBLES),
499
+    (_DIR_RACINE . _NOM_TEMPORAIRES_INACCESSIBLES),
500
+    (_DIR_RACINE . _NOM_TEMPORAIRES_ACCESSIBLES)
501 501
 );
502 502
 
503 503
 
@@ -507,70 +507,70 @@  discard block
 block discarded – undo
507 507
 // donc il faut avoir tout fini ici avant de charger les plugins
508 508
 
509 509
 if (@is_readable(_CACHE_PLUGINS_OPT) and @is_readable(_CACHE_PLUGINS_PATH)) {
510
-	// chargement optimise precompile
511
-	include_once(_CACHE_PLUGINS_OPT);
510
+    // chargement optimise precompile
511
+    include_once(_CACHE_PLUGINS_OPT);
512 512
 } else {
513
-	spip_initialisation_suite();
514
-	include_spip('inc/plugin');
515
-	// generer les fichiers php precompiles
516
-	// de chargement des plugins et des pipelines
517
-	actualise_plugins_actifs();
513
+    spip_initialisation_suite();
514
+    include_spip('inc/plugin');
515
+    // generer les fichiers php precompiles
516
+    // de chargement des plugins et des pipelines
517
+    actualise_plugins_actifs();
518 518
 }
519 519
 
520 520
 // Initialisations non critiques surchargeables par les plugins
521 521
 spip_initialisation_suite();
522 522
 
523 523
 if (!defined('_LOG_FILTRE_GRAVITE')) {
524
-	/** niveau maxi d'enregistrement des logs */
525
-	define('_LOG_FILTRE_GRAVITE', _LOG_INFO_IMPORTANTE);
524
+    /** niveau maxi d'enregistrement des logs */
525
+    define('_LOG_FILTRE_GRAVITE', _LOG_INFO_IMPORTANTE);
526 526
 }
527 527
 
528 528
 if (!defined('_OUTILS_DEVELOPPEURS')) {
529
-	/** Activer des outils pour développeurs ? */
530
-	define('_OUTILS_DEVELOPPEURS', false);
529
+    /** Activer des outils pour développeurs ? */
530
+    define('_OUTILS_DEVELOPPEURS', false);
531 531
 }
532 532
 
533 533
 // charger systematiquement inc/autoriser dans l'espace restreint
534 534
 if (test_espace_prive()) {
535
-	include_spip('inc/autoriser');
535
+    include_spip('inc/autoriser');
536 536
 }
537 537
 //
538 538
 // Installer Spip si pas installe... sauf si justement on est en train
539 539
 //
540 540
 if (
541
-	!(_FILE_CONNECT
542
-	or autoriser_sans_cookie(_request('exec'))
543
-	or _request('action') == 'cookie'
544
-	or _request('action') == 'converser'
545
-	or _request('action') == 'test_dirs')
541
+    !(_FILE_CONNECT
542
+    or autoriser_sans_cookie(_request('exec'))
543
+    or _request('action') == 'cookie'
544
+    or _request('action') == 'converser'
545
+    or _request('action') == 'test_dirs')
546 546
 ) {
547
-	// Si on peut installer, on lance illico
548
-	if (test_espace_prive()) {
549
-		include_spip('inc/headers');
550
-		redirige_url_ecrire('install');
551
-	} else {
552
-		// Si on est dans le site public, dire que qq s'en occupe
553
-		include_spip('inc/minipres');
554
-		utiliser_langue_visiteur();
555
-		echo minipres(_T('info_travaux_titre'), "<p style='text-align: center;'>" . _T('info_travaux_texte') . '</p>', ['status' => 503]);
556
-		exit;
557
-	}
558
-	// autrement c'est une install ad hoc (spikini...), on sait pas faire
547
+    // Si on peut installer, on lance illico
548
+    if (test_espace_prive()) {
549
+        include_spip('inc/headers');
550
+        redirige_url_ecrire('install');
551
+    } else {
552
+        // Si on est dans le site public, dire que qq s'en occupe
553
+        include_spip('inc/minipres');
554
+        utiliser_langue_visiteur();
555
+        echo minipres(_T('info_travaux_titre'), "<p style='text-align: center;'>" . _T('info_travaux_texte') . '</p>', ['status' => 503]);
556
+        exit;
557
+    }
558
+    // autrement c'est une install ad hoc (spikini...), on sait pas faire
559 559
 }
560 560
 
561 561
 // memoriser un tri sessionne eventuel
562 562
 if (
563
-	isset($_REQUEST['var_memotri'])
564
-	and $t = $_REQUEST['var_memotri']
565
-	and (strncmp($t, 'trisession', 10) == 0 or strncmp($t, 'senssession', 11) == 0)
563
+    isset($_REQUEST['var_memotri'])
564
+    and $t = $_REQUEST['var_memotri']
565
+    and (strncmp($t, 'trisession', 10) == 0 or strncmp($t, 'senssession', 11) == 0)
566 566
 ) {
567
-	if (!function_exists('session_set')) {
568
-		include_spip('inc/session');
569
-	}
570
-	$t = preg_replace(',\W,', '_', $t);
571
-	if ($v = _request($t)) {
572
-		session_set($t, $v);
573
-	}
567
+    if (!function_exists('session_set')) {
568
+        include_spip('inc/session');
569
+    }
570
+    $t = preg_replace(',\W,', '_', $t);
571
+    if ($v = _request($t)) {
572
+        session_set($t, $v);
573
+    }
574 574
 }
575 575
 
576 576
 /**
@@ -580,22 +580,22 @@  discard block
 block discarded – undo
580 580
  * La globale $spip_header_silencieux permet de rendre le header minimal pour raisons de securite
581 581
  */
582 582
 if (!defined('_HEADER_COMPOSED_BY')) {
583
-	define('_HEADER_COMPOSED_BY', 'Composed-By: SPIP');
583
+    define('_HEADER_COMPOSED_BY', 'Composed-By: SPIP');
584 584
 }
585 585
 if (!headers_sent() and _HEADER_COMPOSED_BY) {
586
-	if (!defined('_HEADER_VARY')) {
587
-		define('_HEADER_VARY', 'Vary: Cookie, Accept-Encoding');
588
-	}
589
-	if (_HEADER_VARY) {
590
-		header(_HEADER_VARY);
591
-	}
592
-	if (!isset($GLOBALS['spip_header_silencieux']) or !$GLOBALS['spip_header_silencieux']) {
593
-		include_spip('inc/filtres_mini');
594
-		header(_HEADER_COMPOSED_BY . " $spip_version_affichee @ www.spip.net + " . url_absolue(_DIR_VAR . 'config.txt'));
595
-	} else {
596
-		// header minimal
597
-		header(_HEADER_COMPOSED_BY . ' @ www.spip.net');
598
-	}
586
+    if (!defined('_HEADER_VARY')) {
587
+        define('_HEADER_VARY', 'Vary: Cookie, Accept-Encoding');
588
+    }
589
+    if (_HEADER_VARY) {
590
+        header(_HEADER_VARY);
591
+    }
592
+    if (!isset($GLOBALS['spip_header_silencieux']) or !$GLOBALS['spip_header_silencieux']) {
593
+        include_spip('inc/filtres_mini');
594
+        header(_HEADER_COMPOSED_BY . " $spip_version_affichee @ www.spip.net + " . url_absolue(_DIR_VAR . 'config.txt'));
595
+    } else {
596
+        // header minimal
597
+        header(_HEADER_COMPOSED_BY . ' @ www.spip.net');
598
+    }
599 599
 }
600 600
 
601 601
 $methode = (isset($_SERVER['REQUEST_METHOD']) ? $_SERVER['REQUEST_METHOD'] : ((php_sapi_name() == 'cli') ? 'cli' : ''));
Please login to merge, or discard this patch.
Spacing   +21 added lines, -21 removed lines patch added patch discarded remove patch
@@ -51,11 +51,11 @@  discard block
 block discarded – undo
51 51
 define('_DIR_RACINE', _DIR_RESTREINT ? '' : '../');
52 52
 
53 53
 /** chemin absolu vers la racine */
54
-define('_ROOT_RACINE', dirname(__DIR__) . '/');
54
+define('_ROOT_RACINE', dirname(__DIR__).'/');
55 55
 /** chemin absolu vers le repertoire de travail */
56
-define('_ROOT_CWD', getcwd() . '/');
56
+define('_ROOT_CWD', getcwd().'/');
57 57
 /** chemin absolu vers ecrire */
58
-define('_ROOT_RESTREINT', _ROOT_CWD . _DIR_RESTREINT);
58
+define('_ROOT_RESTREINT', _ROOT_CWD._DIR_RESTREINT);
59 59
 
60 60
 // Icones
61 61
 if (!defined('_NOM_IMG_PACK')) {
@@ -63,17 +63,17 @@  discard block
 block discarded – undo
63 63
 	define('_NOM_IMG_PACK', 'images/');
64 64
 }
65 65
 /** le chemin http (relatif) vers les images standard */
66
-define('_DIR_IMG_PACK', (_DIR_RACINE . 'prive/' . _NOM_IMG_PACK));
66
+define('_DIR_IMG_PACK', (_DIR_RACINE.'prive/'._NOM_IMG_PACK));
67 67
 
68 68
 /** le chemin php (absolu) vers les images standard (pour hebergement centralise) */
69
-define('_ROOT_IMG_PACK', dirname(__DIR__) . '/prive/' . _NOM_IMG_PACK);
69
+define('_ROOT_IMG_PACK', dirname(__DIR__).'/prive/'._NOM_IMG_PACK);
70 70
 
71 71
 if (!defined('_JAVASCRIPT')) {
72 72
 	/** Nom du repertoire des  bibliotheques JavaScript */
73 73
 	define('_JAVASCRIPT', 'javascript/');
74 74
 } // utilisable avec #CHEMIN et find_in_path
75 75
 /** le nom du repertoire des  bibliotheques JavaScript du prive */
76
-define('_DIR_JAVASCRIPT', (_DIR_RACINE . 'prive/' . _JAVASCRIPT));
76
+define('_DIR_JAVASCRIPT', (_DIR_RACINE.'prive/'._JAVASCRIPT));
77 77
 
78 78
 # Le nom des 4 repertoires modifiables par les scripts lances par httpd
79 79
 # Par defaut ces 4 noms seront suffixes par _DIR_RACINE (cf plus bas)
@@ -104,8 +104,8 @@  discard block
 block discarded – undo
104 104
 
105 105
 // Son emplacement absolu si on le trouve
106 106
 if (
107
-	@file_exists($f = _ROOT_RACINE . _NOM_PERMANENTS_INACCESSIBLES . _NOM_CONFIG . '.php')
108
-	or (@file_exists($f = _ROOT_RESTREINT . _NOM_CONFIG . '.php'))
107
+	@file_exists($f = _ROOT_RACINE._NOM_PERMANENTS_INACCESSIBLES._NOM_CONFIG.'.php')
108
+	or (@file_exists($f = _ROOT_RESTREINT._NOM_CONFIG.'.php'))
109 109
 ) {
110 110
 	/** Emplacement absolu du fichier d'option */
111 111
 	define('_FILE_OPTIONS', $f);
@@ -129,7 +129,7 @@  discard block
 block discarded – undo
129 129
 // Inclure l'ecran de securite
130 130
 if (
131 131
 	!defined('_ECRAN_SECURITE')
132
-	and @file_exists($f = _ROOT_RACINE . _NOM_PERMANENTS_INACCESSIBLES . 'ecran_securite.php')
132
+	and @file_exists($f = _ROOT_RACINE._NOM_PERMANENTS_INACCESSIBLES.'ecran_securite.php')
133 133
 ) {
134 134
 	include $f;
135 135
 }
@@ -150,7 +150,7 @@  discard block
 block discarded – undo
150 150
 			// UA plus cibles
151 151
 			. '80legs|accoona|AltaVista|ASPSeek|Baidu|Charlotte|EC2LinkFinder|eStyle|facebook|flipboard|hootsuite|FunWebProducts|Google|Genieo|INA dlweb|InfegyAtlas|Java VM|LiteFinder|Lycos|MetaURI|Moreover|Rambler|Scooter|ScrubbyBloglines|Yahoo|Yeti'
152 152
 			. ',i',
153
-			(string)$_SERVER['HTTP_USER_AGENT']
153
+			(string) $_SERVER['HTTP_USER_AGENT']
154 154
 		)
155 155
 	);
156 156
 }
@@ -392,7 +392,7 @@  discard block
 block discarded – undo
392 392
 # la matrice standard (fichiers definissant les fonctions a inclure)
393 393
 $spip_matrice = [];
394 394
 # les plugins a activer
395
-$plugins = [];  // voir le contenu du repertoire /plugins/
395
+$plugins = []; // voir le contenu du repertoire /plugins/
396 396
 # les surcharges de include_spip()
397 397
 $surcharges = []; // format 'inc_truc' => '/plugins/chose/inc_truc2.php'
398 398
 
@@ -470,8 +470,8 @@  discard block
 block discarded – undo
470 470
 //
471 471
 // Charger les fonctions liees aux serveurs Http et Sql.
472 472
 //
473
-require_once _ROOT_RESTREINT . 'inc/utils.php';
474
-require_once _ROOT_RESTREINT . 'base/connect_sql.php';
473
+require_once _ROOT_RESTREINT.'inc/utils.php';
474
+require_once _ROOT_RESTREINT.'base/connect_sql.php';
475 475
 
476 476
 // Definition personnelles eventuelles
477 477
 
@@ -494,10 +494,10 @@  discard block
 block discarded – undo
494 494
 // ===> on execute en neutralisant les messages d'erreur
495 495
 
496 496
 spip_initialisation_core(
497
-	(_DIR_RACINE . _NOM_PERMANENTS_INACCESSIBLES),
498
-	(_DIR_RACINE . _NOM_PERMANENTS_ACCESSIBLES),
499
-	(_DIR_RACINE . _NOM_TEMPORAIRES_INACCESSIBLES),
500
-	(_DIR_RACINE . _NOM_TEMPORAIRES_ACCESSIBLES)
497
+	(_DIR_RACINE._NOM_PERMANENTS_INACCESSIBLES),
498
+	(_DIR_RACINE._NOM_PERMANENTS_ACCESSIBLES),
499
+	(_DIR_RACINE._NOM_TEMPORAIRES_INACCESSIBLES),
500
+	(_DIR_RACINE._NOM_TEMPORAIRES_ACCESSIBLES)
501 501
 );
502 502
 
503 503
 
@@ -552,7 +552,7 @@  discard block
 block discarded – undo
552 552
 		// Si on est dans le site public, dire que qq s'en occupe
553 553
 		include_spip('inc/minipres');
554 554
 		utiliser_langue_visiteur();
555
-		echo minipres(_T('info_travaux_titre'), "<p style='text-align: center;'>" . _T('info_travaux_texte') . '</p>', ['status' => 503]);
555
+		echo minipres(_T('info_travaux_titre'), "<p style='text-align: center;'>"._T('info_travaux_texte').'</p>', ['status' => 503]);
556 556
 		exit;
557 557
 	}
558 558
 	// autrement c'est une install ad hoc (spikini...), on sait pas faire
@@ -591,12 +591,12 @@  discard block
 block discarded – undo
591 591
 	}
592 592
 	if (!isset($GLOBALS['spip_header_silencieux']) or !$GLOBALS['spip_header_silencieux']) {
593 593
 		include_spip('inc/filtres_mini');
594
-		header(_HEADER_COMPOSED_BY . " $spip_version_affichee @ www.spip.net + " . url_absolue(_DIR_VAR . 'config.txt'));
594
+		header(_HEADER_COMPOSED_BY." $spip_version_affichee @ www.spip.net + ".url_absolue(_DIR_VAR.'config.txt'));
595 595
 	} else {
596 596
 		// header minimal
597
-		header(_HEADER_COMPOSED_BY . ' @ www.spip.net');
597
+		header(_HEADER_COMPOSED_BY.' @ www.spip.net');
598 598
 	}
599 599
 }
600 600
 
601 601
 $methode = (isset($_SERVER['REQUEST_METHOD']) ? $_SERVER['REQUEST_METHOD'] : ((php_sapi_name() == 'cli') ? 'cli' : ''));
602
-spip_log($methode . ' ' . self() . ' - ' . _FILE_CONNECT, _LOG_DEBUG);
602
+spip_log($methode.' '.self().' - '._FILE_CONNECT, _LOG_DEBUG);
Please login to merge, or discard this patch.
ecrire/iterateur/sql.php 1 patch
Indentation   +202 added lines, -202 removed lines patch added patch discarded remove patch
@@ -17,7 +17,7 @@  discard block
 block discarded – undo
17 17
  **/
18 18
 
19 19
 if (!defined('_ECRIRE_INC_VERSION')) {
20
-	return;
20
+    return;
21 21
 }
22 22
 
23 23
 
@@ -28,208 +28,208 @@  discard block
 block discarded – undo
28 28
  */
29 29
 class IterateurSQL implements Iterator {
30 30
 
31
-	/**
32
-	 * ressource sql
33
-	 *
34
-	 * @var resource|bool
35
-	 */
36
-	protected $sqlresult = false;
37
-
38
-	/**
39
-	 * row sql courante
40
-	 *
41
-	 * @var array|null
42
-	 */
43
-	protected $row = null;
44
-
45
-	protected $firstseek = false;
46
-
47
-	/**
48
-	 * Erreur presente ?
49
-	 *
50
-	 * @var bool
51
-	 **/
52
-	public $err = false;
53
-
54
-	/**
55
-	 * Calcul du total des elements
56
-	 *
57
-	 * @var int|null
58
-	 **/
59
-	public $total = null;
60
-
61
-	/**
62
-	 * selectionner les donnees, ie faire la requete SQL
63
-	 *
64
-	 * @return void
65
-	 */
66
-	protected function select() {
67
-		$this->row = null;
68
-		$v = &$this->command;
69
-		$this->sqlresult = calculer_select(
70
-			$v['select'],
71
-			$v['from'],
72
-			$v['type'],
73
-			$v['where'],
74
-			$v['join'],
75
-			$v['groupby'],
76
-			$v['orderby'],
77
-			$v['limit'],
78
-			$v['having'],
79
-			$v['table'],
80
-			$v['id'],
81
-			$v['connect'],
82
-			$this->info
83
-		);
84
-		$this->err = !$this->sqlresult;
85
-		$this->firstseek = false;
86
-		$this->pos = -1;
87
-
88
-		// pas d'init a priori, le calcul ne sera fait qu'en cas de besoin (provoque une double requete souvent inutile en sqlite)
89
-		//$this->total = $this->count();
90
-	}
91
-
92
-	/*
31
+    /**
32
+     * ressource sql
33
+     *
34
+     * @var resource|bool
35
+     */
36
+    protected $sqlresult = false;
37
+
38
+    /**
39
+     * row sql courante
40
+     *
41
+     * @var array|null
42
+     */
43
+    protected $row = null;
44
+
45
+    protected $firstseek = false;
46
+
47
+    /**
48
+     * Erreur presente ?
49
+     *
50
+     * @var bool
51
+     **/
52
+    public $err = false;
53
+
54
+    /**
55
+     * Calcul du total des elements
56
+     *
57
+     * @var int|null
58
+     **/
59
+    public $total = null;
60
+
61
+    /**
62
+     * selectionner les donnees, ie faire la requete SQL
63
+     *
64
+     * @return void
65
+     */
66
+    protected function select() {
67
+        $this->row = null;
68
+        $v = &$this->command;
69
+        $this->sqlresult = calculer_select(
70
+            $v['select'],
71
+            $v['from'],
72
+            $v['type'],
73
+            $v['where'],
74
+            $v['join'],
75
+            $v['groupby'],
76
+            $v['orderby'],
77
+            $v['limit'],
78
+            $v['having'],
79
+            $v['table'],
80
+            $v['id'],
81
+            $v['connect'],
82
+            $this->info
83
+        );
84
+        $this->err = !$this->sqlresult;
85
+        $this->firstseek = false;
86
+        $this->pos = -1;
87
+
88
+        // pas d'init a priori, le calcul ne sera fait qu'en cas de besoin (provoque une double requete souvent inutile en sqlite)
89
+        //$this->total = $this->count();
90
+    }
91
+
92
+    /*
93 93
 	 * array command: les commandes d'initialisation
94 94
 	 * array info: les infos sur le squelette
95 95
 	 */
96
-	public function __construct($command, $info = []) {
97
-		$this->type = 'SQL';
98
-		$this->command = $command;
99
-		$this->info = $info;
100
-		$this->select();
101
-	}
102
-
103
-	/**
104
-	 * Rembobiner
105
-	 *
106
-	 * @return bool
107
-	 */
108
-	public function rewind() {
109
-		return ($this->pos > 0)
110
-			? $this->seek(0)
111
-			: true;
112
-	}
113
-
114
-	/**
115
-	 * Verifier l'etat de l'iterateur
116
-	 *
117
-	 * @return bool
118
-	 */
119
-	public function valid() {
120
-		if ($this->err) {
121
-			return false;
122
-		}
123
-		if (!$this->firstseek) {
124
-			$this->next();
125
-		}
126
-
127
-		return is_array($this->row);
128
-	}
129
-
130
-	/**
131
-	 * Valeurs sur la position courante
132
-	 *
133
-	 * @return array
134
-	 */
135
-	public function current() {
136
-		return $this->row;
137
-	}
138
-
139
-	public function key() {
140
-		return $this->pos;
141
-	}
142
-
143
-	/**
144
-	 * Sauter a une position absolue
145
-	 *
146
-	 * @param int $n
147
-	 * @param null|string $continue
148
-	 * @return bool
149
-	 */
150
-	public function seek($n = 0, $continue = null) {
151
-		if (!sql_seek($this->sqlresult, $n, $this->command['connect'], $continue)) {
152
-			// SQLite ne sait pas seek(), il faut relancer la query
153
-			// si la position courante est apres la position visee
154
-			// il faut relancer la requete
155
-			if ($this->pos > $n) {
156
-				$this->free();
157
-				$this->select();
158
-				$this->valid();
159
-			}
160
-			// et utiliser la methode par defaut pour se deplacer au bon endroit
161
-			// (sera fait en cas d'echec de cette fonction)
162
-			return false;
163
-		}
164
-		$this->row = sql_fetch($this->sqlresult, $this->command['connect']);
165
-		$this->pos = min($n, $this->count());
166
-
167
-		return true;
168
-	}
169
-
170
-	/**
171
-	 * Avancer d'un cran
172
-	 *
173
-	 * @return void
174
-	 */
175
-	public function next() {
176
-		$this->row = sql_fetch($this->sqlresult, $this->command['connect']);
177
-		$this->pos++;
178
-		$this->firstseek |= true;
179
-	}
180
-
181
-	/**
182
-	 * Avancer et retourner les donnees pour le nouvel element
183
-	 *
184
-	 * @return array|bool|null
185
-	 */
186
-	public function fetch() {
187
-		if ($this->valid()) {
188
-			$r = $this->current();
189
-			$this->next();
190
-		} else {
191
-			$r = false;
192
-		}
193
-
194
-		return $r;
195
-	}
196
-
197
-	/**
198
-	 * liberer les ressources
199
-	 *
200
-	 * @return bool
201
-	 */
202
-	public function free() {
203
-		if (!$this->sqlresult) {
204
-			return true;
205
-		}
206
-		$a = sql_free($this->sqlresult, $this->command['connect']);
207
-		$this->sqlresult = null;
208
-
209
-		return $a;
210
-	}
211
-
212
-	/**
213
-	 * Compter le nombre de resultats
214
-	 *
215
-	 * @return int
216
-	 */
217
-	public function count() {
218
-		if (is_null($this->total)) {
219
-			if (!$this->sqlresult) {
220
-				$this->total = 0;
221
-			} else {
222
-				# cas count(*)
223
-				if (in_array('count(*)', $this->command['select'])) {
224
-					$this->valid();
225
-					$s = $this->current();
226
-					$this->total = $s['count(*)'];
227
-				} else {
228
-					$this->total = sql_count($this->sqlresult, $this->command['connect']);
229
-				}
230
-			}
231
-		}
232
-
233
-		return $this->total;
234
-	}
96
+    public function __construct($command, $info = []) {
97
+        $this->type = 'SQL';
98
+        $this->command = $command;
99
+        $this->info = $info;
100
+        $this->select();
101
+    }
102
+
103
+    /**
104
+     * Rembobiner
105
+     *
106
+     * @return bool
107
+     */
108
+    public function rewind() {
109
+        return ($this->pos > 0)
110
+            ? $this->seek(0)
111
+            : true;
112
+    }
113
+
114
+    /**
115
+     * Verifier l'etat de l'iterateur
116
+     *
117
+     * @return bool
118
+     */
119
+    public function valid() {
120
+        if ($this->err) {
121
+            return false;
122
+        }
123
+        if (!$this->firstseek) {
124
+            $this->next();
125
+        }
126
+
127
+        return is_array($this->row);
128
+    }
129
+
130
+    /**
131
+     * Valeurs sur la position courante
132
+     *
133
+     * @return array
134
+     */
135
+    public function current() {
136
+        return $this->row;
137
+    }
138
+
139
+    public function key() {
140
+        return $this->pos;
141
+    }
142
+
143
+    /**
144
+     * Sauter a une position absolue
145
+     *
146
+     * @param int $n
147
+     * @param null|string $continue
148
+     * @return bool
149
+     */
150
+    public function seek($n = 0, $continue = null) {
151
+        if (!sql_seek($this->sqlresult, $n, $this->command['connect'], $continue)) {
152
+            // SQLite ne sait pas seek(), il faut relancer la query
153
+            // si la position courante est apres la position visee
154
+            // il faut relancer la requete
155
+            if ($this->pos > $n) {
156
+                $this->free();
157
+                $this->select();
158
+                $this->valid();
159
+            }
160
+            // et utiliser la methode par defaut pour se deplacer au bon endroit
161
+            // (sera fait en cas d'echec de cette fonction)
162
+            return false;
163
+        }
164
+        $this->row = sql_fetch($this->sqlresult, $this->command['connect']);
165
+        $this->pos = min($n, $this->count());
166
+
167
+        return true;
168
+    }
169
+
170
+    /**
171
+     * Avancer d'un cran
172
+     *
173
+     * @return void
174
+     */
175
+    public function next() {
176
+        $this->row = sql_fetch($this->sqlresult, $this->command['connect']);
177
+        $this->pos++;
178
+        $this->firstseek |= true;
179
+    }
180
+
181
+    /**
182
+     * Avancer et retourner les donnees pour le nouvel element
183
+     *
184
+     * @return array|bool|null
185
+     */
186
+    public function fetch() {
187
+        if ($this->valid()) {
188
+            $r = $this->current();
189
+            $this->next();
190
+        } else {
191
+            $r = false;
192
+        }
193
+
194
+        return $r;
195
+    }
196
+
197
+    /**
198
+     * liberer les ressources
199
+     *
200
+     * @return bool
201
+     */
202
+    public function free() {
203
+        if (!$this->sqlresult) {
204
+            return true;
205
+        }
206
+        $a = sql_free($this->sqlresult, $this->command['connect']);
207
+        $this->sqlresult = null;
208
+
209
+        return $a;
210
+    }
211
+
212
+    /**
213
+     * Compter le nombre de resultats
214
+     *
215
+     * @return int
216
+     */
217
+    public function count() {
218
+        if (is_null($this->total)) {
219
+            if (!$this->sqlresult) {
220
+                $this->total = 0;
221
+            } else {
222
+                # cas count(*)
223
+                if (in_array('count(*)', $this->command['select'])) {
224
+                    $this->valid();
225
+                    $s = $this->current();
226
+                    $this->total = $s['count(*)'];
227
+                } else {
228
+                    $this->total = sql_count($this->sqlresult, $this->command['connect']);
229
+                }
230
+            }
231
+        }
232
+
233
+        return $this->total;
234
+    }
235 235
 }
Please login to merge, or discard this patch.
ecrire/iterateur/data.php 2 patches
Indentation   +635 added lines, -635 removed lines patch added patch discarded remove patch
@@ -17,11 +17,11 @@  discard block
 block discarded – undo
17 17
  **/
18 18
 
19 19
 if (!defined('_ECRIRE_INC_VERSION')) {
20
-	return;
20
+    return;
21 21
 }
22 22
 
23 23
 if (!defined('_DATA_SOURCE_MAX_SIZE')) {
24
-	define('_DATA_SOURCE_MAX_SIZE', 2 * 1048576);
24
+    define('_DATA_SOURCE_MAX_SIZE', 2 * 1048576);
25 25
 }
26 26
 
27 27
 
@@ -42,17 +42,17 @@  discard block
 block discarded – undo
42 42
  *     Description de la boucle complétée des champs
43 43
  */
44 44
 function iterateur_DATA_dist($b) {
45
-	$b->iterateur = 'DATA'; # designe la classe d'iterateur
46
-	$b->show = [
47
-		'field' => [
48
-			'cle' => 'STRING',
49
-			'valeur' => 'STRING',
50
-			'*' => 'ALL' // Champ joker *
51
-		]
52
-	];
53
-	$b->select[] = '.valeur';
54
-
55
-	return $b;
45
+    $b->iterateur = 'DATA'; # designe la classe d'iterateur
46
+    $b->show = [
47
+        'field' => [
48
+            'cle' => 'STRING',
49
+            'valeur' => 'STRING',
50
+            '*' => 'ALL' // Champ joker *
51
+        ]
52
+    ];
53
+    $b->select[] = '.valeur';
54
+
55
+    return $b;
56 56
 }
57 57
 
58 58
 
@@ -62,522 +62,522 @@  discard block
 block discarded – undo
62 62
  * Pour itérer sur des données quelconques (transformables en tableau)
63 63
  */
64 64
 class IterateurDATA implements Iterator {
65
-	/**
66
-	 * tableau de donnees
67
-	 *
68
-	 * @var array
69
-	 */
70
-	protected $tableau = [];
71
-
72
-	/**
73
-	 * Conditions de filtrage
74
-	 * ie criteres de selection
75
-	 *
76
-	 * @var array
77
-	 */
78
-	protected $filtre = [];
79
-
80
-
81
-	/**
82
-	 * Cle courante
83
-	 *
84
-	 * @var null
85
-	 */
86
-	protected $cle = null;
87
-
88
-	/**
89
-	 * Valeur courante
90
-	 *
91
-	 * @var null
92
-	 */
93
-	protected $valeur = null;
94
-
95
-	/**
96
-	 * Erreur presente ?
97
-	 *
98
-	 * @var bool
99
-	 **/
100
-	public $err = false;
101
-
102
-	/**
103
-	 * Calcul du total des elements
104
-	 *
105
-	 * @var int|null
106
-	 **/
107
-	public $total = null;
108
-
109
-	/**
110
-	 * Constructeur
111
-	 *
112
-	 * @param  $command
113
-	 * @param array $info
114
-	 */
115
-	public function __construct($command, $info = []) {
116
-		$this->type = 'DATA';
117
-		$this->command = $command;
118
-		$this->info = $info;
119
-
120
-		$this->select($command);
121
-	}
122
-
123
-	/**
124
-	 * Revenir au depart
125
-	 *
126
-	 * @return void
127
-	 */
128
-	public function rewind() {
129
-		reset($this->tableau);
130
-		$this->cle = key($this->tableau);
131
-		$this->valeur = current($this->tableau);
132
-		next($this->tableau);
133
-	}
134
-
135
-	/**
136
-	 * Déclarer les critères exceptions
137
-	 *
138
-	 * @return array
139
-	 */
140
-	public function exception_des_criteres() {
141
-		return ['tableau'];
142
-	}
143
-
144
-	/**
145
-	 * Récupérer depuis le cache si possible
146
-	 *
147
-	 * @param string $cle
148
-	 * @return mixed
149
-	 */
150
-	protected function cache_get($cle) {
151
-		if (!$cle) {
152
-			return;
153
-		}
154
-		# utiliser memoization si dispo
155
-		if (!function_exists('cache_get')) {
156
-			return;
157
-		}
158
-
159
-		return cache_get($cle);
160
-	}
161
-
162
-	/**
163
-	 * Stocker en cache si possible
164
-	 *
165
-	 * @param string $cle
166
-	 * @param int $ttl
167
-	 * @param null|mixed $valeur
168
-	 * @return bool
169
-	 */
170
-	protected function cache_set($cle, $ttl, $valeur = null) {
171
-		if (!$cle) {
172
-			return;
173
-		}
174
-		if (is_null($valeur)) {
175
-			$valeur = $this->tableau;
176
-		}
177
-		# utiliser memoization si dispo
178
-		if (!function_exists('cache_set')) {
179
-			return;
180
-		}
181
-
182
-		return cache_set(
183
-			$cle,
184
-			[
185
-				'data' => $valeur,
186
-				'time' => time(),
187
-				'ttl' => $ttl
188
-			],
189
-			3600 + $ttl
190
-		);
191
-		# conserver le cache 1h de plus que la validite demandee,
192
-		# pour le cas ou le serveur distant ne reponde plus
193
-	}
194
-
195
-	/**
196
-	 * Aller chercher les données de la boucle DATA
197
-	 *
198
-	 * @throws Exception
199
-	 * @param array $command
200
-	 * @return void
201
-	 */
202
-	protected function select($command) {
203
-
204
-		// l'iterateur DATA peut etre appele en passant (data:type)
205
-		// le type se retrouve dans la commande 'from'
206
-		// dans ce cas la le critere {source}, si present, n'a pas besoin du 1er argument
207
-		if (isset($this->command['from'][0])) {
208
-			if (isset($this->command['source']) and is_array($this->command['source'])) {
209
-				array_unshift($this->command['source'], $this->command['sourcemode']);
210
-			}
211
-			$this->command['sourcemode'] = $this->command['from'][0];
212
-		}
213
-
214
-		// cherchons differents moyens de creer le tableau de donnees
215
-		// les commandes connues pour l'iterateur DATA
216
-		// sont : {tableau #ARRAY} ; {cle=...} ; {valeur=...}
217
-
218
-		// {source format, [URL], [arg2]...}
219
-		if (
220
-			isset($this->command['source'])
221
-			and isset($this->command['sourcemode'])
222
-		) {
223
-			$this->select_source();
224
-		}
225
-
226
-		// Critere {liste X1, X2, X3}
227
-		if (isset($this->command['liste'])) {
228
-			$this->select_liste();
229
-		}
230
-		if (isset($this->command['enum'])) {
231
-			$this->select_enum();
232
-		}
233
-
234
-		// Si a ce stade on n'a pas de table, il y a un bug
235
-		if (!is_array($this->tableau)) {
236
-			$this->err = true;
237
-			spip_log('erreur datasource ' . var_export($command, true));
238
-		}
239
-
240
-		// {datapath query.results}
241
-		// extraire le chemin "query.results" du tableau de donnees
242
-		if (
243
-			!$this->err
244
-			and isset($this->command['datapath'])
245
-			and is_array($this->command['datapath'])
246
-		) {
247
-			$this->select_datapath();
248
-		}
249
-
250
-		// tri {par x}
251
-		if ($this->command['orderby']) {
252
-			$this->select_orderby();
253
-		}
254
-
255
-		// grouper les resultats {fusion /x/y/z} ;
256
-		if ($this->command['groupby']) {
257
-			$this->select_groupby();
258
-		}
259
-
260
-		$this->rewind();
261
-		#var_dump($this->tableau);
262
-	}
263
-
264
-
265
-	/**
266
-	 * Aller chercher les donnees de la boucle DATA
267
-	 * depuis une source
268
-	 * {source format, [URL], [arg2]...}
269
-	 */
270
-	protected function select_source() {
271
-		# un peu crado : avant de charger le cache il faut charger
272
-		# les class indispensables, sinon PHP ne saura pas gerer
273
-		# l'objet en cache ; cf plugins/icalendar
274
-		# perf : pas de fonction table_to_array ! (table est deja un array)
275
-		if (
276
-			isset($this->command['sourcemode'])
277
-			and !in_array($this->command['sourcemode'], ['table', 'array', 'tableau'])
278
-		) {
279
-			charger_fonction($this->command['sourcemode'] . '_to_array', 'inc', true);
280
-		}
281
-
282
-		# le premier argument peut etre un array, une URL etc.
283
-		$src = $this->command['source'][0];
284
-
285
-		# avons-nous un cache dispo ?
286
-		$cle = null;
287
-		if (is_string($src)) {
288
-			$cle = 'datasource_' . md5($this->command['sourcemode'] . ':' . var_export($this->command['source'], true));
289
-		}
290
-
291
-		$cache = $this->cache_get($cle);
292
-		if (isset($this->command['datacache'])) {
293
-			$ttl = intval($this->command['datacache']);
294
-		}
295
-		if (
296
-			$cache
297
-			and ($cache['time'] + (isset($ttl) ? $ttl : $cache['ttl'])
298
-				> time())
299
-			and !(_request('var_mode') === 'recalcul'
300
-				and include_spip('inc/autoriser')
301
-				and autoriser('recalcul')
302
-			)
303
-		) {
304
-			$this->tableau = $cache['data'];
305
-		} else {
306
-			try {
307
-				if (
308
-					isset($this->command['sourcemode'])
309
-					and in_array(
310
-						$this->command['sourcemode'],
311
-						['table', 'array', 'tableau']
312
-					)
313
-				) {
314
-					if (
315
-						is_array($a = $src)
316
-						or (is_string($a)
317
-							and $a = str_replace('&quot;', '"', $a) # fragile!
318
-							and is_array($a = @unserialize($a)))
319
-					) {
320
-						$this->tableau = $a;
321
-					}
322
-				} else {
323
-					$data = $src;
324
-					if (is_string($src)) {
325
-						if (tester_url_absolue($src)) {
326
-							include_spip('inc/distant');
327
-							$data = recuperer_url($src, ['taille_max' => _DATA_SOURCE_MAX_SIZE]);
328
-							$data = $data['page'] ?? '';
329
-							if (!$data) {
330
-								throw new Exception('404');
331
-							}
332
-							if (!isset($ttl)) {
333
-								$ttl = 24 * 3600;
334
-							}
335
-						} elseif (@is_dir($src)) {
336
-							$data = $src;
337
-						} elseif (@is_readable($src) && @is_file($src)) {
338
-							$data = spip_file_get_contents($src);
339
-						}
340
-						if (!isset($ttl)) {
341
-							$ttl = 10;
342
-						}
343
-					}
344
-
345
-					if (
346
-						!$this->err
347
-						and $data_to_array = charger_fonction($this->command['sourcemode'] . '_to_array', 'inc', true)
348
-					) {
349
-						$args = $this->command['source'];
350
-						$args[0] = $data;
351
-						if (is_array($a = $data_to_array(...$args))) {
352
-							$this->tableau = $a;
353
-						}
354
-					}
355
-				}
356
-
357
-				if (!is_array($this->tableau)) {
358
-					$this->err = true;
359
-				}
360
-
361
-				if (!$this->err and isset($ttl) and $ttl > 0) {
362
-					$this->cache_set($cle, $ttl);
363
-				}
364
-			} catch (Exception $e) {
365
-				$e = $e->getMessage();
366
-				$err = sprintf(
367
-					"[%s, %s] $e",
368
-					$src,
369
-					$this->command['sourcemode']
370
-				);
371
-				erreur_squelette([$err, []]);
372
-				$this->err = true;
373
-			}
374
-		}
375
-
376
-		# en cas d'erreur, utiliser le cache si encore dispo
377
-		if (
378
-			$this->err
379
-			and $cache
380
-		) {
381
-			$this->tableau = $cache['data'];
382
-			$this->err = false;
383
-		}
384
-	}
385
-
386
-
387
-	/**
388
-	 * Retourne un tableau donne depuis un critère liste
389
-	 *
390
-	 * Critère `{liste X1, X2, X3}`
391
-	 *
392
-	 * @see critere_DATA_liste_dist()
393
-	 *
394
-	 **/
395
-	protected function select_liste() {
396
-		# s'il n'y a qu'une valeur dans la liste, sans doute une #BALISE
397
-		if (!isset($this->command['liste'][1])) {
398
-			if (!is_array($this->command['liste'][0])) {
399
-				$this->command['liste'] = explode(',', $this->command['liste'][0]);
400
-			} else {
401
-				$this->command['liste'] = $this->command['liste'][0];
402
-			}
403
-		}
404
-		$this->tableau = $this->command['liste'];
405
-	}
406
-
407
-	/**
408
-	 * Retourne un tableau donne depuis un critere liste
409
-	 * Critere {enum Xmin, Xmax}
410
-	 *
411
-	 **/
412
-	protected function select_enum() {
413
-		# s'il n'y a qu'une valeur dans la liste, sans doute une #BALISE
414
-		if (!isset($this->command['enum'][1])) {
415
-			if (!is_array($this->command['enum'][0])) {
416
-				$this->command['enum'] = explode(',', $this->command['enum'][0]);
417
-			} else {
418
-				$this->command['enum'] = $this->command['enum'][0];
419
-			}
420
-		}
421
-		if (count($this->command['enum']) >= 3) {
422
-			$enum = range(
423
-				array_shift($this->command['enum']),
424
-				array_shift($this->command['enum']),
425
-				array_shift($this->command['enum'])
426
-			);
427
-		} else {
428
-			$enum = range(array_shift($this->command['enum']), array_shift($this->command['enum']));
429
-		}
430
-		$this->tableau = $enum;
431
-	}
432
-
433
-
434
-	/**
435
-	 * extraire le chemin "query.results" du tableau de donnees
436
-	 * {datapath query.results}
437
-	 *
438
-	 **/
439
-	protected function select_datapath() {
440
-		$base = reset($this->command['datapath']);
441
-		if (strlen($base = ltrim(trim($base), '/'))) {
442
-			$this->tableau = table_valeur($this->tableau, $base);
443
-			if (!is_array($this->tableau)) {
444
-				$this->tableau = [];
445
-				$this->err = true;
446
-				spip_log("datapath '$base' absent");
447
-			}
448
-		}
449
-	}
450
-
451
-	/**
452
-	 * Ordonner les resultats
453
-	 * {par x}
454
-	 *
455
-	 **/
456
-	protected function select_orderby() {
457
-		$sortfunc = '';
458
-		$aleas = 0;
459
-		foreach ($this->command['orderby'] as $tri) {
460
-			// virer le / initial pour les criteres de la forme {par /xx}
461
-			if (preg_match(',^\.?([/\w]+)( DESC)?$,iS', ltrim($tri, '/'), $r)) {
462
-				$r = array_pad($r, 3, null);
463
-
464
-				// tri par cle
465
-				if ($r[1] == 'cle') {
466
-					if (isset($r[2]) and $r[2]) {
467
-						krsort($this->tableau);
468
-					} else {
469
-						ksort($this->tableau);
470
-					}
471
-				} # {par hasard}
472
-				else {
473
-					if ($r[1] == 'hasard') {
474
-						$k = array_keys($this->tableau);
475
-						shuffle($k);
476
-						$v = [];
477
-						foreach ($k as $cle) {
478
-							$v[$cle] = $this->tableau[$cle];
479
-						}
480
-						$this->tableau = $v;
481
-					} else {
482
-						# {par valeur}
483
-						if ($r[1] == 'valeur') {
484
-							$tv = '%s';
485
-						} # {par valeur/xx/yy} ??
486
-						else {
487
-							$tv = 'table_valeur(%s, ' . var_export($r[1], true) . ')';
488
-						}
489
-						$sortfunc .= '
65
+    /**
66
+     * tableau de donnees
67
+     *
68
+     * @var array
69
+     */
70
+    protected $tableau = [];
71
+
72
+    /**
73
+     * Conditions de filtrage
74
+     * ie criteres de selection
75
+     *
76
+     * @var array
77
+     */
78
+    protected $filtre = [];
79
+
80
+
81
+    /**
82
+     * Cle courante
83
+     *
84
+     * @var null
85
+     */
86
+    protected $cle = null;
87
+
88
+    /**
89
+     * Valeur courante
90
+     *
91
+     * @var null
92
+     */
93
+    protected $valeur = null;
94
+
95
+    /**
96
+     * Erreur presente ?
97
+     *
98
+     * @var bool
99
+     **/
100
+    public $err = false;
101
+
102
+    /**
103
+     * Calcul du total des elements
104
+     *
105
+     * @var int|null
106
+     **/
107
+    public $total = null;
108
+
109
+    /**
110
+     * Constructeur
111
+     *
112
+     * @param  $command
113
+     * @param array $info
114
+     */
115
+    public function __construct($command, $info = []) {
116
+        $this->type = 'DATA';
117
+        $this->command = $command;
118
+        $this->info = $info;
119
+
120
+        $this->select($command);
121
+    }
122
+
123
+    /**
124
+     * Revenir au depart
125
+     *
126
+     * @return void
127
+     */
128
+    public function rewind() {
129
+        reset($this->tableau);
130
+        $this->cle = key($this->tableau);
131
+        $this->valeur = current($this->tableau);
132
+        next($this->tableau);
133
+    }
134
+
135
+    /**
136
+     * Déclarer les critères exceptions
137
+     *
138
+     * @return array
139
+     */
140
+    public function exception_des_criteres() {
141
+        return ['tableau'];
142
+    }
143
+
144
+    /**
145
+     * Récupérer depuis le cache si possible
146
+     *
147
+     * @param string $cle
148
+     * @return mixed
149
+     */
150
+    protected function cache_get($cle) {
151
+        if (!$cle) {
152
+            return;
153
+        }
154
+        # utiliser memoization si dispo
155
+        if (!function_exists('cache_get')) {
156
+            return;
157
+        }
158
+
159
+        return cache_get($cle);
160
+    }
161
+
162
+    /**
163
+     * Stocker en cache si possible
164
+     *
165
+     * @param string $cle
166
+     * @param int $ttl
167
+     * @param null|mixed $valeur
168
+     * @return bool
169
+     */
170
+    protected function cache_set($cle, $ttl, $valeur = null) {
171
+        if (!$cle) {
172
+            return;
173
+        }
174
+        if (is_null($valeur)) {
175
+            $valeur = $this->tableau;
176
+        }
177
+        # utiliser memoization si dispo
178
+        if (!function_exists('cache_set')) {
179
+            return;
180
+        }
181
+
182
+        return cache_set(
183
+            $cle,
184
+            [
185
+                'data' => $valeur,
186
+                'time' => time(),
187
+                'ttl' => $ttl
188
+            ],
189
+            3600 + $ttl
190
+        );
191
+        # conserver le cache 1h de plus que la validite demandee,
192
+        # pour le cas ou le serveur distant ne reponde plus
193
+    }
194
+
195
+    /**
196
+     * Aller chercher les données de la boucle DATA
197
+     *
198
+     * @throws Exception
199
+     * @param array $command
200
+     * @return void
201
+     */
202
+    protected function select($command) {
203
+
204
+        // l'iterateur DATA peut etre appele en passant (data:type)
205
+        // le type se retrouve dans la commande 'from'
206
+        // dans ce cas la le critere {source}, si present, n'a pas besoin du 1er argument
207
+        if (isset($this->command['from'][0])) {
208
+            if (isset($this->command['source']) and is_array($this->command['source'])) {
209
+                array_unshift($this->command['source'], $this->command['sourcemode']);
210
+            }
211
+            $this->command['sourcemode'] = $this->command['from'][0];
212
+        }
213
+
214
+        // cherchons differents moyens de creer le tableau de donnees
215
+        // les commandes connues pour l'iterateur DATA
216
+        // sont : {tableau #ARRAY} ; {cle=...} ; {valeur=...}
217
+
218
+        // {source format, [URL], [arg2]...}
219
+        if (
220
+            isset($this->command['source'])
221
+            and isset($this->command['sourcemode'])
222
+        ) {
223
+            $this->select_source();
224
+        }
225
+
226
+        // Critere {liste X1, X2, X3}
227
+        if (isset($this->command['liste'])) {
228
+            $this->select_liste();
229
+        }
230
+        if (isset($this->command['enum'])) {
231
+            $this->select_enum();
232
+        }
233
+
234
+        // Si a ce stade on n'a pas de table, il y a un bug
235
+        if (!is_array($this->tableau)) {
236
+            $this->err = true;
237
+            spip_log('erreur datasource ' . var_export($command, true));
238
+        }
239
+
240
+        // {datapath query.results}
241
+        // extraire le chemin "query.results" du tableau de donnees
242
+        if (
243
+            !$this->err
244
+            and isset($this->command['datapath'])
245
+            and is_array($this->command['datapath'])
246
+        ) {
247
+            $this->select_datapath();
248
+        }
249
+
250
+        // tri {par x}
251
+        if ($this->command['orderby']) {
252
+            $this->select_orderby();
253
+        }
254
+
255
+        // grouper les resultats {fusion /x/y/z} ;
256
+        if ($this->command['groupby']) {
257
+            $this->select_groupby();
258
+        }
259
+
260
+        $this->rewind();
261
+        #var_dump($this->tableau);
262
+    }
263
+
264
+
265
+    /**
266
+     * Aller chercher les donnees de la boucle DATA
267
+     * depuis une source
268
+     * {source format, [URL], [arg2]...}
269
+     */
270
+    protected function select_source() {
271
+        # un peu crado : avant de charger le cache il faut charger
272
+        # les class indispensables, sinon PHP ne saura pas gerer
273
+        # l'objet en cache ; cf plugins/icalendar
274
+        # perf : pas de fonction table_to_array ! (table est deja un array)
275
+        if (
276
+            isset($this->command['sourcemode'])
277
+            and !in_array($this->command['sourcemode'], ['table', 'array', 'tableau'])
278
+        ) {
279
+            charger_fonction($this->command['sourcemode'] . '_to_array', 'inc', true);
280
+        }
281
+
282
+        # le premier argument peut etre un array, une URL etc.
283
+        $src = $this->command['source'][0];
284
+
285
+        # avons-nous un cache dispo ?
286
+        $cle = null;
287
+        if (is_string($src)) {
288
+            $cle = 'datasource_' . md5($this->command['sourcemode'] . ':' . var_export($this->command['source'], true));
289
+        }
290
+
291
+        $cache = $this->cache_get($cle);
292
+        if (isset($this->command['datacache'])) {
293
+            $ttl = intval($this->command['datacache']);
294
+        }
295
+        if (
296
+            $cache
297
+            and ($cache['time'] + (isset($ttl) ? $ttl : $cache['ttl'])
298
+                > time())
299
+            and !(_request('var_mode') === 'recalcul'
300
+                and include_spip('inc/autoriser')
301
+                and autoriser('recalcul')
302
+            )
303
+        ) {
304
+            $this->tableau = $cache['data'];
305
+        } else {
306
+            try {
307
+                if (
308
+                    isset($this->command['sourcemode'])
309
+                    and in_array(
310
+                        $this->command['sourcemode'],
311
+                        ['table', 'array', 'tableau']
312
+                    )
313
+                ) {
314
+                    if (
315
+                        is_array($a = $src)
316
+                        or (is_string($a)
317
+                            and $a = str_replace('&quot;', '"', $a) # fragile!
318
+                            and is_array($a = @unserialize($a)))
319
+                    ) {
320
+                        $this->tableau = $a;
321
+                    }
322
+                } else {
323
+                    $data = $src;
324
+                    if (is_string($src)) {
325
+                        if (tester_url_absolue($src)) {
326
+                            include_spip('inc/distant');
327
+                            $data = recuperer_url($src, ['taille_max' => _DATA_SOURCE_MAX_SIZE]);
328
+                            $data = $data['page'] ?? '';
329
+                            if (!$data) {
330
+                                throw new Exception('404');
331
+                            }
332
+                            if (!isset($ttl)) {
333
+                                $ttl = 24 * 3600;
334
+                            }
335
+                        } elseif (@is_dir($src)) {
336
+                            $data = $src;
337
+                        } elseif (@is_readable($src) && @is_file($src)) {
338
+                            $data = spip_file_get_contents($src);
339
+                        }
340
+                        if (!isset($ttl)) {
341
+                            $ttl = 10;
342
+                        }
343
+                    }
344
+
345
+                    if (
346
+                        !$this->err
347
+                        and $data_to_array = charger_fonction($this->command['sourcemode'] . '_to_array', 'inc', true)
348
+                    ) {
349
+                        $args = $this->command['source'];
350
+                        $args[0] = $data;
351
+                        if (is_array($a = $data_to_array(...$args))) {
352
+                            $this->tableau = $a;
353
+                        }
354
+                    }
355
+                }
356
+
357
+                if (!is_array($this->tableau)) {
358
+                    $this->err = true;
359
+                }
360
+
361
+                if (!$this->err and isset($ttl) and $ttl > 0) {
362
+                    $this->cache_set($cle, $ttl);
363
+                }
364
+            } catch (Exception $e) {
365
+                $e = $e->getMessage();
366
+                $err = sprintf(
367
+                    "[%s, %s] $e",
368
+                    $src,
369
+                    $this->command['sourcemode']
370
+                );
371
+                erreur_squelette([$err, []]);
372
+                $this->err = true;
373
+            }
374
+        }
375
+
376
+        # en cas d'erreur, utiliser le cache si encore dispo
377
+        if (
378
+            $this->err
379
+            and $cache
380
+        ) {
381
+            $this->tableau = $cache['data'];
382
+            $this->err = false;
383
+        }
384
+    }
385
+
386
+
387
+    /**
388
+     * Retourne un tableau donne depuis un critère liste
389
+     *
390
+     * Critère `{liste X1, X2, X3}`
391
+     *
392
+     * @see critere_DATA_liste_dist()
393
+     *
394
+     **/
395
+    protected function select_liste() {
396
+        # s'il n'y a qu'une valeur dans la liste, sans doute une #BALISE
397
+        if (!isset($this->command['liste'][1])) {
398
+            if (!is_array($this->command['liste'][0])) {
399
+                $this->command['liste'] = explode(',', $this->command['liste'][0]);
400
+            } else {
401
+                $this->command['liste'] = $this->command['liste'][0];
402
+            }
403
+        }
404
+        $this->tableau = $this->command['liste'];
405
+    }
406
+
407
+    /**
408
+     * Retourne un tableau donne depuis un critere liste
409
+     * Critere {enum Xmin, Xmax}
410
+     *
411
+     **/
412
+    protected function select_enum() {
413
+        # s'il n'y a qu'une valeur dans la liste, sans doute une #BALISE
414
+        if (!isset($this->command['enum'][1])) {
415
+            if (!is_array($this->command['enum'][0])) {
416
+                $this->command['enum'] = explode(',', $this->command['enum'][0]);
417
+            } else {
418
+                $this->command['enum'] = $this->command['enum'][0];
419
+            }
420
+        }
421
+        if (count($this->command['enum']) >= 3) {
422
+            $enum = range(
423
+                array_shift($this->command['enum']),
424
+                array_shift($this->command['enum']),
425
+                array_shift($this->command['enum'])
426
+            );
427
+        } else {
428
+            $enum = range(array_shift($this->command['enum']), array_shift($this->command['enum']));
429
+        }
430
+        $this->tableau = $enum;
431
+    }
432
+
433
+
434
+    /**
435
+     * extraire le chemin "query.results" du tableau de donnees
436
+     * {datapath query.results}
437
+     *
438
+     **/
439
+    protected function select_datapath() {
440
+        $base = reset($this->command['datapath']);
441
+        if (strlen($base = ltrim(trim($base), '/'))) {
442
+            $this->tableau = table_valeur($this->tableau, $base);
443
+            if (!is_array($this->tableau)) {
444
+                $this->tableau = [];
445
+                $this->err = true;
446
+                spip_log("datapath '$base' absent");
447
+            }
448
+        }
449
+    }
450
+
451
+    /**
452
+     * Ordonner les resultats
453
+     * {par x}
454
+     *
455
+     **/
456
+    protected function select_orderby() {
457
+        $sortfunc = '';
458
+        $aleas = 0;
459
+        foreach ($this->command['orderby'] as $tri) {
460
+            // virer le / initial pour les criteres de la forme {par /xx}
461
+            if (preg_match(',^\.?([/\w]+)( DESC)?$,iS', ltrim($tri, '/'), $r)) {
462
+                $r = array_pad($r, 3, null);
463
+
464
+                // tri par cle
465
+                if ($r[1] == 'cle') {
466
+                    if (isset($r[2]) and $r[2]) {
467
+                        krsort($this->tableau);
468
+                    } else {
469
+                        ksort($this->tableau);
470
+                    }
471
+                } # {par hasard}
472
+                else {
473
+                    if ($r[1] == 'hasard') {
474
+                        $k = array_keys($this->tableau);
475
+                        shuffle($k);
476
+                        $v = [];
477
+                        foreach ($k as $cle) {
478
+                            $v[$cle] = $this->tableau[$cle];
479
+                        }
480
+                        $this->tableau = $v;
481
+                    } else {
482
+                        # {par valeur}
483
+                        if ($r[1] == 'valeur') {
484
+                            $tv = '%s';
485
+                        } # {par valeur/xx/yy} ??
486
+                        else {
487
+                            $tv = 'table_valeur(%s, ' . var_export($r[1], true) . ')';
488
+                        }
489
+                        $sortfunc .= '
490 490
 					$a = ' . sprintf($tv, '$aa') . ';
491 491
 					$b = ' . sprintf($tv, '$bb') . ';
492 492
 					if ($a <> $b)
493 493
 						return ($a ' . (!empty($r[2]) ? '>' : '<') . ' $b) ? -1 : 1;';
494
-					}
495
-				}
496
-			}
497
-		}
498
-
499
-		if ($sortfunc) {
500
-			$sortfunc .= "\n return 0;";
501
-			uasort($this->tableau, function ($aa, $bb) use ($sortfunc) {
502
-				return eval($sortfunc);
503
-			});
504
-		}
505
-	}
506
-
507
-
508
-	/**
509
-	 * Grouper les resultats
510
-	 * {fusion /x/y/z}
511
-	 *
512
-	 **/
513
-	protected function select_groupby() {
514
-		// virer le / initial pour les criteres de la forme {fusion /xx}
515
-		if (strlen($fusion = ltrim($this->command['groupby'][0], '/'))) {
516
-			$vu = [];
517
-			foreach ($this->tableau as $k => $v) {
518
-				$val = table_valeur($v, $fusion);
519
-				if (isset($vu[$val])) {
520
-					unset($this->tableau[$k]);
521
-				} else {
522
-					$vu[$val] = true;
523
-				}
524
-			}
525
-		}
526
-	}
527
-
528
-
529
-	/**
530
-	 * L'iterateur est-il encore valide ?
531
-	 *
532
-	 * @return bool
533
-	 */
534
-	public function valid() {
535
-		return !is_null($this->cle);
536
-	}
537
-
538
-	/**
539
-	 * Retourner la valeur
540
-	 *
541
-	 * @return null
542
-	 */
543
-	public function current() {
544
-		return $this->valeur;
545
-	}
546
-
547
-	/**
548
-	 * Retourner la cle
549
-	 *
550
-	 * @return null
551
-	 */
552
-	public function key() {
553
-		return $this->cle;
554
-	}
555
-
556
-	/**
557
-	 * Passer a la valeur suivante
558
-	 *
559
-	 * @return void
560
-	 */
561
-	public function next() {
562
-		if ($this->valid()) {
563
-			$this->cle = key($this->tableau);
564
-			$this->valeur = current($this->tableau);
565
-			next($this->tableau);
566
-		}
567
-	}
568
-
569
-	/**
570
-	 * Compter le nombre total de resultats
571
-	 *
572
-	 * @return int
573
-	 */
574
-	public function count() {
575
-		if (is_null($this->total)) {
576
-			$this->total = count($this->tableau);
577
-		}
578
-
579
-		return $this->total;
580
-	}
494
+                    }
495
+                }
496
+            }
497
+        }
498
+
499
+        if ($sortfunc) {
500
+            $sortfunc .= "\n return 0;";
501
+            uasort($this->tableau, function ($aa, $bb) use ($sortfunc) {
502
+                return eval($sortfunc);
503
+            });
504
+        }
505
+    }
506
+
507
+
508
+    /**
509
+     * Grouper les resultats
510
+     * {fusion /x/y/z}
511
+     *
512
+     **/
513
+    protected function select_groupby() {
514
+        // virer le / initial pour les criteres de la forme {fusion /xx}
515
+        if (strlen($fusion = ltrim($this->command['groupby'][0], '/'))) {
516
+            $vu = [];
517
+            foreach ($this->tableau as $k => $v) {
518
+                $val = table_valeur($v, $fusion);
519
+                if (isset($vu[$val])) {
520
+                    unset($this->tableau[$k]);
521
+                } else {
522
+                    $vu[$val] = true;
523
+                }
524
+            }
525
+        }
526
+    }
527
+
528
+
529
+    /**
530
+     * L'iterateur est-il encore valide ?
531
+     *
532
+     * @return bool
533
+     */
534
+    public function valid() {
535
+        return !is_null($this->cle);
536
+    }
537
+
538
+    /**
539
+     * Retourner la valeur
540
+     *
541
+     * @return null
542
+     */
543
+    public function current() {
544
+        return $this->valeur;
545
+    }
546
+
547
+    /**
548
+     * Retourner la cle
549
+     *
550
+     * @return null
551
+     */
552
+    public function key() {
553
+        return $this->cle;
554
+    }
555
+
556
+    /**
557
+     * Passer a la valeur suivante
558
+     *
559
+     * @return void
560
+     */
561
+    public function next() {
562
+        if ($this->valid()) {
563
+            $this->cle = key($this->tableau);
564
+            $this->valeur = current($this->tableau);
565
+            next($this->tableau);
566
+        }
567
+    }
568
+
569
+    /**
570
+     * Compter le nombre total de resultats
571
+     *
572
+     * @return int
573
+     */
574
+    public function count() {
575
+        if (is_null($this->total)) {
576
+            $this->total = count($this->tableau);
577
+        }
578
+
579
+        return $this->total;
580
+    }
581 581
 }
582 582
 
583 583
 /*
@@ -591,7 +591,7 @@  discard block
 block discarded – undo
591 591
  * @return array
592 592
  */
593 593
 function inc_file_to_array_dist($data) {
594
-	return preg_split('/\r?\n/', $data);
594
+    return preg_split('/\r?\n/', $data);
595 595
 }
596 596
 
597 597
 /**
@@ -600,9 +600,9 @@  discard block
 block discarded – undo
600 600
  * @return array
601 601
  */
602 602
 function inc_plugins_to_array_dist() {
603
-	include_spip('inc/plugin');
603
+    include_spip('inc/plugin');
604 604
 
605
-	return liste_chemin_plugin_actifs();
605
+    return liste_chemin_plugin_actifs();
606 606
 }
607 607
 
608 608
 /**
@@ -612,7 +612,7 @@  discard block
 block discarded – undo
612 612
  * @return array
613 613
  */
614 614
 function inc_xml_to_array_dist($data) {
615
-	return @XMLObjectToArray(new SimpleXmlIterator($data));
615
+    return @XMLObjectToArray(new SimpleXmlIterator($data));
616 616
 }
617 617
 
618 618
 /**
@@ -624,14 +624,14 @@  discard block
 block discarded – undo
624 624
  *
625 625
  */
626 626
 function inc_object_to_array($object) {
627
-	if (!is_object($object) && !is_array($object)) {
628
-		return $object;
629
-	}
630
-	if (is_object($object)) {
631
-		$object = get_object_vars($object);
632
-	}
633
-
634
-	return array_map('inc_object_to_array', $object);
627
+    if (!is_object($object) && !is_array($object)) {
628
+        return $object;
629
+    }
630
+    if (is_object($object)) {
631
+        $object = get_object_vars($object);
632
+    }
633
+
634
+    return array_map('inc_object_to_array', $object);
635 635
 }
636 636
 
637 637
 /**
@@ -641,20 +641,20 @@  discard block
 block discarded – undo
641 641
  * @return array|bool
642 642
  */
643 643
 function inc_sql_to_array_dist($data) {
644
-	# sortir le connecteur de $data
645
-	preg_match(',^(?:(\w+):)?(.*)$,Sm', $data, $v);
646
-	$serveur = (string)$v[1];
647
-	$req = trim($v[2]);
648
-	if ($s = sql_query($req, $serveur)) {
649
-		$r = [];
650
-		while ($t = sql_fetch($s)) {
651
-			$r[] = $t;
652
-		}
653
-
654
-		return $r;
655
-	}
656
-
657
-	return false;
644
+    # sortir le connecteur de $data
645
+    preg_match(',^(?:(\w+):)?(.*)$,Sm', $data, $v);
646
+    $serveur = (string)$v[1];
647
+    $req = trim($v[2]);
648
+    if ($s = sql_query($req, $serveur)) {
649
+        $r = [];
650
+        while ($t = sql_fetch($s)) {
651
+            $r[] = $t;
652
+        }
653
+
654
+        return $r;
655
+    }
656
+
657
+    return false;
658 658
 }
659 659
 
660 660
 /**
@@ -664,9 +664,9 @@  discard block
 block discarded – undo
664 664
  * @return array|bool
665 665
  */
666 666
 function inc_json_to_array_dist($data) {
667
-	if (is_array($json = json_decode($data, true))) {
668
-		return (array)$json;
669
-	}
667
+    if (is_array($json = json_decode($data, true))) {
668
+        return (array)$json;
669
+    }
670 670
 }
671 671
 
672 672
 /**
@@ -676,30 +676,30 @@  discard block
 block discarded – undo
676 676
  * @return array|bool
677 677
  */
678 678
 function inc_csv_to_array_dist($data) {
679
-	include_spip('inc/csv');
680
-	list($entete, $csv) = analyse_csv($data);
681
-	array_unshift($csv, $entete);
682
-
683
-	include_spip('inc/charsets');
684
-	$i = 1;
685
-	foreach ($entete as $k => $v) {
686
-		if (trim($v) == '') {
687
-			$v = 'col' . $i;
688
-		} // reperer des eventuelles cases vides
689
-		if (is_numeric($v) and $v < 0) {
690
-			$v = '__' . $v;
691
-		} // ne pas risquer d'ecraser une cle numerique
692
-		if (is_numeric($v)) {
693
-			$v = '_' . $v;
694
-		} // ne pas risquer d'ecraser une cle numerique
695
-		$v = strtolower(preg_replace(',\W+,', '_', translitteration($v)));
696
-		foreach ($csv as &$item) {
697
-			$item[$v] = &$item[$k];
698
-		}
699
-		$i++;
700
-	}
701
-
702
-	return $csv;
679
+    include_spip('inc/csv');
680
+    list($entete, $csv) = analyse_csv($data);
681
+    array_unshift($csv, $entete);
682
+
683
+    include_spip('inc/charsets');
684
+    $i = 1;
685
+    foreach ($entete as $k => $v) {
686
+        if (trim($v) == '') {
687
+            $v = 'col' . $i;
688
+        } // reperer des eventuelles cases vides
689
+        if (is_numeric($v) and $v < 0) {
690
+            $v = '__' . $v;
691
+        } // ne pas risquer d'ecraser une cle numerique
692
+        if (is_numeric($v)) {
693
+            $v = '_' . $v;
694
+        } // ne pas risquer d'ecraser une cle numerique
695
+        $v = strtolower(preg_replace(',\W+,', '_', translitteration($v)));
696
+        foreach ($csv as &$item) {
697
+            $item[$v] = &$item[$k];
698
+        }
699
+        $i++;
700
+    }
701
+
702
+    return $csv;
703 703
 }
704 704
 
705 705
 /**
@@ -709,12 +709,12 @@  discard block
 block discarded – undo
709 709
  * @return array|bool
710 710
  */
711 711
 function inc_rss_to_array_dist($data) {
712
-	include_spip('inc/syndic');
713
-	if (is_array($rss = analyser_backend($data))) {
714
-		$tableau = $rss;
715
-	}
712
+    include_spip('inc/syndic');
713
+    if (is_array($rss = analyser_backend($data))) {
714
+        $tableau = $rss;
715
+    }
716 716
 
717
-	return $tableau;
717
+    return $tableau;
718 718
 }
719 719
 
720 720
 /**
@@ -724,9 +724,9 @@  discard block
 block discarded – undo
724 724
  * @return array|bool
725 725
  */
726 726
 function inc_atom_to_array_dist($data) {
727
-	$rss_to_array = charger_fonction('rss_to_array', 'inc');
727
+    $rss_to_array = charger_fonction('rss_to_array', 'inc');
728 728
 
729
-	return $rss_to_array($data);
729
+    return $rss_to_array($data);
730 730
 }
731 731
 
732 732
 /**
@@ -737,12 +737,12 @@  discard block
 block discarded – undo
737 737
  * @return array|bool
738 738
  */
739 739
 function inc_glob_to_array_dist($data) {
740
-	$a = glob(
741
-		$data,
742
-		GLOB_MARK | GLOB_NOSORT | GLOB_BRACE
743
-	);
740
+    $a = glob(
741
+        $data,
742
+        GLOB_MARK | GLOB_NOSORT | GLOB_BRACE
743
+    );
744 744
 
745
-	return $a ? $a : [];
745
+    return $a ? $a : [];
746 746
 }
747 747
 
748 748
 /**
@@ -753,14 +753,14 @@  discard block
 block discarded – undo
753 753
  * @throws Exception
754 754
  */
755 755
 function inc_yaml_to_array_dist($data) {
756
-	include_spip('inc/yaml-mini');
757
-	if (!function_exists('yaml_decode')) {
758
-		throw new Exception('YAML: impossible de trouver la fonction yaml_decode');
756
+    include_spip('inc/yaml-mini');
757
+    if (!function_exists('yaml_decode')) {
758
+        throw new Exception('YAML: impossible de trouver la fonction yaml_decode');
759 759
 
760
-		return false;
761
-	}
760
+        return false;
761
+    }
762 762
 
763
-	return yaml_decode($data);
763
+    return yaml_decode($data);
764 764
 }
765 765
 
766 766
 
@@ -775,7 +775,7 @@  discard block
 block discarded – undo
775 775
  * @return array|bool
776 776
  */
777 777
 function inc_pregfiles_to_array_dist($dir, $regexp = -1, $limit = 10000) {
778
-	return (array)preg_files($dir, $regexp, $limit);
778
+    return (array)preg_files($dir, $regexp, $limit);
779 779
 }
780 780
 
781 781
 /**
@@ -787,23 +787,23 @@  discard block
 block discarded – undo
787 787
  * @return array|bool
788 788
  */
789 789
 function inc_ls_to_array_dist($data) {
790
-	$glob_to_array = charger_fonction('glob_to_array', 'inc');
791
-	$a = $glob_to_array($data);
792
-	foreach ($a as &$v) {
793
-		$b = (array)@stat($v);
794
-		foreach ($b as $k => $ignore) {
795
-			if (is_numeric($k)) {
796
-				unset($b[$k]);
797
-			}
798
-		}
799
-		$b['file'] = preg_replace('`/$`', '', $v) ;
800
-		$v = array_merge(
801
-			pathinfo($v),
802
-			$b
803
-		);
804
-	}
805
-
806
-	return $a;
790
+    $glob_to_array = charger_fonction('glob_to_array', 'inc');
791
+    $a = $glob_to_array($data);
792
+    foreach ($a as &$v) {
793
+        $b = (array)@stat($v);
794
+        foreach ($b as $k => $ignore) {
795
+            if (is_numeric($k)) {
796
+                unset($b[$k]);
797
+            }
798
+        }
799
+        $b['file'] = preg_replace('`/$`', '', $v) ;
800
+        $v = array_merge(
801
+            pathinfo($v),
802
+            $b
803
+        );
804
+    }
805
+
806
+    return $a;
807 807
 }
808 808
 
809 809
 /**
@@ -813,25 +813,25 @@  discard block
 block discarded – undo
813 813
  * @return array|bool
814 814
  */
815 815
 function XMLObjectToArray($object) {
816
-	$xml_array = [];
817
-	for ($object->rewind(); $object->valid(); $object->next()) {
818
-		if (array_key_exists($key = $object->key(), $xml_array)) {
819
-			$key .= '-' . uniqid();
820
-		}
821
-		$vars = get_object_vars($object->current());
822
-		if (isset($vars['@attributes'])) {
823
-			foreach ($vars['@attributes'] as $k => $v) {
824
-				$xml_array[$key][$k] = $v;
825
-			}
826
-		}
827
-		if ($object->hasChildren()) {
828
-			$xml_array[$key][] = XMLObjectToArray(
829
-				$object->current()
830
-			);
831
-		} else {
832
-			$xml_array[$key][] = strval($object->current());
833
-		}
834
-	}
835
-
836
-	return $xml_array;
816
+    $xml_array = [];
817
+    for ($object->rewind(); $object->valid(); $object->next()) {
818
+        if (array_key_exists($key = $object->key(), $xml_array)) {
819
+            $key .= '-' . uniqid();
820
+        }
821
+        $vars = get_object_vars($object->current());
822
+        if (isset($vars['@attributes'])) {
823
+            foreach ($vars['@attributes'] as $k => $v) {
824
+                $xml_array[$key][$k] = $v;
825
+            }
826
+        }
827
+        if ($object->hasChildren()) {
828
+            $xml_array[$key][] = XMLObjectToArray(
829
+                $object->current()
830
+            );
831
+        } else {
832
+            $xml_array[$key][] = strval($object->current());
833
+        }
834
+    }
835
+
836
+    return $xml_array;
837 837
 }
Please login to merge, or discard this patch.
Spacing   +18 added lines, -18 removed lines patch added patch discarded remove patch
@@ -234,7 +234,7 @@  discard block
 block discarded – undo
234 234
 		// Si a ce stade on n'a pas de table, il y a un bug
235 235
 		if (!is_array($this->tableau)) {
236 236
 			$this->err = true;
237
-			spip_log('erreur datasource ' . var_export($command, true));
237
+			spip_log('erreur datasource '.var_export($command, true));
238 238
 		}
239 239
 
240 240
 		// {datapath query.results}
@@ -276,7 +276,7 @@  discard block
 block discarded – undo
276 276
 			isset($this->command['sourcemode'])
277 277
 			and !in_array($this->command['sourcemode'], ['table', 'array', 'tableau'])
278 278
 		) {
279
-			charger_fonction($this->command['sourcemode'] . '_to_array', 'inc', true);
279
+			charger_fonction($this->command['sourcemode'].'_to_array', 'inc', true);
280 280
 		}
281 281
 
282 282
 		# le premier argument peut etre un array, une URL etc.
@@ -285,7 +285,7 @@  discard block
 block discarded – undo
285 285
 		# avons-nous un cache dispo ?
286 286
 		$cle = null;
287 287
 		if (is_string($src)) {
288
-			$cle = 'datasource_' . md5($this->command['sourcemode'] . ':' . var_export($this->command['source'], true));
288
+			$cle = 'datasource_'.md5($this->command['sourcemode'].':'.var_export($this->command['source'], true));
289 289
 		}
290 290
 
291 291
 		$cache = $this->cache_get($cle);
@@ -344,7 +344,7 @@  discard block
 block discarded – undo
344 344
 
345 345
 					if (
346 346
 						!$this->err
347
-						and $data_to_array = charger_fonction($this->command['sourcemode'] . '_to_array', 'inc', true)
347
+						and $data_to_array = charger_fonction($this->command['sourcemode'].'_to_array', 'inc', true)
348 348
 					) {
349 349
 						$args = $this->command['source'];
350 350
 						$args[0] = $data;
@@ -484,13 +484,13 @@  discard block
 block discarded – undo
484 484
 							$tv = '%s';
485 485
 						} # {par valeur/xx/yy} ??
486 486
 						else {
487
-							$tv = 'table_valeur(%s, ' . var_export($r[1], true) . ')';
487
+							$tv = 'table_valeur(%s, '.var_export($r[1], true).')';
488 488
 						}
489 489
 						$sortfunc .= '
490
-					$a = ' . sprintf($tv, '$aa') . ';
491
-					$b = ' . sprintf($tv, '$bb') . ';
490
+					$a = ' . sprintf($tv, '$aa').';
491
+					$b = ' . sprintf($tv, '$bb').';
492 492
 					if ($a <> $b)
493
-						return ($a ' . (!empty($r[2]) ? '>' : '<') . ' $b) ? -1 : 1;';
493
+						return ($a ' . (!empty($r[2]) ? '>' : '<').' $b) ? -1 : 1;';
494 494
 					}
495 495
 				}
496 496
 			}
@@ -498,7 +498,7 @@  discard block
 block discarded – undo
498 498
 
499 499
 		if ($sortfunc) {
500 500
 			$sortfunc .= "\n return 0;";
501
-			uasort($this->tableau, function ($aa, $bb) use ($sortfunc) {
501
+			uasort($this->tableau, function($aa, $bb) use ($sortfunc) {
502 502
 				return eval($sortfunc);
503 503
 			});
504 504
 		}
@@ -643,7 +643,7 @@  discard block
 block discarded – undo
643 643
 function inc_sql_to_array_dist($data) {
644 644
 	# sortir le connecteur de $data
645 645
 	preg_match(',^(?:(\w+):)?(.*)$,Sm', $data, $v);
646
-	$serveur = (string)$v[1];
646
+	$serveur = (string) $v[1];
647 647
 	$req = trim($v[2]);
648 648
 	if ($s = sql_query($req, $serveur)) {
649 649
 		$r = [];
@@ -665,7 +665,7 @@  discard block
 block discarded – undo
665 665
  */
666 666
 function inc_json_to_array_dist($data) {
667 667
 	if (is_array($json = json_decode($data, true))) {
668
-		return (array)$json;
668
+		return (array) $json;
669 669
 	}
670 670
 }
671 671
 
@@ -684,13 +684,13 @@  discard block
 block discarded – undo
684 684
 	$i = 1;
685 685
 	foreach ($entete as $k => $v) {
686 686
 		if (trim($v) == '') {
687
-			$v = 'col' . $i;
687
+			$v = 'col'.$i;
688 688
 		} // reperer des eventuelles cases vides
689 689
 		if (is_numeric($v) and $v < 0) {
690
-			$v = '__' . $v;
690
+			$v = '__'.$v;
691 691
 		} // ne pas risquer d'ecraser une cle numerique
692 692
 		if (is_numeric($v)) {
693
-			$v = '_' . $v;
693
+			$v = '_'.$v;
694 694
 		} // ne pas risquer d'ecraser une cle numerique
695 695
 		$v = strtolower(preg_replace(',\W+,', '_', translitteration($v)));
696 696
 		foreach ($csv as &$item) {
@@ -775,7 +775,7 @@  discard block
 block discarded – undo
775 775
  * @return array|bool
776 776
  */
777 777
 function inc_pregfiles_to_array_dist($dir, $regexp = -1, $limit = 10000) {
778
-	return (array)preg_files($dir, $regexp, $limit);
778
+	return (array) preg_files($dir, $regexp, $limit);
779 779
 }
780 780
 
781 781
 /**
@@ -790,13 +790,13 @@  discard block
 block discarded – undo
790 790
 	$glob_to_array = charger_fonction('glob_to_array', 'inc');
791 791
 	$a = $glob_to_array($data);
792 792
 	foreach ($a as &$v) {
793
-		$b = (array)@stat($v);
793
+		$b = (array) @stat($v);
794 794
 		foreach ($b as $k => $ignore) {
795 795
 			if (is_numeric($k)) {
796 796
 				unset($b[$k]);
797 797
 			}
798 798
 		}
799
-		$b['file'] = preg_replace('`/$`', '', $v) ;
799
+		$b['file'] = preg_replace('`/$`', '', $v);
800 800
 		$v = array_merge(
801 801
 			pathinfo($v),
802 802
 			$b
@@ -816,7 +816,7 @@  discard block
 block discarded – undo
816 816
 	$xml_array = [];
817 817
 	for ($object->rewind(); $object->valid(); $object->next()) {
818 818
 		if (array_key_exists($key = $object->key(), $xml_array)) {
819
-			$key .= '-' . uniqid();
819
+			$key .= '-'.uniqid();
820 820
 		}
821 821
 		$vars = get_object_vars($object->current());
822 822
 		if (isset($vars['@attributes'])) {
Please login to merge, or discard this patch.
ecrire/iterateur/php.php 1 patch
Indentation   +14 added lines, -14 removed lines patch added patch discarded remove patch
@@ -18,7 +18,7 @@  discard block
 block discarded – undo
18 18
 
19 19
 
20 20
 if (!defined('_ECRIRE_INC_VERSION')) {
21
-	return;
21
+    return;
22 22
 }
23 23
 
24 24
 
@@ -36,22 +36,22 @@  discard block
 block discarded – undo
36 36
  *     Description de la boucle complétée des champs
37 37
  */
38 38
 function iterateur_php_dist($b, $iteratorName) {
39
-	$b->iterateur = $iteratorName; # designe la classe d'iterateur
40
-	$b->show = [
41
-		'field' => [
42
-			'cle' => 'STRING',
43
-			'valeur' => 'STRING',
44
-		]
45
-	];
46
-	foreach (get_class_methods($iteratorName) as $method) {
47
-		$b->show['field'][strtolower($method)] = 'METHOD';
48
-	}
49
-
50
-	/*
39
+    $b->iterateur = $iteratorName; # designe la classe d'iterateur
40
+    $b->show = [
41
+        'field' => [
42
+            'cle' => 'STRING',
43
+            'valeur' => 'STRING',
44
+        ]
45
+    ];
46
+    foreach (get_class_methods($iteratorName) as $method) {
47
+        $b->show['field'][strtolower($method)] = 'METHOD';
48
+    }
49
+
50
+    /*
51 51
 	foreach (get_class_vars($iteratorName) as $property) {
52 52
 		$b->show['field'][ strtolower($property) ] = 'PROPERTY';
53 53
 	}
54 54
 	*/
55 55
 
56
-	return $b;
56
+    return $b;
57 57
 }
Please login to merge, or discard this patch.
ecrire/iterateur/pour.php 1 patch
Indentation   +9 added lines, -9 removed lines patch added patch discarded remove patch
@@ -17,7 +17,7 @@  discard block
 block discarded – undo
17 17
  **/
18 18
 
19 19
 if (!defined('_ECRIRE_INC_VERSION')) {
20
-	return;
20
+    return;
21 21
 }
22 22
 
23 23
 include_spip('iterateur/data');
@@ -39,13 +39,13 @@  discard block
 block discarded – undo
39 39
  *     Description de la boucle complétée des champs
40 40
  */
41 41
 function iterateur_POUR_dist($b) {
42
-	$b->iterateur = 'DATA'; # designe la classe d'iterateur
43
-	$b->show = [
44
-		'field' => [
45
-			'cle' => 'STRING',
46
-			'valeur' => 'STRING',
47
-		]
48
-	];
42
+    $b->iterateur = 'DATA'; # designe la classe d'iterateur
43
+    $b->show = [
44
+        'field' => [
45
+            'cle' => 'STRING',
46
+            'valeur' => 'STRING',
47
+        ]
48
+    ];
49 49
 
50
-	return $b;
50
+    return $b;
51 51
 }
Please login to merge, or discard this patch.
ecrire/iterateur/condition.php 1 patch
Indentation   +14 added lines, -14 removed lines patch added patch discarded remove patch
@@ -17,7 +17,7 @@  discard block
 block discarded – undo
17 17
  **/
18 18
 
19 19
 if (!defined('_ECRIRE_INC_VERSION')) {
20
-	return;
20
+    return;
21 21
 }
22 22
 
23 23
 include_spip('iterateur/data');
@@ -35,12 +35,12 @@  discard block
 block discarded – undo
35 35
  *     Description de la boucle complétée des champs
36 36
  */
37 37
 function iterateur_CONDITION_dist($b) {
38
-	$b->iterateur = 'CONDITION'; # designe la classe d'iterateur
39
-	$b->show = [
40
-		'field' => []
41
-	];
38
+    $b->iterateur = 'CONDITION'; # designe la classe d'iterateur
39
+    $b->show = [
40
+        'field' => []
41
+    ];
42 42
 
43
-	return $b;
43
+    return $b;
44 44
 }
45 45
 
46 46
 /**
@@ -49,12 +49,12 @@  discard block
 block discarded – undo
49 49
  * La boucle condition n'a toujours qu'un seul élément.
50 50
  */
51 51
 class IterateurCONDITION extends IterateurData {
52
-	/**
53
-	 * Obtenir les données de la boucle CONDITION
54
-	 *
55
-	 * @param array $command
56
-	 **/
57
-	protected function select($command) {
58
-		$this->tableau = [0 => 1];
59
-	}
52
+    /**
53
+     * Obtenir les données de la boucle CONDITION
54
+     *
55
+     * @param array $command
56
+     **/
57
+    protected function select($command) {
58
+        $this->tableau = [0 => 1];
59
+    }
60 60
 }
Please login to merge, or discard this patch.
ecrire/install/etape_ldap1.php 2 patches
Indentation   +72 added lines, -72 removed lines patch added patch discarded remove patch
@@ -11,90 +11,90 @@
 block discarded – undo
11 11
 \***************************************************************************/
12 12
 
13 13
 if (!defined('_ECRIRE_INC_VERSION')) {
14
-	return;
14
+    return;
15 15
 }
16 16
 
17 17
 // https://code.spip.net/@install_etape_ldap1_dist
18 18
 function install_etape_ldap1_dist() {
19
-	$adresse_ldap = defined('_INSTALL_HOST_LDAP')
20
-		? _INSTALL_HOST_LDAP
21
-		: 'localhost';
19
+    $adresse_ldap = defined('_INSTALL_HOST_LDAP')
20
+        ? _INSTALL_HOST_LDAP
21
+        : 'localhost';
22 22
 
23
-	$port_ldap = defined('_INSTALL_PORT_LDAP')
24
-		? _INSTALL_PORT_LDAP
25
-		: 389;
23
+    $port_ldap = defined('_INSTALL_PORT_LDAP')
24
+        ? _INSTALL_PORT_LDAP
25
+        : 389;
26 26
 
27
-	$tls_ldap = defined('_INSTALL_TLS_LDAP')
28
-		? _INSTALL_TLS_LDAP
29
-		: 'non';
27
+    $tls_ldap = defined('_INSTALL_TLS_LDAP')
28
+        ? _INSTALL_TLS_LDAP
29
+        : 'non';
30 30
 
31
-	$protocole_ldap = defined('_INSTALL_PROTOCOLE_LDAP')
32
-		? _INSTALL_PROTOCOLE_LDAP
33
-		: 3; // on essaie 2 en cas d'echec
31
+    $protocole_ldap = defined('_INSTALL_PROTOCOLE_LDAP')
32
+        ? _INSTALL_PROTOCOLE_LDAP
33
+        : 3; // on essaie 2 en cas d'echec
34 34
 
35
-	$login_ldap = defined('_INSTALL_USER_LDAP')
36
-		? _INSTALL_USER_LDAP
37
-		: '';
35
+    $login_ldap = defined('_INSTALL_USER_LDAP')
36
+        ? _INSTALL_USER_LDAP
37
+        : '';
38 38
 
39
-	$pass_ldap = defined('_INSTALL_PASS_LDAP')
40
-		? _INSTALL_PASS_LDAP
41
-		: '';
39
+    $pass_ldap = defined('_INSTALL_PASS_LDAP')
40
+        ? _INSTALL_PASS_LDAP
41
+        : '';
42 42
 
43
-	echo install_debut_html('AUTO', ' onload="document.getElementById(\'suivant\').focus();return false;"');
43
+    echo install_debut_html('AUTO', ' onload="document.getElementById(\'suivant\').focus();return false;"');
44 44
 
45
-	echo info_etape(
46
-		_T('titre_connexion_ldap'),
47
-		info_progression_etape(1, 'etape_ldap', 'install/'),
48
-		_T('entree_informations_connexion_ldap')
49
-	);
45
+    echo info_etape(
46
+        _T('titre_connexion_ldap'),
47
+        info_progression_etape(1, 'etape_ldap', 'install/'),
48
+        _T('entree_informations_connexion_ldap')
49
+    );
50 50
 
51
-	echo generer_form_ecrire('install', (
52
-		"\n<input type='hidden' name='etape' value='ldap2' />"
53
-		. fieldset(
54
-			_T('entree_adresse_annuaire'),
55
-			[
56
-				'adresse_ldap' => [
57
-					'label' => _T('texte_adresse_annuaire_1'),
58
-					'valeur' => $adresse_ldap
59
-				],
60
-				'port_ldap' => [
61
-					'label' => _T('entree_port_annuaire') . '<br />' . _T('texte_port_annuaire'),
62
-					'valeur' => $port_ldap
63
-				],
64
-				'tls_ldap' => [
65
-					'label' => '<b>' . _T('tls_ldap') . '</b>',
66
-					'valeur' => $tls_ldap,
67
-					'alternatives' => [
68
-						'non' => _T('item_non'),
69
-						'oui' => _T('item_oui')
70
-					]
71
-				],
72
-				'protocole_ldap' => [
73
-					'label' => _T('protocole_ldap'),
74
-					'valeur' => $protocole_ldap,
75
-					'alternatives' => [
76
-						'3' => '3',
77
-						'2' => '2'
78
-					]
79
-				]
80
-			]
81
-		)
51
+    echo generer_form_ecrire('install', (
52
+        "\n<input type='hidden' name='etape' value='ldap2' />"
53
+        . fieldset(
54
+            _T('entree_adresse_annuaire'),
55
+            [
56
+                'adresse_ldap' => [
57
+                    'label' => _T('texte_adresse_annuaire_1'),
58
+                    'valeur' => $adresse_ldap
59
+                ],
60
+                'port_ldap' => [
61
+                    'label' => _T('entree_port_annuaire') . '<br />' . _T('texte_port_annuaire'),
62
+                    'valeur' => $port_ldap
63
+                ],
64
+                'tls_ldap' => [
65
+                    'label' => '<b>' . _T('tls_ldap') . '</b>',
66
+                    'valeur' => $tls_ldap,
67
+                    'alternatives' => [
68
+                        'non' => _T('item_non'),
69
+                        'oui' => _T('item_oui')
70
+                    ]
71
+                ],
72
+                'protocole_ldap' => [
73
+                    'label' => _T('protocole_ldap'),
74
+                    'valeur' => $protocole_ldap,
75
+                    'alternatives' => [
76
+                        '3' => '3',
77
+                        '2' => '2'
78
+                    ]
79
+                ]
80
+            ]
81
+        )
82 82
 
83
-		. "\n<p>" . _T('texte_acces_ldap_anonyme_1') . '</p>'
84
-		. fieldset(
85
-			_T('connexion_ldap'),
86
-			[
87
-				'login_ldap' => [
88
-					'label' => _T('texte_login_ldap_1'),
89
-					'valeur' => $login_ldap
90
-				],
91
-				'pass_ldap' => [
92
-					'label' => _T('entree_passe_ldap'),
93
-					'valeur' => $pass_ldap
94
-				]
95
-			]
96
-		)
97
-		. bouton_suivant()));
83
+        . "\n<p>" . _T('texte_acces_ldap_anonyme_1') . '</p>'
84
+        . fieldset(
85
+            _T('connexion_ldap'),
86
+            [
87
+                'login_ldap' => [
88
+                    'label' => _T('texte_login_ldap_1'),
89
+                    'valeur' => $login_ldap
90
+                ],
91
+                'pass_ldap' => [
92
+                    'label' => _T('entree_passe_ldap'),
93
+                    'valeur' => $pass_ldap
94
+                ]
95
+            ]
96
+        )
97
+        . bouton_suivant()));
98 98
 
99
-	echo install_fin_html();
99
+    echo install_fin_html();
100 100
 }
Please login to merge, or discard this patch.
Spacing   +3 added lines, -3 removed lines patch added patch discarded remove patch
@@ -58,11 +58,11 @@  discard block
 block discarded – undo
58 58
 					'valeur' => $adresse_ldap
59 59
 				],
60 60
 				'port_ldap' => [
61
-					'label' => _T('entree_port_annuaire') . '<br />' . _T('texte_port_annuaire'),
61
+					'label' => _T('entree_port_annuaire').'<br />'._T('texte_port_annuaire'),
62 62
 					'valeur' => $port_ldap
63 63
 				],
64 64
 				'tls_ldap' => [
65
-					'label' => '<b>' . _T('tls_ldap') . '</b>',
65
+					'label' => '<b>'._T('tls_ldap').'</b>',
66 66
 					'valeur' => $tls_ldap,
67 67
 					'alternatives' => [
68 68
 						'non' => _T('item_non'),
@@ -80,7 +80,7 @@  discard block
 block discarded – undo
80 80
 			]
81 81
 		)
82 82
 
83
-		. "\n<p>" . _T('texte_acces_ldap_anonyme_1') . '</p>'
83
+		. "\n<p>"._T('texte_acces_ldap_anonyme_1').'</p>'
84 84
 		. fieldset(
85 85
 			_T('connexion_ldap'),
86 86
 			[
Please login to merge, or discard this patch.
ecrire/install/etape_chmod.php 2 patches
Indentation   +117 added lines, -117 removed lines patch added patch discarded remove patch
@@ -11,11 +11,11 @@  discard block
 block discarded – undo
11 11
 \***************************************************************************/
12 12
 
13 13
 if (!defined('_ECRIRE_INC_VERSION')) {
14
-	return;
14
+    return;
15 15
 }
16 16
 
17 17
 if (defined('_TEST_DIRS')) {
18
-	return;
18
+    return;
19 19
 }
20 20
 define('_TEST_DIRS', '1');
21 21
 
@@ -27,42 +27,42 @@  discard block
 block discarded – undo
27 27
 //
28 28
 // https://code.spip.net/@test_ecrire
29 29
 function test_ecrire($my_dir) {
30
-	static $chmod = 0;
31
-
32
-	$ok = false;
33
-	$script = @file_exists('spip_loader.php') ? 'spip_loader.php' : $_SERVER['PHP_SELF'];
34
-	$self = basename($script);
35
-	$uid = @fileowner('.');
36
-	$uid2 = @fileowner($self);
37
-	$gid = @filegroup('.');
38
-	$gid2 = @filegroup($self);
39
-	$perms = @fileperms($self);
40
-
41
-	// Comparer l'appartenance d'un fichier cree par PHP
42
-	// avec celle du script et du repertoire courant
43
-	if (!$chmod) {
44
-		@rmdir('test');
45
-		spip_unlink('test'); // effacer au cas ou
46
-		@touch('test');
47
-		if ($uid > 0 && $uid == $uid2 && @fileowner('test') == $uid) {
48
-			$chmod = 0700;
49
-		} else {
50
-			if ($gid > 0 && $gid == $gid2 && @filegroup('test') == $gid) {
51
-				$chmod = 0770;
52
-			} else {
53
-				$chmod = 0777;
54
-			}
55
-		}
56
-		// Appliquer de plus les droits d'acces du script
57
-		if ($perms > 0) {
58
-			$perms = ($perms & 0777) | (($perms & 0444) >> 2);
59
-			$chmod |= $perms;
60
-		}
61
-		spip_unlink('test');
62
-	}
63
-	$ok = is_dir($my_dir) && is_writable($my_dir);
64
-
65
-	return $ok ? $chmod : false;
30
+    static $chmod = 0;
31
+
32
+    $ok = false;
33
+    $script = @file_exists('spip_loader.php') ? 'spip_loader.php' : $_SERVER['PHP_SELF'];
34
+    $self = basename($script);
35
+    $uid = @fileowner('.');
36
+    $uid2 = @fileowner($self);
37
+    $gid = @filegroup('.');
38
+    $gid2 = @filegroup($self);
39
+    $perms = @fileperms($self);
40
+
41
+    // Comparer l'appartenance d'un fichier cree par PHP
42
+    // avec celle du script et du repertoire courant
43
+    if (!$chmod) {
44
+        @rmdir('test');
45
+        spip_unlink('test'); // effacer au cas ou
46
+        @touch('test');
47
+        if ($uid > 0 && $uid == $uid2 && @fileowner('test') == $uid) {
48
+            $chmod = 0700;
49
+        } else {
50
+            if ($gid > 0 && $gid == $gid2 && @filegroup('test') == $gid) {
51
+                $chmod = 0770;
52
+            } else {
53
+                $chmod = 0777;
54
+            }
55
+        }
56
+        // Appliquer de plus les droits d'acces du script
57
+        if ($perms > 0) {
58
+            $perms = ($perms & 0777) | (($perms & 0444) >> 2);
59
+            $chmod |= $perms;
60
+        }
61
+        spip_unlink('test');
62
+    }
63
+    $ok = is_dir($my_dir) && is_writable($my_dir);
64
+
65
+    return $ok ? $chmod : false;
66 66
 }
67 67
 
68 68
 //
@@ -73,83 +73,83 @@  discard block
 block discarded – undo
73 73
 // https://code.spip.net/@install_etape_chmod_dist
74 74
 function install_etape_chmod_dist() {
75 75
 
76
-	$test_dir = _request('test_dir');
77
-	$chmod = 0;
78
-
79
-	if ($test_dir) {
80
-		if (substr($test_dir, -1) !== '/') {
81
-			$test_dir .= '/';
82
-		}
83
-		if (!in_array($test_dir, $GLOBALS['test_dirs'])) {
84
-			$GLOBALS['test_dirs'][] = _DIR_RACINE . $test_dir;
85
-		}
86
-	} else {
87
-		if (!_FILE_CONNECT) {
88
-			$GLOBALS['test_dirs'][] = _DIR_CONNECT;
89
-			$GLOBALS['test_dirs'][] = _DIR_CHMOD;
90
-		}
91
-	}
92
-
93
-	$bad_dirs = [];
94
-	$absent_dirs = [];
95
-
96
-	foreach ($GLOBALS['test_dirs'] as $i => $my_dir) {
97
-		$test = test_ecrire($my_dir);
98
-		if (!$test) {
99
-			$m = preg_replace(',^' . _DIR_RACINE . ',', '', $my_dir);
100
-			if (@file_exists($my_dir)) {
101
-				$bad_dirs['<li>' . $m . '</li>'] = 1;
102
-			} else {
103
-				$absent_dirs['<li>' . $m . '</li>'] = 1;
104
-			}
105
-		} else {
106
-			$chmod = max($chmod, $test);
107
-		}
108
-	}
109
-
110
-	if ($bad_dirs or $absent_dirs) {
111
-		if (!_FILE_CONNECT) {
112
-			$titre = _T('dirs_preliminaire');
113
-			$continuer = ' ' . _T('dirs_commencer') . '.';
114
-		} else {
115
-			$titre = _T('dirs_probleme_droits');
116
-		}
117
-
118
-
119
-		$res = "<div align='right'>" . menu_langues('var_lang_ecrire') . "</div>\n";
120
-
121
-		if ($bad_dirs) {
122
-			$res .=
123
-				_T(
124
-					'dirs_repertoires_suivants',
125
-					['bad_dirs' => join("\n", array_keys($bad_dirs))]
126
-				) .
127
-				'<b>' . _T('login_recharger') . '</b>.';
128
-		}
129
-
130
-		if ($absent_dirs) {
131
-			$res .=
132
-				_T(
133
-					'dirs_repertoires_absents',
134
-					['bad_dirs' => join("\n", array_keys($absent_dirs))]
135
-				) .
136
-				'<b>' . _T('login_recharger') . '</b>.';
137
-		}
138
-		$res = '<p>' . $continuer . $res . aider('install0', true) . '</p>';
139
-
140
-		$t = _T('login_recharger');
141
-		$t = (!$test_dir ? '' :
142
-				"<input type='hidden' name='test_dir' value='" . spip_htmlspecialchars($test_dir, ENT_QUOTES) . "' />")
143
-			. "<input type='hidden' name='etape' value='chmod' />"
144
-			. "<div style='text-align: right'><input type='submit' value='" . attribut_html($t) . "' /></div>";
145
-
146
-		echo minipres($titre, $res . generer_form_ecrire('install', $t));
147
-	} else {
148
-		$deja = (_FILE_CONNECT and analyse_fichier_connection(_FILE_CONNECT));
149
-		if (!$deja) {
150
-			redirige_url_ecrire('install', 'etape=1&chmod=' . $chmod);
151
-		} else {
152
-			redirige_url_ecrire();
153
-		}
154
-	}
76
+    $test_dir = _request('test_dir');
77
+    $chmod = 0;
78
+
79
+    if ($test_dir) {
80
+        if (substr($test_dir, -1) !== '/') {
81
+            $test_dir .= '/';
82
+        }
83
+        if (!in_array($test_dir, $GLOBALS['test_dirs'])) {
84
+            $GLOBALS['test_dirs'][] = _DIR_RACINE . $test_dir;
85
+        }
86
+    } else {
87
+        if (!_FILE_CONNECT) {
88
+            $GLOBALS['test_dirs'][] = _DIR_CONNECT;
89
+            $GLOBALS['test_dirs'][] = _DIR_CHMOD;
90
+        }
91
+    }
92
+
93
+    $bad_dirs = [];
94
+    $absent_dirs = [];
95
+
96
+    foreach ($GLOBALS['test_dirs'] as $i => $my_dir) {
97
+        $test = test_ecrire($my_dir);
98
+        if (!$test) {
99
+            $m = preg_replace(',^' . _DIR_RACINE . ',', '', $my_dir);
100
+            if (@file_exists($my_dir)) {
101
+                $bad_dirs['<li>' . $m . '</li>'] = 1;
102
+            } else {
103
+                $absent_dirs['<li>' . $m . '</li>'] = 1;
104
+            }
105
+        } else {
106
+            $chmod = max($chmod, $test);
107
+        }
108
+    }
109
+
110
+    if ($bad_dirs or $absent_dirs) {
111
+        if (!_FILE_CONNECT) {
112
+            $titre = _T('dirs_preliminaire');
113
+            $continuer = ' ' . _T('dirs_commencer') . '.';
114
+        } else {
115
+            $titre = _T('dirs_probleme_droits');
116
+        }
117
+
118
+
119
+        $res = "<div align='right'>" . menu_langues('var_lang_ecrire') . "</div>\n";
120
+
121
+        if ($bad_dirs) {
122
+            $res .=
123
+                _T(
124
+                    'dirs_repertoires_suivants',
125
+                    ['bad_dirs' => join("\n", array_keys($bad_dirs))]
126
+                ) .
127
+                '<b>' . _T('login_recharger') . '</b>.';
128
+        }
129
+
130
+        if ($absent_dirs) {
131
+            $res .=
132
+                _T(
133
+                    'dirs_repertoires_absents',
134
+                    ['bad_dirs' => join("\n", array_keys($absent_dirs))]
135
+                ) .
136
+                '<b>' . _T('login_recharger') . '</b>.';
137
+        }
138
+        $res = '<p>' . $continuer . $res . aider('install0', true) . '</p>';
139
+
140
+        $t = _T('login_recharger');
141
+        $t = (!$test_dir ? '' :
142
+                "<input type='hidden' name='test_dir' value='" . spip_htmlspecialchars($test_dir, ENT_QUOTES) . "' />")
143
+            . "<input type='hidden' name='etape' value='chmod' />"
144
+            . "<div style='text-align: right'><input type='submit' value='" . attribut_html($t) . "' /></div>";
145
+
146
+        echo minipres($titre, $res . generer_form_ecrire('install', $t));
147
+    } else {
148
+        $deja = (_FILE_CONNECT and analyse_fichier_connection(_FILE_CONNECT));
149
+        if (!$deja) {
150
+            redirige_url_ecrire('install', 'etape=1&chmod=' . $chmod);
151
+        } else {
152
+            redirige_url_ecrire();
153
+        }
154
+    }
155 155
 }
Please login to merge, or discard this patch.
Spacing   +15 added lines, -16 removed lines patch added patch discarded remove patch
@@ -81,7 +81,7 @@  discard block
 block discarded – undo
81 81
 			$test_dir .= '/';
82 82
 		}
83 83
 		if (!in_array($test_dir, $GLOBALS['test_dirs'])) {
84
-			$GLOBALS['test_dirs'][] = _DIR_RACINE . $test_dir;
84
+			$GLOBALS['test_dirs'][] = _DIR_RACINE.$test_dir;
85 85
 		}
86 86
 	} else {
87 87
 		if (!_FILE_CONNECT) {
@@ -96,11 +96,11 @@  discard block
 block discarded – undo
96 96
 	foreach ($GLOBALS['test_dirs'] as $i => $my_dir) {
97 97
 		$test = test_ecrire($my_dir);
98 98
 		if (!$test) {
99
-			$m = preg_replace(',^' . _DIR_RACINE . ',', '', $my_dir);
99
+			$m = preg_replace(',^'._DIR_RACINE.',', '', $my_dir);
100 100
 			if (@file_exists($my_dir)) {
101
-				$bad_dirs['<li>' . $m . '</li>'] = 1;
101
+				$bad_dirs['<li>'.$m.'</li>'] = 1;
102 102
 			} else {
103
-				$absent_dirs['<li>' . $m . '</li>'] = 1;
103
+				$absent_dirs['<li>'.$m.'</li>'] = 1;
104 104
 			}
105 105
 		} else {
106 106
 			$chmod = max($chmod, $test);
@@ -110,21 +110,21 @@  discard block
 block discarded – undo
110 110
 	if ($bad_dirs or $absent_dirs) {
111 111
 		if (!_FILE_CONNECT) {
112 112
 			$titre = _T('dirs_preliminaire');
113
-			$continuer = ' ' . _T('dirs_commencer') . '.';
113
+			$continuer = ' '._T('dirs_commencer').'.';
114 114
 		} else {
115 115
 			$titre = _T('dirs_probleme_droits');
116 116
 		}
117 117
 
118 118
 
119
-		$res = "<div align='right'>" . menu_langues('var_lang_ecrire') . "</div>\n";
119
+		$res = "<div align='right'>".menu_langues('var_lang_ecrire')."</div>\n";
120 120
 
121 121
 		if ($bad_dirs) {
122 122
 			$res .=
123 123
 				_T(
124 124
 					'dirs_repertoires_suivants',
125 125
 					['bad_dirs' => join("\n", array_keys($bad_dirs))]
126
-				) .
127
-				'<b>' . _T('login_recharger') . '</b>.';
126
+				).
127
+				'<b>'._T('login_recharger').'</b>.';
128 128
 		}
129 129
 
130 130
 		if ($absent_dirs) {
@@ -132,22 +132,21 @@  discard block
 block discarded – undo
132 132
 				_T(
133 133
 					'dirs_repertoires_absents',
134 134
 					['bad_dirs' => join("\n", array_keys($absent_dirs))]
135
-				) .
136
-				'<b>' . _T('login_recharger') . '</b>.';
135
+				).
136
+				'<b>'._T('login_recharger').'</b>.';
137 137
 		}
138
-		$res = '<p>' . $continuer . $res . aider('install0', true) . '</p>';
138
+		$res = '<p>'.$continuer.$res.aider('install0', true).'</p>';
139 139
 
140 140
 		$t = _T('login_recharger');
141
-		$t = (!$test_dir ? '' :
142
-				"<input type='hidden' name='test_dir' value='" . spip_htmlspecialchars($test_dir, ENT_QUOTES) . "' />")
141
+		$t = (!$test_dir ? '' : "<input type='hidden' name='test_dir' value='".spip_htmlspecialchars($test_dir, ENT_QUOTES)."' />")
143 142
 			. "<input type='hidden' name='etape' value='chmod' />"
144
-			. "<div style='text-align: right'><input type='submit' value='" . attribut_html($t) . "' /></div>";
143
+			. "<div style='text-align: right'><input type='submit' value='".attribut_html($t)."' /></div>";
145 144
 
146
-		echo minipres($titre, $res . generer_form_ecrire('install', $t));
145
+		echo minipres($titre, $res.generer_form_ecrire('install', $t));
147 146
 	} else {
148 147
 		$deja = (_FILE_CONNECT and analyse_fichier_connection(_FILE_CONNECT));
149 148
 		if (!$deja) {
150
-			redirige_url_ecrire('install', 'etape=1&chmod=' . $chmod);
149
+			redirige_url_ecrire('install', 'etape=1&chmod='.$chmod);
151 150
 		} else {
152 151
 			redirige_url_ecrire();
153 152
 		}
Please login to merge, or discard this patch.
ecrire/install/etape_ldap4.php 2 patches
Indentation   +81 added lines, -81 removed lines patch added patch discarded remove patch
@@ -11,98 +11,98 @@
 block discarded – undo
11 11
 \***************************************************************************/
12 12
 
13 13
 if (!defined('_ECRIRE_INC_VERSION')) {
14
-	return;
14
+    return;
15 15
 }
16 16
 
17 17
 include_spip('auth/ldap');
18 18
 
19 19
 // https://code.spip.net/@install_etape_ldap4_dist
20 20
 function install_etape_ldap4_dist() {
21
-	$adresse_ldap = _request('adresse_ldap');
22
-	$login_ldap = _request('login_ldap');
23
-	$pass_ldap = _request('pass_ldap');
24
-	$port_ldap = _request('port_ldap');
25
-	$base_ldap = _request('base_ldap');
26
-	$base_ldap_text = _request('base_ldap_text');
27
-	if (!$base_ldap) {
28
-		$base_ldap = $base_ldap_text;
29
-	}
30
-
31
-	echo install_debut_html('AUTO', ' onload="document.getElementById(\'suivant\').focus();return false;"');
32
-
33
-	$ldap_link = ldap_connect($adresse_ldap, $port_ldap);
34
-	@ldap_bind($ldap_link, $login_ldap, $pass_ldap);
35
-
36
-	// Essayer de verifier le chemin fourni
37
-	$r = @ldap_compare($ldap_link, $base_ldap, 'objectClass', '');
38
-	$fail = (ldap_errno($ldap_link) == 32);
39
-
40
-	if ($fail) {
41
-		echo info_etape(_T('info_chemin_acces_annuaire')),
42
-		info_progression_etape(3, 'etape_ldap', 'install/', true),
43
-			"<div class='error'><p><b>" . _T('avis_operation_echec') . '</b></p><p>' . _T('avis_chemin_invalide_1'),
44
-			' (<tt>' . spip_htmlspecialchars($base_ldap) . '</tt>) ' . _T('avis_chemin_invalide_2') . '</p></div>';
45
-	} else {
46
-		info_etape(_T('info_reglage_ldap'));
47
-		echo info_progression_etape(4, 'etape_ldap', 'install/');
48
-
49
-		$statuts = liste_statuts_ldap();
50
-		$statut_ldap = defined('_INSTALL_STATUT_LDAP')
51
-			? _INSTALL_STATUT_LDAP
52
-			: $GLOBALS['liste_des_statuts']['info_redacteurs'];
53
-
54
-
55
-		$res = install_propager(['adresse_ldap', 'port_ldap', 'login_ldap', 'pass_ldap', 'protocole_ldap', 'tls_ldap'])
56
-			. "<input type='hidden' name='etape' value='ldap5' />"
57
-			. "<input type='hidden' name='base_ldap' value='" . spip_htmlentities($base_ldap) . "' />"
58
-			. fieldset(
59
-				_T('info_statut_utilisateurs_1'),
60
-				[
61
-					'statut_ldap' => [
62
-						'label' => _T('info_statut_utilisateurs_2') . '<br />',
63
-						'valeur' => $statut_ldap,
64
-						'alternatives' => $statuts
65
-					]
66
-				]
67
-			)
68
-			. install_ldap_correspondances()
69
-			. bouton_suivant();
70
-
71
-		echo generer_form_ecrire('install', $res);
72
-	}
73
-
74
-	echo install_fin_html();
21
+    $adresse_ldap = _request('adresse_ldap');
22
+    $login_ldap = _request('login_ldap');
23
+    $pass_ldap = _request('pass_ldap');
24
+    $port_ldap = _request('port_ldap');
25
+    $base_ldap = _request('base_ldap');
26
+    $base_ldap_text = _request('base_ldap_text');
27
+    if (!$base_ldap) {
28
+        $base_ldap = $base_ldap_text;
29
+    }
30
+
31
+    echo install_debut_html('AUTO', ' onload="document.getElementById(\'suivant\').focus();return false;"');
32
+
33
+    $ldap_link = ldap_connect($adresse_ldap, $port_ldap);
34
+    @ldap_bind($ldap_link, $login_ldap, $pass_ldap);
35
+
36
+    // Essayer de verifier le chemin fourni
37
+    $r = @ldap_compare($ldap_link, $base_ldap, 'objectClass', '');
38
+    $fail = (ldap_errno($ldap_link) == 32);
39
+
40
+    if ($fail) {
41
+        echo info_etape(_T('info_chemin_acces_annuaire')),
42
+        info_progression_etape(3, 'etape_ldap', 'install/', true),
43
+            "<div class='error'><p><b>" . _T('avis_operation_echec') . '</b></p><p>' . _T('avis_chemin_invalide_1'),
44
+            ' (<tt>' . spip_htmlspecialchars($base_ldap) . '</tt>) ' . _T('avis_chemin_invalide_2') . '</p></div>';
45
+    } else {
46
+        info_etape(_T('info_reglage_ldap'));
47
+        echo info_progression_etape(4, 'etape_ldap', 'install/');
48
+
49
+        $statuts = liste_statuts_ldap();
50
+        $statut_ldap = defined('_INSTALL_STATUT_LDAP')
51
+            ? _INSTALL_STATUT_LDAP
52
+            : $GLOBALS['liste_des_statuts']['info_redacteurs'];
53
+
54
+
55
+        $res = install_propager(['adresse_ldap', 'port_ldap', 'login_ldap', 'pass_ldap', 'protocole_ldap', 'tls_ldap'])
56
+            . "<input type='hidden' name='etape' value='ldap5' />"
57
+            . "<input type='hidden' name='base_ldap' value='" . spip_htmlentities($base_ldap) . "' />"
58
+            . fieldset(
59
+                _T('info_statut_utilisateurs_1'),
60
+                [
61
+                    'statut_ldap' => [
62
+                        'label' => _T('info_statut_utilisateurs_2') . '<br />',
63
+                        'valeur' => $statut_ldap,
64
+                        'alternatives' => $statuts
65
+                    ]
66
+                ]
67
+            )
68
+            . install_ldap_correspondances()
69
+            . bouton_suivant();
70
+
71
+        echo generer_form_ecrire('install', $res);
72
+    }
73
+
74
+    echo install_fin_html();
75 75
 }
76 76
 
77 77
 // https://code.spip.net/@liste_statuts_ldap
78 78
 function liste_statuts_ldap() {
79
-	$recom = [
80
-		'info_administrateurs' => ('<b>' . _T('info_administrateur_1') . '</b> ' . _T('info_administrateur_2') . '<br />'),
81
-		'info_redacteurs' => ('<b>' . _T('info_redacteur_1') . '</b> ' . _T('info_redacteur_2') . '<br />'),
82
-		'info_visiteurs' => ('<b>' . _T('info_visiteur_1') . '</b> ' . _T('info_visiteur_2') . '<br />')
83
-	];
84
-
85
-	$res = [];
86
-	foreach ($GLOBALS['liste_des_statuts'] as $k => $v) {
87
-		if (isset($recom[$k])) {
88
-			$res[$v] = $recom[$k];
89
-		}
90
-	}
91
-
92
-	return $res;
79
+    $recom = [
80
+        'info_administrateurs' => ('<b>' . _T('info_administrateur_1') . '</b> ' . _T('info_administrateur_2') . '<br />'),
81
+        'info_redacteurs' => ('<b>' . _T('info_redacteur_1') . '</b> ' . _T('info_redacteur_2') . '<br />'),
82
+        'info_visiteurs' => ('<b>' . _T('info_visiteur_1') . '</b> ' . _T('info_visiteur_2') . '<br />')
83
+    ];
84
+
85
+    $res = [];
86
+    foreach ($GLOBALS['liste_des_statuts'] as $k => $v) {
87
+        if (isset($recom[$k])) {
88
+            $res[$v] = $recom[$k];
89
+        }
90
+    }
91
+
92
+    return $res;
93 93
 }
94 94
 
95 95
 function install_ldap_correspondances() {
96
-	$champs = [];
97
-	foreach (is_array($GLOBALS['ldap_attributes']) ? $GLOBALS['ldap_attributes'] : [] as $champ => $v) {
98
-		$nom = 'ldap_' . $champ;
99
-		$val = is_array($v) ? join(',', $v) : strval($v);
100
-		$champs[$nom] = [
101
-			'label' => _T('ldap_correspondance', ['champ' => "<tt>$champ</tt>"]) . '<br />',
102
-			'valeur' => $val
103
-		];
104
-	}
105
-
106
-	return !$champs ?
107
-		'' : fieldset(_T('ldap_correspondance_1'), $champs, '', _T('ldap_correspondance_2') . '<br /><br />');
96
+    $champs = [];
97
+    foreach (is_array($GLOBALS['ldap_attributes']) ? $GLOBALS['ldap_attributes'] : [] as $champ => $v) {
98
+        $nom = 'ldap_' . $champ;
99
+        $val = is_array($v) ? join(',', $v) : strval($v);
100
+        $champs[$nom] = [
101
+            'label' => _T('ldap_correspondance', ['champ' => "<tt>$champ</tt>"]) . '<br />',
102
+            'valeur' => $val
103
+        ];
104
+    }
105
+
106
+    return !$champs ?
107
+        '' : fieldset(_T('ldap_correspondance_1'), $champs, '', _T('ldap_correspondance_2') . '<br /><br />');
108 108
 }
Please login to merge, or discard this patch.
Spacing   +10 added lines, -10 removed lines patch added patch discarded remove patch
@@ -40,8 +40,8 @@  discard block
 block discarded – undo
40 40
 	if ($fail) {
41 41
 		echo info_etape(_T('info_chemin_acces_annuaire')),
42 42
 		info_progression_etape(3, 'etape_ldap', 'install/', true),
43
-			"<div class='error'><p><b>" . _T('avis_operation_echec') . '</b></p><p>' . _T('avis_chemin_invalide_1'),
44
-			' (<tt>' . spip_htmlspecialchars($base_ldap) . '</tt>) ' . _T('avis_chemin_invalide_2') . '</p></div>';
43
+			"<div class='error'><p><b>"._T('avis_operation_echec').'</b></p><p>'._T('avis_chemin_invalide_1'),
44
+			' (<tt>'.spip_htmlspecialchars($base_ldap).'</tt>) '._T('avis_chemin_invalide_2').'</p></div>';
45 45
 	} else {
46 46
 		info_etape(_T('info_reglage_ldap'));
47 47
 		echo info_progression_etape(4, 'etape_ldap', 'install/');
@@ -54,12 +54,12 @@  discard block
 block discarded – undo
54 54
 
55 55
 		$res = install_propager(['adresse_ldap', 'port_ldap', 'login_ldap', 'pass_ldap', 'protocole_ldap', 'tls_ldap'])
56 56
 			. "<input type='hidden' name='etape' value='ldap5' />"
57
-			. "<input type='hidden' name='base_ldap' value='" . spip_htmlentities($base_ldap) . "' />"
57
+			. "<input type='hidden' name='base_ldap' value='".spip_htmlentities($base_ldap)."' />"
58 58
 			. fieldset(
59 59
 				_T('info_statut_utilisateurs_1'),
60 60
 				[
61 61
 					'statut_ldap' => [
62
-						'label' => _T('info_statut_utilisateurs_2') . '<br />',
62
+						'label' => _T('info_statut_utilisateurs_2').'<br />',
63 63
 						'valeur' => $statut_ldap,
64 64
 						'alternatives' => $statuts
65 65
 					]
@@ -77,9 +77,9 @@  discard block
 block discarded – undo
77 77
 // https://code.spip.net/@liste_statuts_ldap
78 78
 function liste_statuts_ldap() {
79 79
 	$recom = [
80
-		'info_administrateurs' => ('<b>' . _T('info_administrateur_1') . '</b> ' . _T('info_administrateur_2') . '<br />'),
81
-		'info_redacteurs' => ('<b>' . _T('info_redacteur_1') . '</b> ' . _T('info_redacteur_2') . '<br />'),
82
-		'info_visiteurs' => ('<b>' . _T('info_visiteur_1') . '</b> ' . _T('info_visiteur_2') . '<br />')
80
+		'info_administrateurs' => ('<b>'._T('info_administrateur_1').'</b> '._T('info_administrateur_2').'<br />'),
81
+		'info_redacteurs' => ('<b>'._T('info_redacteur_1').'</b> '._T('info_redacteur_2').'<br />'),
82
+		'info_visiteurs' => ('<b>'._T('info_visiteur_1').'</b> '._T('info_visiteur_2').'<br />')
83 83
 	];
84 84
 
85 85
 	$res = [];
@@ -95,14 +95,14 @@  discard block
 block discarded – undo
95 95
 function install_ldap_correspondances() {
96 96
 	$champs = [];
97 97
 	foreach (is_array($GLOBALS['ldap_attributes']) ? $GLOBALS['ldap_attributes'] : [] as $champ => $v) {
98
-		$nom = 'ldap_' . $champ;
98
+		$nom = 'ldap_'.$champ;
99 99
 		$val = is_array($v) ? join(',', $v) : strval($v);
100 100
 		$champs[$nom] = [
101
-			'label' => _T('ldap_correspondance', ['champ' => "<tt>$champ</tt>"]) . '<br />',
101
+			'label' => _T('ldap_correspondance', ['champ' => "<tt>$champ</tt>"]).'<br />',
102 102
 			'valeur' => $val
103 103
 		];
104 104
 	}
105 105
 
106 106
 	return !$champs ?
107
-		'' : fieldset(_T('ldap_correspondance_1'), $champs, '', _T('ldap_correspondance_2') . '<br /><br />');
107
+		'' : fieldset(_T('ldap_correspondance_1'), $champs, '', _T('ldap_correspondance_2').'<br /><br />');
108 108
 }
Please login to merge, or discard this patch.