Completed
Push — master ( a304d7...a90d7c )
by cam
01:51
created
ecrire/public/balises.php 1 patch
Indentation   +943 added lines, -943 removed lines patch added patch discarded remove patch
@@ -27,7 +27,7 @@  discard block
 block discarded – undo
27 27
  **/
28 28
 
29 29
 if (!defined('_ECRIRE_INC_VERSION')) {
30
-	return;
30
+    return;
31 31
 }
32 32
 
33 33
 /**
@@ -49,16 +49,16 @@  discard block
 block discarded – undo
49 49
  *     Code PHP si cet argument est présent, sinon null
50 50
  **/
51 51
 function interprete_argument_balise(int $n, Champ $p): ?string {
52
-	if (($p->param) && (!$p->param[0][0]) && ((is_countable($p->param[0]) ? count($p->param[0]) : 0) > $n)) {
53
-		return calculer_liste(
54
-			$p->param[0][$n],
55
-			$p->descr,
56
-			$p->boucles,
57
-			$p->id_boucle
58
-		);
59
-	} else {
60
-		return null;
61
-	}
52
+    if (($p->param) && (!$p->param[0][0]) && ((is_countable($p->param[0]) ? count($p->param[0]) : 0) > $n)) {
53
+        return calculer_liste(
54
+            $p->param[0][$n],
55
+            $p->descr,
56
+            $p->boucles,
57
+            $p->id_boucle
58
+        );
59
+    } else {
60
+        return null;
61
+    }
62 62
 }
63 63
 
64 64
 
@@ -78,10 +78,10 @@  discard block
 block discarded – undo
78 78
  *     Pile complétée par le code à générer
79 79
  **/
80 80
 function balise_NOM_SITE_SPIP_dist($p) {
81
-	$p->code = "\$GLOBALS['meta']['nom_site']";
81
+    $p->code = "\$GLOBALS['meta']['nom_site']";
82 82
 
83
-	#$p->interdire_scripts = true;
84
-	return $p;
83
+    #$p->interdire_scripts = true;
84
+    return $p;
85 85
 }
86 86
 
87 87
 /**
@@ -97,10 +97,10 @@  discard block
 block discarded – undo
97 97
  *     Pile complétée par le code à générer
98 98
  **/
99 99
 function balise_EMAIL_WEBMASTER_dist($p) {
100
-	$p->code = "\$GLOBALS['meta']['email_webmaster']";
100
+    $p->code = "\$GLOBALS['meta']['email_webmaster']";
101 101
 
102
-	#$p->interdire_scripts = true;
103
-	return $p;
102
+    #$p->interdire_scripts = true;
103
+    return $p;
104 104
 }
105 105
 
106 106
 /**
@@ -116,10 +116,10 @@  discard block
 block discarded – undo
116 116
  *     Pile complétée par le code à générer
117 117
  **/
118 118
 function balise_DESCRIPTIF_SITE_SPIP_dist($p) {
119
-	$p->code = "\$GLOBALS['meta']['descriptif_site']";
119
+    $p->code = "\$GLOBALS['meta']['descriptif_site']";
120 120
 
121
-	#$p->interdire_scripts = true;
122
-	return $p;
121
+    #$p->interdire_scripts = true;
122
+    return $p;
123 123
 }
124 124
 
125 125
 
@@ -140,10 +140,10 @@  discard block
 block discarded – undo
140 140
  *     Pile complétée par le code à générer
141 141
  **/
142 142
 function balise_CHARSET_dist($p) {
143
-	$p->code = "\$GLOBALS['meta']['charset']";
143
+    $p->code = "\$GLOBALS['meta']['charset']";
144 144
 
145
-	#$p->interdire_scripts = true;
146
-	return $p;
145
+    #$p->interdire_scripts = true;
146
+    return $p;
147 147
 }
148 148
 
149 149
 /**
@@ -168,11 +168,11 @@  discard block
 block discarded – undo
168 168
  *     Pile complétée par le code à générer
169 169
  **/
170 170
 function balise_LANG_LEFT_dist($p) {
171
-	$_lang = champ_sql('lang', $p);
172
-	$p->code = "lang_dir($_lang, 'left','right')";
173
-	$p->interdire_scripts = false;
171
+    $_lang = champ_sql('lang', $p);
172
+    $p->code = "lang_dir($_lang, 'left','right')";
173
+    $p->interdire_scripts = false;
174 174
 
175
-	return $p;
175
+    return $p;
176 176
 }
177 177
 
178 178
 /**
@@ -192,11 +192,11 @@  discard block
 block discarded – undo
192 192
  *     Pile complétée par le code à générer
193 193
  **/
194 194
 function balise_LANG_RIGHT_dist($p) {
195
-	$_lang = champ_sql('lang', $p);
196
-	$p->code = "lang_dir($_lang, 'right','left')";
197
-	$p->interdire_scripts = false;
195
+    $_lang = champ_sql('lang', $p);
196
+    $p->code = "lang_dir($_lang, 'right','left')";
197
+    $p->interdire_scripts = false;
198 198
 
199
-	return $p;
199
+    return $p;
200 200
 }
201 201
 
202 202
 /**
@@ -221,11 +221,11 @@  discard block
 block discarded – undo
221 221
  *     Pile complétée par le code à générer
222 222
  **/
223 223
 function balise_LANG_DIR_dist($p) {
224
-	$_lang = champ_sql('lang', $p);
225
-	$p->code = "lang_dir($_lang, 'ltr','rtl')";
226
-	$p->interdire_scripts = false;
224
+    $_lang = champ_sql('lang', $p);
225
+    $p->code = "lang_dir($_lang, 'ltr','rtl')";
226
+    $p->interdire_scripts = false;
227 227
 
228
-	return $p;
228
+    return $p;
229 229
 }
230 230
 
231 231
 
@@ -242,10 +242,10 @@  discard block
 block discarded – undo
242 242
  *     Pile complétée par le code à générer
243 243
  **/
244 244
 function balise_PUCE_dist($p) {
245
-	$p->code = 'definir_puce()';
246
-	$p->interdire_scripts = false;
245
+    $p->code = 'definir_puce()';
246
+    $p->interdire_scripts = false;
247 247
 
248
-	return $p;
248
+    return $p;
249 249
 }
250 250
 
251 251
 
@@ -269,9 +269,9 @@  discard block
 block discarded – undo
269 269
  *     Pile completée du code PHP d'exécution de la balise
270 270
  */
271 271
 function balise_DATE_dist($p) {
272
-	$p->code = champ_sql('date', $p);
272
+    $p->code = champ_sql('date', $p);
273 273
 
274
-	return $p;
274
+    return $p;
275 275
 }
276 276
 
277 277
 
@@ -291,10 +291,10 @@  discard block
 block discarded – undo
291 291
  *     Pile completée du code PHP d'exécution de la balise
292 292
  */
293 293
 function balise_DATE_REDAC_dist($p) {
294
-	$p->code = champ_sql('date_redac', $p);
295
-	$p->interdire_scripts = false;
294
+    $p->code = champ_sql('date_redac', $p);
295
+    $p->interdire_scripts = false;
296 296
 
297
-	return $p;
297
+    return $p;
298 298
 }
299 299
 
300 300
 /**
@@ -313,10 +313,10 @@  discard block
 block discarded – undo
313 313
  *     Pile completée du code PHP d'exécution de la balise
314 314
  */
315 315
 function balise_DATE_MODIF_dist($p) {
316
-	$p->code = champ_sql('date_modif', $p);
317
-	$p->interdire_scripts = false;
316
+    $p->code = champ_sql('date_modif', $p);
317
+    $p->interdire_scripts = false;
318 318
 
319
-	return $p;
319
+    return $p;
320 320
 }
321 321
 
322 322
 /**
@@ -334,13 +334,13 @@  discard block
 block discarded – undo
334 334
  *     Pile completée du code PHP d'exécution de la balise
335 335
  */
