source: spip-zone/_plugins_/police_prive/trunk/polpriv_pipelines.php

Last change on this file was 69031, checked in by tcharlss@…, 8 years ago

éviter une notice php en l'absence de polices font-face

File size: 4.7 KB
Line 
1<?php
2if (!defined("_ECRIRE_INC_VERSION")) return;
3
4// Renvoie un tableau avec les familles de polices.
5// Ces dernieres proviennent de http://cssfontstack.com/
6function polpriv_polices () {
7        return array(
8                'Calibri' => 'Calibri, Candara, Segoe, "Segoe UI", Optima, Arial, sans-serif',
9                'Century Gothic' => '"Century Gothic", CenturyGothic, AppleGothic, sans-serif',
10                'Franklin Gothic Medium' => '"Franklin Gothic Medium", "Franklin Gothic", "ITC Franklin Gothic", Arial, sans-serif',
11                'Futura' => 'Futura, "Trebuchet MS", Arial, sans-serif',
12                'Gill Sans' => '"Gill Sans", "Gill Sans MT", Calibri, sans-serif',
13                'Lucida Grande' => '"Lucida Grande", "Lucida Sans Unicode", "Lucida Sans", Geneva, Verdana, sans-serif',
14                'Optima / Segoe' => 'Optima, Segoe, "Segoe UI", Candara, Calibri, Arial, sans-serif',
15                'Tahoma' => 'Tahoma, Verdana, Segoe, sans-serif',
16                'Trebuchet MS' => '"Trebuchet MS", "Lucida Grande", "Lucida Sans Unicode", "Lucida Sans", Tahoma, sans-serif',
17                'Verdana' => 'Verdana, Geneva, sans-serif',
18                'Baskerville' => '"Baskerville Old Face", "Hoefler Text", Garamond, "Times New Roman", serif',
19                'Book Antiqua' => '"Book Antiqua", Palatino, "Palatino Linotype", "Palatino LT STD", Georgia, serif',
20                'Cambria' => 'Cambria, Georgia, serif',
21                'Garamond' => 'Garamond, Baskerville, "Baskerville Old Face", "Hoefler Text", "Times New Roman", serif',
22                'Georgia' => 'Georgia, Times, "Times New Roman", serif',
23                'Palatino' => 'Palatino, "Palatino Linotype", "Palatino LT STD", "Book Antiqua", Georgia, serif',
24                'Rockwell' => 'Rockwell, "Courier Bold", Courier, Georgia, Times, "Times New Roman", serif',
25                'Times New Roman' => 'TimesNewRoman, "Times New Roman", Times, Baskerville, Georgia, serif',
26                'Courrier New' => '"Courier New", Courier, "Lucida Sans Typewriter", "Lucida Typewriter", monospace',
27                'Lucida Sans Typewriter' => '"Lucida Sans Typewriter", "Lucida Console", Monaco, "Bitstream Vera Sans Mono", monospace'
28                );
29}
30
31// Renvoie un tableau pour saisies radio avec les familles de polices fontface trouvees dans le repertoire polices.
32function polpriv_polices_fontface () {
33        include_spip('inc/polpriv');
34        if ($familles = polpriv_familles_polices_fontface()) {
35                foreach ($familles as $famille=>$v) {
36                        $label = polpriv_formater_label_fontface($famille) . " @font-face";
37                        $fontface[$label] = $famille;
38                }
39        }
40        return $fontface;
41}
42
43function polpriv_formulaire_charger ($flux) {
44        if ($flux['args']['form'] == 'configurer_preferences'){
45                $flux['data']['_polices'] = polpriv_polices(); // polices normales
46                $flux['data']['_polices_fontface'] = polpriv_polices_fontface(); // polices fontface
47                $flux['data']['police_prive'] = isset($GLOBALS['visiteur_session']['prefs']['police_prive'])?$GLOBALS['visiteur_session']['prefs']['police_prive']:'';
48                // inserer dans la page les styles de toutes les polices fontface (et pas dans la feuille de style)
49                include_spip('inc/polpriv');
50                if ($familles = polpriv_familles_polices_fontface())
51                        $flux['data']['_style_fontface'] .= polpriv_generer_style_polices_fontface($familles);
52        }
53        return $flux;
54}
55
56// On passe par verifier pour ajouter la police a visiteur_session avant que le formulaire ne soit traite.
57function polpriv_formulaire_verifier ($flux) {
58        if ($flux['args']['form'] == 'configurer_preferences'){
59                if ($police_prive = _request('police_prive')) {
60                        $GLOBALS['visiteur_session']['prefs']['police_prive'] = ($police_prive=='defaut') ? '' : $police_prive;
61                }
62        }
63        return $flux;
64}
65
66function polpriv_recuperer_fond ($flux) {
67        if ($flux['args']['fond'] == 'formulaires/configurer_preferences'){
68                $polpriv = recuperer_fond('prive/inclure/configurer_police_prive', $flux['args']['contexte']);
69                $flux['data']['texte'] = preg_replace('%(<!--extra-->)%is', $polpriv.'$1', $flux['data']['texte']);
70        }
71
72        return $flux;
73}
74
75function polpriv_header_prive($flux){
76        if (isset($GLOBALS['visiteur_session']['prefs']['police_prive'])){
77                include_spip('inc/polpriv');
78                $police = $GLOBALS['visiteur_session']['prefs']['police_prive'];
79                $polices = polpriv_polices();
80                $polices_fontface = polpriv_familles_polices_fontface();
81                // polices normales
82                if (isset($polices[$police]))
83                        $flux .= "<style type='text/css'>body {font-family: ".$polices[$police].";}</style>";
84                // polices fontface
85                if (is_array($polices_fontface) AND !empty($polices_fontface)) {
86                $polices_fontface = array_keys($polices_fontface);
87                        if (in_array($police, $polices_fontface)) {
88                                $famille = polpriv_familles_polices_fontface(array($police));
89                                $flux .= polpriv_generer_style_polices_fontface($famille);
90                                $flux .= "<style type='text/css'>body {font-family: '".$police."';}</style>";
91                        }
92                }
93        }
94
95        return $flux;
96}
97
98?>
Note: See TracBrowser for help on using the repository browser.