[SPIP] ~maj v2.1.25-->2.1.26
[velocampus/web/www.git] / www / plugins / auto / couteau_suisse / couteau_suisse / outils / trousse_balises_fonctions.php
1 <?php
2
3 // La balise #CHR, equivalent a #EVAL{"chr(XX)"} ou #VAL{XX}|chr
4 function balise_CHR_dist($p) {
5 if (($v = interprete_argument_balise(1,$p))!==NULL){
6 $p->code = "chr(intval($v))";
7 $p->type = 'php';
8 }
9 return $p;
10 }
11
12 // La balise #BOLO
13 // inspiree des travaux de Cyril Marion : http://www.spip-contrib.net/Balise-BOLO
14 function balise_BOLO_dist($p) {
15 $bolo = "'Nam id pede vel ipsum pulvinar pretium. Mauris id nunc. Vivamus lorem. Proin auctor rutrum ligula. Sed suscipit justo et nunc. Praesent ut leo quis neque luctus eleifend. Vestibulum nec nisl. Proin tincidunt. Sed enim. Curabitur posuere purus a quam. Aenean odio wisi, vestibulum sed, accumsan vitae, rhoncus suscipit, lectus. Sed a lacus. Aenean erat odio, molestie a, lobortis ut, blandit eu, arcu. Donec mauris. Sed sed libero ac sem venenatis sollicitudin. Donec arcu est, volutpat id, dictum a, molestie eu, justo. Nam aliquet faucibus quam. Pellentesque cursus, neque eu placerat facilisis, metus ante fringilla mi, vitae vestibulum nulla turpis quis orci. Quisque nec turpis vel justo volutpat venenatis. Mauris fermentum. Nulla blandit, augue a laoreet gravida, velit lectus molestie wisi, eget volutpat velit eros sit amet tortor. Suspendisse sollicitudin lectus. Nunc velit mauris, ultrices vel, vestibulum et, rhoncus sed, massa. Curabitur luctus erat ac dolor. In pulvinar posuere sapien. Suspendisse dapibus elementum quam. Ut nec diam. Nulla pulvinar. Nam id pede vel ipsum pulvinar pretium. Mauris id nunc. Vivamus lorem. Proin auctor rutrum ligula. Sed suscipit justo et nunc. Praesent ut leo quis neque luctus eleifend. Vestibulum nec nisl. Proin tincidunt. Sed enim. Curabitur posuere purus a quam. Aenean odio wisi, vestibulum sed, accumsan vitae, rhoncus suscipit, lectus. Sed a lacus. Aenean erat odio, molestie a, lobortis ut, blandit eu, arcu. Donec mauris. Sed sed libero ac sem venenatis sollicitudin. Donec arcu est, volutpat id, dictum a, molestie eu, justo. Nam aliquet faucibus quam. Pellentesque cursus, neque eu placerat facilisis, metus ante fringilla mi, vitae vestibulum nulla turpis quis orci. Quisque nec turpis vel justo volutpat venenatis. Mauris fermentum. Nulla blandit, augue a laoreet gravida, velit lectus molestie wisi, eget volutpat velit eros sit amet tortor. Suspendisse sollicitudin lectus. Nunc velit mauris, ultrices vel, vestibulum et, rhoncus sed, massa. Curabitur luctus erat ac dolor. In pulvinar posuere sapien. Suspendisse dapibus elementum quam. Ut nec diam. Nulla pulvinar. '";
16 if(($couper = interprete_argument_balise(1,$p)) !== NULL)
17 $p->code = "couper($bolo, $couper)";
18 else
19 $p->code = $bolo;
20 $p->interdire_scripts = false;
21 return $p;
22 }
23
24 // La balise #MAINTENANT
25 function balise_MAINTENANT_dist($p) {
26 $format = sinon(interprete_argument_balise(1,$p), "'Y-m-d H:i:s'");
27 $p->code = "date($format)";
28 $p->interdire_scripts = false;
29 return $p;
30 }
31
32 // La balise #NOW
33 function balise_NOW_dist($p) {
34 return balise_MAINTENANT_dist($p);
35 }
36
37
38 function balise_LESMOTS_dist($p){
39 $i_boucle = $p->nom_boucle ? $p->nom_boucle : $p->id_boucle;
40 // #LESMOTS hors boucle ? ne rien faire
41 if (!$type = $p->boucles[$i_boucle]->type_requete) {
42 $p->code = "''";
43 $p->interdire_scripts = false;
44 return $p;
45 }
46
47 // le compilateur 1.9.2 ne calcule pas primary pour les tables secondaires
48 // il peut aussi arriver une table sans primary (par ex: une vue)
49 if (!($primary = $p->boucles[$i_boucle]->primary)) {
50 include_spip('inc/vieilles_defs'); # 1.9.2 pour trouver_def_table
51 list($nom, $desc) = trouver_def_table(
52 $p->boucles[$i_boucle]->type_requete, $p->boucles[$i_boucle]);
53 $primary = $desc['key']['PRIMARY KEY'];
54 }
55 $primary = explode(',',$primary);
56 $id = array();
57 foreach($primary as $key)
58 $id[] = champ_sql(trim($key),$p);
59 $primary = implode(".'-'.",$id);
60 $p->code = "classe_boucle_crayon('"
61 . $type
62 ."',"
63 .sinon(interprete_argument_balise(1,$p),"''")
64 .","
65 . $primary
66 .").' '";
67 $p->interdire_scripts = false;
68 return $p;
69
70 // Cherche le champ 'lesmots' dans la pile
71 $_lesmots = champ_sql('lesmots', $p);
72 // Si le champ n'existe pas (cas de spip_articles), on applique
73 // le fond les_mots.html en passant id_article dans le contexte;
74 // dans le cas contraire on prend le champ SQL 'lesmots'
75 if ($_lesmots AND $_lesmots != '$Pile[0][\'lesmots\']') {
76 $p->code = "safehtml($_lesmots)";
77 // $p->interdire_scripts = true;
78 } else {
79 if ($cle = $p->boucles[$p->id_boucle]->primary)
80 $id = champ_sql($primary, $p);
81 $p->code = "recuperer_fond('fonds/lesmots', array($cle => $id))";
82 // securite imposee par recuperer_fond()
83 $p->interdire_scripts = false;
84 }
85 return $p;
86 }
87
88 ?>