Dotclear


Ignore:
Timestamp:
08/18/13 00:20:56 (12 years ago)
Author:
Denis Jean-Christian <contact@…>
Branch:
Ticket#736
Children:
1437:71b7fa9efe46, 1438:d537e0a2100c
Message:

Write blowUp CSS into a public file on update, like images, fixes #736

File:
1 edited

Legend:

Unmodified
Added
Removed
  • plugins/blowupConfig/_public.php

    r1179 r1436  
    2323     public static function publicHeadContent($core) 
    2424     { 
    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.')'; 
     25          $url = blowupConfig::publicCssUrlHelper(); 
     26          if ($url) { 
     27               echo '<link rel="stylesheet" href="'.$url.'" type="text/css" />'; 
    19328          } 
    19429     } 
Note: See TracChangeset for help on using the changeset viewer.

Sites map