Completed
Push — master ( 1771c0...6d9132 )
by cam
01:00
created
ecrire/public/balises.php 1 patch
Indentation   +941 added lines, -941 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
 /**
@@ -50,16 +50,16 @@  discard block
 block discarded – undo
50 50
  *     Code PHP si cet argument est présent, sinon null
51 51
  **/
52 52
 function interprete_argument_balise(int $n, Champ $p): ?string {
53
-	if (($p->param) && (!$p->param[0][0]) && ((is_countable($p->param[0]) ? count($p->param[0]) : 0) > $n)) {
54
-		return calculer_liste(
55
-			$p->param[0][$n],
56
-			$p->descr,
57
-			$p->boucles,
58
-			$p->id_boucle
59
-		);
60
-	} else {
61
-		return null;
62
-	}
53
+    if (($p->param) && (!$p->param[0][0]) && ((is_countable($p->param[0]) ? count($p->param[0]) : 0) > $n)) {
54
+        return calculer_liste(
55
+            $p->param[0][$n],
56
+            $p->descr,
57
+            $p->boucles,
58
+            $p->id_boucle
59
+        );
60
+    } else {
61
+        return null;
62
+    }
63 63
 }
64 64
 
65 65
 
@@ -79,10 +79,10 @@  discard block
 block discarded – undo
79 79
  *     Pile complétée par le code à générer
80 80
  **/
81 81
 function balise_NOM_SITE_SPIP_dist($p) {
82
-	$p->code = "\$GLOBALS['meta']['nom_site']";
82
+    $p->code = "\$GLOBALS['meta']['nom_site']";
83 83
 
84
-	#$p->interdire_scripts = true;
85
-	return $p;
84
+    #$p->interdire_scripts = true;
85
+    return $p;
86 86
 }
87 87
 
88 88
 /**
@@ -98,10 +98,10 @@  discard block
 block discarded – undo
98 98
  *     Pile complétée par le code à générer
99 99
  **/
100 100
 function balise_EMAIL_WEBMASTER_dist($p) {
101
-	$p->code = "\$GLOBALS['meta']['email_webmaster']";
101
+    $p->code = "\$GLOBALS['meta']['email_webmaster']";
102 102
 
103
-	#$p->interdire_scripts = true;
104
-	return $p;
103
+    #$p->interdire_scripts = true;
104
+    return $p;
105 105
 }
106 106
 
107 107
 /**
@@ -117,10 +117,10 @@  discard block
 block discarded – undo
117 117
  *     Pile complétée par le code à générer
118 118
  **/
119 119
 function balise_DESCRIPTIF_SITE_SPIP_dist($p) {
120
-	$p->code = "\$GLOBALS['meta']['descriptif_site']";
120
+    $p->code = "\$GLOBALS['meta']['descriptif_site']";
121 121
 
122
-	#$p->interdire_scripts = true;
123
-	return $p;
122
+    #$p->interdire_scripts = true;
123
+    return $p;
124 124
 }
125 125
 
126 126
 
@@ -141,10 +141,10 @@  discard block
 block discarded – undo
141 141
  *     Pile complétée par le code à générer
142 142
  **/
143 143
 function balise_CHARSET_dist($p) {
144
-	$p->code = "\$GLOBALS['meta']['charset']";
144
+    $p->code = "\$GLOBALS['meta']['charset']";
145 145
 
146
-	#$p->interdire_scripts = true;
147
-	return $p;
146
+    #$p->interdire_scripts = true;
147
+    return $p;
148 148
 }
149 149
 
150 150
 /**
@@ -169,11 +169,11 @@  discard block
 block discarded – undo
169 169
  *     Pile complétée par le code à générer
170 170
  **/
171 171
 function balise_LANG_LEFT_dist($p) {
172
-	$_lang = champ_sql('lang', $p);
173
-	$p->code = "lang_dir($_lang, 'left','right')";
174
-	$p->interdire_scripts = false;
172
+    $_lang = champ_sql('lang', $p);
173
+    $p->code = "lang_dir($_lang, 'left','right')";
174
+    $p->interdire_scripts = false;
175 175
 
176
-	return $p;
176
+    return $p;
177 177
 }
178 178
 
179 179
 /**
@@ -193,11 +193,11 @@  discard block
 block discarded – undo
193 193
  *     Pile complétée par le code à générer
194 194
  **/
195 195
 function balise_LANG_RIGHT_dist($p) {
196
-	$_lang = champ_sql('lang', $p);
197
-	$p->code = "lang_dir($_lang, 'right','left')";
198
-	$p->interdire_scripts = false;
196
+    $_lang = champ_sql('lang', $p);
197
+    $p->code = "lang_dir($_lang, 'right','left')";
198
+    $p->interdire_scripts = false;
199 199
 
200
-	return $p;
200
+    return $p;
201 201
 }
202 202
 
203 203
 /**
@@ -222,11 +222,11 @@  discard block
 block discarded – undo
222 222
  *     Pile complétée par le code à générer
223 223
  **/
224 224
 function balise_LANG_DIR_dist($p) {
225
-	$_lang = champ_sql('lang', $p);
226
-	$p->code = "lang_dir($_lang, 'ltr','rtl')";
227
-	$p->interdire_scripts = false;
225
+    $_lang = champ_sql('lang', $p);
226
+    $p->code = "lang_dir($_lang, 'ltr','rtl')";
227
+    $p->interdire_scripts = false;
228 228
 
229
-	return $p;
229
+    return $p;
230 230
 }
231 231
 
232 232
 
@@ -243,10 +243,10 @@  discard block
 block discarded – undo
243 243
  *     Pile complétée par le code à générer
244 244
  **/
245 245
 function balise_PUCE_dist($p) {
246
-	$p->code = 'definir_puce()';
247
-	$p->interdire_scripts = false;
246
+    $p->code = 'definir_puce()';
247
+    $p->interdire_scripts = false;
248 248
 
249
-	return $p;
249
+    return $p;
250 250
 }
251 251
 
252 252
 
@@ -270,9 +270,9 @@  discard block
 block discarded – undo
270 270
  *     Pile completée du code PHP d'exécution de la balise
271 271
  */
272 272
 function balise_DATE_dist($p) {
273
-	$p->code = champ_sql('date', $p);
273
+    $p->code = champ_sql('date', $p);
274 274
 
275
-	return $p;
275
+    return $p;
276 276
 }
277 277
 
278 278
 
@@ -292,10 +292,10 @@  discard block
 block discarded – undo
292 292
  *     Pile completée du code PHP d'exécution de la balise
293 293
  */
294 294
 function balise_DATE_REDAC_dist($p) {
295
-	$p->code = champ_sql('date_redac', $p);
296
-	$p->interdire_scripts = false;
295
+    $p->code = champ_sql('date_redac', $p);
296
+    $p->interdire_scripts = false;
297 297
 
298
-	return $p;
298
+    return $p;
299 299
 }
300 300
 
301 301
 /**
@@ -314,10 +314,10 @@  discard block
 block discarded – undo
314 314
  *     Pile completée du code PHP d'exécution de la balise
315 315
  */
316 316
 function balise_DATE_MODIF_dist($p) {
317
-	$p->code = champ_sql('date_modif', $p);
318
-	$p->interdire_scripts = false;
317
+    $p->code = champ_sql('date_modif', $p);
318
+    $p->interdire_scripts = false;
319 319
 
320
-	return $p;
320
+    return $p;
321 321
 }
322 322
 
323 323
 /**
@@ -335,13 +335,13 @@  discard block
 block discarded – undo
335 335
  *     Pile completée du code PHP d'exécution de la balise
336 336
  */
337 337
 function balise_DATE_NOUVEAUTES_dist($p) {
338
-	$p->code = "((\$GLOBALS['meta']['quoi_de_neuf'] == 'oui'
338
+    $p->code = "((\$GLOBALS['meta']['quoi_de_neuf'] == 'oui'
339 339
 	AND isset(\$GLOBALS['meta']['dernier_envoi_neuf'])) ?
340 340
 	\$GLOBALS['meta']['dernier_envoi_neuf'] :
341 341
 	\"'0000-00-00'\")";
342
-	$p->interdire_scripts = false;
342
+    $p->interdire_scripts = false;
343 343
 
344
-	return $p;
344
+    return $p;
345 345
 }
346 346
 
347 347
 
@@ -359,11 +359,11 @@  discard block
 block discarded – undo
359 359
  *     Pile completée du code PHP d'exécution de la balise
360 360
  */
361 361
 function balise_DOSSIER_SQUELETTE_dist($p) {
362
-	$code = substr(addslashes(dirname($p->descr['sourcefile'])), strlen(_DIR_RACINE));
363
-	$p->code = "_DIR_RACINE . '$code'" .
364
-		$p->interdire_scripts = false;
362
+    $code = substr(addslashes(dirname($p->descr['sourcefile'])), strlen(_DIR_RACINE));
363
+    $p->code = "_DIR_RACINE . '$code'" .
364
+        $p->interdire_scripts = false;
365 365
 
366
-	return $p;
366
+    return $p;
367 367
 }
368 368
 
369 369
 /**
@@ -378,11 +378,11 @@  discard block
 block discarded – undo
378 378
  *     Pile completée du code PHP d'exécution de la balise
379 379
  */
380 380
 function balise_SQUELETTE_dist($p) {
381
-	$code = addslashes($p->descr['sourcefile']);
382
-	$p->code = "'$code'" .
383
-		$p->interdire_scripts = false;
381
+    $code = addslashes($p->descr['sourcefile']);
382
+    $p->code = "'$code'" .
383
+        $p->interdire_scripts = false;
384 384
 
385
-	return $p;
385
+    return $p;
386 386
 }
387 387
 
388 388
 /**
@@ -401,10 +401,10 @@  discard block
 block discarded – undo
401 401
  *     Pile completée du code PHP d'exécution de la balise
402 402
  */
403 403
 function balise_SPIP_VERSION_dist($p) {
404
-	$p->code = 'spip_version()';
405
-	$p->interdire_scripts = false;
404
+    $p->code = 'spip_version()';
405
+    $p->interdire_scripts = false;
406 406
 
407
-	return $p;
407
+    return $p;
408 408
 }
409 409
 
410 410
 
@@ -430,18 +430,18 @@  discard block
 block discarded – undo
430 430
  *     Pile complétée par le code à générer
431 431
  **/
432 432
 function balise_NOM_SITE_dist($p) {
433
-	if (!$p->etoile) {
434
-		$p->code = 'supprimer_numero(calculer_url(' .
435
-			champ_sql('url_site', $p) . ',' .
436
-			champ_sql('nom_site', $p) .
437
-			", 'titre', \$connect, false))";
438
-	} else {
439
-		$p->code = champ_sql('nom_site', $p);
440
-	}
433
+    if (!$p->etoile) {
434
+        $p->code = 'supprimer_numero(calculer_url(' .
435
+            champ_sql('url_site', $p) . ',' .
436
+            champ_sql('nom_site', $p) .
437
+            ", 'titre', \$connect, false))";
438
+    } else {
439
+        $p->code = champ_sql('nom_site', $p);
440
+    }
441 441
 
442
-	$p->interdire_scripts = true;
442
+    $p->interdire_scripts = true;
443 443
 
444
-	return $p;
444
+    return $p;
445 445
 }
446 446
 
447 447
 
@@ -458,11 +458,11 @@  discard block
 block discarded – undo
458 458
  *     Pile complétée par le code à générer
459 459
  **/
460 460
 function balise_NOTES_dist($p) {
461
-	// Recuperer les notes
462
-	$p->code = 'calculer_notes()';
461
+    // Recuperer les notes
462
+    $p->code = 'calculer_notes()';
463 463
 
464
-	#$p->interdire_scripts = true;
465
-	return $p;
464
+    #$p->interdire_scripts = true;
465
+    return $p;
466 466
 }
467 467
 
468 468
 
@@ -484,10 +484,10 @@  discard block
 block discarded – undo
484 484
  *     Pile complétée par le code à générer
485 485
  **/
486 486
 function balise_RECHERCHE_dist($p) {
487
-	$p->code = 'entites_html(_request("recherche"))';
488
-	$p->interdire_scripts = false;
487
+    $p->code = 'entites_html(_request("recherche"))';
488
+    $p->interdire_scripts = false;
489 489
 
490
-	return $p;
490
+    return $p;
491 491
 }
492 492
 
493 493
 
@@ -505,17 +505,17 @@  discard block
 block discarded – undo
505 505
  *     Pile complétée par le code à générer
506 506
  **/
507 507
 function balise_COMPTEUR_BOUCLE_dist($p) {
508
-	$b = index_boucle_mere($p);
509
-	if ($b === '') {
510
-		$msg = ['zbug_champ_hors_boucle', ['champ' => zbug_presenter_champ($p)]];
511
-		erreur_squelette($msg, $p);
512
-	} else {
513
-		$p->code = "(\$Numrows['$b']['compteur_boucle'] ?? 0)";
514
-		$p->boucles[$b]->cptrows = true;
515
-		$p->interdire_scripts = false;
508
+    $b = index_boucle_mere($p);
509
+    if ($b === '') {
510
+        $msg = ['zbug_champ_hors_boucle', ['champ' => zbug_presenter_champ($p)]];
511
+        erreur_squelette($msg, $p);
512
+    } else {
513
+        $p->code = "(\$Numrows['$b']['compteur_boucle'] ?? 0)";
514
+        $p->boucles[$b]->cptrows = true;
515
+        $p->interdire_scripts = false;
516 516
 
517
-		return $p;
518
-	}
517
+        return $p;
518
+    }
519 519
 }
520 520
 
521 521
 /**
@@ -533,17 +533,17 @@  discard block
 block discarded – undo
533 533
  *     Pile complétée par le code à générer
534 534
  **/
535 535
 function balise_TOTAL_BOUCLE_dist($p) {
536
-	$b = index_boucle_mere($p);
537
-	if ($b === '') {
538
-		$msg = ['zbug_champ_hors_boucle', ['champ' => zbug_presenter_champ($p)]];
539
-		erreur_squelette($msg, $p);
540
-	} else {
541
-		$p->code = "(\$Numrows['$b']['total'] ?? 0)";
542
-		$p->boucles[$b]->numrows = true;
543
-		$p->interdire_scripts = false;
544
-	}
536
+    $b = index_boucle_mere($p);
537
+    if ($b === '') {
538
+        $msg = ['zbug_champ_hors_boucle', ['champ' => zbug_presenter_champ($p)]];
539
+        erreur_squelette($msg, $p);
540
+    } else {
541
+        $p->code = "(\$Numrows['$b']['total'] ?? 0)";
542
+        $p->boucles[$b]->numrows = true;
543
+        $p->interdire_scripts = false;
544
+    }
545 545
 
546
-	return $p;
546
+    return $p;
547 547
 }