336 336
 function balise_DATE_NOUVEAUTES_dist($p) {
337
-	$p->code = "((\$GLOBALS['meta']['quoi_de_neuf'] == 'oui'
337
+    $p->code = "((\$GLOBALS['meta']['quoi_de_neuf'] == 'oui'
338 338
 	AND isset(\$GLOBALS['meta']['dernier_envoi_neuf'])) ?
339 339
 	\$GLOBALS['meta']['dernier_envoi_neuf'] :
340 340
 	\"'0000-00-00'\")";
341
-	$p->interdire_scripts = false;
341
+    $p->interdire_scripts = false;
342 342
 
343
-	return $p;
343
+    return $p;
344 344
 }
345 345
 
346 346
 
@@ -358,11 +358,11 @@  discard block
 block discarded – undo
358 358
  *     Pile completée du code PHP d'exécution de la balise
359 359
  */
360 360
 function balise_DOSSIER_SQUELETTE_dist($p) {
361
-	$code = substr(addslashes(dirname($p->descr['sourcefile'])), strlen(_DIR_RACINE));
362
-	$p->code = "_DIR_RACINE . '$code'" .
363
-		$p->interdire_scripts = false;
361
+    $code = substr(addslashes(dirname($p->descr['sourcefile'])), strlen(_DIR_RACINE));
362
+    $p->code = "_DIR_RACINE . '$code'" .
363
+        $p->interdire_scripts = false;
364 364
 
365
-	return $p;
365
+    return $p;
366 366
 }
367 367
 
368 368
 /**
@@ -377,11 +377,11 @@  discard block
 block discarded – undo
377 377
  *     Pile completée du code PHP d'exécution de la balise
378 378
  */
379 379
 function balise_SQUELETTE_dist($p) {
380
-	$code = addslashes($p->descr['sourcefile']);
381
-	$p->code = "'$code'" .
382
-		$p->interdire_scripts = false;
380
+    $code = addslashes($p->descr['sourcefile']);
381
+    $p->code = "'$code'" .
382
+        $p->interdire_scripts = false;
383 383
 
384
-	return $p;
384
+    return $p;
385 385
 }
386 386
 
387 387
 /**
@@ -400,10 +400,10 @@  discard block
 block discarded – undo
400 400
  *     Pile completée du code PHP d'exécution de la balise
401 401
  */
402 402
 function balise_SPIP_VERSION_dist($p) {
403
-	$p->code = 'spip_version()';
404
-	$p->interdire_scripts = false;
403
+    $p->code = 'spip_version()';
404
+    $p->interdire_scripts = false;
405 405
 
406
-	return $p;
406
+    return $p;
407 407
 }
408 408
 
409 409
 
@@ -429,18 +429,18 @@  discard block
 block discarded – undo
429 429
  *     Pile complétée par le code à générer
430 430
  **/
431 431
 function balise_NOM_SITE_dist($p) {
432
-	if (!$p->etoile) {
433
-		$p->code = 'supprimer_numero(calculer_url(' .
434
-			champ_sql('url_site', $p) . ',' .
435
-			champ_sql('nom_site', $p) .
436
-			", 'titre', \$connect, false))";
437
-	} else {
438
-		$p->code = champ_sql('nom_site', $p);
439
-	}
432
+    if (!$p->etoile) {
433
+        $p->code = 'supprimer_numero(calculer_url(' .
434
+            champ_sql('url_site', $p) . ',' .
435
+            champ_sql('nom_site', $p) .
436
+            ", 'titre', \$connect, false))";
437
+    } else {
438
+        $p->code = champ_sql('nom_site', $p);
439
+    }
440 440
 
441
-	$p->interdire_scripts = true;
441
+    $p->interdire_scripts = true;
442 442
 
443
-	return $p;
443
+    return $p;
444 444
 }
445 445
 
446 446
 
@@ -457,11 +457,11 @@  discard block
 block discarded – undo
457 457
  *     Pile complétée par le code à générer
458 458
  **/
459 459
 function balise_NOTES_dist($p) {
460
-	// Recuperer les notes
461
-	$p->code = 'calculer_notes()';
460
+    // Recuperer les notes
461
+    $p->code = 'calculer_notes()';
462 462
 
463
-	#$p->interdire_scripts = true;
464
-	return $p;
463
+    #$p->interdire_scripts = true;
464
+    return $p;
465 465
 }
466 466
 
467 467
 
@@ -483,10 +483,10 @@  discard block
 block discarded – undo
483 483
  *     Pile complétée par le code à générer
484 484
  **/
485 485
 function balise_RECHERCHE_dist($p) {
486
-	$p->code = 'entites_html(_request("recherche"))';
487
-	$p->interdire_scripts = false;
486
+    $p->code = 'entites_html(_request("recherche"))';
487
+    $p->interdire_scripts = false;
488 488
 
489
-	return $p;
489
+    return $p;
490 490
 }
491 491
 
492 492
 
@@ -504,18 +504,18 @@  discard block
 block discarded – undo
504 504
  *     Pile complétée par le code à générer
505 505
  **/
