function upgrade_css_140_to_160($name, $css) { // Update our CSS to the new stuff in 1.6 $parsed_css = css_to_array($css); if ($name == "global.css") { if (is_array($parsed_css)) { foreach ($parsed_css as $class_id => $array) { switch ($array['class_name']) { case '.navigation .active': $parsed_css[$class_id]['values'] = str_replace('font-size: small;', 'font-size: 13px;', $array['values']); break; case '.highlight': $parsed_css[$class_id]['values'] = str_replace('padding: 3px;', "padding-top: 3px;\n\tpadding-bottom: 3px;", $array['values']); break; case '.pm_alert': case '.red_alert': $parsed_css[$class_id]['values'] .= "\n\tmargin-bottom: 15px;"; break; case '.pagination .pagination_current': $parsed_css[$class_id]['values'] .= "\n\tcolor: #000;"; break; default: } } } $to_add = array(md5('#panel .remember_me input') => array("class_name" => '#panel .remember_me input', "values" => "vertical-align: middle;\n\tmargin-top: -1px;"), md5('.hiddenrow') => array("class_name" => '.hiddenrow', "values" => 'display: none;'), md5('.selectall') => array("class_name" => '.selectall', "values" => "background-color: #FFFBD9;\n\tfont-weight: bold;\n\ttext-align: center;"), md5('.repbox') => array("class_name" => '.repbox', "values" => "font-size:16px;\n\tfont-weight: bold;\n\tpadding:5px 7px 5px 7px;"), md5('._neutral') => array("class_name" => '._neutral', "values" => "background-color:#FAFAFA;\n\tcolor: #999999;\n\tborder:1px solid #CCCCCC;"), md5('._minus') => array("class_name" => '._minus', "values" => "background-color: #FDD2D1;\n\tcolor: #CB0200;\n\tborder:1px solid #980201;"), md5('._plus') => array("class_name" => '._plus', "values" => "background-color:#E8FCDC;\n\tcolor: #008800;\n\tborder:1px solid #008800;"), md5('.pagination_breadcrumb') => array("class_name" => '.pagination_breadcrumb', "values" => "background-color: #f5f5f5;\n\tborder: 1px solid #fff;\n\toutline: 1px solid #ccc;\n\tpadding: 5px;\n\tmargin-top: 5px;\n\tfont-weight: normal;"), md5('.pagination_breadcrumb_link') => array("class_name" => '.pagination_breadcrumb_link', "values" => "vertical-align: middle;\n\tcursor: pointer;")); } else { if ($name == "usercp.css") { $to_add = array(md5('.usercp_notepad') => array("class_name" => '.usercp_notepad', "values" => "width: 99%;"), md5('.usercp_container') => array("class_name" => '.usercp_container', "values" => "margin: 5px;\n\tpadding: 8px;\n\tborder:1px solid #CCCCCC;")); } } foreach ($to_add as $class_id => $array) { if ($already_parsed[$class_id]) { $already_parsed[$class_id]++; $class_id .= "_" . $already_parsed[$class_id]; } else { $already_parsed[$class_id] = 1; } $array['name'] = ""; $array['description'] = ""; $parsed_css[$class_id] = $array; } $css = ""; foreach ($parsed_css as $class_id => $array) { if ($array['name'] || $array['description']) { $theme['css'] .= "/* "; if ($array['name']) { $array['css'] .= "Name: {$array['name']}"; if ($array['description']) { $array['css'] .= "\n"; } } if ($array['description']) { $array['css'] .= "Description: {$array['description']}"; } $array['css'] .= " */\n"; } $css .= "{$array['class_name']} {\n\t{$array['values']}\n}\n"; } return $css; }
admin_redirect("index.php?module=style-themes&action=edit&tid={$theme['tid']}"); } else { admin_redirect("index.php?module=style-themes&action=edit_stylesheet&tid={$theme['tid']}&file={$stylesheet['name']}"); } } else { echo "1"; exit; } } // Has the file on the file system been modified? if (resync_stylesheet($stylesheet)) { // Need to refetch new stylesheet as it was modified $query = $db->simple_select("themestylesheets", "stylesheet", "sid='{$stylesheet['sid']}'"); $stylesheet['stylesheet'] = $db->fetch_field($query, 'stylesheet'); } $css_array = css_to_array($stylesheet['stylesheet']); $selector_list = get_selectors_as_options($css_array, $mybb->input['selector']); // Do we not have any selectors? Send em to the full edit page if (!$selector_list) { flash_message($lang->error_cannot_parse, 'error'); admin_redirect("index.php?module=style-themes&action=edit_stylesheet&tid={$theme['tid']}&file=" . htmlspecialchars_uni($stylesheet['name']) . "&mode=advanced"); exit; } // Fetch list of all of the stylesheets for this theme $stylesheets = fetch_theme_stylesheets($theme); $this_stylesheet = $stylesheets[$stylesheet['name']]; unset($stylesheets); $page->extra_header .= "\n\t<script type=\"text/javascript\">\n\tvar my_post_key = '" . $mybb->post_code . "';\n\t</script>"; $page->add_breadcrumb_item(htmlspecialchars_uni($theme['name']), "index.php?module=style-themes&action=edit&tid={$mybb->input['tid']}"); $page->add_breadcrumb_item("{$lang->editing} " . htmlspecialchars_uni($stylesheet['name']), "index.php?module=style-themes&action=edit_stylesheet&tid={$mybb->input['tid']}&file=" . htmlspecialchars_uni($mybb->input['file']) . "&mode=simple"); $page->output_header("{$lang->themes} - {$lang->edit_stylesheets}");
function upgrade_css_120_to_140($css) { // Update our CSS to the new stuff in 1.4 $parsed_css = css_to_array($css); if (!is_array($parsed_css)) { return ""; } foreach ($parsed_css as $class_id => $array) { $parsed_css[$class_id]['values'] = str_replace('#eea8a1', '#ffdde0', $array['values']); $parsed_css[$class_id]['values'] = str_replace('font-family: Verdana;', 'font-family: Verdana, Arial, Sans-Serif;', $array['values']); switch ($array['class_name']) { case '.bottommenu': $parsed_css[$class_id]['values'] = str_replace('padding: 6px;', 'padding: 10px;', $array['values']); break; case '.expcolimage': $parsed_css[$class_id]['values'] .= "\n\tmargin-top: 2px;"; break; case '.toolbar_normal': case '.toolbar_hover': case '.toolbar_clicked': case '.pagenav': case '.pagenavbit': case '.pagenavbit a': case '.pagenavcurrent': case '.quote_header': case '.quote_body': case '.code_header': case '.code_body': case '.usercpnav': case '.usercpnav li': case '.usercpnav .pmfolders': case '.usercpnav li': case '.usercpnav li': unset($parsed_css[$class_id]); break; default: } } $to_add = array(md5('.trow_selected td') => array("class_name" => '.trow_selected td', "values" => 'background: #FFFBD9;'), md5('blockquote') => array("class_name" => 'blockquote', "values" => "border: 1px solid #ccc;\n\tmargin: 0;\n\tbackground: #fff;\n\tpadding: 4px;"), md5('blockquote cite') => array("class_name" => 'blockquote cite', "values" => "font-weight: bold;\n\tborder-bottom: 1px solid #ccc;\n\tfont-style: normal;\n\tdisplay: block;\n\tmargin: 4px 0;"), md5('blockquote cite span') => array("class_name" => 'blockquote cite span', "values" => "float: right;\n\tfont-weight: normal;"), md5('.codeblock') => array("class_name" => '.codeblock', "values" => "background: #fff;\n\tborder: 1px solid #ccc;\n\tpadding: 4px;"), md5('.codeblock .title') => array("class_name" => '.codeblock .title', "values" => "border-bottom: 1px solid #ccc;\n\tfont-weight: bold;\n\tmargin: 4px 0;"), md5('.codeblock code') => array("class_name" => '.codeblock code', "values" => "overflow: auto;\n\theight: auto;\n\tmax-height: 200px;\n\tdisplay: block;\n\tfont-family: Monaco, Consolas, Courier, monospace;\n\tfont-size: 13px;"), md5('.subject_new') => array("class_name" => '.subject_new', "values" => "font-weight: bold;"), md5('.highlight') => array("class_name" => '.highlight', "values" => "background: #FFFFCC;\n\tpadding: 3px;"), md5('.pm_alert') => array("class_name" => '.pm_alert', "values" => "background: #FFF6BF;\n\tborder: 1px solid #FFD324;\n\ttext-align: center;\n\tpadding: 5px 20px;\n\tfont-size: 11px;"), md5('.red_alert') => array("class_name" => '.red_alert', "values" => "background: #FBE3E4;\n\tborder: 1px solid #A5161A;\n\tcolor: #A5161A;\n\ttext-align: center;\n\tpadding: 5px 20px;\n\tfont-size: 11px;"), md5('.high_warning') => array("class_name" => '.high_warning', "values" => "color: #CC0000;"), md5('.moderate_warning') => array("class_name" => '.moderate_warning', "values" => "color: #F3611B;"), md5('.low_warning') => array("class_name" => '.low_warning', "values" => "color: #AE5700;"), md5('div.error') => array("class_name" => 'div.error', "values" => "padding: 5px 10px;\n\tborder-top: 2px solid #FFD324;\n\tborder-bottom: 2px solid #FFD324;\n\tbackground: #FFF6BF\n\tfont-size: 12px;"), md5('.high_warning') => array("class_name" => '.high_warning', "values" => "color: #CC0000;"), md5('.moderate_warning') => array("class_name" => '.moderate_warning', "values" => "color: #F3611B;"), md5('.low_warning') => array("class_name" => '.low_warning', "values" => "color: #AE5700;"), md5('div.error') => array("class_name" => 'div.error', "values" => "padding: 5px 10px;\n\tborder-top: 2px solid #FFD324;\n\tborder-bottom: 2px solid #FFD324;\n\tbackground: #FFF6BF;\n\tfont-size: 12px;"), md5('div.error p') => array("class_name" => 'div.error p', "values" => "margin: 0;\n\tcolor: #000;\n\tfont-weight: normal;"), md5('div.error p em') => array("class_name" => 'div.error p em', "values" => "font-style: normal;\n\tfont-weight: bold;\n\tpadding-left: 24px;\n\tdisplay: block;\n\tcolor: #C00;\n\tbackground: url({$mybb->settings['bburl']}/images/error.gif) no-repeat 0;"), md5('div.error.ul') => array("class_name" => 'div.error.ul', "values" => "margin-left: 24px;"), md5('.online') => array("class_name" => '.online', "values" => "color: #15A018;"), md5('.offline') => array("class_name" => '.offline', "values" => "color: #C7C7C7;"), md5('.pagination') => array("class_name" => '.pagination', "values" => "font-size: 11px;\n\tpadding-top: 10px;\n\tmargin-bottom: 5px;"), md5('.tfoot .pagination, .tcat .pagination') => array("class_name" => '.tfoot .pagination, .tcat .pagination', "values" => "padding-top: 0;"), md5('.pagination .pages') => array("class_name" => '.pagination .pages', "values" => "font-weight: bold;"), md5('.pagination .pagination_current, .pagination a') => array("class_name" => '.pagination .pagination_current, .pagination a', "values" => "padding: 2px 6px;\n\tmargin-bottom: 3px;"), md5('.pagination a') => array("class_name" => '.pagination a', "values" => "border: 1px solid #81A2C4;"), md5('.pagination .pagination_current') => array("class_name" => '.pagination .pagination_current', "values" => "background: #F5F5F5;\n\tborder: 1px solid #81A2C4;\n\tfont-weight: bold;"), md5('.pagination a:hover') => array("class_name" => '.pagination a:hover', "values" => "background: #F5F5F5;\n\ttext-decoration: none;"), md5('.thread_legend, .thread_legend dd') => array("class_name" => '.thread_legend, .thread_legend dd', "values" => "margin: 0;\n\tpadding: 0;"), md5('.thread_legend dd') => array("class_name" => '.thread_legend dd', "values" => "padding-bottom: 4px;\n\tmargin-right: 15px;"), md5('.thread_legend img') => array("class_name" => '.thread_legend img', "values" => "margin-right: 4px;\n\tvertical-align: bottom;"), md5('.forum_legend, .forum_legend dt, .forum_legend dd') => array("class_name" => '.forum_legend, .forum_legend dt, .forum_legend dd', "values" => "margin: 0;\n\tpadding: 0;"), md5('.forum_legend dd') => array("class_name" => '.forum_legend dd', "values" => "float: left;\n\tmargin-right: 10px;"), md5('.forum_legend dt') => array("class_name" => '.forum_legend dt', "values" => "margin-right: 10px;\n\tfloat: left;"), md5('.success_message') => array("class_name" => '.success_message', "values" => "color: #00b200;\n\tfont-weight: bold;\n\tfont-size: 10px;\n\tmargin-bottom: 10px;"), md5('.error_message') => array("class_name" => '.error_message', "values" => "color: #C00;\n\tfont-weight: bold;\n\tfont-size: 10px;\n\tmargin-bottom: 10px;"), md5('.post_body') => array("class_name" => '.post_body', "values" => "padding: 5px;"), md5('.post_content') => array("class_name" => '.post_content', "values" => "padding: 5px 10px;"), md5('.invalid_field') => array("class_name" => '.invalid_field', "values" => "border: 1px solid #f30;\n\tcolor: #f30;"), md5('.valid_field') => array("class_name" => '.valid_field', "values" => "border: 1px solid #0c0;"), md5('.validation_error') => array("class_name" => '.validation_error', "values" => "background: url(images/invalid.gif) no-repeat center left;\n\tcolor: #f30;\n\tmargin: 5px 0;\n\tpadding: 5px;\n\tfont-weight: bold;\n\tfont-size: 11px;\n\tpadding-left: 22px;"), md5('.validation_success') => array("class_name" => '.validation_success', "values" => "background: url(images/valid.gif) no-repeat center left;\n\tcolor: #00b200;\n\tmargin: 5px 0;\n\tpadding: 5px;\n\tfont-weight: bold;\n\tfont-size: 11px;\n\tpadding-left: 22px;"), md5('.validation_loading') => array("class_name" => '.validation_loading', "values" => "background: url(images/spinner.gif) no-repeat center left;\n\tcolor: #555;\n\tmargin: 5px 0;\n\tpadding: 5px;\n\tfont-weight: bold;\n\tfont-size: 11px;\n\tpadding-left: 22px;")); foreach ($to_add as $class_id => $array) { if ($already_parsed[$class_id]) { $already_parsed[$class_id]++; $class_id .= "_" . $already_parsed[$class_id]; } else { $already_parsed[$class_id] = 1; } $array['name'] = ""; $array['description'] = ""; $parsed_css[$class_id] = $array; } $css = ""; foreach ($parsed_css as $class_id => $array) { if ($array['name'] || $array['description']) { $theme['css'] .= "/* "; if ($array['name']) { $array['css'] .= "Name: {$array['name']}"; if ($array['description']) { $array['css'] .= "\n"; } } if ($array['description']) { $array['css'] .= "Description: {$array['description']}"; } $array['css'] .= " */\n"; } $css .= "{$array['class_name']} {\n\t{$array['values']}\n}\n"; } return $css; }