548 548
 
549 549
 
@@ -563,7 +563,7 @@  discard block
 block discarded – undo
563 563
  *     Pile complétée par le code à générer
564 564
  **/
565 565
 function balise_POINTS_dist($p) {
566
-	return rindex_pile($p, 'points', 'recherche');
566
+    return rindex_pile($p, 'points', 'recherche');
567 567
 }
568 568
 
569 569
 
@@ -584,12 +584,12 @@  discard block
 block discarded – undo
584 584
  *     Pile complétée par le code à générer
585 585
  **/
586 586
 function balise_POPULARITE_ABSOLUE_dist($p) {
587
-	$p->code = 'ceil(' .
588
-		champ_sql('popularite', $p) .
589
-		')';
590
-	$p->interdire_scripts = false;
587
+    $p->code = 'ceil(' .
588
+        champ_sql('popularite', $p) .
589
+        ')';
590
+    $p->interdire_scripts = false;
591 591
 
592
-	return $p;
592
+    return $p;
593 593
 }
594 594
 
595 595
 /**
@@ -609,10 +609,10 @@  discard block
 block discarded – undo
609 609
  *     Pile complétée par le code à générer
610 610
  **/
611 611
 function balise_POPULARITE_SITE_dist($p) {
612
-	$p->code = 'ceil($GLOBALS["meta"][\'popularite_total\'])';
613
-	$p->interdire_scripts = false;
612
+    $p->code = 'ceil($GLOBALS["meta"][\'popularite_total\'])';
613
+    $p->interdire_scripts = false;
614 614
 
615
-	return $p;
615
+    return $p;
616 616
 }
617 617
 
618 618
 /**
@@ -633,10 +633,10 @@  discard block
 block discarded – undo
633 633
  *     Pile complétée par le code à générer
634 634
  **/
635 635
 function balise_POPULARITE_MAX_dist($p) {
636
-	$p->code = 'ceil($GLOBALS["meta"][\'popularite_max\'])';
637
-	$p->interdire_scripts = false;
636
+    $p->code = 'ceil($GLOBALS["meta"][\'popularite_max\'])';
637
+    $p->interdire_scripts = false;
638 638
 
639
-	return $p;
639
+    return $p;
640 640
 }
641 641
 
642 642
 
@@ -662,15 +662,15 @@  discard block
 block discarded – undo
662 662
  *     Pile complétée par le code à générer
663 663
  **/
664 664
 function balise_VALEUR_dist($p) {
665
-	$b = $p->nom_boucle ?: $p->id_boucle;
666
-	$p->code = index_pile($p->id_boucle, 'valeur', $p->boucles, $b);
665
+    $b = $p->nom_boucle ?: $p->id_boucle;
666
+    $p->code = index_pile($p->id_boucle, 'valeur', $p->boucles, $b);
667 667
 ;
668
-	if (($v = interprete_argument_balise(1, $p)) !== null) {
669
-		$p->code = 'table_valeur(' . $p->code . ', ' . $v . ')';
670
-	}
671
-	$p->interdire_scripts = true;
668
+    if (($v = interprete_argument_balise(1, $p)) !== null) {
669
+        $p->code = 'table_valeur(' . $p->code . ', ' . $v . ')';
670
+    }
671
+    $p->interdire_scripts = true;
672 672
 
673
-	return $p;
673
+    return $p;
674 674
 }
675 675
 
676 676
 /**
@@ -699,16 +699,16 @@  discard block
 block discarded – undo
699 699
  *     Pile complétée par le code à générer
700 700
  **/
701 701
 function balise_EXPOSE_dist($p) {
702
-	$on = "'on'";
703
-	$off = "''";
704
-	if (($v = interprete_argument_balise(1, $p)) !== null) {
705
-		$on = $v;
706
-		if (($v = interprete_argument_balise(2, $p)) !== null) {
707
-			$off = $v;
708
-		}
709
-	}
702
+    $on = "'on'";
703
+    $off = "''";
704
+    if (($v = interprete_argument_balise(1, $p)) !== null) {
705
+        $on = $v;
706
+        if (($v = interprete_argument_balise(2, $p)) !== null) {
707
+            $off = $v;
708
+        }
709
+    }
710 710
 
711
-	return calculer_balise_expose($p, $on, $off);
711
+    return calculer_balise_expose($p, $on, $off);
712 712
 }
713 713
 
714 714
 /**
@@ -726,35 +726,35 @@  discard block
 block discarded – undo
726 726
  *     Pile complétée par le code à générer
727 727
  **/
728 728
 function calculer_balise_expose($p, $on, $off) {
729
-	$b = index_boucle($p);
730
-	if (empty($p->boucles[$b]->primary)) {
731
-		$msg = ['zbug_champ_hors_boucle', ['champ' => zbug_presenter_champ($p)]];
732
-		erreur_squelette($msg, $p);
733
-	} else {
734
-		$key = $p->boucles[$b]->primary;
735
-		$type = $p->boucles[$p->id_boucle]->primary;
736
-		$desc = $p->boucles[$b]->show;
737
-		$connect = sql_quote($p->boucles[$b]->sql_serveur);
729
+    $b = index_boucle($p);
730
+    if (empty($p->boucles[$b]->primary)) {
731
+        $msg = ['zbug_champ_hors_boucle', ['champ' => zbug_presenter_champ($p)]];
732
+        erreur_squelette($msg, $p);
733
+    } else {
734
+        $key = $p->boucles[$b]->primary;
735
+        $type = $p->boucles[$p->id_boucle]->primary;
736
+        $desc = $p->boucles[$b]->show;
737
+        $connect = sql_quote($p->boucles[$b]->sql_serveur);
738 738
 
739
-		// Ne pas utiliser champ_sql, on jongle avec le nom boucle explicite
740
-		$c = index_pile($p->id_boucle, $type, $p->boucles);
739
+        // Ne pas utiliser champ_sql, on jongle avec le nom boucle explicite
740
+        $c = index_pile($p->id_boucle, $type, $p->boucles);
741 741
 
742
-		if (isset($desc['field']['id_parent'])) {
743
-			$parent = 0; // pour if (!$parent) dans calculer_expose
744
-		} elseif (isset($desc['field']['id_rubrique'])) {
745
-			$parent = index_pile($p->id_boucle, 'id_rubrique', $p->boucles, $b);
746
-		} elseif (isset($desc['field']['id_groupe'])) {
747
-			$parent = index_pile($p->id_boucle, 'id_groupe', $p->boucles, $b);
748
-		} else {
749
-			$parent = "''";
750
-		}
742
+        if (isset($desc['field']['id_parent'])) {
743
+            $parent = 0; // pour if (!$parent) dans calculer_expose
744
+        } elseif (isset($desc['field']['id_rubrique'])) {
745
+            $parent = index_pile($p->id_boucle, 'id_rubrique', $p->boucles, $b);
746
+        } elseif (isset($desc['field']['id_groupe'])) {
747
+            $parent = index_pile($p->id_boucle, 'id_groupe', $p->boucles, $b);
748
+        } else {
749
+            $parent = "''";
750
+        }
751 751
 
752
-		$p->code = "(calcul_exposer($c, '$type', \$Pile[0], $parent, '$key', $connect) ? $on : $off)";
753
-	}
752
+        $p->code = "(calcul_exposer($c, '$type', \$Pile[0], $parent, '$key', $connect) ? $on : $off)";
753
+    }
754 754
 
755
-	$p->interdire_scripts = false;
755
+    $p->interdire_scripts = false;
756 756
 
757
-	return $p;
757
+    return $p;
758 758
 }
759 759
 
760 760
 
@@ -795,46 +795,46 @@  discard block
 block discarded – undo
795 795
  **/
796 796
 function balise_INTRODUCTION_dist($p) {
797 797
 
798
-	$type_objet = $p->type_requete;
799
-	$cle_objet = id_table_objet($type_objet);
800
-	$_id_objet = champ_sql($cle_objet, $p);
801
-
802
-	// Récupérer les valeurs sql nécessaires : descriptif, texte et chapo
803
-	// ainsi que le longueur d'introduction donnée dans la description de l'objet.
804
-	$_introduction_longueur = 'null';
805
-	$_ligne = 'array(';
806
-	$trouver_table = charger_fonction('trouver_table', 'base');
807
-	if ($desc = $trouver_table(table_objet_sql($type_objet))) {
808
-		if (isset($desc['field']['descriptif'])) {
809
-			$_ligne .= "'descriptif' => " . champ_sql('descriptif', $p) . ',';
810
-		}
811
-		if (isset($desc['field']['texte'])) {
812
-			$_ligne .= "'texte' => " . champ_sql('texte', $p) . ',';
813
-		}
814
-		if (isset($desc['field']['chapo'])) {
815
-			$_ligne .= "'chapo' => " . champ_sql('chapo', $p) . ',';
816
-		}
817
-		if (isset($desc['introduction_longueur'])) {
818
-			$_introduction_longueur = "'" . $desc['introduction_longueur'] . "'";
819
-		}
820
-	}
821
-	$_ligne .= ')';
822
-
823
-	// Récupérer la longueur et la suite passés en paramètres
824
-	$_longueur_ou_suite = 'null';
825
-	if (($v1 = interprete_argument_balise(1, $p)) !== null) {
826
-		$_longueur_ou_suite = $v1;
827
-	}
828
-	$_suite = 'null';
829
-	if (($v2 = interprete_argument_balise(2, $p)) !== null) {
830
-		$_suite = $v2;
831
-	}
832
-
833
-	$p->code = "generer_objet_introduction($_id_objet, '$type_objet', $_ligne, $_introduction_longueur, $_longueur_ou_suite, $_suite, \$connect)";
834
-
835
-	#$p->interdire_scripts = true;
836
-	$p->etoile = '*'; // propre est deja fait dans le calcul de l'intro
837
-	return $p;
798
+    $type_objet = $p->type_requete;
799
+    $cle_objet = id_table_objet($type_objet);
800
+    $_id_objet = champ_sql($cle_objet, $p);
801
+
802
+    // Récupérer les valeurs sql nécessaires : descriptif, texte et chapo
803
+    // ainsi que le longueur d'introduction donnée dans la description de l'objet.
804
+    $_introduction_longueur = 'null';
805
+    $_ligne = 'array(';
806
+    $trouver_table = charger_fonction('trouver_table', 'base');
807
+    if ($desc = $trouver_table(table_objet_sql($type_objet))) {
808
+        if (isset($desc['field']['descriptif'])) {
809
+            $_ligne .= "'descriptif' => " . champ_sql('descriptif', $p) . ',';
810
+        }
811
+        if (isset($desc['field']['texte'])) {
812
+            $_ligne .= "'texte' => " . champ_sql('texte', $p) . ',';
813
+        }
814
+        if (isset($desc['field']['chapo'])) {
815
+            $_ligne .= "'chapo' => " . champ_sql('chapo', $p) . ',';
816
+        }
817
+        if (isset($desc['introduction_longueur'])) {
818
+            $_introduction_longueur = "'" . $desc['introduction_longueur'] . "'";
819
+        }
820
+    }
821
+    $_ligne .= ')';
822
+
823
+    // Récupérer la longueur et la suite passés en paramètres
824
+    $_longueur_ou_suite = 'null';
825
+    if (($v1 = interprete_argument_balise(1, $p)) !== null) {
826
+        $_longueur_ou_suite = $v1;
827
+    }
828
+    $_suite = 'null';
829
+    if (($v2 = interprete_argument_balise(2, $p)) !== null) {
830
+        $_suite = $v2;
831
+    }
832
+
833
+    $p->code = "generer_objet_introduction($_id_objet, '$type_objet', $_ligne, $_introduction_longueur, $_longueur_ou_suite, $_suite, \$connect)";
834
+
835
+    #$p->interdire_scripts = true;
836
+    $p->etoile = '*'; // propre est deja fait dans le calcul de l'intro
837
+    return $p;
838 838
 }
839 839
 
840 840
 
@@ -854,15 +854,15 @@  discard block
 block discarded – undo
854 854
  *     Pile complétée par le code à générer
855 855
  **/
856 856
 function balise_LANG_dist($p) {
857
-	$_lang = champ_sql('lang', $p);
858
-	if (!$p->etoile) {
859
-		$p->code = "spip_htmlentities($_lang ? $_lang : \$GLOBALS['spip_lang'])";
860
-	} else {
861
-		$p->code = "spip_htmlentities($_lang)";
862
-	}
863
-	$p->interdire_scripts = false;
857
+    $_lang = champ_sql('lang', $p);
858
+    if (!$p->etoile) {
859
+        $p->code = "spip_htmlentities($_lang ? $_lang : \$GLOBALS['spip_lang'])";
860
+    } else {
861
+        $p->code = "spip_htmlentities($_lang)";
862
+    }
863
+    $p->interdire_scripts = false;
864 864
 
865
-	return $p;
865
+    return $p;
866 866
 }
867 867
 
868 868
 /**
@@ -884,45 +884,45 @@  discard block
 block discarded – undo
884 884
  *     Pile complétée par le code à générer
885 885
  */
