Changeset 2657:264ffd49d238 for plugins
- Timestamp:
- 02/13/14 13:55:06 (11 years ago)
- Branch:
- default
- Location:
- plugins/blowupConfig
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
plugins/blowupConfig/index.php
r2566 r2657 108 108 { 109 109 $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']); 113 113 114 114 $blowup_user['blog_title_hide'] = (integer) !empty($_POST['blog_title_hide']); … … 122 122 { 123 123 $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']); 126 126 $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']); 128 128 } 129 129 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']); 133 133 134 134 $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']); 137 137 $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']); 140 140 $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']); 147 147 148 148 $blowup_user['sidebar_position'] = ($_POST['sidebar_position'] == 'left') ? 'left' : null; 149 149 150 150 $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']); 153 153 154 154 $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']); 159 159 160 160 161 161 $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']); 169 169 170 170 if ($can_write_images) … … 183 183 $blowup_user['top_image'] = in_array($_POST['top_image'],$top_images) ? $_POST['top_image'] : 'default'; 184 184 185 $blowup_user['body_bg_c'] = blowupConfig::adjustColor($_POST['body_bg_c']);185 $blowup_user['body_bg_c'] = dcThemeConfig::adjustColor($_POST['body_bg_c']); 186 186 $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']); 190 190 blowupConfig::createImages($blowup_user,$uploaded); 191 191 } -
plugins/blowupConfig/lib/class.blowup.config.php
r2566 r2657 14 14 class blowupConfig 15 15 { 16 protected static $css_folder = 'blowup-css'; 17 protected static $img_folder = 'blowup-images'; 18 16 19 protected static $fonts = array( 17 20 'sans-serif' => array( … … 90 93 } 91 94 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 144 95 public static function cssPath() 145 96 { 146 global $core; 147 return path::real($core->blog->public_path).'/blowup-css'; 97 return dcThemeConfig::cssPath(self::$css_folder); 148 98 } 149 99 150 100 public static function cssURL() 151 101 { 152 global $core; 153 return $core->blog->settings->system->public_url.'/blowup-css'; 102 return dcThemeConfig::cssURL(self::$css_folder); 154 103 } 155 104 156 105 public static function canWriteCss($create=false) 157 106 { 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); 185 153 } 186 154 … … 205 173 /* Properties 206 174 ---------------------------------------------- */ 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']); 215 183 216 184 if (!$s['blog_title_hide']) 217 185 { 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'])); 221 189 222 190 if ($s['blog_title_a'] == 'right' || $s['blog_title_a'] == 'left') { … … 237 205 else 238 206 { 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'); 241 209 $css['#top h1 a'] = array( 242 210 'display' => 'block', … … 245 213 ); 246 214 } 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']); 306 274 307 275 /* Images … … 343 311 } 344 312 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 462 313 public static function createImages(&$config,$uploaded) 463 314 { … … 510 361 self::dropImage(basename($comment_b)); 511 362 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); 515 366 516 367 if ($top_image || $body_color || $gradient != 'light' || $prelude_color || $uploaded) … … 657 508 } 658 509 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 }671 510 }
Note: See TracChangeset
for help on using the changeset viewer.