Dotclear

Changeset 2657:264ffd49d238 for plugins


Ignore:
Timestamp:
02/13/14 13:55:06 (11 years ago)
Author:
franck <carnet.franck.paul@…>
Branch:
default
Message:

New utility lib for theme configuration, applied to blowup theme (default), addresses #904

Location:
plugins/blowupConfig
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • plugins/blowupConfig/index.php

    r2566 r2657  
    108108     { 
    109109          $blowup_user['body_txt_f'] = $_POST['body_txt_f']; 
    110           $blowup_user['body_txt_s'] = blowupConfig::adjustFontSize($_POST['body_txt_s']); 
    111           $blowup_user['body_txt_c'] = blowupConfig::adjustColor($_POST['body_txt_c']); 
    112           $blowup_user['body_line_height'] = blowupConfig::adjustFontSize($_POST['body_line_height']); 
     110          $blowup_user['body_txt_s'] = dcThemeConfig::adjustFontSize($_POST['body_txt_s']); 
     111          $blowup_user['body_txt_c'] = dcThemeConfig::adjustColor($_POST['body_txt_c']); 
     112          $blowup_user['body_line_height'] = dcThemeConfig::adjustFontSize($_POST['body_line_height']); 
    113113 
    114114          $blowup_user['blog_title_hide'] = (integer) !empty($_POST['blog_title_hide']); 
     
    122122          { 
    123123               $blowup_user['blog_title_f'] = $_POST['blog_title_f']; 
    124                $blowup_user['blog_title_s'] = blowupConfig::adjustFontSize($_POST['blog_title_s']); 
    125                $blowup_user['blog_title_c'] = blowupConfig::adjustColor($_POST['blog_title_c']); 
     124               $blowup_user['blog_title_s'] = dcThemeConfig::adjustFontSize($_POST['blog_title_s']); 
     125               $blowup_user['blog_title_c'] = dcThemeConfig::adjustColor($_POST['blog_title_c']); 
    126126               $blowup_user['blog_title_a'] = preg_match('/^(left|center|right)$/',$_POST['blog_title_a']) ? $_POST['blog_title_a'] : null; 
    127                $blowup_user['blog_title_p'] = blowupConfig::adjustPosition($_POST['blog_title_p']); 
     127               $blowup_user['blog_title_p'] = dcThemeConfig::adjustPosition($_POST['blog_title_p']); 
    128128          } 
    129129 
    130           $blowup_user['body_link_c'] = blowupConfig::adjustColor($_POST['body_link_c']); 
    131           $blowup_user['body_link_f_c'] = blowupConfig::adjustColor($_POST['body_link_f_c']); 
    132           $blowup_user['body_link_v_c'] = blowupConfig::adjustColor($_POST['body_link_v_c']); 
     130          $blowup_user['body_link_c'] = dcThemeConfig::adjustColor($_POST['body_link_c']); 
     131          $blowup_user['body_link_f_c'] = dcThemeConfig::adjustColor($_POST['body_link_f_c']); 
     132          $blowup_user['body_link_v_c'] = dcThemeConfig::adjustColor($_POST['body_link_v_c']); 
    133133 
    134134          $blowup_user['sidebar_text_f'] = $_POST['sidebar_text_f']; 
    135           $blowup_user['sidebar_text_s'] = blowupConfig::adjustFontSize($_POST['sidebar_text_s']); 
    136           $blowup_user['sidebar_text_c'] = blowupConfig::adjustColor($_POST['sidebar_text_c']); 
     135          $blowup_user['sidebar_text_s'] = dcThemeConfig::adjustFontSize($_POST['sidebar_text_s']); 
     136          $blowup_user['sidebar_text_c'] = dcThemeConfig::adjustColor($_POST['sidebar_text_c']); 
    137137          $blowup_user['sidebar_title_f'] = $_POST['sidebar_title_f']; 
    138           $blowup_user['sidebar_title_s'] = blowupConfig::adjustFontSize($_POST['sidebar_title_s']); 
    139           $blowup_user['sidebar_title_c'] = blowupConfig::adjustColor($_POST['sidebar_title_c']); 
     138          $blowup_user['sidebar_title_s'] = dcThemeConfig::adjustFontSize($_POST['sidebar_title_s']); 
     139          $blowup_user['sidebar_title_c'] = dcThemeConfig::adjustColor($_POST['sidebar_title_c']); 
    140140          $blowup_user['sidebar_title2_f'] = $_POST['sidebar_title2_f']; 
    141           $blowup_user['sidebar_title2_s'] = blowupConfig::adjustFontSize($_POST['sidebar_title2_s']); 
    142           $blowup_user['sidebar_title2_c'] = blowupConfig::adjustColor($_POST['sidebar_title2_c']); 
    143           $blowup_user['sidebar_line_c'] = blowupConfig::adjustColor($_POST['sidebar_line_c']); 
    144           $blowup_user['sidebar_link_c'] = blowupConfig::adjustColor($_POST['sidebar_link_c']); 
    145           $blowup_user['sidebar_link_f_c'] = blowupConfig::adjustColor($_POST['sidebar_link_f_c']); 
    146           $blowup_user['sidebar_link_v_c'] = blowupConfig::adjustColor($_POST['sidebar_link_v_c']); 
     141          $blowup_user['sidebar_title2_s'] = dcThemeConfig::adjustFontSize($_POST['sidebar_title2_s']); 
     142          $blowup_user['sidebar_title2_c'] = dcThemeConfig::adjustColor($_POST['sidebar_title2_c']); 
     143          $blowup_user['sidebar_line_c'] = dcThemeConfig::adjustColor($_POST['sidebar_line_c']); 
     144          $blowup_user['sidebar_link_c'] = dcThemeConfig::adjustColor($_POST['sidebar_link_c']); 
     145          $blowup_user['sidebar_link_f_c'] = dcThemeConfig::adjustColor($_POST['sidebar_link_f_c']); 
     146          $blowup_user['sidebar_link_v_c'] = dcThemeConfig::adjustColor($_POST['sidebar_link_v_c']); 
    147147 
    148148          $blowup_user['sidebar_position'] = ($_POST['sidebar_position'] == 'left') ? 'left' : null; 
    149149 
    150150          $blowup_user['date_title_f'] = $_POST['date_title_f']; 
    151           $blowup_user['date_title_s'] = blowupConfig::adjustFontSize($_POST['date_title_s']); 
    152           $blowup_user['date_title_c'] = blowupConfig::adjustColor($_POST['date_title_c']); 
     151          $blowup_user['date_title_s'] = dcThemeConfig::adjustFontSize($_POST['date_title_s']); 
     152          $blowup_user['date_title_c'] = dcThemeConfig::adjustColor($_POST['date_title_c']); 
    153153 
    154154          $blowup_user['post_title_f'] = $_POST['post_title_f']; 
    155           $blowup_user['post_title_s'] = blowupConfig::adjustFontSize($_POST['post_title_s']); 
    156           $blowup_user['post_title_c'] = blowupConfig::adjustColor($_POST['post_title_c']); 
    157           $blowup_user['post_comment_c'] = blowupConfig::adjustColor($_POST['post_comment_c']); 
    158           $blowup_user['post_commentmy_c'] = blowupConfig::adjustColor($_POST['post_commentmy_c']); 
     155          $blowup_user['post_title_s'] = dcThemeConfig::adjustFontSize($_POST['post_title_s']); 
     156          $blowup_user['post_title_c'] = dcThemeConfig::adjustColor($_POST['post_title_c']); 
     157          $blowup_user['post_comment_c'] = dcThemeConfig::adjustColor($_POST['post_comment_c']); 
     158          $blowup_user['post_commentmy_c'] = dcThemeConfig::adjustColor($_POST['post_commentmy_c']); 
    159159 
    160160 
    161161          $blowup_user['footer_f'] = $_POST['footer_f']; 
    162           $blowup_user['footer_s'] = blowupConfig::adjustFontSize($_POST['footer_s']); 
    163           $blowup_user['footer_c'] = blowupConfig::adjustColor($_POST['footer_c']); 
    164           $blowup_user['footer_l_c'] = blowupConfig::adjustColor($_POST['footer_l_c']); 
    165           $blowup_user['footer_bg_c'] = blowupConfig::adjustColor($_POST['footer_bg_c']); 
    166  
    167  
    168           $blowup_user['extra_css'] = blowupConfig::cleanCSS($_POST['extra_css']); 
     162          $blowup_user['footer_s'] = dcThemeConfig::adjustFontSize($_POST['footer_s']); 
     163          $blowup_user['footer_c'] = dcThemeConfig::adjustColor($_POST['footer_c']); 
     164          $blowup_user['footer_l_c'] = dcThemeConfig::adjustColor($_POST['footer_l_c']); 
     165          $blowup_user['footer_bg_c'] = dcThemeConfig::adjustColor($_POST['footer_bg_c']); 
     166 
     167 
     168          $blowup_user['extra_css'] = dcThemeConfig::cleanCSS($_POST['extra_css']); 
    169169 
    170170          if ($can_write_images) 
     
    183183               $blowup_user['top_image'] = in_array($_POST['top_image'],$top_images) ? $_POST['top_image'] : 'default'; 
    184184 
    185                $blowup_user['body_bg_c'] = blowupConfig::adjustColor($_POST['body_bg_c']); 
     185               $blowup_user['body_bg_c'] = dcThemeConfig::adjustColor($_POST['body_bg_c']); 
    186186               $blowup_user['body_bg_g'] = in_array($_POST['body_bg_g'],$gradient_types) ? $_POST['body_bg_g'] : ''; 
    187                $blowup_user['post_comment_bg_c'] = blowupConfig::adjustColor($_POST['post_comment_bg_c']); 
    188                $blowup_user['post_commentmy_bg_c'] = blowupConfig::adjustColor($_POST['post_commentmy_bg_c']); 
    189                $blowup_user['prelude_c'] = blowupConfig::adjustColor($_POST['prelude_c']); 
     187               $blowup_user['post_comment_bg_c'] = dcThemeConfig::adjustColor($_POST['post_comment_bg_c']); 
     188               $blowup_user['post_commentmy_bg_c'] = dcThemeConfig::adjustColor($_POST['post_commentmy_bg_c']); 
     189               $blowup_user['prelude_c'] = dcThemeConfig::adjustColor($_POST['prelude_c']); 
    190190               blowupConfig::createImages($blowup_user,$uploaded); 
    191191          } 
  • plugins/blowupConfig/lib/class.blowup.config.php

    r2566 r2657  
    1414class blowupConfig 
    1515{ 
     16     protected static $css_folder = 'blowup-css'; 
     17     protected static $img_folder = 'blowup-images'; 
     18 
    1619     protected static $fonts = array( 
    1720          'sans-serif' => array( 
     
    9093     } 
    9194 
    92      public static function adjustFontSize($s) 
    93      { 
    94           if (preg_match('/^([0-9.]+)\s*(%|pt|px|em|ex)?$/',$s,$m)) { 
    95                if (empty($m[2])) { 
    96                     $m[2] = 'px'; 
    97                } 
    98                return $m[1].$m[2]; 
    99           } 
    100  
    101           return null; 
    102      } 
    103  
    104      public static function adjustPosition($p) 
    105      { 
    106           if (!preg_match('/^[0-9]+(:[0-9]+)?$/',$p)) { 
    107                return null; 
    108           } 
    109  
    110           $p = explode(':',$p); 
    111  
    112           return $p[0].(count($p) == 1 ? ':0' : ':'.$p[1]); 
    113      } 
    114  
    115      public static function adjustColor($c) 
    116      { 
    117           if ($c === '') { 
    118                return ''; 
    119           } 
    120  
    121           $c = strtoupper($c); 
    122  
    123           if (preg_match('/^[A-F0-9]{3,6}$/',$c)) { 
    124                $c = '#'.$c; 
    125           } 
    126  
    127           if (preg_match('/^#[A-F0-9]{6}$/',$c)) { 
    128                return $c; 
    129           } 
    130  
    131           if (preg_match('/^#[A-F0-9]{3,}$/',$c)) { 
    132                return '#'.substr($c,1,1).substr($c,1,1).substr($c,2,1).substr($c,2,1).substr($c,3,1).substr($c,3,1); 
    133           } 
    134  
    135           return ''; 
    136      } 
    137  
    138      public static function cleanCSS($css) 
    139      { 
    140           // TODO ? 
    141           return $css; 
    142      } 
    143  
    14495     public static function cssPath() 
    14596     { 
    146           global $core; 
    147           return path::real($core->blog->public_path).'/blowup-css'; 
     97          return dcThemeConfig::cssPath(self::$css_folder); 
    14898     } 
    14999 
    150100     public static function cssURL() 
    151101     { 
    152           global $core; 
    153           return $core->blog->settings->system->public_url.'/blowup-css'; 
     102          return dcThemeConfig::cssURL(self::$css_folder); 
    154103     } 
    155104 
    156105     public static function canWriteCss($create=false) 
    157106     { 
    158           global $core; 
    159  
    160           $public = path::real($core->blog->public_path); 
    161           $css = self::cssPath(); 
    162  
    163           if (!is_dir($public)) { 
    164                $core->error->add(__('The \'public\' directory does not exist.')); 
    165                return false; 
    166           } 
    167  
    168           if (!is_dir($css)) { 
    169                if (!is_writable($public)) { 
    170                     $core->error->add(sprintf(__('The \'%s\' directory cannot be modified.'),'public')); 
    171                     return false; 
    172                } 
    173                if ($create) { 
    174                     files::makeDir($css); 
    175                } 
    176                return true; 
    177           } 
    178  
    179           if (!is_writable($css)) { 
    180                $core->error->add(sprintf(__('The \'%s\' directory cannot be modified.'),'public/blowup-css')); 
    181                return false; 
    182           } 
    183  
    184           return true; 
     107          return dcThemeConfig::canWriteCss(self::$css_folder,$create); 
     108     } 
     109 
     110     protected static function backgroundImg(&$css,$selector,$value,$image) 
     111     { 
     112          dcThemeConfig::backgroundImg(self::$img_folder,$css,$selector,$value,$image); 
     113     } 
     114 
     115     private static function writeCss($theme,$css) 
     116     { 
     117          dcThemeConfig::writeCSS(self::$css_folder,$theme,$css); 
     118     } 
     119 
     120     public static function dropCss($theme) 
     121     { 
     122          dcThemeConfig::dropCss(self::$css_folder,$theme); 
     123     } 
     124 
     125     public static function publicCssUrlHelper() 
     126     { 
     127          return dcThemeConfig::publicCssUrlHelper(self::$css_folder); 
     128     } 
     129 
     130     public static function imagesPath() 
     131     { 
     132          return dcThemeConfig::imagesPath(self::$img_folder); 
     133     } 
     134 
     135     public static function imagesURL() 
     136     { 
     137          return dcThemeConfig::imagesURL(self::$img_folder); 
     138     } 
     139 
     140     public static function canWriteImages($create=false) 
     141     { 
     142          return dcThemeConfig::canWriteImages(self::$img_folder,$create); 
     143     } 
     144 
     145     public static function uploadImage($f) 
     146     { 
     147          return dcThemeConfig::uploadImage(self::$img_folder,$f); 
     148     } 
     149 
     150     public static function dropImage($img) 
     151     { 
     152          dcThemeConfig::dropImage(self::$img_folder,$img); 
    185153     } 
    186154 
     
    205173          /* Properties 
    206174          ---------------------------------------------- */ 
    207           self::prop($css,'body','background-color',$s['body_bg_c']); 
    208  
    209           self::prop($css,'body','color',$s['body_txt_c']); 
    210           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']); 
    211           self::prop($css,'#page','font-size',$s['body_txt_s']); 
    212           self::prop($css,'body','font-family',self::fontDef($s['body_txt_f'])); 
    213  
    214           self::prop($css,'.post-content, .post-excerpt, #comments dd, #pings dd, dd.comment-preview','line-height',$s['body_line_height']); 
     175          dcThemeConfig::prop($css,'body','background-color',$s['body_bg_c']); 
     176 
     177          dcThemeConfig::prop($css,'body','color',$s['body_txt_c']); 
     178          dcThemeConfig::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']); 
     179          dcThemeConfig::prop($css,'#page','font-size',$s['body_txt_s']); 
     180          dcThemeConfig::prop($css,'body','font-family',self::fontDef($s['body_txt_f'])); 
     181 
     182          dcThemeConfig::prop($css,'.post-content, .post-excerpt, #comments dd, #pings dd, dd.comment-preview','line-height',$s['body_line_height']); 
    215183 
    216184          if (!$s['blog_title_hide']) 
    217185          { 
    218                self::prop($css,'#top h1 a','color',$s['blog_title_c']); 
    219                self::prop($css,'#top h1','font-size',$s['blog_title_s']); 
    220                self::prop($css,'#top h1','font-family',self::fontDef($s['blog_title_f'])); 
     186               dcThemeConfig::prop($css,'#top h1 a','color',$s['blog_title_c']); 
     187               dcThemeConfig::prop($css,'#top h1','font-size',$s['blog_title_s']); 
     188               dcThemeConfig::prop($css,'#top h1','font-family',self::fontDef($s['blog_title_f'])); 
    221189 
    222190               if ($s['blog_title_a'] == 'right' || $s['blog_title_a'] == 'left') { 
     
    237205          else 
    238206          { 
    239                self::prop($css,'#top h1 span','text-indent','-5000px'); 
    240                self::prop($css,'#top h1','top','0px'); 
     207               dcThemeConfig::prop($css,'#top h1 span','text-indent','-5000px'); 
     208               dcThemeConfig::prop($css,'#top h1','top','0px'); 
    241209               $css['#top h1 a'] = array( 
    242210                    'display' => 'block', 
     
    245213               ); 
    246214          } 
    247           self::prop($css,'#top','height',$s['top_height']); 
    248  
    249           self::prop($css,'.day-date','color',$s['date_title_c']); 
    250           self::prop($css,'.day-date','font-family',self::fontDef($s['date_title_f'])); 
    251           self::prop($css,'.day-date','font-size',$s['date_title_s']); 
    252  
    253           self::prop($css,'a','color',$s['body_link_c']); 
    254           self::prop($css,'a:visited','color',$s['body_link_v_c']); 
    255           self::prop($css,'a:hover, a:focus, a:active','color',$s['body_link_f_c']); 
    256  
    257           self::prop($css,'#comment-form input, #comment-form textarea','color',$s['body_link_c']); 
    258           self::prop($css,'#comment-form input.preview','color',$s['body_link_c']); 
    259           self::prop($css,'#comment-form input.preview:hover','background',$s['body_link_f_c']); 
    260           self::prop($css,'#comment-form input.preview:hover','border-color',$s['body_link_f_c']); 
    261           self::prop($css,'#comment-form input.submit','color',$s['body_link_c']); 
    262           self::prop($css,'#comment-form input.submit:hover','background',$s['body_link_f_c']); 
    263           self::prop($css,'#comment-form input.submit:hover','border-color',$s['body_link_f_c']); 
    264  
    265           self::prop($css,'#sidebar','font-family',self::fontDef($s['sidebar_text_f'])); 
    266           self::prop($css,'#sidebar','font-size',$s['sidebar_text_s']); 
    267           self::prop($css,'#sidebar','color',$s['sidebar_text_c']); 
    268  
    269           self::prop($css,'#sidebar h2','font-family',self::fontDef($s['sidebar_title_f'])); 
    270           self::prop($css,'#sidebar h2','font-size',$s['sidebar_title_s']); 
    271           self::prop($css,'#sidebar h2','color',$s['sidebar_title_c']); 
    272  
    273           self::prop($css,'#sidebar h3','font-family',self::fontDef($s['sidebar_title2_f'])); 
    274           self::prop($css,'#sidebar h3','font-size',$s['sidebar_title2_s']); 
    275           self::prop($css,'#sidebar h3','color',$s['sidebar_title2_c']); 
    276  
    277           self::prop($css,'#sidebar ul','border-top-color',$s['sidebar_line_c']); 
    278           self::prop($css,'#sidebar li','border-bottom-color',$s['sidebar_line_c']); 
    279           self::prop($css,'#topnav ul','border-bottom-color',$s['sidebar_line_c']); 
    280  
    281           self::prop($css,'#sidebar li a','color',$s['sidebar_link_c']); 
    282           self::prop($css,'#sidebar li a:visited','color',$s['sidebar_link_v_c']); 
    283           self::prop($css,'#sidebar li a:hover, #sidebar li a:focus, #sidebar li a:active','color',$s['sidebar_link_f_c']); 
    284           self::prop($css,'#search input','color',$s['sidebar_link_c']); 
    285           self::prop($css,'#search .submit','color',$s['sidebar_link_c']); 
    286           self::prop($css,'#search .submit:hover','background',$s['sidebar_link_f_c']); 
    287           self::prop($css,'#search .submit:hover','border-color',$s['sidebar_link_f_c']); 
    288  
    289           self::prop($css,'.post-title','color',$s['post_title_c']); 
    290           self::prop($css,'.post-title a, .post-title a:visited','color',$s['post_title_c']); 
    291           self::prop($css,'.post-title','font-family',self::fontDef($s['post_title_f'])); 
    292           self::prop($css,'.post-title','font-size',$s['post_title_s']); 
    293  
    294           self::prop($css,'#comments dd','background-color',$s['post_comment_bg_c']); 
    295           self::prop($css,'#comments dd','color',$s['post_comment_c']); 
    296           self::prop($css,'#comments dd.me','background-color',$s['post_commentmy_bg_c']); 
    297           self::prop($css,'#comments dd.me','color',$s['post_commentmy_c']); 
    298  
    299           self::prop($css,'#prelude, #prelude a','color',$s['prelude_c']); 
    300  
    301           self::prop($css,'#footer p','background-color',$s['footer_bg_c']); 
    302           self::prop($css,'#footer p','color',$s['footer_c']); 
    303           self::prop($css,'#footer p','font-size',$s['footer_s']); 
    304           self::prop($css,'#footer p','font-family',self::fontDef($s['footer_f'])); 
    305           self::prop($css,'#footer p a','color',$s['footer_l_c']); 
     215          dcThemeConfig::prop($css,'#top','height',$s['top_height']); 
     216 
     217          dcThemeConfig::prop($css,'.day-date','color',$s['date_title_c']); 
     218          dcThemeConfig::prop($css,'.day-date','font-family',self::fontDef($s['date_title_f'])); 
     219          dcThemeConfig::prop($css,'.day-date','font-size',$s['date_title_s']); 
     220 
     221          dcThemeConfig::prop($css,'a','color',$s['body_link_c']); 
     222          dcThemeConfig::prop($css,'a:visited','color',$s['body_link_v_c']); 
     223          dcThemeConfig::prop($css,'a:hover, a:focus, a:active','color',$s['body_link_f_c']); 
     224 
     225          dcThemeConfig::prop($css,'#comment-form input, #comment-form textarea','color',$s['body_link_c']); 
     226          dcThemeConfig::prop($css,'#comment-form input.preview','color',$s['body_link_c']); 
     227          dcThemeConfig::prop($css,'#comment-form input.preview:hover','background',$s['body_link_f_c']); 
     228          dcThemeConfig::prop($css,'#comment-form input.preview:hover','border-color',$s['body_link_f_c']); 
     229          dcThemeConfig::prop($css,'#comment-form input.submit','color',$s['body_link_c']); 
     230          dcThemeConfig::prop($css,'#comment-form input.submit:hover','background',$s['body_link_f_c']); 
     231          dcThemeConfig::prop($css,'#comment-form input.submit:hover','border-color',$s['body_link_f_c']); 
     232 
     233          dcThemeConfig::prop($css,'#sidebar','font-family',self::fontDef($s['sidebar_text_f'])); 
     234          dcThemeConfig::prop($css,'#sidebar','font-size',$s['sidebar_text_s']); 
     235          dcThemeConfig::prop($css,'#sidebar','color',$s['sidebar_text_c']); 
     236 
     237          dcThemeConfig::prop($css,'#sidebar h2','font-family',self::fontDef($s['sidebar_title_f'])); 
     238          dcThemeConfig::prop($css,'#sidebar h2','font-size',$s['sidebar_title_s']); 
     239          dcThemeConfig::prop($css,'#sidebar h2','color',$s['sidebar_title_c']); 
     240 
     241          dcThemeConfig::prop($css,'#sidebar h3','font-family',self::fontDef($s['sidebar_title2_f'])); 
     242          dcThemeConfig::prop($css,'#sidebar h3','font-size',$s['sidebar_title2_s']); 
     243          dcThemeConfig::prop($css,'#sidebar h3','color',$s['sidebar_title2_c']); 
     244 
     245          dcThemeConfig::prop($css,'#sidebar ul','border-top-color',$s['sidebar_line_c']); 
     246          dcThemeConfig::prop($css,'#sidebar li','border-bottom-color',$s['sidebar_line_c']); 
     247          dcThemeConfig::prop($css,'#topnav ul','border-bottom-color',$s['sidebar_line_c']); 
     248 
     249          dcThemeConfig::prop($css,'#sidebar li a','color',$s['sidebar_link_c']); 
     250          dcThemeConfig::prop($css,'#sidebar li a:visited','color',$s['sidebar_link_v_c']); 
     251          dcThemeConfig::prop($css,'#sidebar li a:hover, #sidebar li a:focus, #sidebar li a:active','color',$s['sidebar_link_f_c']); 
     252          dcThemeConfig::prop($css,'#search input','color',$s['sidebar_link_c']); 
     253          dcThemeConfig::prop($css,'#search .submit','color',$s['sidebar_link_c']); 
     254          dcThemeConfig::prop($css,'#search .submit:hover','background',$s['sidebar_link_f_c']); 
     255          dcThemeConfig::prop($css,'#search .submit:hover','border-color',$s['sidebar_link_f_c']); 
     256 
     257          dcThemeConfig::prop($css,'.post-title','color',$s['post_title_c']); 
     258          dcThemeConfig::prop($css,'.post-title a, .post-title a:visited','color',$s['post_title_c']); 
     259          dcThemeConfig::prop($css,'.post-title','font-family',self::fontDef($s['post_title_f'])); 
     260          dcThemeConfig::prop($css,'.post-title','font-size',$s['post_title_s']); 
     261 
     262          dcThemeConfig::prop($css,'#comments dd','background-color',$s['post_comment_bg_c']); 
     263          dcThemeConfig::prop($css,'#comments dd','color',$s['post_comment_c']); 
     264          dcThemeConfig::prop($css,'#comments dd.me','background-color',$s['post_commentmy_bg_c']); 
     265          dcThemeConfig::prop($css,'#comments dd.me','color',$s['post_commentmy_c']); 
     266 
     267          dcThemeConfig::prop($css,'#prelude, #prelude a','color',$s['prelude_c']); 
     268 
     269          dcThemeConfig::prop($css,'#footer p','background-color',$s['footer_bg_c']); 
     270          dcThemeConfig::prop($css,'#footer p','color',$s['footer_c']); 
     271          dcThemeConfig::prop($css,'#footer p','font-size',$s['footer_s']); 
     272          dcThemeConfig::prop($css,'#footer p','font-family',self::fontDef($s['footer_f'])); 
     273          dcThemeConfig::prop($css,'#footer p a','color',$s['footer_l_c']); 
    306274 
    307275          /* Images 
     
    343311     } 
    344312 
    345      protected static function prop(&$css,$selector,$prop,$value) 
    346      { 
    347           if ($value) { 
    348                $css[$selector][$prop] = $value; 
    349           } 
    350      } 
    351  
    352      protected static function backgroundImg(&$css,$selector,$value,$image) 
    353      { 
    354           $file = self::imagesPath().'/'.$image; 
    355           if ($value && file_exists($file)){ 
    356                $css[$selector]['background-image'] = 'url('.self::imagesURL().'/'.$image.')'; 
    357           } 
    358      } 
    359  
    360      private static function writeCss($theme,$css) 
    361      { 
    362           file_put_contents(self::cssPath().'/'.$theme.'.css', $css); 
    363      } 
    364  
    365      public static function dropCss($theme) 
    366      { 
    367           $file = path::real(self::cssPath().'/'.$theme.'.css'); 
    368           if (is_writable(dirname($file))) { 
    369                @unlink($file); 
    370           } 
    371      } 
    372  
    373      public static function publicCssUrlHelper() 
    374      { 
    375           $theme = $GLOBALS['core']->blog->settings->system->theme; 
    376           $url = blowupConfig::cssURL(); 
    377           $path = blowupConfig::cssPath(); 
    378  
    379           if (file_exists($path.'/'.$theme.'.css')) { 
    380                return $url.'/'.$theme.'.css'; 
    381           } 
    382  
    383           return null; 
    384      } 
    385  
    386      public static function imagesPath() 
    387      { 
    388           global $core; 
    389           return path::real($core->blog->public_path).'/blowup-images'; 
    390      } 
    391  
    392      public static function imagesURL() 
    393      { 
    394           global $core; 
    395           return $core->blog->settings->system->public_url.'/blowup-images'; 
    396      } 
    397  
    398      public static function canWriteImages($create=false) 
    399      { 
    400           global $core; 
    401  
    402           $public = path::real($core->blog->public_path); 
    403           $imgs = self::imagesPath(); 
    404  
    405           if (!function_exists('imagecreatetruecolor') || !function_exists('imagepng') || !function_exists('imagecreatefrompng')) { 
    406                $core->error->add(__('At least one of the following functions is not available: '. 
    407                     'imagecreatetruecolor, imagepng & imagecreatefrompng.')); 
    408                return false; 
    409           } 
    410  
    411           if (!is_dir($public)) { 
    412                $core->error->add(__('The \'public\' directory does not exist.')); 
    413                return false; 
    414           } 
    415  
    416           if (!is_dir($imgs)) { 
    417                if (!is_writable($public)) { 
    418                     $core->error->add(sprintf(__('The \'%s\' directory cannot be modified.'),'public')); 
    419                     return false; 
    420                } 
    421                if ($create) { 
    422                     files::makeDir($imgs); 
    423                } 
    424                return true; 
    425           } 
    426  
    427           if (!is_writable($imgs)) { 
    428                $core->error->add(sprintf(__('The \'%s\' directory cannot be modified.'),'public/blowup-images')); 
    429                return false; 
    430           } 
    431  
    432           return true; 
    433      } 
    434  
    435      public static function uploadImage($f) 
    436      { 
    437           if (!self::canWriteImages(true)) { 
    438                throw new Exception(__('Unable to create images.')); 
    439           } 
    440  
    441           $name = $f['name']; 
    442           $type = files::getMimeType($name); 
    443  
    444           if ($type != 'image/jpeg' && $type != 'image/png') { 
    445                throw new Exception(__('Invalid file type.')); 
    446           } 
    447  
    448           $dest = self::imagesPath().'/uploaded'.($type == 'image/png' ? '.png' : '.jpg'); 
    449  
    450           if (@move_uploaded_file($f['tmp_name'],$dest) === false) { 
    451                throw new Exception(__('An error occurred while writing the file.')); 
    452           } 
    453  
    454           $s = getimagesize($dest); 
    455           if ($s[0] != 800) { 
    456                throw new Exception(__('Uploaded image is not 800 pixels wide.')); 
    457           } 
    458  
    459           return $dest; 
    460      } 
    461  
    462313     public static function createImages(&$config,$uploaded) 
    463314     { 
     
    510361          self::dropImage(basename($comment_b)); 
    511362 
    512           $body_color = self::adjustColor($body_color); 
    513           $prelude_color = self::adjustColor($prelude_color); 
    514           $comment_color = self::adjustColor($comment_color); 
     363          $body_color = dcThemeConfig::adjustColor($body_color); 
     364          $prelude_color = dcThemeConfig::adjustColor($prelude_color); 
     365          $comment_color = dcThemeConfig::adjustColor($comment_color); 
    515366 
    516367          if ($top_image || $body_color || $gradient != 'light' || $prelude_color || $uploaded) 
     
    657508     } 
    658509 
    659      public static function dropImage($img) 
    660      { 
    661           $img = path::real(self::imagesPath().'/'.$img); 
    662           if (is_writable(dirname($img))) { 
    663                @unlink($img); 
    664                @unlink(dirname($img).'/.'.basename($img,'.png').'_sq.jpg'); 
    665                @unlink(dirname($img).'/.'.basename($img,'.png').'_m.jpg'); 
    666                @unlink(dirname($img).'/.'.basename($img,'.png').'_s.jpg'); 
    667                @unlink(dirname($img).'/.'.basename($img,'.png').'_sq.jpg'); 
    668                @unlink(dirname($img).'/.'.basename($img,'.png').'_t.jpg'); 
    669           } 
    670      } 
    671510} 
Note: See TracChangeset for help on using the changeset viewer.

Sites map