886 886
 function balise_LESAUTEURS_dist($p) {
887
-	// Cherche le champ 'lesauteurs' dans la pile
888
-	$_lesauteurs = champ_sql('lesauteurs', $p, '');
889
-
890
-	// Si le champ n'existe pas (cas de spip_articles), on applique
891
-	// le modele lesauteurs.html en passant id_article dans le contexte;
892
-	// dans le cas contraire on prend le champ 'lesauteurs'
893
-	// (cf extension sites/)
894
-	if ($_lesauteurs) {
895
-		$p->code = "safehtml($_lesauteurs)";
896
-		// $p->interdire_scripts = true;
897
-	} else {
898
-		if (!$p->id_boucle) {
899
-			$connect = '';
900
-			$objet = 'article';
901
-			$id_table_objet = 'id_article';
902
-		} else {
903
-			$b = $p->nom_boucle ?: $p->id_boucle;
904
-			$connect = $p->boucles[$b]->sql_serveur;
905
-			$type_boucle = $p->boucles[$b]->type_requete;
906
-			$objet = objet_type($type_boucle);
907
-			$id_table_objet = id_table_objet($type_boucle);
908
-		}
909
-		$c = memoriser_contexte_compil($p);
910
-
911
-		$p->code = sprintf(
912
-			CODE_RECUPERER_FOND,
913
-			"'modeles/lesauteurs'",
914
-			"array('objet'=>'" . $objet .
915
-			"','id_objet' => " . champ_sql($id_table_objet, $p) .
916
-			",'$id_table_objet' => " . champ_sql($id_table_objet, $p) .
917
-			($objet == 'article' ? '' : ",'id_article' => " . champ_sql('id_article', $p)) .
918
-			')',
919
-			"'trim'=>true, 'compil'=>array($c)",
920
-			_q($connect)
921
-		);
922
-		$p->interdire_scripts = false; // securite apposee par recuperer_fond()
923
-	}
924
-
925
-	return $p;
887
+    // Cherche le champ 'lesauteurs' dans la pile
888
+    $_lesauteurs = champ_sql('lesauteurs', $p, '');
889
+
890
+    // Si le champ n'existe pas (cas de spip_articles), on applique
891
+    // le modele lesauteurs.html en passant id_article dans le contexte;
892
+    // dans le cas contraire on prend le champ 'lesauteurs'
893
+    // (cf extension sites/)
894
+    if ($_lesauteurs) {
895
+        $p->code = "safehtml($_lesauteurs)";
896
+        // $p->interdire_scripts = true;
897
+    } else {
898
+        if (!$p->id_boucle) {
899
+            $connect = '';
900
+            $objet = 'article';
901
+            $id_table_objet = 'id_article';
902
+        } else {
903
+            $b = $p->nom_boucle ?: $p->id_boucle;
904
+            $connect = $p->boucles[$b]->sql_serveur;
905
+            $type_boucle = $p->boucles[$b]->type_requete;
906
+            $objet = objet_type($type_boucle);
907
+            $id_table_objet = id_table_objet($type_boucle);
908
+        }
909
+        $c = memoriser_contexte_compil($p);
910
+
911
+        $p->code = sprintf(
912
+            CODE_RECUPERER_FOND,
913
+            "'modeles/lesauteurs'",
914
+            "array('objet'=>'" . $objet .
915
+            "','id_objet' => " . champ_sql($id_table_objet, $p) .
916
+            ",'$id_table_objet' => " . champ_sql($id_table_objet, $p) .
917
+            ($objet == 'article' ? '' : ",'id_article' => " . champ_sql('id_article', $p)) .
918
+            ')',
919
+            "'trim'=>true, 'compil'=>array($c)",
920
+            _q($connect)
921
+        );
922
+        $p->interdire_scripts = false; // securite apposee par recuperer_fond()
923
+    }
924
+
925
+    return $p;
926 926
 }
927 927
 
928 928
 
@@ -949,76 +949,76 @@  discard block
 block discarded – undo
949 949
  *     Pile complétée par le code à générer
950 950
  */
951 951
 function balise_RANG_dist($p) {
952
-	$b = index_boucle($p);
953
-	if ($b === '') {
954
-		$msg = [
955
-			'zbug_champ_hors_boucle',
956
-			['champ' => '#RANG']
957
-		];
958
-		erreur_squelette($msg, $p);
959
-	} else {
960
-		// chercher d'abord un champ sql rang (mais pas dans le env : defaut '' si on trouve pas de champ sql)
961
-		// dans la boucle immediatement englobante uniquement
962
-		// sinon on compose le champ calcule
963
-		$_rang = champ_sql('rang', $p, '', false);
964
-
965
-		// si pas trouve de champ sql rang :
966
-		if (!$_rang or $_rang == "''") {
967
-			$boucle = &$p->boucles[$b];
968
-
969
-			// on gere le cas ou #RANG est une extraction du numero dans le titre
970
-			$trouver_table = charger_fonction('trouver_table', 'base');
971
-			$desc = $trouver_table($boucle->id_table);
972
-			$_titre = ''; # où extraire le numero ?
973
-
974
-			if (isset($desc['titre'])) {
975
-				$t = $desc['titre'];
976
-				if (
977
-					// Soit on trouve avec la déclaration de la lang AVANT
978
-					preg_match(';(?:lang\s*,)\s*(.*?titre)\s*(,|$);', $t, $m)
979
-					// Soit on prend depuis le début
980
-					or preg_match(';^(.*?titre)\s*(,|$);', $t, $m)
981
-				) {
982
-					$m = preg_replace(',as\s+titre$,i', '', $m[1]);
983
-					$m = trim($m);
984
-					if ($m != "''") {
985
-						if (!preg_match(',\W,', $m)) {
986
-							$m = $boucle->id_table . ".$m";
987
-						}
988
-
989
-						$m .= ' AS titre_rang';
990
-
991
-						$boucle->select[] = $m;
992
-						$_titre = '$Pile[$SP][\'titre_rang\']';
993
-					}
994
-				}
995
-			}
996
-
997
-			// si on n'a rien trouvé, on utilise le champ titre classique
998
-			if (!$_titre) {
999
-				$_titre = champ_sql('titre', $p);
1000
-			}
1001
-
1002
-			// et on recupere aussi les infos de liaison si on est en train d'editer les liens justement
1003
-			// cas des formulaires xxx_lies utilises par #FORMULAIRE_EDITER_LIENS
1004
-			$type_boucle = $boucle->type_requete;
1005
-			$objet = objet_type($type_boucle);
1006
-			$id_table_objet = id_table_objet($type_boucle);
1007
-			$_primary = champ_sql($id_table_objet, $p, '', false);
1008
-			$_env = '$Pile[0]';
1009
-
1010
-			if (!$_titre) {$_titre = "''";
1011
-			}
1012
-			if (!$_primary) {$_primary = "''";
1013
-			}
1014
-			$_rang = "calculer_rang_smart($_titre, '$objet', $_primary, $_env)";
1015
-		}
1016
-
1017
-		$p->code = $_rang;
1018
-		$p->interdire_scripts = false;
1019
-	}
1020
-
1021
-	return $p;
952
+    $b = index_boucle($p);
953
+    if ($b === '') {
954
+        $msg = [
955
+            'zbug_champ_hors_boucle',
956
+            ['champ' => '#RANG']
957
+        ];
958
+        erreur_squelette($msg, $p);
959
+    } else {
960
+        // chercher d'abord un champ sql rang (mais pas dans le env : defaut '' si on trouve pas de champ sql)
961
+        // dans la boucle immediatement englobante uniquement
962
+        // sinon on compose le champ calcule
963
+        $_rang = champ_sql('rang', $p, '', false);
964
+
965
+        // si pas trouve de champ sql rang :
966
+        if (!$_rang or $_rang == "''") {
967
+            $boucle = &$p->boucles[$b];
968
+
969
+            // on gere le cas ou #RANG est une extraction du numero dans le titre
970
+            $trouver_table = charger_fonction('trouver_table', 'base');
971
+            $desc = $trouver_table($boucle->id_table);
972
+            $_titre = ''; # où extraire le numero ?
973
+
974
+            if (isset($desc['titre'])) {
975
+                $t = $desc['titre'];
976
+                if (
977
+                    // Soit on trouve avec la déclaration de la lang AVANT
978
+                    preg_match(';(?:lang\s*,)\s*(.*?titre)\s*(,|$);', $t, $m)
979
+                    // Soit on prend depuis le début
980
+                    or preg_match(';^(.*?titre)\s*(,|$);', $t, $m)
981
+                ) {
982
+                    $m = preg_replace(',as\s+titre$,i', '', $m[1]);
983
+                    $m = trim($m);
984
+                    if ($m != "''") {
985
+                        if (!preg_match(',\W,', $m)) {
986
+                            $m = $boucle->id_table . ".$m";
987
+                        }
988
+
989
+                        $m .= ' AS titre_rang';
990
+
991
+                        $boucle->select[] = $m;
992
+                        $_titre = '$Pile[$SP][\'titre_rang\']';
993
+                    }
994
+                }
995
+            }
996
+
997
+            // si on n'a rien trouvé, on utilise le champ titre classique
998
+            if (!$_titre) {
999
+                $_titre = champ_sql('titre', $p);
1000
+            }
1001
+
1002
+            // et on recupere aussi les infos de liaison si on est en train d'editer les liens justement
1003
+            // cas des formulaires xxx_lies utilises par #FORMULAIRE_EDITER_LIENS
1004
+            $type_boucle = $boucle->type_requete;
1005
+            $objet = objet_type($type_boucle);
1006
+            $id_table_objet = id_table_objet($type_boucle);
1007
+            $_primary = champ_sql($id_table_objet, $p, '', false);
1008
+            $_env = '$Pile[0]';
1009
+
1010
+            if (!$_titre) {$_titre = "''";
1011
+            }
1012
+            if (!$_primary) {$_primary = "''";
1013
+            }
1014
+            $_rang = "calculer_rang_smart($_titre, '$objet', $_primary, $_env)";
1015
+        }
1016
+
1017
+        $p->code = $_rang;
1018
+        $p->interdire_scripts = false;
1019
+    }
1020
+
1021
+    return $p;
1022 1022
 }
1023 1023
 
1024 1024
 
@@ -1040,12 +1040,12 @@  discard block
 block discarded – undo
1040 1040
  *     Pile complétée par le code à générer
1041 1041
  **/
1042 1042
 function balise_POPULARITE_dist($p) {
1043
-	$_popularite = champ_sql('popularite', $p);
1044
-	$p->code = "(ceil(min(100, 100 * $_popularite
1043
+    $_popularite = champ_sql('popularite', $p);
1044
+    $p->code = "(ceil(min(100, 100 * $_popularite
1045 1045
 	/ max(1 , 0 + \$GLOBALS['meta']['popularite_max']))))";
1046
-	$p->interdire_scripts = false;
1046
+    $p->interdire_scripts = false;
1047 1047
 
1048
-	return $p;
1048
+    return $p;
1049 1049
 }
1050 1050
 
1051 1051
 /**
@@ -1056,8 +1056,8 @@  discard block
 block discarded – undo
1056 1056
  * l'absence peut-être due à une faute de frappe dans le contexte inclus.
1057 1057
  */
1058 1058
 define(
1059
-	'CODE_PAGINATION',
1060
-	'%s($Numrows["%s"]["grand_total"],
1059
+    'CODE_PAGINATION',
1060
+    '%s($Numrows["%s"]["grand_total"],
1061 1061
  		%s,
1062 1062
 		isset($Pile[0][%4$s])?$Pile[0][%4$s]:intval(_request(%4$s)),
1063 1063
 		%5$s, %6$s, %7$s, %8$s, array(%9$s))'
@@ -1094,75 +1094,75 @@  discard block
 block discarded – undo
1094 1094
  *     Pile complétée par le code à générer
1095 1095
  */
1096 1096
 function balise_PAGINATION_dist($p, $liste = 'true') {
1097
-	$b = index_boucle_mere($p);
1098
-
1099
-	// s'il n'y a pas de nom de boucle, on ne peut pas paginer
1100
-	if ($b === '') {
1101
-		$msg = [
1102
-			'zbug_champ_hors_boucle',
1103
-			['champ' => $liste ? 'PAGINATION' : 'ANCRE_PAGINATION']
1104
-		];
1105
-		erreur_squelette($msg, $p);
1106
-
1107
-		return $p;
1108
-	}
1109
-
1110
-	// s'il n'y a pas de mode_partie, c'est qu'on se trouve
1111
-	// dans un boucle recursive ou qu'on a oublie le critere {pagination}
1112
-	if (!$p->boucles[$b]->mode_partie) {
1113
-		if (!$p->boucles[$b]->table_optionnelle) {
1114
-			$msg = [
1115
-				'zbug_pagination_sans_critere',
1116
-				['champ' => '#PAGINATION']
1117
-			];
1118
-			erreur_squelette($msg, $p);
1119
-		}
1120
-
1121
-		return $p;
1122
-	}
1123
-
1124
-	// a priori true
1125
-	// si false, le compilo va bloquer sur des syntaxes avec un filtre sans argument qui suit la balise
1126
-	// si true, les arguments simples (sans truc=chose) vont degager
1127
-	$_contexte = argumenter_inclure($p->param, true, $p, $p->boucles, $p->id_boucle, false, false);
1128
-	if (is_countable($_contexte) ? count($_contexte) : 0) {
1129
-		$key = key($_contexte);
1130
-		if (is_numeric($key)) {
1131
-			array_shift($_contexte);
1132
-			$__modele = interprete_argument_balise(1, $p);
1133
-		}
1134
-	}
1135
-
1136
-	if (is_countable($_contexte) ? count($_contexte) : 0) {
1137
-		$code_contexte = implode(',', $_contexte);
1138
-	} else {
1139
-		$code_contexte = '';
1140
-	}
1141
-
1142
-	$connect = $p->boucles[$b]->sql_serveur;
1143
-	$pas = $p->boucles[$b]->total_parties;
1144
-	$f_pagination = chercher_filtre('pagination');
1145
-	$type = $p->boucles[$b]->modificateur['debut_nom'];
1146
-	$modif = ($type[0] !== "'") ? "'debut'.$type"
1147
-		: ("'debut" . substr($type, 1));
1148
-
1149
-	$p->code = sprintf(
1150
-		CODE_PAGINATION,
1151
-		$f_pagination,
1152
-		$b,
1153
-		$type,
1154
-		$modif,
1155
-		$pas,
1156
-		$liste,
1157
-		((isset($__modele) and $__modele) ? $__modele : "''"),
1158
-		_q($connect),
1159
-		$code_contexte
1160
-	);
1161
-
1162
-	$p->boucles[$b]->numrows = true;
1163
-	$p->interdire_scripts = false;
1164
-
1165
-	return $p;
1097
+    $b = index_boucle_mere($p);
1098
+
1099
+    // s'il n'y a pas de nom de boucle, on ne peut pas paginer
1100
+    if ($b === '') {
1101
+        $msg = [
1102
+            'zbug_champ_hors_boucle',
1103
+            ['champ' => $liste ? 'PAGINATION' : 'ANCRE_PAGINATION']
1104
+        ];
1105
+        erreur_squelette($msg, $p);
1106
+
1107
+        return $p;
1108
+    }
1109
+
1110
+    // s'il n'y a pas de mode_partie, c'est qu'on se trouve
1111
+    // dans un boucle recursive ou qu'on a oublie le critere {pagination}
1112
+    if (!$p->boucles[$b]->mode_partie) {
1113
+        if (!$p->boucles[$b]->table_optionnelle) {
1114
+            $msg = [
1115
+                'zbug_pagination_sans_critere',
1116
+                ['champ' => '#PAGINATION']
1117
+            ];
1118
+            erreur_squelette($msg, $p);
1119
+        }
1120
+
1121
+        return $p;
1122
+    }
1123
+
1124
+    // a priori true
1125
+    // si false, le compilo va bloquer sur des syntaxes avec un filtre sans argument qui suit la balise
1126
+    // si true, les arguments simples (sans truc=chose) vont degager
1127
+    $_contexte = argumenter_inclure($p->param, true, $p, $p->boucles, $p->id_boucle, false, false);
1128
+    if (is_countable($_contexte) ? count($_contexte) : 0) {
1129
+        $key = key($_contexte);
1130
+        if (is_numeric($key)) {
1131
+            array_shift($_contexte);
1132
+            $__modele = interprete_argument_balise(1, $p);
1133
+        }
1134
+    }
1135
+
1136
+    if (is_countable($_contexte) ? count($_contexte) : 0) {
1137
+        $code_contexte = implode(',', $_contexte);
1138
+    } else {
1139
+        $code_contexte = '';
1140
+    }
1141
+
1142
+    $connect = $p->boucles[$b]->sql_serveur;
1143
+    $pas = $p->boucles[$b]->total_parties;
1144
+    $f_pagination = chercher_filtre('pagination');
1145
+    $type = $p->boucles[$b]->modificateur['debut_nom'];
1146
+    $modif = ($type[0] !== "'") ? "'debut'.$type"
1147
+        : ("'debut" . substr($type, 1));
1148
+
1149
+    $p->code = sprintf(
1150
+        CODE_PAGINATION,
1151
+        $f_pagination,
1152
+        $b,
1153
+        $type,
1154
+        $modif,
1155
+        $pas,
1156
+        $liste,
1157
+        ((isset($__modele) and $__modele) ? $__modele : "''"),
1158
+        _q($connect),
1159
+        $code_contexte
1160
+    );
1161
+
1162
+    $p->boucles[$b]->numrows = true;
1163
+    $p->interdire_scripts = false;
1164
+
1165
+    return $p;
1166 1166
 }
