Completed
Push — master ( 8b5a3c...b0cbd6 )
by cam
01:56
created
ecrire/action/editer_liens.php 3 patches
Indentation   +558 added lines, -558 removed lines patch added patch discarded remove patch
@@ -28,7 +28,7 @@  discard block
 block discarded – undo
28 28
  */
29 29
 
30 30
 if (!defined('_ECRIRE_INC_VERSION')) {
31
-	return;
31
+    return;
32 32
 }
33 33
 
34 34
 // charger la gestion les rôles sur les objets
@@ -46,22 +46,22 @@  discard block
 block discarded – undo
46 46
  *     - array(clé primaire, nom de la table de lien) si associable
47 47
  */
48 48
 function objet_associable($objet) {
49
-	$trouver_table = charger_fonction('trouver_table', 'base');
50
-	$table_sql = table_objet_sql($objet);
51
-
52
-	$l = '';
53
-	if (
54
-		($primary = id_table_objet($objet))
55
-		&& $trouver_table($l = $table_sql . '_liens', '', true, ['log_missing' => false])
56
-		&& !preg_match(',[^\w],', $primary)
57
-		&& !preg_match(',[^\w],', $l)
58
-	) {
59
-		return [$primary, $l];
60
-	}
61
-
62
-	spip_log("Objet $objet non associable : ne dispose pas d'une cle primaire $primary OU d'une table liens $l");
63
-
64
-	return false;
49
+    $trouver_table = charger_fonction('trouver_table', 'base');
50
+    $table_sql = table_objet_sql($objet);
51
+
52
+    $l = '';
53
+    if (
54
+        ($primary = id_table_objet($objet))
55
+        && $trouver_table($l = $table_sql . '_liens', '', true, ['log_missing' => false])
56
+        && !preg_match(',[^\w],', $primary)
57
+        && !preg_match(',[^\w],', $l)
58
+    ) {
59
+        return [$primary, $l];
60
+    }
61
+
62
+    spip_log("Objet $objet non associable : ne dispose pas d'une cle primaire $primary OU d'une table liens $l");
63
+
64
+    return false;
65 65
 }
66 66
 
67 67
 /**
@@ -87,13 +87,13 @@  discard block
 block discarded – undo
87 87
  * @return bool|int
88 88
  */
89 89
 function objet_associer($objets_source, $objets_lies, $qualif = null) {
90
-	$modifs = objet_traiter_liaisons('lien_insert', $objets_source, $objets_lies, $qualif);
90
+    $modifs = objet_traiter_liaisons('lien_insert', $objets_source, $objets_lies, $qualif);
91 91
 
92
-	if ($qualif) {
93
-		objet_qualifier_liens($objets_source, $objets_lies, $qualif);
94
-	}
92
+    if ($qualif) {
93
+        objet_qualifier_liens($objets_source, $objets_lies, $qualif);
94
+    }
95 95
 
96
-	return $modifs; // pas d'erreur
96
+    return $modifs; // pas d'erreur
97 97
 }
98 98
 
99 99
 
@@ -127,7 +127,7 @@  discard block
 block discarded – undo
127 127
  * @return bool|int
128 128
  */
129 129
 function objet_dissocier($objets_source, $objets_lies, $cond = null) {
130
-	return objet_traiter_liaisons('lien_delete', $objets_source, $objets_lies, $cond);
130
+    return objet_traiter_liaisons('lien_delete', $objets_source, $objets_lies, $cond);
131 131
 }
132 132
 
133 133
 
@@ -152,7 +152,7 @@  discard block
 block discarded – undo
152 152
  * @return bool|int
153 153
  */
154 154
 function objet_qualifier_liens($objets_source, $objets_lies, $qualif) {
155
-	return objet_traiter_liaisons('lien_set', $objets_source, $objets_lies, $qualif);
155
+    return objet_traiter_liaisons('lien_set', $objets_source, $objets_lies, $qualif);
156 156
 }
157 157
 
158 158
 
@@ -187,7 +187,7 @@  discard block
 block discarded – undo
187 187
  *     Liste des trouvailles
188 188
  */
189 189
 function objet_trouver_liens($objets_source, $objets_lies, $cond = null) {
190
-	return objet_traiter_liaisons('lien_find', $objets_source, $objets_lies, $cond);
190
+    return objet_traiter_liaisons('lien_find', $objets_source, $objets_lies, $cond);
191 191
 }
192 192
 
193 193
 
@@ -211,8 +211,8 @@  discard block
 block discarded – undo
211 211
  * @return int
212 212
  */
213 213
 function objet_optimiser_liens($objets_source, $objets_lies) {
214
-	spip_log('objet_optimiser_liens : ' . json_encode($objets_source, JSON_THROW_ON_ERROR) . ', ' . json_encode($objets_lies, JSON_THROW_ON_ERROR), 'genie' . _LOG_DEBUG);
215
-	return objet_traiter_liaisons('lien_optimise', $objets_source, $objets_lies);
214
+    spip_log('objet_optimiser_liens : ' . json_encode($objets_source, JSON_THROW_ON_ERROR) . ', ' . json_encode($objets_lies, JSON_THROW_ON_ERROR), 'genie' . _LOG_DEBUG);
215
+    return objet_traiter_liaisons('lien_optimise', $objets_source, $objets_lies);
216 216
 }
217 217
 
218 218
 
@@ -232,30 +232,30 @@  discard block
 block discarded – undo
232 232
  *     Nombre de liens copiés
233 233
  */
234 234
 function objet_dupliquer_liens($objet, $id_source, $id_cible, $types = null, $exclure_types = null) {
235
-	include_spip('base/objets');
236
-	$tables = lister_tables_objets_sql();
237
-	$n = 0;
238
-	foreach ($tables as $table_sql => $infos) {
239
-		if ((is_null($types) || in_array($infos['type'], $types)) && (is_null($exclure_types) || !in_array($infos['type'], $exclure_types)) && objet_associable($infos['type'])) {
240
-			$liens = (($infos['type'] == $objet)
241
-				? objet_trouver_liens([$objet => $id_source], '*')
242
-				: objet_trouver_liens([$infos['type'] => '*'], [$objet => $id_source]));
243
-			foreach ($liens as $lien) {
244
-				$n++;
245
-				if ($infos['type'] == $objet) {
246
-					if (
247
-						(is_null($types) || in_array($lien['objet'], $types)) && (is_null($exclure_types) || !in_array($lien['objet'], $exclure_types))
248
-					) {
249
-						objet_associer([$objet => $id_cible], [$lien['objet'] => $lien[$lien['objet']]], $lien);
250
-					}
251
-				} else {
252
-					objet_associer([$infos['type'] => $lien[$infos['type']]], [$objet => $id_cible], $lien);
253
-				}
254
-			}
255
-		}
256
-	}
257
-
258
-	return $n;
235
+    include_spip('base/objets');
236
+    $tables = lister_tables_objets_sql();
237
+    $n = 0;
238
+    foreach ($tables as $table_sql => $infos) {
239
+        if ((is_null($types) || in_array($infos['type'], $types)) && (is_null($exclure_types) || !in_array($infos['type'], $exclure_types)) && objet_associable($infos['type'])) {
240
+            $liens = (($infos['type'] == $objet)
241
+                ? objet_trouver_liens([$objet => $id_source], '*')
242
+                : objet_trouver_liens([$infos['type'] => '*'], [$objet => $id_source]));
243
+            foreach ($liens as $lien) {
244
+                $n++;
245
+                if ($infos['type'] == $objet) {
246
+                    if (
247
+                        (is_null($types) || in_array($lien['objet'], $types)) && (is_null($exclure_types) || !in_array($lien['objet'], $exclure_types))
248
+                    ) {
249
+                        objet_associer([$objet => $id_cible], [$lien['objet'] => $lien[$lien['objet']]], $lien);
250
+                    }
251
+                } else {
252
+                    objet_associer([$infos['type'] => $lien[$infos['type']]], [$objet => $id_cible], $lien);
253
+                }
254
+            }
255
+        }
256
+    }
257
+
258
+    return $n;
259 259
 }
260 260
 
261 261
 /**
@@ -297,38 +297,38 @@  discard block
 block discarded – undo
297 297
  * @return bool|int|array
298 298
  */
299 299
 function objet_traiter_liaisons($operation, $objets_source, $objets_lies, $set = null) {
300
-	// accepter une syntaxe minimale pour supprimer tous les liens
301
-	if ($objets_lies == '*') {
302
-		$objets_lies = ['*' => '*'];
303
-	}
304
-	$modifs = 0; // compter le nombre de modifications
305
-	$echec = null;
306
-	foreach ($objets_source as $objet => $ids) {
307
-		if ($a = objet_associable($objet)) {
308
-			[$primary, $l] = $a;
309
-			if (!is_array($ids)) {
310
-				$ids = [$ids];
311
-			} elseif (reset($ids) == 'NOT') {
312
-				// si on demande un array('NOT',...) => recuperer la liste d'ids correspondants
313
-				$where = lien_where($primary, $ids, '*', '*');
314
-				$ids = sql_allfetsel($primary, $l, $where);
315
-				$ids = array_map('reset', $ids);
316
-			}
317
-			foreach ($ids as $id) {
318
-				$res = $operation($objet, $primary, $l, $id, $objets_lies, $set);
319
-				if ($res === false) {
320
-					spip_log("objet_traiter_liaisons [Echec] : $operation sur $objet/$primary/$l/$id", _LOG_ERREUR);
321
-					$echec = true;
322
-				} else {
323
-					$modifs = ($modifs ? (is_array($res) ? array_merge($modifs, $res) : $modifs + $res) : $res);
324
-				}
325
-			}
326
-		} else {
327
-			$echec = true;
328
-		}
329
-	}
330
-
331
-	return ($echec ? false : $modifs); // pas d'erreur
300
+    // accepter une syntaxe minimale pour supprimer tous les liens
301
+    if ($objets_lies == '*') {
302
+        $objets_lies = ['*' => '*'];
303
+    }
304
+    $modifs = 0; // compter le nombre de modifications
305
+    $echec = null;
306
+    foreach ($objets_source as $objet => $ids) {
307
+        if ($a = objet_associable($objet)) {
308
+            [$primary, $l] = $a;
309
+            if (!is_array($ids)) {
310
+                $ids = [$ids];
311
+            } elseif (reset($ids) == 'NOT') {
312
+                // si on demande un array('NOT',...) => recuperer la liste d'ids correspondants
313
+                $where = lien_where($primary, $ids, '*', '*');
314
+                $ids = sql_allfetsel($primary, $l, $where);
315
+                $ids = array_map('reset', $ids);
316
+            }
317
+            foreach ($ids as $id) {
318
+                $res = $operation($objet, $primary, $l, $id, $objets_lies, $set);
319
+                if ($res === false) {
320
+                    spip_log("objet_traiter_liaisons [Echec] : $operation sur $objet/$primary/$l/$id", _LOG_ERREUR);
321
+                    $echec = true;
322
+                } else {
323
+                    $modifs = ($modifs ? (is_array($res) ? array_merge($modifs, $res) : $modifs + $res) : $res);
324
+                }
325
+            }
326
+        } else {
327
+            $echec = true;
328
+        }
329
+    }
330
+
331
+    return ($echec ? false : $modifs); // pas d'erreur
332 332
 }
333 333
 
334 334
 
@@ -357,116 +357,116 @@  discard block
 block discarded – undo
357 357
  *     Nombre d'insertions faites, false si échec.
358 358
  */
359 359
 function lien_insert($objet_source, $primary, $table_lien, $id, $objets, $qualif) {
360
-	$ins = 0;
361
-	$echec = null;
362
-	if (is_null($qualif)) {
363
-		$qualif = [];
364
-	}
365
-
366
-	foreach ($objets as $objet => $id_objets) {
367
-		if (!is_array($id_objets)) {
368
-			$id_objets = [$id_objets];
369
-		}
370
-
371
-		// role, colonne, where par défaut
372
-		[$role, $colonne_role, $cond] =
373
-			roles_trouver_dans_qualif($objet_source, $objet, $qualif);
374
-
375
-		foreach ($id_objets as $id_objet) {
376
-			$objet = (($objet == '*') ? $objet : objet_type($objet)); # securite
377
-
378
-			$insertions = [
379
-				'id_objet' => $id_objet,
380
-				'objet' => $objet,
381
-				$primary => $id
382
-			];
383
-			// rôle en plus s'il est défini
384
-			if ($role) {
385
-				$insertions += [
386
-					$colonne_role => $role
387
-				];
388
-			}
389
-
390
-			if (lien_triables($table_lien)) {
391
-				if (isset($qualif['rang_lien'])) {
392
-					$rang = $qualif['rang_lien'];
393
-				}
394
-				else {
395
-					$where = lien_where($primary, $id, $objet, $id_objet);
396
-					// si il y a deja un lien pour ce couple (avec un autre role?) on reprend le meme rang si non nul
397
-					if (!$rang = (int) sql_getfetsel('rang_lien', $table_lien, $where)) {
398
-						$where = lien_rang_where($table_lien, $primary, $id, $objet, $id_objet);
399
-						$rang = (int) sql_getfetsel('max(rang_lien)', $table_lien, $where);
400
-						// si aucun lien n'a de rang, on en introduit pas, on garde zero
401
-						if ($rang > 0) {
402
-							$rang = (int) $rang + 1;
403
-						}
404
-					}
405
-				}
406
-				$insertions['rang_lien'] = $rang;
407
-			}
408
-
409
-			$args = [
410
-				'table_lien' => $table_lien,
411
-				'objet_source' => $objet_source,
412
-				'id_objet_source' => $id,
413
-				'objet' => $objet,
414
-				'id_objet' => $id_objet,
415
-				'role' => $role,
416
-				'colonne_role' => $colonne_role,
417
-				'action' => 'insert',
418
-			];
419
-
420
-			// Envoyer aux plugins
421
-			$insertions = pipeline(
422
-				'pre_edition_lien',
423
-				[
424
-					'args' => $args,
425
-					'data' => $insertions
426
-				]
427
-			);
428
-			$args['id_objet'] = $insertions['id_objet'];
429
-
430
-			$where = lien_where($primary, $id, $objet, $id_objet, $cond);
431
-
432
-			if (
433
-				(($id_objet = (int) $insertions['id_objet']) || in_array($objet, ['site', 'rubrique'])) && !sql_getfetsel($primary, $table_lien, $where)
434
-			) {
435
-				if (lien_triables($table_lien) && isset($insertions['rang_lien']) && (int) $insertions['rang_lien']) {
436
-					$where_meme_lien = lien_where($primary, $id, $objet, $id_objet);
437
-					$where_meme_lien = implode(' AND ', $where_meme_lien);
438
-					// on decale les liens de rang_lien>=la valeur inseree pour faire la place
439
-					// sauf sur le meme lien avec un role eventuellement different
440
-					$w = lien_rang_where($table_lien, $primary, $id, $objet, $id_objet, ['rang_lien>=' . (int) $insertions['rang_lien'], "NOT($where_meme_lien)"]);
441
-					sql_update($table_lien, ['rang_lien' => 'rang_lien+1'], $w);
442
-				}
443
-
444
-				$e = sql_insertq($table_lien, $insertions);
445
-				if ($e !== false) {
446
-					$ins++;
447
-					lien_propage_date_modif($objet, $id_objet);
448
-					lien_propage_date_modif($objet_source, $id);
449
-					// Envoyer aux plugins
450
-					pipeline(
451
-						'post_edition_lien',
452
-						[
453
-							'args' => $args,
454
-							'data' => $insertions
455
-						]
456
-					);
457
-				} else {
458
-					$echec = true;
459
-				}
460
-			}
461
-		}
462
-	}
463
-	// si on a fait des insertions, on reordonne les liens concernes
464
-	// pas la peine si $qualif['rang_lien'] etait fournie, on va passer dans lien_set a suivre et donc finir le recomptage
465
-	if ($ins > 0 && empty($qualif['rang_lien'])) {
466
-		lien_ordonner($objet_source, $primary, $table_lien, $id, $objets);
467
-	}
468
-
469
-	return ($echec ? false : $ins);
360
+    $ins = 0;
361
+    $echec = null;
362
+    if (is_null($qualif)) {
363
+        $qualif = [];
364
+    }
365
+
366
+    foreach ($objets as $objet => $id_objets) {
367
+        if (!is_array($id_objets)) {
368
+            $id_objets = [$id_objets];
369
+        }
370
+
371
+        // role, colonne, where par défaut
372
+        [$role, $colonne_role, $cond] =
373
+            roles_trouver_dans_qualif($objet_source, $objet, $qualif);
374
+
375
+        foreach ($id_objets as $id_objet) {
376
+            $objet = (($objet == '*') ? $objet : objet_type($objet)); # securite
377
+
378
+            $insertions = [
379
+                'id_objet' => $id_objet,
380
+                'objet' => $objet,
381
+                $primary => $id
382
+            ];
383
+            // rôle en plus s'il est défini
384
+            if ($role) {
385
+                $insertions += [
386
+                    $colonne_role => $role
387
+                ];
388
+            }
389
+
390
+            if (lien_triables($table_lien)) {
391
+                if (isset($qualif['rang_lien'])) {
392
+                    $rang = $qualif['rang_lien'];
393
+                }
394
+                else {
395
+                    $where = lien_where($primary, $id, $objet, $id_objet);
396
+                    // si il y a deja un lien pour ce couple (avec un autre role?) on reprend le meme rang si non nul
397
+                    if (!$rang = (int) sql_getfetsel('rang_lien', $table_lien, $where)) {
398
+                        $where = lien_rang_where($table_lien, $primary, $id, $objet, $id_objet);
399
+                        $rang = (int) sql_getfetsel('max(rang_lien)', $table_lien, $where);
400
+                        // si aucun lien n'a de rang, on en introduit pas, on garde zero
401
+                        if ($rang > 0) {
402
+                            $rang = (int) $rang + 1;
403
+                        }
404
+                    }
405
+                }
406
+                $insertions['rang_lien'] = $rang;
407
+            }
408
+
409
+            $args = [
410
+                'table_lien' => $table_lien,
411
+                'objet_source' => $objet_source,
412
+                'id_objet_source' => $id,
413
+                'objet' => $objet,
414
+                'id_objet' => $id_objet,
415
+                'role' => $role,
416
+                'colonne_role' => $colonne_role,
417
+                'action' => 'insert',
418
+            ];
419
+
420
+            // Envoyer aux plugins
421
+            $insertions = pipeline(
422
+                'pre_edition_lien',
423
+                [
424
+                    'args' => $args,
425
+                    'data' => $insertions
426
+                ]
427
+            );
428
+            $args['id_objet'] = $insertions['id_objet'];
429
+
430
+            $where = lien_where($primary, $id, $objet, $id_objet, $cond);
431
+
432
+            if (
433
+                (($id_objet = (int) $insertions['id_objet']) || in_array($objet, ['site', 'rubrique'])) && !sql_getfetsel($primary, $table_lien, $where)
434
+            ) {
435
+                if (lien_triables($table_lien) && isset($insertions['rang_lien']) && (int) $insertions['rang_lien']) {
436
+                    $where_meme_lien = lien_where($primary, $id, $objet, $id_objet);
437
+                    $where_meme_lien = implode(' AND ', $where_meme_lien);
438
+                    // on decale les liens de rang_lien>=la valeur inseree pour faire la place
439
+                    // sauf sur le meme lien avec un role eventuellement different
440
+                    $w = lien_rang_where($table_lien, $primary, $id, $objet, $id_objet, ['rang_lien>=' . (int) $insertions['rang_lien'], "NOT($where_meme_lien)"]);
441
+                    sql_update($table_lien, ['rang_lien' => 'rang_lien+1'], $w);
442
+                }
443
+
444
+                $e = sql_insertq($table_lien, $insertions);
445
+                if ($e !== false) {
446
+                    $ins++;
447
+                    lien_propage_date_modif($objet, $id_objet);
448
+                    lien_propage_date_modif($objet_source, $id);
449
+                    // Envoyer aux plugins
450
+                    pipeline(
451
+                        'post_edition_lien',
452
+                        [
453
+                            'args' => $args,
454
+                            'data' => $insertions
455
+                        ]
456
+                    );
457
+                } else {
458
+                    $echec = true;
459
+                }
460
+            }
461
+        }
462
+    }
463
+    // si on a fait des insertions, on reordonne les liens concernes
464
+    // pas la peine si $qualif['rang_lien'] etait fournie, on va passer dans lien_set a suivre et donc finir le recomptage
465
+    if ($ins > 0 && empty($qualif['rang_lien'])) {
466
+        lien_ordonner($objet_source, $primary, $table_lien, $id, $objets);
467
+    }
468
+
469
+    return ($echec ? false : $ins);
470 470
 }
