1 | <?php |
---|
2 | // ======================================================================================================================================= |
---|
3 | // Filtre : typo_couleur |
---|
4 | // ======================================================================================================================================= |
---|
5 | // Auteur : Smellup, inspire du filtre original de A. Pierard |
---|
6 | // Fonction : permettant de modifier la couleur du texte ou de l'introduction d'un article |
---|
7 | // Utilisation : |
---|
8 | // - pour le redacteur : [rouge]xxxxxx[/rouge] |
---|
9 | // - pour le webmaster : [(#TEXTE|typo_couleur)] |
---|
10 | // ======================================================================================================================================= |
---|
11 | // |
---|
12 | function typo_couleur($texte) { |
---|
13 | |
---|
14 | // Variables personnalisables par l'utilisateur |
---|
15 | // --> Activation (oui) ou desactivation (non) de la fonction |
---|
16 | $typo_couleur_active = 'oui'; |
---|
17 | // --> Nuances personnalisables par l'utilisateur |
---|
18 | $couleur = array( |
---|
19 | 'noir' => "#000000", |
---|
20 | 'blanc' => "#FFFFFF", |
---|
21 | 'rouge' => "#FF0000", |
---|
22 | 'vert' => "#00FF00", |
---|
23 | 'bleu' => "#0000FF", |
---|
24 | 'jaune' => "#FFFF00", |
---|
25 | 'gris' => "#808080", |
---|
26 | 'marron' => "#800000", |
---|
27 | 'violet' => "#800080", |
---|
28 | 'rose' => "#FFC0CB", |
---|
29 | 'orange' => "#FFA500" |
---|
30 | ); |
---|
31 | |
---|
32 | $recherche = array( |
---|
33 | 'noir' => "/(\[noir\])(.*?)(\[\/noir\])/", |
---|
34 | 'blanc' => "/(\[blanc\])(.*?)(\[\/blanc\])/", |
---|
35 | 'rouge' => "/(\[rouge\])(.*?)(\[\/rouge\])/", |
---|
36 | 'vert' => "/(\[vert\])(.*?)(\[\/vert\])/", |
---|
37 | 'bleu' => "/(\[bleu\])(.*?)(\[\/bleu\])/", |
---|
38 | 'jaune' => "/(\[jaune\])(.*?)(\[\/jaune\])/", |
---|
39 | 'gris' => "/(\[gris\])(.*?)(\[\/gris\])/", |
---|
40 | 'marron' => "/(\[marron\])(.*?)(\[\/marron\])/", |
---|
41 | 'violet' => "/(\[violet\])(.*?)(\[\/violet\])/", |
---|
42 | 'rose' => "/(\[rose\])(.*?)(\[\/rose\])/", |
---|
43 | 'orange' => "/(\[orange\])(.*?)(\[\/orange\])/" |
---|
44 | ); |
---|
45 | |
---|
46 | $remplace = array( |
---|
47 | 'noir' => "<span style=\"color:".$couleur['noir'].";\">\\2</span>", |
---|
48 | 'blanc' => "<span style=\"color:".$couleur['blanc'].";\">\\2</span>", |
---|
49 | 'rouge' => "<span style=\"color:".$couleur['rouge'].";\">\\2</span>", |
---|
50 | 'vert' => "<span style=\"color:".$couleur['vert'].";\">\\2</span>", |
---|
51 | 'bleu' => "<span style=\"color:".$couleur['bleu'].";\">\\2</span>", |
---|
52 | 'jaune' => "<span style=\"color:".$couleur['jaune'].";\">\\2</span>", |
---|
53 | 'gris' => "<span style=\"color:".$couleur['gris'].";\">\\2</span>", |
---|
54 | 'marron' => "<span style=\"color:".$couleur['marron'].";\">\\2</span>", |
---|
55 | 'violet' => "<span style=\"color:".$couleur['violet'].";\">\\2</span>", |
---|
56 | 'rose' => "<span style=\"color:".$couleur['rose'].";\">\\2</span>", |
---|
57 | 'orange' => "<span style=\"color:".$couleur['orange'].";\">\\2</span>" |
---|
58 | ); |
---|
59 | |
---|
60 | $supprime = "\\2"; |
---|
61 | |
---|
62 | |
---|
63 | if ($typo_couleur_active == 'non') { |
---|
64 | $texte = preg_replace($recherche, $supprime, $texte); |
---|
65 | } |
---|
66 | else { |
---|
67 | $texte = preg_replace($recherche, $remplace, $texte); |
---|
68 | } |
---|
69 | return $texte; |
---|
70 | } |
---|
71 | |
---|
72 | // ======================================================================================================================================= |
---|
73 | // Filtre : premier_jour_annee |
---|
74 | // ======================================================================================================================================= |
---|
75 | // Auteur: Smellup |
---|
76 | // Fonction : Retourne la date du premier jour de l'annee passe en argument |
---|
77 | // ======================================================================================================================================= |
---|
78 | // |
---|
79 | function premier_jour_annee($annee) { |
---|
80 | if (!$annee) return; |
---|
81 | |
---|
82 | $jour = date("Y-m-d H:i:s", mktime(0,0,0,1,1,$annee)); |
---|
83 | return $jour; |
---|
84 | } |
---|
85 | // FIN du Filtre : premier_jour_annee |
---|
86 | |
---|
87 | // ======================================================================================================================================= |
---|
88 | // Filtre : dernier_jour_annee |
---|
89 | // ======================================================================================================================================= |
---|
90 | // Auteur: Smellup |
---|
91 | // Fonction : Retourne la date du dernier jour de l'annee passe en argument |
---|
92 | // ======================================================================================================================================= |
---|
93 | // |
---|
94 | function dernier_jour_annee($annee) { |
---|
95 | if (!$annee) return; |
---|
96 | |
---|
97 | $jour = date("Y-m-d H:i:s", mktime(23,59,59,12,31,$annee)); |
---|
98 | return $jour; |
---|
99 | } |
---|
100 | // FIN du Filtre : dernier_jour_annee |
---|
101 | |
---|
102 | // ======================================================================================================================================= |
---|
103 | // Filtre : debut_journee |
---|
104 | // ======================================================================================================================================= |
---|
105 | // Auteur: Smellup |
---|
106 | // Fonction : Retourne la date-heure de debut de la journee passee en argument |
---|
107 | // ======================================================================================================================================= |
---|
108 | // |
---|
109 | function debut_journee($date) { |
---|
110 | if (!$date) return; |
---|
111 | |
---|
112 | $jour = date('d', strtotime($date)); |
---|
113 | $mois = date('m', strtotime($date)); |
---|
114 | $annee = date('Y', strtotime($date)); |
---|
115 | $jour = date("Y-m-d H:i:s", mktime(0,0,0,$mois,$jour,$annee)); |
---|
116 | return $jour; |
---|
117 | } |
---|
118 | // FIN du Filtre : debut_journee |
---|
119 | |
---|
120 | // ======================================================================================================================================= |
---|
121 | // Filtre : fin_mois_precedent |
---|
122 | // ======================================================================================================================================= |
---|
123 | // Auteur: Smellup |
---|
124 | // Fonction : Calcul la date au format demande correspondant au dernier jour du mois precedent celui du timestamp en argument |
---|
125 | // ======================================================================================================================================= |
---|
126 | // |
---|
127 | function fin_mois_precedent($timestamp, $format) { |
---|
128 | if (!$timestamp) return; |
---|
129 | |
---|
130 | $date = mktime(0, 0, 0, date('m', $timestamp), 0, date('Y', $timestamp)); |
---|
131 | return date($format, $date); |
---|
132 | } |
---|
133 | // FIN du Filtre : premier_jour_mois |
---|
134 | |
---|
135 | // ======================================================================================================================================= |
---|
136 | // Filtre : fin_journee |
---|
137 | // ======================================================================================================================================= |
---|
138 | // Auteur: Smellup |
---|
139 | // Fonction : Retourne la date-heure de fin de la journee passee en argument |
---|
140 | // ======================================================================================================================================= |
---|
141 | // |
---|
142 | function fin_journee($date) { |
---|
143 | if (!$date) return; |
---|
144 | |
---|
145 | $jour = date('d', strtotime($date)); |
---|
146 | $mois = date('m', strtotime($date)); |
---|
147 | $annee = date('Y', strtotime($date)); |
---|
148 | $jour = date("Y-m-d H:i:s", mktime(23,59,59,$mois,$jour,$annee)); |
---|
149 | return $jour; |
---|
150 | } |
---|
151 | // FIN du Filtre : fin_journee |
---|
152 | |
---|
153 | // ======================================================================================================================================= |
---|
154 | // Filtre : libelle_statut |
---|
155 | // ======================================================================================================================================= |
---|
156 | // Auteur: Smellup |
---|
157 | // Fonction : Retourne le libelle multilangue du statut d'un auteur |
---|
158 | // ======================================================================================================================================= |
---|
159 | // |
---|
160 | function libelle_statut($statut) { |
---|
161 | return _T('sarkaspip:statut_'.$statut); |
---|
162 | } |
---|
163 | // FIN du Filtre : libelle_statut |
---|
164 | |
---|
165 | // ======================================================================================================================================= |
---|
166 | // Filtre : lister_fonds |
---|
167 | // ======================================================================================================================================= |
---|
168 | // Auteur: Smellup |
---|
169 | // Fonction : Retourne la chaine des options du select de la liste des fonds |
---|
170 | // ======================================================================================================================================= |
---|
171 | // |
---|
172 | function lister_fonds($bidon, $image, $suffixe){ |
---|
173 | if (function_exists('lire_config')) |
---|
174 | $f_selected = lire_config('sarkaspip_styles/fond_'.$image.$suffixe); |
---|
175 | |
---|
176 | $dir = sous_repertoire(_DIR_TMP, 'fonds'); |
---|
177 | $saves = preg_files($dir); |
---|
178 | $options = '<option value="">--</option>'; |
---|
179 | foreach ($saves as $_fichier) { |
---|
180 | $nom = basename($_fichier); |
---|
181 | $selected = ($_fichier == $f_selected) ? ' selected="selected"' : ''; |
---|
182 | $options .= '<option value="' . $_fichier . '"' . $selected . '>' . $nom . '</option>'; |
---|
183 | } |
---|
184 | |
---|
185 | return $options; |
---|
186 | } |
---|
187 | // FIN du Filtre : lister_fonds |
---|
188 | |
---|
189 | // ======================================================================================================================================= |
---|
190 | // Filtre : afaire_liste_par_jalon |
---|
191 | // ======================================================================================================================================= |
---|
192 | // Auteur: Smellup |
---|
193 | // Fonction : Retourne les blocs d'affichage des tickets par jalon dans la page afaire |
---|
194 | // ======================================================================================================================================= |
---|
195 | // |
---|
196 | function afaire_liste_par_jalon($jalons) { |
---|
197 | $page = NULL; |
---|
198 | if (($jalons) && defined('_SARKASPIP_AFAIRE_JALONS_AFFICHES')) { |
---|
199 | $liste = explode(":", $jalons); |
---|
200 | $i =0; |
---|
201 | foreach($liste as $_jalon) { |
---|
202 | $i += 1; |
---|
203 | $page .= recuperer_fond('noisettes/afaire/inc_afaire_jalon', |
---|
204 | array('jalon' => $_jalon, 'ancre' => 'ancre_jalon_'.strval($i))); |
---|
205 | } |
---|
206 | } |
---|
207 | return $page; |
---|
208 | } |
---|
209 | // FIN du Filtre : afaire_liste_par_jalon |
---|
210 | |
---|
211 | // ======================================================================================================================================= |
---|
212 | // Filtre : afaire_tdm_par_jalon |
---|
213 | // ======================================================================================================================================= |
---|
214 | // Auteur: Smellup |
---|
215 | // Fonction : Retourne les blocs d'affichage des tickets par jalon dans la page afaire |
---|
216 | // ======================================================================================================================================= |
---|
217 | // |
---|
218 | function afaire_tdm_par_jalon($jalons) { |
---|
219 | $page = NULL; |
---|
220 | if (($jalons) && defined('_SARKASPIP_AFAIRE_JALONS_AFFICHES')) { |
---|
221 | $liste = explode(":", $jalons); |
---|
222 | $i =0; |
---|
223 | foreach($liste as $_jalon) { |
---|
224 | $i += 1; |
---|
225 | $nb = afaire_compteur_jalon($_jalon); |
---|
226 | $nb_str = ($nb == 0) ? _T('sarkaspip:0_ticket') : (($nb == 1) ? strval($nb).' '._T('sarkaspip:1_ticket') : strval($nb).' '._T('sarkaspip:n_tickets')); |
---|
227 | $page .= '<li><a href="#ancre_jalon_'.strval($i).'" title="'._T('sarkaspip:afaire_aller_jalon').'">' |
---|
228 | ._T('sarkaspip:afaire_colonne_jalon').' « '.$_jalon.' », '.$nb_str |
---|
229 | .'</a></li>'; |
---|
230 | } |
---|
231 | } |
---|
232 | $nb = afaire_compteur_jalon(); |
---|
233 | if ($nb > 0) { |
---|
234 | $nb_str = ($nb == 1) ? strval($nb).' '._T('sarkaspip:1_ticket') : strval($nb).' '._T('sarkaspip:n_tickets'); |
---|
235 | $page .= '<li><a href="#ancre_jalon_non_planifie" title="'._T('sarkaspip:afaire_aller_jalon').'">« ' |
---|
236 | ._T('sarkaspip:afaire_non_planifies').' », '.$nb_str |
---|
237 | .'</a></li>'; |
---|
238 | } |
---|
239 | return $page; |
---|
240 | } |
---|
241 | // FIN du Filtre : afaire_tdm_par_jalon |
---|
242 | |
---|
243 | // ======================================================================================================================================= |
---|
244 | // Filtre : afaire_compteur_jalon |
---|
245 | // ======================================================================================================================================= |
---|
246 | // Auteur: Smellup |
---|
247 | // Fonction : Retourne le nombre de tickets pour le jalon ou pour le jalon et le statut choisis |
---|
248 | // ======================================================================================================================================= |
---|
249 | // |
---|
250 | function afaire_compteur_jalon($jalon='', $statut='') { |
---|
251 | $valeur = 0; |
---|
252 | // Nombre total de tickets pour le jalon |
---|
253 | $select = array('t1.id_ticket'); |
---|
254 | $from = array('spip_tickets AS t1'); |
---|
255 | $where = array('t1.jalon='.sql_quote($jalon)); |
---|
256 | if ($statut) |
---|
257 | $where = array_merge($where, array('t1.statut='.sql_quote($statut))); |
---|
258 | $result = sql_select($select, $from, $where); |
---|
259 | $valeur = sql_count($result); |
---|
260 | return $valeur; |
---|
261 | } |
---|
262 | // FIN du Filtre : afaire_compteur_jalon |
---|
263 | |
---|
264 | // ======================================================================================================================================= |
---|
265 | // Filtre : afaire_avancement_jalon |
---|
266 | // ======================================================================================================================================= |
---|
267 | // Auteur: Smellup |
---|
268 | // Fonction : Retourne le pourcetage de tickets termines sur le nombre de tickets total du jalon |
---|
269 | // ======================================================================================================================================= |
---|
270 | // |
---|
271 | function afaire_avancement_jalon($jalon='') { |
---|
272 | $valeur = 0; |
---|
273 | // Nombre total de tickets pour le jalon |
---|
274 | $select = array('t1.id_ticket'); |
---|
275 | $from = array('spip_tickets AS t1'); |
---|
276 | $where = array('t1.jalon='.sql_quote($jalon)); |
---|
277 | $result = sql_select($select, $from, $where); |
---|
278 | $n1 = sql_count($result); |
---|
279 | // Nombre de tickets termines pour le jalon |
---|
280 | if ($n1 != 0) { |
---|
281 | $where = array_merge($where, array(sql_in('t1.statut', array('resolu','ferme')))); |
---|
282 | $result = sql_select($select, $from, $where); |
---|
283 | $n2 = sql_count($result); |
---|
284 | $valeur = floor($n2*100/$n1); |
---|
285 | } |
---|
286 | return $valeur; |
---|
287 | } |
---|
288 | // FIN du Filtre : afaire_avancement_jalon |
---|
289 | |
---|
290 | // ======================================================================================================================================= |
---|
291 | // Filtre : afaire_ticket_existe |
---|
292 | // ======================================================================================================================================= |
---|
293 | // Auteur: Smellup |
---|
294 | // Fonction : Retourne l'info qu'au moins un ticket a ete cree |
---|
295 | // ======================================================================================================================================= |
---|
296 | // |
---|
297 | function afaire_ticket_existe($bidon) { |
---|
298 | $existe = false; |
---|
299 | // Test si la table existe |
---|
300 | $table = sql_showtable('spip_tickets', true); |
---|
301 | if ($table) { |
---|
302 | // Nombre total de tickets |
---|
303 | $from = array('spip_tickets AS t1'); |
---|
304 | $where = array(); |
---|
305 | $result = sql_countsel($from, $where); |
---|
306 | // Nombre de tickets termines pour le jalon |
---|
307 | if ($result >= 1) |
---|
308 | $existe = true; |
---|
309 | } |
---|
310 | return $existe; |
---|
311 | } |
---|
312 | // FIN du Filtre : afaire_ticket_existe |
---|
313 | |
---|
314 | // ======================================================================================================================================= |
---|
315 | // Filtre : statut_forum |
---|
316 | // ======================================================================================================================================= |
---|
317 | // Auteur: Smellup |
---|
318 | // Fonction : Retourne le statut d'un forum cad non autorise, ouvert, ferme |
---|
319 | // ======================================================================================================================================= |
---|
320 | // |
---|
321 | function statut_forum($id_article) { |
---|
322 | |
---|
323 | $id = intval($id_article); |
---|
324 | $statut = 'non_autorise'; |
---|
325 | |
---|
326 | // Forum active ou pas ? |
---|
327 | $accepter = 'non'; |
---|
328 | $select = array('t1.accepter_forum'); |
---|
329 | $from = array('spip_articles AS t1'); |
---|
330 | $where = array('t1.id_article='.sql_quote($id)); |
---|
331 | $result = sql_select($select, $from, $where); |
---|
332 | if ($row = sql_fetch($result)) |
---|
333 | $accepter = $row['accepter_forum']; |
---|
334 | |
---|
335 | // Nombre messages de forum de l'article |
---|
336 | $from = array('spip_forum AS t1'); |
---|
337 | $where = array('t1.id_article='.sql_quote($id)); |
---|
338 | $nb = sql_countsel($from, $where); |
---|
339 | // Nombre de tickets termines pour le jalon |
---|
340 | if ($nb >= 1) |
---|
341 | $statut = ($accepter == 'non') ? 'ferme' : 'ouvert'; |
---|
342 | else |
---|
343 | if ($accepter != 'non') $statut = 'ouvert'; |
---|
344 | return $statut; |
---|
345 | } |
---|
346 | // FIN du Filtre : statut_forum |
---|
347 | |
---|
348 | // ======================================================================================================================================= |
---|
349 | // Filtre : sauvegarder_fonds |
---|
350 | // ======================================================================================================================================= |
---|
351 | // Auteur: Smellup |
---|
352 | // Fonction : Cree les sauvegardes d'une liste de fonds suivant un format et dans un repertoire donne |
---|
353 | // ======================================================================================================================================= |
---|
354 | // |
---|
355 | function sauvegarder_fonds($fonds, $ou, $mode='maintenance') { |
---|
356 | $dir = $ou; |
---|
357 | foreach ($fonds as $_fond) { |
---|
358 | if ($mode == 'maintenance') { |
---|
359 | $dir = sous_repertoire($ou, $_fond); |
---|
360 | $nom = $_fond . "_" . date("Ymd_Hi") . ".txt"; |
---|
361 | } |
---|
362 | else { |
---|
363 | $nom = $_fond . ".txt"; |
---|
364 | } |
---|
365 | $f = $dir . $nom; |
---|
366 | $ok = ecrire_fichier($f, serialize(lire_config($_fond))); |
---|
367 | } |
---|
368 | |
---|
369 | return $ok; |
---|
370 | } |
---|
371 | // FIN du Filtre : sauvegarder_fonds |
---|
372 | |
---|
373 | // ======================================================================================================================================= |
---|
374 | // Filtre : restaurer_fonds |
---|
375 | // ======================================================================================================================================= |
---|
376 | // Auteur: Smellup |
---|
377 | // Fonction : Restaure les sauvegardes d'une liste de fonds suivant un format et dans un repertoire donne |
---|
378 | // ======================================================================================================================================= |
---|
379 | // |
---|
380 | function restaurer_fonds($fichiers) { |
---|
381 | foreach ($fichiers as $_fichier) { |
---|
382 | lire_fichier($_fichier,$tableau); |
---|
383 | $fond = basename($_fichier, '.txt'); |
---|
384 | $ok = ecrire_config($fond, $tableau); |
---|
385 | } |
---|
386 | |
---|
387 | return $ok; |
---|
388 | } |
---|
389 | // FIN du Filtre : restaurer_fonds |
---|
390 | |
---|
391 | // ======================================================================================================================================= |
---|
392 | // Filtre : nettoyer_titre_sujet |
---|
393 | // ======================================================================================================================================= |
---|
394 | // Auteur: Smellup |
---|
395 | // Fonction : Restaure le titre exact du sujet en supprimant le préfixe éventuel |
---|
396 | // ======================================================================================================================================= |
---|
397 | // |
---|
398 | function nettoyer_titre_sujet($titre) { |
---|
399 | $titre_nettoye = trim(preg_replace(',^\[(annonce|epingle)\]( )*,UimsS', '', $titre)); |
---|
400 | $titre_nettoye = trim(preg_replace(',\[ferme\],UimsS', '', $titre_nettoye)); |
---|
401 | return $titre_nettoye; |
---|
402 | } |
---|
403 | // FIN du Filtre : nettoyer_titre_sujet |
---|
404 | |
---|
405 | // ======================================================================================================================================= |
---|
406 | // Filtres : module AGENDA |
---|
407 | // ======================================================================================================================================= |
---|
408 | // Auteur: Smellup |
---|
409 | // Fonction : regroupe les filtres permettant les affichages de l'agenda |
---|
410 | // ======================================================================================================================================= |
---|
411 | // |
---|
412 | include_spip('inc/sarkaspip_filtres_agenda'); |
---|
413 | ?> |
---|