1167 1167
 
1168 1168
 
@@ -1189,11 +1189,11 @@  discard block
 block discarded – undo
1189 1189
  *     Pile complétée par le code à générer
1190 1190
  **/
1191 1191
 function balise_ANCRE_PAGINATION_dist($p) {
1192
-	if ($f = charger_fonction('PAGINATION', 'balise', true)) {
1193
-		return $f($p, $liste = 'false');
1194
-	} else {
1195
-		return null;
1196
-	} // ou une erreur ?
1192
+    if ($f = charger_fonction('PAGINATION', 'balise', true)) {
1193
+        return $f($p, $liste = 'false');
1194
+    } else {
1195
+        return null;
1196
+    } // ou une erreur ?
1197 1197
 }
1198 1198
 
1199 1199
 
@@ -1214,17 +1214,17 @@  discard block
 block discarded – undo
1214 1214
  *     Pile complétée par le code à générer
1215 1215
  **/
1216 1216
 function balise_GRAND_TOTAL_dist($p) {
1217
-	$b = index_boucle_mere($p);
1218
-	if ($b === '') {
1219
-		$msg = ['zbug_champ_hors_boucle', ['champ' => zbug_presenter_champ($p)]];
1220
-		erreur_squelette($msg, $p);
1221
-	} else {
1222
-		$p->code = "(\$Numrows['$b']['grand_total'] ?? \$Numrows['$b']['total'] ?? 0)";
1223
-		$p->boucles[$b]->numrows = true;
1224
-		$p->interdire_scripts = false;
1225
-	}
1217
+    $b = index_boucle_mere($p);
1218
+    if ($b === '') {
1219
+        $msg = ['zbug_champ_hors_boucle', ['champ' => zbug_presenter_champ($p)]];
1220
+        erreur_squelette($msg, $p);
1221
+    } else {
1222
+        $p->code = "(\$Numrows['$b']['grand_total'] ?? \$Numrows['$b']['total'] ?? 0)";
1223
+        $p->boucles[$b]->numrows = true;
1224
+        $p->interdire_scripts = false;
1225
+    }
1226 1226
 
1227
-	return $p;
1227
+    return $p;
1228 1228
 }
1229 1229
 
1230 1230
 
@@ -1252,10 +1252,10 @@  discard block
 block discarded – undo
1252 1252
  *     Pile complétée par le code à générer
1253 1253
  **/
1254 1254
 function balise_SELF_dist($p) {
1255
-	$p->code = 'self()';
1256
-	$p->interdire_scripts = false;
1255
+    $p->code = 'self()';
1256
+    $p->interdire_scripts = false;
1257 1257
 
1258
-	return $p;
1258
+    return $p;
1259 1259
 }
1260 1260
 
1261 1261
 
@@ -1282,17 +1282,17 @@  discard block
 block discarded – undo
1282 1282
  *     Pile complétée par le code à générer
1283 1283
  **/
1284 1284
 function balise_CHEMIN_dist($p) {
1285
-	$arg = interprete_argument_balise(1, $p);
1286
-	if (!$arg) {
1287
-		$msg = ['zbug_balise_sans_argument', ['balise' => ' CHEMIN']];
1288
-		erreur_squelette($msg, $p);
1289
-	} else {
1290
-		$p->code = 'find_in_path((string)' . $arg . ')';
1291
-	}
1285
+    $arg = interprete_argument_balise(1, $p);
1286
+    if (!$arg) {
1287
+        $msg = ['zbug_balise_sans_argument', ['balise' => ' CHEMIN']];
1288
+        erreur_squelette($msg, $p);
1289
+    } else {
1290
+        $p->code = 'find_in_path((string)' . $arg . ')';
1291
+    }
1292 1292
 
1293
-	$p->interdire_scripts = false;
1293
+    $p->interdire_scripts = false;
1294 1294
 
1295
-	return $p;
1295
+    return $p;
1296 1296
 }
1297 1297
 
1298 1298
 /**
@@ -1317,16 +1317,16 @@  discard block
 block discarded – undo
1317 1317
  *     Pile complétée par le code à générer
1318 1318
  **/
1319 1319
 function balise_CHEMIN_IMAGE_dist($p) {
1320
-	$arg = interprete_argument_balise(1, $p);
1321
-	if (!$arg) {
1322
-		$msg = ['zbug_balise_sans_argument', ['balise' => ' CHEMIN_IMAGE']];
1323
-		erreur_squelette($msg, $p);
1324
-	} else {
1325
-		$p->code = 'chemin_image((string)' . $arg . ')';
1326
-	}
1320
+    $arg = interprete_argument_balise(1, $p);
1321
+    if (!$arg) {
1322
+        $msg = ['zbug_balise_sans_argument', ['balise' => ' CHEMIN_IMAGE']];
1323
+        erreur_squelette($msg, $p);
1324
+    } else {
1325
+        $p->code = 'chemin_image((string)' . $arg . ')';
1326
+    }
1327 1327
 
1328
-	$p->interdire_scripts = false;
1329
-	return $p;
1328
+    $p->interdire_scripts = false;
1329
+    return $p;
1330 1330
 }
1331 1331
 
1332 1332
 
@@ -1364,36 +1364,36 @@  discard block
 block discarded – undo
1364 1364
  **/
1365 1365
 function balise_ENV_dist($p, $src = null) {
1366 1366
 
1367
-	// cle du tableau desiree
1368
-	$_nom = interprete_argument_balise(1, $p);
1369
-	// valeur par defaut
1370
-	$_sinon = interprete_argument_balise(2, $p);
1367
+    // cle du tableau desiree
1368
+    $_nom = interprete_argument_balise(1, $p);
1369
+    // valeur par defaut
1370
+    $_sinon = interprete_argument_balise(2, $p);
1371 1371
 
1372
-	// $src est un tableau de donnees sources eventuellement transmis
1373
-	// en absence, on utilise l'environnement du squelette $Pile[0]
1372
+    // $src est un tableau de donnees sources eventuellement transmis
1373
+    // en absence, on utilise l'environnement du squelette $Pile[0]
1374 1374
 
1375
-	if (!$_nom) {
1376
-		// cas de #ENV sans argument : on retourne le serialize() du tableau
1377
-		// une belle fonction [(#ENV|affiche_env)] serait pratique
1378
-		if ($src) {
1379
-			$p->code = '(is_array($a = (' . $src . ')) ? serialize($a) : "")';
1380
-		} else {
1381
-			$p->code = 'serialize($Pile[0]??[])';
1382
-		}
1383
-	} else {
1384
-		if (!$src) {
1385
-			$src = '$Pile[0]??[]';
1386
-		}
1387
-		if ($_sinon) {
1388
-			$p->code = "sinon(table_valeur($src, (string)$_nom, null), $_sinon)";
1389
-		} else {
1390
-			$p->code = "table_valeur($src, (string)$_nom, null)";
1391
-		}
1392
-	}
1375
+    if (!$_nom) {
1376
+        // cas de #ENV sans argument : on retourne le serialize() du tableau
1377
+        // une belle fonction [(#ENV|affiche_env)] serait pratique
1378
+        if ($src) {
1379
+            $p->code = '(is_array($a = (' . $src . ')) ? serialize($a) : "")';
1380
+        } else {
1381
+            $p->code = 'serialize($Pile[0]??[])';
1382
+        }
1383
+    } else {
1384
+        if (!$src) {
1385
+            $src = '$Pile[0]??[]';
1386
+        }
1387
+        if ($_sinon) {
1388
+            $p->code = "sinon(table_valeur($src, (string)$_nom, null), $_sinon)";
1389
+        } else {
1390
+            $p->code = "table_valeur($src, (string)$_nom, null)";
1391
+        }
1392
+    }
1393 1393
 
1394
-	#$p->interdire_scripts = true;
1394
+    #$p->interdire_scripts = true;
1395 1395
 
1396
-	return $p;
1396
+    return $p;
1397 1397
 }
1398 1398
 
1399 1399
 /**
@@ -1423,16 +1423,16 @@  discard block
 block discarded – undo
1423 1423
  *     Pile completée du code PHP d'exécution de la balise
1424 1424
  */
1425 1425
 function balise_CONFIG_dist($p) {
1426
-	if (!$arg = interprete_argument_balise(1, $p)) {
1427
-		$arg = "''";
1428
-	}
1429
-	$_sinon = interprete_argument_balise(2, $p);
1430
-	$_unserialize = sinon(interprete_argument_balise(3, $p), 'false');
1426
+    if (!$arg = interprete_argument_balise(1, $p)) {
1427
+        $arg = "''";
1428
+    }
1429
+    $_sinon = interprete_argument_balise(2, $p);
1430
+    $_unserialize = sinon(interprete_argument_balise(3, $p), 'false');
1431 1431
 
1432
-	$p->code = '(include_spip(\'inc/config\')?lire_config(' . $arg . ',' .
1433
-		($_sinon && $_sinon != "''" ? $_sinon : 'null') . ',' . $_unserialize . "):'')";
1432
+    $p->code = '(include_spip(\'inc/config\')?lire_config(' . $arg . ',' .
1433
+        ($_sinon && $_sinon != "''" ? $_sinon : 'null') . ',' . $_unserialize . "):'')";
1434 1434
 
1435
-	return $p;
1435
+    return $p;
1436 1436
 }
1437 1437
 
1438 1438
 
@@ -1455,10 +1455,10 @@  discard block
 block discarded – undo
1455 1455
  *     Pile completée du code PHP d'exécution de la balise
1456 1456
  */
1457 1457
 function balise_CONNECT_dist($p) {
1458
-	$p->code = '($connect ? $connect : NULL)';
1459
-	$p->interdire_scripts = false;
1458
+    $p->code = '($connect ? $connect : NULL)';
1459
+    $p->interdire_scripts = false;
1460 1460
 
1461
-	return $p;
1461
+    return $p;
1462 1462
 }
1463 1463
 
1464 1464
 
@@ -1486,15 +1486,15 @@  discard block
 block discarded – undo
1486 1486
  *     Pile completée du code PHP d'exécution de la balise
1487 1487
  **/
1488 1488
 function balise_SESSION_dist($p) {
1489
-	$p->descr['session'] = true;
1489
+    $p->descr['session'] = true;
1490 1490
 
1491
-	$f = function_exists('balise_ENV')
1492
-		? 'balise_ENV'
1493
-		: 'balise_ENV_dist';
1491
+    $f = function_exists('balise_ENV')
1492
+        ? 'balise_ENV'
1493
+        : 'balise_ENV_dist';
1494 1494
 
1495
-	$p = $f($p, '$GLOBALS["visiteur_session"]??[]');
1495
+    $p = $f($p, '$GLOBALS["visiteur_session"]??[]');
1496 1496
 
1497
-	return $p;
1497
+    return $p;
1498 1498
 }
1499 1499
 
1500 1500
 
@@ -1517,18 +1517,18 @@  discard block
 block discarded – undo
1517 1517
  *     Pile completée du code PHP d'exécution de la balise
1518 1518
  **/
