Completed
Push — master ( 3a7980...c8fa57 )
by cam
04:18
created
ecrire/inc/chercher_logo.php 2 patches
Spacing   +3 added lines, -3 removed lines patch added patch discarded remove patch
@@ -40,7 +40,7 @@  discard block
 block discarded – undo
40 40
 	$mode = preg_replace(",\W,", '', $mode);
41 41
 	if ($mode) {
42 42
 		// chercher dans la base
43
-		$mode_document = 'logo' . $mode;
43
+		$mode_document = 'logo'.$mode;
44 44
 		$objet = objet_type($_id_objet);
45 45
 		$doc = sql_fetsel('D.*', 'spip_documents AS D JOIN spip_documents_liens AS L ON L.id_document=D.id_document', "D.mode=".sql_quote($mode_document)." AND L.objet=".sql_quote($objet)." AND id_objet=".intval($id));
46 46
 		if ($doc) {
@@ -52,10 +52,10 @@  discard block
 block discarded – undo
52 52
 		if ($compat_old_logos) {
53 53
 			# attention au cas $id = '0' pour LOGO_SITE_SPIP : utiliser intval()
54 54
 			$type = type_du_logo($_id_objet);
55
-			$nom = $type . $mode . intval($id);
55
+			$nom = $type.$mode.intval($id);
56 56
 
57 57
 			foreach ($GLOBALS['formats_logos'] as $format) {
58
-				if (@file_exists($d = (_DIR_LOGOS . $nom . '.' . $format))) {
58
+				if (@file_exists($d = (_DIR_LOGOS.$nom.'.'.$format))) {
59 59
 					return array($d, _DIR_LOGOS, $nom, $format, @filemtime($d));
60 60
 				}
61 61
 			}
Please login to merge, or discard this patch.
Indentation   +33 added lines, -33 removed lines patch added patch discarded remove patch
@@ -16,7 +16,7 @@  discard block
 block discarded – undo
16 16
  * @package SPIP\Core\Logos
17 17
  **/
18 18
 if (!defined('_ECRIRE_INC_VERSION')) {
19
-	return;
19
+    return;
20 20
 }
21 21
 
22 22
 /**
@@ -37,34 +37,34 @@  discard block
 block discarded – undo
37 37
  **/
38 38
 function inc_chercher_logo_dist($id, $_id_objet, $mode = 'on', $compat_old_logos = true) {
39 39
 
40
-	$mode = preg_replace(",\W,", '', $mode);
41
-	if ($mode) {
42
-		// chercher dans la base
43
-		$mode_document = 'logo' . $mode;
44
-		$objet = objet_type($_id_objet);
45
-		$doc = sql_fetsel('D.*', 'spip_documents AS D JOIN spip_documents_liens AS L ON L.id_document=D.id_document', "D.mode=".sql_quote($mode_document)." AND L.objet=".sql_quote($objet)." AND id_objet=".intval($id));
46
-		if ($doc) {
47
-			include_spip('inc/documents');
48
-			$d = get_spip_doc($doc['fichier']);
49
-			return array($d, _DIR_IMG, basename($d), $doc['extension'], @filemtime($d), $doc);
50
-		}
40
+    $mode = preg_replace(",\W,", '', $mode);
41
+    if ($mode) {
42
+        // chercher dans la base
43
+        $mode_document = 'logo' . $mode;
44
+        $objet = objet_type($_id_objet);
45
+        $doc = sql_fetsel('D.*', 'spip_documents AS D JOIN spip_documents_liens AS L ON L.id_document=D.id_document', "D.mode=".sql_quote($mode_document)." AND L.objet=".sql_quote($objet)." AND id_objet=".intval($id));
46
+        if ($doc) {
47
+            include_spip('inc/documents');
48
+            $d = get_spip_doc($doc['fichier']);
49
+            return array($d, _DIR_IMG, basename($d), $doc['extension'], @filemtime($d), $doc);
50
+        }
51 51
 
52
-		# deprecated TODO remove
53
-		if ($compat_old_logos) {
54
-			# attention au cas $id = '0' pour LOGO_SITE_SPIP : utiliser intval()
55
-			$type = type_du_logo($_id_objet);
56
-			$nom = $type . $mode . intval($id);
52
+        # deprecated TODO remove
53
+        if ($compat_old_logos) {
54
+            # attention au cas $id = '0' pour LOGO_SITE_SPIP : utiliser intval()
55
+            $type = type_du_logo($_id_objet);
56
+            $nom = $type . $mode . intval($id);
57 57
 
58
-			foreach ($GLOBALS['formats_logos'] as $format) {
59
-				if (@file_exists($d = (_DIR_LOGOS . $nom . '.' . $format))) {
60
-					return array($d, _DIR_LOGOS, $nom, $format, @filemtime($d));
61
-				}
62
-			}
63
-		}
64
-	}
58
+            foreach ($GLOBALS['formats_logos'] as $format) {
59
+                if (@file_exists($d = (_DIR_LOGOS . $nom . '.' . $format))) {
60
+                    return array($d, _DIR_LOGOS, $nom, $format, @filemtime($d));
61
+                }
62
+            }
63
+        }
64
+    }
65 65
 
66
-	# coherence de type pour servir comme filtre (formulaire_login)
67
-	return array();
66
+    # coherence de type pour servir comme filtre (formulaire_login)
67
+    return array();
68 68
 }
69 69
 
70 70
 /**
@@ -83,15 +83,15 @@  discard block
 block discarded – undo
83 83
  * @deprecated MAIS NE PAS SUPPRIMER CAR SERT POUR L'UPGRADE des logos et leur mise en base
84 84
  **/
85 85
 function type_du_logo($_id_objet) {
86
-	return isset($GLOBALS['table_logos'][$_id_objet])
87
-		? $GLOBALS['table_logos'][$_id_objet]
88
-		: objet_type(preg_replace(',^id_,', '', $_id_objet));
86
+    return isset($GLOBALS['table_logos'][$_id_objet])
87
+        ? $GLOBALS['table_logos'][$_id_objet]
88
+        : objet_type(preg_replace(',^id_,', '', $_id_objet));
89 89
 }
90 90
 
91 91
 // Exceptions standards (historique)
92 92
 $GLOBALS['table_logos'] = array(
93
-	'id_article' => 'art',
94
-	'id_auteur' => 'aut',
95
-	'id_rubrique' => 'rub',
96
-	'id_groupe' => 'groupe',
93
+    'id_article' => 'art',
94
+    'id_auteur' => 'aut',
95
+    'id_rubrique' => 'rub',
96
+    'id_groupe' => 'groupe',
97 97
 );
Please login to merge, or discard this patch.
ecrire/action/editer_logo.php 3 patches
Braces   +1 added lines, -2 removed lines patch added patch discarded remove patch
@@ -42,8 +42,7 @@
 block discarded – undo
42 42
 		if (count($logo) < 6) {
43 43
 			spip_log("Supprimer ancien logo $logo", 'logo');
44 44
 			spip_unlink($logo[0]);
45
-		}
46
-		elseif ($doc = $logo[5]
45
+		} elseif ($doc = $logo[5]
47 46
 			and isset($doc['id_document'])
48 47
 		  and $id_document = $doc['id_document']) {
49 48
 
Please login to merge, or discard this patch.
Spacing   +11 added lines, -11 removed lines patch added patch discarded remove patch
@@ -81,14 +81,14 @@  discard block
 block discarded – undo
81 81
 	include_spip('inc/chercher_logo');
82 82
 
83 83
 	$mode = preg_replace(",\W,", '', $etat);
84
-	if (!$mode){
84
+	if (!$mode) {
85 85
 		spip_log("logo_modifier : etat $etat invalide", 'logo');
86 86
 		$erreur = 'etat invalide';
87 87
 
88 88
 		return $erreur;
89 89
 	}
90 90
 	// chercher dans la base
91
-	$mode_document = 'logo' . $mode;
91
+	$mode_document = 'logo'.$mode;
92 92
 
93 93
 	include_spip('inc/documents');
94 94
 	$erreur = '';
@@ -105,7 +105,7 @@  discard block
 block discarded – undo
105 105
 		$tmp_name = false;
106 106
 		if (file_exists($source)) {
107 107
 			$tmp_name = $source;
108
-		} elseif (file_exists($f = determine_upload() . $source)) {
108
+		} elseif (file_exists($f = determine_upload().$source)) {
109 109
 			$tmp_name = $f;
110 110
 		}
111 111
 		if (!$tmp_name) {
@@ -162,27 +162,27 @@  discard block
 block discarded – undo
162 162
 	$type = type_du_logo($_id_objet);
163 163
 
164 164
 	foreach (['on', 'off'] as $mode) {
165
-		$nom_base = $type . $mode;
165
+		$nom_base = $type.$mode;
166 166
 		$dir = (defined('_DIR_LOGOS') ? _DIR_LOGOS : _DIR_IMG);
167 167
 
168 168
 		$deja = array();
169
-		$files = glob($dir . $nom_base . "*");
169
+		$files = glob($dir.$nom_base."*");
170 170
 
171 171
 		foreach ($files as $file) {
172
-			$logo = substr($file, strlen($dir . $nom_base));
172
+			$logo = substr($file, strlen($dir.$nom_base));
173 173
 			$logo = explode('.', $logo);
174 174
 			if (is_numeric($logo[0])
175 175
 			  and ($id_objet = intval($logo[0]) or in_array($objet, ['site', 'rubrique']))) {
176 176
 				if (!isset($deja[$id_objet])) {
177 177
 					$logo = $chercher_logo($id_objet, $_id_objet, $mode);
178 178
 					// if no logo in base
179
-					if (!$logo or count($logo)<6) {
179
+					if (!$logo or count($logo) < 6) {
180 180
 						foreach ($formats_logos as $format) {
181
-							if (@file_exists($d = ($dir . ($nom = $nom_base . intval($id_objet) . '.' . $format)))) {
181
+							if (@file_exists($d = ($dir.($nom = $nom_base.intval($id_objet).'.'.$format)))) {
182 182
 								// logo_modifier commence par supprimer le logo existant, donc on le deplace pour pas le perdre
183
-								@rename($d, $dir_logos . $nom);
183
+								@rename($d, $dir_logos.$nom);
184 184
 								// et on le declare comme nouveau logo
185
-								logo_modifier($objet, $id_objet, $mode, $dir_logos . $nom);
185
+								logo_modifier($objet, $id_objet, $mode, $dir_logos.$nom);
186 186
 								break;
187 187
 							}
188 188
 						}
@@ -192,7 +192,7 @@  discard block
 block discarded – undo
192 192
 			}
193 193
 			// si le fichier est encore la on le move : rien a faire ici
194 194
 			if (file_exists($file)) {
195
-				@rename($file, $dir_logos_erreurs . basename($file));
195
+				@rename($file, $dir_logos_erreurs.basename($file));
196 196
 			}
197 197
 
198 198
 			if ($time_limit and time() > $time_limit) {
Please login to merge, or discard this patch.
Indentation   +154 added lines, -154 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
 
@@ -30,35 +30,35 @@  discard block
 block discarded – undo
30 30
  *     `on` ou `off`
31 31
  */
32 32
 function logo_supprimer($objet, $id_objet, $etat) {
33
-	$chercher_logo = charger_fonction('chercher_logo', 'inc');
34
-	$objet = objet_type($objet);
35
-	$primary = id_table_objet($objet);
36
-	include_spip('inc/chercher_logo');
37
-
38
-	// existe-t-il deja un logo ?
39
-	$logo = $chercher_logo($id_objet, $primary, $etat);
40
-	if ($logo) {
41
-		# TODO : deprecated, a supprimer -> anciens logos IMG/artonxx.png pas en base
42
-		if (count($logo) < 6) {
43
-			spip_log("Supprimer ancien logo $logo", 'logo');
44
-			spip_unlink($logo[0]);
45
-		}
46
-		elseif ($doc = $logo[5]
47
-			and isset($doc['id_document'])
48
-		  and $id_document = $doc['id_document']) {
49
-
50
-			include_spip('action/editer_liens');
51
-			// supprimer le lien dans la base
52
-			objet_dissocier(array('document' => $id_document), array($objet => $id_objet), array('role' => '*'));
53
-
54
-			// verifier si il reste des liens avec d'autres objets et sinon supprimer
55
-			$liens = objet_trouver_liens(array('document' => $id_document), '*');
56
-			if (!count($liens)) {
57
-				$supprimer_document = charger_fonction('supprimer_document', 'action');
58
-				$supprimer_document($doc['id_document']);
59
-			}
60
-		}
61
-	}
33
+    $chercher_logo = charger_fonction('chercher_logo', 'inc');
34
+    $objet = objet_type($objet);
35
+    $primary = id_table_objet($objet);
36
+    include_spip('inc/chercher_logo');
37
+
38
+    // existe-t-il deja un logo ?
39
+    $logo = $chercher_logo($id_objet, $primary, $etat);
40
+    if ($logo) {
41
+        # TODO : deprecated, a supprimer -> anciens logos IMG/artonxx.png pas en base
42
+        if (count($logo) < 6) {
43
+            spip_log("Supprimer ancien logo $logo", 'logo');
44
+            spip_unlink($logo[0]);
45
+        }
46
+        elseif ($doc = $logo[5]
47
+            and isset($doc['id_document'])
48
+          and $id_document = $doc['id_document']) {
49
+
50
+            include_spip('action/editer_liens');
51
+            // supprimer le lien dans la base
52
+            objet_dissocier(array('document' => $id_document), array($objet => $id_objet), array('role' => '*'));
53
+
54
+            // verifier si il reste des liens avec d'autres objets et sinon supprimer
55
+            $liens = objet_trouver_liens(array('document' => $id_document), '*');
56
+            if (!count($liens)) {
57
+                $supprimer_document = charger_fonction('supprimer_document', 'action');
58
+                $supprimer_document($doc['id_document']);
59
+            }
60
+        }
61
+    }
62 62
 }
63 63
 
64 64
 /**
@@ -75,133 +75,133 @@  discard block
 block discarded – undo
75 75
  *     Erreur, sinon ''
76 76
  */
77 77
 function logo_modifier($objet, $id_objet, $etat, $source) {
78
-	$chercher_logo = charger_fonction('chercher_logo', 'inc');
79
-	$objet = objet_type($objet);
80
-	$primary = id_table_objet($objet);
81
-	include_spip('inc/chercher_logo');
82
-
83
-	$mode = preg_replace(",\W,", '', $etat);
84
-	if (!$mode){
85
-		spip_log("logo_modifier : etat $etat invalide", 'logo');
86
-		$erreur = 'etat invalide';
87
-
88
-		return $erreur;
89
-	}
90
-	// chercher dans la base
91
-	$mode_document = 'logo' . $mode;
92
-
93
-	include_spip('inc/documents');
94
-	$erreur = '';
95
-
96
-	if (!$source) {
97
-		spip_log('spip_image_ajouter : source inconnue', 'logo');
98
-		$erreur = 'source inconnue';
99
-
100
-		return $erreur;
101
-	}
102
-
103
-	// fichier dans upload/
104
-	if (is_string($source)) {
105
-		$tmp_name = false;
106
-		if (file_exists($source)) {
107
-			$tmp_name = $source;
108
-		} elseif (file_exists($f = determine_upload() . $source)) {
109
-			$tmp_name = $f;
110
-		}
111
-		if (!$tmp_name) {
112
-			spip_log('spip_image_ajouter : source inconnue', 'logo');
113
-			$erreur = 'source inconnue';
114
-
115
-			return $erreur;
116
-		}
117
-		$source = array(
118
-			'tmp_name' => $tmp_name,
119
-			'name' => basename($tmp_name),
120
-		);
121
-	} elseif ($erreur = check_upload_error($source['error'], '', true)) {
122
-		return $erreur;
123
-	}
124
-
125
-	// supprimer le logo eventueel existant
126
-	// TODO : si un logo existe, le modifier plutot que supprimer + reinserer (mais il faut gerer le cas ou il est utilise par plusieurs objets, donc pas si simple)
127
-	// mais de toute facon l'interface actuelle oblige a supprimer + reinserer
128
-	logo_supprimer($objet, $id_objet, $etat);
129
-
130
-
131
-	include_spip('inc/autoriser');
132
-	$source['mode'] = $mode_document;
133
-	$ajouter_documents = charger_fonction('ajouter_documents', 'action');
134
-	autoriser_exception('associerdocuments', $objet, $id_objet);
135
-	$ajoutes = $ajouter_documents('new', [$source], $objet, $id_objet, $mode_document);
136
-	autoriser_exception('associerdocuments', $objet, $id_objet, false);
137
-
138
-	$id_document = reset($ajoutes);
139
-
140
-	if (!is_numeric($id_document)) {
141
-		$erreur = ($id_document ? $id_document : 'Erreur inconnue');
142
-		spip_log("Erreur ajout logo : $erreur pour source=".json_encode($source), 'logo');
143
-		return $erreur;
144
-	}
145
-
146
-	return ''; // tout est bon, pas d'erreur
78
+    $chercher_logo = charger_fonction('chercher_logo', 'inc');
79
+    $objet = objet_type($objet);
80
+    $primary = id_table_objet($objet);
81
+    include_spip('inc/chercher_logo');
82
+
83
+    $mode = preg_replace(",\W,", '', $etat);
84
+    if (!$mode){
85
+        spip_log("logo_modifier : etat $etat invalide", 'logo');
86
+        $erreur = 'etat invalide';
87
+
88
+        return $erreur;
89
+    }
90
+    // chercher dans la base
91
+    $mode_document = 'logo' . $mode;
92
+
93
+    include_spip('inc/documents');
94
+    $erreur = '';
95
+
96
+    if (!$source) {
97
+        spip_log('spip_image_ajouter : source inconnue', 'logo');
98
+        $erreur = 'source inconnue';
99
+
100
+        return $erreur;
101
+    }
102
+
103
+    // fichier dans upload/
104
+    if (is_string($source)) {
105
+        $tmp_name = false;
106
+        if (file_exists($source)) {
107
+            $tmp_name = $source;
108
+        } elseif (file_exists($f = determine_upload() . $source)) {
109
+            $tmp_name = $f;
110
+        }
111
+        if (!$tmp_name) {
112
+            spip_log('spip_image_ajouter : source inconnue', 'logo');
113
+            $erreur = 'source inconnue';
114
+
115
+            return $erreur;
116
+        }
117
+        $source = array(
118
+            'tmp_name' => $tmp_name,
119
+            'name' => basename($tmp_name),
120
+        );
121
+    } elseif ($erreur = check_upload_error($source['error'], '', true)) {
122
+        return $erreur;
123
+    }
124
+
125
+    // supprimer le logo eventueel existant
126
+    // TODO : si un logo existe, le modifier plutot que supprimer + reinserer (mais il faut gerer le cas ou il est utilise par plusieurs objets, donc pas si simple)
127
+    // mais de toute facon l'interface actuelle oblige a supprimer + reinserer
128
+    logo_supprimer($objet, $id_objet, $etat);
129
+
130
+
131
+    include_spip('inc/autoriser');
132
+    $source['mode'] = $mode_document;
133
+    $ajouter_documents = charger_fonction('ajouter_documents', 'action');
134
+    autoriser_exception('associerdocuments', $objet, $id_objet);
135
+    $ajoutes = $ajouter_documents('new', [$source], $objet, $id_objet, $mode_document);
136
+    autoriser_exception('associerdocuments', $objet, $id_objet, false);
137
+
138
+    $id_document = reset($ajoutes);
139
+
140
+    if (!is_numeric($id_document)) {
141
+        $erreur = ($id_document ? $id_document : 'Erreur inconnue');
142
+        spip_log("Erreur ajout logo : $erreur pour source=".json_encode($source), 'logo');
143
+        return $erreur;
144
+    }
145
+
146
+    return ''; // tout est bon, pas d'erreur
147 147
 
148 148
 }
149 149
 
150 150
 function logo_migrer_en_base($objet, $time_limit) {
151 151
 
152
-	$dir_logos_erreurs = sous_repertoire(_DIR_IMG, 'logo_erreurs');
153
-	$dir_logos = sous_repertoire(_DIR_IMG, 'logo');
154
-	$formats_logos = array('jpg', 'png', 'svg', 'gif');
155
-	if (isset($GLOBALS['formats_logos'])) {
156
-		$formats_logos = $GLOBALS['formats_logos'];
157
-	}
158
-
159
-
160
-	$chercher_logo = charger_fonction('chercher_logo', 'inc');
161
-	include_spip('inc/chercher_logo');
162
-	$_id_objet = id_table_objet($objet);
163
-	$type = type_du_logo($_id_objet);
164
-
165
-	foreach (['on', 'off'] as $mode) {
166
-		$nom_base = $type . $mode;
167
-		$dir = (defined('_DIR_LOGOS') ? _DIR_LOGOS : _DIR_IMG);
168
-
169
-		$deja = array();
170
-		$files = glob($dir . $nom_base . "*");
171
-
172
-		foreach ($files as $file) {
173
-			$logo = substr($file, strlen($dir . $nom_base));
174
-			$logo = explode('.', $logo);
175
-			if (is_numeric($logo[0])
176
-			  and ($id_objet = intval($logo[0]) or in_array($objet, ['site', 'rubrique']))) {
177
-				if (!isset($deja[$id_objet])) {
178
-					$logo = $chercher_logo($id_objet, $_id_objet, $mode);
179
-					// if no logo in base
180
-					if (!$logo or count($logo)<6) {
181
-						foreach ($formats_logos as $format) {
182
-							if (@file_exists($d = ($dir . ($nom = $nom_base . intval($id_objet) . '.' . $format)))) {
183
-								// logo_modifier commence par supprimer le logo existant, donc on le deplace pour pas le perdre
184
-								@rename($d, $dir_logos . $nom);
185
-								// et on le declare comme nouveau logo
186
-								logo_modifier($objet, $id_objet, $mode, $dir_logos . $nom);
187
-								break;
188
-							}
189
-						}
190
-					}
191
-					$deja[$id_objet] = true;
192
-				}
193
-			}
194
-			// si le fichier est encore la on le move : rien a faire ici
195
-			if (file_exists($file)) {
196
-				@rename($file, $dir_logos_erreurs . basename($file));
197
-			}
198
-
199
-			if ($time_limit and time() > $time_limit) {
200
-				effacer_meta('drapeau_edition');
201
-				return;
202
-			}
203
-		}
204
-
205
-	}
206
-	effacer_meta('drapeau_edition');
152
+    $dir_logos_erreurs = sous_repertoire(_DIR_IMG, 'logo_erreurs');
153
+    $dir_logos = sous_repertoire(_DIR_IMG, 'logo');
154
+    $formats_logos = array('jpg', 'png', 'svg', 'gif');
155
+    if (isset($GLOBALS['formats_logos'])) {
156
+        $formats_logos = $GLOBALS['formats_logos'];
157
+    }
158
+
159
+
160
+    $chercher_logo = charger_fonction('chercher_logo', 'inc');
161
+    include_spip('inc/chercher_logo');
162
+    $_id_objet = id_table_objet($objet);
163
+    $type = type_du_logo($_id_objet);
164
+
165
+    foreach (['on', 'off'] as $mode) {
166
+        $nom_base = $type . $mode;
167
+        $dir = (defined('_DIR_LOGOS') ? _DIR_LOGOS : _DIR_IMG);
168
+
169
+        $deja = array();
170
+        $files = glob($dir . $nom_base . "*");
171
+
172
+        foreach ($files as $file) {
173
+            $logo = substr($file, strlen($dir . $nom_base));
174
+            $logo = explode('.', $logo);
175
+            if (is_numeric($logo[0])
176
+              and ($id_objet = intval($logo[0]) or in_array($objet, ['site', 'rubrique']))) {
177
+                if (!isset($deja[$id_objet])) {
178
+                    $logo = $chercher_logo($id_objet, $_id_objet, $mode);
179
+                    // if no logo in base
180
+                    if (!$logo or count($logo)<6) {
181
+                        foreach ($formats_logos as $format) {
182
+                            if (@file_exists($d = ($dir . ($nom = $nom_base . intval($id_objet) . '.' . $format)))) {
183
+                                // logo_modifier commence par supprimer le logo existant, donc on le deplace pour pas le perdre
184
+                                @rename($d, $dir_logos . $nom);
185
+                                // et on le declare comme nouveau logo
186
+                                logo_modifier($objet, $id_objet, $mode, $dir_logos . $nom);
187
+                                break;
188
+                            }
189
+                        }
190
+                    }
191
+                    $deja[$id_objet] = true;
192
+                }
193
+            }
194
+            // si le fichier est encore la on le move : rien a faire ici
195
+            if (file_exists($file)) {
196
+                @rename($file, $dir_logos_erreurs . basename($file));
197
+            }
198
+
199
+            if ($time_limit and time() > $time_limit) {
200
+                effacer_meta('drapeau_edition');
201
+                return;
202
+            }
203
+        }
204
+
205
+    }
206
+    effacer_meta('drapeau_edition');
207 207
 }
208 208
\ No newline at end of file
Please login to merge, or discard this patch.
ecrire/public/assembler.php 4 patches
Spacing   +15 added lines, -15 removed lines patch added patch discarded remove patch
@@ -37,7 +37,7 @@  discard block
 block discarded – undo
37 37
 
38 38
 	$GLOBALS['contexte'] = calculer_contexte();
39 39
 	$page = array('contexte_implicite' => calculer_contexte_implicite());
40
-	$page['contexte_implicite']['cache'] = $fond . preg_replace(',\.[a-zA-Z0-9]*$,', '',
40
+	$page['contexte_implicite']['cache'] = $fond.preg_replace(',\.[a-zA-Z0-9]*$,', '',
41 41
 			preg_replace('/[?].*$/', '', $GLOBALS['REQUEST_URI']));
42 42
 	// Cette fonction est utilisee deux fois
43 43
 	$cacher = charger_fonction('cacher', 'public', true);
@@ -118,7 +118,7 @@  discard block
 block discarded – undo
118 118
 				$lastmodified, $connect);
119 119
 			if ($page === '') {
120 120
 				$erreur = _T('info_erreur_squelette2',
121
-					array('fichier' => spip_htmlspecialchars($fond) . '.' . _EXTENSION_SQUELETTES));
121
+					array('fichier' => spip_htmlspecialchars($fond).'.'._EXTENSION_SQUELETTES));
122 122
 				erreur_squelette($erreur);
123 123
 				// eviter des erreurs strictes ensuite sur $page['cle'] en PHP >= 5.4
124 124
 				$page = array('texte' => '', 'erreur' => $erreur);
@@ -160,7 +160,7 @@  discard block
 block discarded – undo
160 160
 		and !isset($_SERVER['HTTP_IF_MODIFIED_SINCE'])
161 161
 		and !isset($page['entetes']["Last-Modified"])
162 162
 	) {
163
-		$page['entetes']["Last-Modified"] = gmdate("D, d M Y H:i:s", $lastmodified) . " GMT";
163
+		$page['entetes']["Last-Modified"] = gmdate("D, d M Y H:i:s", $lastmodified)." GMT";
164 164
 	}
165 165
 
166 166
 	// fermer la connexion apres les headers si requete HEAD
@@ -225,7 +225,7 @@  discard block
 block discarded – undo
225 225
 		'spip_version_code' => $GLOBALS['spip_version_code'],
226 226
 	);
227 227
 	if (isset($_SERVER['HTTP_X_FORWARDED_HOST'])) {
228
-		$contexte_implicite['host'] .= "|" . $_SERVER['HTTP_X_FORWARDED_HOST'];
228
+		$contexte_implicite['host'] .= "|".$_SERVER['HTTP_X_FORWARDED_HOST'];
229 229
 	}
230 230
 
231 231
 	return $contexte_implicite;
@@ -497,7 +497,7 @@  discard block
 block discarded – undo
497 497
  *   et il ne doit etre utilise que pour trouver le id_xx si pas de $id fourni (cas appel depuis styliser)
498 498
  * @return string
499 499
  */
500
-function styliser_modele($modele, $id, $contexte=null) {
500
+function styliser_modele($modele, $id, $contexte = null) {
501 501
 	static $styliseurs = null;
502 502
 	if (is_null($styliseurs)) {
503 503
 		$tables_objet = lister_tables_objets_sql();
@@ -523,7 +523,7 @@  discard block
 block discarded – undo
523 523
 			}
524 524
 		}
525 525
 		if (is_null($id)) {
526
-			$msg = "modeles/$modele : " . _T('zbug_parametres_inclus_incorrects', array('param' => "id/$primary"));
526
+			$msg = "modeles/$modele : "._T('zbug_parametres_inclus_incorrects', array('param' => "id/$primary"));
527 527
 			erreur_squelette($msg);
528 528
 			// on passe id=0 au routeur pour tomber sur le modele par defaut et eviter une seconde erreur sur un modele inexistant
529 529
 			$id = 0;
@@ -570,7 +570,7 @@  discard block
 block discarded – undo
570 570
 		}
571 571
 
572 572
 		if (preg_match(',^[a-z0-9_]+$,', $soustype)) {
573
-			if (!trouve_modele($fond = ($type . '_' . $soustype))) {
573
+			if (!trouve_modele($fond = ($type.'_'.$soustype))) {
574 574
 				$fond = '';
575 575
 				$class = $soustype;
576 576
 			}
@@ -585,7 +585,7 @@  discard block
 block discarded – undo
585 585
 
586 586
 		return false;
587 587
 	}
588
-	$fond = 'modeles/' . $fond;
588
+	$fond = 'modeles/'.$fond;
589 589
 	// Creer le contexte
590 590
 	$contexte = $env;
591 591
 	$contexte['dir_racine'] = _DIR_RACINE; # eviter de mixer un cache racine et un cache ecrire (meme si pour l'instant les modeles ne sont pas caches, le resultat etant different il faut que le contexte en tienne compte
@@ -624,13 +624,13 @@  discard block
 block discarded – undo
624 624
 	// Regarder si le modele tient compte des liens (il *doit* alors indiquer
625 625
 	// spip_lien_ok dans les classes de son conteneur de premier niveau ;
626 626
 	// sinon, s'il y a un lien, on l'ajoute classiquement
627
-	if (strstr(' ' . ($classes = extraire_attribut($retour, 'class')) . ' ',
627
+	if (strstr(' '.($classes = extraire_attribut($retour, 'class')).' ',
628 628
 		'spip_lien_ok')) {
629 629
 		$retour = inserer_attribut($retour, 'class',
630 630
 			trim(str_replace(' spip_lien_ok ', ' ', " $classes ")));
631 631
 	} else {
632 632
 		if ($lien) {
633
-			$retour = "<a href='" . $lien['href'] . "' class='" . $lien['class'] . "'>" . $retour . "</a>";
633
+			$retour = "<a href='".$lien['href']."' class='".$lien['class']."'>".$retour."</a>";
634 634
 		}
635 635
 	}
636 636
 
@@ -654,7 +654,7 @@  discard block
 block discarded – undo
654 654
 		return $page;
655 655
 	}
656 656
 	// eval $page et affecte $res
657
-	include _ROOT_RESTREINT . "public/evaluer_page.php";
657
+	include _ROOT_RESTREINT."public/evaluer_page.php";
658 658
 
659 659
 	// Lever un drapeau (global) si le fond utilise #SESSION
660 660
 	// a destination de public/parametrer
@@ -717,14 +717,14 @@  discard block
 block discarded – undo
717 717
 			if (($pos = strpos($head, '<head>')) !== false) {
718 718
 				$head = substr_replace($head, $bbase, $pos + 6, 0);
719 719
 			} elseif (preg_match(",<head[^>]*>,i", $head, $r)) {
720
-				$head = str_replace($r[0], $r[0] . $bbase, $head);
720
+				$head = str_replace($r[0], $r[0].$bbase, $head);
721 721
 			}
722
-			$texte = $head . substr($texte, $poshead);
722
+			$texte = $head.substr($texte, $poshead);
723 723
 			// gerer les ancres
724 724
 			$base = $_SERVER['REQUEST_URI'];
725 725
 			// pas de guillemets ni < dans l'URL qu'on insere dans le HTML
726
-			if (strpos($base,"'") or strpos($base,'"') or strpos($base,'<')) {
727
-				$base = str_replace(array("'",'"','<'),array("%27",'%22','%3C'), $base);
726
+			if (strpos($base, "'") or strpos($base, '"') or strpos($base, '<')) {
727
+				$base = str_replace(array("'", '"', '<'), array("%27", '%22', '%3C'), $base);
728 728
 			}
729 729
 			if (strpos($texte, "href='#") !== false) {
730 730
 				$texte = str_replace("href='#", "href='$base#", $texte);
Please login to merge, or discard this patch.
Braces   +9 added lines, -4 removed lines patch added patch discarded remove patch
@@ -471,9 +471,11 @@  discard block
 block discarded – undo
471 471
 				$contexte[$var] = $val;
472 472
 			} else {
473 473
 				$args = explode('=', $val);
474
-				if (count($args) >= 2) // Flashvars=arg1=machin&arg2=truc genere plus de deux args
474
+				if (count($args) >= 2) {
475
+				    // Flashvars=arg1=machin&arg2=truc genere plus de deux args
475 476
 				{
476 477
 					$contexte[trim($args[0])] = substr($val, strlen($args[0]) + 1);
478
+				}
477 479
 				} else // notation abregee
478 480
 				{
479 481
 					$contexte[trim($val)] = trim($val);
@@ -676,8 +678,8 @@  discard block
 block discarded – undo
676 678
 function page_base_href(&$texte) {
677 679
 	static $set_html_base = null;
678 680
 	if (is_null($set_html_base)) {
679
-		if (!defined('_SET_HTML_BASE'))
680
-			// si la profondeur est superieure a 1
681
+		if (!defined('_SET_HTML_BASE')) {
682
+					// si la profondeur est superieure a 1
681 683
 			// est que ce n'est pas une url page ni une url action
682 684
 			// activer par defaut
683 685
 		{
@@ -685,6 +687,7 @@  discard block
 block discarded – undo
685 687
 				$GLOBALS['profondeur_url'] >= (_DIR_RESTREINT ? 1 : 2)
686 688
 				and _request(_SPIP_PAGE) !== 'login'
687 689
 				and !_request('action')) ? true : false);
690
+		}
688 691
 		} else {
689 692
 			$set_html_base = _SET_HTML_BASE;
690 693
 		}
@@ -742,8 +745,10 @@  discard block
 block discarded – undo
742 745
 // et demarrent par X-Spip-...
743 746
 // https://code.spip.net/@envoyer_entetes
744 747
 function envoyer_entetes($entetes) {
745
-	foreach ($entetes as $k => $v) #	if (strncmp($k, 'X-Spip-', 7))
748
+	foreach ($entetes as $k => $v) {
749
+	    #	if (strncmp($k, 'X-Spip-', 7))
746 750
 	{
747 751
 		@header(strlen($v) ? "$k: $v" : $k);
748 752
 	}
753
+	}
749 754
 }
Please login to merge, or discard this patch.
Doc Comments   +1 added lines, -1 removed lines patch added patch discarded remove patch
@@ -467,7 +467,7 @@
 block discarded – undo
467 467
  *
468 468
  * @param string|null $arg
469 469
  * @param string $operation
470
- * @return mixed
470
+ * @return null|string
471 471
  */
472 472
 function arguments_balise_dyn_depuis_modele($arg, $operation = 'set') {
473 473
 	static $balise_dyn_appellee_par_modele = null;
Please login to merge, or discard this patch.
Indentation   +582 added lines, -582 removed lines patch added patch discarded remove patch
@@ -20,155 +20,155 @@  discard block
 block discarded – undo
20 20
  **/
21 21
 
22 22
 if (!defined('_ECRIRE_INC_VERSION')) {
23
-	return;
23
+    return;
24 24
 }
25 25
 
26 26
 // En cas de modification, il faut aussi actualiser la regexp de nettoyer_uri_var() dans inc/utils.php
27 27
 if (!defined('_CONTEXTE_IGNORE_VARIABLES')) {
28
-	define('_CONTEXTE_IGNORE_VARIABLES', "/(^var_|^PHPSESSID$|^fbclid$|^utm_)/");
28
+    define('_CONTEXTE_IGNORE_VARIABLES', "/(^var_|^PHPSESSID$|^fbclid$|^utm_)/");
29 29
 }
30 30
 
31 31
 // https://code.spip.net/@assembler
32 32
 function assembler($fond, $connect = '') {
33 33
 
34
-	// flag_preserver est modifie ici, et utilise en globale
35
-	// use_cache sert a informer le bouton d'admin pr savoir s'il met un *
36
-	// contexte est utilise en globale dans le formulaire d'admin
37
-
38
-	$GLOBALS['contexte'] = calculer_contexte();
39
-	$page = array('contexte_implicite' => calculer_contexte_implicite());
40
-	$page['contexte_implicite']['cache'] = $fond . preg_replace(',\.[a-zA-Z0-9]*$,', '',
41
-			preg_replace('/[?].*$/', '', $GLOBALS['REQUEST_URI']));
42
-	// Cette fonction est utilisee deux fois
43
-	$cacher = charger_fonction('cacher', 'public', true);
44
-	// Les quatre derniers parametres sont modifies par la fonction:
45
-	// emplacement, validite, et, s'il est valide, contenu & age
46
-	if ($cacher) {
47
-		$res = $cacher($GLOBALS['contexte'], $GLOBALS['use_cache'], $chemin_cache, $page, $lastmodified);
48
-	} else {
49
-		$GLOBALS['use_cache'] = -1;
50
-	}
51
-	// Si un resultat est retourne, c'est un message d'impossibilite
52
-	if ($res) {
53
-		return array('texte' => $res);
54
-	}
55
-
56
-	if (!$chemin_cache || !$lastmodified) {
57
-		$lastmodified = time();
58
-	}
59
-
60
-	$headers_only = ($_SERVER['REQUEST_METHOD'] == 'HEAD');
61
-	$calculer_page = true;
62
-
63
-	// Pour les pages non-dynamiques (indiquees par #CACHE{duree,cache-client})
64
-	// une perennite valide a meme reponse qu'une requete HEAD (par defaut les
65
-	// pages sont dynamiques)
66
-	if (isset($_SERVER['HTTP_IF_MODIFIED_SINCE'])
67
-		and (!defined('_VAR_MODE') or !_VAR_MODE)
68
-		and $chemin_cache
69
-		and isset($page['entetes'])
70
-		and isset($page['entetes']['Cache-Control'])
71
-		and strstr($page['entetes']['Cache-Control'], 'max-age=')
72
-		and !strstr($_SERVER['SERVER_SOFTWARE'], 'IIS/')
73
-	) {
74
-		$since = preg_replace('/;.*/', '',
75
-			$_SERVER['HTTP_IF_MODIFIED_SINCE']);
76
-		$since = str_replace('GMT', '', $since);
77
-		if (trim($since) == gmdate("D, d M Y H:i:s", $lastmodified)) {
78
-			$page['status'] = 304;
79
-			$headers_only = true;
80
-			$calculer_page = false;
81
-		}
82
-	}
83
-
84
-	// Si requete HEAD ou Last-modified compatible, ignorer le texte
85
-	// et pas de content-type (pour contrer le bouton admin de inc-public)
86
-	if (!$calculer_page) {
87
-		$page['texte'] = "";
88
-	} else {
89
-		// si la page est prise dans le cache
90
-		if (!$GLOBALS['use_cache']) {
91
-			// Informer les boutons d'admin du contexte
92
-			// (fourni par urls_decoder_url ci-dessous lors de la mise en cache)
93
-			$GLOBALS['contexte'] = $page['contexte'];
94
-
95
-			// vider les globales url propres qui ne doivent plus etre utilisees en cas
96
-			// d'inversion url => objet
97
-			// plus necessaire si on utilise bien la fonction urls_decoder_url
98
-			#unset($_SERVER['REDIRECT_url_propre']);
99
-			#unset($_ENV['url_propre']);
100
-		} else {
101
-			// Compat ascendante :
102
-			// 1. $contexte est global
103
-			// (a evacuer car urls_decoder_url gere ce probleme ?)
104
-			// et calculer la page
105
-			if (!test_espace_prive()) {
106
-				include_spip('inc/urls');
107
-				list($fond, $GLOBALS['contexte'], $url_redirect) = urls_decoder_url(nettoyer_uri(), $fond, $GLOBALS['contexte'],
108
-					true);
109
-			}
110
-			// squelette par defaut
111
-			if (!strlen($fond)) {
112
-				$fond = 'sommaire';
113
-			}
114
-
115
-			// produire la page : peut mettre a jour $lastmodified
116
-			$produire_page = charger_fonction('produire_page', 'public');
117
-			$page = $produire_page($fond, $GLOBALS['contexte'], $GLOBALS['use_cache'], $chemin_cache, null, $page,
118
-				$lastmodified, $connect);
119
-			if ($page === '') {
120
-				$erreur = _T('info_erreur_squelette2',
121
-					array('fichier' => spip_htmlspecialchars($fond) . '.' . _EXTENSION_SQUELETTES));
122
-				erreur_squelette($erreur);
123
-				// eviter des erreurs strictes ensuite sur $page['cle'] en PHP >= 5.4
124
-				$page = array('texte' => '', 'erreur' => $erreur);
125
-			}
126
-		}
127
-
128
-		if ($page and $chemin_cache) {
129
-			$page['cache'] = $chemin_cache;
130
-		}
131
-
132
-		auto_content_type($page);
133
-
134
-		$GLOBALS['flag_preserver'] |= headers_sent();
135
-
136
-		// Definir les entetes si ce n'est fait 
137
-		if (!$GLOBALS['flag_preserver']) {
138
-			if ($GLOBALS['flag_ob']) {
139
-				// Si la page est vide, produire l'erreur 404 ou message d'erreur pour les inclusions
140
-				if (trim($page['texte']) === ''
141
-					and _VAR_MODE != 'debug'
142
-					and !isset($page['entetes']['Location']) // cette page realise une redirection, donc pas d'erreur
143
-				) {
144
-					$GLOBALS['contexte']['fond_erreur'] = $fond;
145
-					$page = message_page_indisponible($page, $GLOBALS['contexte']);
146
-				}
147
-				// pas de cache client en mode 'observation'
148
-				if (defined('_VAR_MODE') and _VAR_MODE) {
149
-					$page['entetes']["Cache-Control"] = "no-cache,must-revalidate";
150
-					$page['entetes']["Pragma"] = "no-cache";
151
-				}
152
-			}
153
-		}
154
-	}
155
-
156
-	// Entete Last-Modified:
157
-	// eviter d'etre incoherent en envoyant un lastmodified identique
158
-	// a celui qu'on a refuse d'honorer plus haut (cf. #655)
159
-	if ($lastmodified
160
-		and !isset($_SERVER['HTTP_IF_MODIFIED_SINCE'])
161
-		and !isset($page['entetes']["Last-Modified"])
162
-	) {
163
-		$page['entetes']["Last-Modified"] = gmdate("D, d M Y H:i:s", $lastmodified) . " GMT";
164
-	}
165
-
166
-	// fermer la connexion apres les headers si requete HEAD
167
-	if ($headers_only) {
168
-		$page['entetes']["Connection"] = "close";
169
-	}
170
-
171
-	return $page;
34
+    // flag_preserver est modifie ici, et utilise en globale
35
+    // use_cache sert a informer le bouton d'admin pr savoir s'il met un *
36
+    // contexte est utilise en globale dans le formulaire d'admin
37
+
38
+    $GLOBALS['contexte'] = calculer_contexte();
39
+    $page = array('contexte_implicite' => calculer_contexte_implicite());
40
+    $page['contexte_implicite']['cache'] = $fond . preg_replace(',\.[a-zA-Z0-9]*$,', '',
41
+            preg_replace('/[?].*$/', '', $GLOBALS['REQUEST_URI']));
42
+    // Cette fonction est utilisee deux fois
43
+    $cacher = charger_fonction('cacher', 'public', true);
44
+    // Les quatre derniers parametres sont modifies par la fonction:
45
+    // emplacement, validite, et, s'il est valide, contenu & age
46
+    if ($cacher) {
47
+        $res = $cacher($GLOBALS['contexte'], $GLOBALS['use_cache'], $chemin_cache, $page, $lastmodified);
48
+    } else {
49
+        $GLOBALS['use_cache'] = -1;
50
+    }
51
+    // Si un resultat est retourne, c'est un message d'impossibilite
52
+    if ($res) {
53
+        return array('texte' => $res);
54
+    }
55
+
56
+    if (!$chemin_cache || !$lastmodified) {
57
+        $lastmodified = time();
58
+    }
59
+
60
+    $headers_only = ($_SERVER['REQUEST_METHOD'] == 'HEAD');
61
+    $calculer_page = true;
62
+
63
+    // Pour les pages non-dynamiques (indiquees par #CACHE{duree,cache-client})
64
+    // une perennite valide a meme reponse qu'une requete HEAD (par defaut les
65
+    // pages sont dynamiques)
66
+    if (isset($_SERVER['HTTP_IF_MODIFIED_SINCE'])
67
+        and (!defined('_VAR_MODE') or !_VAR_MODE)
68
+        and $chemin_cache
69
+        and isset($page['entetes'])
70
+        and isset($page['entetes']['Cache-Control'])
71
+        and strstr($page['entetes']['Cache-Control'], 'max-age=')
72
+        and !strstr($_SERVER['SERVER_SOFTWARE'], 'IIS/')
73
+    ) {
74
+        $since = preg_replace('/;.*/', '',
75
+            $_SERVER['HTTP_IF_MODIFIED_SINCE']);
76
+        $since = str_replace('GMT', '', $since);
77
+        if (trim($since) == gmdate("D, d M Y H:i:s", $lastmodified)) {
78
+            $page['status'] = 304;
79
+            $headers_only = true;
80
+            $calculer_page = false;
81
+        }
82
+    }
83
+
84
+    // Si requete HEAD ou Last-modified compatible, ignorer le texte
85
+    // et pas de content-type (pour contrer le bouton admin de inc-public)
86
+    if (!$calculer_page) {
87
+        $page['texte'] = "";
88
+    } else {
89
+        // si la page est prise dans le cache
90
+        if (!$GLOBALS['use_cache']) {
91
+            // Informer les boutons d'admin du contexte
92
+            // (fourni par urls_decoder_url ci-dessous lors de la mise en cache)
93
+            $GLOBALS['contexte'] = $page['contexte'];
94
+
95
+            // vider les globales url propres qui ne doivent plus etre utilisees en cas
96
+            // d'inversion url => objet
97
+            // plus necessaire si on utilise bien la fonction urls_decoder_url
98
+            #unset($_SERVER['REDIRECT_url_propre']);
99
+            #unset($_ENV['url_propre']);
100
+        } else {
101
+            // Compat ascendante :
102
+            // 1. $contexte est global
103
+            // (a evacuer car urls_decoder_url gere ce probleme ?)
104
+            // et calculer la page
105
+            if (!test_espace_prive()) {
106
+                include_spip('inc/urls');
107
+                list($fond, $GLOBALS['contexte'], $url_redirect) = urls_decoder_url(nettoyer_uri(), $fond, $GLOBALS['contexte'],
108
+                    true);
109
+            }
110
+            // squelette par defaut
111
+            if (!strlen($fond)) {
112
+                $fond = 'sommaire';
113
+            }
114
+
115
+            // produire la page : peut mettre a jour $lastmodified
116
+            $produire_page = charger_fonction('produire_page', 'public');
117
+            $page = $produire_page($fond, $GLOBALS['contexte'], $GLOBALS['use_cache'], $chemin_cache, null, $page,
118
+                $lastmodified, $connect);
119
+            if ($page === '') {
120
+                $erreur = _T('info_erreur_squelette2',
121
+                    array('fichier' => spip_htmlspecialchars($fond) . '.' . _EXTENSION_SQUELETTES));
122
+                erreur_squelette($erreur);
123
+                // eviter des erreurs strictes ensuite sur $page['cle'] en PHP >= 5.4
124
+                $page = array('texte' => '', 'erreur' => $erreur);
125
+            }
126
+        }
127
+
128
+        if ($page and $chemin_cache) {
129
+            $page['cache'] = $chemin_cache;
130
+        }
131
+
132
+        auto_content_type($page);
133
+
134
+        $GLOBALS['flag_preserver'] |= headers_sent();
135
+
136
+        // Definir les entetes si ce n'est fait 
137
+        if (!$GLOBALS['flag_preserver']) {
138
+            if ($GLOBALS['flag_ob']) {
139
+                // Si la page est vide, produire l'erreur 404 ou message d'erreur pour les inclusions
140
+                if (trim($page['texte']) === ''
141
+                    and _VAR_MODE != 'debug'
142
+                    and !isset($page['entetes']['Location']) // cette page realise une redirection, donc pas d'erreur
143
+                ) {
144
+                    $GLOBALS['contexte']['fond_erreur'] = $fond;
145
+                    $page = message_page_indisponible($page, $GLOBALS['contexte']);
146
+                }
147
+                // pas de cache client en mode 'observation'
148
+                if (defined('_VAR_MODE') and _VAR_MODE) {
149
+                    $page['entetes']["Cache-Control"] = "no-cache,must-revalidate";
150
+                    $page['entetes']["Pragma"] = "no-cache";
151
+                }
152
+            }
153
+        }
154
+    }
155
+
156
+    // Entete Last-Modified:
157
+    // eviter d'etre incoherent en envoyant un lastmodified identique
158
+    // a celui qu'on a refuse d'honorer plus haut (cf. #655)
159
+    if ($lastmodified
160
+        and !isset($_SERVER['HTTP_IF_MODIFIED_SINCE'])
161
+        and !isset($page['entetes']["Last-Modified"])
162
+    ) {
163
+        $page['entetes']["Last-Modified"] = gmdate("D, d M Y H:i:s", $lastmodified) . " GMT";
164
+    }
165
+
166
+    // fermer la connexion apres les headers si requete HEAD
167
+    if ($headers_only) {
168
+        $page['entetes']["Connection"] = "close";
169
+    }
170
+
171
+    return $page;
172 172
 }
173 173
 
174 174
 /**
@@ -187,19 +187,19 @@  discard block
 block discarded – undo
187 187
  */
188 188
 function calculer_contexte() {
189 189
 
190
-	$contexte = array();
191
-	foreach ($_GET as $var => $val) {
192
-		if (!preg_match(_CONTEXTE_IGNORE_VARIABLES, $var)) {
193
-			$contexte[$var] = $val;
194
-		}
195
-	}
196
-	foreach ($_POST as $var => $val) {
197
-		if (!preg_match(_CONTEXTE_IGNORE_VARIABLES, $var)) {
198
-			$contexte[$var] = $val;
199
-		}
200
-	}
201
-
202
-	return $contexte;
190
+    $contexte = array();
191
+    foreach ($_GET as $var => $val) {
192
+        if (!preg_match(_CONTEXTE_IGNORE_VARIABLES, $var)) {
193
+            $contexte[$var] = $val;
194
+        }
195
+    }
196
+    foreach ($_POST as $var => $val) {
197
+        if (!preg_match(_CONTEXTE_IGNORE_VARIABLES, $var)) {
198
+            $contexte[$var] = $val;
199
+        }
200
+    }
201
+
202
+    return $contexte;
203 203
 }
204 204
 
205 205
 /**
@@ -210,25 +210,25 @@  discard block
 block discarded – undo
210 210
  * @return array
211 211
  */
212 212
 function calculer_contexte_implicite() {
213
-	static $notes = null;
214
-	if (is_null($notes)) {
215
-		$notes = charger_fonction('notes', 'inc', true);
216
-	}
217
-	$contexte_implicite = array(
218
-		'squelettes' => $GLOBALS['dossier_squelettes'], // devrait etre 'chemin' => $GLOBALS['path_sig'], ?
219
-		'host' => (isset($_SERVER['HTTP_HOST']) ? $_SERVER['HTTP_HOST'] : null),
220
-		'https' => (isset($_SERVER['HTTPS']) ? $_SERVER['HTTPS'] : ''),
221
-		'espace' => test_espace_prive(),
222
-		'marqueur' => (isset($GLOBALS['marqueur']) ? $GLOBALS['marqueur'] : ''),
223
-		'marqueur_skel' => (isset($GLOBALS['marqueur_skel']) ? $GLOBALS['marqueur_skel'] : ''),
224
-		'notes' => $notes ? $notes('', 'contexter_cache') : '',
225
-		'spip_version_code' => $GLOBALS['spip_version_code'],
226
-	);
227
-	if (isset($_SERVER['HTTP_X_FORWARDED_HOST'])) {
228
-		$contexte_implicite['host'] .= "|" . $_SERVER['HTTP_X_FORWARDED_HOST'];
229
-	}
230
-
231
-	return $contexte_implicite;
213
+    static $notes = null;
214
+    if (is_null($notes)) {
215
+        $notes = charger_fonction('notes', 'inc', true);
216
+    }
217
+    $contexte_implicite = array(
218
+        'squelettes' => $GLOBALS['dossier_squelettes'], // devrait etre 'chemin' => $GLOBALS['path_sig'], ?
219
+        'host' => (isset($_SERVER['HTTP_HOST']) ? $_SERVER['HTTP_HOST'] : null),
220
+        'https' => (isset($_SERVER['HTTPS']) ? $_SERVER['HTTPS'] : ''),
221
+        'espace' => test_espace_prive(),
222
+        'marqueur' => (isset($GLOBALS['marqueur']) ? $GLOBALS['marqueur'] : ''),
223
+        'marqueur_skel' => (isset($GLOBALS['marqueur_skel']) ? $GLOBALS['marqueur_skel'] : ''),
224
+        'notes' => $notes ? $notes('', 'contexter_cache') : '',
225
+        'spip_version_code' => $GLOBALS['spip_version_code'],
226
+    );
227
+    if (isset($_SERVER['HTTP_X_FORWARDED_HOST'])) {
228
+        $contexte_implicite['host'] .= "|" . $_SERVER['HTTP_X_FORWARDED_HOST'];
229
+    }
230
+
231
+    return $contexte_implicite;
232 232
 }
233 233
 
234 234
 //
@@ -238,50 +238,50 @@  discard block
 block discarded – undo
238 238
 // https://code.spip.net/@auto_content_type
239 239
 function auto_content_type($page) {
240 240
 
241
-	if (!isset($GLOBALS['flag_preserver'])) {
242
-		$GLOBALS['flag_preserver'] = ($page && preg_match("/header\s*\(\s*.content\-type:/isx",
243
-				$page['texte']) || (isset($page['entetes']['Content-Type'])));
244
-	}
241
+    if (!isset($GLOBALS['flag_preserver'])) {
242
+        $GLOBALS['flag_preserver'] = ($page && preg_match("/header\s*\(\s*.content\-type:/isx",
243
+                $page['texte']) || (isset($page['entetes']['Content-Type'])));
244
+    }
245 245
 }
246 246
 
247 247
 // https://code.spip.net/@inclure_page
248 248
 function inclure_page($fond, $contexte, $connect = '') {
249
-	static $cacher, $produire_page;
250
-
251
-	// enlever le fond de contexte inclus car sinon il prend la main
252
-	// dans les sous inclusions -> boucle infinie d'inclusion identique
253
-	// (cette precaution n'est probablement plus utile)
254
-	unset($contexte['fond']);
255
-	$page = array('contexte_implicite' => calculer_contexte_implicite());
256
-	$page['contexte_implicite']['cache'] = $fond;
257
-	if (is_null($cacher)) {
258
-		$cacher = charger_fonction('cacher', 'public', true);
259
-	}
260
-	// Les quatre derniers parametres sont modifies par la fonction:
261
-	// emplacement, validite, et, s'il est valide, contenu & age
262
-	if ($cacher) {
263
-		$res = $cacher($contexte, $use_cache, $chemin_cache, $page, $lastinclude);
264
-	} else {
265
-		$use_cache = -1;
266
-	}
267
-	// $res = message d'erreur : on sort de la
268
-	if ($res) {
269
-		return array('texte' => $res);
270
-	}
271
-
272
-	// Si use_cache ne vaut pas 0, la page doit etre calculee
273
-	// produire la page : peut mettre a jour $lastinclude
274
-	// le contexte_cache envoye a cacher() a ete conserve et est passe a produire
275
-	if ($use_cache) {
276
-		if (is_null($produire_page)) {
277
-			$produire_page = charger_fonction('produire_page', 'public');
278
-		}
279
-		$page = $produire_page($fond, $contexte, $use_cache, $chemin_cache, $contexte, $page, $lastinclude, $connect);
280
-	}
281
-	// dans tous les cas, mettre a jour $GLOBALS['lastmodified']
282
-	$GLOBALS['lastmodified'] = max((isset($GLOBALS['lastmodified']) ? $GLOBALS['lastmodified'] : 0), $lastinclude);
283
-
284
-	return $page;
249
+    static $cacher, $produire_page;
250
+
251
+    // enlever le fond de contexte inclus car sinon il prend la main
252
+    // dans les sous inclusions -> boucle infinie d'inclusion identique
253
+    // (cette precaution n'est probablement plus utile)
254
+    unset($contexte['fond']);
255
+    $page = array('contexte_implicite' => calculer_contexte_implicite());
256
+    $page['contexte_implicite']['cache'] = $fond;
257
+    if (is_null($cacher)) {
258
+        $cacher = charger_fonction('cacher', 'public', true);
259
+    }
260
+    // Les quatre derniers parametres sont modifies par la fonction:
261
+    // emplacement, validite, et, s'il est valide, contenu & age
262
+    if ($cacher) {
263
+        $res = $cacher($contexte, $use_cache, $chemin_cache, $page, $lastinclude);
264
+    } else {
265
+        $use_cache = -1;
266
+    }
267
+    // $res = message d'erreur : on sort de la
268
+    if ($res) {
269
+        return array('texte' => $res);
270
+    }
271
+
272
+    // Si use_cache ne vaut pas 0, la page doit etre calculee
273
+    // produire la page : peut mettre a jour $lastinclude
274
+    // le contexte_cache envoye a cacher() a ete conserve et est passe a produire
275
+    if ($use_cache) {
276
+        if (is_null($produire_page)) {
277
+            $produire_page = charger_fonction('produire_page', 'public');
278
+        }
279
+        $page = $produire_page($fond, $contexte, $use_cache, $chemin_cache, $contexte, $page, $lastinclude, $connect);
280
+    }
281
+    // dans tous les cas, mettre a jour $GLOBALS['lastmodified']
282
+    $GLOBALS['lastmodified'] = max((isset($GLOBALS['lastmodified']) ? $GLOBALS['lastmodified'] : 0), $lastinclude);
283
+
284
+    return $page;
285 285
 }
286 286
 
287 287
 /**
@@ -299,40 +299,40 @@  discard block
 block discarded – undo
299 299
  * @return array
300 300
  */
301 301
 function public_produire_page_dist(
302
-	$fond,
303
-	$contexte,
304
-	$use_cache,
305
-	$chemin_cache,
306
-	$contexte_cache,
307
-	&$page,
308
-	&$lastinclude,
309
-	$connect = ''
302
+    $fond,
303
+    $contexte,
304
+    $use_cache,
305
+    $chemin_cache,
306
+    $contexte_cache,
307
+    &$page,
308
+    &$lastinclude,
309
+    $connect = ''
310 310
 ) {
311
-	static $parametrer, $cacher;
312
-	if (!$parametrer) {
313
-		$parametrer = charger_fonction('parametrer', 'public');
314
-	}
315
-	$page = $parametrer($fond, $contexte, $chemin_cache, $connect);
316
-	// et on l'enregistre sur le disque
317
-	if ($chemin_cache
318
-		and $use_cache > -1
319
-		and is_array($page)
320
-		and count($page)
321
-		and isset($page['entetes']['X-Spip-Cache'])
322
-		and $page['entetes']['X-Spip-Cache'] > 0
323
-	) {
324
-		if (is_null($cacher)) {
325
-			$cacher = charger_fonction('cacher', 'public', true);
326
-		}
327
-		$lastinclude = time();
328
-		if ($cacher) {
329
-			$cacher($contexte_cache, $use_cache, $chemin_cache, $page, $lastinclude);
330
-		} else {
331
-			$use_cache = -1;
332
-		}
333
-	}
334
-
335
-	return $page;
311
+    static $parametrer, $cacher;
312
+    if (!$parametrer) {
313
+        $parametrer = charger_fonction('parametrer', 'public');
314
+    }
315
+    $page = $parametrer($fond, $contexte, $chemin_cache, $connect);
316
+    // et on l'enregistre sur le disque
317
+    if ($chemin_cache
318
+        and $use_cache > -1
319
+        and is_array($page)
320
+        and count($page)
321
+        and isset($page['entetes']['X-Spip-Cache'])
322
+        and $page['entetes']['X-Spip-Cache'] > 0
323
+    ) {
324
+        if (is_null($cacher)) {
325
+            $cacher = charger_fonction('cacher', 'public', true);
326
+        }
327
+        $lastinclude = time();
328
+        if ($cacher) {
329
+            $cacher($contexte_cache, $use_cache, $chemin_cache, $page, $lastinclude);
330
+        } else {
331
+            $use_cache = -1;
332
+        }
333
+    }
334
+
335
+    return $page;
336 336
 }
337 337
 
338 338
 // Fonction inseree par le compilateur dans le code compile.
@@ -346,14 +346,14 @@  discard block
 block discarded – undo
346 346
 // 4: langue
347 347
 
348 348
 function inserer_balise_dynamique($contexte_exec, $contexte_compil) {
349
-	arguments_balise_dyn_depuis_modele(null, 'reset');
350
-
351
-	if (!is_array($contexte_exec)) {
352
-		echo $contexte_exec;
353
-	} // message d'erreur etc
354
-	else {
355
-		inclure_balise_dynamique($contexte_exec, true, $contexte_compil);
356
-	}
349
+    arguments_balise_dyn_depuis_modele(null, 'reset');
350
+
351
+    if (!is_array($contexte_exec)) {
352
+        echo $contexte_exec;
353
+    } // message d'erreur etc
354
+    else {
355
+        inclure_balise_dynamique($contexte_exec, true, $contexte_compil);
356
+    }
357 357
 }
358 358
 
359 359
 /**
@@ -368,97 +368,97 @@  discard block
 block discarded – undo
368 368
  * @return string
369 369
  */
370 370
 function inclure_balise_dynamique($texte, $echo = true, $contexte_compil = array()) {
371
-	if (is_array($texte)) {
372
-
373
-		list($fond, $delainc, $contexte_inclus) = $texte;
374
-
375
-		// delais a l'ancienne, c'est pratiquement mort
376
-		$d = isset($GLOBALS['delais']) ? $GLOBALS['delais'] : null;
377
-		$GLOBALS['delais'] = $delainc;
378
-
379
-		$page = recuperer_fond($fond, $contexte_inclus,
380
-			array('trim' => false, 'raw' => true, 'compil' => $contexte_compil));
381
-
382
-		$texte = $page['texte'];
383
-
384
-		$GLOBALS['delais'] = $d;
385
-		// Faire remonter les entetes
386
-		if (is_array($page['entetes'])) {
387
-			// mais pas toutes
388
-			unset($page['entetes']['X-Spip-Cache']);
389
-			unset($page['entetes']['Content-Type']);
390
-			if (isset($GLOBALS['page']) and is_array($GLOBALS['page'])) {
391
-				if (!is_array($GLOBALS['page']['entetes'])) {
392
-					$GLOBALS['page']['entetes'] = array();
393
-				}
394
-				$GLOBALS['page']['entetes'] =
395
-					array_merge($GLOBALS['page']['entetes'], $page['entetes']);
396
-			}
397
-		}
398
-		// _pipelines au pluriel array('nom_pipeline' => $args...) avec une syntaxe permettant plusieurs pipelines
399
-		if (isset($page['contexte']['_pipelines'])
400
-			and is_array($page['contexte']['_pipelines'])
401
-			and count($page['contexte']['_pipelines'])
402
-		) {
403
-			foreach ($page['contexte']['_pipelines'] as $pipe => $args) {
404
-				$args['contexte'] = $page['contexte'];
405
-				unset($args['contexte']['_pipelines']); // par precaution, meme si le risque de boucle infinie est a priori nul
406
-				$texte = pipeline(
407
-					$pipe,
408
-					array(
409
-						'data' => $texte,
410
-						'args' => $args
411
-					),
412
-					false
413
-				);
414
-			}
415
-		}
416
-	}
417
-
418
-	if (defined('_VAR_MODE') and _VAR_MODE == 'debug') {
419
-		// compatibilite : avant on donnait le numero de ligne ou rien.
420
-		$ligne = intval(isset($contexte_compil[3]) ? $contexte_compil[3] : $contexte_compil);
421
-		$GLOBALS['debug_objets']['resultat'][$ligne] = $texte;
422
-	}
423
-	if ($echo) {
424
-		echo $texte;
425
-	} else {
426
-		return $texte;
427
-	}
371
+    if (is_array($texte)) {
372
+
373
+        list($fond, $delainc, $contexte_inclus) = $texte;
374
+
375
+        // delais a l'ancienne, c'est pratiquement mort
376
+        $d = isset($GLOBALS['delais']) ? $GLOBALS['delais'] : null;
377
+        $GLOBALS['delais'] = $delainc;
378
+
379
+        $page = recuperer_fond($fond, $contexte_inclus,
380
+            array('trim' => false, 'raw' => true, 'compil' => $contexte_compil));
381
+
382
+        $texte = $page['texte'];
383
+
384
+        $GLOBALS['delais'] = $d;
385
+        // Faire remonter les entetes
386
+        if (is_array($page['entetes'])) {
387
+            // mais pas toutes
388
+            unset($page['entetes']['X-Spip-Cache']);
389
+            unset($page['entetes']['Content-Type']);
390
+            if (isset($GLOBALS['page']) and is_array($GLOBALS['page'])) {
391
+                if (!is_array($GLOBALS['page']['entetes'])) {
392
+                    $GLOBALS['page']['entetes'] = array();
393
+                }
394
+                $GLOBALS['page']['entetes'] =
395
+                    array_merge($GLOBALS['page']['entetes'], $page['entetes']);
396
+            }
397
+        }
398
+        // _pipelines au pluriel array('nom_pipeline' => $args...) avec une syntaxe permettant plusieurs pipelines
399
+        if (isset($page['contexte']['_pipelines'])
400
+            and is_array($page['contexte']['_pipelines'])
401
+            and count($page['contexte']['_pipelines'])
402
+        ) {
403
+            foreach ($page['contexte']['_pipelines'] as $pipe => $args) {
404
+                $args['contexte'] = $page['contexte'];
405
+                unset($args['contexte']['_pipelines']); // par precaution, meme si le risque de boucle infinie est a priori nul
406
+                $texte = pipeline(
407
+                    $pipe,
408
+                    array(
409
+                        'data' => $texte,
410
+                        'args' => $args
411
+                    ),
412
+                    false
413
+                );
414
+            }
415
+        }
416
+    }
417
+
418
+    if (defined('_VAR_MODE') and _VAR_MODE == 'debug') {
419
+        // compatibilite : avant on donnait le numero de ligne ou rien.
420
+        $ligne = intval(isset($contexte_compil[3]) ? $contexte_compil[3] : $contexte_compil);
421
+        $GLOBALS['debug_objets']['resultat'][$ligne] = $texte;
422
+    }
423
+    if ($echo) {
424
+        echo $texte;
425
+    } else {
426
+        return $texte;
427
+    }
428 428
 }
429 429
 
430 430
 // https://code.spip.net/@message_page_indisponible
431 431
 function message_page_indisponible($page, $contexte) {
432
-	static $deja = false;
433
-	if ($deja) {
434
-		return "erreur";
435
-	}
436
-	$codes = array(
437
-		'404' => '404 Not Found',
438
-		'503' => '503 Service Unavailable',
439
-	);
440
-
441
-	$contexte['status'] = ($page !== false) ? '404' : '503';
442
-	$contexte['code'] = $codes[$contexte['status']];
443
-	$contexte['fond'] = '404'; // gere les 2 erreurs
444
-	if (!isset($contexte['lang'])) {
445
-		include_spip('inc/lang');
446
-		$contexte['lang'] = $GLOBALS['spip_lang'];
447
-	}
448
-
449
-	$deja = true;
450
-	// passer aux plugins qui peuvent decider d'une page d'erreur plus pertinent
451
-	// ex restriction d'acces => 401
452
-	$contexte = pipeline('page_indisponible', $contexte);
453
-
454
-	// produire la page d'erreur
455
-	$page = inclure_page($contexte['fond'], $contexte);
456
-	if (!$page) {
457
-		$page = inclure_page('404', $contexte);
458
-	}
459
-	$page['status'] = $contexte['status'];
460
-
461
-	return $page;
432
+    static $deja = false;
433
+    if ($deja) {
434
+        return "erreur";
435
+    }
436
+    $codes = array(
437
+        '404' => '404 Not Found',
438
+        '503' => '503 Service Unavailable',
439
+    );
440
+
441
+    $contexte['status'] = ($page !== false) ? '404' : '503';
442
+    $contexte['code'] = $codes[$contexte['status']];
443
+    $contexte['fond'] = '404'; // gere les 2 erreurs
444
+    if (!isset($contexte['lang'])) {
445
+        include_spip('inc/lang');
446
+        $contexte['lang'] = $GLOBALS['spip_lang'];
447
+    }
448
+
449
+    $deja = true;
450
+    // passer aux plugins qui peuvent decider d'une page d'erreur plus pertinent
451
+    // ex restriction d'acces => 401
452
+    $contexte = pipeline('page_indisponible', $contexte);
453
+
454
+    // produire la page d'erreur
455
+    $page = inclure_page($contexte['fond'], $contexte);
456
+    if (!$page) {
457
+        $page = inclure_page('404', $contexte);
458
+    }
459
+    $page['status'] = $contexte['status'];
460
+
461
+    return $page;
462 462
 }
463 463
 
464 464
 /**
@@ -470,46 +470,46 @@  discard block
 block discarded – undo
470 470
  * @return mixed
471 471
  */
472 472
 function arguments_balise_dyn_depuis_modele($arg, $operation = 'set') {
473
-	static $balise_dyn_appellee_par_modele = null;
474
-	switch ($operation) {
475
-		case 'read':
476
-			return $balise_dyn_appellee_par_modele;
477
-		case 'reset':
478
-			$balise_dyn_appellee_par_modele = null;
479
-			return null;
480
-		case 'set':
481
-		default:
482
-			$balise_dyn_appellee_par_modele = $arg;
483
-			return $arg;
484
-	}
473
+    static $balise_dyn_appellee_par_modele = null;
474
+    switch ($operation) {
475
+        case 'read':
476
+            return $balise_dyn_appellee_par_modele;
477
+        case 'reset':
478
+            $balise_dyn_appellee_par_modele = null;
479
+            return null;
480
+        case 'set':
481
+        default:
482
+            $balise_dyn_appellee_par_modele = $arg;
483
+            return $arg;
484
+    }
485 485
 }
486 486
 
487 487
 // temporairement ici : a mettre dans le futur inc/modeles
488 488
 // creer_contexte_de_modele('left', 'autostart=true', ...) renvoie un array()
489 489
 // https://code.spip.net/@creer_contexte_de_modele
490 490
 function creer_contexte_de_modele($args) {
491
-	$contexte = array();
492
-	foreach ($args as $var => $val) {
493
-		if (is_int($var)) { // argument pas formate
494
-			if (in_array($val, array('left', 'right', 'center'))) {
495
-				$var = 'align';
496
-				$contexte[$var] = $val;
497
-			} else {
498
-				$args = explode('=', $val);
499
-				if (count($args) >= 2) // Flashvars=arg1=machin&arg2=truc genere plus de deux args
500
-				{
501
-					$contexte[trim($args[0])] = substr($val, strlen($args[0]) + 1);
502
-				} else // notation abregee
503
-				{
504
-					$contexte[trim($val)] = trim($val);
505
-				}
506
-			}
507
-		} else {
508
-			$contexte[$var] = $val;
509
-		}
510
-	}
511
-
512
-	return $contexte;
491
+    $contexte = array();
492
+    foreach ($args as $var => $val) {
493
+        if (is_int($var)) { // argument pas formate
494
+            if (in_array($val, array('left', 'right', 'center'))) {
495
+                $var = 'align';
496
+                $contexte[$var] = $val;
497
+            } else {
498
+                $args = explode('=', $val);
499
+                if (count($args) >= 2) // Flashvars=arg1=machin&arg2=truc genere plus de deux args
500
+                {
501
+                    $contexte[trim($args[0])] = substr($val, strlen($args[0]) + 1);
502
+                } else // notation abregee
503
+                {
504
+                    $contexte[trim($val)] = trim($val);
505
+                }
506
+            }
507
+        } else {
508
+            $contexte[$var] = $val;
509
+        }
510
+    }
511
+
512
+    return $contexte;
513 513
 }
514 514
 
515 515
 /**
@@ -524,40 +524,40 @@  discard block
 block discarded – undo
524 524
  * @return string
525 525
  */
526 526
 function styliser_modele($modele, $id, $contexte=null) {
527
-	static $styliseurs = null;
528
-	if (is_null($styliseurs)) {
529
-		$tables_objet = lister_tables_objets_sql();
530
-		foreach ($tables_objet as $table => $desc) {
531
-			if (isset($desc['modeles']) and $desc['modeles']
532
-				and isset($desc['modeles_styliser']) and $desc['modeles_styliser']
533
-				and function_exists($desc['modeles_styliser'])) {
534
-				$primary = id_table_objet($table);
535
-				foreach ($desc['modeles'] as $m) {
536
-					$styliseurs[$m] = ['primary' => $primary, 'callback' => $desc['modeles_styliser']];
537
-				}
538
-			}
539
-		}
540
-	}
541
-
542
-	if (isset($styliseurs[$modele])) {
543
-		$styliseur = $styliseurs[$modele]['callback'];
544
-		if (is_null($id) and $contexte) {
545
-			if (isset($contexte['id'])) {
546
-				$id = $contexte['id'];
547
-			} elseif (isset($contexte[$primary])) {
548
-				$id = $contexte[$primary];
549
-			}
550
-		}
551
-		if (is_null($id)) {
552
-			$msg = "modeles/$modele : " . _T('zbug_parametres_inclus_incorrects', array('param' => "id/$primary"));
553
-			erreur_squelette($msg);
554
-			// on passe id=0 au routeur pour tomber sur le modele par defaut et eviter une seconde erreur sur un modele inexistant
555
-			$id = 0;
556
-		}
557
-		$modele = $styliseur($modele, $id);
558
-	}
559
-
560
-	return $modele;
527
+    static $styliseurs = null;
528
+    if (is_null($styliseurs)) {
529
+        $tables_objet = lister_tables_objets_sql();
530
+        foreach ($tables_objet as $table => $desc) {
531
+            if (isset($desc['modeles']) and $desc['modeles']
532
+                and isset($desc['modeles_styliser']) and $desc['modeles_styliser']
533
+                and function_exists($desc['modeles_styliser'])) {
534
+                $primary = id_table_objet($table);
535
+                foreach ($desc['modeles'] as $m) {
536
+                    $styliseurs[$m] = ['primary' => $primary, 'callback' => $desc['modeles_styliser']];
537
+                }
538
+            }
539
+        }
540
+    }
541
+
542
+    if (isset($styliseurs[$modele])) {
543
+        $styliseur = $styliseurs[$modele]['callback'];
544
+        if (is_null($id) and $contexte) {
545
+            if (isset($contexte['id'])) {
546
+                $id = $contexte['id'];
547
+            } elseif (isset($contexte[$primary])) {
548
+                $id = $contexte[$primary];
549
+            }
550
+        }
551
+        if (is_null($id)) {
552
+            $msg = "modeles/$modele : " . _T('zbug_parametres_inclus_incorrects', array('param' => "id/$primary"));
553
+            erreur_squelette($msg);
554
+            // on passe id=0 au routeur pour tomber sur le modele par defaut et eviter une seconde erreur sur un modele inexistant
555
+            $id = 0;
556
+        }
557
+        $modele = $styliseur($modele, $id);
558
+    }
559
+
560
+    return $modele;
561 561
 }
562 562
 
563 563
 /**
@@ -576,95 +576,95 @@  discard block
 block discarded – undo
576 576
  */
577 577
 function inclure_modele($type, $id, $params, $lien, $connect = '', $env = array()) {
578 578
 
579
-	static $compteur;
580
-	if (++$compteur > 10) {
581
-		return '';
582
-	} # ne pas boucler indefiniment
583
-
584
-	$type = strtolower($type);
585
-	$type = styliser_modele($type, $id);
586
-
587
-	$fond = $class = '';
588
-
589
-	$params = array_filter(explode('|', $params));
590
-	if ($params) {
591
-		$soustype = current($params);
592
-		$soustype = strtolower(trim($soustype));
593
-		if (in_array($soustype, array('left', 'right', 'center', 'ajax'))) {
594
-			$soustype = next($params);
595
-			$soustype = strtolower($soustype);
596
-		}
597
-
598
-		if (preg_match(',^[a-z0-9_]+$,', $soustype)) {
599
-			if (!trouve_modele($fond = ($type . '_' . $soustype))) {
600
-				$fond = '';
601
-				$class = $soustype;
602
-			}
603
-			// enlever le sous type des params
604
-			$params = array_diff($params, array($soustype));
605
-		}
606
-	}
607
-
608
-	// Si ca marche pas en precisant le sous-type, prendre le type
609
-	if (!$fond and !trouve_modele($fond = $type)) {
610
-		spip_log("Modele $type introuvable", _LOG_INFO_IMPORTANTE);
611
-
612
-		return false;
613
-	}
614
-	$fond = 'modeles/' . $fond;
615
-	// Creer le contexte
616
-	$contexte = $env;
617
-	$contexte['dir_racine'] = _DIR_RACINE; # eviter de mixer un cache racine et un cache ecrire (meme si pour l'instant les modeles ne sont pas caches, le resultat etant different il faut que le contexte en tienne compte
618
-
619
-	// Le numero du modele est mis dans l'environnement
620
-	// d'une part sous l'identifiant "id"
621
-	// et d'autre part sous l'identifiant de la cle primaire
622
-	// par la fonction id_table_objet,
623
-	// (<article1> =>> article =>> id_article =>> id_article=1)
624
-	$_id = id_table_objet($type);
625
-	$contexte['id'] = $contexte[$_id] = $id;
626
-
627
-	if (isset($class)) {
628
-		$contexte['class'] = $class;
629
-	}
630
-
631
-	// Si un lien a ete passe en parametre, ex: [<modele1>->url] ou [<modele1|title_du_lien{hreflang}->url]
632
-	if ($lien) {
633
-		# un eventuel guillemet (") sera reechappe par #ENV
634
-		$contexte['lien'] = str_replace("&quot;", '"', $lien['href']);
635
-		$contexte['lien_class'] = $lien['class'];
636
-		$contexte['lien_mime'] = $lien['mime'];
637
-		$contexte['lien_title'] = $lien['title'];
638
-		$contexte['lien_hreflang'] = $lien['hreflang'];
639
-	}
640
-
641
-	// Traiter les parametres
642
-	// par exemple : <img1|center>, <emb12|autostart=true> ou <doc1|lang=en>
643
-	$arg_list = creer_contexte_de_modele($params);
644
-	$contexte['args'] = $arg_list; // on passe la liste des arguments du modeles dans une variable args
645
-	$contexte = array_merge($contexte, $arg_list);
646
-
647
-	// Appliquer le modele avec le contexte
648
-	$retour = recuperer_fond($fond, $contexte, array(), $connect);
649
-
650
-	// Regarder si le modele tient compte des liens (il *doit* alors indiquer
651
-	// spip_lien_ok dans les classes de son conteneur de premier niveau ;
652
-	// sinon, s'il y a un lien, on l'ajoute classiquement
653
-	if (strstr(' ' . ($classes = extraire_attribut($retour, 'class')) . ' ',
654
-		'spip_lien_ok')) {
655
-		$retour = inserer_attribut($retour, 'class',
656
-			trim(str_replace(' spip_lien_ok ', ' ', " $classes ")));
657
-	} else {
658
-		if ($lien) {
659
-			$retour = "<a href='" . $lien['href'] . "' class='" . $lien['class'] . "'>" . $retour . "</a>";
660
-		}
661
-	}
662
-
663
-	$compteur--;
664
-
665
-	return (isset($arg_list['ajax']) and $arg_list['ajax'] == 'ajax')
666
-		? encoder_contexte_ajax($contexte, '', $retour)
667
-		: $retour;
579
+    static $compteur;
580
+    if (++$compteur > 10) {
581
+        return '';
582
+    } # ne pas boucler indefiniment
583
+
584
+    $type = strtolower($type);
585
+    $type = styliser_modele($type, $id);
586
+
587
+    $fond = $class = '';
588
+
589
+    $params = array_filter(explode('|', $params));
590
+    if ($params) {
591
+        $soustype = current($params);
592
+        $soustype = strtolower(trim($soustype));
593
+        if (in_array($soustype, array('left', 'right', 'center', 'ajax'))) {
594
+            $soustype = next($params);
595
+            $soustype = strtolower($soustype);
596
+        }
597
+
598
+        if (preg_match(',^[a-z0-9_]+$,', $soustype)) {
599
+            if (!trouve_modele($fond = ($type . '_' . $soustype))) {
600
+                $fond = '';
601
+                $class = $soustype;
602
+            }
603
+            // enlever le sous type des params
604
+            $params = array_diff($params, array($soustype));
605
+        }
606
+    }
607
+
608
+    // Si ca marche pas en precisant le sous-type, prendre le type
609
+    if (!$fond and !trouve_modele($fond = $type)) {
610
+        spip_log("Modele $type introuvable", _LOG_INFO_IMPORTANTE);
611
+
612
+        return false;
613
+    }
614
+    $fond = 'modeles/' . $fond;
615
+    // Creer le contexte
616
+    $contexte = $env;
617
+    $contexte['dir_racine'] = _DIR_RACINE; # eviter de mixer un cache racine et un cache ecrire (meme si pour l'instant les modeles ne sont pas caches, le resultat etant different il faut que le contexte en tienne compte
618
+
619
+    // Le numero du modele est mis dans l'environnement
620
+    // d'une part sous l'identifiant "id"
621
+    // et d'autre part sous l'identifiant de la cle primaire
622
+    // par la fonction id_table_objet,
623
+    // (<article1> =>> article =>> id_article =>> id_article=1)
624
+    $_id = id_table_objet($type);
625
+    $contexte['id'] = $contexte[$_id] = $id;
626
+
627
+    if (isset($class)) {
628
+        $contexte['class'] = $class;
629
+    }
630
+
631
+    // Si un lien a ete passe en parametre, ex: [<modele1>->url] ou [<modele1|title_du_lien{hreflang}->url]
632
+    if ($lien) {
633
+        # un eventuel guillemet (") sera reechappe par #ENV
634
+        $contexte['lien'] = str_replace("&quot;", '"', $lien['href']);
635
+        $contexte['lien_class'] = $lien['class'];
636
+        $contexte['lien_mime'] = $lien['mime'];
637
+        $contexte['lien_title'] = $lien['title'];
638
+        $contexte['lien_hreflang'] = $lien['hreflang'];
639
+    }
640
+
641
+    // Traiter les parametres
642
+    // par exemple : <img1|center>, <emb12|autostart=true> ou <doc1|lang=en>
643
+    $arg_list = creer_contexte_de_modele($params);
644
+    $contexte['args'] = $arg_list; // on passe la liste des arguments du modeles dans une variable args
645
+    $contexte = array_merge($contexte, $arg_list);
646
+
647
+    // Appliquer le modele avec le contexte
648
+    $retour = recuperer_fond($fond, $contexte, array(), $connect);
649
+
650
+    // Regarder si le modele tient compte des liens (il *doit* alors indiquer
651
+    // spip_lien_ok dans les classes de son conteneur de premier niveau ;
652
+    // sinon, s'il y a un lien, on l'ajoute classiquement
653
+    if (strstr(' ' . ($classes = extraire_attribut($retour, 'class')) . ' ',
654
+        'spip_lien_ok')) {
655
+        $retour = inserer_attribut($retour, 'class',
656
+            trim(str_replace(' spip_lien_ok ', ' ', " $classes ")));
657
+    } else {
658
+        if ($lien) {
659
+            $retour = "<a href='" . $lien['href'] . "' class='" . $lien['class'] . "'>" . $retour . "</a>";
660
+        }
661
+    }
662
+
663
+    $compteur--;
664
+
665
+    return (isset($arg_list['ajax']) and $arg_list['ajax'] == 'ajax')
666
+        ? encoder_contexte_ajax($contexte, '', $retour)
667
+        : $retour;
668 668
 }
669 669
 
670 670
 // Un inclure_page qui marche aussi pour l'espace prive
@@ -674,92 +674,92 @@  discard block
 block discarded – undo
674 674
 // https://code.spip.net/@evaluer_fond
675 675
 function evaluer_fond($fond, $contexte = array(), $connect = null) {
676 676
 
677
-	$page = inclure_page($fond, $contexte, $connect);
678
-
679
-	if (!$page) {
680
-		return $page;
681
-	}
682
-	// eval $page et affecte $res
683
-	include _ROOT_RESTREINT . "public/evaluer_page.php";
684
-
685
-	// Lever un drapeau (global) si le fond utilise #SESSION
686
-	// a destination de public/parametrer
687
-	// pour remonter vers les inclusions appelantes
688
-	// il faut bien lever ce drapeau apres avoir evalue le fond
689
-	// pour ne pas faire descendre le flag vers les inclusions appelees
690
-	if (isset($page['invalideurs'])
691
-		and isset($page['invalideurs']['session'])
692
-	) {
693
-		$GLOBALS['cache_utilise_session'] = $page['invalideurs']['session'];
694
-	}
695
-
696
-	return $page;
677
+    $page = inclure_page($fond, $contexte, $connect);
678
+
679
+    if (!$page) {
680
+        return $page;
681
+    }
682
+    // eval $page et affecte $res
683
+    include _ROOT_RESTREINT . "public/evaluer_page.php";
684
+
685
+    // Lever un drapeau (global) si le fond utilise #SESSION
686
+    // a destination de public/parametrer
687
+    // pour remonter vers les inclusions appelantes
688
+    // il faut bien lever ce drapeau apres avoir evalue le fond
689
+    // pour ne pas faire descendre le flag vers les inclusions appelees
690
+    if (isset($page['invalideurs'])
691
+        and isset($page['invalideurs']['session'])
692
+    ) {
693
+        $GLOBALS['cache_utilise_session'] = $page['invalideurs']['session'];
694
+    }
695
+
696
+    return $page;
697 697
 }
698 698
 
699 699
 
700 700
 // https://code.spip.net/@page_base_href
701 701
 function page_base_href(&$texte) {
702
-	static $set_html_base = null;
703
-	if (is_null($set_html_base)) {
704
-		if (!defined('_SET_HTML_BASE'))
705
-			// si la profondeur est superieure a 1
706
-			// est que ce n'est pas une url page ni une url action
707
-			// activer par defaut
708
-		{
709
-			$set_html_base = ((
710
-				$GLOBALS['profondeur_url'] >= (_DIR_RESTREINT ? 1 : 2)
711
-				and _request(_SPIP_PAGE) !== 'login'
712
-				and !_request('action')) ? true : false);
713
-		} else {
714
-			$set_html_base = _SET_HTML_BASE;
715
-		}
716
-	}
717
-
718
-	if ($set_html_base
719
-		and isset($GLOBALS['html']) and $GLOBALS['html']
720
-		and $GLOBALS['profondeur_url'] > 0
721
-		and ($poshead = strpos($texte, '</head>')) !== false
722
-	) {
723
-		$head = substr($texte, 0, $poshead);
724
-		$insert = false;
725
-		if (strpos($head, '<base') === false) {
726
-			$insert = true;
727
-		} else {
728
-			// si aucun <base ...> n'a de href c'est bon quand meme !
729
-			$insert = true;
730
-			include_spip('inc/filtres');
731
-			$bases = extraire_balises($head, 'base');
732
-			foreach ($bases as $base) {
733
-				if (extraire_attribut($base, 'href')) {
734
-					$insert = false;
735
-				}
736
-			}
737
-		}
738
-		if ($insert) {
739
-			include_spip('inc/filtres_mini');
740
-			// ajouter un base qui reglera tous les liens relatifs
741
-			$base = url_absolue('./');
742
-			$bbase = "\n<base href=\"$base\" />";
743
-			if (($pos = strpos($head, '<head>')) !== false) {
744
-				$head = substr_replace($head, $bbase, $pos + 6, 0);
745
-			} elseif (preg_match(",<head[^>]*>,i", $head, $r)) {
746
-				$head = str_replace($r[0], $r[0] . $bbase, $head);
747
-			}
748
-			$texte = $head . substr($texte, $poshead);
749
-			// gerer les ancres
750
-			$base = $_SERVER['REQUEST_URI'];
751
-			// pas de guillemets ni < dans l'URL qu'on insere dans le HTML
752
-			if (strpos($base,"'") or strpos($base,'"') or strpos($base,'<')) {
753
-				$base = str_replace(array("'",'"','<'),array("%27",'%22','%3C'), $base);
754
-			}
755
-			if (strpos($texte, "href='#") !== false) {
756
-				$texte = str_replace("href='#", "href='$base#", $texte);
757
-			}
758
-			if (strpos($texte, "href=\"#") !== false) {
759
-				$texte = str_replace("href=\"#", "href=\"$base#", $texte);
760
-			}
761
-		}
762
-	}
702
+    static $set_html_base = null;
703
+    if (is_null($set_html_base)) {
704
+        if (!defined('_SET_HTML_BASE'))
705
+            // si la profondeur est superieure a 1
706
+            // est que ce n'est pas une url page ni une url action
707
+            // activer par defaut
708
+        {
709
+            $set_html_base = ((
710
+                $GLOBALS['profondeur_url'] >= (_DIR_RESTREINT ? 1 : 2)
711
+                and _request(_SPIP_PAGE) !== 'login'
712
+                and !_request('action')) ? true : false);
713
+        } else {
714
+            $set_html_base = _SET_HTML_BASE;
715
+        }
716
+    }
717
+
718
+    if ($set_html_base
719
+        and isset($GLOBALS['html']) and $GLOBALS['html']
720
+        and $GLOBALS['profondeur_url'] > 0
721
+        and ($poshead = strpos($texte, '</head>')) !== false
722
+    ) {
723
+        $head = substr($texte, 0, $poshead);
724
+        $insert = false;
725
+        if (strpos($head, '<base') === false) {
726
+            $insert = true;
727
+        } else {
728
+            // si aucun <base ...> n'a de href c'est bon quand meme !
729
+            $insert = true;
730
+            include_spip('inc/filtres');
731
+            $bases = extraire_balises($head, 'base');
732
+            foreach ($bases as $base) {
733
+                if (extraire_attribut($base, 'href')) {
734
+                    $insert = false;
735
+                }
736
+            }
737
+        }
738
+        if ($insert) {
739
+            include_spip('inc/filtres_mini');
740
+            // ajouter un base qui reglera tous les liens relatifs
741
+            $base = url_absolue('./');
742
+            $bbase = "\n<base href=\"$base\" />";
743
+            if (($pos = strpos($head, '<head>')) !== false) {
744
+                $head = substr_replace($head, $bbase, $pos + 6, 0);
745
+            } elseif (preg_match(",<head[^>]*>,i", $head, $r)) {
746
+                $head = str_replace($r[0], $r[0] . $bbase, $head);
747
+            }
748
+            $texte = $head . substr($texte, $poshead);
749
+            // gerer les ancres
750
+            $base = $_SERVER['REQUEST_URI'];
751
+            // pas de guillemets ni < dans l'URL qu'on insere dans le HTML
752
+            if (strpos($base,"'") or strpos($base,'"') or strpos($base,'<')) {
753
+                $base = str_replace(array("'",'"','<'),array("%27",'%22','%3C'), $base);
754
+            }
755
+            if (strpos($texte, "href='#") !== false) {
756
+                $texte = str_replace("href='#", "href='$base#", $texte);
757
+            }
758
+            if (strpos($texte, "href=\"#") !== false) {
759
+                $texte = str_replace("href=\"#", "href=\"$base#", $texte);
760
+            }
761
+        }
762
+    }
763 763
 }
764 764
 
765 765
 
@@ -767,8 +767,8 @@  discard block
 block discarded – undo
767 767
 // et demarrent par X-Spip-...
768 768
 // https://code.spip.net/@envoyer_entetes
769 769
 function envoyer_entetes($entetes) {
770
-	foreach ($entetes as $k => $v) #	if (strncmp($k, 'X-Spip-', 7))
771
-	{
772
-		@header(strlen($v) ? "$k: $v" : $k);
773
-	}
770
+    foreach ($entetes as $k => $v) #	if (strncmp($k, 'X-Spip-', 7))
771
+    {
772
+        @header(strlen($v) ? "$k: $v" : $k);
773
+    }
774 774
 }
Please login to merge, or discard this patch.
ecrire/public/styliser.php 1 patch
Indentation   +124 added lines, -124 removed lines patch added patch discarded remove patch
@@ -20,7 +20,7 @@  discard block
 block discarded – undo
20 20
  **/
21 21
 
22 22
 if (!defined('_ECRIRE_INC_VERSION')) {
23
-	return;
23
+    return;
24 24
 }
25 25
 
26 26
 // Ce fichier doit imperativement definir la fonction ci-dessous:
@@ -39,59 +39,59 @@  discard block
 block discarded – undo
39 39
  * @return array
40 40
  */
41 41
 function public_styliser_dist($fond, $contexte, $lang = '', $connect = '') {
42
-	static $styliser_par_z;
43
-
44
-	// s'assurer que le fond est licite
45
-	// car il peut etre construit a partir d'une variable d'environnement
46
-	if (strpos($fond, "../") !== false or strncmp($fond, '/', 1) == 0) {
47
-		$fond = "404";
48
-	}
49
-
50
-	if (strncmp($fond, 'modeles/', 8) == 0) {
51
-		$modele = substr($fond, 8);
52
-		$modele = styliser_modele($modele, null, $contexte);
53
-		$fond = "modeles/$modele";
54
-	}
55
-
56
-	// Choisir entre $fond-dist.html, $fond=7.html, etc?
57
-	$id_rubrique = 0;
58
-	// Chercher le fond qui va servir de squelette
59
-	if ($r = quete_rubrique_fond($contexte)) {
60
-		list($id_rubrique, $lang) = $r;
61
-	}
62
-
63
-	// trouver un squelette du nom demande
64
-	// ne rien dire si on ne trouve pas, 
65
-	// c'est l'appelant qui sait comment gerer la situation
66
-	// ou les plugins qui feront mieux dans le pipeline
67
-	$squelette = trouver_fond($fond, "", true);
68
-	$ext = $squelette['extension'];
69
-
70
-	$flux = array(
71
-		'args' => array(
72
-			'id_rubrique' => $id_rubrique,
73
-			'ext' => $ext,
74
-			'fond' => $fond,
75
-			'lang' => $lang,
76
-			'contexte' => $contexte, // le style d'un objet peut dependre de lui meme
77
-			'connect' => $connect
78
-		),
79
-		'data' => $squelette['fond'],
80
-	);
81
-
82
-	if (test_espace_prive() or defined('_ZPIP')) {
83
-		if (!$styliser_par_z) {
84
-			$styliser_par_z = charger_fonction('styliser_par_z', 'public');
85
-		}
86
-		$flux = $styliser_par_z($flux);
87
-	}
88
-
89
-	$flux = styliser_par_objets($flux);
90
-
91
-	// pipeline styliser
92
-	$squelette = pipeline('styliser', $flux);
93
-
94
-	return array($squelette, $ext, $ext, "$squelette.$ext");
42
+    static $styliser_par_z;
43
+
44
+    // s'assurer que le fond est licite
45
+    // car il peut etre construit a partir d'une variable d'environnement
46
+    if (strpos($fond, "../") !== false or strncmp($fond, '/', 1) == 0) {
47
+        $fond = "404";
48
+    }
49
+
50
+    if (strncmp($fond, 'modeles/', 8) == 0) {
51
+        $modele = substr($fond, 8);
52
+        $modele = styliser_modele($modele, null, $contexte);
53
+        $fond = "modeles/$modele";
54
+    }
55
+
56
+    // Choisir entre $fond-dist.html, $fond=7.html, etc?
57
+    $id_rubrique = 0;
58
+    // Chercher le fond qui va servir de squelette
59
+    if ($r = quete_rubrique_fond($contexte)) {
60
+        list($id_rubrique, $lang) = $r;
61
+    }
62
+
63
+    // trouver un squelette du nom demande
64
+    // ne rien dire si on ne trouve pas, 
65
+    // c'est l'appelant qui sait comment gerer la situation
66
+    // ou les plugins qui feront mieux dans le pipeline
67
+    $squelette = trouver_fond($fond, "", true);
68
+    $ext = $squelette['extension'];
69
+
70
+    $flux = array(
71
+        'args' => array(
72
+            'id_rubrique' => $id_rubrique,
73
+            'ext' => $ext,
74
+            'fond' => $fond,
75
+            'lang' => $lang,
76
+            'contexte' => $contexte, // le style d'un objet peut dependre de lui meme
77
+            'connect' => $connect
78
+        ),
79
+        'data' => $squelette['fond'],
80
+    );
81
+
82
+    if (test_espace_prive() or defined('_ZPIP')) {
83
+        if (!$styliser_par_z) {
84
+            $styliser_par_z = charger_fonction('styliser_par_z', 'public');
85
+        }
86
+        $flux = $styliser_par_z($flux);
87
+    }
88
+
89
+    $flux = styliser_par_objets($flux);
90
+
91
+    // pipeline styliser
92
+    $squelette = pipeline('styliser', $flux);
93
+
94
+    return array($squelette, $ext, $ext, "$squelette.$ext");
95 95
 }
96 96
 
97 97
 /**
@@ -110,31 +110,31 @@  discard block
 block discarded – undo
110 110
  *     Données du pipeline styliser
111 111
  **/
112 112
 function styliser_par_objets($flux) {
113
-	if (test_espace_prive()
114
-		and !$squelette = $flux['data']
115
-		and strncmp($flux['args']['fond'], 'prive/objets/', 13) == 0
116
-		and $echafauder = charger_fonction('echafauder', 'prive', true)
117
-	) {
118
-		if (strncmp($flux['args']['fond'], 'prive/objets/liste/', 19) == 0) {
119
-			$table = table_objet(substr($flux['args']['fond'], 19));
120
-			$table_sql = table_objet_sql($table);
121
-			$objets = lister_tables_objets_sql();
122
-			if (isset($objets[$table_sql])) {
123
-				$flux['data'] = $echafauder($table, $table, $table_sql, "prive/objets/liste/objets", $flux['args']['ext']);
124
-			}
125
-		}
126
-		if (strncmp($flux['args']['fond'], 'prive/objets/contenu/', 21) == 0) {
127
-			$type = substr($flux['args']['fond'], 21);
128
-			$table = table_objet($type);
129
-			$table_sql = table_objet_sql($table);
130
-			$objets = lister_tables_objets_sql();
131
-			if (isset($objets[$table_sql])) {
132
-				$flux['data'] = $echafauder($type, $table, $table_sql, "prive/objets/contenu/objet", $flux['args']['ext']);
133
-			}
134
-		}
135
-	}
136
-
137
-	return $flux;
113
+    if (test_espace_prive()
114
+        and !$squelette = $flux['data']
115
+        and strncmp($flux['args']['fond'], 'prive/objets/', 13) == 0
116
+        and $echafauder = charger_fonction('echafauder', 'prive', true)
117
+    ) {
118
+        if (strncmp($flux['args']['fond'], 'prive/objets/liste/', 19) == 0) {
119
+            $table = table_objet(substr($flux['args']['fond'], 19));
120
+            $table_sql = table_objet_sql($table);
121
+            $objets = lister_tables_objets_sql();
122
+            if (isset($objets[$table_sql])) {
123
+                $flux['data'] = $echafauder($table, $table, $table_sql, "prive/objets/liste/objets", $flux['args']['ext']);
124
+            }
125
+        }
126
+        if (strncmp($flux['args']['fond'], 'prive/objets/contenu/', 21) == 0) {
127
+            $type = substr($flux['args']['fond'], 21);
128
+            $table = table_objet($type);
129
+            $table_sql = table_objet_sql($table);
130
+            $objets = lister_tables_objets_sql();
131
+            if (isset($objets[$table_sql])) {
132
+                $flux['data'] = $echafauder($type, $table, $table_sql, "prive/objets/contenu/objet", $flux['args']['ext']);
133
+            }
134
+        }
135
+    }
136
+
137
+    return $flux;
138 138
 }
139 139
 
140 140
 /**
@@ -150,49 +150,49 @@  discard block
 block discarded – undo
150 150
  * @return array
151 151
  */
152 152
 function quete_rubrique_fond($contexte) {
153
-	static $liste_objets = null;
154
-	static $quete = array();
155
-	if (is_null($liste_objets)) {
156
-		$liste_objets = array();
157
-		include_spip('inc/urls');
158
-		include_spip('public/quete');
159
-		$l = urls_liste_objets(false);
160
-		// placer la rubrique en tete des objets
161
-		$l = array_diff($l, array('rubrique'));
162
-		array_unshift($l, 'rubrique');
163
-		foreach ($l as $objet) {
164
-			$id = id_table_objet($objet);
165
-			if (!isset($liste_objets[$id])) {
166
-				$liste_objets[$id] = objet_type($objet, false);
167
-			}
168
-		}
169
-	}
170
-	$c = array_intersect_key($contexte, $liste_objets);
171
-	if (!count($c)) {
172
-		return false;
173
-	}
174
-
175
-	$c = array_map('intval', $c);
176
-	$s = serialize($c);
177
-	if (isset($quete[$s])) {
178
-		return $quete[$s];
179
-	}
180
-
181
-	if (isset($c['id_rubrique']) and $r = $c['id_rubrique']) {
182
-		unset($c['id_rubrique']);
183
-		$c = array('id_rubrique' => $r) + $c;
184
-	}
185
-
186
-	foreach ($c as $_id => $id) {
187
-		if ($id
188
-			and $row = quete_parent_lang(table_objet_sql($liste_objets[$_id]), $id)
189
-		) {
190
-			$lang = isset($row['lang']) ? $row['lang'] : '';
191
-			if ($_id == 'id_rubrique' or (isset($row['id_rubrique']) and $id = $row['id_rubrique'])) {
192
-				return $quete[$s] = array($id, $lang);
193
-			}
194
-		}
195
-	}
196
-
197
-	return $quete[$s] = false;
153
+    static $liste_objets = null;
154
+    static $quete = array();
155
+    if (is_null($liste_objets)) {
156
+        $liste_objets = array();
157
+        include_spip('inc/urls');
158
+        include_spip('public/quete');
159
+        $l = urls_liste_objets(false);
160
+        // placer la rubrique en tete des objets
161
+        $l = array_diff($l, array('rubrique'));
162
+        array_unshift($l, 'rubrique');
163
+        foreach ($l as $objet) {
164
+            $id = id_table_objet($objet);
165
+            if (!isset($liste_objets[$id])) {
166
+                $liste_objets[$id] = objet_type($objet, false);
167
+            }
168
+        }
169
+    }
170
+    $c = array_intersect_key($contexte, $liste_objets);
171
+    if (!count($c)) {
172
+        return false;
173
+    }
174
+
175
+    $c = array_map('intval', $c);
176
+    $s = serialize($c);
177
+    if (isset($quete[$s])) {
178
+        return $quete[$s];
179
+    }
180
+
181
+    if (isset($c['id_rubrique']) and $r = $c['id_rubrique']) {
182
+        unset($c['id_rubrique']);
183
+        $c = array('id_rubrique' => $r) + $c;
184
+    }
185
+
186
+    foreach ($c as $_id => $id) {
187
+        if ($id
188
+            and $row = quete_parent_lang(table_objet_sql($liste_objets[$_id]), $id)
189
+        ) {
190
+            $lang = isset($row['lang']) ? $row['lang'] : '';
191
+            if ($_id == 'id_rubrique' or (isset($row['id_rubrique']) and $id = $row['id_rubrique'])) {
192
+                return $quete[$s] = array($id, $lang);
193
+            }
194
+        }
195
+    }
196
+
197
+    return $quete[$s] = false;
198 198
 }
Please login to merge, or discard this patch.
ecrire/balise/logo_.php 3 patches
Doc Comments   +1 added lines, -1 removed lines patch added patch discarded remove patch
@@ -148,7 +148,7 @@
 block discarded – undo
148 148
  * @param int $fichier
149 149
  *     - -1 pour retourner juste le chemin de l'image
150 150
  *     - 0 pour retourner le code HTML de l'image
151
- * @param string $lien
151
+ * @param string $_lien
152 152
  *     Lien pour encadrer l'image avec si présent
153 153
  * @param Champ $p
154 154
  *     Pile au niveau de la balise
Please login to merge, or discard this patch.
Indentation   +95 added lines, -95 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
 
@@ -54,84 +54,84 @@  discard block
 block discarded – undo
54 54
  */
55 55
 function balise_LOGO__dist($p) {
56 56
 
57
-	preg_match(',^LOGO_([A-Z_]+?)(|_NORMAL|_SURVOL|_RUBRIQUE)$,i', $p->nom_champ, $regs);
58
-	$type = strtolower($regs[1]);
59
-	$suite_logo = $regs[2];
60
-
61
-	// cas de #LOGO_SITE_SPIP
62
-	if ($type == 'site_spip') {
63
-		$type = 'site';
64
-		$_id_objet = "\"'0'\"";
65
-	}
66
-
67
-	$id_objet = id_table_objet($type);
68
-	if (!isset($_id_objet)) {
69
-		$_id_objet = champ_sql($id_objet, $p);
70
-	}
71
-
72
-	$fichier = ($p->etoile === '**') ? -1 : 0;
73
-	$coord = array();
74
-	$align = $lien = '';
75
-	$mode_logo = '';
76
-
77
-	if ($p->param and !$p->param[0][0]) {
78
-		$params = $p->param[0];
79
-		array_shift($params);
80
-		foreach ($params as $a) {
81
-			if ($a[0]->type === 'texte') {
82
-				$n = $a[0]->texte;
83
-				if (is_numeric($n)) {
84
-					$coord[] = $n;
85
-				} elseif (in_array($n, array('top', 'left', 'right', 'center', 'bottom'))) {
86
-					$align = $n;
87
-				} elseif (in_array($n, array('auto', 'icone', 'apercu', 'vignette'))) {
88
-					$mode_logo = $n;
89
-				}
90
-			} else {
91
-				$lien = calculer_liste($a, $p->descr, $p->boucles, $p->id_boucle);
92
-			}
93
-		}
94
-	}
95
-
96
-	$coord_x = !$coord ? 0 : intval(array_shift($coord));
97
-	$coord_y = !$coord ? 0 : intval(array_shift($coord));
98
-
99
-	if ($p->etoile === '*') {
100
-		include_spip('balise/url_');
101
-		$lien = generer_generer_url_arg($type, $p, $_id_objet);
102
-	}
103
-
104
-	$connect = $p->id_boucle ? $p->boucles[$p->id_boucle]->sql_serveur : '';
105
-	if ($type == 'document') {
106
-		$qconnect = _q($connect);
107
-		$doc = "quete_document($_id_objet, $qconnect)";
108
-		if ($fichier) {
109
-			$code = "quete_logo_file($doc, $qconnect)";
110
-		} else {
111
-			$code = "quete_logo_document($doc, " . ($lien ? $lien : "''") . ", '$align', '$mode_logo', $coord_x, $coord_y, $qconnect)";
112
-		}
113
-		// (x=non-faux ? y : '') pour affecter x en retournant y
114
-		if ($p->descr['documents']) {
115
-			$code = '(($doublons["documents"] .= ",". '
116
-				. $_id_objet
117
-				. ") ? $code : '')";
118
-		}
119
-	} elseif ($connect) {
120
-		$code = "''";
121
-		spip_log('Les logos distants ne sont pas prevus');
122
-	} else {
123
-		$code = logo_survol($id_objet, $_id_objet, $type, $align, $fichier, $lien, $p, $suite_logo);
124
-	}
125
-
126
-	// demande de reduction sur logo avec ecriture spip 2.1 : #LOGO_xxx{200, 0}
127
-	if ($coord_x or $coord_y) {
128
-		$code = "filtrer('image_graver',filtrer('image_reduire'," . $code . ", '$coord_x', '$coord_y'))";
129
-	}
130
-
131
-	$p->code = $code;
132
-	$p->interdire_scripts = false;
133
-
134
-	return $p;
57
+    preg_match(',^LOGO_([A-Z_]+?)(|_NORMAL|_SURVOL|_RUBRIQUE)$,i', $p->nom_champ, $regs);
58
+    $type = strtolower($regs[1]);
59
+    $suite_logo = $regs[2];
60
+
61
+    // cas de #LOGO_SITE_SPIP
62
+    if ($type == 'site_spip') {
63
+        $type = 'site';
64
+        $_id_objet = "\"'0'\"";
65
+    }
66
+
67
+    $id_objet = id_table_objet($type);
68
+    if (!isset($_id_objet)) {
69
+        $_id_objet = champ_sql($id_objet, $p);
70
+    }
71
+
72
+    $fichier = ($p->etoile === '**') ? -1 : 0;
73
+    $coord = array();
74
+    $align = $lien = '';
75
+    $mode_logo = '';
76
+
77
+    if ($p->param and !$p->param[0][0]) {
78
+        $params = $p->param[0];
79
+        array_shift($params);
80
+        foreach ($params as $a) {
81
+            if ($a[0]->type === 'texte') {
82
+                $n = $a[0]->texte;
83
+                if (is_numeric($n)) {
84
+                    $coord[] = $n;
85
+                } elseif (in_array($n, array('top', 'left', 'right', 'center', 'bottom'))) {
86
+                    $align = $n;
87
+                } elseif (in_array($n, array('auto', 'icone', 'apercu', 'vignette'))) {
88
+                    $mode_logo = $n;
89
+                }
90
+            } else {
91
+                $lien = calculer_liste($a, $p->descr, $p->boucles, $p->id_boucle);
92
+            }
93
+        }
94
+    }
95
+
96
+    $coord_x = !$coord ? 0 : intval(array_shift($coord));
97
+    $coord_y = !$coord ? 0 : intval(array_shift($coord));
98
+
99
+    if ($p->etoile === '*') {
100
+        include_spip('balise/url_');
101
+        $lien = generer_generer_url_arg($type, $p, $_id_objet);
102
+    }
103
+
104
+    $connect = $p->id_boucle ? $p->boucles[$p->id_boucle]->sql_serveur : '';
105
+    if ($type == 'document') {
106
+        $qconnect = _q($connect);
107
+        $doc = "quete_document($_id_objet, $qconnect)";
108
+        if ($fichier) {
109
+            $code = "quete_logo_file($doc, $qconnect)";
110
+        } else {
111
+            $code = "quete_logo_document($doc, " . ($lien ? $lien : "''") . ", '$align', '$mode_logo', $coord_x, $coord_y, $qconnect)";
112
+        }
113
+        // (x=non-faux ? y : '') pour affecter x en retournant y
114
+        if ($p->descr['documents']) {
115
+            $code = '(($doublons["documents"] .= ",". '
116
+                . $_id_objet
117
+                . ") ? $code : '')";
118
+        }
119
+    } elseif ($connect) {
120
+        $code = "''";
121
+        spip_log('Les logos distants ne sont pas prevus');
122
+    } else {
123
+        $code = logo_survol($id_objet, $_id_objet, $type, $align, $fichier, $lien, $p, $suite_logo);
124
+    }
125
+
126
+    // demande de reduction sur logo avec ecriture spip 2.1 : #LOGO_xxx{200, 0}
127
+    if ($coord_x or $coord_y) {
128
+        $code = "filtrer('image_graver',filtrer('image_reduire'," . $code . ", '$coord_x', '$coord_y'))";
129
+    }
130
+
131
+    $p->code = $code;
132
+    $p->interdire_scripts = false;
133
+
134
+    return $p;
135 135
 }
136 136
 
137 137
 /**
@@ -158,20 +158,20 @@  discard block
 block discarded – undo
158 158
  *     Code compilé retournant le chemin du logo ou le code HTML du logo.
159 159
  **/
160 160
 function logo_survol($id_objet, $_id_objet, $type, $align, $fichier, $_lien, $p, $suite) {
161
-	$code = "quete_logo('$id_objet', '" .
162
-		(($suite == '_SURVOL') ? 'off' :
163
-			(($suite == '_NORMAL') ? 'on' : 'ON')) .
164
-		"', $_id_objet," .
165
-		(($suite == '_RUBRIQUE') ?
166
-			champ_sql('id_rubrique', $p) :
167
-			(($type == 'rubrique') ? "quete_parent($_id_objet)" : "''")) .
168
-		', ' . intval($fichier) . ')';
169
-
170
-	if ($fichier) {
171
-		return $code;
172
-	}
173
-
174
-	$align = preg_replace(",\W,", "", $align);
175
-
176
-	return "quete_html_logo($code, '$align', " .($_lien ? $_lien : "''") .")";
161
+    $code = "quete_logo('$id_objet', '" .
162
+        (($suite == '_SURVOL') ? 'off' :
163
+            (($suite == '_NORMAL') ? 'on' : 'ON')) .
164
+        "', $_id_objet," .
165
+        (($suite == '_RUBRIQUE') ?
166
+            champ_sql('id_rubrique', $p) :
167
+            (($type == 'rubrique') ? "quete_parent($_id_objet)" : "''")) .
168
+        ', ' . intval($fichier) . ')';
169
+
170
+    if ($fichier) {
171
+        return $code;
172
+    }
173
+
174
+    $align = preg_replace(",\W,", "", $align);
175
+
176
+    return "quete_html_logo($code, '$align', " .($_lien ? $_lien : "''") .")";
177 177
 }
Please login to merge, or discard this patch.
Spacing   +8 added lines, -10 removed lines patch added patch discarded remove patch
@@ -108,7 +108,7 @@  discard block
 block discarded – undo
108 108
 		if ($fichier) {
109 109
 			$code = "quete_logo_file($doc, $qconnect)";
110 110
 		} else {
111
-			$code = "quete_logo_document($doc, " . ($lien ? $lien : "''") . ", '$align', '$mode_logo', $coord_x, $coord_y, $qconnect)";
111
+			$code = "quete_logo_document($doc, ".($lien ? $lien : "''").", '$align', '$mode_logo', $coord_x, $coord_y, $qconnect)";
112 112
 		}
113 113
 		// (x=non-faux ? y : '') pour affecter x en retournant y
114 114
 		if ($p->descr['documents']) {
@@ -125,7 +125,7 @@  discard block
 block discarded – undo
125 125
 
126 126
 	// demande de reduction sur logo avec ecriture spip 2.1 : #LOGO_xxx{200, 0}
127 127
 	if ($coord_x or $coord_y) {
128
-		$code = "filtrer('image_graver',filtrer('image_reduire'," . $code . ", '$coord_x', '$coord_y'))";
128
+		$code = "filtrer('image_graver',filtrer('image_reduire',".$code.", '$coord_x', '$coord_y'))";
129 129
 	}
130 130
 
131 131
 	$p->code = $code;
@@ -158,14 +158,12 @@  discard block
 block discarded – undo
158 158
  *     Code compilé retournant le chemin du logo ou le code HTML du logo.
159 159
  **/
160 160
 function logo_survol($id_objet, $_id_objet, $type, $align, $fichier, $_lien, $p, $suite) {
161
-	$code = "quete_logo('$id_objet', '" .
162
-		(($suite == '_SURVOL') ? 'off' :
163
-			(($suite == '_NORMAL') ? 'on' : 'ON')) .
164
-		"', $_id_objet," .
161
+	$code = "quete_logo('$id_objet', '".
162
+		(($suite == '_SURVOL') ? 'off' : (($suite == '_NORMAL') ? 'on' : 'ON')).
163
+		"', $_id_objet,".
165 164
 		(($suite == '_RUBRIQUE') ?
166
-			champ_sql('id_rubrique', $p) :
167
-			(($type == 'rubrique') ? "quete_parent($_id_objet)" : "''")) .
168
-		', ' . intval($fichier) . ')';
165
+			champ_sql('id_rubrique', $p) : (($type == 'rubrique') ? "quete_parent($_id_objet)" : "''")).
166
+		', '.intval($fichier).')';
169 167
 
170 168
 	if ($fichier) {
171 169
 		return $code;
@@ -173,5 +171,5 @@  discard block
 block discarded – undo
173 171
 
174 172
 	$align = preg_replace(",\W,", "", $align);
175 173
 
176
-	return "quete_html_logo($code, '$align', " .($_lien ? $_lien : "''") .")";
174
+	return "quete_html_logo($code, '$align', ".($_lien ? $_lien : "''").")";
177 175
 }
Please login to merge, or discard this patch.
ecrire/auth/spip.php 2 patches
Indentation   +260 added lines, -260 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
 /**
@@ -32,78 +32,78 @@  discard block
 block discarded – undo
32 32
  */
33 33
 function auth_spip_dist($login, $pass, $serveur = '', $phpauth = false) {
34 34
 
35
-	// retrouver le login
36
-	$login = auth_spip_retrouver_login($login);
37
-	// login inconnu, n'allons pas plus loin
38
-	if (!$login) {
39
-		return array();
40
-	}
41
-
42
-	$md5pass = "";
43
-	$shapass = $shanext = "";
44
-
45
-	if (preg_match(",^\{([0-9a-f]{64});([0-9a-f]{64})\}$,i", $pass, $regs)) {
46
-		$shapass = $regs[1];
47
-		$shanext = $regs[2];
48
-	} // compat avec une base mixte md5/sha256 : le js a envoye les 2 hash
49
-	elseif (preg_match(",^\{([0-9a-f]{64});([0-9a-f]{64});([0-9a-f]{32});([0-9a-f]{32})\}$,i", $pass, $regs)) {
50
-		$shapass = $regs[1];
51
-		$shanext = $regs[2];
52
-		$md5pass = $regs[3];
53
-		//$md5next = $regs[4];
54
-	} // si envoi non crypte, crypter maintenant
55
-	elseif ($pass) {
56
-		$row = sql_fetsel("alea_actuel, alea_futur", "spip_auteurs", "login=" . sql_quote($login, $serveur, 'text'), '', '',
57
-			'', '', $serveur);
58
-
59
-		if ($row) {
60
-			include_spip('auth/sha256.inc');
61
-			$shapass = spip_sha256($row['alea_actuel'] . $pass);
62
-			$shanext = spip_sha256($row['alea_futur'] . $pass);
63
-			$md5pass = md5($row['alea_actuel'] . $pass);
64
-		}
65
-	}
66
-
67
-	// login inexistant ou mot de passe vide
68
-	if (!$shapass and !$md5pass) {
69
-		return array();
70
-	}
71
-
72
-	$row = sql_fetsel("*", "spip_auteurs",
73
-		"login=" . sql_quote($login, $serveur, 'text') . " AND pass=" . sql_quote($shapass, $serveur,
74
-			'text') . " AND statut<>'5poubelle'", '', '', '', '', $serveur);
75
-
76
-	// compat avec les anciennes bases en md5
77
-	if (!$row and $md5pass) {
78
-		$row = sql_fetsel("*", "spip_auteurs",
79
-			"login=" . sql_quote($login, $serveur, 'text') . " AND pass=" . sql_quote($md5pass, $serveur,
80
-				'text') . " AND statut<>'5poubelle'", '', '', '', '', $serveur);
81
-	}
82
-
83
-	// login/mot de passe incorrect
84
-	if (!$row) {
85
-		return array();
86
-	}
87
-
88
-	// fait tourner le codage du pass dans la base
89
-	// sauf si phpauth : cela reviendrait a changer l'alea a chaque hit, et aucune action verifiable par securiser_action()
90
-	if ($shanext and !$phpauth) {
91
-
92
-		include_spip('inc/acces'); // pour creer_uniqid
93
-		@sql_update('spip_auteurs', array(
94
-			'alea_actuel' => 'alea_futur',
95
-			'pass' => sql_quote($shanext, $serveur, 'text'),
96
-			'alea_futur' => sql_quote(creer_uniqid(), $serveur, 'text')
97
-		), "id_auteur=" . $row['id_auteur'] . ' AND pass IN (' . sql_quote($shapass, $serveur,
98
-				'text') . ', ' . sql_quote($md5pass, $serveur, 'text') . ')', '', $serveur);
99
-		// En profiter pour verifier la securite de tmp/
100
-		// Si elle ne fonctionne pas a l'installation, prevenir
101
-		if (!verifier_htaccess(_DIR_TMP) and defined('_ECRIRE_INSTALL')) {
102
-			return false;
103
-		}
104
-	}
105
-
106
-	return $row;
35
+    // retrouver le login
36
+    $login = auth_spip_retrouver_login($login);
37
+    // login inconnu, n'allons pas plus loin
38
+    if (!$login) {
39
+        return array();
40
+    }
41
+
42
+    $md5pass = "";
43
+    $shapass = $shanext = "";
44
+
45
+    if (preg_match(",^\{([0-9a-f]{64});([0-9a-f]{64})\}$,i", $pass, $regs)) {
46
+        $shapass = $regs[1];
47
+        $shanext = $regs[2];
48
+    } // compat avec une base mixte md5/sha256 : le js a envoye les 2 hash
49
+    elseif (preg_match(",^\{([0-9a-f]{64});([0-9a-f]{64});([0-9a-f]{32});([0-9a-f]{32})\}$,i", $pass, $regs)) {
50
+        $shapass = $regs[1];
51
+        $shanext = $regs[2];
52
+        $md5pass = $regs[3];
53
+        //$md5next = $regs[4];
54
+    } // si envoi non crypte, crypter maintenant
55
+    elseif ($pass) {
56
+        $row = sql_fetsel("alea_actuel, alea_futur", "spip_auteurs", "login=" . sql_quote($login, $serveur, 'text'), '', '',
57
+            '', '', $serveur);
58
+
59
+        if ($row) {
60
+            include_spip('auth/sha256.inc');
61
+            $shapass = spip_sha256($row['alea_actuel'] . $pass);
62
+            $shanext = spip_sha256($row['alea_futur'] . $pass);
63
+            $md5pass = md5($row['alea_actuel'] . $pass);
64
+        }
65
+    }
66
+
67
+    // login inexistant ou mot de passe vide
68
+    if (!$shapass and !$md5pass) {
69
+        return array();
70
+    }
71
+
72
+    $row = sql_fetsel("*", "spip_auteurs",
73
+        "login=" . sql_quote($login, $serveur, 'text') . " AND pass=" . sql_quote($shapass, $serveur,
74
+            'text') . " AND statut<>'5poubelle'", '', '', '', '', $serveur);
75
+
76
+    // compat avec les anciennes bases en md5
77
+    if (!$row and $md5pass) {
78
+        $row = sql_fetsel("*", "spip_auteurs",
79
+            "login=" . sql_quote($login, $serveur, 'text') . " AND pass=" . sql_quote($md5pass, $serveur,
80
+                'text') . " AND statut<>'5poubelle'", '', '', '', '', $serveur);
81
+    }
82
+
83
+    // login/mot de passe incorrect
84
+    if (!$row) {
85
+        return array();
86
+    }
87
+
88
+    // fait tourner le codage du pass dans la base
89
+    // sauf si phpauth : cela reviendrait a changer l'alea a chaque hit, et aucune action verifiable par securiser_action()
90
+    if ($shanext and !$phpauth) {
91
+
92
+        include_spip('inc/acces'); // pour creer_uniqid
93
+        @sql_update('spip_auteurs', array(
94
+            'alea_actuel' => 'alea_futur',
95
+            'pass' => sql_quote($shanext, $serveur, 'text'),
96
+            'alea_futur' => sql_quote(creer_uniqid(), $serveur, 'text')
97
+        ), "id_auteur=" . $row['id_auteur'] . ' AND pass IN (' . sql_quote($shapass, $serveur,
98
+                'text') . ', ' . sql_quote($md5pass, $serveur, 'text') . ')', '', $serveur);
99
+        // En profiter pour verifier la securite de tmp/
100
+        // Si elle ne fonctionne pas a l'installation, prevenir
101
+        if (!verifier_htaccess(_DIR_TMP) and defined('_ECRIRE_INSTALL')) {
102
+            return false;
103
+        }
104
+    }
105
+
106
+    return $row;
107 107
 }
108 108
 
109 109
 /**
@@ -113,41 +113,41 @@  discard block
 block discarded – undo
113 113
  * @return array
114 114
  */
115 115
 function auth_spip_formulaire_login($flux) {
116
-	// faut il encore envoyer md5 ?
117
-	// on regarde si il reste des pass md5 en base pour des auteurs en statut pas poubelle
118
-	// les hash md5 ont une longueur 32, les sha 64
119
-	// en evitant une requete sql a chaque affichage du formulaire login sans session
120
-	// (perf issue pour les sites qui mettent le formulaire de login sur la home)
121
-	$compat_md5 = false;
122
-	if (!isset($GLOBALS['meta']['sha_256_only']) or _request('var_mode')) {
123
-		$compat_md5 = sql_countsel("spip_auteurs", "length(pass)=32 AND statut<>'poubelle'");
124
-		if ($compat_md5 and isset($GLOBALS['meta']['sha_256_only'])) {
125
-			effacer_meta('sha_256_only');
126
-		}
127
-		if (!$compat_md5) {
128
-			ecrire_meta('sha_256_only', 'oui');
129
-		}
130
-	}
131
-
132
-	// javascript qui gere la securite du login en evitant de faire circuler le pass en clair
133
-	$flux['data'] .=
134
-		($compat_md5 ? '<script type="text/javascript" src="' . _DIR_JAVASCRIPT . 'md5.js"></script>' : '')
135
-		. '<script type="text/javascript" src="' . _DIR_JAVASCRIPT . 'login-sha-min.js"></script>'
136
-		. '<script type="text/javascript">/*<![CDATA[*/'
137
-		. "var login_info={'alea_actuel':'" . $flux['args']['contexte']['_alea_actuel'] . "',"
138
-		. "'alea_futur':'" . $flux['args']['contexte']['_alea_futur'] . "',"
139
-		. "'login':'" . $flux['args']['contexte']['var_login'] . "',"
140
-		. "'page_auteur': '" . generer_url_public('informer_auteur') . "',"
141
-		. "'informe_auteur_en_cours':false,"
142
-		. "'attente_informe':0,"
143
-		. "'compat_md5':" . ($compat_md5 ? "true" : "false") . "};"
144
-		. "jQuery(function(){
116
+    // faut il encore envoyer md5 ?
117
+    // on regarde si il reste des pass md5 en base pour des auteurs en statut pas poubelle
118
+    // les hash md5 ont une longueur 32, les sha 64
119
+    // en evitant une requete sql a chaque affichage du formulaire login sans session
120
+    // (perf issue pour les sites qui mettent le formulaire de login sur la home)
121
+    $compat_md5 = false;
122
+    if (!isset($GLOBALS['meta']['sha_256_only']) or _request('var_mode')) {
123
+        $compat_md5 = sql_countsel("spip_auteurs", "length(pass)=32 AND statut<>'poubelle'");
124
+        if ($compat_md5 and isset($GLOBALS['meta']['sha_256_only'])) {
125
+            effacer_meta('sha_256_only');
126
+        }
127
+        if (!$compat_md5) {
128
+            ecrire_meta('sha_256_only', 'oui');
129
+        }
130
+    }
131
+
132
+    // javascript qui gere la securite du login en evitant de faire circuler le pass en clair
133
+    $flux['data'] .=
134
+        ($compat_md5 ? '<script type="text/javascript" src="' . _DIR_JAVASCRIPT . 'md5.js"></script>' : '')
135
+        . '<script type="text/javascript" src="' . _DIR_JAVASCRIPT . 'login-sha-min.js"></script>'
136
+        . '<script type="text/javascript">/*<![CDATA[*/'
137
+        . "var login_info={'alea_actuel':'" . $flux['args']['contexte']['_alea_actuel'] . "',"
138
+        . "'alea_futur':'" . $flux['args']['contexte']['_alea_futur'] . "',"
139
+        . "'login':'" . $flux['args']['contexte']['var_login'] . "',"
140
+        . "'page_auteur': '" . generer_url_public('informer_auteur') . "',"
141
+        . "'informe_auteur_en_cours':false,"
142
+        . "'attente_informe':0,"
143
+        . "'compat_md5':" . ($compat_md5 ? "true" : "false") . "};"
144
+        . "jQuery(function(){
145 145
 	jQuery('#var_login').change(actualise_auteur);
146 146
 	jQuery('form#formulaire_login').submit(login_submit);
147 147
 });"
148
-		. "/*]]>*/</script>";
148
+        . "/*]]>*/</script>";
149 149
 
150
-	return $flux;
150
+    return $flux;
151 151
 }
152 152
 
153 153
 
@@ -159,10 +159,10 @@  discard block
 block discarded – undo
159 159
  *   toujours true pour un auteur cree dans SPIP
160 160
  */
161 161
 function auth_spip_autoriser_modifier_login($serveur = '') {
162
-	if (strlen($serveur)) {
163
-		return false;
164
-	} // les fonctions d'ecriture sur base distante sont encore incompletes
165
-	return true;
162
+    if (strlen($serveur)) {
163
+        return false;
164
+    } // les fonctions d'ecriture sur base distante sont encore incompletes
165
+    return true;
166 166
 }
167 167
 
168 168
 /**
@@ -176,21 +176,21 @@  discard block
 block discarded – undo
176 176
  *  message d'erreur si login non valide, chaine vide sinon
177 177
  */
178 178
 function auth_spip_verifier_login($new_login, $id_auteur = 0, $serveur = '') {
179
-	// login et mot de passe
180
-	if (strlen($new_login)) {
181
-		if (strlen($new_login) < _LOGIN_TROP_COURT) {
182
-			return _T('info_login_trop_court_car_pluriel', array('nb' => _LOGIN_TROP_COURT));
183
-		} else {
184
-			$n = sql_countsel('spip_auteurs',
185
-				"login=" . sql_quote($new_login) . " AND id_auteur!=" . intval($id_auteur) . " AND statut!='5poubelle'", '', '',
186
-				$serveur);
187
-			if ($n) {
188
-				return _T('info_login_existant');
189
-			}
190
-		}
191
-	}
192
-
193
-	return '';
179
+    // login et mot de passe
180
+    if (strlen($new_login)) {
181
+        if (strlen($new_login) < _LOGIN_TROP_COURT) {
182
+            return _T('info_login_trop_court_car_pluriel', array('nb' => _LOGIN_TROP_COURT));
183
+        } else {
184
+            $n = sql_countsel('spip_auteurs',
185
+                "login=" . sql_quote($new_login) . " AND id_auteur!=" . intval($id_auteur) . " AND statut!='5poubelle'", '', '',
186
+                $serveur);
187
+            if ($n) {
188
+                return _T('info_login_existant');
189
+            }
190
+        }
191
+    }
192
+
193
+    return '';
194 194
 }
195 195
 
196 196
 /**
@@ -202,32 +202,32 @@  discard block
 block discarded – undo
202 202
  * @return bool
203 203
  */
204 204
 function auth_spip_modifier_login($new_login, $id_auteur, $serveur = '') {
205
-	if (is_null($new_login) or auth_spip_verifier_login($new_login, $id_auteur, $serveur) != '') {
206
-		return false;
207
-	}
208
-	if (!$id_auteur = intval($id_auteur)
209
-		or !$auteur = sql_fetsel('login', 'spip_auteurs', 'id_auteur=' . intval($id_auteur), '', '', '', '', $serveur)
210
-	) {
211
-		return false;
212
-	}
213
-	if ($new_login == $auteur['login']) {
214
-		return true;
215
-	} // on a rien fait mais c'est bon !
216
-
217
-	include_spip('action/editer_auteur');
218
-
219
-	// vider le login des auteurs a la poubelle qui avaient ce meme login
220
-	if (strlen($new_login)) {
221
-		$anciens = sql_allfetsel('id_auteur', 'spip_auteurs',
222
-			'login=' . sql_quote($new_login, $serveur, 'text') . " AND statut='5poubelle'", '', '', '', '', $serveur);
223
-		while ($row = array_pop($anciens)) {
224
-			auteur_modifier($row['id_auteur'], array('login' => ''), true); // manque la gestion de $serveur
225
-		}
226
-	}
227
-
228
-	auteur_modifier($id_auteur, array('login' => $new_login), true); // manque la gestion de $serveur
229
-
230
-	return true;
205
+    if (is_null($new_login) or auth_spip_verifier_login($new_login, $id_auteur, $serveur) != '') {
206
+        return false;
207
+    }
208
+    if (!$id_auteur = intval($id_auteur)
209
+        or !$auteur = sql_fetsel('login', 'spip_auteurs', 'id_auteur=' . intval($id_auteur), '', '', '', '', $serveur)
210
+    ) {
211
+        return false;
212
+    }
213
+    if ($new_login == $auteur['login']) {
214
+        return true;
215
+    } // on a rien fait mais c'est bon !
216
+
217
+    include_spip('action/editer_auteur');
218
+
219
+    // vider le login des auteurs a la poubelle qui avaient ce meme login
220
+    if (strlen($new_login)) {
221
+        $anciens = sql_allfetsel('id_auteur', 'spip_auteurs',
222
+            'login=' . sql_quote($new_login, $serveur, 'text') . " AND statut='5poubelle'", '', '', '', '', $serveur);
223
+        while ($row = array_pop($anciens)) {
224
+            auteur_modifier($row['id_auteur'], array('login' => ''), true); // manque la gestion de $serveur
225
+        }
226
+    }
227
+
228
+    auteur_modifier($id_auteur, array('login' => $new_login), true); // manque la gestion de $serveur
229
+
230
+    return true;
231 231
 }
232 232
 
233 233
 /**
@@ -239,27 +239,27 @@  discard block
 block discarded – undo
239 239
  * @return string
240 240
  */
241 241
 function auth_spip_retrouver_login($login, $serveur = '') {
242
-	if (!strlen($login)) {
243
-		return null;
244
-	} // pas la peine de requeter
245
-	$l = sql_quote($login, $serveur, 'text');
246
-	if ($r = sql_getfetsel('login', 'spip_auteurs',
247
-		"statut<>'5poubelle'" .
248
-		" AND (length(pass)>0)" .
249
-		" AND (login=$l)", '', '', '', '', $serveur)
250
-	) {
251
-		return $r;
252
-	}
253
-	// Si pas d'auteur avec ce login
254
-	// regarder s'il a saisi son nom ou son mail.
255
-	// Ne pas fusionner avec la requete precedente
256
-	// car un nom peut etre homonyme d'un autre login
257
-	else {
258
-		return sql_getfetsel('login', 'spip_auteurs',
259
-			"statut<>'5poubelle'" .
260
-			" AND (length(pass)>0)" .
261
-			" AND (login<>'' AND (nom=$l OR email=$l))", '', '', '', '', $serveur);
262
-	}
242
+    if (!strlen($login)) {
243
+        return null;
244
+    } // pas la peine de requeter
245
+    $l = sql_quote($login, $serveur, 'text');
246
+    if ($r = sql_getfetsel('login', 'spip_auteurs',
247
+        "statut<>'5poubelle'" .
248
+        " AND (length(pass)>0)" .
249
+        " AND (login=$l)", '', '', '', '', $serveur)
250
+    ) {
251
+        return $r;
252
+    }
253
+    // Si pas d'auteur avec ce login
254
+    // regarder s'il a saisi son nom ou son mail.
255
+    // Ne pas fusionner avec la requete precedente
256
+    // car un nom peut etre homonyme d'un autre login
257
+    else {
258
+        return sql_getfetsel('login', 'spip_auteurs',
259
+            "statut<>'5poubelle'" .
260
+            " AND (length(pass)>0)" .
261
+            " AND (login<>'' AND (nom=$l OR email=$l))", '', '', '', '', $serveur);
262
+    }
263 263
 }
264 264
 
265 265
 
@@ -277,11 +277,11 @@  discard block
 block discarded – undo
277 277
  */
278 278
 function auth_spip_informer_login($infos, $row, $serveur = '') {
279 279
 
280
-	// pour la methode SPIP on a besoin des alea en plus pour encoder le pass avec
281
-	$infos['alea_actuel'] = $row['alea_actuel'];
282
-	$infos['alea_futur'] = $row['alea_futur'];
280
+    // pour la methode SPIP on a besoin des alea en plus pour encoder le pass avec
281
+    $infos['alea_actuel'] = $row['alea_actuel'];
282
+    $infos['alea_futur'] = $row['alea_futur'];
283 283
 
284
-	return $infos;
284
+    return $infos;
285 285
 }
286 286
 
287 287
 /**
@@ -292,10 +292,10 @@  discard block
 block discarded – undo
292 292
  *  toujours true pour un auteur cree dans SPIP
293 293
  */
294 294
 function auth_spip_autoriser_modifier_pass($serveur = '') {
295
-	if (strlen($serveur)) {
296
-		return false;
297
-	} // les fonctions d'ecriture sur base distante sont encore incompletes
298
-	return true;
295
+    if (strlen($serveur)) {
296
+        return false;
297
+    } // les fonctions d'ecriture sur base distante sont encore incompletes
298
+    return true;
299 299
 }
300 300
 
301 301
 
@@ -316,12 +316,12 @@  discard block
 block discarded – undo
316 316
  *  message d'erreur si login non valide, chaine vide sinon
317 317
  */
318 318
 function auth_spip_verifier_pass($login, $new_pass, $id_auteur = 0, $serveur = '') {
319
-	// login et mot de passe
320
-	if (strlen($new_pass) < _PASS_LONGUEUR_MINI) {
321
-		return _T('info_passe_trop_court_car_pluriel', array('nb' => _PASS_LONGUEUR_MINI));
322
-	}
319
+    // login et mot de passe
320
+    if (strlen($new_pass) < _PASS_LONGUEUR_MINI) {
321
+        return _T('info_passe_trop_court_car_pluriel', array('nb' => _PASS_LONGUEUR_MINI));
322
+    }
323 323
 
324
-	return '';
324
+    return '';
325 325
 }
326 326
 
327 327
 /**
@@ -335,33 +335,33 @@  discard block
 block discarded – undo
335 335
  * @return bool
336 336
  */
337 337
 function auth_spip_modifier_pass($login, $new_pass, $id_auteur, $serveur = '') {
338
-	if (is_null($new_pass) or auth_spip_verifier_pass($login, $new_pass, $id_auteur, $serveur) != '') {
339
-		return false;
340
-	}
341
-
342
-	if (!$id_auteur = intval($id_auteur)
343
-		or !sql_fetsel('login', 'spip_auteurs', 'id_auteur=' . intval($id_auteur), '', '', '', '', $serveur)
344
-	) {
345
-		return false;
346
-	}
347
-
348
-	$c = array();
349
-	include_spip('inc/acces');
350
-	include_spip('auth/sha256.inc');
351
-	$htpass = generer_htpass($new_pass);
352
-	$alea_actuel = creer_uniqid();
353
-	$alea_futur = creer_uniqid();
354
-	$pass = spip_sha256($alea_actuel . $new_pass);
355
-	$c['pass'] = $pass;
356
-	$c['htpass'] = $htpass;
357
-	$c['alea_actuel'] = $alea_actuel;
358
-	$c['alea_futur'] = $alea_futur;
359
-	$c['low_sec'] = '';
360
-
361
-	include_spip('action/editer_auteur');
362
-	auteur_modifier($id_auteur, $c, true); // manque la gestion de $serveur
363
-
364
-	return true; // on a bien modifie le pass
338
+    if (is_null($new_pass) or auth_spip_verifier_pass($login, $new_pass, $id_auteur, $serveur) != '') {
339
+        return false;
340
+    }
341
+
342
+    if (!$id_auteur = intval($id_auteur)
343
+        or !sql_fetsel('login', 'spip_auteurs', 'id_auteur=' . intval($id_auteur), '', '', '', '', $serveur)
344
+    ) {
345
+        return false;
346
+    }
347
+
348
+    $c = array();
349
+    include_spip('inc/acces');
350
+    include_spip('auth/sha256.inc');
351
+    $htpass = generer_htpass($new_pass);
352
+    $alea_actuel = creer_uniqid();
353
+    $alea_futur = creer_uniqid();
354
+    $pass = spip_sha256($alea_actuel . $new_pass);
355
+    $c['pass'] = $pass;
356
+    $c['htpass'] = $htpass;
357
+    $c['alea_actuel'] = $alea_actuel;
358
+    $c['alea_futur'] = $alea_futur;
359
+    $c['low_sec'] = '';
360
+
361
+    include_spip('action/editer_auteur');
362
+    auteur_modifier($id_auteur, $c, true); // manque la gestion de $serveur
363
+
364
+    return true; // on a bien modifie le pass
365 365
 }
366 366
 
367 367
 /**
@@ -375,54 +375,54 @@  discard block
 block discarded – undo
375 375
  * @return void
376 376
  */
377 377
 function auth_spip_synchroniser_distant($id_auteur, $champs, $options = array(), $serveur = '') {
378
-	// ne rien faire pour une base distante : on ne sait pas regenerer les htaccess
379
-	if (strlen($serveur)) {
380
-		return;
381
-	}
382
-	// si un login, pass ou statut a ete modifie
383
-	// regenerer les fichier htpass
384
-	if (isset($champs['login'])
385
-		or isset($champs['pass'])
386
-		or isset($champs['statut'])
387
-		or (isset($options['all']) and $options['all'])
388
-	) {
389
-
390
-		$htaccess = _DIR_RESTREINT . _ACCESS_FILE_NAME;
391
-		$htpasswd = _DIR_TMP . _AUTH_USER_FILE;
392
-
393
-		// Cette variable de configuration peut etre posee par un plugin
394
-		// par exemple acces_restreint ;
395
-		// si .htaccess existe, outrepasser spip_meta
396
-		if ((!isset($GLOBALS['meta']['creer_htpasswd']) or ($GLOBALS['meta']['creer_htpasswd'] != 'oui'))
397
-			and !@file_exists($htaccess)
398
-		) {
399
-			spip_unlink($htpasswd);
400
-			spip_unlink($htpasswd . "-admin");
401
-
402
-			return;
403
-		}
404
-
405
-		# remarque : ici on laisse passer les "nouveau" de maniere a leur permettre
406
-		# de devenir redacteur le cas echeant (auth http)... a nettoyer
407
-		// attention, il faut au prealable se connecter a la base (necessaire car utilise par install)
408
-
409
-		$p1 = ''; // login:htpass pour tous
410
-		$p2 = ''; // login:htpass pour les admins
411
-		$s = sql_select("login, htpass, statut", "spip_auteurs",
412
-			sql_in("statut", array('1comite', '0minirezo', 'nouveau')));
413
-		while ($t = sql_fetch($s)) {
414
-			if (strlen($t['login']) and strlen($t['htpass'])) {
415
-				$p1 .= $t['login'] . ':' . $t['htpass'] . "\n";
416
-				if ($t['statut'] == '0minirezo') {
417
-					$p2 .= $t['login'] . ':' . $t['htpass'] . "\n";
418
-				}
419
-			}
420
-		}
421
-		sql_free($s);
422
-		if ($p1) {
423
-			ecrire_fichier($htpasswd, $p1);
424
-			ecrire_fichier($htpasswd . '-admin', $p2);
425
-			spip_log("Ecriture de $htpasswd et $htpasswd-admin");
426
-		}
427
-	}
378
+    // ne rien faire pour une base distante : on ne sait pas regenerer les htaccess
379
+    if (strlen($serveur)) {
380
+        return;
381
+    }
382
+    // si un login, pass ou statut a ete modifie
383
+    // regenerer les fichier htpass
384
+    if (isset($champs['login'])
385
+        or isset($champs['pass'])
386
+        or isset($champs['statut'])
387
+        or (isset($options['all']) and $options['all'])
388
+    ) {
389
+
390
+        $htaccess = _DIR_RESTREINT . _ACCESS_FILE_NAME;
391
+        $htpasswd = _DIR_TMP . _AUTH_USER_FILE;
392
+
393
+        // Cette variable de configuration peut etre posee par un plugin
394
+        // par exemple acces_restreint ;
395
+        // si .htaccess existe, outrepasser spip_meta
396
+        if ((!isset($GLOBALS['meta']['creer_htpasswd']) or ($GLOBALS['meta']['creer_htpasswd'] != 'oui'))
397
+            and !@file_exists($htaccess)
398
+        ) {
399
+            spip_unlink($htpasswd);
400
+            spip_unlink($htpasswd . "-admin");
401
+
402
+            return;
403
+        }
404
+
405
+        # remarque : ici on laisse passer les "nouveau" de maniere a leur permettre
406
+        # de devenir redacteur le cas echeant (auth http)... a nettoyer
407
+        // attention, il faut au prealable se connecter a la base (necessaire car utilise par install)
408
+
409
+        $p1 = ''; // login:htpass pour tous
410
+        $p2 = ''; // login:htpass pour les admins
411
+        $s = sql_select("login, htpass, statut", "spip_auteurs",
412
+            sql_in("statut", array('1comite', '0minirezo', 'nouveau')));
413
+        while ($t = sql_fetch($s)) {
414
+            if (strlen($t['login']) and strlen($t['htpass'])) {
415
+                $p1 .= $t['login'] . ':' . $t['htpass'] . "\n";
416
+                if ($t['statut'] == '0minirezo') {
417
+                    $p2 .= $t['login'] . ':' . $t['htpass'] . "\n";
418
+                }
419
+            }
420
+        }
421
+        sql_free($s);
422
+        if ($p1) {
423
+            ecrire_fichier($htpasswd, $p1);
424
+            ecrire_fichier($htpasswd . '-admin', $p2);
425
+            spip_log("Ecriture de $htpasswd et $htpasswd-admin");
426
+        }
427
+    }
428 428
 }
Please login to merge, or discard this patch.
Spacing   +32 added lines, -32 removed lines patch added patch discarded remove patch
@@ -53,14 +53,14 @@  discard block
 block discarded – undo
53 53
 		//$md5next = $regs[4];
54 54
 	} // si envoi non crypte, crypter maintenant
55 55
 	elseif ($pass) {
56
-		$row = sql_fetsel("alea_actuel, alea_futur", "spip_auteurs", "login=" . sql_quote($login, $serveur, 'text'), '', '',
56
+		$row = sql_fetsel("alea_actuel, alea_futur", "spip_auteurs", "login=".sql_quote($login, $serveur, 'text'), '', '',
57 57
 			'', '', $serveur);
58 58
 
59 59
 		if ($row) {
60 60
 			include_spip('auth/sha256.inc');
61
-			$shapass = spip_sha256($row['alea_actuel'] . $pass);
62
-			$shanext = spip_sha256($row['alea_futur'] . $pass);
63
-			$md5pass = md5($row['alea_actuel'] . $pass);
61
+			$shapass = spip_sha256($row['alea_actuel'].$pass);
62
+			$shanext = spip_sha256($row['alea_futur'].$pass);
63
+			$md5pass = md5($row['alea_actuel'].$pass);
64 64
 		}
65 65
 	}
66 66
 
@@ -70,14 +70,14 @@  discard block
 block discarded – undo
70 70
 	}
71 71
 
72 72
 	$row = sql_fetsel("*", "spip_auteurs",
73
-		"login=" . sql_quote($login, $serveur, 'text') . " AND pass=" . sql_quote($shapass, $serveur,
74
-			'text') . " AND statut<>'5poubelle'", '', '', '', '', $serveur);
73
+		"login=".sql_quote($login, $serveur, 'text')." AND pass=".sql_quote($shapass, $serveur,
74
+			'text')." AND statut<>'5poubelle'", '', '', '', '', $serveur);
75 75
 
76 76
 	// compat avec les anciennes bases en md5
77 77
 	if (!$row and $md5pass) {
78 78
 		$row = sql_fetsel("*", "spip_auteurs",
79
-			"login=" . sql_quote($login, $serveur, 'text') . " AND pass=" . sql_quote($md5pass, $serveur,
80
-				'text') . " AND statut<>'5poubelle'", '', '', '', '', $serveur);
79
+			"login=".sql_quote($login, $serveur, 'text')." AND pass=".sql_quote($md5pass, $serveur,
80
+				'text')." AND statut<>'5poubelle'", '', '', '', '', $serveur);
81 81
 	}
82 82
 
83 83
 	// login/mot de passe incorrect
@@ -94,8 +94,8 @@  discard block
 block discarded – undo
94 94
 			'alea_actuel' => 'alea_futur',
95 95
 			'pass' => sql_quote($shanext, $serveur, 'text'),
96 96
 			'alea_futur' => sql_quote(creer_uniqid(), $serveur, 'text')
97
-		), "id_auteur=" . $row['id_auteur'] . ' AND pass IN (' . sql_quote($shapass, $serveur,
98
-				'text') . ', ' . sql_quote($md5pass, $serveur, 'text') . ')', '', $serveur);
97
+		), "id_auteur=".$row['id_auteur'].' AND pass IN ('.sql_quote($shapass, $serveur,
98
+				'text').', '.sql_quote($md5pass, $serveur, 'text').')', '', $serveur);
99 99
 		// En profiter pour verifier la securite de tmp/
100 100
 		// Si elle ne fonctionne pas a l'installation, prevenir
101 101
 		if (!verifier_htaccess(_DIR_TMP) and defined('_ECRIRE_INSTALL')) {
@@ -131,16 +131,16 @@  discard block
 block discarded – undo
131 131
 
132 132
 	// javascript qui gere la securite du login en evitant de faire circuler le pass en clair
133 133
 	$flux['data'] .=
134
-		($compat_md5 ? '<script type="text/javascript" src="' . _DIR_JAVASCRIPT . 'md5.js"></script>' : '')
135
-		. '<script type="text/javascript" src="' . _DIR_JAVASCRIPT . 'login-sha-min.js"></script>'
134
+		($compat_md5 ? '<script type="text/javascript" src="'._DIR_JAVASCRIPT.'md5.js"></script>' : '')
135
+		. '<script type="text/javascript" src="'._DIR_JAVASCRIPT.'login-sha-min.js"></script>'
136 136
 		. '<script type="text/javascript">/*<![CDATA[*/'
137
-		. "var login_info={'alea_actuel':'" . $flux['args']['contexte']['_alea_actuel'] . "',"
138
-		. "'alea_futur':'" . $flux['args']['contexte']['_alea_futur'] . "',"
139
-		. "'login':'" . $flux['args']['contexte']['var_login'] . "',"
140
-		. "'page_auteur': '" . generer_url_public('informer_auteur') . "',"
137
+		. "var login_info={'alea_actuel':'".$flux['args']['contexte']['_alea_actuel']."',"
138
+		. "'alea_futur':'".$flux['args']['contexte']['_alea_futur']."',"
139
+		. "'login':'".$flux['args']['contexte']['var_login']."',"
140
+		. "'page_auteur': '".generer_url_public('informer_auteur')."',"
141 141
 		. "'informe_auteur_en_cours':false,"
142 142
 		. "'attente_informe':0,"
143
-		. "'compat_md5':" . ($compat_md5 ? "true" : "false") . "};"
143
+		. "'compat_md5':".($compat_md5 ? "true" : "false")."};"
144 144
 		. "jQuery(function(){
145 145
 	jQuery('#var_login').change(actualise_auteur);
146 146
 	jQuery('form#formulaire_login').submit(login_submit);
@@ -182,7 +182,7 @@  discard block
 block discarded – undo
182 182
 			return _T('info_login_trop_court_car_pluriel', array('nb' => _LOGIN_TROP_COURT));
183 183
 		} else {
184 184
 			$n = sql_countsel('spip_auteurs',
185
-				"login=" . sql_quote($new_login) . " AND id_auteur!=" . intval($id_auteur) . " AND statut!='5poubelle'", '', '',
185
+				"login=".sql_quote($new_login)." AND id_auteur!=".intval($id_auteur)." AND statut!='5poubelle'", '', '',
186 186
 				$serveur);
187 187
 			if ($n) {
188 188
 				return _T('info_login_existant');
@@ -206,7 +206,7 @@  discard block
 block discarded – undo
206 206
 		return false;
207 207
 	}
208 208
 	if (!$id_auteur = intval($id_auteur)
209
-		or !$auteur = sql_fetsel('login', 'spip_auteurs', 'id_auteur=' . intval($id_auteur), '', '', '', '', $serveur)
209
+		or !$auteur = sql_fetsel('login', 'spip_auteurs', 'id_auteur='.intval($id_auteur), '', '', '', '', $serveur)
210 210
 	) {
211 211
 		return false;
212 212
 	}
@@ -219,7 +219,7 @@  discard block
 block discarded – undo
219 219
 	// vider le login des auteurs a la poubelle qui avaient ce meme login
220 220
 	if (strlen($new_login)) {
221 221
 		$anciens = sql_allfetsel('id_auteur', 'spip_auteurs',
222
-			'login=' . sql_quote($new_login, $serveur, 'text') . " AND statut='5poubelle'", '', '', '', '', $serveur);
222
+			'login='.sql_quote($new_login, $serveur, 'text')." AND statut='5poubelle'", '', '', '', '', $serveur);
223 223
 		while ($row = array_pop($anciens)) {
224 224
 			auteur_modifier($row['id_auteur'], array('login' => ''), true); // manque la gestion de $serveur
225 225
 		}
@@ -244,8 +244,8 @@  discard block
 block discarded – undo
244 244
 	} // pas la peine de requeter
245 245
 	$l = sql_quote($login, $serveur, 'text');
246 246
 	if ($r = sql_getfetsel('login', 'spip_auteurs',
247
-		"statut<>'5poubelle'" .
248
-		" AND (length(pass)>0)" .
247
+		"statut<>'5poubelle'".
248
+		" AND (length(pass)>0)".
249 249
 		" AND (login=$l)", '', '', '', '', $serveur)
250 250
 	) {
251 251
 		return $r;
@@ -256,8 +256,8 @@  discard block
 block discarded – undo
256 256
 	// car un nom peut etre homonyme d'un autre login
257 257
 	else {
258 258
 		return sql_getfetsel('login', 'spip_auteurs',
259
-			"statut<>'5poubelle'" .
260
-			" AND (length(pass)>0)" .
259
+			"statut<>'5poubelle'".
260
+			" AND (length(pass)>0)".
261 261
 			" AND (login<>'' AND (nom=$l OR email=$l))", '', '', '', '', $serveur);
262 262
 	}
263 263
 }
@@ -340,7 +340,7 @@  discard block
 block discarded – undo
340 340
 	}
341 341
 
342 342
 	if (!$id_auteur = intval($id_auteur)
343
-		or !sql_fetsel('login', 'spip_auteurs', 'id_auteur=' . intval($id_auteur), '', '', '', '', $serveur)
343
+		or !sql_fetsel('login', 'spip_auteurs', 'id_auteur='.intval($id_auteur), '', '', '', '', $serveur)
344 344
 	) {
345 345
 		return false;
346 346
 	}
@@ -351,7 +351,7 @@  discard block
 block discarded – undo
351 351
 	$htpass = generer_htpass($new_pass);
352 352
 	$alea_actuel = creer_uniqid();
353 353
 	$alea_futur = creer_uniqid();
354
-	$pass = spip_sha256($alea_actuel . $new_pass);
354
+	$pass = spip_sha256($alea_actuel.$new_pass);
355 355
 	$c['pass'] = $pass;
356 356
 	$c['htpass'] = $htpass;
357 357
 	$c['alea_actuel'] = $alea_actuel;
@@ -387,8 +387,8 @@  discard block
 block discarded – undo
387 387
 		or (isset($options['all']) and $options['all'])
388 388
 	) {
389 389
 
390
-		$htaccess = _DIR_RESTREINT . _ACCESS_FILE_NAME;
391
-		$htpasswd = _DIR_TMP . _AUTH_USER_FILE;
390
+		$htaccess = _DIR_RESTREINT._ACCESS_FILE_NAME;
391
+		$htpasswd = _DIR_TMP._AUTH_USER_FILE;
392 392
 
393 393
 		// Cette variable de configuration peut etre posee par un plugin
394 394
 		// par exemple acces_restreint ;
@@ -397,7 +397,7 @@  discard block
 block discarded – undo
397 397
 			and !@file_exists($htaccess)
398 398
 		) {
399 399
 			spip_unlink($htpasswd);
400
-			spip_unlink($htpasswd . "-admin");
400
+			spip_unlink($htpasswd."-admin");
401 401
 
402 402
 			return;
403 403
 		}
@@ -412,16 +412,16 @@  discard block
 block discarded – undo
412 412
 			sql_in("statut", array('1comite', '0minirezo', 'nouveau')));
413 413
 		while ($t = sql_fetch($s)) {
414 414
 			if (strlen($t['login']) and strlen($t['htpass'])) {
415
-				$p1 .= $t['login'] . ':' . $t['htpass'] . "\n";
415
+				$p1 .= $t['login'].':'.$t['htpass']."\n";
416 416
 				if ($t['statut'] == '0minirezo') {
417
-					$p2 .= $t['login'] . ':' . $t['htpass'] . "\n";
417
+					$p2 .= $t['login'].':'.$t['htpass']."\n";
418 418
 				}
419 419
 			}
420 420
 		}
421 421
 		sql_free($s);
422 422
 		if ($p1) {
423 423
 			ecrire_fichier($htpasswd, $p1);
424
-			ecrire_fichier($htpasswd . '-admin', $p2);
424
+			ecrire_fichier($htpasswd.'-admin', $p2);
425 425
 			spip_log("Ecriture de $htpasswd et $htpasswd-admin");
426 426
 		}
427 427
 	}
Please login to merge, or discard this patch.
ecrire/auth/sha256.inc.php 1 patch
Indentation   +11 added lines, -11 removed lines patch added patch discarded remove patch
@@ -11,7 +11,7 @@  discard block
 block discarded – undo
11 11
  * @return string Le SHA de la chaîne
12 12
  */
13 13
 function spip_sha256($str) {
14
-	return hash('sha256', $str);
14
+    return hash('sha256', $str);
15 15
 }
16 16
 
17 17
 /**
@@ -21,18 +21,18 @@  discard block
 block discarded – undo
21 21
  * @deprecated
22 22
  */
23 23
 function _nano_sha256($str, $ig_func = true) {
24
-	return spip_sha256($str);
24
+    return spip_sha256($str);
25 25
 }
26 26
 
27 27
 // 2009-07-23: Added check for function as the Suhosin plugin adds this routine.
28 28
 if (!function_exists('sha256')) {
29
-	/**
30
-	 * Calcul du SHA256
31
-	 *
32
-	 * @param string $str Chaîne dont on veut calculer le SHA
33
-	 * @param bool $ig_func
34
-	 * @return string Le SHA de la chaîne
35
-	 * @deprecated
36
-	 */
37
-	function sha256($str, $ig_func = true) { return spip_sha256($str); }
29
+    /**
30
+     * Calcul du SHA256
31
+     *
32
+     * @param string $str Chaîne dont on veut calculer le SHA
33
+     * @param bool $ig_func
34
+     * @return string Le SHA de la chaîne
35
+     * @deprecated
36
+     */
37
+    function sha256($str, $ig_func = true) { return spip_sha256($str); }
38 38
 }
39 39
\ No newline at end of file
Please login to merge, or discard this patch.
ecrire/install/etape_3b.php 2 patches
Indentation   +134 added lines, -134 removed lines patch added patch discarded remove patch
@@ -11,143 +11,143 @@
 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('inc/headers');
18 18
 
19 19
 function install_etape_3b_dist() {
20
-	$login = _request('login');
21
-	$email = _request('email');
22
-	$nom = _request('nom');
23
-	$pass = _request('pass');
24
-	$pass_verif = _request('pass_verif');
25
-
26
-	$server_db = defined('_INSTALL_SERVER_DB')
27
-		? _INSTALL_SERVER_DB
28
-		: _request('server_db');
29
-
30
-	if (!defined('_PASS_LONGUEUR_MINI')) {
31
-		define('_PASS_LONGUEUR_MINI', 6);
32
-	}
33
-	if (!defined('_LOGIN_TROP_COURT')) {
34
-		define('_LOGIN_TROP_COURT', 4);
35
-	}
36
-	if ($login) {
37
-		$echec = ($pass != $pass_verif) ?
38
-			_T('info_passes_identiques')
39
-			: ((strlen($pass) < _PASS_LONGUEUR_MINI) ?
40
-				_T('info_passe_trop_court_car_pluriel', array('nb' => _PASS_LONGUEUR_MINI))
41
-				: ((strlen($login) < _LOGIN_TROP_COURT) ?
42
-					_T('info_login_trop_court')
43
-					: ''));
44
-		include_spip('inc/filtres');
45
-		if (!$echec and $email and !email_valide($email)) {
46
-			$echec = _T('form_email_non_valide');
47
-		}
48
-		if ($echec) {
49
-			echo minipres(
50
-				'AUTO',
51
-				info_progression_etape(3, 'etape_', 'install/', true) .
52
-				"<div class='error'><h3>$echec</h3>\n" .
53
-				'<p>' . _T('avis_connexion_echec_2') . '</p>' .
54
-				'</div>'
55
-			);
56
-			exit;
57
-		}
58
-	}
59
-
60
-	if (@file_exists(_FILE_CHMOD_TMP)) {
61
-		include(_FILE_CHMOD_TMP);
62
-	} else {
63
-		redirige_url_ecrire('install');
64
-	}
65
-
66
-	if (!@file_exists(_FILE_CONNECT_TMP)) {
67
-		redirige_url_ecrire('install');
68
-	}
69
-
70
-	# maintenant on connait le vrai charset du site s'il est deja configure
71
-	# sinon par defaut lire_meta reglera _DEFAULT_CHARSET
72
-	# (les donnees arrivent de toute facon postees en _DEFAULT_CHARSET)
73
-
74
-	lire_metas();
75
-	if ($login) {
76
-		include_spip('inc/charsets');
77
-
78
-		$nom = (importer_charset($nom, _DEFAULT_CHARSET));
79
-		$login = (importer_charset($login, _DEFAULT_CHARSET));
80
-		$email = (importer_charset($email, _DEFAULT_CHARSET));
81
-		# pour le passwd, bizarrement il faut le convertir comme s'il avait
82
-		# ete tape en iso-8859-1 ; car c'est en fait ce que voit md5.js
83
-		$pass = unicode2charset(utf_8_to_unicode($pass), 'iso-8859-1');
84
-		include_spip('auth/sha256.inc');
85
-		include_spip('inc/acces');
86
-		$htpass = generer_htpass($pass);
87
-		$alea_actuel = creer_uniqid();
88
-		$alea_futur = creer_uniqid();
89
-		$shapass = spip_sha256($alea_actuel . $pass);
90
-		// prelablement, creer le champ webmestre si il n'existe pas (install neuve
91
-		// sur une vieille base
92
-		$t = sql_showtable('spip_auteurs', true);
93
-		if (!isset($t['field']['webmestre'])) {
94
-			@sql_alter("TABLE spip_auteurs ADD webmestre varchar(3)  DEFAULT 'non' NOT NULL");
95
-		}
96
-
97
-		$id_auteur = sql_getfetsel('id_auteur', 'spip_auteurs', 'login=' . sql_quote($login));
98
-		if ($id_auteur !== null) {
99
-			sql_updateq('spip_auteurs', array(
100
-				'nom' => $nom,
101
-				'email' => $email,
102
-				'login' => $login,
103
-				'pass' => $shapass,
104
-				'alea_actuel' => $alea_actuel,
105
-				'alea_futur' => $alea_futur,
106
-				'htpass' => $htpass,
107
-				'statut' => '0minirezo'
108
-			), "id_auteur=$id_auteur");
109
-		} else {
110
-			$id_auteur = sql_insertq('spip_auteurs', array(
111
-				'nom' => $nom,
112
-				'email' => $email,
113
-				'login' => $login,
114
-				'pass' => $shapass,
115
-				'htpass' => $htpass,
116
-				'alea_actuel' => $alea_actuel,
117
-				'alea_futur' => $alea_futur,
118
-				'statut' => '0minirezo'
119
-			));
120
-		}
121
-		// le passer webmestre separrement du reste, au cas ou l'alter n'aurait pas fonctionne
122
-		@sql_updateq('spip_auteurs', array('webmestre' => 'oui'), "id_auteur=$id_auteur");
123
-
124
-		// inserer email comme email webmaster principal
125
-		// (sauf s'il est vide: cas de la re-installation)
126
-		if ($email) {
127
-			ecrire_meta('email_webmaster', $email);
128
-		}
129
-
130
-		// Connecter directement celui qui vient de (re)donner son login
131
-		// mais sans cookie d'admin ni connexion longue
132
-		include_spip('inc/auth');
133
-		if (!$auteur = auth_identifier_login($login, $pass)
134
-			or !auth_loger($auteur, true)
135
-		) {
136
-			spip_log("login automatique impossible $auth_spip $session" . count($row));
137
-		}
138
-	}
139
-
140
-	// installer les metas
141
-	$config = charger_fonction('config', 'inc');
142
-	$config();
143
-
144
-	// activer les plugins
145
-	// leur installation ne peut pas se faire sur le meme hit, il faudra donc
146
-	// poursuivre au hit suivant
147
-	include_spip('inc/plugin');
148
-	actualise_plugins_actifs();
149
-
150
-
151
-	include_spip('inc/distant');
152
-	redirige_par_entete(parametre_url(self(), 'etape', '4', '&'));
20
+    $login = _request('login');
21
+    $email = _request('email');
22
+    $nom = _request('nom');
23
+    $pass = _request('pass');
24
+    $pass_verif = _request('pass_verif');
25
+
26
+    $server_db = defined('_INSTALL_SERVER_DB')
27
+        ? _INSTALL_SERVER_DB
28
+        : _request('server_db');
29
+
30
+    if (!defined('_PASS_LONGUEUR_MINI')) {
31
+        define('_PASS_LONGUEUR_MINI', 6);
32
+    }
33
+    if (!defined('_LOGIN_TROP_COURT')) {
34
+        define('_LOGIN_TROP_COURT', 4);
35
+    }
36
+    if ($login) {
37
+        $echec = ($pass != $pass_verif) ?
38
+            _T('info_passes_identiques')
39
+            : ((strlen($pass) < _PASS_LONGUEUR_MINI) ?
40
+                _T('info_passe_trop_court_car_pluriel', array('nb' => _PASS_LONGUEUR_MINI))
41
+                : ((strlen($login) < _LOGIN_TROP_COURT) ?
42
+                    _T('info_login_trop_court')
43
+                    : ''));
44
+        include_spip('inc/filtres');
45
+        if (!$echec and $email and !email_valide($email)) {
46
+            $echec = _T('form_email_non_valide');
47
+        }
48
+        if ($echec) {
49
+            echo minipres(
50
+                'AUTO',
51
+                info_progression_etape(3, 'etape_', 'install/', true) .
52
+                "<div class='error'><h3>$echec</h3>\n" .
53
+                '<p>' . _T('avis_connexion_echec_2') . '</p>' .
54
+                '</div>'
55
+            );
56
+            exit;
57
+        }
58
+    }
59
+
60
+    if (@file_exists(_FILE_CHMOD_TMP)) {
61
+        include(_FILE_CHMOD_TMP);
62
+    } else {
63
+        redirige_url_ecrire('install');
64
+    }
65
+
66
+    if (!@file_exists(_FILE_CONNECT_TMP)) {
67
+        redirige_url_ecrire('install');
68
+    }
69
+
70
+    # maintenant on connait le vrai charset du site s'il est deja configure
71
+    # sinon par defaut lire_meta reglera _DEFAULT_CHARSET
72
+    # (les donnees arrivent de toute facon postees en _DEFAULT_CHARSET)
73
+
74
+    lire_metas();
75
+    if ($login) {
76
+        include_spip('inc/charsets');
77
+
78
+        $nom = (importer_charset($nom, _DEFAULT_CHARSET));
79
+        $login = (importer_charset($login, _DEFAULT_CHARSET));
80
+        $email = (importer_charset($email, _DEFAULT_CHARSET));
81
+        # pour le passwd, bizarrement il faut le convertir comme s'il avait
82
+        # ete tape en iso-8859-1 ; car c'est en fait ce que voit md5.js
83
+        $pass = unicode2charset(utf_8_to_unicode($pass), 'iso-8859-1');
84
+        include_spip('auth/sha256.inc');
85
+        include_spip('inc/acces');
86
+        $htpass = generer_htpass($pass);
87
+        $alea_actuel = creer_uniqid();
88
+        $alea_futur = creer_uniqid();
89
+        $shapass = spip_sha256($alea_actuel . $pass);
90
+        // prelablement, creer le champ webmestre si il n'existe pas (install neuve
91
+        // sur une vieille base
92
+        $t = sql_showtable('spip_auteurs', true);
93
+        if (!isset($t['field']['webmestre'])) {
94
+            @sql_alter("TABLE spip_auteurs ADD webmestre varchar(3)  DEFAULT 'non' NOT NULL");
95
+        }
96
+
97
+        $id_auteur = sql_getfetsel('id_auteur', 'spip_auteurs', 'login=' . sql_quote($login));
98
+        if ($id_auteur !== null) {
99
+            sql_updateq('spip_auteurs', array(
100
+                'nom' => $nom,
101
+                'email' => $email,
102
+                'login' => $login,
103
+                'pass' => $shapass,
104
+                'alea_actuel' => $alea_actuel,
105
+                'alea_futur' => $alea_futur,
106
+                'htpass' => $htpass,
107
+                'statut' => '0minirezo'
108
+            ), "id_auteur=$id_auteur");
109
+        } else {
110
+            $id_auteur = sql_insertq('spip_auteurs', array(
111
+                'nom' => $nom,
112
+                'email' => $email,
113
+                'login' => $login,
114
+                'pass' => $shapass,
115
+                'htpass' => $htpass,
116
+                'alea_actuel' => $alea_actuel,
117
+                'alea_futur' => $alea_futur,
118
+                'statut' => '0minirezo'
119
+            ));
120
+        }
121
+        // le passer webmestre separrement du reste, au cas ou l'alter n'aurait pas fonctionne
122
+        @sql_updateq('spip_auteurs', array('webmestre' => 'oui'), "id_auteur=$id_auteur");
123
+
124
+        // inserer email comme email webmaster principal
125
+        // (sauf s'il est vide: cas de la re-installation)
126
+        if ($email) {
127
+            ecrire_meta('email_webmaster', $email);
128
+        }
129
+
130
+        // Connecter directement celui qui vient de (re)donner son login
131
+        // mais sans cookie d'admin ni connexion longue
132
+        include_spip('inc/auth');
133
+        if (!$auteur = auth_identifier_login($login, $pass)
134
+            or !auth_loger($auteur, true)
135
+        ) {
136
+            spip_log("login automatique impossible $auth_spip $session" . count($row));
137
+        }
138
+    }
139
+
140
+    // installer les metas
141
+    $config = charger_fonction('config', 'inc');
142
+    $config();
143
+
144
+    // activer les plugins
145
+    // leur installation ne peut pas se faire sur le meme hit, il faudra donc
146
+    // poursuivre au hit suivant
147
+    include_spip('inc/plugin');
148
+    actualise_plugins_actifs();
149
+
150
+
151
+    include_spip('inc/distant');
152
+    redirige_par_entete(parametre_url(self(), 'etape', '4', '&'));
153 153
 }
Please login to merge, or discard this patch.
Spacing   +6 added lines, -6 removed lines patch added patch discarded remove patch
@@ -48,9 +48,9 @@  discard block
 block discarded – undo
48 48
 		if ($echec) {
49 49
 			echo minipres(
50 50
 				'AUTO',
51
-				info_progression_etape(3, 'etape_', 'install/', true) .
52
-				"<div class='error'><h3>$echec</h3>\n" .
53
-				'<p>' . _T('avis_connexion_echec_2') . '</p>' .
51
+				info_progression_etape(3, 'etape_', 'install/', true).
52
+				"<div class='error'><h3>$echec</h3>\n".
53
+				'<p>'._T('avis_connexion_echec_2').'</p>'.
54 54
 				'</div>'
55 55
 			);
56 56
 			exit;
@@ -86,7 +86,7 @@  discard block
 block discarded – undo
86 86
 		$htpass = generer_htpass($pass);
87 87
 		$alea_actuel = creer_uniqid();
88 88
 		$alea_futur = creer_uniqid();
89
-		$shapass = spip_sha256($alea_actuel . $pass);
89
+		$shapass = spip_sha256($alea_actuel.$pass);
90 90
 		// prelablement, creer le champ webmestre si il n'existe pas (install neuve
91 91
 		// sur une vieille base
92 92
 		$t = sql_showtable('spip_auteurs', true);
@@ -94,7 +94,7 @@  discard block
 block discarded – undo
94 94
 			@sql_alter("TABLE spip_auteurs ADD webmestre varchar(3)  DEFAULT 'non' NOT NULL");
95 95
 		}
96 96
 
97
-		$id_auteur = sql_getfetsel('id_auteur', 'spip_auteurs', 'login=' . sql_quote($login));
97
+		$id_auteur = sql_getfetsel('id_auteur', 'spip_auteurs', 'login='.sql_quote($login));
98 98
 		if ($id_auteur !== null) {
99 99
 			sql_updateq('spip_auteurs', array(
100 100
 				'nom' => $nom,
@@ -133,7 +133,7 @@  discard block
 block discarded – undo
133 133
 		if (!$auteur = auth_identifier_login($login, $pass)
134 134
 			or !auth_loger($auteur, true)
135 135
 		) {
136
-			spip_log("login automatique impossible $auth_spip $session" . count($row));
136
+			spip_log("login automatique impossible $auth_spip $session".count($row));
137 137
 		}
138 138
 	}
139 139
 
Please login to merge, or discard this patch.
ecrire/index.php 2 patches
Spacing   +8 added lines, -8 removed lines patch added patch discarded remove patch
@@ -35,7 +35,7 @@  discard block
 block discarded – undo
35 35
 // Determiner l'action demandee
36 36
 //
37 37
 
38
-$exec = (string)_request('exec');
38
+$exec = (string) _request('exec');
39 39
 $reinstall = (!is_null(_request('reinstall'))) ? _request('reinstall') : ($exec == 'install' ? 'oui' : null);
40 40
 //
41 41
 // Les scripts d'insallation n'authentifient pas, forcement,
@@ -64,7 +64,7 @@  discard block
 block discarded – undo
64 64
 
65 65
 
66 66
 if (_request('action') or _request('var_ajax') or _request('formulaire_action')) {
67
-	if (!autoriser_sans_cookie($exec)){
67
+	if (!autoriser_sans_cookie($exec)) {
68 68
 		// Charger l'aiguilleur qui va mettre sur la bonne voie les traitements derogatoires
69 69
 		include_spip('public/aiguiller');
70 70
 		if (
@@ -76,17 +76,17 @@  discard block
 block discarded – undo
76 76
 			or
77 77
 			// cas des formulaires charger/verifier/traiter
78 78
 			traiter_formulaires_dynamiques()
79
-		){
79
+		) {
80 80
 			exit;
81 81
 		} // le hit est fini !
82 82
 	}
83 83
 }
84 84
 // securiser les redirect du back-office
85 85
 if (_request('redirect')) {
86
-	if (!function_exists('securiser_redirect_action')){
86
+	if (!function_exists('securiser_redirect_action')) {
87 87
 		include_spip('public/aiguiller');
88 88
 	}
89
-	set_request('redirect',securiser_redirect_action(_request('redirect')));
89
+	set_request('redirect', securiser_redirect_action(_request('redirect')));
90 90
 }
91 91
 
92 92
 
@@ -119,9 +119,9 @@  discard block
 block discarded – undo
119 119
 			or (isset($GLOBALS['visiteur_session']) and $GLOBALS['visiteur_session']['statut'] == '0minirezo')
120 120
 		)
121 121
 	) {
122
-		spip_log("Quand la meta admin vaut " .
123
-			$GLOBALS['meta']["admin"] .
124
-			" seul un admin peut se connecter et sans AJAX." .
122
+		spip_log("Quand la meta admin vaut ".
123
+			$GLOBALS['meta']["admin"].
124
+			" seul un admin peut se connecter et sans AJAX.".
125 125
 			" En cas de probleme, detruire cette meta.");
126 126
 		die(_T('info_travaux_texte'));
127 127
 	}
Please login to merge, or discard this patch.
Indentation   +76 added lines, -76 removed lines patch added patch discarded remove patch
@@ -19,14 +19,14 @@  discard block
 block discarded – undo
19 19
 /** Drapeau indiquant que l'on est dans l'espace privé */
20 20
 define('_ESPACE_PRIVE', true);
21 21
 if (!defined('_ECRIRE_INC_VERSION')) {
22
-	include 'inc_version.php';
22
+    include 'inc_version.php';
23 23
 }
24 24
 
25 25
 // Verification anti magic_quotes_sybase, pour qui addslashes("'") = "''"
26 26
 // On prefere la faire ici plutot que dans inc_version, c'est moins souvent et
27 27
 // si le reglage est modifie sur un site en prod, ca fait moins mal
28 28
 if (addslashes("'") !== "\\'") {
29
-	die('SPIP incompatible magic_quotes_sybase');
29
+    die('SPIP incompatible magic_quotes_sybase');
30 30
 }
31 31
 
32 32
 include_spip('inc/cookie');
@@ -42,18 +42,18 @@  discard block
 block discarded – undo
42 42
 // alors il faut blinder les variables d'URL
43 43
 //
44 44
 if (autoriser_sans_cookie($exec, false)) {
45
-	if (!isset($reinstall)) {
46
-		$reinstall = 'non';
47
-	}
48
-	$var_auth = true;
45
+    if (!isset($reinstall)) {
46
+        $reinstall = 'non';
47
+    }
48
+    $var_auth = true;
49 49
 } else {
50
-	// Authentification, redefinissable
51
-	$auth = charger_fonction('auth', 'inc');
52
-	$var_auth = $auth();
53
-	if ($var_auth) {
54
-		echo auth_echec($var_auth);
55
-		exit;
56
-	}
50
+    // Authentification, redefinissable
51
+    $auth = charger_fonction('auth', 'inc');
52
+    $var_auth = $auth();
53
+    if ($var_auth) {
54
+        echo auth_echec($var_auth);
55
+        exit;
56
+    }
57 57
 }
58 58
 
59 59
 // initialiser a la langue par defaut
@@ -64,29 +64,29 @@  discard block
 block discarded – undo
64 64
 
65 65
 
66 66
 if (_request('action') or _request('var_ajax') or _request('formulaire_action')) {
67
-	if (!autoriser_sans_cookie($exec)){
68
-		// Charger l'aiguilleur qui va mettre sur la bonne voie les traitements derogatoires
69
-		include_spip('public/aiguiller');
70
-		if (
71
-			// cas des appels actions ?action=xxx
72
-			traiter_appels_actions()
73
-			or
74
-			// cas des hits ajax sur les inclusions ajax
75
-			traiter_appels_inclusions_ajax()
76
-			or
77
-			// cas des formulaires charger/verifier/traiter
78
-			traiter_formulaires_dynamiques()
79
-		){
80
-			exit;
81
-		} // le hit est fini !
82
-	}
67
+    if (!autoriser_sans_cookie($exec)){
68
+        // Charger l'aiguilleur qui va mettre sur la bonne voie les traitements derogatoires
69
+        include_spip('public/aiguiller');
70
+        if (
71
+            // cas des appels actions ?action=xxx
72
+            traiter_appels_actions()
73
+            or
74
+            // cas des hits ajax sur les inclusions ajax
75
+            traiter_appels_inclusions_ajax()
76
+            or
77
+            // cas des formulaires charger/verifier/traiter
78
+            traiter_formulaires_dynamiques()
79
+        ){
80
+            exit;
81
+        } // le hit est fini !
82
+    }
83 83
 }
84 84
 // securiser les redirect du back-office
85 85
 if (_request('redirect')) {
86
-	if (!function_exists('securiser_redirect_action')){
87
-		include_spip('public/aiguiller');
88
-	}
89
-	set_request('redirect',securiser_redirect_action(_request('redirect')));
86
+    if (!function_exists('securiser_redirect_action')){
87
+        include_spip('public/aiguiller');
88
+    }
89
+    set_request('redirect',securiser_redirect_action(_request('redirect')));
90 90
 }
91 91
 
92 92
 
@@ -96,11 +96,11 @@  discard block
 block discarded – undo
96 96
 
97 97
 // Controle de la version, sauf si on est deja en train de s'en occuper
98 98
 if (!$reinstall == 'oui'
99
-	and !_AJAX
100
-	and isset($GLOBALS['meta']['version_installee'])
101
-	and ($GLOBALS['spip_version_base'] != (str_replace(',', '.', $GLOBALS['meta']['version_installee'])))
99
+    and !_AJAX
100
+    and isset($GLOBALS['meta']['version_installee'])
101
+    and ($GLOBALS['spip_version_base'] != (str_replace(',', '.', $GLOBALS['meta']['version_installee'])))
102 102
 ) {
103
-	$exec = 'demande_mise_a_jour';
103
+    $exec = 'demande_mise_a_jour';
104 104
 }
105 105
 
106 106
 // Quand une action d'administration est en cours (meta "admin"),
@@ -110,44 +110,44 @@  discard block
 block discarded – undo
110 110
 // sinon c'est qu'elle a ete interrompue et il faut la reprendre
111 111
 
112 112
 elseif (isset($GLOBALS['meta']["admin"])) {
113
-	if (preg_match('/^(.*)_(\d+)_/', $GLOBALS['meta']["admin"], $l)) {
114
-		list(, $var_f, $n) = $l;
115
-	}
116
-	if (_AJAX
117
-		or !(
118
-			isset($_COOKIE['spip_admin'])
119
-			or (isset($GLOBALS['visiteur_session']) and $GLOBALS['visiteur_session']['statut'] == '0minirezo')
120
-		)
121
-	) {
122
-		spip_log("Quand la meta admin vaut " .
123
-			$GLOBALS['meta']["admin"] .
124
-			" seul un admin peut se connecter et sans AJAX." .
125
-			" En cas de probleme, detruire cette meta.");
126
-		die(_T('info_travaux_texte'));
127
-	}
128
-	if ($n) {
129
-		list(, $var_f, $n) = $l;
130
-		if (tester_url_ecrire("base_$var_f")) {
131
-			$var_f = "base_$var_f";
132
-		}
133
-		if ($var_f != $exec) {
134
-			spip_log("Le script $var_f lance par auteur$n se substitue a l'exec $exec");
135
-			$exec = $var_f;
136
-			set_request('exec', $exec);
137
-		}
138
-	}
113
+    if (preg_match('/^(.*)_(\d+)_/', $GLOBALS['meta']["admin"], $l)) {
114
+        list(, $var_f, $n) = $l;
115
+    }
116
+    if (_AJAX
117
+        or !(
118
+            isset($_COOKIE['spip_admin'])
119
+            or (isset($GLOBALS['visiteur_session']) and $GLOBALS['visiteur_session']['statut'] == '0minirezo')
120
+        )
121
+    ) {
122
+        spip_log("Quand la meta admin vaut " .
123
+            $GLOBALS['meta']["admin"] .
124
+            " seul un admin peut se connecter et sans AJAX." .
125
+            " En cas de probleme, detruire cette meta.");
126
+        die(_T('info_travaux_texte'));
127
+    }
128
+    if ($n) {
129
+        list(, $var_f, $n) = $l;
130
+        if (tester_url_ecrire("base_$var_f")) {
131
+            $var_f = "base_$var_f";
132
+        }
133
+        if ($var_f != $exec) {
134
+            spip_log("Le script $var_f lance par auteur$n se substitue a l'exec $exec");
135
+            $exec = $var_f;
136
+            set_request('exec', $exec);
137
+        }
138
+    }
139 139
 }
140 140
 // si nom pas plausible, prendre le script par defaut
141 141
 // attention aux deux cas 404/403 qui commencent par un 4 !
142 142
 elseif (!preg_match(',^[a-z4_][0-9a-z_-]*$,i', $exec)) {
143
-	$exec = "accueil";
144
-	set_request('exec', $exec);
143
+    $exec = "accueil";
144
+    set_request('exec', $exec);
145 145
 }
146 146
 
147 147
 // compatibilite ascendante : obsolete, ne plus utiliser
148 148
 $GLOBALS['spip_display'] = isset($GLOBALS['visiteur_session']['prefs']['display'])
149
-	? (int) $GLOBALS['visiteur_session']['prefs']['display']
150
-	: 0;
149
+    ? (int) $GLOBALS['visiteur_session']['prefs']['display']
150
+    : 0;
151 151
 $GLOBALS['spip_ecran'] = isset($_COOKIE['spip_ecran']) ? preg_replace('/[^a-z0-9]/i', '', $_COOKIE['spip_ecran']) : "etroit";
152 152
 
153 153
 //  si la langue est specifiee par cookie et ne correspond pas
@@ -155,18 +155,18 @@  discard block
 block discarded – undo
155 155
 // on appelle directement la fonction, car un appel d'action peut conduire a une boucle infinie
156 156
 // si le cookie n'est pas pose correctement dans l'action
157 157
 if (!$var_auth and isset($_COOKIE['spip_lang_ecrire'])
158
-	and $_COOKIE['spip_lang_ecrire'] <> $GLOBALS['visiteur_session']['lang']
158
+    and $_COOKIE['spip_lang_ecrire'] <> $GLOBALS['visiteur_session']['lang']
159 159
 ) {
160
-	include_spip('action/converser');
161
-	action_converser_post($GLOBALS['visiteur_session']['lang'], true);
160
+    include_spip('action/converser');
161
+    action_converser_post($GLOBALS['visiteur_session']['lang'], true);
162 162
 }
163 163
 
164 164
 if ($var_f = tester_url_ecrire($exec)) {
165
-	$var_f = charger_fonction($var_f);
166
-	$var_f(); // at last
165
+    $var_f = charger_fonction($var_f);
166
+    $var_f(); // at last
167 167
 } else {
168
-	// Rien de connu: rerouter vers exec=404 au lieu d'echouer
169
-	// ce qui permet de laisser la main a un plugin
170
-	$var_f = charger_fonction('404');
171
-	$var_f($exec);
168
+    // Rien de connu: rerouter vers exec=404 au lieu d'echouer
169
+    // ce qui permet de laisser la main a un plugin
170
+    $var_f = charger_fonction('404');
171
+    $var_f($exec);
172 172
 }
Please login to merge, or discard this patch.