471 471
 
472 472
 
@@ -479,47 +479,47 @@  discard block
 block discarded – undo
479 479
  * @param array|string $objets
480 480
  */
481 481
 function lien_ordonner($objet_source, $primary, $table_lien, $id, $objets) {
482
-	if (!lien_triables($table_lien)) {
483
-		return;
484
-	}
485
-
486
-	$deja_reordonne = [];
487
-
488
-	foreach ($objets as $objet => $id_objets) {
489
-		if (!is_array($id_objets)) {
490
-			$id_objets = [$id_objets];
491
-		}
492
-
493
-		foreach ($id_objets as $id_objet) {
494
-			if (empty($deja_reordonne[$id][$objet][$id_objet])) {
495
-				$objet = (($objet == '*') ? $objet : objet_type($objet)); # securite
496
-
497
-				$where = lien_rang_where($table_lien, $primary, $id, $objet, $id_objet);
498
-				$liens = sql_allfetsel("$primary, id_objet, objet, rang_lien", $table_lien, $where, '', 'rang_lien');
499
-
500
-				$rangs = array_column($liens, 'rang_lien');
501
-				if (count($rangs) && (max($rangs) > 0 || min($rangs) < 0)) {
502
-					$rang = 1;
503
-					foreach ($liens as $lien) {
504
-						if (empty($deja_reordonne[$lien[$primary]][$lien['objet']][$lien['id_objet']])) {
505
-							$where = lien_where($primary, $lien[$primary], $lien['objet'], $lien['id_objet'], ['rang_lien!=' . (int) $rang]);
506
-							sql_updateq($table_lien, ['rang_lien' => $rang], $where);
507
-
508
-							if (empty($deja_reordonne[$lien[$primary]])) {
509
-								$deja_reordonne[$lien[$primary]] = [];
510
-							}
511
-							if (empty($deja_reordonne[$lien[$primary]][$lien['objet']])) {
512
-								$deja_reordonne[$lien[$primary]][$lien['objet']] = [];
513
-							}
514
-							$deja_reordonne[$lien[$primary]][$lien['objet']][$lien['id_objet']] = $rang;
515
-
516
-							$rang++;
517
-						}
518
-					}
519
-				}
520
-			}
521
-		}
522
-	}
482
+    if (!lien_triables($table_lien)) {
483
+        return;
484
+    }
485
+
486
+    $deja_reordonne = [];
487
+
488
+    foreach ($objets as $objet => $id_objets) {
489
+        if (!is_array($id_objets)) {
490
+            $id_objets = [$id_objets];
491
+        }
492
+
493
+        foreach ($id_objets as $id_objet) {
494
+            if (empty($deja_reordonne[$id][$objet][$id_objet])) {
495
+                $objet = (($objet == '*') ? $objet : objet_type($objet)); # securite
496
+
497
+                $where = lien_rang_where($table_lien, $primary, $id, $objet, $id_objet);
498
+                $liens = sql_allfetsel("$primary, id_objet, objet, rang_lien", $table_lien, $where, '', 'rang_lien');
499
+
500
+                $rangs = array_column($liens, 'rang_lien');
501
+                if (count($rangs) && (max($rangs) > 0 || min($rangs) < 0)) {
502
+                    $rang = 1;
503
+                    foreach ($liens as $lien) {
504
+                        if (empty($deja_reordonne[$lien[$primary]][$lien['objet']][$lien['id_objet']])) {
505
+                            $where = lien_where($primary, $lien[$primary], $lien['objet'], $lien['id_objet'], ['rang_lien!=' . (int) $rang]);
506
+                            sql_updateq($table_lien, ['rang_lien' => $rang], $where);
507
+
508
+                            if (empty($deja_reordonne[$lien[$primary]])) {
509
+                                $deja_reordonne[$lien[$primary]] = [];
510
+                            }
511
+                            if (empty($deja_reordonne[$lien[$primary]][$lien['objet']])) {
512
+                                $deja_reordonne[$lien[$primary]][$lien['objet']] = [];
513
+                            }
514
+                            $deja_reordonne[$lien[$primary]][$lien['objet']][$lien['id_objet']] = $rang;
515
+
516
+                            $rang++;
517
+                        }
518
+                    }
519
+                }
520
+            }
521
+        }
522
+    }
523 523
 }
524 524
 
525 525
 
@@ -530,13 +530,13 @@  discard block
 block discarded – undo
530 530
  * @return mixed
531 531
  */
532 532
 function lien_triables($table_lien) {
533
-	static $triables = [];
534
-	if (!isset($triables[$table_lien])) {
535
-		$trouver_table = charger_fonction('trouver_table', 'base');
536
-		$desc = $trouver_table($table_lien);
537
-		$triables[$table_lien] = $desc && isset($desc['field']['rang_lien']);
538
-	}
539
-	return $triables[$table_lien];
533
+    static $triables = [];
534
+    if (!isset($triables[$table_lien])) {
535
+        $trouver_table = charger_fonction('trouver_table', 'base');
536
+        $desc = $trouver_table($table_lien);
537
+        $triables[$table_lien] = $desc && isset($desc['field']['rang_lien']);
538
+    }
539
+    return $triables[$table_lien];
540 540
 }
541 541
 
542 542
 
@@ -552,50 +552,50 @@  discard block
 block discarded – undo
552 552
  * @return array                        Liste des conditions
553 553
  */
554 554
 function lien_where($primary, $id_source, $objet, $id_objet, $cond = []) {
555
-	if (
556
-		!is_array($id_source) && !strlen($id_source) || !strlen($objet) || !is_array($id_objet) && !strlen($id_objet)
557
-	) {
558
-		return ['0=1'];
559
-	} // securite
560
-
561
-	$not = '';
562
-	if (is_array($id_source) && reset($id_source) == 'NOT') {
563
-		$not = array_shift($id_source);
564
-		$id_source = reset($id_source);
565
-	}
566
-
567
-	$where = $cond;
568
-
569
-	if ($id_source !== '*') {
570
-		$where[] = (is_array($id_source) ? sql_in(
571
-			addslashes($primary),
572
-			array_map('intval', $id_source),
573
-			$not
574
-		) : addslashes($primary) . ($not ? '<>' : '=') . (int) $id_source);
575
-	} elseif ($not) {
576
-		$where[] = '0=1';
577
-	} // idiot mais quand meme
578
-
579
-	$not = '';
580
-	if (is_array($id_objet) && reset($id_objet) == 'NOT') {
581
-		$not = array_shift($id_objet);
582
-		$id_objet = reset($id_objet);
583
-	}
584
-
585
-	if ($objet !== '*') {
586
-		$where[] = 'objet=' . sql_quote($objet);
587
-	}
588
-	if ($id_objet !== '*') {
589
-		$where[] = (is_array($id_objet) ? sql_in(
590
-			'id_objet',
591
-			array_map('intval', $id_objet),
592
-			$not
593
-		) : 'id_objet' . ($not ? '<>' : '=') . (int) $id_objet);
594
-	} elseif ($not) {
595
-		$where[] = '0=1';
596
-	} // idiot mais quand meme
597
-
598
-	return $where;
555
+    if (
556
+        !is_array($id_source) && !strlen($id_source) || !strlen($objet) || !is_array($id_objet) && !strlen($id_objet)
557
+    ) {
558
+        return ['0=1'];
559
+    } // securite
560
+
561
+    $not = '';
562
+    if (is_array($id_source) && reset($id_source) == 'NOT') {
563
+        $not = array_shift($id_source);
564
+        $id_source = reset($id_source);
565
+    }
566
+
567
+    $where = $cond;
568
+
569
+    if ($id_source !== '*') {
570
+        $where[] = (is_array($id_source) ? sql_in(
571
+            addslashes($primary),
572
+            array_map('intval', $id_source),
573
+            $not
574
+        ) : addslashes($primary) . ($not ? '<>' : '=') . (int) $id_source);
575
+    } elseif ($not) {
576
+        $where[] = '0=1';
577
+    } // idiot mais quand meme
578
+
579
+    $not = '';
580
+    if (is_array($id_objet) && reset($id_objet) == 'NOT') {
581
+        $not = array_shift($id_objet);
582
+        $id_objet = reset($id_objet);
583
+    }
584
+
585
+    if ($objet !== '*') {
586
+        $where[] = 'objet=' . sql_quote($objet);
587
+    }
588
+    if ($id_objet !== '*') {
589
+        $where[] = (is_array($id_objet) ? sql_in(
590
+            'id_objet',
591
+            array_map('intval', $id_objet),
592
+            $not
593
+        ) : 'id_objet' . ($not ? '<>' : '=') . (int) $id_objet);
594
+    } elseif ($not) {
595
+        $where[] = '0=1';
596
+    } // idiot mais quand meme
597
+
598
+    return $where;
599 599
 }
600 600
 
601 601
 /**
@@ -610,13 +610,13 @@  discard block
 block discarded – undo
610 610
  */
611 611
 function lien_rang_where($table_lien, $primary, $id_source, $objet, $id_objet, $cond = []) {
612 612
 
613
-	// si on veut compter les rangs autrement que le core ne le fait par defaut, fournir le where adhoc
614
-	if (function_exists($f = 'lien_rang_where_' . $table_lien)) {
615
-		return $f($primary, $id_source, $objet, $id_objet, $cond);
616
-	}
613
+    // si on veut compter les rangs autrement que le core ne le fait par defaut, fournir le where adhoc
614
+    if (function_exists($f = 'lien_rang_where_' . $table_lien)) {
615
+        return $f($primary, $id_source, $objet, $id_objet, $cond);
616
+    }
617 617
 
618
-	// par defaut c'est un rang compté pour tous les id_source d'un couple objet-id_objet
619
-	return lien_where($primary, '*', $objet, $id_objet, $cond);
618
+    // par defaut c'est un rang compté pour tous les id_source d'un couple objet-id_objet
619
+    return lien_where($primary, '*', $objet, $id_objet, $cond);
620 620
 }
621 621
 
622 622
 /**
@@ -647,90 +647,90 @@  discard block
 block discarded – undo
647 647
  */
648 648
 function lien_delete($objet_source, $primary, $table_lien, $id, $objets, $cond = null) {
649 649
 
650
-	$retire = [];
651
-	$dels = 0;
652
-	$echec = false;
653
-	if (is_null($cond)) {
654
-		$cond = [];
655
-	}
656
-
657
-	foreach ($objets as $objet => $id_objets) {
658
-		$objet = ($objet == '*') ? $objet : objet_type($objet); # securite
659
-		if (!is_array($id_objets) || reset($id_objets) == 'NOT') {
660
-			$id_objets = [$id_objets];
661
-		}
662
-		foreach ($id_objets as $id_objet) {
663
-			[$cond, $colonne_role, $role] = roles_creer_condition_role($objet_source, $objet, $cond);
664
-			// id_objet peut valoir '*'
665
-			$where = lien_where($primary, $id, $objet, $id_objet, $cond);
666
-
667
-			// lire les liens existants pour propager la date de modif
668
-			$select = "$primary,id_objet,objet";
669
-			if ($colonne_role) {
670
-				$select .= ",$colonne_role";
671
-			}
672
-			$liens = sql_allfetsel($select, $table_lien, $where);
673
-
674
-			// iterer sur les liens pour permettre aux plugins de gerer
675
-			foreach ($liens as $l) {
676
-				$args = [
677
-					'table_lien' => $table_lien,
678
-					'objet_source' => $objet_source,
679
-					'id_objet_source' => $l[$primary],
680
-					'objet' => $l['objet'],
681
-					'id_objet' => $l['id_objet'],
682
-					'colonne_role' => $colonne_role,
683
-					'role' => ($colonne_role ? $l[$colonne_role] : ''),
684
-					'action' => 'delete',
685
-				];
686
-
687
-				// Envoyer aux plugins
688
-				$l = pipeline(
689
-					'pre_edition_lien',
690
-					[
691
-						'args' => $args,
692
-						'data' => $l
693
-					]
694
-				);
695
-				$args['id_objet'] = $id_o = $l['id_objet'];
696
-
697
-				if (($id_o = (int) $l['id_objet']) || in_array($l['objet'], ['site', 'rubrique'])) {
698
-					$where = lien_where($primary, $l[$primary], $l['objet'], $id_o, $cond);
699
-					$e = sql_delete($table_lien, $where);
700
-					if ($e !== false) {
701
-						$dels += $e;
702
-						lien_propage_date_modif($l['objet'], $id_o);
703
-						lien_propage_date_modif($objet_source, $l[$primary]);
704
-					} else {
705
-						$echec = true;
706
-					}
707
-					$retire[] = [
708
-						'source' => [$objet_source => $l[$primary]],
709
-						'lien' => [$l['objet'] => $id_o],
710
-						'type' => $l['objet'],
711
-						'role' => ($colonne_role ? $l[$colonne_role] : ''),
712
-						'id' => $id_o
713
-					];
714
-					// Envoyer aux plugins
715
-					pipeline(
716
-						'post_edition_lien',
717
-						[
718
-							'args' => $args,
719
-							'data' => $l
720
-						]
721
-					);
722
-				}
723
-			}
724
-		}
725
-	}
726
-	// si on a supprime des liens, on reordonne les liens concernes
727
-	if ($dels) {
728
-		lien_ordonner($objet_source, $primary, $table_lien, $id, $objets);
729
-	}
730
-
731
-	pipeline('trig_supprimer_objets_lies', $retire);
732
-
733
-	return ($echec ? false : $dels);
650
+    $retire = [];
651
+    $dels = 0;
652
+    $echec = false;
653
+    if (is_null($cond)) {
654
+        $cond = [];
655
+    }
656
+
657
+    foreach ($objets as $objet => $id_objets) {
658
+        $objet = ($objet == '*') ? $objet : objet_type($objet); # securite
659
+        if (!is_array($id_objets) || reset($id_objets) == 'NOT') {
660
+            $id_objets = [$id_objets];
661
+        }
662
+        foreach ($id_objets as $id_objet) {
663
+            [$cond, $colonne_role, $role] = roles_creer_condition_role($objet_source, $objet, $cond);
664
+            // id_objet peut valoir '*'
665
+            $where = lien_where($primary, $id, $objet, $id_objet, $cond);
666
+
667
+            // lire les liens existants pour propager la date de modif
668
+            $select = "$primary,id_objet,objet";
669
+            if ($colonne_role) {
670
+                $select .= ",$colonne_role";
671
+            }
672
+            $liens = sql_allfetsel($select, $table_lien, $where);
673
+
674
+            // iterer sur les liens pour permettre aux plugins de gerer
675
+            foreach ($liens as $l) {
676
+                $args = [
677
+                    'table_lien' => $table_lien,
678
+                    'objet_source' => $objet_source,
679
+                    'id_objet_source' => $l[$primary],
680
+                    'objet' => $l['objet'],
681
+                    'id_objet' => $l['id_objet'],
682
+                    'colonne_role' => $colonne_role,
683
+                    'role' => ($colonne_role ? $l[$colonne_role] : ''),
684
+                    'action' => 'delete',
685
+                ];
686
+
687
+                // Envoyer aux plugins
688
+                $l = pipeline(
689
+                    'pre_edition_lien',
690
+                    [
691
+                        'args' => $args,
692
+                        'data' => $l
693
+                    ]
694
+                );
695
+                $args['id_objet'] = $id_o = $l['id_objet'];
696
+
697
+                if (($id_o = (int) $l['id_objet']) || in_array($l['objet'], ['site', 'rubrique'])) {
698
+                    $where = lien_where($primary, $l[$primary], $l['objet'], $id_o, $cond);
699
+                    $e = sql_delete($table_lien, $where);
700
+                    if ($e !== false) {
701
+                        $dels += $e;
702
+                        lien_propage_date_modif($l['objet'], $id_o);
703
+                        lien_propage_date_modif($objet_source, $l[$primary]);
704
+                    } else {
705
+                        $echec = true;
706
+                    }
707
+                    $retire[] = [
708
+                        'source' => [$objet_source => $l[$primary]],
709
+                        'lien' => [$l['objet'] => $id_o],
710
+                        'type' => $l['objet'],
711
+                        'role' => ($colonne_role ? $l[$colonne_role] : ''),
712
+                        'id' => $id_o
713
+                    ];
714
+                    // Envoyer aux plugins
715
+                    pipeline(
716
+                        'post_edition_lien',
717
+                        [
718
+                            'args' => $args,
719
+                            'data' => $l
720
+                        ]
721
+                    );
722
+                }
723
+            }
724
+        }
725
+    }
726
+    // si on a supprime des liens, on reordonne les liens concernes
727
+    if ($dels) {
728
+        lien_ordonner($objet_source, $primary, $table_lien, $id, $objets);
729
+    }
730
+
731
+    pipeline('trig_supprimer_objets_lies', $retire);
732
+
733
+    return ($echec ? false : $dels);
734 734
 }
