Completed
Push — master ( daa06b...24ef44 )
by cam
01:32
created
ecrire/action/editer_logo.php 2 patches
Indentation   +200 added lines, -200 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,36 +30,36 @@  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 (
47
-			$doc = $logo[5]
48
-			and isset($doc['id_document'])
49
-			and $id_document = $doc['id_document']
50
-		) {
51
-			include_spip('action/editer_liens');
52
-			// supprimer le lien dans la base
53
-			objet_dissocier(['document' => $id_document], [$objet => $id_objet], ['role' => '*']);
54
-
55
-			// verifier si il reste des liens avec d'autres objets et sinon supprimer
56
-			$liens = objet_trouver_liens(['document' => $id_document], '*');
57
-			if (!count($liens)) {
58
-				$supprimer_document = charger_fonction('supprimer_document', 'action');
59
-				$supprimer_document($doc['id_document']);
60
-			}
61
-		}
62
-	}
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 (
47
+            $doc = $logo[5]
48
+            and isset($doc['id_document'])
49
+            and $id_document = $doc['id_document']
50
+        ) {
51
+            include_spip('action/editer_liens');
52
+            // supprimer le lien dans la base
53
+            objet_dissocier(['document' => $id_document], [$objet => $id_objet], ['role' => '*']);
54
+
55
+            // verifier si il reste des liens avec d'autres objets et sinon supprimer
56
+            $liens = objet_trouver_liens(['document' => $id_document], '*');
57
+            if (!count($liens)) {
58
+                $supprimer_document = charger_fonction('supprimer_document', 'action');
59
+                $supprimer_document($doc['id_document']);
60
+            }
61
+        }
62
+    }
63 63
 }
64 64
 
65 65
 /**
@@ -76,177 +76,177 @@  discard block
 block discarded – undo
76 76
  *     Erreur, sinon ''
77 77
  */
