Dotclear

source: themes/ductile/_public.php @ 387:023783060913

Revision 387:023783060913, 7.7 KB checked in by Franck <carnet.franck.paul@…>, 14 years ago (diff)

Configuration des titres - step 1 : graisse, taille et couleur

Line 
1<?php
2# -- BEGIN LICENSE BLOCK ---------------------------------------
3#
4# This file is part of Dotclear 2.
5#
6# Copyright (c) 2003-2011 Olivier Meunier & Association Dotclear
7# Licensed under the GPL version 2.0 license.
8# See LICENSE file or
9# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
10#
11# -- END LICENSE BLOCK -----------------------------------------
12
13if (!defined('DC_RC_PATH')) { return; }
14
15$core->addBehavior('publicHeadContent',array('tplDuctileTheme','publicHeadContent'));
16
17class tplDuctileTheme
18{
19     public static function publicHeadContent($core)
20     {
21          echo 
22               '<style type="text/css">'."\n".
23               '/* Additionnal style directives */'."\n".
24               self::ductileStyleHelper().
25               "</style>\n";
26     }
27     
28     public static function ductileStyleHelper()
29     {
30          $s = $GLOBALS['core']->blog->settings->themes->ductile_style;
31
32          if ($s === null) {
33               return;
34          }
35
36          $s = @unserialize($s);
37          if (!is_array($s)) {
38               return;
39          }
40
41          $css = array();
42
43          # Properties
44
45          # Main font
46          $selectors = 'body, #supranav li a span, #comments.me, a.comment-number';
47          if (isset($s['body_font'])) self::prop($css,$selectors,'font-family',self::fontDef($s['body_font']));
48
49          # Secondary font
50          $selectors = '#blogdesc, #supranav, #content-info, #subcategories, #comments-feed, #sidebar h2, #sidebar h3, #footer p';
51          if (isset($s['alternate_font'])) self::prop($css,$selectors,'font-family',self::fontDef($s['alternate_font']));
52         
53          # Inside posts links font weight
54          $selectors = '.post-excerpt a, .post-content a';
55          if (isset($s['post_link_w'])) self::prop($css,$selectors,'font-weight',($s['post_link_w'] ? 'bold' : 'normal'));
56
57          # Inside posts links colors (normal, visited)
58          $selectors = '.post-excerpt a:link, .post-excerpt a:visited, .post-content a:link, .post-content a:visited';
59          if (isset($s['post_link_v_c'])) self::prop($css,$selectors,'color',$s['post_link_v_c']);
60
61          # Inside posts links colors (hover, active, focus)
62          $selectors = '.post-excerpt a:hover, .post-excerpt a:active, .post-excerpt a:focus, .post-content a:hover, .post-content a:active, .post-content a:focus';
63          if (isset($s['post_link_f_c'])) self::prop($css,$selectors,'color',$s['post_link_f_c']);
64
65          # Style directives
66          $res = '';
67          foreach ($css as $selector => $values) {
68               $res .= $selector." {\n";
69               foreach ($values as $k => $v) {
70                    $res .= $k.':'.$v.";\n";
71               }
72               $res .= "}\n";
73          }
74
75          # Large screens
76          $css_large = array();
77
78          # Blog title font weight
79          $selectors = 'h1, h1 a:link, h1 a:visited, h1 a:hover, h1 a:visited, h1 a:focus';
80          if (isset($s['blog_title_w'])) self::prop($css_large,$selectors,'font-weight',($s['blog_title_w'] ? 'bold' : 'normal'));
81         
82          # Blog title font size
83          $selectors = 'h1';
84          if (isset($s['blog_title_s'])) self::prop($css_large,$selectors,'font-size',$s['blog_title_s']);
85         
86          # Blog title color
87          $selectors = 'h1 a:link, h1 a:visited, h1 a:hover, h1 a:visited, h1 a:focus';
88          if (isset($s['blog_title_c'])) self::prop($css_large,$selectors,'color',$s['blog_title_c']);
89
90          # Post title font weight
91          $selectors = 'h2.post-title, h2.post-title a:link, h2.post-title a:visited, h2.post-title a:hover, h2.post-title a:visited, h2.post-title a:focus';
92          if (isset($s['post_title_w'])) self::prop($css_large,$selectors,'font-weight',($s['post_title_w'] ? 'bold' : 'normal'));
93         
94          # Post title font size
95          $selectors = 'h2.post-title';
96          if (isset($s['post_title_s'])) self::prop($css_large,$selectors,'font-size',$s['post_title_s']);
97         
98          # Post title color
99          $selectors = 'h2.post-title a:link, h2.post-title a:visited, h2.post-title a:hover, h2.post-title a:visited, h2.post-title a:focus';
100          if (isset($s['post_title_c'])) self::prop($css_large,$selectors,'color',$s['post_title_c']);
101
102          # Style directives for large screens
103          if (count($css_large)) {
104               $res .= '@media only screen and (min-width: 481px) {'."\n";
105               foreach ($css_large as $selector => $values) {
106                    $res .= $selector." {\n";
107                    foreach ($values as $k => $v) {
108                         $res .= $k.':'.$v.";\n";
109                    }
110                    $res .= "}\n";
111               }
112               $res .= "}\n";
113          }
114
115          # Small screens
116          $css_small = array();
117
118          # Blog title font weight
119          $selectors = 'h1, h1 a:link, h1 a:visited, h1 a:hover, h1 a:visited, h1 a:focus';
120          if (isset($s['blog_title_w_m'])) self::prop($css_small,$selectors,'font-weight',($s['blog_title_w_m'] ? 'bold' : 'normal'));
121         
122          # Blog title font size
123          $selectors = 'h1';
124          if (isset($s['blog_title_s_m'])) self::prop($css_small,$selectors,'font-size',$s['blog_title_s_m']);
125         
126          # Blog title color
127          $selectors = 'h1 a:link, h1 a:visited, h1 a:hover, h1 a:visited, h1 a:focus';
128          if (isset($s['blog_title_c_m'])) self::prop($css_small,$selectors,'color',$s['blog_title_c_m']);
129
130          # Post title font weight
131          $selectors = 'h2.post-title, h2.post-title a:link, h2.post-title a:visited, h2.post-title a:hover, h2.post-title a:visited, h2.post-title a:focus';
132          if (isset($s['post_title_w_m'])) self::prop($css_small,$selectors,'font-weight',($s['post_title_w_m'] ? 'bold' : 'normal'));
133         
134          # Post title font size
135          $selectors = 'h2.post-title';
136          if (isset($s['post_title_s_m'])) self::prop($css_small,$selectors,'font-size',$s['post_title_s_m']);
137         
138          # Post title color
139          $selectors = 'h2.post-title a:link, h2.post-title a:visited, h2.post-title a:hover, h2.post-title a:visited, h2.post-title a:focus';
140          if (isset($s['post_title_c_m'])) self::prop($css_small,$selectors,'color',$s['post_title_c_m']);
141
142          # Style directives for small screens
143          if (count($css_small)) {
144               $res .= '@media only screen and (max-width: 480px) {'."\n";
145               foreach ($css_small as $selector => $values) {
146                    $res .= $selector." {\n";
147                    foreach ($values as $k => $v) {
148                         $res .= $k.':'.$v.";\n";
149                    }
150                    $res .= "}\n";
151               }
152               $res .= "}\n";
153          }
154         
155          return $res;
156     }
157
158     protected static $fonts = array(
159          // Theme standard
160          'Ductile body' => '"Century Schoolbook", "Century Schoolbook L", Georgia, serif',
161          'Ductile alternate' => '"Franklin gothic medium", "arial narrow", "DejaVu Sans Condensed", "helvetica neue", helvetica, sans-serif',
162
163          // Serif families
164          'Times New Roman' => 'Cambria, "Hoefler Text", Utopia, "Liberation Serif", "Nimbus Roman No9 L Regular", Times, "Times New Roman", serif',
165          'Georgia' => 'Constantia, "Lucida Bright", Lucidabright, "Lucida Serif", Lucida, "DejaVu Serif," "Bitstream Vera Serif", "Liberation Serif", Georgia, serif',
166          'Garamond' => '"Palatino Linotype", Palatino, Palladio, "URW Palladio L", "Book Antiqua", Baskerville, "Bookman Old Style", "Bitstream Charter", "Nimbus Roman No9 L", Garamond, "Apple Garamond", "ITC Garamond Narrow", "New Century Schoolbook", "Century Schoolbook", "Century Schoolbook L", Georgia, serif',
167
168          // Sans-serif families
169          'Helvetica/Arial' => 'Frutiger, "Frutiger Linotype", Univers, Calibri, "Gill Sans", "Gill Sans MT", "Myriad Pro", Myriad, "DejaVu Sans Condensed", "Liberation Sans", "Nimbus Sans L", Tahoma, Geneva, "Helvetica Neue", Helvetica, Arial, sans-serif',
170          'Verdana' => 'Corbel, "Lucida Grande", "Lucida Sans Unicode", "Lucida Sans", "DejaVu Sans", "Bitstream Vera Sans", "Liberation Sans", Verdana, "Verdana Ref", sans-serif',
171          'Trebuchet MS' => '"Segoe UI", Candara, "Bitstream Vera Sans", "DejaVu Sans", "Bitstream Vera Sans", "Trebuchet MS", Verdana, "Verdana Ref", sans-serif',
172
173          // Cursive families
174          'Impact' => 'Impact, Haettenschweiler, "Franklin Gothic Bold", Charcoal, "Helvetica Inserat", "Bitstream Vera Sans Bold", "Arial Black", sans-serif',
175
176          // Monospace families
177          'Monospace' => 'Consolas, "Andale Mono WT", "Andale Mono", "Lucida Console", "Lucida Sans Typewriter", "DejaVu Sans Mono", "Bitstream Vera Sans Mono", "Liberation Mono", "Nimbus Mono L", Monaco, "Courier New", Courier, monospace'
178     );
179
180     protected static function fontDef($c)
181     {
182          return isset(self::$fonts[$c]) ? self::$fonts[$c] : null;
183     }
184
185     protected static function prop(&$css,$selector,$prop,$value)
186     {
187          if ($value) {
188               $css[$selector][$prop] = $value;
189          }
190     }
191}
192?>
Note: See TracBrowser for help on using the repository browser.

Sites map