735 735
 
736 736
 
@@ -753,67 +753,67 @@  discard block
 block discarded – undo
753 753
  * @return bool|int
754 754
  */
755 755
 function lien_optimise($objet_source, $primary, $table_lien, $id, $objets) {
756
-	include_spip('genie/optimiser');
757
-	$echec = false;
758
-	$dels = 0;
759
-	foreach ($objets as $objet => $id_objets) {
760
-		$objet = ($objet == '*') ? $objet : objet_type($objet); # securite
761
-		if (!is_array($id_objets) || reset($id_objets) == 'NOT') {
762
-			$id_objets = [$id_objets];
763
-		}
764
-		foreach ($id_objets as $id_objet) {
765
-			$where = lien_where($primary, $id, $objet, $id_objet);
766
-			# les liens vers un objet inexistant
767
-			$r = sql_select('DISTINCT objet', $table_lien, $where);
768
-			while ($t = sql_fetch($r)) {
769
-				$type = $t['objet'];
770
-				$spip_table_objet = table_objet_sql($type);
771
-				$id_table_objet = id_table_objet($type);
772
-				$res = sql_select(
773
-					"L.$primary AS id,L.id_objet",
774
-					// la condition de jointure inclue L.objet='xxx' pour ne joindre que les bonnes lignes
775
-					// du coups toutes les lignes avec un autre objet ont un id_xxx=NULL puisque LEFT JOIN
776
-					// il faut les eliminier en repetant la condition dans le where L.objet='xxx'
777
-					"$table_lien AS L
756
+    include_spip('genie/optimiser');
757
+    $echec = false;
758
+    $dels = 0;
759
+    foreach ($objets as $objet => $id_objets) {
760
+        $objet = ($objet == '*') ? $objet : objet_type($objet); # securite
761
+        if (!is_array($id_objets) || reset($id_objets) == 'NOT') {
762
+            $id_objets = [$id_objets];
763
+        }
764
+        foreach ($id_objets as $id_objet) {
765
+            $where = lien_where($primary, $id, $objet, $id_objet);
766
+            # les liens vers un objet inexistant
767
+            $r = sql_select('DISTINCT objet', $table_lien, $where);
768
+            while ($t = sql_fetch($r)) {
769
+                $type = $t['objet'];
770
+                $spip_table_objet = table_objet_sql($type);
771
+                $id_table_objet = id_table_objet($type);
772
+                $res = sql_select(
773
+                    "L.$primary AS id,L.id_objet",
774
+                    // la condition de jointure inclue L.objet='xxx' pour ne joindre que les bonnes lignes
775
+                    // du coups toutes les lignes avec un autre objet ont un id_xxx=NULL puisque LEFT JOIN
776
+                    // il faut les eliminier en repetant la condition dans le where L.objet='xxx'
777
+                    "$table_lien AS L
778 778
 									LEFT JOIN $spip_table_objet AS O
779 779
 										ON (O.$id_table_objet=L.id_objet AND L.objet=" . sql_quote($type) . ')',
780
-					'L.objet=' . sql_quote($type) . " AND O.$id_table_objet IS NULL"
781
-				);
782
-				// sur une cle primaire composee, pas d'autres solutions que de virer un a un
783
-				while ($row = sql_fetch($res)) {
784
-					if ($primary === 'id_document' && in_array($type, ['site', 'rubrique']) && !(int) $row['id_objet']) {
785
-						continue; // gaffe, c'est le logo du site ou des rubriques!
786
-					}
787
-					$e = sql_delete(
788
-						$table_lien,
789
-						["$primary=" . $row['id'], 'id_objet=' . $row['id_objet'], 'objet=' . sql_quote($type)]
790
-					);
791
-					if ($e != false) {
792
-						$dels += $e;
793
-						spip_log(
794
-							'lien_optimise: Entree ' . $row['id'] . '/' . $row['id_objet'] . "/$type supprimee dans la table $table_lien",
795
-							'genie' . _LOG_INFO_IMPORTANTE
796
-						);
797
-					}
798
-				}
799
-			}
800
-
801
-			# les liens depuis un objet inexistant
802
-			$table_source = table_objet_sql($objet_source);
803
-			// filtrer selon $id, $objet, $id_objet eventuellement fournis
804
-			// (en general '*' pour chaque)
805
-			$where = lien_where("L.$primary", $id, $objet, $id_objet);
806
-			$where[] = "O.$primary IS NULL";
807
-			$res = sql_select(
808
-				"L.$primary AS id",
809
-				"$table_lien AS L LEFT JOIN $table_source AS O ON L.$primary=O.$primary",
810
-				$where
811
-			);
812
-			$dels += optimiser_sansref($table_lien, $primary, $res);
813
-		}
814
-	}
815
-
816
-	return ($echec ? false : $dels);
780
+                    'L.objet=' . sql_quote($type) . " AND O.$id_table_objet IS NULL"
781
+                );
782
+                // sur une cle primaire composee, pas d'autres solutions que de virer un a un
783
+                while ($row = sql_fetch($res)) {
784
+                    if ($primary === 'id_document' && in_array($type, ['site', 'rubrique']) && !(int) $row['id_objet']) {
785
+                        continue; // gaffe, c'est le logo du site ou des rubriques!
786
+                    }
787
+                    $e = sql_delete(
788
+                        $table_lien,
789
+                        ["$primary=" . $row['id'], 'id_objet=' . $row['id_objet'], 'objet=' . sql_quote($type)]
790
+                    );
791
+                    if ($e != false) {
792
+                        $dels += $e;
793
+                        spip_log(
794
+                            'lien_optimise: Entree ' . $row['id'] . '/' . $row['id_objet'] . "/$type supprimee dans la table $table_lien",
795
+                            'genie' . _LOG_INFO_IMPORTANTE
796
+                        );
797
+                    }
798
+                }
799
+            }
800
+
801
+            # les liens depuis un objet inexistant
802
+            $table_source = table_objet_sql($objet_source);
803
+            // filtrer selon $id, $objet, $id_objet eventuellement fournis
804
+            // (en general '*' pour chaque)
805
+            $where = lien_where("L.$primary", $id, $objet, $id_objet);
806
+            $where[] = "O.$primary IS NULL";
807
+            $res = sql_select(
808
+                "L.$primary AS id",
809
+                "$table_lien AS L LEFT JOIN $table_source AS O ON L.$primary=O.$primary",
810
+                $where
811
+            );
812
+            $dels += optimiser_sansref($table_lien, $primary, $res);
813
+        }
814
+    }
815
+
816
+    return ($echec ? false : $dels);
817 817
 }
818 818
 
819 819
 
@@ -845,92 +845,92 @@  discard block
 block discarded – undo
845 845
  *     Nombre de modifications faites, false si échec.
846 846
  */
847 847
 function lien_set($objet_source, $primary, $table_lien, $id, $objets, $qualif) {
848
-	$echec = null;
849
-	$ok = 0;
850
-	$reordonner = false;
851
-	if (!$qualif) {
852
-		return false;
853
-	}
854
-	// nettoyer qualif qui peut venir directement d'un objet_trouver_lien :
855
-	unset($qualif[$primary]);
856
-	unset($qualif[$objet_source]);
857
-	if (isset($qualif['objet'])) {
858
-		unset($qualif[$qualif['objet']]);
859
-	}
860
-	unset($qualif['objet']);
861
-	unset($qualif['id_objet']);
862
-	foreach ($objets as $objet => $id_objets) {
863
-		// role, colonne, where par défaut
864
-		[$role, $colonne_role, $cond] =
865
-			roles_trouver_dans_qualif($objet_source, $objet, $qualif);
866
-
867
-		$objet = ($objet == '*') ? $objet : objet_type($objet); # securite
868
-		if (!is_array($id_objets) || reset($id_objets) == 'NOT') {
869
-			$id_objets = [$id_objets];
870
-		}
871
-		foreach ($id_objets as $id_objet) {
872
-			$args = [
873
-				'table_lien' => $table_lien,
874
-				'objet_source' => $objet_source,
875
-				'id_objet_source' => $id,
876
-				'objet' => $objet,
877
-				'id_objet' => $id_objet,
878
-				'role' => $role,
879
-				'colonne_role' => $colonne_role,
880
-				'action' => 'modifier',
881
-			];
882
-
883
-			// Envoyer aux plugins
884
-			$qualif = pipeline(
885
-				'pre_edition_lien',
886
-				[
887
-					'args' => $args,
888
-					'data' => $qualif,
889
-				]
890
-			);
891
-			$args['id_objet'] = $id_objet;
892
-
893
-			if (lien_triables($table_lien) && isset($qualif['rang_lien'])) {
894
-				if ((int) $qualif['rang_lien']) {
895
-					// on decale les liens de rang_lien>=la valeur inseree pour faire la place
896
-					// sauf sur le meme lien avec un role eventuellement different
897
-					$where_meme_lien = lien_where($primary, $id, $objet, $id_objet);
898
-					$where_meme_lien = implode(' AND ', $where_meme_lien);
899
-					$w = lien_rang_where($table_lien, $primary, $id, $objet, $id_objet, ['rang_lien>=' . (int) $qualif['rang_lien'], "NOT($where_meme_lien)"]);
900
-					sql_update($table_lien, ['rang_lien' => 'rang_lien+1'], $w);
901
-				}
902
-				// tous les liens de même rôle recoivent le rang indiqué aussi
903
-				if (roles_colonne($objet_source, $objet)) {
904
-					$w = lien_where($primary, $id, $objet, $id_objet);
905
-					sql_updateq($table_lien, ['rang_lien' => (int) $qualif['rang_lien']], $w);
906
-				}
907
-				$reordonner = true;
908
-			}
909
-
910
-			$where = lien_where($primary, $id, $objet, $id_objet, $cond);
911
-			$e = sql_updateq($table_lien, $qualif, $where);
912
-
913
-			if ($e === false) {
914
-				$echec = true;
915
-			} else {
916
-				// Envoyer aux plugins
917
-				pipeline(
918
-					'post_edition_lien',
919
-					[
920
-						'args' => $args,
921
-						'data' => $qualif
922
-					]
923
-				);
924
-				$ok++;
925
-			}
926
-		}
927
-	}
928
-	// si on a fait des modif de rang, on reordonne les liens concernes
929
-	if ($reordonner) {
930
-		lien_ordonner($objet_source, $primary, $table_lien, $id, $objets);
931
-	}
932
-
933
-	return ($echec ? false : $ok);
848
+    $echec = null;
849
+    $ok = 0;
850
+    $reordonner = false;
851
+    if (!$qualif) {
852
+        return false;
853
+    }
854
+    // nettoyer qualif qui peut venir directement d'un objet_trouver_lien :
855
+    unset($qualif[$primary]);
856
+    unset($qualif[$objet_source]);
857
+    if (isset($qualif['objet'])) {
858
+        unset($qualif[$qualif['objet']]);
859
+    }
860
+    unset($qualif['objet']);
861
+    unset($qualif['id_objet']);
862
+    foreach ($objets as $objet => $id_objets) {
863
+        // role, colonne, where par défaut
864
+        [$role, $colonne_role, $cond] =
865
+            roles_trouver_dans_qualif($objet_source, $objet, $qualif);
866
+
867
+        $objet = ($objet == '*') ? $objet : objet_type($objet); # securite
868
+        if (!is_array($id_objets) || reset($id_objets) == 'NOT') {
869
+            $id_objets = [$id_objets];
870
+        }
871
+        foreach ($id_objets as $id_objet) {
872
+            $args = [
873
+                'table_lien' => $table_lien,
874
+                'objet_source' => $objet_source,
875
+                'id_objet_source' => $id,
876
+                'objet' => $objet,
877
+                'id_objet' => $id_objet,
878
+                'role' => $role,
879
+                'colonne_role' => $colonne_role,
880
+                'action' => 'modifier',
881
+            ];
882
+
883
+            // Envoyer aux plugins
884
+            $qualif = pipeline(
885
+                'pre_edition_lien',
886
+                [
887
+                    'args' => $args,
888
+                    'data' => $qualif,
889
+                ]
890
+            );
891
+            $args['id_objet'] = $id_objet;
892
+
893
+            if (lien_triables($table_lien) && isset($qualif['rang_lien'])) {
894
+                if ((int) $qualif['rang_lien']) {
895
+                    // on decale les liens de rang_lien>=la valeur inseree pour faire la place
896
+                    // sauf sur le meme lien avec un role eventuellement different
897
+                    $where_meme_lien = lien_where($primary, $id, $objet, $id_objet);
898
+                    $where_meme_lien = implode(' AND ', $where_meme_lien);
899
+                    $w = lien_rang_where($table_lien, $primary, $id, $objet, $id_objet, ['rang_lien>=' . (int) $qualif['rang_lien'], "NOT($where_meme_lien)"]);
900
+                    sql_update($table_lien, ['rang_lien' => 'rang_lien+1'], $w);
901
+                }
902
+                // tous les liens de même rôle recoivent le rang indiqué aussi
903
+                if (roles_colonne($objet_source, $objet)) {
904
+                    $w = lien_where($primary, $id, $objet, $id_objet);
905
+                    sql_updateq($table_lien, ['rang_lien' => (int) $qualif['rang_lien']], $w);
906
+                }
907
+                $reordonner = true;
908
+            }
909
+
910
+            $where = lien_where($primary, $id, $objet, $id_objet, $cond);
911
+            $e = sql_updateq($table_lien, $qualif, $where);
912
+
913
+            if ($e === false) {
914
+                $echec = true;
915
+            } else {
916
+                // Envoyer aux plugins
917
+                pipeline(
918
+                    'post_edition_lien',
919
+                    [
920
+                        'args' => $args,
921
+                        'data' => $qualif
922
+                    ]
923
+                );
924
+                $ok++;
925
+            }
926
+        }
927
+    }
928
+    // si on a fait des modif de rang, on reordonne les liens concernes
929
+    if ($reordonner) {
930
+        lien_ordonner($objet_source, $primary, $table_lien, $id, $objets);
931
+    }
932
+
933
+    return ($echec ? false : $ok);
934 934
 }
935 935
 
936 936
 /**
@@ -960,23 +960,23 @@  discard block
 block discarded – undo
960 960
  * @return array
961 961
  */
962 962
 function lien_find($objet_source, $primary, $table_lien, $id, $objets, $cond = null) {
963
-	$trouve = [];
964
-	foreach ($objets as $objet => $id_objets) {
965
-		$objet = ($objet == '*') ? $objet : objet_type($objet); # securite
966
-		// gerer les roles s'il y en a dans $cond
967
-		[$cond] = roles_creer_condition_role($objet_source, $objet, $cond, true);
968
-		// lien_where prend en charge les $id_objets sous forme int ou array
969
-		$where = lien_where($primary, $id, $objet, $id_objets, $cond);
970
-		$liens = sql_allfetsel('*', $table_lien, $where);
971
-		// ajouter les entrees objet_source et objet cible par convenance
972
-		foreach ($liens as $l) {
973
-			$l[$objet_source] = $l[$primary];
974
-			$l[$l['objet']] = $l['id_objet'];
975
-			$trouve[] = $l;
976
-		}
977
-	}
978
-
979
-	return $trouve;
963
+    $trouve = [];
964
+    foreach ($objets as $objet => $id_objets) {
965
+        $objet = ($objet == '*') ? $objet : objet_type($objet); # securite
966
+        // gerer les roles s'il y en a dans $cond
967
+        [$cond] = roles_creer_condition_role($objet_source, $objet, $cond, true);
968
+        // lien_where prend en charge les $id_objets sous forme int ou array
969
+        $where = lien_where($primary, $id, $objet, $id_objets, $cond);
970
+        $liens = sql_allfetsel('*', $table_lien, $where);
971
+        // ajouter les entrees objet_source et objet cible par convenance
972
+        foreach ($liens as $l) {
973
+            $l[$objet_source] = $l[$primary];
974
+            $l[$l['objet']] = $l['id_objet'];
975
+            $trouve[] = $l;
976
+        }
977
+    }
978
+
979
+    return $trouve;
980 980
 }
981 981
 
982 982
 /**
@@ -987,25 +987,25 @@  discard block
 block discarded – undo
987 987
  * @param array|int $ids
988 988
  */
989 989
 function lien_propage_date_modif($objet, $ids) {
990
-	static $done = [];
991
-	$hash = md5($objet . serialize($ids));
992
-
993
-	// sql_updateq, peut être un rien lent.
994
-	// On évite de l'appeler 2 fois sur les mêmes choses
995
-	if (isset($done[$hash])) {
996
-		return;
997
-	}
998
-
999
-	$trouver_table = charger_fonction('trouver_table', 'base');
1000
-
1001
-	$table = table_objet_sql($objet);
1002
-	if (
1003
-		($desc = $trouver_table($table)) && isset($desc['field']['date_modif'])
1004
-	) {
1005
-		$primary = id_table_objet($objet);
1006
-		$where = (is_array($ids) ? sql_in($primary, array_map('intval', $ids)) : "$primary=" . (int) $ids);
1007
-		sql_updateq($table, ['date_modif' => date('Y-m-d H:i:s')], $where);
1008
-	}
1009
-
1010
-	$done[$hash] = true;
990
+    static $done = [];
991
+    $hash = md5($objet . serialize($ids));
992
+
993
+    // sql_updateq, peut être un rien lent.
994
+    // On évite de l'appeler 2 fois sur les mêmes choses
995
+    if (isset($done[$hash])) {
996
+        return;
997
+    }
998
+
999
+    $trouver_table = charger_fonction('trouver_table', 'base');
1000
+
1001
+    $table = table_objet_sql($objet);
1002
+    if (
1003
+        ($desc = $trouver_table($table)) && isset($desc['field']['date_modif'])
1004
+    ) {
1005
+        $primary = id_table_objet($objet);
1006
+        $where = (is_array($ids) ? sql_in($primary, array_map('intval', $ids)) : "$primary=" . (int) $ids);
1007
+        sql_updateq($table, ['date_modif' => date('Y-m-d H:i:s')], $where);
1008
+    }
1009
+
1010
+    $done[$hash] = true;
1011 1011
 }
Please login to merge, or discard this patch.
Spacing   +16 added lines, -16 removed lines patch added patch discarded remove patch
@@ -52,7 +52,7 @@  discard block
 block discarded – undo
52 52
 	$l = '';
53 53
 	if (
54 54
 		($primary = id_table_objet($objet))
55
-		&& $trouver_table($l = $table_sql . '_liens', '', true, ['log_missing' => false])
55
+		&& $trouver_table($l = $table_sql.'_liens', '', true, ['log_missing' => false])
56 56
 		&& !preg_match(',[^\w],', $primary)
57 57
 		&& !preg_match(',[^\w],', $l)
58 58
 	) {
@@ -211,7 +211,7 @@  discard block
 block discarded – undo
211 211
  * @return int
212 212
  */
213 213
 function objet_optimiser_liens($objets_source, $objets_lies) {
214
-	spip_log('objet_optimiser_liens : ' . json_encode($objets_source, JSON_THROW_ON_ERROR) . ', ' . json_encode($objets_lies, JSON_THROW_ON_ERROR), 'genie' . _LOG_DEBUG);
214
+	spip_log('objet_optimiser_liens : '.json_encode($objets_source, JSON_THROW_ON_ERROR).', '.json_encode($objets_lies, JSON_THROW_ON_ERROR), 'genie'._LOG_DEBUG);
215 215
 	return objet_traiter_liaisons('lien_optimise', $objets_source, $objets_lies);
216 216
 }
217 217
 
@@ -437,7 +437,7 @@  discard block
 block discarded – undo
437 437
 					$where_meme_lien = implode(' AND ', $where_meme_lien);
438 438
 					// on decale les liens de rang_lien>=la valeur inseree pour faire la place
439 439
 					// sauf sur le meme lien avec un role eventuellement different
440
-					$w = lien_rang_where($table_lien, $primary, $id, $objet, $id_objet, ['rang_lien>=' . (int) $insertions['rang_lien'], "NOT($where_meme_lien)"]);
440
+					$w = lien_rang_where($table_lien, $primary, $id, $objet, $id_objet, ['rang_lien>='.(int) $insertions['rang_lien'], "NOT($where_meme_lien)"]);
441 441
 					sql_update($table_lien, ['rang_lien' => 'rang_lien+1'], $w);
442 442
 				}
443 443
 
@@ -502,7 +502,7 @@  discard block
 block discarded – undo
502 502
 					$rang = 1;
503 503
 					foreach ($liens as $lien) {
504 504
 						if (empty($deja_reordonne[$lien[$primary]][$lien['objet']][$lien['id_objet']])) {
505
-							$where = lien_where($primary, $lien[$primary], $lien['objet'], $lien['id_objet'], ['rang_lien!=' . (int) $rang]);
505
+							$where = lien_where($primary, $lien[$primary], $lien['objet'], $lien['id_objet'], ['rang_lien!='.(int) $rang]);
506 506
 							sql_updateq($table_lien, ['rang_lien' => $rang], $where);
507 507
 
508 508
 							if (empty($deja_reordonne[$lien[$primary]])) {
@@ -571,7 +571,7 @@  discard block
 block discarded – undo
571 571
 			addslashes($primary),
572 572
 			array_map('intval', $id_source),
573 573
 			$not
574
-		) : addslashes($primary) . ($not ? '<>' : '=') . (int) $id_source);
574
+		) : addslashes($primary).($not ? '<>' : '=').(int) $id_source);
575 575
 	} elseif ($not) {
576 576
 		$where[] = '0=1';
577 577
 	} // idiot mais quand meme
