bbf3b77d8d22b7f07345af88d229ef4b61d9837d
[ptitvelo/web/www.git] / www / plugins-dist / squelettes_par_rubrique / squelettes_par_rubrique_options.php
1 <?php
2
3 /***************************************************************************\
4 * SPIP, Systeme de publication pour l'internet *
5 * *
6 * Copyright (c) 2001-2013 *
7 * Arnaud Martin, Antoine Pitrou, Philippe Riviere, Emmanuel Saint-James *
8 * *
9 * Ce programme est un logiciel libre distribue sous licence GNU/GPL. *
10 * Pour plus de details voir le fichier COPYING.txt ou l'aide en ligne. *
11 \***************************************************************************/
12
13 if (!defined("_ECRIRE_INC_VERSION")) return;
14
15 if (!isset($GLOBALS['spip_pipeline']['styliser']))
16 $GLOBALS['spip_pipeline']['styliser'] = '';
17 $GLOBALS['spip_pipeline']['styliser'] .= '||squelettes_par_rubrique_styliser_par_rubrique|squelettes_par_rubrique_styliser_par_langue';
18
19 /**
20 * Options de recherche de squelette par le styliseur, appele par le pipeline 'styliser' :
21 * Squelette par rubrique squelette-XX.html ou squelette=XX.html
22 *
23 * @param <type> $flux
24 * @return <type>
25 */
26 function squelettes_par_rubrique_styliser_par_rubrique($flux) {
27
28 // uniquement si un squelette a ete trouve
29 if ($squelette = $flux['data']) {
30 $ext = $flux['args']['ext'];
31
32 // On selectionne, dans l'ordre :
33 // fond=10
34 if ($id_rubrique = $flux['args']['id_rubrique']) {
35 $f = "$squelette=$id_rubrique";
36 if (@file_exists("$f.$ext"))
37 $squelette = $f;
38 else {
39 // fond-10 fond-<rubriques parentes>
40 do {
41 $f = "$squelette-$id_rubrique";
42 if (@file_exists("$f.$ext")) {
43 $squelette = $f;
44 break;
45 }
46 } while ($id_rubrique = quete_parent($id_rubrique));
47 }
48 // sauver le squelette
49 $flux['data'] = $squelette;
50 }
51 }
52
53 return $flux;
54 }
55
56 /**
57 * Options de recherche de squelette par le styliseur, appele par le pipeline 'styliser' :
58 * Squelette par langue squelette.en.html
59 *
60 * @param array $flux
61 * @return array
62 */
63 function squelettes_par_rubrique_styliser_par_langue($flux) {
64
65 // uniquement si un squelette a ete trouve
66 if ($squelette = $flux['data']) {
67 $ext = $flux['args']['ext'];
68
69 // Affiner par lang
70 if ($lang = $flux['args']['lang']) {
71 $l = lang_select($lang);
72 $f = "$squelette.".$GLOBALS['spip_lang'];
73 if ($l) lang_select();
74 if (@file_exists("$f.$ext")) {
75 // sauver le squelette
76 $flux['data'] = $f;
77 }
78 }
79 }
80
81 return $flux;
82 }