78 78
 function logo_modifier($objet, $id_objet, $etat, $source) {
79
-	$chercher_logo = charger_fonction('chercher_logo', 'inc');
80
-	$objet = objet_type($objet);
81
-	$primary = id_table_objet($objet);
82
-	include_spip('inc/chercher_logo');
83
-
84
-	$mode = preg_replace(',\W,', '', $etat);
85
-	if (!$mode) {
86
-		spip_log("logo_modifier : etat $etat invalide", 'logo');
87
-		$erreur = 'etat invalide';
88
-
89
-		return $erreur;
90
-	}
91
-	// chercher dans la base
92
-	$mode_document = 'logo' . $mode;
93
-
94
-	include_spip('inc/documents');
95
-	$erreur = '';
96
-
97
-	if (!$source) {
98
-		spip_log('spip_image_ajouter : source inconnue', 'logo');
99
-		$erreur = 'source inconnue';
100
-
101
-		return $erreur;
102
-	}
103
-
104
-	// fichier dans upload/
105
-	if (is_string($source)) {
106
-		$tmp_name = false;
107
-		if (file_exists($source)) {
108
-			$tmp_name = $source;
109
-		} elseif (file_exists($f = determine_upload() . $source)) {
110
-			$tmp_name = $f;
111
-		}
112
-		if (!$tmp_name) {
113
-			spip_log('spip_image_ajouter : source inconnue', 'logo');
114
-			$erreur = 'source inconnue';
115
-
116
-			return $erreur;
117
-		}
118
-		$source = [
119
-			'tmp_name' => $tmp_name,
120
-			'name' => basename($tmp_name),
121
-		];
122
-	} elseif ($erreur = check_upload_error($source['error'], '', true)) {
123
-		return $erreur;
124
-	}
125
-
126
-	// supprimer le logo eventueel existant
127
-	// 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)
128
-	// mais de toute facon l'interface actuelle oblige a supprimer + reinserer
129
-	logo_supprimer($objet, $id_objet, $etat);
130
-
131
-
132
-	include_spip('inc/autoriser');
133
-	$source['mode'] = $mode_document;
134
-	$ajouter_documents = charger_fonction('ajouter_documents', 'action');
135
-	autoriser_exception('associerdocuments', $objet, $id_objet);
136
-	$ajoutes = $ajouter_documents('new', [$source], $objet, $id_objet, $mode_document);
137
-	autoriser_exception('associerdocuments', $objet, $id_objet, false);
138
-
139
-	$id_document = reset($ajoutes);
140
-
141
-	if (!is_numeric($id_document)) {
142
-		$erreur = ($id_document ? $id_document : 'Erreur inconnue');
143
-		spip_log("Erreur ajout logo : $erreur pour source=" . json_encode($source), 'logo');
144
-		return $erreur;
145
-	}
146
-
147
-	return ''; // tout est bon, pas d'erreur
79
+    $chercher_logo = charger_fonction('chercher_logo', 'inc');
80
+    $objet = objet_type($objet);
81
+    $primary = id_table_objet($objet);
82
+    include_spip('inc/chercher_logo');
83
+
84
+    $mode = preg_replace(',\W,', '', $etat);
85
+    if (!$mode) {
86
+        spip_log("logo_modifier : etat $etat invalide", 'logo');
87
+        $erreur = 'etat invalide';
88
+
89
+        return $erreur;
90
+    }
91
+    // chercher dans la base
92
+    $mode_document = 'logo' . $mode;
93
+
94
+    include_spip('inc/documents');
95
+    $erreur = '';
96
+
97
+    if (!$source) {
98
+        spip_log('spip_image_ajouter : source inconnue', 'logo');
99
+        $erreur = 'source inconnue';
100
+
101
+        return $erreur;
102
+    }
103
+
104
+    // fichier dans upload/
105
+    if (is_string($source)) {
106
+        $tmp_name = false;
107
+        if (file_exists($source)) {
108
+            $tmp_name = $source;
109
+        } elseif (file_exists($f = determine_upload() . $source)) {
110
+            $tmp_name = $f;
111
+        }
112
+        if (!$tmp_name) {
113
+            spip_log('spip_image_ajouter : source inconnue', 'logo');
114
+            $erreur = 'source inconnue';
115
+
116
+            return $erreur;
117
+        }
118
+        $source = [
119
+            'tmp_name' => $tmp_name,
120
+            'name' => basename($tmp_name),
121
+        ];
122
+    } elseif ($erreur = check_upload_error($source['error'], '', true)) {
123
+        return $erreur;
124
+    }
125
+
126
+    // supprimer le logo eventueel existant
127
+    // 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)
128
+    // mais de toute facon l'interface actuelle oblige a supprimer + reinserer
129
+    logo_supprimer($objet, $id_objet, $etat);
130
+
131
+
132
+    include_spip('inc/autoriser');
133
+    $source['mode'] = $mode_document;
134
+    $ajouter_documents = charger_fonction('ajouter_documents', 'action');
135
+    autoriser_exception('associerdocuments', $objet, $id_objet);
136
+    $ajoutes = $ajouter_documents('new', [$source], $objet, $id_objet, $mode_document);
137
+    autoriser_exception('associerdocuments', $objet, $id_objet, false);
138
+
139
+    $id_document = reset($ajoutes);
140
+
141
+    if (!is_numeric($id_document)) {
142
+        $erreur = ($id_document ? $id_document : 'Erreur inconnue');
143
+        spip_log("Erreur ajout logo : $erreur pour source=" . json_encode($source), 'logo');
144
+        return $erreur;
145
+    }
146
+
147
+    return ''; // tout est bon, pas d'erreur
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 = ['jpg', 'png', 'svg', 'gif'];
155
-	if (isset($GLOBALS['formats_logos'])) {
156
-		$formats_logos = $GLOBALS['formats_logos'];
157
-	}
158
-
159
-
160
-	$trouver_table = charger_fonction('trouver_table', 'base');
161
-	$chercher_logo = charger_fonction('chercher_logo', 'inc');
162
-	include_spip('inc/chercher_logo');
163
-	$_id_objet = id_table_objet($objet);
164
-	$table = table_objet_sql($objet);
165
-	$type = type_du_logo($_id_objet);
166
-	$desc = $trouver_table($table);
167
-
168
-	foreach (['on', 'off'] as $mode) {
169
-		$nom_base = $type . $mode;
170
-		$dir = (defined('_DIR_LOGOS') ? _DIR_LOGOS : _DIR_IMG);
171
-
172
-		$files = glob($dir . $nom_base . '*');
173
-		// est-ce que c'est une nouvelle tentative de migration ?
174
-		// dans ce cas les logos sont deja dans IMG/logo/
175
-		if (!count($files)) {
176
-			$files = glob($dir_logos . $nom_base . '*');
177
-			if (count($files)) {
178
-				// mais il faut verifier si ils ont pas deja ete migres pour tout ou partie
179
-				$filescheck = [];
180
-				foreach ($files as $file) {
181
-					$short = basename(dirname($file)) . DIRECTORY_SEPARATOR . basename($file);
182
-					$filescheck[$short] = $file;
183
-				}
184
-				// trouver ceux deja migres
185
-				$deja = sql_allfetsel('fichier', 'spip_documents', sql_in('fichier', array_keys($filescheck))." AND mode LIKE 'logo%'");
186
-				if (count($deja)) {
187
-					$deja = array_column($deja, 'fichier');
188
-					$restant = array_diff(array_keys($filescheck), $deja);
189
-					$files = [];
190
-					if (count($restant)) {
191
-						foreach ($restant as $r) {
192
-							$files[] = $filescheck[$r];
193
-						}
194
-					}
195
-				}
196
-				// et si il en reste on peut y aller...
197
-				// mais il faut modifier $dir qui sert de base dans la suite
198
-				if (count($files)) {
199
-					$dir = $dir_logos;
200
-				}
201
-			}
202
-		}
203
-
204
-		spip_log("logo_migrer_en_base $objet $mode : " . count($files) ." logos restant", "maj" . _LOG_INFO_IMPORTANTE);
205
-
206
-		$deja = [];
207
-		foreach ($files as $file) {
208
-			$logo = substr($file, strlen($dir . $nom_base));
209
-			$logo = explode('.', $logo);
210
-			if (
211
-				is_numeric($logo[0])
212
-				and ($id_objet = intval($logo[0]) or in_array($objet, ['site', 'rubrique']))
213
-			) {
214
-				if (!isset($deja[$id_objet])) {
215
-					$logo = $chercher_logo($id_objet, $_id_objet, $mode);
216
-					// if no logo in base
217
-					if (!$logo or count($logo) < 6) {
218
-						foreach ($formats_logos as $format) {
219
-							if (@file_exists($d = ($dir . ($nom = $nom_base . intval($id_objet) . '.' . $format)))) {
220
-								if (isset($desc['field']['date_modif'])) {
221
-									$date_modif = sql_getfetsel('date_modif', $table, "$_id_objet=$id_objet");
222
-								} else {
223
-									$date_modif = null;
224
-								}
225
-								// logo_modifier commence par supprimer le logo existant, donc on le deplace pour pas le perdre
226
-								@rename($d, $dir_logos . $nom);
227
-								// et on le declare comme nouveau logo
228
-								logo_modifier($objet, $id_objet, $mode, $dir_logos . $nom);
229
-								if ($date_modif) {
230
-									sql_updateq($table, ['date_modif' => $date_modif], "$_id_objet=$id_objet");
231
-								}
232
-								break;
233
-							}
234
-						}
235
-					}
236
-					$deja[$id_objet] = true;
237
-				}
238
-			}
239
-			// si le fichier est encore la on le move : rien a faire ici
240
-			// (sauf si c'est une re-migration : il est deja dans logo/ donc il bouge pas)
241
-			if ($dir !== $dir_logos and file_exists($file)) {
242
-				@rename($file, $dir_logos_erreurs . basename($file));
243
-			}
244
-
245
-			if ($time_limit and time() > $time_limit) {
246
-				effacer_meta('drapeau_edition');
247
-				return;
248
-			}
249
-		}
250
-	}
251
-	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 = ['jpg', 'png', 'svg', 'gif'];
155
+    if (isset($GLOBALS['formats_logos'])) {
156
+        $formats_logos = $GLOBALS['formats_logos'];
157
+    }
158
+
159
+
160
+    $trouver_table = charger_fonction('trouver_table', 'base');
161
+    $chercher_logo = charger_fonction('chercher_logo', 'inc');
162
+    include_spip('inc/chercher_logo');
163
+    $_id_objet = id_table_objet($objet);
164
+    $table = table_objet_sql($objet);
165
+    $type = type_du_logo($_id_objet);
166
+    $desc = $trouver_table($table);
167
+
168
+    foreach (['on', 'off'] as $mode) {
169
+        $nom_base = $type . $mode;
170
+        $dir = (defined('_DIR_LOGOS') ? _DIR_LOGOS : _DIR_IMG);
171
+
172
+        $files = glob($dir . $nom_base . '*');
173
+        // est-ce que c'est une nouvelle tentative de migration ?
174
+        // dans ce cas les logos sont deja dans IMG/logo/
175
+        if (!count($files)) {
176
+            $files = glob($dir_logos . $nom_base . '*');
177
+            if (count($files)) {
178
+                // mais il faut verifier si ils ont pas deja ete migres pour tout ou partie
179
+                $filescheck = [];
180
+                foreach ($files as $file) {
181
+                    $short = basename(dirname($file)) . DIRECTORY_SEPARATOR . basename($file);
182
+                    $filescheck[$short] = $file;
183
+                }
184
+                // trouver ceux deja migres
185
+                $deja = sql_allfetsel('fichier', 'spip_documents', sql_in('fichier', array_keys($filescheck))." AND mode LIKE 'logo%'");
186
+                if (count($deja)) {
187
+                    $deja = array_column($deja, 'fichier');
188
+                    $restant = array_diff(array_keys($filescheck), $deja);
189
+                    $files = [];
190
+                    if (count($restant)) {
191
+                        foreach ($restant as $r) {
192
+                            $files[] = $filescheck[$r];
193
+                        }
194
+                    }
195
+                }
196
+                // et si il en reste on peut y aller...
197
+                // mais il faut modifier $dir qui sert de base dans la suite
198
+                if (count($files)) {
199
+                    $dir = $dir_logos;
200
+                }
201
+            }
202
+        }
203
+
204
+        spip_log("logo_migrer_en_base $objet $mode : " . count($files) ." logos restant", "maj" . _LOG_INFO_IMPORTANTE);
205
+
206
+        $deja = [];
207
+        foreach ($files as $file) {
208
+            $logo = substr($file, strlen($dir . $nom_base));
209
+            $logo = explode('.', $logo);
210
+            if (
211
+                is_numeric($logo[0])
212
+                and ($id_objet = intval($logo[0]) or in_array($objet, ['site', 'rubrique']))
213
+            ) {
214
+                if (!isset($deja[$id_objet])) {
215
+                    $logo = $chercher_logo($id_objet, $_id_objet, $mode);
216
+                    // if no logo in base
217
+                    if (!$logo or count($logo) < 6) {
218
+                        foreach ($formats_logos as $format) {
219
+                            if (@file_exists($d = ($dir . ($nom = $nom_base . intval($id_objet) . '.' . $format)))) {
220
+                                if (isset($desc['field']['date_modif'])) {
221
+                                    $date_modif = sql_getfetsel('date_modif', $table, "$_id_objet=$id_objet");
222
+                                } else {
223
+                                    $date_modif = null;
224
+                                }
225
+                                // logo_modifier commence par supprimer le logo existant, donc on le deplace pour pas le perdre
226
+                                @rename($d, $dir_logos . $nom);
227
+                                // et on le declare comme nouveau logo
228
+                                logo_modifier($objet, $id_objet, $mode, $dir_logos . $nom);
229
+                                if ($date_modif) {
230
+                                    sql_updateq($table, ['date_modif' => $date_modif], "$_id_objet=$id_objet");
231
+                                }
232
+                                break;
233
+                            }
234
+                        }
235
+                    }
236
+                    $deja[$id_objet] = true;
237
+                }
238
+            }
239
+            // si le fichier est encore la on le move : rien a faire ici
240
+            // (sauf si c'est une re-migration : il est deja dans logo/ donc il bouge pas)
241
+            if ($dir !== $dir_logos and file_exists($file)) {
242
+                @rename($file, $dir_logos_erreurs . basename($file));
243
+            }
244
+
245
+            if ($time_limit and time() > $time_limit) {
246
+                effacer_meta('drapeau_edition');
247
+                return;
248
+            }
249
+        }
250
+    }
251
+    effacer_meta('drapeau_edition');
252 252
 }