1519 1519
 function balise_SESSION_SET_dist($p) {
1520
-	$_nom = interprete_argument_balise(1, $p);
1521
-	$_val = interprete_argument_balise(2, $p);
1522
-	if (!$_nom or !$_val) {
1523
-		$err_b_s_a = ['zbug_balise_sans_argument', ['balise' => 'SESSION_SET']];
1524
-		erreur_squelette($err_b_s_a, $p);
1525
-	} else {
1526
-		$p->code = '(include_spip("inc/session") AND session_set(' . $_nom . ',' . $_val . '))';
1527
-	}
1520
+    $_nom = interprete_argument_balise(1, $p);
1521
+    $_val = interprete_argument_balise(2, $p);
1522
+    if (!$_nom or !$_val) {
1523
+        $err_b_s_a = ['zbug_balise_sans_argument', ['balise' => 'SESSION_SET']];
1524
+        erreur_squelette($err_b_s_a, $p);
1525
+    } else {
1526
+        $p->code = '(include_spip("inc/session") AND session_set(' . $_nom . ',' . $_val . '))';
1527
+    }
1528 1528
 
1529
-	$p->interdire_scripts = false;
1529
+    $p->interdire_scripts = false;
1530 1530
 
1531
-	return $p;
1531
+    return $p;
1532 1532
 }
1533 1533
 
1534 1534
 
@@ -1559,30 +1559,30 @@  discard block
 block discarded – undo
1559 1559
  *     Pile completée du code PHP d'exécution de la balise
1560 1560
  **/
1561 1561
 function balise_EVAL_dist($p) {
1562
-	$php = interprete_argument_balise(1, $p);
1563
-	if ($php) {
1564
-		# optimisation sur les #EVAL{une expression sans #BALISE}
1565
-		# attention au commentaire "// x signes" qui precede
1566
-		if (
1567
-			preg_match(
1568
-				",^([[:space:]]*//[^\n]*\n)'([^']+)'$,ms",
1569
-				$php,
1570
-				$r
1571
-			)
1572
-		) {
1573
-			$p->code = /* $r[1]. */
1574
-				'(' . $r[2] . ')';
1575
-		} else {
1576
-			$p->code = "eval('return '.$php.';')";
1577
-		}
1578
-	} else {
1579
-		$msg = ['zbug_balise_sans_argument', ['balise' => ' EVAL']];
1580
-		erreur_squelette($msg, $p);
1581
-	}
1582
-
1583
-	#$p->interdire_scripts = true;
1584
-
1585
-	return $p;
1562
+    $php = interprete_argument_balise(1, $p);
1563
+    if ($php) {
1564
+        # optimisation sur les #EVAL{une expression sans #BALISE}
1565
+        # attention au commentaire "// x signes" qui precede
1566
+        if (
1567
+            preg_match(
1568
+                ",^([[:space:]]*//[^\n]*\n)'([^']+)'$,ms",
1569
+                $php,
1570
+                $r
1571
+            )
1572
+        ) {
1573
+            $p->code = /* $r[1]. */
1574
+                '(' . $r[2] . ')';
1575
+        } else {
1576
+            $p->code = "eval('return '.$php.';')";
1577
+        }
1578
+    } else {
1579
+        $msg = ['zbug_balise_sans_argument', ['balise' => ' EVAL']];
1580
+        erreur_squelette($msg, $p);
1581
+    }
1582
+
1583
+    #$p->interdire_scripts = true;
1584
+
1585
+    return $p;
1586 1586
 }
1587 1587
 
1588 1588
 
@@ -1612,19 +1612,19 @@  discard block
 block discarded – undo
1612 1612
  **/
1613 1613
 function balise_CHAMP_SQL_dist($p) {
1614 1614
 
1615
-	if (
1616
-		$p->param
1617
-		and isset($p->param[0][1][0])
1618
-		and $champ = ($p->param[0][1][0]->texte)
1619
-	) {
1620
-		$p->code = champ_sql($champ, $p);
1621
-	} else {
1622
-		$err_b_s_a = ['zbug_balise_sans_argument', ['balise' => ' CHAMP_SQL']];
1623
-		erreur_squelette($err_b_s_a, $p);
1624
-	}
1615
+    if (
1616
+        $p->param
1617
+        and isset($p->param[0][1][0])
1618
+        and $champ = ($p->param[0][1][0]->texte)
1619
+    ) {
1620
+        $p->code = champ_sql($champ, $p);
1621
+    } else {
1622
+        $err_b_s_a = ['zbug_balise_sans_argument', ['balise' => ' CHAMP_SQL']];
1623
+        erreur_squelette($err_b_s_a, $p);
1624
+    }
1625 1625
 
1626
-	#$p->interdire_scripts = true;
1627
-	return $p;
1626
+    #$p->interdire_scripts = true;
1627
+    return $p;
1628 1628
 }
1629 1629
 
1630 1630
 /**
@@ -1650,13 +1650,13 @@  discard block
 block discarded – undo
1650 1650
  *     Pile complétée par le code à générer
1651 1651
  **/
1652 1652
 function balise_VAL_dist($p) {
1653
-	$p->code = interprete_argument_balise(1, $p) ?? '';
1654
-	if (!strlen($p->code)) {
1655
-		$p->code = "''";
1656
-	}
1657
-	$p->interdire_scripts = false;
1653
+    $p->code = interprete_argument_balise(1, $p) ?? '';
1654
+    if (!strlen($p->code)) {
1655
+        $p->code = "''";
1656
+    }
1657
+    $p->interdire_scripts = false;
1658 1658
 
1659
-	return $p;
1659
+    return $p;
1660 1660
 }
1661 1661
 
1662 1662
 /**
@@ -1685,10 +1685,10 @@  discard block
 block discarded – undo
1685 1685
  *     Pile complétée par le code à générer
1686 1686
  **/
1687 1687
 function balise_REM_dist($p) {
1688
-	$p->code = "''";
1689
-	$p->interdire_scripts = false;
1688
+    $p->code = "''";
1689
+    $p->interdire_scripts = false;
1690 1690
 
1691
-	return $p;
1691
+    return $p;
1692 1692
 }
1693 1693
 
1694 1694
 /**
@@ -1698,10 +1698,10 @@  discard block
 block discarded – undo
1698 1698
  * @return mixed
1699 1699
  */
1700 1700
 function balise_NULL_dist($p) {
1701
-	$p->code = 'null';
1702
-	$p->interdire_scripts = false;
1701
+    $p->code = 'null';
1702
+    $p->interdire_scripts = false;
1703 1703
 
1704
-	return $p;
1704
+    return $p;
1705 1705
 }
1706 1706
 
1707 1707
 
@@ -1725,18 +1725,18 @@  discard block
 block discarded – undo
1725 1725
  **/
1726 1726
 function balise_HTTP_HEADER_dist($p) {
1727 1727
 
1728
-	$header = interprete_argument_balise(1, $p);
1729
-	if (!$header) {
1730
-		$err_b_s_a = ['zbug_balise_sans_argument', ['balise' => 'HTTP_HEADER']];
1731
-		erreur_squelette($err_b_s_a, $p);
1732
-	} else {
1733
-		$p->code = "'<'.'?php header(' . _q("
1734
-			. $header
1735
-			. ") . '); ?'.'>'";
1736
-	}
1737
-	$p->interdire_scripts = false;
1728
+    $header = interprete_argument_balise(1, $p);
1729
+    if (!$header) {
1730
+        $err_b_s_a = ['zbug_balise_sans_argument', ['balise' => 'HTTP_HEADER']];
1731
+        erreur_squelette($err_b_s_a, $p);
1732
+    } else {
1733
+        $p->code = "'<'.'?php header(' . _q("
1734
+            . $header
1735
+            . ") . '); ?'.'>'";
1736
+    }
1737
+    $p->interdire_scripts = false;
1738 1738
 
1739
-	return $p;
1739
+    return $p;
1740 1740
 }
1741 1741
 
1742 1742
 
@@ -1761,20 +1761,20 @@  discard block
 block discarded – undo
1761 1761
  *     Pile complétée par le code à générer
1762 1762
  **/
1763 1763
 function balise_FILTRE_dist($p) {
1764
-	if ($p->param) {
1765
-		$args = [];
1766
-		foreach ($p->param as $i => $ignore) {
1767
-			$args[] = interprete_argument_balise($i + 1, $p);
1768
-		}
1769
-		$p->code = "'<' . '"
1770
-			. '?php header("X-Spip-Filtre: \'.'
1771
-			. join('.\'|\'.', $args)
1772
-			. " . '\"); ?'.'>'";
1764
+    if ($p->param) {
1765
+        $args = [];
1766
+        foreach ($p->param as $i => $ignore) {
1767
+            $args[] = interprete_argument_balise($i + 1, $p);
1768
+        }
1769
+        $p->code = "'<' . '"
1770
+            . '?php header("X-Spip-Filtre: \'.'
1771
+            . join('.\'|\'.', $args)
1772
+            . " . '\"); ?'.'>'";
1773 1773
 
1774
-		$p->interdire_scripts = false;
1774
+        $p->interdire_scripts = false;
1775 1775
 
1776
-		return $p;
1777
-	}
1776
+        return $p;
1777
+    }
1778 1778
 }
1779 1779
 
1780 1780
 
@@ -1810,55 +1810,55 @@  discard block
 block discarded – undo
1810 1810
  **/
1811 1811
 function balise_CACHE_dist($p) {
1812 1812
 
1813
-	if ($p->param) {
1814
-		$duree = valeur_numerique($p->param[0][1][0]->texte);
1815
-
1816
-		// noter la duree du cache dans un entete proprietaire
1817
-
1818
-		$code = "'<'.'" . '?php header("X-Spip-Cache: '
1819
-			. $duree
1820
-			. '"); ?' . "'.'>'";
1821
-
1822
-		// Remplir le header Cache-Control
1823
-		// cas #CACHE{0}
1824
-		if ($duree == 0) {
1825
-			$code .= ".'<'.'"
1826
-				. '?php header("Cache-Control: no-cache, must-revalidate"); ?'
1827
-				. "'.'><'.'"
1828
-				. '?php header("Pragma: no-cache"); ?'
1829
-				. "'.'>'";
1830
-		}
1831
-
1832
-		// recuperer les parametres suivants
1833
-		$i = 1;
1834
-		while (isset($p->param[0][++$i])) {
1835
-			$pa = ($p->param[0][$i][0]->texte);
1836
-
1837
-			if (
1838
-				$pa == 'cache-client'
1839
-				and $duree > 0
1840
-			) {
1841
-				$code .= ".'<'.'" . '?php header("Cache-Control: max-age='
1842
-					. $duree
1843
-					. '"); ?' . "'.'>'";
1844
-				// il semble logique, si on cache-client, de ne pas invalider
1845
-				$pa = 'statique';
1846
-			}
1847
-
1848
-			if (
1849
-				$pa == 'statique'
1850
-				and $duree > 0
1851
-			) {
1852
-				$code .= ".'<'.'" . '?php header("X-Spip-Statique: oui"); ?' . "'.'>'";
1853
-			}
1854
-		}
1855
-	} else {
1856
-		$code = "''";
1857
-	}
1858
-	$p->code = $code;
1859
-	$p->interdire_scripts = false;
1860
-
1861
-	return $p;
1813
+    if ($p->param) {
1814
+        $duree = valeur_numerique($p->param[0][1][0]->texte);
1815
+
1816
+        // noter la duree du cache dans un entete proprietaire
1817
+
1818
+        $code = "'<'.'" . '?php header("X-Spip-Cache: '
1819
+            . $duree
1820
+            . '"); ?' . "'.'>'";
1821
+
1822
+        // Remplir le header Cache-Control
1823
+        // cas #CACHE{0}
1824
+        if ($duree == 0) {
1825
+            $code .= ".'<'.'"
1826
+                . '?php header("Cache-Control: no-cache, must-revalidate"); ?'
1827
+                . "'.'><'.'"
1828
+                . '?php header("Pragma: no-cache"); ?'
1829
+                . "'.'>'";
1830
+        }
1831
+
1832
+        // recuperer les parametres suivants
1833
+        $i = 1;
1834
+        while (isset($p->param[0][++$i])) {
1835
+            $pa = ($p->param[0][$i][0]->texte);
1836
+
1837
+            if (
1838
+                $pa == 'cache-client'
1839
+                and $duree > 0
1840
+            ) {
1841
+                $code .= ".'<'.'" . '?php header("Cache-Control: max-age='
1842
+                    . $duree
1843
+                    . '"); ?' . "'.'>'";
1844
+                // il semble logique, si on cache-client, de ne pas invalider
1845
+                $pa = 'statique';
1846
+            }
1847
+
1848
+            if (
1849
+                $pa == 'statique'
1850
+                and $duree > 0
1851
+            ) {
1852
+                $code .= ".'<'.'" . '?php header("X-Spip-Statique: oui"); ?' . "'.'>'";
1853
+            }
1854
+        }
1855
+    } else {
1856
+        $code = "''";
1857
+    }
1858
+    $p->code = $code;
1859
+    $p->interdire_scripts = false;
1860
+
1861
+    return $p;
1862 1862
 }
1863 1863
 
1864 1864
 
@@ -1890,13 +1890,13 @@  discard block
 block discarded – undo
1890 1890
  *     Pile complétée par le code à générer
1891 1891
  */
1892 1892
 function balise_INSERT_HEAD_dist($p) {
1893
-	$p->code = "'<'.'"
1894
-		. '?php header("X-Spip-Filtre: insert_head_css_conditionnel"); ?'
1895
-		. "'.'>'";
1896
-	$p->code .= ". pipeline('insert_head','<!-- insert_head -->')";
1897
-	$p->interdire_scripts = false;
1893
+    $p->code = "'<'.'"
1894
+        . '?php header("X-Spip-Filtre: insert_head_css_conditionnel"); ?'
1895
+        . "'.'>'";
1896
+    $p->code .= ". pipeline('insert_head','<!-- insert_head -->')";
1897
+    $p->interdire_scripts = false;
1898 1898
 
1899
-	return $p;
1899
+    return $p;
1900 1900
 }
1901 1901
 
1902 1902
 /**
@@ -1914,10 +1914,10 @@  discard block
 block discarded – undo
1914 1914
  *     Pile complétée par le code à générer
1915 1915
  */
1916 1916
 function balise_INSERT_HEAD_CSS_dist($p) {
1917
-	$p->code = "pipeline('insert_head_css','<!-- insert_head_css -->')";
1918
-	$p->interdire_scripts = false;
1917
+    $p->code = "pipeline('insert_head_css','<!-- insert_head_css -->')";
1918
+    $p->interdire_scripts = false;
1919 1919
 
1920
-	return $p;
1920
+    return $p;
1921 1921
 }
1922 1922
 
1923 1923
 /**
@@ -1932,11 +1932,11 @@  discard block
 block discarded – undo
1932 1932
  *     Pile complétée par le code à générer
1933 1933
  **/
