Dotclear

source: plugins/blowupConfig/_public.php @ 295:120c4648cb6f

Revision 295:120c4648cb6f, 7.7 KB checked in by annso <as.tranchet@…>, 13 years ago (diff)

New extra_css field in blowup config

  • Property exe set to *
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 -----------------------------------------
12if (!defined('DC_RC_PATH')) { return; }
13
14if ($core->blog->settings->system->theme != 'default') {
15     return;
16}
17
18require dirname(__FILE__).'/lib/class.blowup.config.php';
19$core->addBehavior('publicHeadContent',array('tplBlowupTheme','publicHeadContent'));
20
21class tplBlowUpTheme
22{
23     public static function publicHeadContent($core)
24     {
25          echo '<style type="text/css">'."\n".self::blowUpStyleHelper()."\n</style>\n";
26     }
27
28     public static function blowUpStyleHelper()
29     {
30          $s = $GLOBALS['core']->blog->settings->themes->blowup_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          /* Sidebar position
44          ---------------------------------------------- */
45          if ($s['sidebar_position'] == 'left') {
46               $css['#wrapper']['background-position'] = '-300px 0';
47               $css['#main']['float'] = 'right';
48               $css['#sidebar']['float'] = 'left';
49          }
50
51          /* Properties
52          ---------------------------------------------- */
53          self::prop($css,'body','background-color',$s['body_bg_c']);
54
55          self::prop($css,'body','color',$s['body_txt_c']);
56          self::prop($css,'.post-tags li a:link, .post-tags li a:visited, .post-info-co a:link, .post-info-co a:visited','color',$s['body_txt_c']);
57          self::prop($css,'#page','font-size',$s['body_txt_s']);
58          self::prop($css,'body','font-family',blowupConfig::fontDef($s['body_txt_f']));
59
60          self::prop($css,'.post-content, .post-excerpt, #comments dd, #pings dd, dd.comment-preview','line-height',$s['body_line_height']);
61
62          if (!$s['blog_title_hide'])
63          {
64               self::prop($css,'#top h1 a','color',$s['blog_title_c']);
65               self::prop($css,'#top h1','font-size',$s['blog_title_s']);
66               self::prop($css,'#top h1','font-family',blowupConfig::fontDef($s['blog_title_f']));
67
68               if ($s['blog_title_a'] == 'right' || $s['blog_title_a'] == 'left') {
69                    $css['#top h1'][$s['blog_title_a']] = '0px';
70                    $css['#top h1']['width'] = 'auto';
71               }
72
73               if ($s['blog_title_p'])
74               {
75                    $_p = explode(':',$s['blog_title_p']);
76                    $css['#top h1']['top'] = $_p[1].'px';
77                    if ($s['blog_title_a'] != 'center') {
78                         $_a = $s['blog_title_a'] == 'right' ? 'right' : 'left';
79                         $css['#top h1'][$_a] = $_p[0].'px';
80                    }
81               }
82          }
83          else
84          {
85               self::prop($css,'#top h1 span','text-indent','-5000px');
86               self::prop($css,'#top h1','top','0px');
87               $css['#top h1 a'] = array(
88                    'display' => 'block',
89                    'height' => $s['top_height'] ? ($s['top_height']-10).'px' : '120px',
90                    'width' => '800px'
91               );
92          }
93          self::prop($css,'#top','height',$s['top_height']);
94
95          self::prop($css,'.day-date','color',$s['date_title_c']);
96          self::prop($css,'.day-date','font-family',blowupConfig::fontDef($s['date_title_f']));
97          self::prop($css,'.day-date','font-size',$s['date_title_s']);
98
99          self::prop($css,'a','color',$s['body_link_c']);
100          self::prop($css,'a:visited','color',$s['body_link_v_c']);
101          self::prop($css,'a:hover, a:focus, a:active','color',$s['body_link_f_c']);
102
103          self::prop($css,'#comment-form input, #comment-form textarea','color',$s['body_link_c']);
104          self::prop($css,'#comment-form input.preview','color',$s['body_link_c']);
105          self::prop($css,'#comment-form input.preview:hover','background',$s['body_link_f_c']);
106          self::prop($css,'#comment-form input.preview:hover','border-color',$s['body_link_f_c']);
107          self::prop($css,'#comment-form input.submit','color',$s['body_link_c']);
108          self::prop($css,'#comment-form input.submit:hover','background',$s['body_link_f_c']);
109          self::prop($css,'#comment-form input.submit:hover','border-color',$s['body_link_f_c']);
110
111          self::prop($css,'#sidebar','font-family',blowupConfig::fontDef($s['sidebar_text_f']));
112          self::prop($css,'#sidebar','font-size',$s['sidebar_text_s']);
113          self::prop($css,'#sidebar','color',$s['sidebar_text_c']);
114
115          self::prop($css,'#sidebar h2','font-family',blowupConfig::fontDef($s['sidebar_title_f']));
116          self::prop($css,'#sidebar h2','font-size',$s['sidebar_title_s']);
117          self::prop($css,'#sidebar h2','color',$s['sidebar_title_c']);
118
119          self::prop($css,'#sidebar h3','font-family',blowupConfig::fontDef($s['sidebar_title2_f']));
120          self::prop($css,'#sidebar h3','font-size',$s['sidebar_title2_s']);
121          self::prop($css,'#sidebar h3','color',$s['sidebar_title2_c']);
122
123          self::prop($css,'#sidebar ul','border-top-color',$s['sidebar_line_c']);
124          self::prop($css,'#sidebar li','border-bottom-color',$s['sidebar_line_c']);
125          self::prop($css,'#topnav ul','border-bottom-color',$s['sidebar_line_c']);
126
127          self::prop($css,'#sidebar li a','color',$s['sidebar_link_c']);
128          self::prop($css,'#sidebar li a:visited','color',$s['sidebar_link_v_c']);
129          self::prop($css,'#sidebar li a:hover, #sidebar li a:focus, #sidebar li a:active','color',$s['sidebar_link_f_c']);
130          self::prop($css,'#search input','color',$s['sidebar_link_c']);
131          self::prop($css,'#search .submit','color',$s['sidebar_link_c']);
132          self::prop($css,'#search .submit:hover','background',$s['sidebar_link_f_c']);
133          self::prop($css,'#search .submit:hover','border-color',$s['sidebar_link_f_c']);
134
135          self::prop($css,'.post-title','color',$s['post_title_c']);
136          self::prop($css,'.post-title a, .post-title a:visited','color',$s['post_title_c']);
137          self::prop($css,'.post-title','font-family',blowupConfig::fontDef($s['post_title_f']));
138          self::prop($css,'.post-title','font-size',$s['post_title_s']);
139
140          self::prop($css,'#comments dd','background-color',$s['post_comment_bg_c']);
141          self::prop($css,'#comments dd','color',$s['post_comment_c']);
142          self::prop($css,'#comments dd.me','background-color',$s['post_commentmy_bg_c']);
143          self::prop($css,'#comments dd.me','color',$s['post_commentmy_c']);
144
145          self::prop($css,'#prelude, #prelude a','color',$s['prelude_c']);
146
147          self::prop($css,'#footer p','background-color',$s['footer_bg_c']);
148          self::prop($css,'#footer p','color',$s['footer_c']);
149          self::prop($css,'#footer p','font-size',$s['footer_s']);
150          self::prop($css,'#footer p','font-family',blowupConfig::fontDef($s['footer_f']));
151          self::prop($css,'#footer p a','color',$s['footer_l_c']);
152
153          /* Images
154          ------------------------------------------------------ */
155          self::backgroundImg($css,'body',$s['body_bg_c'],'body-bg.png');
156          self::backgroundImg($css,'body',$s['body_bg_g'] != 'light','body-bg.png');
157          self::backgroundImg($css,'body',$s['prelude_c'],'body-bg.png');
158          self::backgroundImg($css,'#top',$s['body_bg_c'],'page-t.png');
159          self::backgroundImg($css,'#top',$s['body_bg_g'] != 'light','page-t.png');
160          self::backgroundImg($css,'#top',$s['uploaded'] || $s['top_image'],'page-t.png');
161          self::backgroundImg($css,'#footer',$s['body_bg_c'],'page-b.png');
162          self::backgroundImg($css,'#comments dt',$s['post_comment_bg_c'],'comment-t.png');
163          self::backgroundImg($css,'#comments dd',$s['post_comment_bg_c'],'comment-b.png');
164          self::backgroundImg($css,'#comments dt.me',$s['post_commentmy_bg_c'],'commentmy-t.png');
165          self::backgroundImg($css,'#comments dd.me',$s['post_commentmy_bg_c'],'commentmy-b.png');
166
167          $res = '';
168          foreach ($css as $selector => $values) {
169               $res .= $selector." {\n";
170               foreach ($values as $k => $v) {
171                    $res .= $k.':'.$v.";\n";
172               }
173               $res .= "}\n";
174          }
175
176          $res .= $s['extra_css'];
177
178          return $res;
179     }
180
181     protected static function prop(&$css,$selector,$prop,$value)
182     {
183          if ($value) {
184               $css[$selector][$prop] = $value;
185          }
186     }
187
188     protected static function backgroundImg(&$css,$selector,$value,$image)
189     {
190          $file = blowupConfig::imagesPath().'/'.$image;
191          if ($value && file_exists($file)){
192               $css[$selector]['background-image'] = 'url('.blowupConfig::imagesURL().'/'.$image.')';
193          }
194     }
195}
196?>
Note: See TracBrowser for help on using the repository browser.

Sites map