Please login to merge, or discard this patch.
Spacing   +13 added lines, -13 removed lines patch added patch discarded remove patch
@@ -89,7 +89,7 @@  discard block
 block discarded – undo
89 89
 		return $erreur;
90 90
 	}
91 91
 	// chercher dans la base
92
-	$mode_document = 'logo' . $mode;
92
+	$mode_document = 'logo'.$mode;
93 93
 
94 94
 	include_spip('inc/documents');
95 95
 	$erreur = '';
@@ -106,7 +106,7 @@  discard block
 block discarded – undo
106 106
 		$tmp_name = false;
107 107
 		if (file_exists($source)) {
108 108
 			$tmp_name = $source;
109
-		} elseif (file_exists($f = determine_upload() . $source)) {
109
+		} elseif (file_exists($f = determine_upload().$source)) {
110 110
 			$tmp_name = $f;
111 111
 		}
112 112
 		if (!$tmp_name) {
@@ -140,7 +140,7 @@  discard block
 block discarded – undo
140 140
 
141 141
 	if (!is_numeric($id_document)) {
142 142
 		$erreur = ($id_document ? $id_document : 'Erreur inconnue');
143
-		spip_log("Erreur ajout logo : $erreur pour source=" . json_encode($source), 'logo');
143
+		spip_log("Erreur ajout logo : $erreur pour source=".json_encode($source), 'logo');
144 144
 		return $erreur;
145 145
 	}
146 146
 
@@ -166,19 +166,19 @@  discard block
 block discarded – undo
166 166
 	$desc = $trouver_table($table);
167 167
 
168 168
 	foreach (['on', 'off'] as $mode) {
169
-		$nom_base = $type . $mode;
169
+		$nom_base = $type.$mode;
170 170
 		$dir = (defined('_DIR_LOGOS') ? _DIR_LOGOS : _DIR_IMG);
171 171
 
172
-		$files = glob($dir . $nom_base . '*');
172
+		$files = glob($dir.$nom_base.'*');
173 173
 		// est-ce que c'est une nouvelle tentative de migration ?
174 174
 		// dans ce cas les logos sont deja dans IMG/logo/
175 175
 		if (!count($files)) {
176
-			$files = glob($dir_logos . $nom_base . '*');
176
+			$files = glob($dir_logos.$nom_base.'*');
177 177
 			if (count($files)) {
178 178
 				// mais il faut verifier si ils ont pas deja ete migres pour tout ou partie
179 179
 				$filescheck = [];
180 180
 				foreach ($files as $file) {
181
-					$short = basename(dirname($file)) . DIRECTORY_SEPARATOR . basename($file);
181
+					$short = basename(dirname($file)).DIRECTORY_SEPARATOR.basename($file);
182 182
 					$filescheck[$short] = $file;
183 183
 				}
184 184
 				// trouver ceux deja migres
@@ -201,11 +201,11 @@  discard block
 block discarded – undo
201 201
 			}
202 202
 		}
203 203
 
204
-		spip_log("logo_migrer_en_base $objet $mode : " . count($files) ." logos restant", "maj" . _LOG_INFO_IMPORTANTE);
204
+		spip_log("logo_migrer_en_base $objet $mode : ".count($files)." logos restant", "maj"._LOG_INFO_IMPORTANTE);
205 205
 
206 206
 		$deja = [];
207 207
 		foreach ($files as $file) {
208
-			$logo = substr($file, strlen($dir . $nom_base));
208
+			$logo = substr($file, strlen($dir.$nom_base));
209 209
 			$logo = explode('.', $logo);
210 210
 			if (
211 211
 				is_numeric($logo[0])
@@ -216,16 +216,16 @@  discard block
 block discarded – undo
216 216
 					// if no logo in base
217 217
 					if (!$logo or count($logo) < 6) {
218 218
 						foreach ($formats_logos as $format) {
219
-							if (@file_exists($d = ($dir . ($nom = $nom_base . intval($id_objet) . '.' . $format)))) {
219
+							if (@file_exists($d = ($dir.($nom = $nom_base.intval($id_objet).'.'.$format)))) {
220 220
 								if (isset($desc['field']['date_modif'])) {
221 221
 									$date_modif = sql_getfetsel('date_modif', $table, "$_id_objet=$id_objet");
222 222
 								} else {
223 223
 									$date_modif = null;
224 224
 								}
225 225
 								// logo_modifier commence par supprimer le logo existant, donc on le deplace pour pas le perdre
226
-								@rename($d, $dir_logos . $nom);
226
+								@rename($d, $dir_logos.$nom);
227 227
 								// et on le declare comme nouveau logo
228
-								logo_modifier($objet, $id_objet, $mode, $dir_logos . $nom);
228
+								logo_modifier($objet, $id_objet, $mode, $dir_logos.$nom);
229 229
 								if ($date_modif) {
230 230
 									sql_updateq($table, ['date_modif' => $date_modif], "$_id_objet=$id_objet");
231 231
 								}
@@ -239,7 +239,7 @@  discard block
 block discarded – undo
239 239
 			// si le fichier est encore la on le move : rien a faire ici
240 240
 			// (sauf si c'est une re-migration : il est deja dans logo/ donc il bouge pas)
241 241
 			if ($dir !== $dir_logos and file_exists($file)) {
242
-				@rename($file, $dir_logos_erreurs . basename($file));
242
+				@rename($file, $dir_logos_erreurs.basename($file));
243 243
 			}
244 244
 
245 245
 			if ($time_limit and time() > $time_limit) {
Please login to merge, or discard this patch.