1934 1934
 function balise_INCLUDE_dist($p) {
1935
-	if (function_exists('balise_INCLURE')) {
1936
-		return balise_INCLURE($p);
1937
-	} else {
1938
-		return balise_INCLURE_dist($p);
1939
-	}
1935
+    if (function_exists('balise_INCLURE')) {
1936
+        return balise_INCLURE($p);
1937
+    } else {
1938
+        return balise_INCLURE_dist($p);
1939
+    }
1940 1940
 }
1941 1941
 
1942 1942
 /**
@@ -1970,66 +1970,66 @@  discard block
 block discarded – undo
1970 1970
  *     Pile complétée par le code à générer
1971 1971
  **/
1972 1972
 function balise_INCLURE_dist($p) {
1973
-	$id_boucle = $p->id_boucle;
1974
-	// la lang n'est pas passe de facon automatique par argumenter
1975
-	// mais le sera pas recuperer_fond, sauf si etoile=>true est passe
1976
-	// en option
1977
-
1978
-	$_contexte = argumenter_inclure($p->param, true, $p, $p->boucles, $id_boucle, false, false);
1979
-
1980
-	// erreur de syntaxe = fond absent
1981
-	// (2 messages d'erreur SPIP pour le prix d'un, mais pas d'erreur PHP
1982
-	if (!$_contexte) {
1983
-		$_contexte = [];
1984
-	}
1985
-
1986
-	if (isset($_contexte['fond'])) {
1987
-		$f = $_contexte['fond'];
1988
-		// toujours vrai :
1989
-		if (preg_match('/^.fond.\s*=>(.*)$/s', $f, $r)) {
1990
-			$f = $r[1];
1991
-			unset($_contexte['fond']);
1992
-		} else {
1993
-			spip_log('compilation de #INCLURE a revoir');
1994
-		}
1995
-
1996
-		// #INCLURE{doublons}
1997
-		if (isset($_contexte['doublons'])) {
1998
-			$_contexte['doublons'] = "'doublons' => \$doublons";
1999
-		}
2000
-
2001
-		// Critere d'inclusion {env} (et {self} pour compatibilite ascendante)
2002
-		$flag_env = false;
2003
-		if (isset($_contexte['env']) or isset($_contexte['self'])) {
2004
-			$flag_env = true;
2005
-			unset($_contexte['env']);
2006
-		}
2007
-
2008
-		$_options = [];
2009
-		if (isset($_contexte['ajax'])) {
2010
-			$_options[] = preg_replace(',=>(.*)$,ims', '=> ($v=(\\1))?$v:true', $_contexte['ajax']);
2011
-			unset($_contexte['ajax']);
2012
-		}
2013
-		if ($p->etoile) {
2014
-			$_options[] = "'etoile'=>true";
2015
-		}
2016
-		$_options[] = "'compil'=>array(" . memoriser_contexte_compil($p) . ')';
2017
-
2018
-		$_l = 'array(' . join(",\n\t", $_contexte) . ')';
2019
-		if ($flag_env) {
2020
-			$_l = "array_merge(\$Pile[0],$_l)";
2021
-		}
2022
-
2023
-		$p->code = sprintf(CODE_RECUPERER_FOND, $f, $_l, join(',', $_options), "_request('connect') ?? ''");
2024
-	} elseif (!isset($_contexte[1])) {
2025
-		$msg = ['zbug_balise_sans_argument', ['balise' => ' INCLURE']];
2026
-		erreur_squelette($msg, $p);
2027
-	} else {
2028
-		$p->code = 'charge_scripts(' . $_contexte[1] . ',false)';
2029
-	}
2030
-
2031
-	$p->interdire_scripts = false; // la securite est assuree par recuperer_fond
2032
-	return $p;
1973
+    $id_boucle = $p->id_boucle;
1974
+    // la lang n'est pas passe de facon automatique par argumenter
1975
+    // mais le sera pas recuperer_fond, sauf si etoile=>true est passe
1976
+    // en option
1977
+
1978
+    $_contexte = argumenter_inclure($p->param, true, $p, $p->boucles, $id_boucle, false, false);
1979
+
1980
+    // erreur de syntaxe = fond absent
1981
+    // (2 messages d'erreur SPIP pour le prix d'un, mais pas d'erreur PHP
1982
+    if (!$_contexte) {
1983
+        $_contexte = [];
1984
+    }
1985
+
1986
+    if (isset($_contexte['fond'])) {
1987
+        $f = $_contexte['fond'];
1988
+        // toujours vrai :
1989
+        if (preg_match('/^.fond.\s*=>(.*)$/s', $f, $r)) {
1990
+            $f = $r[1];
1991
+            unset($_contexte['fond']);
1992
+        } else {
1993
+            spip_log('compilation de #INCLURE a revoir');
1994
+        }
1995
+
1996
+        // #INCLURE{doublons}
1997
+        if (isset($_contexte['doublons'])) {
1998
+            $_contexte['doublons'] = "'doublons' => \$doublons";
1999
+        }
2000
+
2001
+        // Critere d'inclusion {env} (et {self} pour compatibilite ascendante)
2002
+        $flag_env = false;
2003
+        if (isset($_contexte['env']) or isset($_contexte['self'])) {
2004
+            $flag_env = true;
2005
+            unset($_contexte['env']);
2006
+        }
2007
+
2008
+        $_options = [];
2009
+        if (isset($_contexte['ajax'])) {
2010
+            $_options[] = preg_replace(',=>(.*)$,ims', '=> ($v=(\\1))?$v:true', $_contexte['ajax']);
2011
+            unset($_contexte['ajax']);
2012
+        }
2013
+        if ($p->etoile) {
2014
+            $_options[] = "'etoile'=>true";
2015
+        }
2016
+        $_options[] = "'compil'=>array(" . memoriser_contexte_compil($p) . ')';
2017
+
2018
+        $_l = 'array(' . join(",\n\t", $_contexte) . ')';
2019
+        if ($flag_env) {
2020
+            $_l = "array_merge(\$Pile[0],$_l)";
2021
+        }
2022
+
2023
+        $p->code = sprintf(CODE_RECUPERER_FOND, $f, $_l, join(',', $_options), "_request('connect') ?? ''");
2024
+    } elseif (!isset($_contexte[1])) {
2025
+        $msg = ['zbug_balise_sans_argument', ['balise' => ' INCLURE']];
2026
+        erreur_squelette($msg, $p);
2027
+    } else {
2028
+        $p->code = 'charge_scripts(' . $_contexte[1] . ',false)';
2029
+    }
2030
+
2031
+    $p->interdire_scripts = false; // la securite est assuree par recuperer_fond
2032
+    return $p;
2033 2033
 }
2034 2034
 
2035 2035
 
@@ -2057,69 +2057,69 @@  discard block
 block discarded – undo
2057 2057
  **/
2058 2058
 function balise_MODELE_dist($p) {
2059 2059
 
2060
-	$_contexte = argumenter_inclure($p->param, true, $p, $p->boucles, $p->id_boucle, false);
2061
-
2062
-	// erreur de syntaxe = fond absent
2063
-	// (2 messages d'erreur SPIP pour le prix d'un, mais pas d'erreur PHP
2064
-	if (!$_contexte) {
2065
-		$_contexte = [];
2066
-	}
2067
-
2068
-	if (!isset($_contexte[1])) {
2069
-		$msg = ['zbug_balise_sans_argument', ['balise' => ' MODELE']];
2070
-		erreur_squelette($msg, $p);
2071
-	} else {
2072
-		$nom = $_contexte[1];
2073
-		unset($_contexte[1]);
2074
-
2075
-		if (preg_match("/^\s*'[^']*'/s", $nom)) {
2076
-			$nom = "'modeles/" . substr($nom, 1);
2077
-		} else {
2078
-			$nom = "'modeles/' . $nom";
2079
-		}
2080
-
2081
-		$flag_env = false;
2082
-		if (isset($_contexte['env'])) {
2083
-			$flag_env = true;
2084
-			unset($_contexte['env']);
2085
-		}
2086
-
2087
-		// Incoherence dans la syntaxe du contexte. A revoir.
2088
-		// Reserver la cle primaire de la boucle courante si elle existe
2089
-		if (isset($p->boucles[$p->id_boucle]->primary)) {
2090
-			$primary = $p->boucles[$p->id_boucle]->primary;
2091
-			if (!strpos($primary, ',')) {
2092
-				$id = champ_sql($primary, $p);
2093
-				$_contexte[] = "'$primary'=>" . $id;
2094
-				$_contexte[] = "'id'=>" . $id;
2095
-			}
2096
-		}
2097
-		$_contexte[] = "'recurs'=>(++\$recurs)";
2098
-		$connect = '';
2099
-		if (isset($p->boucles[$p->id_boucle])) {
2100
-			$connect = $p->boucles[$p->id_boucle]->sql_serveur;
2101
-		}
2102
-
2103
-		$_options = memoriser_contexte_compil($p);
2104
-		$_options = "'compil'=>array($_options), 'trim'=>true";
2105
-		if (isset($_contexte['ajax'])) {
2106
-			$_options .= ', ' . preg_replace(',=>(.*)$,ims', '=> ($v=(\\1))?$v:true', $_contexte['ajax']);
2107
-			unset($_contexte['ajax']);
2108
-		}
2109
-
2110
-		$_l = 'array(' . join(",\n\t", $_contexte) . ')';
2111
-		if ($flag_env) {
2112
-			$_l = "array_merge(\$Pile[0],$_l)";
2113
-		}
2114
-
2115
-		$page = sprintf(CODE_RECUPERER_FOND, $nom, $_l, $_options, _q($connect));
2116
-
2117
-		$p->code = "\n\t(((\$recurs=(isset(\$Pile[0]['recurs'])?\$Pile[0]['recurs']:0))>=5)? '' :\n\t$page)\n";
2118
-
2119
-		$p->interdire_scripts = false; // securite assuree par le squelette
2120
-	}
2121
-
2122
-	return $p;
2060
+    $_contexte = argumenter_inclure($p->param, true, $p, $p->boucles, $p->id_boucle, false);
2061
+
2062
+    // erreur de syntaxe = fond absent
2063
+    // (2 messages d'erreur SPIP pour le prix d'un, mais pas d'erreur PHP
2064
+    if (!$_contexte) {
2065
+        $_contexte = [];
2066
+    }
2067
+
2068
+    if (!isset($_contexte[1])) {
2069
+        $msg = ['zbug_balise_sans_argument', ['balise' => ' MODELE']];
2070
+        erreur_squelette($msg, $p);
2071
+    } else {
2072
+        $nom = $_contexte[1];
2073
+        unset($_contexte[1]);
2074
+
2075
+        if (preg_match("/^\s*'[^']*'/s", $nom)) {
2076
+            $nom = "'modeles/" . substr($nom, 1);
2077
+        } else {
2078
+            $nom = "'modeles/' . $nom";
2079
+        }
2080
+
2081
+        $flag_env = false;
2082
+        if (isset($_contexte['env'])) {
2083
+            $flag_env = true;
2084
+            unset($_contexte['env']);
2085
+        }
2086
+
2087
+        // Incoherence dans la syntaxe du contexte. A revoir.
2088
+        // Reserver la cle primaire de la boucle courante si elle existe
2089
+        if (isset($p->boucles[$p->id_boucle]->primary)) {
2090
+            $primary = $p->boucles[$p->id_boucle]->primary;
2091
+            if (!strpos($primary, ',')) {
2092
+                $id = champ_sql($primary, $p);
2093
+                $_contexte[] = "'$primary'=>" . $id;
2094
+                $_contexte[] = "'id'=>" . $id;
2095
+            }
2096
+        }
2097
+        $_contexte[] = "'recurs'=>(++\$recurs)";
2098
+        $connect = '';
2099
+        if (isset($p->boucles[$p->id_boucle])) {
2100
+            $connect = $p->boucles[$p->id_boucle]->sql_serveur;
2101
+        }
2102
+
2103
+        $_options = memoriser_contexte_compil($p);
2104
+        $_options = "'compil'=>array($_options), 'trim'=>true";
2105
+        if (isset($_contexte['ajax'])) {
2106
+            $_options .= ', ' . preg_replace(',=>(.*)$,ims', '=> ($v=(\\1))?$v:true', $_contexte['ajax']);
2107
+            unset($_contexte['ajax']);
2108
+        }
2109
+
2110
+        $_l = 'array(' . join(",\n\t", $_contexte) . ')';
2111
+        if ($flag_env) {
2112
+            $_l = "array_merge(\$Pile[0],$_l)";
2113
+        }
2114
+
2115
+        $page = sprintf(CODE_RECUPERER_FOND, $nom, $_l, $_options, _q($connect));
2116
+
2117
+        $p->code = "\n\t(((\$recurs=(isset(\$Pile[0]['recurs'])?\$Pile[0]['recurs']:0))>=5)? '' :\n\t$page)\n";
2118
+
2119
+        $p->interdire_scripts = false; // securite assuree par le squelette
2120
+    }
2121
+
2122
+    return $p;
2123 2123
 }
2124 2124
 
2125 2125
 
@@ -2143,21 +2143,21 @@  discard block
 block discarded – undo
2143 2143
  *     Pile complétée par le code à générer
2144 2144
  **/
2145 2145
 function balise_SET_dist($p) {
2146
-	$_nom = interprete_argument_balise(1, $p);
2147
-	$_val = interprete_argument_balise(2, $p);
2146
+    $_nom = interprete_argument_balise(1, $p);
2147
+    $_val = interprete_argument_balise(2, $p);
2148 2148
 
2149
-	if (!$_nom or !$_val) {
2150
-		$err_b_s_a = ['zbug_balise_sans_argument', ['balise' => 'SET']];
2151
-		erreur_squelette($err_b_s_a, $p);
2152
-	}
2153
-	// affectation $_zzz inutile, mais permet de contourner un bug OpCode cache sous PHP 5.5.4
2154
-	// cf https://bugs.php.net/bug.php?id=65845
2155
-	else {
2156
-		$p->code = "vide(\$Pile['vars'][\$_zzz=(string)$_nom] = $_val)";
2157
-	}
2149
+    if (!$_nom or !$_val) {
2150
+        $err_b_s_a = ['zbug_balise_sans_argument', ['balise' => 'SET']];
2151
+        erreur_squelette($err_b_s_a, $p);
2152
+    }
2153
+    // affectation $_zzz inutile, mais permet de contourner un bug OpCode cache sous PHP 5.5.4
2154
+    // cf https://bugs.php.net/bug.php?id=65845
2155
+    else {
2156
+        $p->code = "vide(\$Pile['vars'][\$_zzz=(string)$_nom] = $_val)";
2157
+    }
2158 2158
 
2159
-	$p->interdire_scripts = false; // la balise ne renvoie rien
2160
-	return $p;
2159
+    $p->interdire_scripts = false; // la balise ne renvoie rien
2160
+    return $p;
2161 2161
 }
