source: spip-zone/_squelettes_/oswd/3626_multiflex-3/squelette_multiflex_fonctions.php @ 86182

Last change on this file since 86182 was 86182, checked in by cedric@…, 5 years ago

Petouilles et compat 3.1 : utiliser des input type="color" cela permet d'avoir un color picker natif sur les navigateurs modernes, compat 3.1 (correction prop/attr dans le JS), securite

File size: 4.5 KB
Line 
1<?php
2
3if (!defined("_ECRIRE_INC_VERSION")) return;
4
5/*
6 * #K_RVB{240,240,240,1,1,0.7}
7 * renvoie : rvb{240,240,237}
8 * Applique un coefficient
9 * sur une couleur rvb
10 *
11 */ 
12function balise_KRVB($p){
13        $r = interprete_argument_balise(1, $p);
14        $v = interprete_argument_balise(2, $p);
15        $b = interprete_argument_balise(3, $p);
16        $kr = interprete_argument_balise(4, $p);
17        $kv = interprete_argument_balise(5, $p);
18        $kb = interprete_argument_balise(6, $p);
19       
20        $p->code = "calculer_balise_KRVB($r, $v, $b, $kr, $kv, $kb)";
21        return $p;
22}
23
24function calculer_balise_KRVB($r,$v,$b,$kr,$kv,$kb){
25        include_spip('inc/filtres_images');
26       
27        if ($r == 255 && $v == 255 && $b == 255) return '#ffffff';
28        if ($r == 0 && $v == 0 && $b == 0) return '#000000';
29       
30        if ($kr >  1) $kr =  1;
31        if ($kr < -1) $kr = -1;
32        if ($kv >  1) $kv =  1;
33        if ($kv < -1) $kv = -1;
34        if ($kb >  1) $kb =  1;
35        if ($kb < -1) $kb = -1;
36                       
37        $r = ($kr>=0) ? $r + $kr * (255-$r) : $r + $kr * $r;
38        $v = ($kv>=0) ? $v + $kv * (255-$v) : $v + $kv * $v;
39        $b = ($kv>=0) ? $b + $kb * (255-$b) : $b + $kb * $b;
40       
41        if ($r>255) $r=255;
42        if ($v>255) $v=255;
43        if ($b>255) $b=255;
44       
45        if ($r<0) $r=0;
46        if ($v<0) $v=0;
47        if ($b<0) $b=0;
48       
49       
50        return '#'.couleur_dec_to_hex(round($r), round($v), round($b));
51}
52
53
54
55//http://contrib.spip.net/balise-TITRE-PARENT
56include_spip('public/balises');
57
58// Le filtre [(#ID_RUBRIQUE|titre_parent)]
59if (!function_exists('calcul_titre_parent')){
60        function calcul_titre_parent($id_rubrique) {
61                if(!($id_rubrique = intval($id_rubrique))) return '';
62                return sql_getfetsel('titre','spip_rubriques','id_rubrique='.$id_rubrique);
63        }
64}
65
66// La balise
67if (!function_exists('balise_TITRE_PARENT_dist')){
68        function balise_TITRE_PARENT_dist($p) {
69                $id_rubrique = champ_sql('id_rubrique', $p);
70                $p->code = "calcul_titre_parent(".$id_rubrique.")";
71                return $p;
72        }
73}
74
75// Positionner les filtres standards en recopiant ceux de #TITRE
76// attention, ca ne positionne pas la langue_typo (mais tant pis)
77include_spip('public/interfaces');
78global $table_des_traitements;
79if (!isset($table_des_traitements['TITRE_PARENT'])) {
80        $table_des_traitements['TITRE_PARENT'] = $table_des_traitements['TITRE'];
81}
82
83
84
85
86/* balises pour doublons entre #inclure (idee _renato_) */
87
88/*
89 *
90 *  Gestion des doublons entre #inclure
91 *
92 *  B.html , C.html :
93 *  --------------
94 *  #LOAD_DOUBLONS
95 *  <BOUCLE />
96 *  #SAVE DOUBLONS
97 *
98 *
99 *  A.html :
100 *  --------------
101 *  [(#INCLURE{B}{_unique = #HASH_DOUBLONS})]
102 *  [(#INCLURE{B}{_unique = #HASH_DOUBLONS})]
103 *  [(#INCLURE{C}{_unique = #HASH_DOUBLONS})]
104 *
105 *
106 *
107 *  Un peu plus complexe (plusieurs valeurs de doublons)
108 *
109 *  B.html, C.html :
110 *  ----------------
111 *  [(#SET{doublons, [(#ENV{_doublons}|sinon{#DOUBLON_ALEA})]})]
112 *  #LOAD_DOUBLONS
113 *  <BOUCLE(){doublons = #GET{doublons}} />
114 *  #SAVE DOUBLONS
115 *
116 *  A.html :
117 *  ----------------
118 *  [(#INCLURE{B}{_unique = #HASH_DOUBLONS})]
119 *  [(#INCLURE{B}{_unique = #HASH_DOUBLONS})] // affiche la même chose car doublon aleatoire
120 *
121 *  [(#INCLURE{B}{_unique = #HASH_DOUBLONS}{_doublons = toto})]
122 *  [(#INCLURE{B}{_unique = #HASH_DOUBLONS}{_doublons = toto})] // suite
123 *  [(#INCLURE{B}{_unique = #HASH_DOUBLONS}{_doublons = plouf})]
124 *
125 *  [(#INCLURE{C}{_unique = #HASH_DOUBLONS}{_doublons = plouf})]  // suite de plouf
126 *
127 */
128
129
130/*
131 * Sauvegarde la table des doublons dans une globale.
132 */
133if (!function_exists('balise_SAVE_DOUBLONS')){
134        function balise_SAVE_DOUBLONS($p) {
135          $p->code = "vide(\$GLOBALS['recherche_doublons'] = \$doublons)";
136
137          return $p; 
138        }
139}
140
141/*
142 * Restaure la globale dans la table des doublons.
143 */
144if (!function_exists('balise_LOAD_DOUBLONS')){
145        function balise_LOAD_DOUBLONS($p) {
146          if(!isset($GLOBALS['recherche_doublons'])) $GLOBALS['recherche_doublons'] = array();
147          $p->code = "vide(\$doublons = \$GLOBALS['recherche_doublons'])";
148
149          return $p; 
150        }
151}
152
153
154/*
155 * Genere un id unique pour le tableau de doublons
156 */ 
157if (!function_exists('balise_HASH_DOUBLONS')){
158        function balise_HASH_DOUBLONS($p) {
159          #$p->code = "md5(serialize(\$GLOBALS['recherche_doublons'])) . vide(spip_log('#GET_DOUBLONS : ' . serialize(\$GLOBALS['recherche_doublons']) , 'spip_doublons'))";
160          $p->code = "md5(serialize(\$GLOBALS['recherche_doublons']))";
161
162          return $p; 
163        }
164}
165
166
167/*
168 * Genere un id unique pour un doublon
169 */ 
170if (!function_exists('balise_DOUBLON_ALEA')){
171        function balise_DOUBLON_ALEA($p) {
172          $p->code = "calculer_balise_DOUBLON_ALEA()";
173          return $p; 
174        }
175}
176if (!function_exists('calculer_balise_DOUBLON_ALEA')){
177        function calculer_balise_DOUBLON_ALEA(){
178          return substr(rand().rand(),0,8);
179        }
180}
181
182?>
Note: See TracBrowser for help on using the repository browser.