@@ -583,14 +583,14 @@  discard block
 block discarded – undo
583 583
 	}
584 584
 
585 585
 	if ($objet !== '*') {
586
-		$where[] = 'objet=' . sql_quote($objet);
586
+		$where[] = 'objet='.sql_quote($objet);
587 587
 	}
588 588
 	if ($id_objet !== '*') {
589 589
 		$where[] = (is_array($id_objet) ? sql_in(
590 590
 			'id_objet',
591 591
 			array_map('intval', $id_objet),
592 592
 			$not
593
-		) : 'id_objet' . ($not ? '<>' : '=') . (int) $id_objet);
593
+		) : 'id_objet'.($not ? '<>' : '=').(int) $id_objet);
594 594
 	} elseif ($not) {
595 595
 		$where[] = '0=1';
596 596
 	} // idiot mais quand meme
@@ -611,7 +611,7 @@  discard block
 block discarded – undo
611 611
 function lien_rang_where($table_lien, $primary, $id_source, $objet, $id_objet, $cond = []) {
612 612
 
613 613
 	// si on veut compter les rangs autrement que le core ne le fait par defaut, fournir le where adhoc
614
-	if (function_exists($f = 'lien_rang_where_' . $table_lien)) {
614
+	if (function_exists($f = 'lien_rang_where_'.$table_lien)) {
615 615
 		return $f($primary, $id_source, $objet, $id_objet, $cond);
616 616
 	}
617 617
 
@@ -776,8 +776,8 @@  discard block
 block discarded – undo
776 776
 					// il faut les eliminier en repetant la condition dans le where L.objet='xxx'
777 777
 					"$table_lien AS L
778 778
 									LEFT JOIN $spip_table_objet AS O
779
-										ON (O.$id_table_objet=L.id_objet AND L.objet=" . sql_quote($type) . ')',
780
-					'L.objet=' . sql_quote($type) . " AND O.$id_table_objet IS NULL"
779
+										ON (O.$id_table_objet=L.id_objet AND L.objet=".sql_quote($type).')',
780
+					'L.objet='.sql_quote($type)." AND O.$id_table_objet IS NULL"
781 781
 				);
782 782
 				// sur une cle primaire composee, pas d'autres solutions que de virer un a un
783 783
 				while ($row = sql_fetch($res)) {
@@ -786,13 +786,13 @@  discard block
 block discarded – undo
786 786
 					}
787 787
 					$e = sql_delete(
788 788
 						$table_lien,
789
-						["$primary=" . $row['id'], 'id_objet=' . $row['id_objet'], 'objet=' . sql_quote($type)]
789
+						["$primary=".$row['id'], 'id_objet='.$row['id_objet'], 'objet='.sql_quote($type)]
790 790
 					);
791 791
 					if ($e != false) {
792 792
 						$dels += $e;
793 793
 						spip_log(
794
-							'lien_optimise: Entree ' . $row['id'] . '/' . $row['id_objet'] . "/$type supprimee dans la table $table_lien",
795
-							'genie' . _LOG_INFO_IMPORTANTE
794
+							'lien_optimise: Entree '.$row['id'].'/'.$row['id_objet']."/$type supprimee dans la table $table_lien",
795
+							'genie'._LOG_INFO_IMPORTANTE
796 796
 						);
797 797
 					}
798 798
 				}
@@ -896,7 +896,7 @@  discard block
 block discarded – undo
896 896
 					// sauf sur le meme lien avec un role eventuellement different
897 897
 					$where_meme_lien = lien_where($primary, $id, $objet, $id_objet);
898 898
 					$where_meme_lien = implode(' AND ', $where_meme_lien);
899
-					$w = lien_rang_where($table_lien, $primary, $id, $objet, $id_objet, ['rang_lien>=' . (int) $qualif['rang_lien'], "NOT($where_meme_lien)"]);
899
+					$w = lien_rang_where($table_lien, $primary, $id, $objet, $id_objet, ['rang_lien>='.(int) $qualif['rang_lien'], "NOT($where_meme_lien)"]);
900 900
 					sql_update($table_lien, ['rang_lien' => 'rang_lien+1'], $w);
901 901
 				}
902 902
 				// tous les liens de même rôle recoivent le rang indiqué aussi
@@ -988,7 +988,7 @@  discard block
 block discarded – undo
988 988
  */
989 989
 function lien_propage_date_modif($objet, $ids) {
990 990
 	static $done = [];
991
-	$hash = md5($objet . serialize($ids));
991
+	$hash = md5($objet.serialize($ids));
992 992
 
993 993
 	// sql_updateq, peut être un rien lent.
994 994
 	// On évite de l'appeler 2 fois sur les mêmes choses
@@ -1003,7 +1003,7 @@  discard block
 block discarded – undo
1003 1003
 		($desc = $trouver_table($table)) && isset($desc['field']['date_modif'])
1004 1004
 	) {
1005 1005
 		$primary = id_table_objet($objet);
1006
-		$where = (is_array($ids) ? sql_in($primary, array_map('intval', $ids)) : "$primary=" . (int) $ids);
1006
+		$where = (is_array($ids) ? sql_in($primary, array_map('intval', $ids)) : "$primary=".(int) $ids);
1007 1007
 		sql_updateq($table, ['date_modif' => date('Y-m-d H:i:s')], $where);
1008 1008
 	}
1009 1009
 
Please login to merge, or discard this patch.
Braces   +1 added lines, -2 removed lines patch added patch discarded remove patch
@@ -390,8 +390,7 @@
 block discarded – undo
390 390
 			if (lien_triables($table_lien)) {
391 391
 				if (isset($qualif['rang_lien'])) {
392 392
 					$rang = $qualif['rang_lien'];
393
-				}
394
-				else {
393
+				} else {
395 394
 					$where = lien_where($primary, $id, $objet, $id_objet);
396 395
 					// si il y a deja un lien pour ce couple (avec un autre role?) on reprend le meme rang si non nul
397 396
 					if (!$rang = (int) sql_getfetsel('rang_lien', $table_lien, $where)) {
Please login to merge, or discard this patch.
ecrire/action/instituer_langue_rubrique.php 1 patch
Indentation   +35 added lines, -35 removed lines patch added patch discarded remove patch
@@ -16,7 +16,7 @@  discard block
 block discarded – undo
16 16
  **/
17 17
 
18 18
 if (!defined('_ECRIRE_INC_VERSION')) {
19
-	return;
19
+    return;
20 20
 }
21 21
 
22 22
 /**
@@ -24,41 +24,41 @@  discard block
 block discarded – undo
24 24
  **/
25 25
 function action_instituer_langue_rubrique_dist() {
26 26
 
27
-	$securiser_action = charger_fonction('securiser_action', 'inc');
28
-	$arg = $securiser_action();
29
-	$changer_lang = _request('changer_lang');
27
+    $securiser_action = charger_fonction('securiser_action', 'inc');
28
+    $arg = $securiser_action();
29
+    $changer_lang = _request('changer_lang');
30 30
 
31
-	[$id_rubrique, $id_parent] = preg_split('/\W/', (string) $arg);
31
+    [$id_rubrique, $id_parent] = preg_split('/\W/', (string) $arg);
32 32
 
33
-	if (
34
-		$changer_lang
35
-		&& $id_rubrique > 0
36
-		&& $GLOBALS['meta']['multi_rubriques'] == 'oui'
37
-		&& ($GLOBALS['meta']['multi_secteurs'] == 'non' || $id_parent == 0)
38
-	) {
39
-		if ($changer_lang != 'herit') {
40
-			sql_updateq(
41
-				'spip_rubriques',
42
-				['lang' => $changer_lang, 'langue_choisie' => 'oui'],
43
-				"id_rubrique=$id_rubrique"
44
-			);
45
-		} else {
46
-			if ($id_parent == 0) {
47
-				$langue_parent = $GLOBALS['meta']['langue_site'];
48
-			} else {
49
-				$langue_parent = sql_getfetsel('lang', 'spip_rubriques', "id_rubrique=$id_parent");
50
-			}
51
-			sql_updateq(
52
-				'spip_rubriques',
53
-				['lang' => $langue_parent, 'langue_choisie' => 'non'],
54
-				"id_rubrique=$id_rubrique"
55
-			);
56
-		}
57
-		include_spip('inc/rubriques');
58
-		calculer_langues_rubriques();
33
+    if (
34
+        $changer_lang
35
+        && $id_rubrique > 0
36
+        && $GLOBALS['meta']['multi_rubriques'] == 'oui'
37
+        && ($GLOBALS['meta']['multi_secteurs'] == 'non' || $id_parent == 0)
38
+    ) {
39
+        if ($changer_lang != 'herit') {
40
+            sql_updateq(
41
+                'spip_rubriques',
42
+                ['lang' => $changer_lang, 'langue_choisie' => 'oui'],
43
+                "id_rubrique=$id_rubrique"
44
+            );
45
+        } else {
46
+            if ($id_parent == 0) {
47
+                $langue_parent = $GLOBALS['meta']['langue_site'];
48
+            } else {
49
+                $langue_parent = sql_getfetsel('lang', 'spip_rubriques', "id_rubrique=$id_parent");
50
+            }
51
+            sql_updateq(
52
+                'spip_rubriques',
53
+                ['lang' => $langue_parent, 'langue_choisie' => 'non'],
54
+                "id_rubrique=$id_rubrique"
55
+            );
56
+        }
57
+        include_spip('inc/rubriques');
58
+        calculer_langues_rubriques();
59 59
 
60
-		// invalider les caches marques de cette rubrique
61
-		include_spip('inc/invalideur');
62
-		suivre_invalideur("id='rubrique/$id_rubrique'");
63
-	}
60
+        // invalider les caches marques de cette rubrique
61
+        include_spip('inc/invalideur');
62
+        suivre_invalideur("id='rubrique/$id_rubrique'");
63
+    }
64 64
 }
Please login to merge, or discard this patch.
ecrire/action/editer_logo.php 3 patches
Spacing   +16 added lines, -16 removed lines patch added patch discarded remove patch
@@ -39,7 +39,7 @@  discard block
 block discarded – undo
39 39
 	if ($logo) {
40 40
 		# TODO : deprecated, a supprimer -> anciens logos IMG/artonxx.png pas en base
41 41
 		if ((is_countable($logo) ? count($logo) : 0) < 6) {
42
-			spip_log('Supprimer ancien logo ' . json_encode($logo, JSON_THROW_ON_ERROR), 'logo');
42
+			spip_log('Supprimer ancien logo '.json_encode($logo, JSON_THROW_ON_ERROR), 'logo');
43 43
 			spip_unlink($logo[0]);
44 44
 		}
45 45
 		elseif (
@@ -87,7 +87,7 @@  discard block
 block discarded – undo
87 87
 		return 'etat invalide';
88 88
 	}
89 89
 	// chercher dans la base
90
-	$mode_document = 'logo' . $mode;
90
+	$mode_document = 'logo'.$mode;
91 91
 
92 92
 	include_spip('inc/documents');
93 93
 	$erreur = '';
@@ -103,7 +103,7 @@  discard block
 block discarded – undo
103 103
 		$tmp_name = false;
104 104
 		if (file_exists($source)) {
105 105
 			$tmp_name = $source;
106
-		} elseif (file_exists($f = determine_upload() . $source)) {
106
+		} elseif (file_exists($f = determine_upload().$source)) {
107 107
 			$tmp_name = $f;
108 108
 		}
109 109
 		if (!$tmp_name) {
@@ -138,7 +138,7 @@  discard block
 block discarded – undo
138 138
 
139 139
 	if (!is_numeric($id_document)) {
140 140
 		$erreur = ($id_document ?: 'Erreur inconnue');
141
-		spip_log("Erreur ajout logo : $erreur pour source=" . json_encode($source, JSON_THROW_ON_ERROR), 'logo');
141
+		spip_log("Erreur ajout logo : $erreur pour source=".json_encode($source, JSON_THROW_ON_ERROR), 'logo');
142 142
 		return $erreur;
143 143
 	}
144 144
 
@@ -171,23 +171,23 @@  discard block
 block discarded – undo
171 171
 	$GLOBALS['meta']['articles_modif'] = 'non';
172 172
 
173 173
 	foreach (['on', 'off'] as $mode) {
174
-		$nom_base = $type . $mode;
174
+		$nom_base = $type.$mode;
175 175
 		$dir = (defined('_DIR_LOGOS') ? _DIR_LOGOS : _DIR_IMG);
176 176
 
177
-		$files = glob($dir . $nom_base . '*');
177
+		$files = glob($dir.$nom_base.'*');
178 178
 		// est-ce que c'est une nouvelle tentative de migration ?
179 179
 		// dans ce cas les logos sont deja dans IMG/logo/
180 180
 		if (!(is_countable($files) ? count($files) : 0)) {
181
-			$files = glob($dir_logos . $nom_base . '*');
181
+			$files = glob($dir_logos.$nom_base.'*');
182 182
 			if (is_countable($files) ? count($files) : 0) {
183 183
 				// mais il faut verifier si ils ont pas deja ete migres pour tout ou partie
184 184
 				$filescheck = [];
185 185
 				foreach ($files as $file) {
186
-					$short = basename(dirname((string) $file)) . DIRECTORY_SEPARATOR . basename((string) $file);
186
+					$short = basename(dirname((string) $file)).DIRECTORY_SEPARATOR.basename((string) $file);
187 187
 					$filescheck[$short] = $file;
188 188
 				}
189 189
 				// trouver ceux deja migres
190
-				$deja = sql_allfetsel('fichier', 'spip_documents', sql_in('fichier', array_keys($filescheck)) . " AND mode LIKE 'logo%'");
190
+				$deja = sql_allfetsel('fichier', 'spip_documents', sql_in('fichier', array_keys($filescheck))." AND mode LIKE 'logo%'");
191 191
 				if (is_countable($deja) ? count($deja) : 0) {
192 192
 					$deja = array_column($deja, 'fichier');
193 193
 					$restant = array_diff(array_keys($filescheck), $deja);
@@ -207,11 +207,11 @@  discard block
 block discarded – undo
207 207
 		}
208 208
 
209 209
 		$count = (is_countable($files) ? count($files) : 0);
210
-		spip_log("logo_migrer_en_base $objet $mode : " . $count . ' logos restant', 'maj' . _LOG_INFO_IMPORTANTE);
210
+		spip_log("logo_migrer_en_base $objet $mode : ".$count.' logos restant', 'maj'._LOG_INFO_IMPORTANTE);
211 211
 
212 212
 		$deja = [];
213 213
 		foreach ($files as $file) {
214
-			$logo = substr((string) $file, strlen($dir . $nom_base));
214
+			$logo = substr((string) $file, strlen($dir.$nom_base));
215 215
 			$logo = explode('.', $logo);
216 216
 			if (
217 217
 				is_numeric($logo[0])
@@ -222,7 +222,7 @@  discard block
 block discarded – undo
222 222
 				// if no logo in base
223 223
 				if (!$logo || (is_countable($logo) ? count($logo) : 0) < 6) {
224 224
 					foreach ($formats_logos as $format) {
225
-						if (@file_exists($d = ($dir . ($nom = $nom_base . (int) $id_objet . '.' . $format)))) {
225
+						if (@file_exists($d = ($dir.($nom = $nom_base.(int) $id_objet.'.'.$format)))) {
226 226
 							if (isset($desc['field']['date_modif'])) {
227 227
 								$date_modif = sql_getfetsel('date_modif', $table, "$_id_objet=$id_objet");
228 228
 							} else {
@@ -231,9 +231,9 @@  discard block
 block discarded – undo
231 231
 							// s'assurer que le logo a les bon droits au passage (evite un echec en cas de sanitization d'un svg)
232 232
 							@chmod($d, _SPIP_CHMOD & 0666);
233 233
 							// logo_modifier commence par supprimer le logo existant, donc on le deplace pour pas le perdre
234
-							@rename($d, $dir_logos . $nom);
234
+							@rename($d, $dir_logos.$nom);
235 235
 							// et on le declare comme nouveau logo
236
-							logo_modifier($objet, $id_objet, $mode, $dir_logos . $nom);
236
+							logo_modifier($objet, $id_objet, $mode, $dir_logos.$nom);
237 237
 							if ($date_modif) {
238 238
 								sql_updateq($table, ['date_modif' => $date_modif], "$_id_objet=$id_objet");
239 239
 							}
@@ -246,12 +246,12 @@  discard block
 block discarded – undo
246 246
 			// si le fichier est encore la on le move : rien a faire ici
247 247
 			// (sauf si c'est une re-migration : il est deja dans logo/ donc il bouge pas)
248 248
 			if ($dir !== $dir_logos && file_exists($file)) {
249
-				@rename($file, $dir_logos_erreurs . basename((string) $file));
249
+				@rename($file, $dir_logos_erreurs.basename((string) $file));
250 250
 			}
251 251
 
252 252
 			$count--;
253 253
 			if ($count % 250 === 0) {
254
-				spip_log("logo_migrer_en_base $objet $mode : " . $count . ' logos restant', 'maj' . _LOG_INFO_IMPORTANTE);
254
+				spip_log("logo_migrer_en_base $objet $mode : ".$count.' logos restant', 'maj'._LOG_INFO_IMPORTANTE);
255 255
 			}
256 256
 
257 257
 			if ($time_limit && time() > $time_limit) {
Please login to merge, or discard this patch.
Braces   +1 added lines, -2 removed lines patch added patch discarded remove patch
@@ -41,8 +41,7 @@
 block discarded – undo
41 41
 		if ((is_countable($logo) ? count($logo) : 0) < 6) {
42 42
 			spip_log('Supprimer ancien logo ' . json_encode($logo, JSON_THROW_ON_ERROR), 'logo');
43 43
 			spip_unlink($logo[0]);
44
-		}
45
-		elseif (
44
+		} elseif (
46 45
 			($doc = $logo[5])
47 46
 			&& isset($doc['id_document'])
48 47
 			&& ($id_document = $doc['id_document'])
Please login to merge, or discard this patch.
Indentation   +231 added lines, -231 removed lines patch added patch discarded remove patch
@@ -16,7 +16,7 @@  discard block
 block discarded – undo
16 16
  */
17 17
 
18 18
 if (!defined('_ECRIRE_INC_VERSION')) {
19
-	return;
19
+    return;
20 20
 }
21 21
 
22 22
 
@@ -29,36 +29,36 @@  discard block
 block discarded – undo
29 29
  *     `on` ou `off`
30 30
  */
31 31
 function logo_supprimer($objet, $id_objet, $etat) {
32
-	$chercher_logo = charger_fonction('chercher_logo', 'inc');
33
-	$objet = objet_type($objet);
34
-	$primary = id_table_objet($objet);
35
-	include_spip('inc/chercher_logo');
36
-
37
-	// existe-t-il deja un logo ?
38
-	$logo = $chercher_logo($id_objet, $primary, $etat);
39
-	if ($logo) {
40
-		# TODO : deprecated, a supprimer -> anciens logos IMG/artonxx.png pas en base
41
-		if ((is_countable($logo) ? count($logo) : 0) < 6) {
42
-			spip_log('Supprimer ancien logo ' . json_encode($logo, JSON_THROW_ON_ERROR), 'logo');
43
-			spip_unlink($logo[0]);
44
-		}
45
-		elseif (
46
-			($doc = $logo[5])
47
-			&& isset($doc['id_document'])
48
-			&& ($id_document = $doc['id_document'])
49
-		) {
50
-			include_spip('action/editer_liens');
51
-			// supprimer le lien dans la base
52
-			objet_dissocier(['document' => $id_document], [$objet => $id_objet], ['role' => '*']);
53
-
54
-			// verifier si il reste des liens avec d'autres objets et sinon supprimer
55
-			$liens = objet_trouver_liens(['document' => $id_document], '*');
56
-			if ($liens === []) {
57
-				$supprimer_document = charger_fonction('supprimer_document', 'action');
58
-				$supprimer_document($doc['id_document']);
59
-			}
60
-		}
61
-	}
32
+    $chercher_logo = charger_fonction('chercher_logo', 'inc');
33
+    $objet = objet_type($objet);
34
+    $primary = id_table_objet($objet);
35
+    include_spip('inc/chercher_logo');
36
+
37
+    // existe-t-il deja un logo ?
38
+    $logo = $chercher_logo($id_objet, $primary, $etat);
39
+    if ($logo) {
40
+        # TODO : deprecated, a supprimer -> anciens logos IMG/artonxx.png pas en base
41
+        if ((is_countable($logo) ? count($logo) : 0) < 6) {
42
+            spip_log('Supprimer ancien logo ' . json_encode($logo, JSON_THROW_ON_ERROR), 'logo');
43
+            spip_unlink($logo[0]);
44
+        }
45
+        elseif (
46
+            ($doc = $logo[5])
47
+            && isset($doc['id_document'])
48
+            && ($id_document = $doc['id_document'])
49
+        ) {
50
+            include_spip('action/editer_liens');
51
+            // supprimer le lien dans la base
52
+            objet_dissocier(['document' => $id_document], [$objet => $id_objet], ['role' => '*']);
53
+
54
+            // verifier si il reste des liens avec d'autres objets et sinon supprimer
55
+            $liens = objet_trouver_liens(['document' => $id_document], '*');
56
+            if ($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,76 +75,76 @@  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
-
87
-		return 'etat invalide';
88
-	}
89
-	// chercher dans la base
90
-	$mode_document = 'logo' . $mode;
91
-
92
-	include_spip('inc/documents');
93
-	$erreur = '';
94
-
95
-	if (!$source) {
96
-		spip_log('spip_image_ajouter : source inconnue', 'logo');
97
-
98
-		return 'source inconnue';
99
-	}
100
-
101
-	// fichier dans upload/
102
-	if (is_string($source)) {
103
-		$tmp_name = false;
104
-		if (file_exists($source)) {
105
-			$tmp_name = $source;
106
-		} elseif (file_exists($f = determine_upload() . $source)) {
107
-			$tmp_name = $f;
108
-		}
109
-		if (!$tmp_name) {
110
-			spip_log('spip_image_ajouter : source inconnue', 'logo');
111
-
112
-			return 'source inconnue';
113
-		}
114
-		$source = [
115
-			'tmp_name' => $tmp_name,
116
-			'name' => basename($tmp_name),
117
-		];
118
-	} elseif ($erreur = check_upload_error($source['error'], '', true)) {
119
-		return $erreur;
120
-	}
121
-
122
-	// supprimer le logo éventuel existant
123
-	// TODO : si un logo existe, le modifier plutot que supprimer + reinserer
124
-	// (mais il faut gerer le cas ou il est utilise par plusieurs objets, donc pas si simple)
125
-	// mais de toute facon l'interface actuelle oblige a supprimer + reinserer
126
-	// @see medias_upgrade_logo_objet()
127
-	if (empty($GLOBALS['logo_migrer_en_base'])) {
128
-		logo_supprimer($objet, $id_objet, $etat);
129
-	}
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 ?: 'Erreur inconnue');
143
-		spip_log("Erreur ajout logo : $erreur pour source=" . json_encode($source, JSON_THROW_ON_ERROR), 'logo');
144
-		return $erreur;
145
-	}
146
-
147
-	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
+
87
+        return 'etat invalide';
88
+    }
89
+    // chercher dans la base
90
+    $mode_document = 'logo' . $mode;
91
+
92
+    include_spip('inc/documents');
93
+    $erreur = '';
94
+
95
+    if (!$source) {
96
+        spip_log('spip_image_ajouter : source inconnue', 'logo');
97
+
98
+        return 'source inconnue';
99
+    }
100
+
101
+    // fichier dans upload/
102
+    if (is_string($source)) {
103
+        $tmp_name = false;
104
+        if (file_exists($source)) {
105
+            $tmp_name = $source;
106
+        } elseif (file_exists($f = determine_upload() . $source)) {
107
+            $tmp_name = $f;
108
+        }
109
+        if (!$tmp_name) {
110
+            spip_log('spip_image_ajouter : source inconnue', 'logo');
111
+
112
+            return 'source inconnue';
113
+        }
114
+        $source = [
115
+            'tmp_name' => $tmp_name,
116
+            'name' => basename($tmp_name),
117
+        ];
118
+    } elseif ($erreur = check_upload_error($source['error'], '', true)) {
119
+        return $erreur;
120
+    }
121
+
122
+    // supprimer le logo éventuel existant
123
+    // TODO : si un logo existe, le modifier plutot que supprimer + reinserer
124
+    // (mais il faut gerer le cas ou il est utilise par plusieurs objets, donc pas si simple)
125
+    // mais de toute facon l'interface actuelle oblige a supprimer + reinserer
126
+    // @see medias_upgrade_logo_objet()
127
+    if (empty($GLOBALS['logo_migrer_en_base'])) {
128
+        logo_supprimer($objet, $id_objet, $etat);
129
+    }
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 ?: 'Erreur inconnue');
143
+        spip_log("Erreur ajout logo : $erreur pour source=" . json_encode($source, JSON_THROW_ON_ERROR), 'logo');
144
+        return $erreur;
145
+    }
146
+
147
+    return ''; // tout est bon, pas d'erreur
148 148
 }
149 149
 
150 150
 /**
@@ -164,126 +164,126 @@  discard block
 block discarded – undo
164 164
  */
165 165
 function logo_migrer_en_base($objet, $time_limit) {
166 166
 
167
-	$dir_logos_erreurs = sous_repertoire(_DIR_IMG, 'logo_erreurs');
168
-	$dir_logos = sous_repertoire(_DIR_IMG, 'logo');
169
-	$formats_logos = ['jpg', 'png', 'svg', 'gif'];
170
-	if (isset($GLOBALS['formats_logos'])) {
171
-		$formats_logos = $GLOBALS['formats_logos'];
172
-	}
173
-
174
-
175
-	$trouver_table = charger_fonction('trouver_table', 'base');
176
-	$chercher_logo = charger_fonction('chercher_logo', 'inc');
177
-	include_spip('inc/chercher_logo');
178
-	$_id_objet = id_table_objet($objet);
179
-	$table = table_objet_sql($objet);
180
-	$type = type_du_logo($_id_objet);
181
-	$desc = $trouver_table($table);
182
-
183
-	// on desactive les revisions
184
-	$liste_objets_versionnes = $GLOBALS['meta']['objets_versions'] ?? '';
185
-	unset($GLOBALS['meta']['objets_versions']);
186
-	// et le signalement des editions
187
-	$articles_modif = $GLOBALS['meta']['articles_modif'] ?? '';
188
-	$GLOBALS['meta']['articles_modif'] = 'non';
189
-
190
-	foreach (['on', 'off'] as $mode) {
191
-		$nom_base = $type . $mode;
192
-		$dir = (defined('_DIR_LOGOS') ? _DIR_LOGOS : _DIR_IMG);
193
-
194
-		$files = glob($dir . $nom_base . '*');
195
-		// est-ce que c'est une nouvelle tentative de migration ?
196
-		// dans ce cas les logos sont deja dans IMG/logo/
197
-		if (!(is_countable($files) ? count($files) : 0)) {
198
-			$files = glob($dir_logos . $nom_base . '*');
199
-			if (is_countable($files) ? count($files) : 0) {
200
-				// mais il faut verifier si ils ont pas deja ete migres pour tout ou partie
201
-				$filescheck = [];
202
-				foreach ($files as $file) {
203
-					$short = basename(dirname((string) $file)) . DIRECTORY_SEPARATOR . basename((string) $file);
204
-					$filescheck[$short] = $file;
205
-				}
206
-				// trouver ceux deja migres
207
-				$deja = sql_allfetsel('fichier', 'spip_documents', sql_in('fichier', array_keys($filescheck)) . " AND mode LIKE 'logo%'");
208
-				if (is_countable($deja) ? count($deja) : 0) {
209
-					$deja = array_column($deja, 'fichier');
210
-					$restant = array_diff(array_keys($filescheck), $deja);
211
-					$files = [];
212
-					if ($restant !== []) {
213
-						foreach ($restant as $r) {
214
-							$files[] = $filescheck[$r];
215
-						}
216
-					}
217
-				}
218
-				// et si il en reste on peut y aller...
219
-				// mais il faut modifier $dir qui sert de base dans la suite
220
-				if (is_countable($files) ? count($files) : 0) {
221
-					$dir = $dir_logos;
222
-				}
223
-			}
224
-		}
225
-
226
-		$count = (is_countable($files) ? count($files) : 0);
227
-		spip_log("logo_migrer_en_base $objet $mode : " . $count . ' logos restant', 'maj' . _LOG_INFO_IMPORTANTE);
228
-
229
-		$deja = [];
230
-		foreach ($files as $file) {
231
-			$logo = substr((string) $file, strlen($dir . $nom_base));
232
-			$logo = explode('.', $logo);
233
-			if (
234
-				is_numeric($logo[0])
235
-				&& (($id_objet = (int) $logo[0]) || in_array($objet, ['site', 'rubrique']))
236
-				&& !isset($deja[$id_objet])
237
-			) {
238
-				$logo = $chercher_logo($id_objet, $_id_objet, $mode);
239
-				// if no logo in base
240
-				if (!$logo || (is_countable($logo) ? count($logo) : 0) < 6) {
241
-					foreach ($formats_logos as $format) {
242
-						if (@file_exists($d = ($dir . ($nom = $nom_base . (int) $id_objet . '.' . $format)))) {
243
-							if (isset($desc['field']['date_modif'])) {
244
-								$date_modif = sql_getfetsel('date_modif', $table, "$_id_objet=$id_objet");
245
-							} else {
246
-								$date_modif = null;
247
-							}
248
-							// s'assurer que le logo a les bon droits au passage (evite un echec en cas de sanitization d'un svg)
249
-							@chmod($d, _SPIP_CHMOD & 0666);
250
-							// logo_modifier commence par supprimer le logo existant, donc on le deplace pour pas le perdre
251
-							@rename($d, $dir_logos . $nom);
252
-							// et on le declare comme nouveau logo
253
-							logo_modifier($objet, $id_objet, $mode, $dir_logos . $nom);
254
-							if ($date_modif) {
255
-								sql_updateq($table, ['date_modif' => $date_modif], "$_id_objet=$id_objet");
256
-							}
257
-							break;
258
-						}
259
-					}
260
-				}
261
-				$deja[$id_objet] = true;
262
-			}
263
-			// si le fichier est encore la on le move : rien a faire ici
264
-			// (sauf si c'est une re-migration : il est deja dans logo/ donc il bouge pas)
265
-			if ($dir !== $dir_logos && file_exists($file)) {
266
-				@rename($file, $dir_logos_erreurs . basename((string) $file));
267
-			}
268
-
269
-			$count--;
270
-			if ($count % 250 === 0) {
271
-				spip_log("logo_migrer_en_base $objet $mode : " . $count . ' logos restant', 'maj' . _LOG_INFO_IMPORTANTE);
272
-			}
273
-
274
-			if ($time_limit && time() > $time_limit) {
275
-				effacer_meta('drapeau_edition');
276
-				return;
277
-			}
278
-		}
279
-	}
280
-
281
-	if ($liste_objets_versionnes) {
282
-		$GLOBALS['meta']['objets_versions'] = $liste_objets_versionnes;
283
-	}
284
-	$GLOBALS['meta']['articles_modif'] = $articles_modif;
285
-
286
-	effacer_meta('drapeau_edition');
167
+    $dir_logos_erreurs = sous_repertoire(_DIR_IMG, 'logo_erreurs');
168
+    $dir_logos = sous_repertoire(_DIR_IMG, 'logo');
169
+    $formats_logos = ['jpg', 'png', 'svg', 'gif'];
170
+    if (isset($GLOBALS['formats_logos'])) {
171
+        $formats_logos = $GLOBALS['formats_logos'];
172
+    }
173
+
174
+
175
+    $trouver_table = charger_fonction('trouver_table', 'base');
176
+    $chercher_logo = charger_fonction('chercher_logo', 'inc');
177
+    include_spip('inc/chercher_logo');
178
+    $_id_objet = id_table_objet($objet);
179
+    $table = table_objet_sql($objet);
180
+    $type = type_du_logo($_id_objet);
181
+    $desc = $trouver_table($table);
182
+
183
+    // on desactive les revisions
184
+    $liste_objets_versionnes = $GLOBALS['meta']['objets_versions'] ?? '';
185
+    unset($GLOBALS['meta']['objets_versions']);
186
+    // et le signalement des editions
187
+    $articles_modif = $GLOBALS['meta']['articles_modif'] ?? '';
188
+    $GLOBALS['meta']['articles_modif'] = 'non';
189
+
190
+    foreach (['on', 'off'] as $mode) {
191
+        $nom_base = $type . $mode;
192
+        $dir = (defined('_DIR_LOGOS') ? _DIR_LOGOS : _DIR_IMG);
193
+
194
+        $files = glob($dir . $nom_base . '*');
195
+        // est-ce que c'est une nouvelle tentative de migration ?
196
+        // dans ce cas les logos sont deja dans IMG/logo/
197
+        if (!(is_countable($files) ? count($files) : 0)) {
198
+            $files = glob($dir_logos . $nom_base . '*');
199
+            if (is_countable($files) ? count($files) : 0) {
200
+                // mais il faut verifier si ils ont pas deja ete migres pour tout ou partie
201
+                $filescheck = [];
202
+                foreach ($files as $file) {
203
+                    $short = basename(dirname((string) $file)) . DIRECTORY_SEPARATOR . basename((string) $file);
204
+                    $filescheck[$short] = $file;
205
+                }
206
+                // trouver ceux deja migres
207
+                $deja = sql_allfetsel('fichier', 'spip_documents', sql_in('fichier', array_keys($filescheck)) . " AND mode LIKE 'logo%'");
208
+                if (is_countable($deja) ? count($deja) : 0) {
209
+                    $deja = array_column($deja, 'fichier');
210
+                    $restant = array_diff(array_keys($filescheck), $deja);
211
+                    $files = [];
212
+                    if ($restant !== []) {
213
+                        foreach ($restant as $r) {
214
+                            $files[] = $filescheck[$r];
215
+                        }
216
+                    }
217
+                }
218
+                // et si il en reste on peut y aller...
219
+                // mais il faut modifier $dir qui sert de base dans la suite
220
+                if (is_countable($files) ? count($files) : 0) {
221
+                    $dir = $dir_logos;
222
+                }
223
+            }
224
+        }
225
+
226
+        $count = (is_countable($files) ? count($files) : 0);
227
+        spip_log("logo_migrer_en_base $objet $mode : " . $count . ' logos restant', 'maj' . _LOG_INFO_IMPORTANTE);
228
+
229
+        $deja = [];
230
+        foreach ($files as $file) {
231
+            $logo = substr((string) $file, strlen($dir . $nom_base));
232
+            $logo = explode('.', $logo);
233
+            if (
234
+                is_numeric($logo[0])
235
+                && (($id_objet = (int) $logo[0]) || in_array($objet, ['site', 'rubrique']))
236
+                && !isset($deja[$id_objet])
237
+            ) {
238
+                $logo = $chercher_logo($id_objet, $_id_objet, $mode);
239
+                // if no logo in base
240
+                if (!$logo || (is_countable($logo) ? count($logo) : 0) < 6) {
241
+                    foreach ($formats_logos as $format) {
242
+                        if (@file_exists($d = ($dir . ($nom = $nom_base . (int) $id_objet . '.' . $format)))) {
243
+                            if (isset($desc['field']['date_modif'])) {
244
+                                $date_modif = sql_getfetsel('date_modif', $table, "$_id_objet=$id_objet");
245
+                            } else {
246
+                                $date_modif = null;
247
+                            }
248
+                            // s'assurer que le logo a les bon droits au passage (evite un echec en cas de sanitization d'un svg)
249
+                            @chmod($d, _SPIP_CHMOD & 0666);
250
+                            // logo_modifier commence par supprimer le logo existant, donc on le deplace pour pas le perdre
251
+                            @rename($d, $dir_logos . $nom);
252
+                            // et on le declare comme nouveau logo
253
+                            logo_modifier($objet, $id_objet, $mode, $dir_logos . $nom);
254
+                            if ($date_modif) {
255
+                                sql_updateq($table, ['date_modif' => $date_modif], "$_id_objet=$id_objet");
256
+                            }
257
+                            break;
258
+                        }
259
+                    }
260
+                }
261
+                $deja[$id_objet] = true;
262
+            }
263
+            // si le fichier est encore la on le move : rien a faire ici
264
+            // (sauf si c'est une re-migration : il est deja dans logo/ donc il bouge pas)
265
+            if ($dir !== $dir_logos && file_exists($file)) {
266
+                @rename($file, $dir_logos_erreurs . basename((string) $file));
267
+            }
268
+
269
+            $count--;
270
+            if ($count % 250 === 0) {
271
+                spip_log("logo_migrer_en_base $objet $mode : " . $count . ' logos restant', 'maj' . _LOG_INFO_IMPORTANTE);
272
+            }
273
+
274
+            if ($time_limit && time() > $time_limit) {
275
+                effacer_meta('drapeau_edition');
276
+                return;
277
+            }
278
+        }
279
+    }
280
+
281
+    if ($liste_objets_versionnes) {
282
+        $GLOBALS['meta']['objets_versions'] = $liste_objets_versionnes;
283
+    }
284
+    $GLOBALS['meta']['articles_modif'] = $articles_modif;
285
+
286
+    effacer_meta('drapeau_edition');
287 287
 }
288 288
 
289 289
 
@@ -304,14 +304,14 @@  discard block
 block discarded – undo
304 304
  * @deprecated 4.0 MAIS NE PAS SUPPRIMER CAR SERT POUR L'UPGRADE des logos et leur mise en base
305 305
  **/
306 306
 function type_du_logo($_id_objet) {
307
-	if ((debug_backtrace(0, 2)[1]['function'] ?? '') !== 'logo_migrer_en_base') {
308
-		trigger_deprecation('spip', '4.0', 'Using "%s" is deprecated', __FUNCTION__);
309
-	}
310
-	$legacy_tables_logos = [
311
-		'id_article' => 'art',
312
-		'id_auteur' => 'aut',
313
-		'id_rubrique' => 'rub',
314
-		'id_groupe' => 'groupe',
315
-	];
316
-	return $legacy_tables_logos[$_id_objet] ?? objet_type(preg_replace(',^id_,', '', $_id_objet));
307
+    if ((debug_backtrace(0, 2)[1]['function'] ?? '') !== 'logo_migrer_en_base') {
308
+        trigger_deprecation('spip', '4.0', 'Using "%s" is deprecated', __FUNCTION__);
309
+    }
310
+    $legacy_tables_logos = [
311
+        'id_article' => 'art',
312
+        'id_auteur' => 'aut',
313
+        'id_rubrique' => 'rub',
314
+        'id_groupe' => 'groupe',
315
+    ];
316
+    return $legacy_tables_logos[$_id_objet] ?? objet_type(preg_replace(',^id_,', '', $_id_objet));
317 317
 }
Please login to merge, or discard this patch.
ecrire/action/api_transmettre.php 2 patches
Indentation   +80 added lines, -80 removed lines patch added patch discarded remove patch
@@ -16,92 +16,92 @@
 block discarded – undo
16 16
  **/
17 17
 
18 18
 if (!defined('_ECRIRE_INC_VERSION')) {
19
-	return;
19
+    return;
20 20
 }
21 21
 
22 22
 
23 23
 function action_api_transmettre_dist($arg = null) {
24 24
 
25
-	// Obtenir l'argument 'id_auteur/cle/format/fond'
26
-	if (is_null($arg)) {
27
-		$arg = _request('arg');
28
-	}
29
-
30
-	$args = explode('/', (string) $arg);
31
-
32
-	if (count($args) !== 4) {
33
-		action_api_transmettre_fail($arg);
34
-	}
35
-
36
-	[$id_auteur, $cle, $format, $fond] = $args;
37
-	$id_auteur = (int) $id_auteur;
38
-
39
-	if (preg_match(',[^\w\\.-],', $format)) {
40
-		action_api_transmettre_fail("format $format ??");
41
-	}
42
-	if (preg_match(',[^\w\\.-],', $fond)) {
43
-		action_api_transmettre_fail("fond $fond ??");
44
-	}
45
-
46
-	// verifier la cle
47
-	//[(#ENV{id,0}|securiser_acces{#ENV{cle}, voirstats, #ENV{op}, #ENV{args}}|?{1,0})]
48
-	//[(#ENV{id,0}|securiser_acces{#ENV{cle}, voirstats, #ENV{op}, #ENV{args}}|?{1,0})]
49
-
50
-	$qs = $_SERVER['QUERY_STRING'];
51
-	// retirer action et arg de la qs
52
-	$contexte = [];
53
-	parse_str((string) $qs, $contexte);
54
-	foreach (array_keys($contexte) as $k) {
55
-		if (in_array($k, ['action', 'arg', 'var_mode'])) {
56
-			unset($contexte[$k]);
57
-		}
58
-	}
59
-	$qs = http_build_query($contexte);
60
-	include_spip('inc/acces');
61
-	if (!securiser_acces_low_sec((int) $id_auteur, $cle, "transmettre/$format", $fond, $qs)) {
62
-		// si le autoriser low_sec n'est pas bon, on peut valider l'appel si l'auteur est identifie
63
-		include_spip('inc/autoriser');
64
-		$autoriser_type = preg_replace(',\W+,', '', "_{$format}{$fond}");
65
-		if (
66
-			!$id_auteur
67
-			|| empty($GLOBALS['visiteur_session']['id_auteur'])
68
-			|| $GLOBALS['visiteur_session']['id_auteur'] != $id_auteur
69
-			|| !autoriser('transmettre', $autoriser_type, $id_auteur)
70
-		) {
71
-			action_api_transmettre_fail("auth QS $qs ??");
72
-		}
73
-	}
74
-
75
-	$contexte['id_auteur'] = $id_auteur;
76
-
77
-	$fond = "transmettre/$format/$fond";
78
-
79
-	if (!trouver_fond($fond)) {
80
-		$fond = "prive/$fond";
81
-	}
82
-
83
-	if (!trouver_fond($fond)) {
84
-		action_api_transmettre_fail("fond $fond ??");
85
-	}
86
-
87
-	$res = recuperer_fond($fond, $contexte, ['raw' => true]);
88
-	if (!empty($res['entetes'])) {
89
-		foreach ($res['entetes'] as $h => $v) {
90
-			header("$h: $v");
91
-		}
92
-	}
93
-
94
-	$res = ltrim((string) $res['texte']);
95
-	if (empty($res)) {
96
-		spip_log("$arg $qs resultat vide", 'transmettre' . _LOG_INFO_IMPORTANTE);
97
-	}
98
-
99
-	echo $res;
100
-	exit();
25
+    // Obtenir l'argument 'id_auteur/cle/format/fond'
26
+    if (is_null($arg)) {
27
+        $arg = _request('arg');
28
+    }
29
+
30
+    $args = explode('/', (string) $arg);
31
+
32
+    if (count($args) !== 4) {
33
+        action_api_transmettre_fail($arg);
34
+    }
35
+
36
+    [$id_auteur, $cle, $format, $fond] = $args;
37
+    $id_auteur = (int) $id_auteur;
38
+
39
+    if (preg_match(',[^\w\\.-],', $format)) {
40
+        action_api_transmettre_fail("format $format ??");
41
+    }
42
+    if (preg_match(',[^\w\\.-],', $fond)) {
43
+        action_api_transmettre_fail("fond $fond ??");
44
+    }
45
+
46
+    // verifier la cle
47
+    //[(#ENV{id,0}|securiser_acces{#ENV{cle}, voirstats, #ENV{op}, #ENV{args}}|?{1,0})]
48
+    //[(#ENV{id,0}|securiser_acces{#ENV{cle}, voirstats, #ENV{op}, #ENV{args}}|?{1,0})]
49
+
50
+    $qs = $_SERVER['QUERY_STRING'];
51
+    // retirer action et arg de la qs
52
+    $contexte = [];
53
+    parse_str((string) $qs, $contexte);
54
+    foreach (array_keys($contexte) as $k) {
55
+        if (in_array($k, ['action', 'arg', 'var_mode'])) {
56
+            unset($contexte[$k]);
57
+        }
58
+    }
59
+    $qs = http_build_query($contexte);
60
+    include_spip('inc/acces');
61
+    if (!securiser_acces_low_sec((int) $id_auteur, $cle, "transmettre/$format", $fond, $qs)) {
62
+        // si le autoriser low_sec n'est pas bon, on peut valider l'appel si l'auteur est identifie
63
+        include_spip('inc/autoriser');
64
+        $autoriser_type = preg_replace(',\W+,', '', "_{$format}{$fond}");
65
+        if (
66
+            !$id_auteur
67
+            || empty($GLOBALS['visiteur_session']['id_auteur'])
68
+            || $GLOBALS['visiteur_session']['id_auteur'] != $id_auteur
69
+            || !autoriser('transmettre', $autoriser_type, $id_auteur)
70
+        ) {
71
+            action_api_transmettre_fail("auth QS $qs ??");
72
+        }
73
+    }
74
+
75
+    $contexte['id_auteur'] = $id_auteur;
76
+
77
+    $fond = "transmettre/$format/$fond";
78
+
79
+    if (!trouver_fond($fond)) {
80
+        $fond = "prive/$fond";
81
+    }
82
+
83
+    if (!trouver_fond($fond)) {
84
+        action_api_transmettre_fail("fond $fond ??");
85
+    }
86
+
87
+    $res = recuperer_fond($fond, $contexte, ['raw' => true]);
88
+    if (!empty($res['entetes'])) {
89
+        foreach ($res['entetes'] as $h => $v) {
90
+            header("$h: $v");
91
+        }
92
+    }
93
+
94
+    $res = ltrim((string) $res['texte']);
95
+    if (empty($res)) {
96
+        spip_log("$arg $qs resultat vide", 'transmettre' . _LOG_INFO_IMPORTANTE);
97
+    }
98
+
99
+    echo $res;
100
+    exit();
101 101
 }
102 102
 
103 103
 function action_api_transmettre_fail($arg): never {
104
-	include_spip('inc/minipres');
105
-	echo minipres(_T('info_acces_interdit'), $arg);
106
-	exit;
104
+    include_spip('inc/minipres');
105
+    echo minipres(_T('info_acces_interdit'), $arg);
106
+    exit;
107 107
 }
Please login to merge, or discard this patch.
Spacing   +1 added lines, -1 removed lines patch added patch discarded remove patch
@@ -93,7 +93,7 @@
 block discarded – undo
93 93
 
94 94
 	$res = ltrim((string) $res['texte']);
95 95
 	if (empty($res)) {
96
-		spip_log("$arg $qs resultat vide", 'transmettre' . _LOG_INFO_IMPORTANTE);
96
+		spip_log("$arg $qs resultat vide", 'transmettre'._LOG_INFO_IMPORTANTE);
97 97
 	}
98 98
 
99 99
 	echo $res;
Please login to merge, or discard this patch.
ecrire/action/forcer_job.php 1 patch
Indentation   +11 added lines, -11 removed lines patch added patch discarded remove patch
@@ -16,7 +16,7 @@  discard block
 block discarded – undo
16 16
  */
17 17
 
18 18
 if (!defined('_ECRIRE_INC_VERSION')) {
19
-	return;
19
+    return;
20 20
 }
21 21
 
22 22
 /**
@@ -25,15 +25,15 @@  discard block
 block discarded – undo
25 25
  * @return void
26 26
  */
27 27
 function action_forcer_job_dist() {
28
-	$securiser_action = charger_fonction('securiser_action', 'inc');
29
-	$id_job = $securiser_action();
28
+    $securiser_action = charger_fonction('securiser_action', 'inc');
29
+    $id_job = $securiser_action();
30 30
 
31
-	if (
32
-		($id_job = (int) $id_job)
33
-		&& autoriser('forcer', 'job', $id_job)
34
-	) {
35
-		include_spip('inc/queue');
36
-		include_spip('inc/genie');
37
-		queue_schedule([$id_job]);
38
-	}
31
+    if (
32
+        ($id_job = (int) $id_job)
33
+        && autoriser('forcer', 'job', $id_job)
34
+    ) {
35
+        include_spip('inc/queue');
36
+        include_spip('inc/genie');
37
+        queue_schedule([$id_job]);
38
+    }
39 39
 }
Please login to merge, or discard this patch.
ecrire/action/supprimer_lien.php 1 patch
Indentation   +9 added lines, -9 removed lines patch added patch discarded remove patch
@@ -16,7 +16,7 @@  discard block
 block discarded – undo
16 16
  */
17 17
 
18 18
 if (!defined('_ECRIRE_INC_VERSION')) {
19
-	return;
19
+    return;
20 20
 }
21 21
 
22 22
 
@@ -34,14 +34,14 @@  discard block
 block discarded – undo
34 34
  * @return void
35 35
  */
36 36
 function action_supprimer_lien_dist($arg = null) {
37
-	if (is_null($arg)) {
38
-		$securiser_action = charger_fonction('securiser_action', 'inc');
39
-		$arg = $securiser_action();
40
-	}
37
+    if (is_null($arg)) {
38
+        $securiser_action = charger_fonction('securiser_action', 'inc');
39
+        $arg = $securiser_action();
40
+    }
41 41
 
42
-	$arg = explode('-', (string) $arg);
43
-	[$objet_source, $ids, $objet_lie, $idl] = $arg;
42
+    $arg = explode('-', (string) $arg);
43
+    [$objet_source, $ids, $objet_lie, $idl] = $arg;
44 44
 
45
-	include_spip('action/editer_liens');
46
-	objet_dissocier([$objet_source => $ids], [$objet_lie => $idl]);
45
+    include_spip('action/editer_liens');
46
+    objet_dissocier([$objet_source => $ids], [$objet_lie => $idl]);
47 47
 }
Please login to merge, or discard this patch.
ecrire/action/etre_webmestre.php 1 patch
Indentation   +21 added lines, -21 removed lines patch added patch discarded remove patch
@@ -16,7 +16,7 @@  discard block
 block discarded – undo
16 16
  */
17 17
 
18 18
 if (!defined('_ECRIRE_INC_VERSION')) {
19
-	return;
19
+    return;
20 20
 }
21 21
 
22 22
 include_spip('inc/actions');
@@ -28,23 +28,23 @@  discard block
 block discarded – undo
28 28
  * @return void
29 29
  */
30 30
 function action_etre_webmestre_dist() {
31
-	$securiser_action = charger_fonction('securiser_action', 'inc');
32
-	$time = $securiser_action();
31
+    $securiser_action = charger_fonction('securiser_action', 'inc');
32
+    $time = $securiser_action();
33 33
 
34
-	if (
35
-		time() - $time < 15 * 60
36
-		&& $GLOBALS['visiteur_session']['statut'] == '0minirezo'
37
-		&& $GLOBALS['visiteur_session']['webmestre'] !== 'oui'
38
-	) {
39
-		$action = _T('info_admin_etre_webmestre');
40
-		$admin = charger_fonction('admin', 'inc');
41
-		// lance la verif par ftp et l'appel
42
-		// a base_etre_webmestre_dist quand c'est OK
43
-		if ($r = $admin('etre_webmestre', $action)) {
44
-			echo $r;
45
-			exit;
46
-		}
47
-	}
34
+    if (
35
+        time() - $time < 15 * 60
36
+        && $GLOBALS['visiteur_session']['statut'] == '0minirezo'
37
+        && $GLOBALS['visiteur_session']['webmestre'] !== 'oui'
38
+    ) {
39
+        $action = _T('info_admin_etre_webmestre');
40
+        $admin = charger_fonction('admin', 'inc');
41
+        // lance la verif par ftp et l'appel
42
+        // a base_etre_webmestre_dist quand c'est OK
43
+        if ($r = $admin('etre_webmestre', $action)) {
44
+            echo $r;
45
+            exit;
46
+        }
47
+    }
48 48
 }
49 49
 
50 50
 /**
@@ -53,8 +53,8 @@  discard block
 block discarded – undo
53 53
  * @return void
54 54
  */
55 55
 function base_etre_webmestre_dist() {
56
-	if ($GLOBALS['visiteur_session']['statut'] == '0minirezo' && $GLOBALS['visiteur_session']['webmestre'] !== 'oui') {
57
-		include_spip('action/editer_auteur');
58
-		auteur_instituer($GLOBALS['visiteur_session']['id_auteur'], ['webmestre' => 'oui'], true);
59
-	}
56
+    if ($GLOBALS['visiteur_session']['statut'] == '0minirezo' && $GLOBALS['visiteur_session']['webmestre'] !== 'oui') {
57
+        include_spip('action/editer_auteur');
58
+        auteur_instituer($GLOBALS['visiteur_session']['id_auteur'], ['webmestre' => 'oui'], true);
59
+    }
60 60
 }
Please login to merge, or discard this patch.
ecrire/action/editer_auteur.php 2 patches
Spacing   +5 added lines, -5 removed lines patch added patch discarded remove patch
@@ -91,7 +91,7 @@  discard block
 block discarded – undo
91 91
 	$champs['source'] = $source ?: 'spip';
92 92
 
93 93
 	$champs['login'] = '';
94
-	$champs['statut'] = '5poubelle';  // inutilisable tant qu'il n'a pas ete renseigne et institue
94
+	$champs['statut'] = '5poubelle'; // inutilisable tant qu'il n'a pas ete renseigne et institue
95 95
 	$champs['webmestre'] = 'non';
96 96
 	if (empty($champs['imessage'])) {
97 97
 		$champs['imessage'] = 'oui';
@@ -331,7 +331,7 @@  discard block
 block discarded – undo
331 331
 		$champs['pass'] = $c['pass'];
332 332
 	}
333 333
 
334
-	$statut = $statut_ancien = sql_getfetsel('statut', 'spip_auteurs', 'id_auteur=' . (int) $id_auteur);
334
+	$statut = $statut_ancien = sql_getfetsel('statut', 'spip_auteurs', 'id_auteur='.(int) $id_auteur);
335 335
 
336 336
 	if (
337 337
 		isset($c['statut']) && autoriser('modifier', 'auteur', $id_auteur, null, ['statut' => $c['statut']])
@@ -390,7 +390,7 @@  discard block
 block discarded – undo
390 390
 	// commencer par traiter les cas particuliers des logins et pass
391 391
 	// avant les autres ecritures en base
392 392
 	if (isset($champs['login']) || isset($champs['pass'])) {
393
-		$auth_methode = sql_getfetsel('source', 'spip_auteurs', 'id_auteur=' . (int) $id_auteur);
393
+		$auth_methode = sql_getfetsel('source', 'spip_auteurs', 'id_auteur='.(int) $id_auteur);
394 394
 		include_spip('inc/auth');
395 395
 		if (
396 396
 			isset($champs['login'])
@@ -400,7 +400,7 @@  discard block
 block discarded – undo
400 400
 			$erreurs[] = 'ecrire:impossible_modifier_login_auteur';
401 401
 		}
402 402
 		if (isset($champs['pass']) && strlen((string) $champs['pass'])) {
403
-			$champs['login'] = sql_getfetsel('login', 'spip_auteurs', 'id_auteur=' . (int) $id_auteur);
403
+			$champs['login'] = sql_getfetsel('login', 'spip_auteurs', 'id_auteur='.(int) $id_auteur);
404 404
 			if (!auth_modifier_pass($auth_methode, $champs['login'], $champs['pass'], $id_auteur)) {
405 405
 				$erreurs[] = 'ecrire:impossible_modifier_pass_auteur';
406 406
 			}
@@ -413,7 +413,7 @@  discard block
 block discarded – undo
413 413
 	if (!(is_countable($champs) ? count($champs) : 0)) {
414 414
 		return implode(' ', array_map('_T', $erreurs));
415 415
 	}
416
-	sql_updateq('spip_auteurs', $champs, 'id_auteur=' . $id_auteur);
416
+	sql_updateq('spip_auteurs', $champs, 'id_auteur='.$id_auteur);
417 417
 
418 418
 	// .. mettre a jour les fichiers .htpasswd et .htpasswd-admin
419 419
 	if ($flag_ecrire_acces || isset($champs['statut'])) {
Please login to merge, or discard this patch.
Indentation   +323 added lines, -323 removed lines patch added patch discarded remove patch
@@ -16,7 +16,7 @@  discard block
 block discarded – undo
16 16
  */
17 17
 
18 18
 if (!defined('_ECRIRE_INC_VERSION')) {
19
-	return;
19
+    return;
20 20
 }
21 21
 
22 22
 /**
@@ -36,40 +36,40 @@  discard block
 block discarded – undo
36 36
  */
37 37
 function action_editer_auteur_dist($arg = null) {
38 38
 
39
-	if (is_null($arg)) {
40
-		$securiser_action = charger_fonction('securiser_action', 'inc');
41
-		$arg = $securiser_action();
42
-	}
43
-
44
-
45
-	// si id_auteur n'est pas un nombre, c'est une creation
46
-	if (
47
-		!($id_auteur = (int) $arg)
48
-		&& ($id_auteur = auteur_inserer()) > 0
49
-	) {
50
-		# cf. GROS HACK
51
-		# recuperer l'eventuel logo charge avant la creation
52
-		# ils ont un id = 0-id_auteur de la session
53
-		$id_hack = 0 - $GLOBALS['visiteur_session']['id_auteur'];
54
-		$chercher_logo = charger_fonction('chercher_logo', 'inc');
55
-		foreach (['on', 'off'] as $type) {
56
-			if (($logo = $chercher_logo($id_hack, 'id_auteur', $type)) && ($logo = reset($logo))) {
57
-				rename($logo, str_replace($id_hack, $id_auteur, (string) $logo));
58
-			}
59
-		}
60
-	}
61
-
62
-	// Enregistre l'envoi dans la BD
63
-	$err = '';
64
-	if ($id_auteur > 0) {
65
-		$err = auteur_modifier($id_auteur);
66
-	}
67
-
68
-	if ($err) {
69
-		spip_log("echec editeur auteur: $err", _LOG_ERREUR);
70
-	}
71
-
72
-	return [$id_auteur, $err];
39
+    if (is_null($arg)) {
40
+        $securiser_action = charger_fonction('securiser_action', 'inc');
41
+        $arg = $securiser_action();
42
+    }
43
+
44
+
45
+    // si id_auteur n'est pas un nombre, c'est une creation
46
+    if (
47
+        !($id_auteur = (int) $arg)
48
+        && ($id_auteur = auteur_inserer()) > 0
49
+    ) {
50
+        # cf. GROS HACK
51
+        # recuperer l'eventuel logo charge avant la creation
52
+        # ils ont un id = 0-id_auteur de la session
53
+        $id_hack = 0 - $GLOBALS['visiteur_session']['id_auteur'];
54
+        $chercher_logo = charger_fonction('chercher_logo', 'inc');
55
+        foreach (['on', 'off'] as $type) {
56
+            if (($logo = $chercher_logo($id_hack, 'id_auteur', $type)) && ($logo = reset($logo))) {
57
+                rename($logo, str_replace($id_hack, $id_auteur, (string) $logo));
58
+            }
59
+        }
60
+    }
61
+
62
+    // Enregistre l'envoi dans la BD
63
+    $err = '';
64
+    if ($id_auteur > 0) {
65
+        $err = auteur_modifier($id_auteur);
66
+    }
67
+
68
+    if ($err) {
69
+        spip_log("echec editeur auteur: $err", _LOG_ERREUR);
70
+    }
71
+
72
+    return [$id_auteur, $err];
73 73
 }
74 74
 
75 75
 /**
@@ -86,64 +86,64 @@  discard block
 block discarded – undo
86 86
  */
87 87
 function auteur_inserer($source = null, $set = null) {
88 88
 
89
-	// Ce qu'on va demander comme modifications
90
-	$champs = [];
91
-	$champs['source'] = $source ?: 'spip';
92
-
93
-	$champs['login'] = '';
94
-	$champs['statut'] = '5poubelle';  // inutilisable tant qu'il n'a pas ete renseigne et institue
95
-	$champs['webmestre'] = 'non';
96
-	if (empty($champs['imessage'])) {
97
-		$champs['imessage'] = 'oui';
98
-	}
99
-
100
-	if ($set) {
101
-		$champs = array_merge($champs, $set);
102
-	}
103
-
104
-	// Envoyer aux plugins
105
-	$champs = pipeline(
106
-		'pre_insertion',
107
-		[
108
-			'args' => [
109
-				'table' => 'spip_auteurs',
110
-			],
111
-			'data' => $champs
112
-		]
113
-	);
114
-	$id_auteur = sql_insertq('spip_auteurs', $champs);
115
-	pipeline(
116
-		'post_insertion',
117
-		[
118
-			'args' => [
119
-				'table' => 'spip_auteurs',
120
-				'id_objet' => $id_auteur
121
-			],
122
-			'data' => $champs
123
-		]
124
-	);
125
-
126
-	// Appeler une notification
127
-	if ($notifications = charger_fonction('notifications', 'inc')) {
128
-		$notifications(
129
-			'auteur_inserer',
130
-			$id_auteur,
131
-			[
132
-				'champs' => $champs,
133
-			]
134
-		);
135
-		$notifications(
136
-			'objet_inserer',
137
-			$id_auteur,
138
-			[
139
-				'objet' => 'auteur',
140
-				'id_objet' => $id_auteur,
141
-				'champs' => $champs,
142
-			]
143
-		);
144
-	}
145
-
146
-	return $id_auteur;
89
+    // Ce qu'on va demander comme modifications
90
+    $champs = [];
91
+    $champs['source'] = $source ?: 'spip';
92
+
93
+    $champs['login'] = '';
94
+    $champs['statut'] = '5poubelle';  // inutilisable tant qu'il n'a pas ete renseigne et institue
95
+    $champs['webmestre'] = 'non';
96
+    if (empty($champs['imessage'])) {
97
+        $champs['imessage'] = 'oui';
98
+    }
99
+
100
+    if ($set) {
101
+        $champs = array_merge($champs, $set);
102
+    }
103
+
104
+    // Envoyer aux plugins
105
+    $champs = pipeline(
106
+        'pre_insertion',
107
+        [
108
+            'args' => [
109
+                'table' => 'spip_auteurs',
110
+            ],
111
+            'data' => $champs
112
+        ]
113
+    );
114
+    $id_auteur = sql_insertq('spip_auteurs', $champs);
115
+    pipeline(
116
+        'post_insertion',
117
+        [
118
+            'args' => [
119
+                'table' => 'spip_auteurs',
120
+                'id_objet' => $id_auteur
121
+            ],
122
+            'data' => $champs
123
+        ]
124
+    );
125
+
126
+    // Appeler une notification
127
+    if ($notifications = charger_fonction('notifications', 'inc')) {
128
+        $notifications(
129
+            'auteur_inserer',
130
+            $id_auteur,
131
+            [
132
+                'champs' => $champs,
133
+            ]
134
+        );
135
+        $notifications(
136
+            'objet_inserer',
137
+            $id_auteur,
138
+            [
139
+                'objet' => 'auteur',
140
+                'id_objet' => $id_auteur,
141
+                'champs' => $champs,
142
+            ]
143
+        );
144
+    }
145
+
146
+    return $id_auteur;
147 147
 }
148 148
 
149 149
 
@@ -168,70 +168,70 @@  discard block
 block discarded – undo
168 168
  */
169 169
 function auteur_modifier($id_auteur, $set = null, $force_update = false) {
170 170
 
171
-	include_spip('inc/modifier');
172
-	include_spip('inc/filtres');
173
-	$c = collecter_requests(
174
-		// include list
175
-		objet_info('auteur', 'champs_editables'),
176
-		// exclude list
177
-		$force_update ? [] : ['webmestre', 'pass', 'login'],
178
-		// donnees eventuellement fournies
179
-		$set
180
-	);
181
-
182
-	if (
183
-		$err = objet_modifier_champs(
184
-			'auteur',
185
-			$id_auteur,
186
-			[
187
-			'data' => $set,
188
-			'nonvide' => ['nom' => _T('ecrire:item_nouvel_auteur')]
189
-			],
190
-			$c
191
-		)
192
-	) {
193
-		return $err;
194
-	}
195
-	$session = $c;
196
-
197
-	$err = '';
198
-	if (!$force_update) {
199
-		// Modification de statut, changement de rubrique ?
200
-		$c = collecter_requests(
201
-		// include list
202
-			[
203
-				'statut',
204
-				'new_login',
205
-				'new_pass',
206
-				'login',
207
-				'pass',
208
-				'webmestre',
209
-				'restreintes',
210
-				'id_parent'
211
-			],
212
-			// exclude list
213
-			[],
214
-			// donnees eventuellement fournies
215
-			$set
216
-		);
217
-		if (isset($c['new_login']) && !isset($c['login'])) {
218
-			$c['login'] = $c['new_login'];
219
-		}
220
-		if (isset($c['new_pass']) && !isset($c['pass'])) {
221
-			$c['pass'] = $c['new_pass'];
222
-		}
223
-		$err = auteur_instituer($id_auteur, $c);
224
-		$session = array_merge($session, $c);
225
-	}
226
-
227
-	// .. mettre a jour les sessions de cet auteur
228
-	include_spip('inc/session');
229
-	$session['id_auteur'] = $id_auteur;
230
-	unset($session['new_login']);
231
-	unset($session['new_pass']);
232
-	actualiser_sessions($session);
233
-
234
-	return $err;
171
+    include_spip('inc/modifier');
172
+    include_spip('inc/filtres');
173
+    $c = collecter_requests(
174
+        // include list
175
+        objet_info('auteur', 'champs_editables'),
176
+        // exclude list
177
+        $force_update ? [] : ['webmestre', 'pass', 'login'],
178
+        // donnees eventuellement fournies
179
+        $set
180
+    );
181
+
182
+    if (
183
+        $err = objet_modifier_champs(
184
+            'auteur',
185
+            $id_auteur,
186
+            [
187
+            'data' => $set,
188
+            'nonvide' => ['nom' => _T('ecrire:item_nouvel_auteur')]
189
+            ],
190
+            $c
191
+        )
192
+    ) {
193
+        return $err;
194
+    }
195
+    $session = $c;
196
+
197
+    $err = '';
198
+    if (!$force_update) {
199
+        // Modification de statut, changement de rubrique ?
200
+        $c = collecter_requests(
201
+        // include list
202
+            [
203
+                'statut',
204
+                'new_login',
205
+                'new_pass',
206
+                'login',
207
+                'pass',
208
+                'webmestre',
209
+                'restreintes',
210
+                'id_parent'
211
+            ],
212
+            // exclude list
213
+            [],
214
+            // donnees eventuellement fournies
215
+            $set
216
+        );
217
+        if (isset($c['new_login']) && !isset($c['login'])) {
218
+            $c['login'] = $c['new_login'];
219
+        }
220
+        if (isset($c['new_pass']) && !isset($c['pass'])) {
221
+            $c['pass'] = $c['new_pass'];
222
+        }
223
+        $err = auteur_instituer($id_auteur, $c);
224
+        $session = array_merge($session, $c);
225
+    }
226
+
227
+    // .. mettre a jour les sessions de cet auteur
228
+    include_spip('inc/session');
229
+    $session['id_auteur'] = $id_auteur;
230
+    unset($session['new_login']);
231
+    unset($session['new_pass']);
232
+    actualiser_sessions($session);
233
+
234
+    return $err;
235 235
 }
236 236
 
237 237
 /**
@@ -252,9 +252,9 @@  discard block
 block discarded – undo
252 252
  * @return string
253 253
  */
254 254
 function auteur_associer($id_auteur, $objets, $qualif = null) {
255
-	include_spip('action/editer_liens');
255
+    include_spip('action/editer_liens');
256 256
 
257
-	return objet_associer(['auteur' => $id_auteur], $objets, $qualif);
257
+    return objet_associer(['auteur' => $id_auteur], $objets, $qualif);
258 258
 }
259 259
 
260 260
 /**
@@ -273,9 +273,9 @@  discard block
 block discarded – undo
273 273
  * @return string
274 274
  */
275 275
 function auteur_dissocier($id_auteur, $objets) {
276
-	include_spip('action/editer_liens');
276
+    include_spip('action/editer_liens');
277 277
 
278
-	return objet_dissocier(['auteur' => $id_auteur], $objets);
278
+    return objet_dissocier(['auteur' => $id_auteur], $objets);
279 279
 }
280 280
 
281 281
 /**
@@ -296,9 +296,9 @@  discard block
 block discarded – undo
296 296
  * @return bool|int
297 297
  */
298 298
 function auteur_qualifier($id_auteur, $objets, $qualif) {
299
-	include_spip('action/editer_liens');
299
+    include_spip('action/editer_liens');
300 300
 
301
-	return objet_qualifier_liens(['auteur' => $id_auteur], $objets, $qualif);
301
+    return objet_qualifier_liens(['auteur' => $id_auteur], $objets, $qualif);
302 302
 }
303 303
 
304 304
 
@@ -317,164 +317,164 @@  discard block
 block discarded – undo
317 317
  * @return bool|string
318 318
  */
319 319
 function auteur_instituer($id_auteur, $c, $force_webmestre = false) {
320
-	if (!$id_auteur = (int) $id_auteur) {
321
-		return false;
322
-	}
323
-	$erreurs = []; // contiendra les differentes erreurs a traduire par _T()
324
-	$champs = [];
325
-
326
-	// les memoriser pour les faire passer dans le pipeline pre_edition
327
-	if (isset($c['login']) && strlen((string) $c['login'])) {
328
-		$champs['login'] = $c['login'];
329
-	}
330
-	if (isset($c['pass']) && strlen((string) $c['pass'])) {
331
-		$champs['pass'] = $c['pass'];
332
-	}
333
-
334
-	$statut = $statut_ancien = sql_getfetsel('statut', 'spip_auteurs', 'id_auteur=' . (int) $id_auteur);
335
-
336
-	if (
337
-		isset($c['statut']) && autoriser('modifier', 'auteur', $id_auteur, null, ['statut' => $c['statut']])
338
-	) {
339
-		$statut = $champs['statut'] = $c['statut'];
340
-	}
341
-
342
-	// Restreindre avant de declarer l'auteur
343
-	// (section critique sur les droits)
344
-	if (isset($c['id_parent']) && $c['id_parent']) {
345
-		if (is_array($c['restreintes'])) {
346
-			$c['restreintes'][] = $c['id_parent'];
347
-		} else {
348
-			$c['restreintes'] = [$c['id_parent']];
349
-		}
350
-	}
351
-
352
-	if (
353
-		isset($c['webmestre'])
354
-		&& ($force_webmestre || autoriser('modifier', 'auteur', $id_auteur, null, ['webmestre' => '?']))
355
-	) {
356
-		$champs['webmestre'] = $c['webmestre'] == 'oui' ? 'oui' : 'non';
357
-	}
358
-
359
-	// si statut change et n'est pas 0minirezo, on force webmestre a non
360
-	if (isset($c['statut']) && $c['statut'] !== '0minirezo') {
361
-		$champs['webmestre'] = $c['webmestre'] = 'non';
362
-	}
363
-
364
-	// Envoyer aux plugins
365
-	$champs = pipeline(
366
-		'pre_edition',
367
-		[
368
-			'args' => [
369
-				'table' => 'spip_auteurs',
370
-				'table_objet' => 'auteurs',
371
-				'spip_table_objet' => 'spip_auteurs',
372
-				'objet' => 'auteur',
373
-				'id_objet' => $id_auteur,
374
-				'action' => 'instituer',
375
-				'statut_ancien' => $statut_ancien,
376
-			],
377
-			'data' => $champs
378
-		]
379
-	);
380
-
381
-	if (
382
-		isset($c['restreintes']) && is_array($c['restreintes'])
383
-		&& autoriser('modifier', 'auteur', $id_auteur, null, ['restreint' => $c['restreintes']])
384
-	) {
385
-		$rubriques = array_map('intval', $c['restreintes']);
386
-		$rubriques = array_unique($rubriques);
387
-		$rubriques = array_diff($rubriques, [0]);
388
-		auteur_dissocier($id_auteur, ['rubrique' => '*']);
389
-		auteur_associer($id_auteur, ['rubrique' => $rubriques]);
390
-	}
391
-
392
-	$flag_ecrire_acces = false;
393
-	// commencer par traiter les cas particuliers des logins et pass
394
-	// avant les autres ecritures en base
395
-	if (isset($champs['login']) || isset($champs['pass'])) {
396
-		$auth_methode = sql_getfetsel('source', 'spip_auteurs', 'id_auteur=' . (int) $id_auteur);
397
-		include_spip('inc/auth');
398
-		if (
399
-			isset($champs['login'])
400
-			&& strlen((string) $champs['login'])
401
-			&& !auth_modifier_login($auth_methode, $champs['login'], $id_auteur)
402
-		) {
403
-			$erreurs[] = 'ecrire:impossible_modifier_login_auteur';
404
-		}
405
-		if (isset($champs['pass']) && strlen((string) $champs['pass'])) {
406
-			$champs['login'] = sql_getfetsel('login', 'spip_auteurs', 'id_auteur=' . (int) $id_auteur);
407
-			if (!auth_modifier_pass($auth_methode, $champs['login'], $champs['pass'], $id_auteur)) {
408
-				$erreurs[] = 'ecrire:impossible_modifier_pass_auteur';
409
-			}
410
-		}
411
-		unset($champs['login']);
412
-		unset($champs['pass']);
413
-		$flag_ecrire_acces = true;
414
-	}
415
-
416
-	if (!(is_countable($champs) ? count($champs) : 0)) {
417
-		return implode(' ', array_map('_T', $erreurs));
418
-	}
419
-	sql_updateq('spip_auteurs', $champs, 'id_auteur=' . $id_auteur);
420
-
421
-	// .. mettre a jour les fichiers .htpasswd et .htpasswd-admin
422
-	if ($flag_ecrire_acces || isset($champs['statut'])) {
423
-		include_spip('inc/acces');
424
-		ecrire_acces();
425
-	}
426
-
427
-	// Invalider les caches
428
-	include_spip('inc/invalideur');
429
-	suivre_invalideur("id='auteur/$id_auteur'");
430
-
431
-	// Pipeline
432
-	pipeline(
433
-		'post_edition',
434
-		[
435
-			'args' => [
436
-				'table' => 'spip_auteurs',
437
-				'table_objet' => 'auteurs',
438
-				'spip_table_objet' => 'spip_auteurs',
439
-				'objet' => 'auteur',
440
-				'id_objet' => $id_auteur,
441
-				'action' => 'instituer',
442
-				'statut_ancien' => $statut_ancien,
443
-			],
444
-			'data' => $champs
445
-		]
446
-	);
447
-
448
-	// Notifications
449
-	if ($notifications = charger_fonction('notifications', 'inc')) {
450
-		$notifications(
451
-			'auteur_instituer',
452
-			$id_auteur,
453
-			[
454
-				'statut' => $statut,
455
-				'statut_ancien' => $statut_ancien,
456
-				'champs' => $champs,
457
-			]
458
-		);
459
-		$notifications(
460
-			'objet_instituer',
461
-			$id_auteur,
462
-			[
463
-				'objet' => 'auteur',
464
-				'id_objet' => $id_auteur,
465
-				'statut' => $statut,
466
-				'statut_ancien' => $statut_ancien,
467
-				'champs' => $champs,
468
-			]
469
-		);
470
-
471
-		// Rétro-compat
472
-		$notifications(
473
-			'instituerauteur',
474
-			$id_auteur,
475
-			['statut' => $statut, 'statut_ancien' => $statut_ancien]
476
-		);
477
-	}
478
-
479
-	return implode(' ', array_map('_T', $erreurs));
320
+    if (!$id_auteur = (int) $id_auteur) {
321
+        return false;
322
+    }
323
+    $erreurs = []; // contiendra les differentes erreurs a traduire par _T()
324
+    $champs = [];
325
+
326
+    // les memoriser pour les faire passer dans le pipeline pre_edition
327
+    if (isset($c['login']) && strlen((string) $c['login'])) {
328
+        $champs['login'] = $c['login'];
329
+    }
330
+    if (isset($c['pass']) && strlen((string) $c['pass'])) {
331
+        $champs['pass'] = $c['pass'];
332
+    }
333
+
334
+    $statut = $statut_ancien = sql_getfetsel('statut', 'spip_auteurs', 'id_auteur=' . (int) $id_auteur);
335
+
336
+    if (
337
+        isset($c['statut']) && autoriser('modifier', 'auteur', $id_auteur, null, ['statut' => $c['statut']])
338
+    ) {
339
+        $statut = $champs['statut'] = $c['statut'];
340
+    }
341
+
342
+    // Restreindre avant de declarer l'auteur
343
+    // (section critique sur les droits)
344
+    if (isset($c['id_parent']) && $c['id_parent']) {
345
+        if (is_array($c['restreintes'])) {
346
+            $c['restreintes'][] = $c['id_parent'];
347
+        } else {
348
+            $c['restreintes'] = [$c['id_parent']];
349
+        }
350
+    }
351
+
352
+    if (
353
+        isset($c['webmestre'])
354
+        && ($force_webmestre || autoriser('modifier', 'auteur', $id_auteur, null, ['webmestre' => '?']))
355
+    ) {
356
+        $champs['webmestre'] = $c['webmestre'] == 'oui' ? 'oui' : 'non';
357
+    }
358
+
359
+    // si statut change et n'est pas 0minirezo, on force webmestre a non
360
+    if (isset($c['statut']) && $c['statut'] !== '0minirezo') {
361
+        $champs['webmestre'] = $c['webmestre'] = 'non';
362
+    }
363
+
364
+    // Envoyer aux plugins
365
+    $champs = pipeline(
366
+        'pre_edition',
367
+        [
368
+            'args' => [
369
+                'table' => 'spip_auteurs',
370
+                'table_objet' => 'auteurs',
371
+                'spip_table_objet' => 'spip_auteurs',
372
+                'objet' => 'auteur',
373
+                'id_objet' => $id_auteur,
374
+                'action' => 'instituer',
375
+                'statut_ancien' => $statut_ancien,
376
+            ],
377
+            'data' => $champs
378
+        ]
379
+    );
380
+
381
+    if (
382
+        isset($c['restreintes']) && is_array($c['restreintes'])
383
+        && autoriser('modifier', 'auteur', $id_auteur, null, ['restreint' => $c['restreintes']])
384
+    ) {
385
+        $rubriques = array_map('intval', $c['restreintes']);
386
+        $rubriques = array_unique($rubriques);
387
+        $rubriques = array_diff($rubriques, [0]);
388
+        auteur_dissocier($id_auteur, ['rubrique' => '*']);
389
+        auteur_associer($id_auteur, ['rubrique' => $rubriques]);
390
+    }
391
+
392
+    $flag_ecrire_acces = false;
393
+    // commencer par traiter les cas particuliers des logins et pass
394
+    // avant les autres ecritures en base
395
+    if (isset($champs['login']) || isset($champs['pass'])) {
396
+        $auth_methode = sql_getfetsel('source', 'spip_auteurs', 'id_auteur=' . (int) $id_auteur);
397
+        include_spip('inc/auth');
398
+        if (
399
+            isset($champs['login'])
400
+            && strlen((string) $champs['login'])
401
+            && !auth_modifier_login($auth_methode, $champs['login'], $id_auteur)
402
+        ) {
403
+            $erreurs[] = 'ecrire:impossible_modifier_login_auteur';
404
+        }
405
+        if (isset($champs['pass']) && strlen((string) $champs['pass'])) {
406
+            $champs['login'] = sql_getfetsel('login', 'spip_auteurs', 'id_auteur=' . (int) $id_auteur);
407
+            if (!auth_modifier_pass($auth_methode, $champs['login'], $champs['pass'], $id_auteur)) {
408
+                $erreurs[] = 'ecrire:impossible_modifier_pass_auteur';
409
+            }
410
+        }
411
+        unset($champs['login']);
412
+        unset($champs['pass']);
413
+        $flag_ecrire_acces = true;
414
+    }
415
+
416
+    if (!(is_countable($champs) ? count($champs) : 0)) {
417
+        return implode(' ', array_map('_T', $erreurs));
418
+    }
419
+    sql_updateq('spip_auteurs', $champs, 'id_auteur=' . $id_auteur);
420
+
421
+    // .. mettre a jour les fichiers .htpasswd et .htpasswd-admin
422
+    if ($flag_ecrire_acces || isset($champs['statut'])) {
423
+        include_spip('inc/acces');
424
+        ecrire_acces();
425
+    }
426
+
427
+    // Invalider les caches
428
+    include_spip('inc/invalideur');
429
+    suivre_invalideur("id='auteur/$id_auteur'");
430
+
431
+    // Pipeline
432
+    pipeline(
433
+        'post_edition',
434
+        [
435
+            'args' => [
436
+                'table' => 'spip_auteurs',
437
+                'table_objet' => 'auteurs',
438
+                'spip_table_objet' => 'spip_auteurs',
439
+                'objet' => 'auteur',
440
+                'id_objet' => $id_auteur,
441
+                'action' => 'instituer',
442
+                'statut_ancien' => $statut_ancien,
443
+            ],
444
+            'data' => $champs
445
+        ]
446
+    );
447
+
448
+    // Notifications
449
+    if ($notifications = charger_fonction('notifications', 'inc')) {
450
+        $notifications(
451
+            'auteur_instituer',
452
+            $id_auteur,
453
+            [
454
+                'statut' => $statut,
455
+                'statut_ancien' => $statut_ancien,
456
+                'champs' => $champs,
457
+            ]
458
+        );
459
+        $notifications(
460
+            'objet_instituer',
461
+            $id_auteur,
462
+            [
463
+                'objet' => 'auteur',
464
+                'id_objet' => $id_auteur,
465
+                'statut' => $statut,
466
+                'statut_ancien' => $statut_ancien,
467
+                'champs' => $champs,
468
+            ]
469
+        );
470
+
471
+        // Rétro-compat
472
+        $notifications(
473
+            'instituerauteur',
474
+            $id_auteur,
475
+            ['statut' => $statut, 'statut_ancien' => $statut_ancien]
476
+        );
477
+    }
478
+
479
+    return implode(' ', array_map('_T', $erreurs));
480 480
 }
Please login to merge, or discard this patch.
ecrire/action/ajouter_lien.php 1 patch
Indentation   +9 added lines, -9 removed lines patch added patch discarded remove patch
@@ -16,7 +16,7 @@  discard block
 block discarded – undo
16 16
  **/
17 17
 
18 18
 if (!defined('_ECRIRE_INC_VERSION')) {
19
-	return;
19
+    return;
20 20
 }
21 21
 
22 22
 /**
@@ -33,14 +33,14 @@  discard block
 block discarded – undo
33 33
  * @return void
34 34
  */
35 35
 function action_ajouter_lien_dist($arg = null) {
36
-	if (is_null($arg)) {
37
-		$securiser_action = charger_fonction('securiser_action', 'inc');
38
-		$arg = $securiser_action();
39
-	}
36
+    if (is_null($arg)) {
37
+        $securiser_action = charger_fonction('securiser_action', 'inc');
38
+        $arg = $securiser_action();
39
+    }
40 40
 
41
-	$arg = explode('-', (string) $arg);
42
-	[$objet_source, $ids, $objet_lie, $idl] = $arg;
41
+    $arg = explode('-', (string) $arg);
42
+    [$objet_source, $ids, $objet_lie, $idl] = $arg;
43 43
 
44
-	include_spip('action/editer_liens');
45
-	objet_associer([$objet_source => $ids], [$objet_lie => $idl]);
44
+    include_spip('action/editer_liens');
45
+    objet_associer([$objet_source => $ids], [$objet_lie => $idl]);
46 46
 }
Please login to merge, or discard this patch.