2162 2162
 
2163 2163
 
@@ -2187,12 +2187,12 @@  discard block
 block discarded – undo
2187 2187
  *     Pile complétée par le code à générer
2188 2188
  **/
2189 2189
 function balise_GET_dist($p) {
2190
-	$p->interdire_scripts = false; // le contenu vient de #SET, donc il est de confiance
2191
-	if (function_exists('balise_ENV')) {
2192
-		return balise_ENV($p, '$Pile["vars"]??[]');
2193
-	} else {
2194
-		return balise_ENV_dist($p, '$Pile["vars"]??[]');
2195
-	}
2190
+    $p->interdire_scripts = false; // le contenu vient de #SET, donc il est de confiance
2191
+    if (function_exists('balise_ENV')) {
2192
+        return balise_ENV($p, '$Pile["vars"]??[]');
2193
+    } else {
2194
+        return balise_ENV_dist($p, '$Pile["vars"]??[]');
2195
+    }
2196 2196
 }
2197 2197
 
2198 2198
 
@@ -2215,22 +2215,22 @@  discard block
 block discarded – undo
2215 2215
  *     Pile complétée par le code à générer
2216 2216
  **/
2217 2217
 function balise_DOUBLONS_dist($p) {
2218
-	if ($type = interprete_argument_balise(1, $p)) {
2219
-		if ($famille = interprete_argument_balise(2, $p)) {
2220
-			$type .= '.' . $famille;
2221
-		}
2222
-		$p->code = '(isset($doublons[' . $type . ']) ? $doublons[' . $type . '] : "")';
2223
-		if (!$p->etoile) {
2224
-			$p->code = 'array_filter(array_map("intval",explode(",",'
2225
-				. $p->code . ')))';
2226
-		}
2227
-	} else {
2228
-		$p->code = '$doublons';
2229
-	}
2218
+    if ($type = interprete_argument_balise(1, $p)) {
2219
+        if ($famille = interprete_argument_balise(2, $p)) {
2220
+            $type .= '.' . $famille;
2221
+        }
2222
+        $p->code = '(isset($doublons[' . $type . ']) ? $doublons[' . $type . '] : "")';
2223
+        if (!$p->etoile) {
2224
+            $p->code = 'array_filter(array_map("intval",explode(",",'
2225
+                . $p->code . ')))';
2226
+        }
2227
+    } else {
2228
+        $p->code = '$doublons';
2229
+    }
2230 2230
 
2231
-	$p->interdire_scripts = false;
2231
+    $p->interdire_scripts = false;
2232 2232
 
2233
-	return $p;
2233
+    return $p;
2234 2234
 }
2235 2235
 
2236 2236
 
@@ -2253,18 +2253,18 @@  discard block
 block discarded – undo
2253 2253
  *     Pile complétée par le code à générer
2254 2254
  **/
2255 2255
 function balise_PIPELINE_dist($p) {
2256
-	$_pipe = interprete_argument_balise(1, $p);
2257
-	if (!$_pipe) {
2258
-		$err_b_s_a = ['zbug_balise_sans_argument', ['balise' => 'PIPELINE']];
2259
-		erreur_squelette($err_b_s_a, $p);
2260
-	} else {
2261
-		$_flux = interprete_argument_balise(2, $p);
2262
-		$_flux = $_flux ?: "''";
2263
-		$p->code = "pipeline( $_pipe , $_flux )";
2264
-		$p->interdire_scripts = false;
2265
-	}
2256
+    $_pipe = interprete_argument_balise(1, $p);
2257
+    if (!$_pipe) {
2258
+        $err_b_s_a = ['zbug_balise_sans_argument', ['balise' => 'PIPELINE']];
2259
+        erreur_squelette($err_b_s_a, $p);
2260
+    } else {
2261
+        $_flux = interprete_argument_balise(2, $p);
2262
+        $_flux = $_flux ?: "''";
2263
+        $p->code = "pipeline( $_pipe , $_flux )";
2264
+        $p->interdire_scripts = false;
2265
+    }
2266 2266
 
2267
-	return $p;
2267
+    return $p;
2268 2268
 }
2269 2269
 
2270 2270
 
@@ -2289,10 +2289,10 @@  discard block
 block discarded – undo
2289 2289
  *     Pile complétée par le code à générer
2290 2290
  **/
2291 2291
 function balise_EDIT_dist($p) {
2292
-	$p->code = "''";
2293
-	$p->interdire_scripts = false;
2292
+    $p->code = "''";
2293
+    $p->interdire_scripts = false;
2294 2294
 
2295
-	return $p;
2295
+    return $p;
2296 2296
 }
2297 2297
 
2298 2298
 
@@ -2315,11 +2315,11 @@  discard block
 block discarded – undo
2315 2315
  *     Pile complétée par le code à générer
2316 2316
  **/
2317 2317
 function balise_TOTAL_UNIQUE_dist($p) {
2318
-	$_famille = interprete_argument_balise(1, $p);
2319
-	$_famille = $_famille ?: "''";
2320
-	$p->code = "unique('', $_famille, true)";
2318
+    $_famille = interprete_argument_balise(1, $p);
2319
+    $_famille = $_famille ?: "''";
2320
+    $p->code = "unique('', $_famille, true)";
2321 2321
 
2322
-	return $p;
2322
+    return $p;
2323 2323
 }
2324 2324
 
2325 2325
 /**
@@ -2342,19 +2342,19 @@  discard block
 block discarded – undo
2342 2342
  *     Pile complétée par le code à générer
2343 2343
  **/
2344 2344
 function balise_ARRAY_dist($p) {
2345
-	$_code = [];
2346
-	$n = 1;
2347
-	do {
2348
-		$_key = interprete_argument_balise($n++, $p);
2349
-		$_val = interprete_argument_balise($n++, $p);
2350
-		if ($_key and $_val) {
2351
-			$_code[] = "$_key => $_val";
2352
-		}
2353
-	} while ($_key && $_val);
2354
-	$p->code = 'array(' . join(', ', $_code) . ')';
2355
-	$p->interdire_scripts = false;
2345
+    $_code = [];
2346
+    $n = 1;
2347
+    do {
2348
+        $_key = interprete_argument_balise($n++, $p);
2349
+        $_val = interprete_argument_balise($n++, $p);
2350
+        if ($_key and $_val) {
2351
+            $_code[] = "$_key => $_val";
2352
+        }
2353
+    } while ($_key && $_val);
2354
+    $p->code = 'array(' . join(', ', $_code) . ')';
2355
+    $p->interdire_scripts = false;
2356 2356
 
2357
-	return $p;
2357
+    return $p;
2358 2358
 }
2359 2359
 
2360 2360
 /**
@@ -2373,15 +2373,15 @@  discard block
 block discarded – undo
2373 2373
  *     Pile complétée par le code à générer
2374 2374
  */
2375 2375
 function balise_LISTE_dist($p) {
2376
-	$_code = [];
2377
-	$n = 1;
2378
-	while ($_val = interprete_argument_balise($n++, $p)) {
2379
-		$_code[] = $_val;
2380
-	}
2381
-	$p->code = 'array(' . join(', ', $_code) . ')';
2382
-	$p->interdire_scripts = false;
2376
+    $_code = [];
2377
+    $n = 1;
2378
+    while ($_val = interprete_argument_balise($n++, $p)) {
2379
+        $_code[] = $_val;
2380
+    }
2381
+    $p->code = 'array(' . join(', ', $_code) . ')';
2382
+    $p->interdire_scripts = false;
2383 2383
 
2384
-	return $p;
2384
+    return $p;
2385 2385
 }
2386 2386
 
2387 2387
 
@@ -2415,21 +2415,21 @@  discard block
 block discarded – undo
2415 2415
  *     Pile complétée par le code à générer
2416 2416
  **/
2417 2417
 function balise_AUTORISER_dist($p) {
2418
-	$_code = [];
2419
-	$p->descr['session'] = true; // faire un cache par session
2418
+    $_code = [];
2419
+    $p->descr['session'] = true; // faire un cache par session
2420 2420
 
2421
-	$n = 1;
2422
-	while ($_v = interprete_argument_balise($n++, $p)) {
2423
-		$_code[] = $_v;
2424
-	}
2421
+    $n = 1;
2422
+    while ($_v = interprete_argument_balise($n++, $p)) {
2423
+        $_code[] = $_v;
2424
+    }
2425 2425
 
2426
-	$p->code = '((function_exists("autoriser")||include_spip("inc/autoriser"))&&autoriser(' . join(
2427
-		', ',
2428
-		$_code
2429
-	) . ')?" ":"")';
2430
-	$p->interdire_scripts = false;
2426
+    $p->code = '((function_exists("autoriser")||include_spip("inc/autoriser"))&&autoriser(' . join(
2427
+        ', ',
2428
+        $_code
2429
+    ) . ')?" ":"")';
2430
+    $p->interdire_scripts = false;
2431 2431
 
2432
-	return $p;
2432
+    return $p;
2433 2433
 }
2434 2434
 
2435 2435
 
@@ -2453,15 +2453,15 @@  discard block
 block discarded – undo
2453 2453
  *     Pile complétée par le code à générer
2454 2454
  **/
2455 2455
 function balise_PLUGIN_dist($p) {
2456
-	$plugin = interprete_argument_balise(1, $p);
2457
-	$plugin = isset($plugin) ? str_replace('\'', '"', $plugin) : '""';
2458
-	$type_info = interprete_argument_balise(2, $p);
2459
-	$type_info = isset($type_info) ? str_replace('\'', '"', $type_info) : '"est_actif"';
2456
+    $plugin = interprete_argument_balise(1, $p);
2457
+    $plugin = isset($plugin) ? str_replace('\'', '"', $plugin) : '""';
2458
+    $type_info = interprete_argument_balise(2, $p);
2459
+    $type_info = isset($type_info) ? str_replace('\'', '"', $type_info) : '"est_actif"';
2460 2460
 
2461
-	$f = chercher_filtre('info_plugin');
2462
-	$p->code = $f . '(' . $plugin . ', ' . $type_info . ')';
2461
+    $f = chercher_filtre('info_plugin');
2462
+    $p->code = $f . '(' . $plugin . ', ' . $type_info . ')';
2463 2463
 
2464
-	return $p;
2464
+    return $p;
2465 2465
 }
2466 2466
 
2467 2467
 /**
@@ -2482,9 +2482,9 @@  discard block
 block discarded – undo
2482 2482
  *     Pile complétée par le code à générer
2483 2483
  **/
2484 2484
 function balise_AIDER_dist($p) {
2485
-	$_motif = interprete_argument_balise(1, $p);
2486
-	$p->code = "((\$aider=charger_fonction('aide','inc',true))?\$aider($_motif):'')";
2487
-	return $p;
2485
+    $_motif = interprete_argument_balise(1, $p);
2486
+    $p->code = "((\$aider=charger_fonction('aide','inc',true))?\$aider($_motif):'')";
2487
+    return $p;
2488 2488
 }
2489 2489
 
2490 2490
 /**
@@ -2510,16 +2510,16 @@  discard block
 block discarded – undo
2510 2510
  *     Pile complétée par le code à générer
2511 2511
  **/
2512 2512
 function balise_ACTION_FORMULAIRE($p) {
2513
-	if (!$_url = interprete_argument_balise(1, $p)) {
2514
-		$_url = "(\$Pile[0]['action'] ?? '')";
2515
-	}
2516
-	if (!$_form = interprete_argument_balise(2, $p)) {
2517
-		$_form = "(\$Pile[0]['form'] ?? '')";
2518
-	}
2519
-
2520
-	// envoyer le nom du formulaire que l'on traite
2521
-	// transmettre les eventuels args de la balise formulaire
2522
-	$p->code = "	'<span class=\"form-hidden\">' .
2513
+    if (!$_url = interprete_argument_balise(1, $p)) {
2514
+        $_url = "(\$Pile[0]['action'] ?? '')";
2515
+    }
2516
+    if (!$_form = interprete_argument_balise(2, $p)) {
2517
+        $_form = "(\$Pile[0]['form'] ?? '')";
2518
+    }
2519
+
2520
+    // envoyer le nom du formulaire que l'on traite
2521
+    // transmettre les eventuels args de la balise formulaire
2522
+    $p->code = "	'<span class=\"form-hidden\">' .
2523 2523
 	form_hidden($_url) .
2524 2524
 	'<input name=\'formulaire_action\' type=\'hidden\'
2525 2525
 		value=\'' . $_form . '\' />' .
@@ -2530,9 +2530,9 @@  discard block
 block discarded – undo
2530 2530
 	(\$Pile[0]['_hidden'] ?? '') .
2531 2531
 	'</span>'";
2532 2532
 
2533
-	$p->interdire_scripts = false;
2533
+    $p->interdire_scripts = false;
2534 2534
 
2535
-	return $p;
2535
+    return $p;
2536 2536
 }
2537 2537
 
2538 2538
 
@@ -2573,25 +2573,25 @@  discard block
 block discarded – undo
2573 2573
  */