506 506
 function balise_COMPTEUR_BOUCLE_dist($p) {
507
-	$b = index_boucle_mere($p);
508
-	if ($b === '') {
509
-		$msg = ['zbug_champ_hors_boucle', ['champ' => zbug_presenter_champ($p)]];
510
-		erreur_squelette($msg, $p);
511
-		return null;
512
-	} else {
513
-		$p->code = "(\$Numrows['$b']['compteur_boucle'] ?? 0)";
514
-		$p->boucles[$b]->cptrows = true;
515
-		$p->interdire_scripts = false;
507
+    $b = index_boucle_mere($p);
508
+    if ($b === '') {
509
+        $msg = ['zbug_champ_hors_boucle', ['champ' => zbug_presenter_champ($p)]];
510
+        erreur_squelette($msg, $p);
511
+        return null;
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((int)$_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((int)$_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,22 +1761,22 @@  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
-	return null;
1779
+    return null;
1780 1780
 }
1781 1781
 
1782 1782
 
@@ -1812,55 +1812,55 @@  discard block
 block discarded – undo
1812 1812
  **/
1813 1813
 function balise_CACHE_dist($p) {
1814 1814
 
1815
-	if ($p->param) {
1816
-		$duree = valeur_numerique($p->param[0][1][0]->texte);
1817
-
1818
-		// noter la duree du cache dans un entete proprietaire
1819
-
1820
-		$code = "'<'.'" . '?php header("X-Spip-Cache: '
1821
-			. $duree
1822
-			. '"); ?' . "'.'>'";
1823
-
1824
-		// Remplir le header Cache-Control
1825
-		// cas #CACHE{0}
1826
-		if ($duree == 0) {
1827
-			$code .= ".'<'.'"
1828
-				. '?php header("Cache-Control: no-cache, must-revalidate"); ?'
1829
-				. "'.'><'.'"
1830
-				. '?php header("Pragma: no-cache"); ?'
1831
-				. "'.'>'";
1832
-		}
1833
-
1834
-		// recuperer les parametres suivants
1835
-		$i = 1;
1836
-		while (isset($p->param[0][++$i])) {
1837
-			$pa = ($p->param[0][$i][0]->texte);
1838
-
1839
-			if (
1840
-				$pa == 'cache-client'
1841
-				and $duree > 0
1842
-			) {
1843
-				$code .= ".'<'.'" . '?php header("Cache-Control: max-age='
1844
-					. $duree
1845
-					. '"); ?' . "'.'>'";
1846
-				// il semble logique, si on cache-client, de ne pas invalider
1847
-				$pa = 'statique';
1848
-			}
1849
-
1850
-			if (
1851
-				$pa == 'statique'
1852
-				and $duree > 0
1853
-			) {
1854
-				$code .= ".'<'.'" . '?php header("X-Spip-Statique: oui"); ?' . "'.'>'";
1855
-			}
1856
-		}
1857
-	} else {
1858
-		$code = "''";
1859
-	}
1860
-	$p->code = $code;
1861
-	$p->interdire_scripts = false;
1862
-
1863
-	return $p;
1815
+    if ($p->param) {
1816
+        $duree = valeur_numerique($p->param[0][1][0]->texte);
1817
+
1818
+        // noter la duree du cache dans un entete proprietaire
1819
+
1820
+        $code = "'<'.'" . '?php header("X-Spip-Cache: '
1821
+            . $duree
1822
+            . '"); ?' . "'.'>'";
1823
+
1824
+        // Remplir le header Cache-Control
1825
+        // cas #CACHE{0}
1826
+        if ($duree == 0) {
1827
+            $code .= ".'<'.'"
1828
+                . '?php header("Cache-Control: no-cache, must-revalidate"); ?'
1829
+                . "'.'><'.'"
1830
+                . '?php header("Pragma: no-cache"); ?'
1831
+                . "'.'>'";
1832
+        }
1833
+
1834
+        // recuperer les parametres suivants
1835
+        $i = 1;
1836
+        while (isset($p->param[0][++$i])) {
1837
+            $pa = ($p->param[0][$i][0]->texte);
1838
+
1839
+            if (
1840
+                $pa == 'cache-client'
1841
+                and $duree > 0
1842
+            ) {
1843
+                $code .= ".'<'.'" . '?php header("Cache-Control: max-age='
1844
+                    . $duree
1845
+                    . '"); ?' . "'.'>'";
1846
+                // il semble logique, si on cache-client, de ne pas invalider
1847
+                $pa = 'statique';
1848
+            }
1849
+
1850
+            if (
1851
+                $pa == 'statique'
1852
+                and $duree > 0
1853
+            ) {
1854
+                $code .= ".'<'.'" . '?php header("X-Spip-Statique: oui"); ?' . "'.'>'";
1855
+            }
1856
+        }
1857
+    } else {
1858
+        $code = "''";
1859
+    }
1860
+    $p->code = $code;
1861
+    $p->interdire_scripts = false;
1862
+
1863
+    return $p;
1864 1864
 }
1865 1865
 
1866 1866
 
@@ -1892,13 +1892,13 @@  discard block
 block discarded – undo
1892 1892
  *     Pile complétée par le code à générer
1893 1893
  */
1894 1894
 function balise_INSERT_HEAD_dist($p) {
1895
-	$p->code = "'<'.'"
1896
-		. '?php header("X-Spip-Filtre: insert_head_css_conditionnel"); ?'
1897
-		. "'.'>'";
1898
-	$p->code .= ". pipeline('insert_head','<!-- insert_head -->')";
1899
-	$p->interdire_scripts = false;
1895
+    $p->code = "'<'.'"
1896
+        . '?php header("X-Spip-Filtre: insert_head_css_conditionnel"); ?'
1897
+        . "'.'>'";
1898
+    $p->code .= ". pipeline('insert_head','<!-- insert_head -->')";
1899
+    $p->interdire_scripts = false;
1900 1900
 
1901
-	return $p;
1901
+    return $p;
1902 1902
 }
1903 1903
 
1904 1904
 /**
@@ -1916,10 +1916,10 @@  discard block
 block discarded – undo
1916 1916
  *     Pile complétée par le code à générer
1917 1917
  */
1918 1918
 function balise_INSERT_HEAD_CSS_dist($p) {
1919
-	$p->code = "pipeline('insert_head_css','<!-- insert_head_css -->')";
1920
-	$p->interdire_scripts = false;
1919
+    $p->code = "pipeline('insert_head_css','<!-- insert_head_css -->')";
1920
+    $p->interdire_scripts = false;
1921 1921
 
1922
-	return $p;
1922
+    return $p;
1923 1923
 }
1924 1924
 
1925 1925
 /**
@@ -1934,11 +1934,11 @@  discard block
 block discarded – undo
1934 1934
  *     Pile complétée par le code à générer
1935 1935
  **/
1936 1936
 function balise_INCLUDE_dist($p) {
1937
-	if (function_exists('balise_INCLURE')) {
1938
-		return balise_INCLURE($p);
1939
-	} else {
1940
-		return balise_INCLURE_dist($p);
1941
-	}
1937
+    if (function_exists('balise_INCLURE')) {
1938
+        return balise_INCLURE($p);
1939
+    } else {
1940
+        return balise_INCLURE_dist($p);
1941
+    }
1942 1942
 }
1943 1943
 
1944 1944
 /**
@@ -1972,66 +1972,66 @@  discard block
 block discarded – undo
1972 1972
  *     Pile complétée par le code à générer
1973 1973
  **/
1974 1974
 function balise_INCLURE_dist($p) {
1975
-	$id_boucle = $p->id_boucle;
1976
-	// la lang n'est pas passe de facon automatique par argumenter
1977
-	// mais le sera pas recuperer_fond, sauf si etoile=>true est passe
1978
-	// en option
1979
-
1980
-	$_contexte = argumenter_inclure($p->param, true, $p, $p->boucles, $id_boucle, false, false);
1981
-
1982
-	// erreur de syntaxe = fond absent
1983
-	// (2 messages d'erreur SPIP pour le prix d'un, mais pas d'erreur PHP
1984
-	if (!$_contexte) {
1985
-		$_contexte = [];
1986
-	}
1987
-
1988
-	if (isset($_contexte['fond'])) {
1989
-		$f = $_contexte['fond'];
1990
-		// toujours vrai :
1991
-		if (preg_match('/^.fond.\s*=>(.*)$/s', $f, $r)) {
1992
-			$f = $r[1];
1993
-			unset($_contexte['fond']);
1994
-		} else {
1995
-			spip_log('compilation de #INCLURE a revoir');
1996
-		}
1997
-
1998
-		// #INCLURE{doublons}
1999
-		if (isset($_contexte['doublons'])) {
2000
-			$_contexte['doublons'] = "'doublons' => \$doublons";
2001
-		}
2002
-
2003
-		// Critere d'inclusion {env} (et {self} pour compatibilite ascendante)
2004
-		$flag_env = false;
2005
-		if (isset($_contexte['env']) or isset($_contexte['self'])) {
2006
-			$flag_env = true;
2007
-			unset($_contexte['env']);
2008
-		}
2009
-
2010
-		$_options = [];
2011
-		if (isset($_contexte['ajax'])) {
2012
-			$_options[] = preg_replace(',=>(.*)$,ims', '=> ($v=(\\1))?$v:true', $_contexte['ajax']);
2013
-			unset($_contexte['ajax']);
2014
-		}
2015
-		if ($p->etoile) {
2016
-			$_options[] = "'etoile'=>true";
2017
-		}
2018
-		$_options[] = "'compil'=>array(" . memoriser_contexte_compil($p) . ')';
2019
-
2020
-		$_l = 'array(' . join(",\n\t", $_contexte) . ')';
2021
-		if ($flag_env) {
2022
-			$_l = "array_merge(\$Pile[0],$_l)";
2023
-		}
2024
-
2025
-		$p->code = sprintf(CODE_RECUPERER_FOND, $f, $_l, join(',', $_options), "_request('connect') ?? ''");
2026
-	} elseif (!isset($_contexte[1])) {
2027
-		$msg = ['zbug_balise_sans_argument', ['balise' => ' INCLURE']];
2028
-		erreur_squelette($msg, $p);
2029
-	} else {
2030
-		$p->code = 'charge_scripts(' . $_contexte[1] . ',false)';
2031
-	}
2032
-
2033
-	$p->interdire_scripts = false; // la securite est assuree par recuperer_fond
2034
-	return $p;
1975
+    $id_boucle = $p->id_boucle;
1976
+    // la lang n'est pas passe de facon automatique par argumenter
1977
+    // mais le sera pas recuperer_fond, sauf si etoile=>true est passe
1978
+    // en option
1979
+
1980
+    $_contexte = argumenter_inclure($p->param, true, $p, $p->boucles, $id_boucle, false, false);
1981
+
1982
+    // erreur de syntaxe = fond absent
1983
+    // (2 messages d'erreur SPIP pour le prix d'un, mais pas d'erreur PHP
1984
+    if (!$_contexte) {
1985
+        $_contexte = [];
1986
+    }
1987
+
1988
+    if (isset($_contexte['fond'])) {
1989
+        $f = $_contexte['fond'];
1990
+        // toujours vrai :
1991
+        if (preg_match('/^.fond.\s*=>(.*)$/s', $f, $r)) {
1992
+            $f = $r[1];
1993
+            unset($_contexte['fond']);
1994
+        } else {
1995
+            spip_log('compilation de #INCLURE a revoir');
1996
+        }
1997
+
1998
+        // #INCLURE{doublons}
1999
+        if (isset($_contexte['doublons'])) {
2000
+            $_contexte['doublons'] = "'doublons' => \$doublons";
2001
+        }
2002
+
2003
+        // Critere d'inclusion {env} (et {self} pour compatibilite ascendante)
2004
+        $flag_env = false;
2005
+        if (isset($_contexte['env']) or isset($_contexte['self'])) {
2006
+            $flag_env = true;
2007
+            unset($_contexte['env']);
2008
+        }
2009
+
2010
+        $_options = [];
2011
+        if (isset($_contexte['ajax'])) {
2012
+            $_options[] = preg_replace(',=>(.*)$,ims', '=> ($v=(\\1))?$v:true', $_contexte['ajax']);
2013
+            unset($_contexte['ajax']);
2014
+        }
2015
+        if ($p->etoile) {
2016
+            $_options[] = "'etoile'=>true";
2017
+        }
2018
+        $_options[] = "'compil'=>array(" . memoriser_contexte_compil($p) . ')';
2019
+
2020
+        $_l = 'array(' . join(",\n\t", $_contexte) . ')';
2021
+        if ($flag_env) {
2022
+            $_l = "array_merge(\$Pile[0],$_l)";
2023
+        }
2024
+
2025
+        $p->code = sprintf(CODE_RECUPERER_FOND, $f, $_l, join(',', $_options), "_request('connect') ?? ''");
2026
+    } elseif (!isset($_contexte[1])) {
2027
+        $msg = ['zbug_balise_sans_argument', ['balise' => ' INCLURE']];
2028
+        erreur_squelette($msg, $p);
2029
+    } else {
2030
+        $p->code = 'charge_scripts(' . $_contexte[1] . ',false)';
2031
+    }
2032
+
2033
+    $p->interdire_scripts = false; // la securite est assuree par recuperer_fond
2034
+    return $p;
2035 2035
 }
2036 2036
 
2037 2037
 
@@ -2059,69 +2059,69 @@  discard block
 block discarded – undo
2059 2059
  **/
2060 2060
 function balise_MODELE_dist($p) {
2061 2061
 
2062
-	$_contexte = argumenter_inclure($p->param, true, $p, $p->boucles, $p->id_boucle, false);
2063
-
2064
-	// erreur de syntaxe = fond absent
2065
-	// (2 messages d'erreur SPIP pour le prix d'un, mais pas d'erreur PHP
2066
-	if (!$_contexte) {
2067
-		$_contexte = [];
2068
-	}
2069
-
2070
-	if (!isset($_contexte[1])) {
2071
-		$msg = ['zbug_balise_sans_argument', ['balise' => ' MODELE']];
2072
-		erreur_squelette($msg, $p);
2073
-	} else {
2074
-		$nom = $_contexte[1];
2075
-		unset($_contexte[1]);
2076
-
2077
-		if (preg_match("/^\s*'[^']*'/s", $nom)) {
2078
-			$nom = "'modeles/" . substr($nom, 1);
2079
-		} else {
2080
-			$nom = "'modeles/' . $nom";
2081
-		}
2082
-
2083
-		$flag_env = false;
2084
-		if (isset($_contexte['env'])) {
2085
-			$flag_env = true;
2086
-			unset($_contexte['env']);
2087
-		}
2088
-
2089
-		// Incoherence dans la syntaxe du contexte. A revoir.
2090
-		// Reserver la cle primaire de la boucle courante si elle existe
2091
-		if (isset($p->boucles[$p->id_boucle]->primary)) {
2092
-			$primary = $p->boucles[$p->id_boucle]->primary;
2093
-			if (!strpos($primary, ',')) {
2094
-				$id = champ_sql($primary, $p);
2095
-				$_contexte[] = "'$primary'=>" . $id;
2096
-				$_contexte[] = "'id'=>" . $id;
2097
-			}
2098
-		}
2099
-		$_contexte[] = "'recurs'=>(++\$recurs)";
2100
-		$connect = '';
2101
-		if (isset($p->boucles[$p->id_boucle])) {
2102
-			$connect = $p->boucles[$p->id_boucle]->sql_serveur;
2103
-		}
2104
-
2105
-		$_options = memoriser_contexte_compil($p);
2106
-		$_options = "'compil'=>array($_options), 'trim'=>true";
2107
-		if (isset($_contexte['ajax'])) {
2108
-			$_options .= ', ' . preg_replace(',=>(.*)$,ims', '=> ($v=(\\1))?$v:true', $_contexte['ajax']);
2109
-			unset($_contexte['ajax']);
2110
-		}
2111
-
2112
-		$_l = 'array(' . join(",\n\t", $_contexte) . ')';
2113
-		if ($flag_env) {
2114
-			$_l = "array_merge(\$Pile[0],$_l)";
2115
-		}
2116
-
2117
-		$page = sprintf(CODE_RECUPERER_FOND, $nom, $_l, $_options, _q($connect));
2118
-
2119
-		$p->code = "\n\t(((\$recurs=(isset(\$Pile[0]['recurs'])?\$Pile[0]['recurs']:0))>=5)? '' :\n\t$page)\n";
2120
-
2121
-		$p->interdire_scripts = false; // securite assuree par le squelette
2122
-	}
2123
-
2124
-	return $p;
2062
+    $_contexte = argumenter_inclure($p->param, true, $p, $p->boucles, $p->id_boucle, false);
2063
+
2064
+    // erreur de syntaxe = fond absent
2065
+    // (2 messages d'erreur SPIP pour le prix d'un, mais pas d'erreur PHP
2066
+    if (!$_contexte) {
2067
+        $_contexte = [];
2068
+    }
2069
+
2070
+    if (!isset($_contexte[1])) {
2071
+        $msg = ['zbug_balise_sans_argument', ['balise' => ' MODELE']];
2072
+        erreur_squelette($msg, $p);
2073
+    } else {
2074
+        $nom = $_contexte[1];
2075
+        unset($_contexte[1]);
2076
+
2077
+        if (preg_match("/^\s*'[^']*'/s", $nom)) {
2078
+            $nom = "'modeles/" . substr($nom, 1);
2079
+        } else {
2080
+            $nom = "'modeles/' . $nom";
2081
+        }
2082
+
2083
+        $flag_env = false;
2084
+        if (isset($_contexte['env'])) {
2085
+            $flag_env = true;
2086
+            unset($_contexte['env']);
2087
+        }
2088
+
2089
+        // Incoherence dans la syntaxe du contexte. A revoir.
2090
+        // Reserver la cle primaire de la boucle courante si elle existe
2091
+        if (isset($p->boucles[$p->id_boucle]->primary)) {
2092
+            $primary = $p->boucles[$p->id_boucle]->primary;
2093
+            if (!strpos($primary, ',')) {
2094
+                $id = champ_sql($primary, $p);
2095
+                $_contexte[] = "'$primary'=>" . $id;
2096
+                $_contexte[] = "'id'=>" . $id;
2097
+            }
2098
+        }
2099
+        $_contexte[] = "'recurs'=>(++\$recurs)";
2100
+        $connect = '';
2101
+        if (isset($p->boucles[$p->id_boucle])) {
2102
+            $connect = $p->boucles[$p->id_boucle]->sql_serveur;
2103
+        }
2104
+
2105
+        $_options = memoriser_contexte_compil($p);
2106
+        $_options = "'compil'=>array($_options), 'trim'=>true";
2107
+        if (isset($_contexte['ajax'])) {
2108
+            $_options .= ', ' . preg_replace(',=>(.*)$,ims', '=> ($v=(\\1))?$v:true', $_contexte['ajax']);
2109
+            unset($_contexte['ajax']);
2110
+        }
2111
+
2112
+        $_l = 'array(' . join(",\n\t", $_contexte) . ')';
2113
+        if ($flag_env) {
2114
+            $_l = "array_merge(\$Pile[0],$_l)";
2115
+        }
2116
+
2117
+        $page = sprintf(CODE_RECUPERER_FOND, $nom, $_l, $_options, _q($connect));
2118
+
2119
+        $p->code = "\n\t(((\$recurs=(isset(\$Pile[0]['recurs'])?\$Pile[0]['recurs']:0))>=5)? '' :\n\t$page)\n";
2120
+
2121
+        $p->interdire_scripts = false; // securite assuree par le squelette
2122
+    }
2123
+
2124
+    return $p;
2125 2125
 }
2126 2126
 
2127 2127
 
@@ -2145,21 +2145,21 @@  discard block
 block discarded – undo
2145 2145
  *     Pile complétée par le code à générer
2146 2146
  **/
2147 2147
 function balise_SET_dist($p) {
2148
-	$_nom = interprete_argument_balise(1, $p);
2149
-	$_val = interprete_argument_balise(2, $p);
2148
+    $_nom = interprete_argument_balise(1, $p);
2149
+    $_val = interprete_argument_balise(2, $p);
2150 2150
 
2151
-	if (!$_nom or !$_val) {
2152
-		$err_b_s_a = ['zbug_balise_sans_argument', ['balise' => 'SET']];
2153
-		erreur_squelette($err_b_s_a, $p);
2154
-	}
2155
-	// affectation $_zzz inutile, mais permet de contourner un bug OpCode cache sous PHP 5.5.4
2156
-	// cf https://bugs.php.net/bug.php?id=65845
2157
-	else {
2158
-		$p->code = "vide(\$Pile['vars'][\$_zzz=(string)$_nom] = $_val)";
2159
-	}
2151
+    if (!$_nom or !$_val) {
2152
+        $err_b_s_a = ['zbug_balise_sans_argument', ['balise' => 'SET']];
2153
+        erreur_squelette($err_b_s_a, $p);
2154
+    }
2155
+    // affectation $_zzz inutile, mais permet de contourner un bug OpCode cache sous PHP 5.5.4
2156
+    // cf https://bugs.php.net/bug.php?id=65845
2157
+    else {
2158
+        $p->code = "vide(\$Pile['vars'][\$_zzz=(string)$_nom] = $_val)";
2159
+    }
2160 2160
 
2161
-	$p->interdire_scripts = false; // la balise ne renvoie rien
2162
-	return $p;
2161
+    $p->interdire_scripts = false; // la balise ne renvoie rien
2162
+    return $p;
2163 2163
 }
2164 2164
 
2165 2165
 
@@ -2189,12 +2189,12 @@  discard block
 block discarded – undo
2189 2189
  *     Pile complétée par le code à générer
2190 2190
  **/
2191 2191
 function balise_GET_dist($p) {
2192
-	$p->interdire_scripts = false; // le contenu vient de #SET, donc il est de confiance
2193
-	if (function_exists('balise_ENV')) {
2194
-		return balise_ENV($p, '$Pile["vars"]??[]');
2195
-	} else {
2196
-		return balise_ENV_dist($p, '$Pile["vars"]??[]');
2197
-	}
2192
+    $p->interdire_scripts = false; // le contenu vient de #SET, donc il est de confiance
2193
+    if (function_exists('balise_ENV')) {
2194
+        return balise_ENV($p, '$Pile["vars"]??[]');
2195
+    } else {
2196
+        return balise_ENV_dist($p, '$Pile["vars"]??[]');
2197
+    }
2198 2198
 }
2199 2199
 
2200 2200
 
@@ -2217,22 +2217,22 @@  discard block
 block discarded – undo
2217 2217
  *     Pile complétée par le code à générer
2218 2218
  **/
2219 2219
 function balise_DOUBLONS_dist($p) {
2220
-	if ($type = interprete_argument_balise(1, $p)) {
2221
-		if ($famille = interprete_argument_balise(2, $p)) {
2222
-			$type .= '.' . $famille;
2223
-		}
2224
-		$p->code = '(isset($doublons[' . $type . ']) ? $doublons[' . $type . '] : "")';
2225
-		if (!$p->etoile) {
2226
-			$p->code = 'array_filter(array_map("intval",explode(",",'
2227
-				. $p->code . ')))';
2228
-		}
2229
-	} else {
2230
-		$p->code = '$doublons';
2231
-	}
2220
+    if ($type = interprete_argument_balise(1, $p)) {
2221
+        if ($famille = interprete_argument_balise(2, $p)) {
2222
+            $type .= '.' . $famille;
2223
+        }
2224
+        $p->code = '(isset($doublons[' . $type . ']) ? $doublons[' . $type . '] : "")';
2225
+        if (!$p->etoile) {
2226
+            $p->code = 'array_filter(array_map("intval",explode(",",'
2227
+                . $p->code . ')))';
2228
+        }
2229
+    } else {
2230
+        $p->code = '$doublons';
2231
+    }
2232 2232
 
2233
-	$p->interdire_scripts = false;
2233
+    $p->interdire_scripts = false;
2234 2234
 
2235
-	return $p;
2235
+    return $p;
2236 2236
 }
2237 2237
 
2238 2238
 
@@ -2255,18 +2255,18 @@  discard block
 block discarded – undo
2255 2255
  *     Pile complétée par le code à générer
2256 2256
  **/
2257 2257
 function balise_PIPELINE_dist($p) {
2258
-	$_pipe = interprete_argument_balise(1, $p);
2259
-	if (!$_pipe) {
2260
-		$err_b_s_a = ['zbug_balise_sans_argument', ['balise' => 'PIPELINE']];
2261
-		erreur_squelette($err_b_s_a, $p);
2262
-	} else {
2263
-		$_flux = interprete_argument_balise(2, $p);
2264
-		$_flux = $_flux ?: "''";
2265
-		$p->code = "pipeline( $_pipe , $_flux )";
2266
-		$p->interdire_scripts = false;
2267
-	}
2258
+    $_pipe = interprete_argument_balise(1, $p);
2259
+    if (!$_pipe) {
2260
+        $err_b_s_a = ['zbug_balise_sans_argument', ['balise' => 'PIPELINE']];
2261
+        erreur_squelette($err_b_s_a, $p);
2262
+    } else {
2263
+        $_flux = interprete_argument_balise(2, $p);
2264
+        $_flux = $_flux ?: "''";
2265
+        $p->code = "pipeline( $_pipe , $_flux )";
2266
+        $p->interdire_scripts = false;
2267
+    }
2268 2268
 
2269
-	return $p;
2269
+    return $p;
2270 2270
 }
2271 2271
 
2272 2272
 
@@ -2291,10 +2291,10 @@  discard block
 block discarded – undo
2291 2291
  *     Pile complétée par le code à générer
2292 2292
  **/
2293 2293
 function balise_EDIT_dist($p) {
2294
-	$p->code = "''";
2295
-	$p->interdire_scripts = false;
2294
+    $p->code = "''";
2295
+    $p->interdire_scripts = false;
2296 2296
 
2297
-	return $p;
2297
+    return $p;
2298 2298
 }
2299 2299
 
2300 2300
 
@@ -2317,11 +2317,11 @@  discard block
 block discarded – undo
2317 2317
  *     Pile complétée par le code à générer
2318 2318
  **/
2319 2319
 function balise_TOTAL_UNIQUE_dist($p) {
2320
-	$_famille = interprete_argument_balise(1, $p);
2321
-	$_famille = $_famille ?: "''";
2322
-	$p->code = "unique('', $_famille, true)";
2320
+    $_famille = interprete_argument_balise(1, $p);
2321
+    $_famille = $_famille ?: "''";
2322
+    $p->code = "unique('', $_famille, true)";
2323 2323
 
2324
-	return $p;
2324
+    return $p;
2325 2325
 }
2326 2326
 
2327 2327
 /**
@@ -2344,19 +2344,19 @@  discard block
 block discarded – undo
2344 2344
  *     Pile complétée par le code à générer
2345 2345
  **/
2346 2346
 function balise_ARRAY_dist($p) {
2347
-	$_code = [];
2348
-	$n = 1;
2349
-	do {
2350
-		$_key = interprete_argument_balise($n++, $p);
2351
-		$_val = interprete_argument_balise($n++, $p);
2352
-		if ($_key and $_val) {
2353
-			$_code[] = "$_key => $_val";
2354
-		}
2355
-	} while ($_key && $_val);
2356
-	$p->code = 'array(' . join(', ', $_code) . ')';
2357
-	$p->interdire_scripts = false;
2347
+    $_code = [];
2348
+    $n = 1;
2349
+    do {
2350
+        $_key = interprete_argument_balise($n++, $p);
2351
+        $_val = interprete_argument_balise($n++, $p);
2352
+        if ($_key and $_val) {
2353
+            $_code[] = "$_key => $_val";
2354
+        }
2355
+    } while ($_key && $_val);
2356
+    $p->code = 'array(' . join(', ', $_code) . ')';
2357
+    $p->interdire_scripts = false;
2358 2358
 
2359
-	return $p;
2359
+    return $p;
2360 2360
 }
2361 2361
 
2362 2362
 /**
@@ -2375,15 +2375,15 @@  discard block
 block discarded – undo
2375 2375
  *     Pile complétée par le code à générer
2376 2376
  */
2377 2377
 function balise_LISTE_dist($p) {
2378
-	$_code = [];
2379
-	$n = 1;
2380
-	while ($_val = interprete_argument_balise($n++, $p)) {
2381
-		$_code[] = $_val;
2382
-	}
2383
-	$p->code = 'array(' . join(', ', $_code) . ')';
2384
-	$p->interdire_scripts = false;
2378
+    $_code = [];
2379
+    $n = 1;
2380
+    while ($_val = interprete_argument_balise($n++, $p)) {
2381
+        $_code[] = $_val;
2382
+    }
2383
+    $p->code = 'array(' . join(', ', $_code) . ')';
2384
+    $p->interdire_scripts = false;
2385 2385
 
2386
-	return $p;
2386
+    return $p;
2387 2387
 }
2388 2388
 
2389 2389
 
@@ -2417,21 +2417,21 @@  discard block
 block discarded – undo
2417 2417
  *     Pile complétée par le code à générer
2418 2418
  **/
2419 2419
 function balise_AUTORISER_dist($p) {
2420
-	$_code = [];
2421
-	$p->descr['session'] = true; // faire un cache par session
2420
+    $_code = [];
2421
+    $p->descr['session'] = true; // faire un cache par session
2422 2422
 
2423
-	$n = 1;
2424
-	while ($_v = interprete_argument_balise($n++, $p)) {
2425
-		$_code[] = $_v;
2426
-	}
2423
+    $n = 1;
2424
+    while ($_v = interprete_argument_balise($n++, $p)) {
2425
+        $_code[] = $_v;
2426
+    }
2427 2427
 
2428
-	$p->code = '((function_exists("autoriser")||include_spip("inc/autoriser"))&&autoriser(' . join(
2429
-		', ',
2430
-		$_code
2431
-	) . ')?" ":"")';
2432
-	$p->interdire_scripts = false;
2428
+    $p->code = '((function_exists("autoriser")||include_spip("inc/autoriser"))&&autoriser(' . join(
2429
+        ', ',
2430
+        $_code
2431
+    ) . ')?" ":"")';
2432
+    $p->interdire_scripts = false;
2433 2433
 
2434
-	return $p;
2434
+    return $p;
2435 2435
 }
2436 2436
 
2437 2437
 
@@ -2455,15 +2455,15 @@  discard block
 block discarded – undo
2455 2455
  *     Pile complétée par le code à générer
2456 2456
  **/
2457 2457
 function balise_PLUGIN_dist($p) {
2458
-	$plugin = interprete_argument_balise(1, $p);
2459
-	$plugin = isset($plugin) ? str_replace('\'', '"', $plugin) : '""';
2460
-	$type_info = interprete_argument_balise(2, $p);
2461
-	$type_info = isset($type_info) ? str_replace('\'', '"', $type_info) : '"est_actif"';
2458
+    $plugin = interprete_argument_balise(1, $p);
2459
+    $plugin = isset($plugin) ? str_replace('\'', '"', $plugin) : '""';
2460
+    $type_info = interprete_argument_balise(2, $p);
2461
+    $type_info = isset($type_info) ? str_replace('\'', '"', $type_info) : '"est_actif"';
2462 2462
 
2463
-	$f = chercher_filtre('info_plugin');
2464
-	$p->code = $f . '(' . $plugin . ', ' . $type_info . ')';
2463
+    $f = chercher_filtre('info_plugin');
2464
+    $p->code = $f . '(' . $plugin . ', ' . $type_info . ')';
2465 2465
 
2466
-	return $p;
2466
+    return $p;
2467 2467
 }
2468 2468
 
2469 2469
 /**
@@ -2484,9 +2484,9 @@  discard block
 block discarded – undo
2484 2484
  *     Pile complétée par le code à générer
2485 2485
  **/
2486 2486
 function balise_AIDER_dist($p) {
2487
-	$_motif = interprete_argument_balise(1, $p);
2488
-	$p->code = "((\$aider=charger_fonction('aide','inc',true))?\$aider($_motif):'')";
2489
-	return $p;
2487
+    $_motif = interprete_argument_balise(1, $p);
2488
+    $p->code = "((\$aider=charger_fonction('aide','inc',true))?\$aider($_motif):'')";
2489
+    return $p;
2490 2490
 }
2491 2491
 
2492 2492
 /**
@@ -2512,16 +2512,16 @@  discard block
 block discarded – undo
2512 2512
  *     Pile complétée par le code à générer
2513 2513
  **/
2514 2514
 function balise_ACTION_FORMULAIRE($p) {
2515
-	if (!$_url = interprete_argument_balise(1, $p)) {
2516
-		$_url = "(\$Pile[0]['action'] ?? '')";
2517
-	}
2518
-	if (!$_form = interprete_argument_balise(2, $p)) {
2519
-		$_form = "(\$Pile[0]['form'] ?? '')";
2520
-	}
2521
-
2522
-	// envoyer le nom du formulaire que l'on traite
2523
-	// transmettre les eventuels args de la balise formulaire
2524
-	$p->code = "	'<span class=\"form-hidden\">' .
2515
+    if (!$_url = interprete_argument_balise(1, $p)) {
2516
+        $_url = "(\$Pile[0]['action'] ?? '')";
2517
+    }
2518
+    if (!$_form = interprete_argument_balise(2, $p)) {
2519
+        $_form = "(\$Pile[0]['form'] ?? '')";
2520
+    }
2521
+
2522
+    // envoyer le nom du formulaire que l'on traite
2523
+    // transmettre les eventuels args de la balise formulaire
2524
+    $p->code = "	'<span class=\"form-hidden\">' .
2525 2525
 	form_hidden($_url) .
2526 2526
 	'<input name=\'formulaire_action\' type=\'hidden\'
2527 2527
 		value=\'' . $_form . '\' />' .
@@ -2532,9 +2532,9 @@  discard block
 block discarded – undo
2532 2532
 	(\$Pile[0]['_hidden'] ?? '') .
2533 2533
 	'</span>'";
2534 2534
 
2535
-	$p->interdire_scripts = false;
2535
+    $p->interdire_scripts = false;
2536 2536
 
2537
-	return $p;
2537
+    return $p;
2538 2538
 }
2539 2539
 
2540 2540
 
@@ -2575,25 +2575,25 @@  discard block
 block discarded – undo
2575 2575
  */
2576 2576
 function balise_BOUTON_ACTION_dist($p) {
2577 2577
 
2578
-	$args = [];
2579
-	for ($k = 1; $k <= 6; $k++) {
2580
-		$_a = interprete_argument_balise($k, $p);
2581
-		if (!$_a) {
2582
-			$_a = "''";
2583
-		}
2584
-		$args[] = $_a;
2585
-	}
2586
-	// supprimer les args vides
2587
-	while (end($args) == "''" and count($args) > 2) {
2588
-		array_pop($args);
2589
-	}
2590
-	$args = implode(',', $args);
2578
+    $args = [];
2579
+    for ($k = 1; $k <= 6; $k++) {
2580
+        $_a = interprete_argument_balise($k, $p);
2581
+        if (!$_a) {
2582
+            $_a = "''";
2583
+        }
2584
+        $args[] = $_a;
2585
+    }
2586
+    // supprimer les args vides
2587
+    while (end($args) == "''" and count($args) > 2) {
2588
+        array_pop($args);
2589
+    }
2590
+    $args = implode(',', $args);
2591 2591
 
2592
-	$bouton_action = chercher_filtre('bouton_action');
2593
-	$p->code = "$bouton_action($args)";
2594
-	$p->interdire_scripts = false;
2592
+    $bouton_action = chercher_filtre('bouton_action');
2593
+    $p->code = "$bouton_action($args)";
2594
+    $p->interdire_scripts = false;
2595 2595
 
2596
-	return $p;
2596
+    return $p;
2597 2597
 }
2598 2598
 
2599 2599
 
@@ -2612,10 +2612,10 @@  discard block
 block discarded – undo
2612 2612
  *     Pile complétée par le code à générer
2613 2613
  */
2614 2614
 function balise_SLOGAN_SITE_SPIP_dist($p) {
2615
-	$p->code = "\$GLOBALS['meta']['slogan_site']";
2615
+    $p->code = "\$GLOBALS['meta']['slogan_site']";
2616 2616
 
2617
-	#$p->interdire_scripts = true;
2618
-	return $p;
2617
+    #$p->interdire_scripts = true;
2618
+    return $p;
2619 2619
 }
2620 2620
 
2621 2621
 
@@ -2639,10 +2639,10 @@  discard block
 block discarded – undo
2639 2639
  *     Pile complétée par le code à générer
2640 2640
  */
2641 2641
 function balise_HTML5_dist($p) {
2642
-	$p->code = html5_permis() ? "' '" : "''";
2643
-	$p->interdire_scripts = false;
2642
+    $p->code = html5_permis() ? "' '" : "''";
2643
+    $p->interdire_scripts = false;
2644 2644
 
2645
-	return $p;
2645
+    return $p;
2646 2646
 }
2647 2647
 
2648 2648
 
@@ -2668,58 +2668,58 @@  discard block
 block discarded – undo
2668 2668
  *     Pile complétée par le code à générer
2669 2669
  */
2670 2670
 function balise_TRI_dist($p, $liste = 'true') {
2671
-	$b = index_boucle_mere($p);
2672
-	// s'il n'y a pas de nom de boucle, on ne peut pas trier
2673
-	if ($b === '') {
2674
-		$msg = ['zbug_champ_hors_boucle', ['champ' => zbug_presenter_champ($p)]];
2675
-		erreur_squelette($msg, $p);
2676
-		$p->code = "''";
2671
+    $b = index_boucle_mere($p);
2672
+    // s'il n'y a pas de nom de boucle, on ne peut pas trier
2673
+    if ($b === '') {
2674
+        $msg = ['zbug_champ_hors_boucle', ['champ' => zbug_presenter_champ($p)]];
2675
+        erreur_squelette($msg, $p);
2676
+        $p->code = "''";
2677 2677
 
2678
-		return $p;
2679
-	}
2680
-	$boucle = $p->boucles[$b];
2678
+        return $p;
2679
+    }
2680
+    $boucle = $p->boucles[$b];
2681 2681
 
2682
-	// s'il n'y a pas de tri_champ, c'est qu'on se trouve
2683
-	// dans un boucle recursive ou qu'on a oublie le critere {tri}
2684
-	if (!isset($boucle->modificateur['tri_champ'])) {
2685
-		$msg = ['zbug_champ_hors_critere', [
2686
-			'champ' => zbug_presenter_champ($p),
2687
-			'critere' => 'tri'
2688
-		]];
2689
-		erreur_squelette($msg, $p);
2690
-		$p->code = "''";
2682
+    // s'il n'y a pas de tri_champ, c'est qu'on se trouve
2683
+    // dans un boucle recursive ou qu'on a oublie le critere {tri}
2684
+    if (!isset($boucle->modificateur['tri_champ'])) {
2685
+        $msg = ['zbug_champ_hors_critere', [
2686
+            'champ' => zbug_presenter_champ($p),
2687
+            'critere' => 'tri'
2688
+        ]];
2689
+        erreur_squelette($msg, $p);
2690
+        $p->code = "''";
2691 2691
 
2692
-		return $p;
2693
-	}
2692
+        return $p;
2693
+    }
2694 2694
 
2695
-	// Différentes infos relatives au tri présentes dans les modificateurs
2696
-	$_tri_nom = $boucle->modificateur['tri_nom'] ; // nom du paramètre définissant le tri
2697
-	$_tri_champ = $boucle->modificateur['tri_champ']; // champ actuel utilisé le tri
2698
-	$_tri_sens = $boucle->modificateur['tri_sens']; // sens de tri actuel
2699
-	$_tri_liste_sens_defaut = $boucle->modificateur['tri_liste_sens_defaut']; // sens par défaut pour chaque champ
2695
+    // Différentes infos relatives au tri présentes dans les modificateurs
2696
+    $_tri_nom = $boucle->modificateur['tri_nom'] ; // nom du paramètre définissant le tri
2697
+    $_tri_champ = $boucle->modificateur['tri_champ']; // champ actuel utilisé le tri
2698
+    $_tri_sens = $boucle->modificateur['tri_sens']; // sens de tri actuel
2699
+    $_tri_liste_sens_defaut = $boucle->modificateur['tri_liste_sens_defaut']; // sens par défaut pour chaque champ
2700 2700
 
2701
-	$_champ_ou_sens = interprete_argument_balise(1, $p);
2702
-	// si pas de champ, renvoyer le critère de tri actuel
2703
-	if (!$_champ_ou_sens) {
2704
-		$p->code = $_tri_champ;
2701
+    $_champ_ou_sens = interprete_argument_balise(1, $p);
2702
+    // si pas de champ, renvoyer le critère de tri actuel
2703
+    if (!$_champ_ou_sens) {
2704
+        $p->code = $_tri_champ;
2705 2705
 
2706
-		return $p;
2707
-	}
2708
-	// forcer la jointure si besoin, et si le champ est statique
2709
-	if (preg_match(",^'([\w.]+)'$,i", $_champ_ou_sens, $m)) {
2710
-		index_pile($b, $m[1], $p->boucles, '', null, true, false);
2711
-	}
2706
+        return $p;
2707
+    }
2708
+    // forcer la jointure si besoin, et si le champ est statique
2709
+    if (preg_match(",^'([\w.]+)'$,i", $_champ_ou_sens, $m)) {
2710
+        index_pile($b, $m[1], $p->boucles, '', null, true, false);
2711
+    }
2712 2712
 
2713
-	$_libelle = interprete_argument_balise(2, $p);
2714
-	$_libelle = $_libelle ?: $_champ_ou_sens;
2713
+    $_libelle = interprete_argument_balise(2, $p);
2714
+    $_libelle = $_libelle ?: $_champ_ou_sens;
2715 2715
 
2716
-	$_class = interprete_argument_balise(3, $p) ?? "''";
2716
+    $_class = interprete_argument_balise(3, $p) ?? "''";
2717 2717
 
2718
-	$p->code = "calculer_balise_tri($_champ_ou_sens, $_libelle, $_class, $_tri_nom, $_tri_champ, $_tri_sens, $_tri_liste_sens_defaut)";
2718
+    $p->code = "calculer_balise_tri($_champ_ou_sens, $_libelle, $_class, $_tri_nom, $_tri_champ, $_tri_sens, $_tri_liste_sens_defaut)";
2719 2719
 
2720
-	$p->interdire_scripts = false;
2720
+    $p->interdire_scripts = false;
2721 2721
 
2722
-	return $p;
2722
+    return $p;
2723 2723
 }
2724 2724
 
2725 2725
 
@@ -2740,21 +2740,21 @@  discard block
 block discarded – undo
2740 2740
  *     Pile complétée par le code à générer
2741 2741
  */
2742 2742
 function balise_SAUTER_dist($p) {
2743
-	$id_boucle = $p->id_boucle;
2743
+    $id_boucle = $p->id_boucle;
2744 2744
 
2745
-	if (empty($p->boucles[$id_boucle])) {
2746
-		$msg = ['zbug_champ_hors_boucle', ['champ' => '#SAUTER']];
2747
-		erreur_squelette($msg, $p);
2748
-	} else {
2749
-		$_saut = interprete_argument_balise(1, $p);
2750
-		$_compteur = "\$Numrows['$id_boucle']['compteur_boucle']";
2751
-		$_total = "(\$Numrows['$id_boucle']['total'] ?? null)";
2745
+    if (empty($p->boucles[$id_boucle])) {
2746
+        $msg = ['zbug_champ_hors_boucle', ['champ' => '#SAUTER']];
2747
+        erreur_squelette($msg, $p);
2748
+    } else {
2749
+        $_saut = interprete_argument_balise(1, $p);
2750
+        $_compteur = "\$Numrows['$id_boucle']['compteur_boucle']";
2751
+        $_total = "(\$Numrows['$id_boucle']['total'] ?? null)";
2752 2752
 
2753
-		$p->code = "vide($_compteur=\$iter->skip($_saut,$_total))";
2754
-	}
2755
-	$p->interdire_scripts = false;
2753
+        $p->code = "vide($_compteur=\$iter->skip($_saut,$_total))";
2754
+    }
2755
+    $p->interdire_scripts = false;
2756 2756
 
2757
-	return $p;
2757
+    return $p;
2758 2758
 }
2759 2759
 
2760 2760
 
@@ -2776,22 +2776,22 @@  discard block
 block discarded – undo
2776 2776
  *     Pile complétée par le code à générer
2777 2777
  */
2778 2778
 function balise_PUBLIE_dist($p) {
2779
-	if (!$_type = interprete_argument_balise(1, $p)) {
2780
-		$_type = _q($p->type_requete);
2781
-		$_id = champ_sql($p->boucles[$p->id_boucle]->primary, $p);
2782
-	} else {
2783
-		$_id = interprete_argument_balise(2, $p);
2784
-	}
2779
+    if (!$_type = interprete_argument_balise(1, $p)) {
2780
+        $_type = _q($p->type_requete);
2781
+        $_id = champ_sql($p->boucles[$p->id_boucle]->primary, $p);
2782
+    } else {
2783
+        $_id = interprete_argument_balise(2, $p);
2784
+    }
2785 2785
 
2786
-	$connect = '';
2787
-	if (isset($p->boucles[$p->id_boucle])) {
2788
-		$connect = $p->boucles[$p->id_boucle]->sql_serveur;
2789
-	}
2786
+    $connect = '';
2787
+    if (isset($p->boucles[$p->id_boucle])) {
2788
+        $connect = $p->boucles[$p->id_boucle]->sql_serveur;
2789
+    }
2790 2790
 
2791
-	$p->code = '(objet_test_si_publie(' . $_type . ',intval(' . $_id . '),' . _q($connect) . ")?' ':'')";
2792
-	$p->interdire_scripts = false;
2791
+    $p->code = '(objet_test_si_publie(' . $_type . ',intval(' . $_id . '),' . _q($connect) . ")?' ':'')";
2792
+    $p->interdire_scripts = false;
2793 2793
 
2794
-	return $p;
2794
+    return $p;
2795 2795
 }
2796 2796
 
2797 2797
 /**
@@ -2820,12 +2820,12 @@  discard block
 block discarded – undo
2820 2820
  *     Pile complétée par le code à générer
2821 2821
  */
2822 2822
 function balise_PRODUIRE_dist($p) {
2823
-	$balise_inclure = charger_fonction('INCLURE', 'balise');
2824
-	$p = $balise_inclure($p);
2823
+    $balise_inclure = charger_fonction('INCLURE', 'balise');
2824
+    $p = $balise_inclure($p);
2825 2825
 
2826
-	$p->code = str_replace('recuperer_fond(', 'produire_fond_statique(', $p->code);
2826
+    $p->code = str_replace('recuperer_fond(', 'produire_fond_statique(', $p->code);
2827 2827
 
2828
-	return $p;
2828
+    return $p;
2829 2829
 }
2830 2830
 
2831 2831
 /**
@@ -2844,13 +2844,13 @@  discard block
 block discarded – undo
2844 2844
  *     Pile complétée par le code à générer
2845 2845
  */
2846 2846
 function balise_LARGEUR_ECRAN_dist($p) {
2847
-	$_class = interprete_argument_balise(1, $p);
2848
-	if (!$_class) {
2849
-		$_class = 'null';
2850
-	}
2851
-	$p->code = "(is_string($_class)?vide(\$GLOBALS['largeur_ecran']=$_class):(isset(\$GLOBALS['largeur_ecran'])?\$GLOBALS['largeur_ecran']:''))";
2847
+    $_class = interprete_argument_balise(1, $p);
2848
+    if (!$_class) {
2849
+        $_class = 'null';
2850
+    }
2851
+    $p->code = "(is_string($_class)?vide(\$GLOBALS['largeur_ecran']=$_class):(isset(\$GLOBALS['largeur_ecran'])?\$GLOBALS['largeur_ecran']:''))";
2852 2852
 
2853
-	return $p;
2853
+    return $p;
2854 2854
 }
2855 2855
 
2856 2856
 
@@ -2866,14 +2866,14 @@  discard block
 block discarded – undo
2866 2866
  *     Pile complétée par le code à générer
2867 2867
  **/
2868 2868
 function balise_CONST_dist($p) {
2869
-	$_const = interprete_argument_balise(1, $p);
2870
-	if (!strlen($_const ?? '')) {
2871
-		$p->code = "''";
2872
-	}
2873
-	else {
2874
-		$p->code = "(defined($_const)?constant($_const):'')";
2875
-	}
2876
-	$p->interdire_scripts = false;
2877
-
2878
-	return $p;
2869
+    $_const = interprete_argument_balise(1, $p);
2870
+    if (!strlen($_const ?? '')) {
2871
+        $p->code = "''";
2872
+    }
2873
+    else {
2874
+        $p->code = "(defined($_const)?constant($_const):'')";
2875
+    }
2876
+    $p->interdire_scripts = false;
2877
+
2878
+    return $p;
2879 2879
 }
Please login to merge, or discard this patch.