2574 2574
 function balise_BOUTON_ACTION_dist($p) {
2575 2575
 
2576
-	$args = [];
2577
-	for ($k = 1; $k <= 6; $k++) {
2578
-		$_a = interprete_argument_balise($k, $p);
2579
-		if (!$_a) {
2580
-			$_a = "''";
2581
-		}
2582
-		$args[] = $_a;
2583
-	}
2584
-	// supprimer les args vides
2585
-	while (end($args) == "''" and count($args) > 2) {
2586
-		array_pop($args);
2587
-	}
2588
-	$args = implode(',', $args);
2576
+    $args = [];
2577
+    for ($k = 1; $k <= 6; $k++) {
2578
+        $_a = interprete_argument_balise($k, $p);
2579
+        if (!$_a) {
2580
+            $_a = "''";
2581
+        }
2582
+        $args[] = $_a;
2583
+    }
2584
+    // supprimer les args vides
2585
+    while (end($args) == "''" and count($args) > 2) {
2586
+        array_pop($args);
2587
+    }
2588
+    $args = implode(',', $args);
2589 2589
 
2590
-	$bouton_action = chercher_filtre('bouton_action');
2591
-	$p->code = "$bouton_action($args)";
2592
-	$p->interdire_scripts = false;
2590
+    $bouton_action = chercher_filtre('bouton_action');
2591
+    $p->code = "$bouton_action($args)";
2592
+    $p->interdire_scripts = false;
2593 2593
 
2594
-	return $p;
2594
+    return $p;
2595 2595
 }
2596 2596
 
2597 2597
 
@@ -2610,10 +2610,10 @@  discard block
 block discarded – undo
2610 2610
  *     Pile complétée par le code à générer
2611 2611
  */
2612 2612
 function balise_SLOGAN_SITE_SPIP_dist($p) {
2613
-	$p->code = "\$GLOBALS['meta']['slogan_site']";
2613
+    $p->code = "\$GLOBALS['meta']['slogan_site']";
2614 2614
 
2615
-	#$p->interdire_scripts = true;
2616
-	return $p;
2615
+    #$p->interdire_scripts = true;
2616
+    return $p;
2617 2617
 }
2618 2618
 
2619 2619
 
@@ -2637,10 +2637,10 @@  discard block
 block discarded – undo
2637 2637
  *     Pile complétée par le code à générer
2638 2638
  */
2639 2639
 function balise_HTML5_dist($p) {
2640
-	$p->code = html5_permis() ? "' '" : "''";
2641
-	$p->interdire_scripts = false;
2640
+    $p->code = html5_permis() ? "' '" : "''";
2641
+    $p->interdire_scripts = false;
2642 2642
 
2643
-	return $p;
2643
+    return $p;
2644 2644
 }
2645 2645
 
2646 2646
 
@@ -2666,58 +2666,58 @@  discard block
 block discarded – undo
2666 2666
  *     Pile complétée par le code à générer
2667 2667
  */
2668 2668
 function balise_TRI_dist($p, $liste = 'true') {
2669
-	$b = index_boucle_mere($p);
2670
-	// s'il n'y a pas de nom de boucle, on ne peut pas trier
2671
-	if ($b === '') {
2672
-		$msg = ['zbug_champ_hors_boucle', ['champ' => zbug_presenter_champ($p)]];
2673
-		erreur_squelette($msg, $p);
2674
-		$p->code = "''";
2669
+    $b = index_boucle_mere($p);
2670
+    // s'il n'y a pas de nom de boucle, on ne peut pas trier
2671
+    if ($b === '') {
2672
+        $msg = ['zbug_champ_hors_boucle', ['champ' => zbug_presenter_champ($p)]];
2673
+        erreur_squelette($msg, $p);
2674
+        $p->code = "''";
2675 2675
 
2676
-		return $p;
2677
-	}
2678
-	$boucle = $p->boucles[$b];
2676
+        return $p;
2677
+    }
2678
+    $boucle = $p->boucles[$b];
2679 2679
 
2680
-	// s'il n'y a pas de tri_champ, c'est qu'on se trouve
2681
-	// dans un boucle recursive ou qu'on a oublie le critere {tri}
2682
-	if (!isset($boucle->modificateur['tri_champ'])) {
2683
-		$msg = ['zbug_champ_hors_critere', [
2684
-			'champ' => zbug_presenter_champ($p),
2685
-			'critere' => 'tri'
2686
-		]];
2687
-		erreur_squelette($msg, $p);
2688
-		$p->code = "''";
2680
+    // s'il n'y a pas de tri_champ, c'est qu'on se trouve
2681
+    // dans un boucle recursive ou qu'on a oublie le critere {tri}
2682
+    if (!isset($boucle->modificateur['tri_champ'])) {
2683
+        $msg = ['zbug_champ_hors_critere', [
2684
+            'champ' => zbug_presenter_champ($p),
2685
+            'critere' => 'tri'
2686
+        ]];
2687
+        erreur_squelette($msg, $p);
2688
+        $p->code = "''";
2689 2689
 
2690
-		return $p;
2691
-	}
2690
+        return $p;
2691
+    }
2692 2692
 
2693
-	// Différentes infos relatives au tri présentes dans les modificateurs
2694
-	$_tri_nom = $boucle->modificateur['tri_nom'] ; // nom du paramètre définissant le tri
2695
-	$_tri_champ = $boucle->modificateur['tri_champ']; // champ actuel utilisé le tri
2696
-	$_tri_sens = $boucle->modificateur['tri_sens']; // sens de tri actuel
2697
-	$_tri_liste_sens_defaut = $boucle->modificateur['tri_liste_sens_defaut']; // sens par défaut pour chaque champ
2693
+    // Différentes infos relatives au tri présentes dans les modificateurs
2694
+    $_tri_nom = $boucle->modificateur['tri_nom'] ; // nom du paramètre définissant le tri
2695
+    $_tri_champ = $boucle->modificateur['tri_champ']; // champ actuel utilisé le tri
2696
+    $_tri_sens = $boucle->modificateur['tri_sens']; // sens de tri actuel
2697
+    $_tri_liste_sens_defaut = $boucle->modificateur['tri_liste_sens_defaut']; // sens par défaut pour chaque champ
2698 2698
 
2699
-	$_champ_ou_sens = interprete_argument_balise(1, $p);
2700
-	// si pas de champ, renvoyer le critère de tri actuel
2701
-	if (!$_champ_ou_sens) {
2702
-		$p->code = $_tri_champ;
2699
+    $_champ_ou_sens = interprete_argument_balise(1, $p);
2700
+    // si pas de champ, renvoyer le critère de tri actuel
2701
+    if (!$_champ_ou_sens) {
2702
+        $p->code = $_tri_champ;
2703 2703
 
2704
-		return $p;
2705
-	}
2706
-	// forcer la jointure si besoin, et si le champ est statique
2707
-	if (preg_match(",^'([\w.]+)'$,i", $_champ_ou_sens, $m)) {
2708
-		index_pile($b, $m[1], $p->boucles, '', null, true, false);
2709
-	}
2704
+        return $p;
2705
+    }
2706
+    // forcer la jointure si besoin, et si le champ est statique
2707
+    if (preg_match(",^'([\w.]+)'$,i", $_champ_ou_sens, $m)) {
2708
+        index_pile($b, $m[1], $p->boucles, '', null, true, false);
2709
+    }
2710 2710
 
2711
-	$_libelle = interprete_argument_balise(2, $p);
2712
-	$_libelle = $_libelle ?: $_champ_ou_sens;
2711
+    $_libelle = interprete_argument_balise(2, $p);
2712
+    $_libelle = $_libelle ?: $_champ_ou_sens;
2713 2713
 
2714
-	$_class = interprete_argument_balise(3, $p) ?? "''";
2714
+    $_class = interprete_argument_balise(3, $p) ?? "''";
2715 2715
 
2716
-	$p->code = "calculer_balise_tri($_champ_ou_sens, $_libelle, $_class, $_tri_nom, $_tri_champ, $_tri_sens, $_tri_liste_sens_defaut)";
2716
+    $p->code = "calculer_balise_tri($_champ_ou_sens, $_libelle, $_class, $_tri_nom, $_tri_champ, $_tri_sens, $_tri_liste_sens_defaut)";
2717 2717
 
2718
-	$p->interdire_scripts = false;
2718
+    $p->interdire_scripts = false;
2719 2719
 
2720
-	return $p;
2720
+    return $p;
2721 2721
 }
2722 2722
 
2723 2723
 
@@ -2738,21 +2738,21 @@  discard block
 block discarded – undo
2738 2738
  *     Pile complétée par le code à générer
2739 2739
  */
2740 2740
 function balise_SAUTER_dist($p) {
2741
-	$id_boucle = $p->id_boucle;
2741
+    $id_boucle = $p->id_boucle;
2742 2742
 
2743
-	if (empty($p->boucles[$id_boucle])) {
2744
-		$msg = ['zbug_champ_hors_boucle', ['champ' => '#SAUTER']];
2745
-		erreur_squelette($msg, $p);
2746
-	} else {
2747
-		$_saut = interprete_argument_balise(1, $p);
2748
-		$_compteur = "\$Numrows['$id_boucle']['compteur_boucle']";
2749
-		$_total = "(\$Numrows['$id_boucle']['total'] ?? null)";
2743
+    if (empty($p->boucles[$id_boucle])) {
2744
+        $msg = ['zbug_champ_hors_boucle', ['champ' => '#SAUTER']];
2745
+        erreur_squelette($msg, $p);
2746
+    } else {
2747
+        $_saut = interprete_argument_balise(1, $p);
2748
+        $_compteur = "\$Numrows['$id_boucle']['compteur_boucle']";
2749
+        $_total = "(\$Numrows['$id_boucle']['total'] ?? null)";
2750 2750
 
2751
-		$p->code = "vide($_compteur=\$iter->skip($_saut,$_total))";
2752
-	}
2753
-	$p->interdire_scripts = false;
2751
+        $p->code = "vide($_compteur=\$iter->skip($_saut,$_total))";
2752
+    }
2753
+    $p->interdire_scripts = false;
2754 2754
 
2755
-	return $p;
2755
+    return $p;
2756 2756
 }
2757 2757
 
2758 2758
 
@@ -2774,22 +2774,22 @@  discard block
 block discarded – undo
2774 2774
  *     Pile complétée par le code à générer
2775 2775
  */
2776 2776
 function balise_PUBLIE_dist($p) {
2777
-	if (!$_type = interprete_argument_balise(1, $p)) {
2778
-		$_type = _q($p->type_requete);
2779
-		$_id = champ_sql($p->boucles[$p->id_boucle]->primary, $p);
2780
-	} else {
2781
-		$_id = interprete_argument_balise(2, $p);
2782
-	}
2777
+    if (!$_type = interprete_argument_balise(1, $p)) {
2778
+        $_type = _q($p->type_requete);
2779
+        $_id = champ_sql($p->boucles[$p->id_boucle]->primary, $p);
2780
+    } else {
2781
+        $_id = interprete_argument_balise(2, $p);
2782
+    }
2783 2783
 
2784
-	$connect = '';
2785
-	if (isset($p->boucles[$p->id_boucle])) {
2786
-		$connect = $p->boucles[$p->id_boucle]->sql_serveur;
2787
-	}
2784
+    $connect = '';
2785
+    if (isset($p->boucles[$p->id_boucle])) {
2786
+        $connect = $p->boucles[$p->id_boucle]->sql_serveur;
2787
+    }
2788 2788
 
2789
-	$p->code = '(objet_test_si_publie(' . $_type . ',intval(' . $_id . '),' . _q($connect) . ")?' ':'')";
2790
-	$p->interdire_scripts = false;
2789
+    $p->code = '(objet_test_si_publie(' . $_type . ',intval(' . $_id . '),' . _q($connect) . ")?' ':'')";
2790
+    $p->interdire_scripts = false;
2791 2791
 
2792
-	return $p;
2792
+    return $p;
2793 2793
 }
2794 2794
 
2795 2795
 /**
@@ -2818,12 +2818,12 @@  discard block
 block discarded – undo
2818 2818
  *     Pile complétée par le code à générer
2819 2819
  */
2820 2820
 function balise_PRODUIRE_dist($p) {
2821
-	$balise_inclure = charger_fonction('INCLURE', 'balise');
2822
-	$p = $balise_inclure($p);
2821
+    $balise_inclure = charger_fonction('INCLURE', 'balise');
2822
+    $p = $balise_inclure($p);
2823 2823
 
2824
-	$p->code = str_replace('recuperer_fond(', 'produire_fond_statique(', $p->code);
2824
+    $p->code = str_replace('recuperer_fond(', 'produire_fond_statique(', $p->code);
2825 2825
 
2826
-	return $p;
2826
+    return $p;
2827 2827
 }
2828 2828
 
2829 2829
 /**
@@ -2842,13 +2842,13 @@  discard block
 block discarded – undo
2842 2842
  *     Pile complétée par le code à générer
2843 2843
  */
2844 2844
 function balise_LARGEUR_ECRAN_dist($p) {
2845
-	$_class = interprete_argument_balise(1, $p);
2846
-	if (!$_class) {
2847
-		$_class = 'null';
2848
-	}
2849
-	$p->code = "(is_string($_class)?vide(\$GLOBALS['largeur_ecran']=$_class):(isset(\$GLOBALS['largeur_ecran'])?\$GLOBALS['largeur_ecran']:''))";
2845
+    $_class = interprete_argument_balise(1, $p);
2846
+    if (!$_class) {
2847
+        $_class = 'null';
2848
+    }
2849
+    $p->code = "(is_string($_class)?vide(\$GLOBALS['largeur_ecran']=$_class):(isset(\$GLOBALS['largeur_ecran'])?\$GLOBALS['largeur_ecran']:''))";
2850 2850
 
2851
-	return $p;
2851
+    return $p;
2852 2852
 }
2853 2853
 
2854 2854
 
@@ -2864,14 +2864,14 @@  discard block
 block discarded – undo
2864 2864
  *     Pile complétée par le code à générer
2865 2865
  **/
2866 2866
 function balise_CONST_dist($p) {
2867
-	$_const = interprete_argument_balise(1, $p);
2868
-	if (!strlen($_const ?? '')) {
2869
-		$p->code = "''";
2870
-	}
2871
-	else {
2872
-		$p->code = "(defined($_const)?constant($_const):'')";
2873
-	}
2874
-	$p->interdire_scripts = false;
2875
-
2876
-	return $p;
2867
+    $_const = interprete_argument_balise(1, $p);
2868
+    if (!strlen($_const ?? '')) {
2869
+        $p->code = "''";
2870
+    }
2871
+    else {
2872
+        $p->code = "(defined($_const)?constant($_const):'')";
2873
+    }
2874
+    $p->interdire_scripts = false;
2875
+
2876
+    return $p;
2877 2877
 }
Please login to merge, or discard this patch.