1*7d666900SdWiGhT<?php 2*7d666900SdWiGhT 3*7d666900SdWiGhT/** 4*7d666900SdWiGhT * CSSTidy - CSS Optimiser Interface 5*7d666900SdWiGhT * This file produces an XHTML interface for optimising CSS code 6*7d666900SdWiGhT * 7*7d666900SdWiGhT * Copyright 2005, 2006, 2007 Florian Schmitz 8*7d666900SdWiGhT * 9*7d666900SdWiGhT * This file is part of CSSTidy. 10*7d666900SdWiGhT * 11*7d666900SdWiGhT * CSSTidy is free software; you can redistribute it and/or modify 12*7d666900SdWiGhT * it under the terms of the GNU Lesser General Public License as published by 13*7d666900SdWiGhT * the Free Software Foundation; either version 2.1 of the License, or 14*7d666900SdWiGhT * (at your option) any later version. 15*7d666900SdWiGhT * 16*7d666900SdWiGhT * CSSTidy is distributed in the hope that it will be useful, 17*7d666900SdWiGhT * but WITHOUT ANY WARRANTY; without even the implied warranty of 18*7d666900SdWiGhT * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 19*7d666900SdWiGhT * GNU Lesser General Public License for more details. 20*7d666900SdWiGhT * 21*7d666900SdWiGhT * You should have received a copy of the GNU Lesser General Public License 22*7d666900SdWiGhT * along with this program. If not, see <http://www.gnu.org/licenses/>. 23*7d666900SdWiGhT * 24*7d666900SdWiGhT * @license http://opensource.org/licenses/lgpl-license.php GNU Lesser General Public License 25*7d666900SdWiGhT * @package csstidy 26*7d666900SdWiGhT * @author Florian Schmitz (floele at gmail dot com) 2005-2007 27*7d666900SdWiGhT * @author Brett Zamir (brettz9 at yahoo dot com) 2007 28*7d666900SdWiGhT */ 29*7d666900SdWiGhT 30*7d666900SdWiGhTrequire('class.csstidy.php'); 31*7d666900SdWiGhTrequire('lang.inc.php'); 32*7d666900SdWiGhT 33*7d666900SdWiGhTif (!file_exists(__DIR__ . DIRECTORY_SEPARATOR . ".unlock_css_optimiser")) { 34*7d666900SdWiGhT print 'Access Denied. Add a file `.unlock_css_optimiser` to the directory to unlock css_optimiser'; 35*7d666900SdWiGhT exit; 36*7d666900SdWiGhT} 37*7d666900SdWiGhT 38*7d666900SdWiGhT 39*7d666900SdWiGhTif (function_exists('get_magic_quotes_gpc') && get_magic_quotes_gpc()) { 40*7d666900SdWiGhT if (isset($_REQUEST['css_text'])) { 41*7d666900SdWiGhT $_REQUEST['css_text'] = stripslashes($_REQUEST['css_text']); 42*7d666900SdWiGhT } 43*7d666900SdWiGhT if (isset($_REQUEST['custom'])) { 44*7d666900SdWiGhT $_REQUEST['custom'] = stripslashes($_REQUEST['custom']); 45*7d666900SdWiGhT } 46*7d666900SdWiGhT if (isset($_COOKIE['custom_template'])) { 47*7d666900SdWiGhT $_COOKIE['custom_template'] = stripslashes($_COOKIE['custom_template']); 48*7d666900SdWiGhT } 49*7d666900SdWiGhT} 50*7d666900SdWiGhT 51*7d666900SdWiGhTfunction rmdirr($dirname,$oc=0) 52*7d666900SdWiGhT{ 53*7d666900SdWiGhT // Sanity check 54*7d666900SdWiGhT if (!file_exists($dirname)) { 55*7d666900SdWiGhT return false; 56*7d666900SdWiGhT } 57*7d666900SdWiGhT // Simple delete for a file 58*7d666900SdWiGhT if (is_file($dirname) && (time()-fileatime($dirname))>3600) { 59*7d666900SdWiGhT return unlink($dirname); 60*7d666900SdWiGhT } 61*7d666900SdWiGhT // Loop through the folder 62*7d666900SdWiGhT if (is_dir($dirname)) { 63*7d666900SdWiGhT $dir = dir($dirname); 64*7d666900SdWiGhT while (false !== $entry = $dir->read()) { 65*7d666900SdWiGhT // Skip pointers 66*7d666900SdWiGhT if ($entry === '.' || $entry === '..') { 67*7d666900SdWiGhT continue; 68*7d666900SdWiGhT } 69*7d666900SdWiGhT // Recurse 70*7d666900SdWiGhT rmdirr($dirname.'/'.$entry,$oc); 71*7d666900SdWiGhT } 72*7d666900SdWiGhT $dir->close(); 73*7d666900SdWiGhT } 74*7d666900SdWiGhT // Clean up 75*7d666900SdWiGhT if ($oc==1) { 76*7d666900SdWiGhT return rmdir($dirname); 77*7d666900SdWiGhT } 78*7d666900SdWiGhT} 79*7d666900SdWiGhT 80*7d666900SdWiGhTfunction options($options, $selected = null, $labelIsValue = false) 81*7d666900SdWiGhT{ 82*7d666900SdWiGhT $html = ''; 83*7d666900SdWiGhT 84*7d666900SdWiGhT settype($selected, 'array'); 85*7d666900SdWiGhT settype($options, 'array'); 86*7d666900SdWiGhT 87*7d666900SdWiGhT foreach ($options as $value=>$label) { 88*7d666900SdWiGhT if (is_array($label)) { 89*7d666900SdWiGhT $value = $label[0]; 90*7d666900SdWiGhT $label = $label[1]; 91*7d666900SdWiGhT } 92*7d666900SdWiGhT $label = htmlspecialchars($label, ENT_QUOTES, 'utf-8'); 93*7d666900SdWiGhT $value = $labelIsValue ? $label 94*7d666900SdWiGhT : htmlspecialchars($value, ENT_QUOTES, 'utf-8'); 95*7d666900SdWiGhT 96*7d666900SdWiGhT $html .= '<option value="'.$value.'"'; 97*7d666900SdWiGhT if (in_array($value, $selected)) { 98*7d666900SdWiGhT $html .= ' selected="selected"'; 99*7d666900SdWiGhT } 100*7d666900SdWiGhT $html .= '>'.$label.'</option>'; 101*7d666900SdWiGhT } 102*7d666900SdWiGhT if (!$html) { 103*7d666900SdWiGhT $html .= '<option value="0">---</option>'; 104*7d666900SdWiGhT } 105*7d666900SdWiGhT 106*7d666900SdWiGhT return $html; 107*7d666900SdWiGhT} 108*7d666900SdWiGhT 109*7d666900SdWiGhT$css = new csstidy(); 110*7d666900SdWiGhT$is_custom = isset($_REQUEST['custom']) && !empty($_REQUEST['custom']) && isset($_REQUEST['template']) && ($_REQUEST['template'] === '4'); 111*7d666900SdWiGhTif ($is_custom) 112*7d666900SdWiGhT{ 113*7d666900SdWiGhT setcookie ('custom_template', $_REQUEST['custom'], time()+360000); 114*7d666900SdWiGhT} 115*7d666900SdWiGhT 116*7d666900SdWiGhTrmdirr('temp'); 117*7d666900SdWiGhT 118*7d666900SdWiGhTif (isset($_REQUEST['case_properties'])) $css->set_cfg('case_properties',$_REQUEST['case_properties']); 119*7d666900SdWiGhTif (isset($_REQUEST['lowercase'])) $css->set_cfg('lowercase_s',true); 120*7d666900SdWiGhTif (!isset($_REQUEST['compress_c']) && isset($_REQUEST['post'])) $css->set_cfg('compress_colors',false); 121*7d666900SdWiGhTif (!isset($_REQUEST['compress_fw']) && isset($_REQUEST['post'])) $css->set_cfg('compress_font-weight',false); 122*7d666900SdWiGhTif (isset($_REQUEST['merge_selectors'])) $css->set_cfg('merge_selectors', $_REQUEST['merge_selectors']); 123*7d666900SdWiGhTif (isset($_REQUEST['optimise_shorthands'])) $css->set_cfg('optimise_shorthands',$_REQUEST['optimise_shorthands']); 124*7d666900SdWiGhTif (!isset($_REQUEST['rbs']) && isset($_REQUEST['post'])) $css->set_cfg('remove_bslash',false); 125*7d666900SdWiGhTif (isset($_REQUEST['preserve_css'])) $css->set_cfg('preserve_css',true); 126*7d666900SdWiGhTif (isset($_REQUEST['sort_sel'])) $css->set_cfg('sort_selectors',true); 127*7d666900SdWiGhTif (isset($_REQUEST['sort_de'])) $css->set_cfg('sort_properties',true); 128*7d666900SdWiGhTif (isset($_REQUEST['remove_last_sem'])) $css->set_cfg('remove_last_;',true); 129*7d666900SdWiGhTif (isset($_REQUEST['discard'])) $css->set_cfg('discard_invalid_properties',true); 130*7d666900SdWiGhTif (isset($_REQUEST['css_level'])) $css->set_cfg('css_level',$_REQUEST['css_level']); 131*7d666900SdWiGhTif (isset($_REQUEST['timestamp'])) $css->set_cfg('timestamp',true); 132*7d666900SdWiGhTif (isset($_REQUEST['rtl'])) $css->set_cfg('reverse_left_and_right',true); 133*7d666900SdWiGhT 134*7d666900SdWiGhT 135*7d666900SdWiGhT// This by itself is enough since our scripts don't use DOM to create elements (in which case the namespace aware ones 136*7d666900SdWiGhT// should be used when serving as application/xhtml+xml but not when served as text/html ; 137*7d666900SdWiGhT// also, case will be different when retrieving element names, as HTML DOM returns in upper case, 138*7d666900SdWiGhT// genuine XHTML DOM (when XHTML served as such) as lower 139*7d666900SdWiGhTif (stristr($_SERVER['HTTP_ACCEPT'], 'application/xhtml+xml')) { 140*7d666900SdWiGhT $http_accept = 'application/xhtml+xml'; 141*7d666900SdWiGhT} elseif (stristr($_SERVER['HTTP_ACCEPT'], 'application/xml')) { 142*7d666900SdWiGhT $http_accept = 'application/xml'; 143*7d666900SdWiGhT} elseif (stristr($_SERVER['HTTP_ACCEPT'], 'text/xml')) { 144*7d666900SdWiGhT $http_accept = 'text/xml'; 145*7d666900SdWiGhT} elseif (stristr($_SERVER['HTTP_USER_AGENT'], 'Opera ') || stristr($_SERVER['HTTP_USER_AGENT'], 'Opera/')) { 146*7d666900SdWiGhT preg_match('@Opera/(\d)@', $_SERVER['HTTP_USER_AGENT'], $matches); 147*7d666900SdWiGhT if (isset($matches[1]) && $matches[1] >= 7) { 148*7d666900SdWiGhT $http_accept = 'application/xhtml+xml'; 149*7d666900SdWiGhT } else { 150*7d666900SdWiGhT $http_accept = 'text/html'; 151*7d666900SdWiGhT } 152*7d666900SdWiGhT} else { 153*7d666900SdWiGhT $http_accept = 'text/html'; 154*7d666900SdWiGhT} 155*7d666900SdWiGhT 156*7d666900SdWiGhTheader('Content-Type: '.$http_accept.'; charset=utf-8'); 157*7d666900SdWiGhT 158*7d666900SdWiGhTif ($http_accept === 'text/html') { 159*7d666900SdWiGhT 160*7d666900SdWiGhT?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" 161*7d666900SdWiGhT "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> 162*7d666900SdWiGhT<?php 163*7d666900SdWiGhT} else { 164*7d666900SdWiGhT 165*7d666900SdWiGhT?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"> 166*7d666900SdWiGhT<?php 167*7d666900SdWiGhT} 168*7d666900SdWiGhT 169*7d666900SdWiGhT?><html xmlns="http://www.w3.org/1999/xhtml" xml:lang="<?php echo $l; ?>"> 170*7d666900SdWiGhT <head> 171*7d666900SdWiGhT <meta http-equiv="Content-Type" content="application/xhtml+xml; charset=utf-8" /> 172*7d666900SdWiGhT <title> 173*7d666900SdWiGhT <?php echo $lang[$l][0]; echo $css->version; ?>) 174*7d666900SdWiGhT </title> 175*7d666900SdWiGhT <link rel="stylesheet" href="cssparse.css" type="text/css" /> 176*7d666900SdWiGhT <script type="text/javascript"><!--/*--><![CDATA[/*><!--*/ 177*7d666900SdWiGhT function enable_disable_preserve() { 178*7d666900SdWiGhT var inputs = new Array('sort_sel', 'sort_de', 'optimise_shorthands', 'merge_selectors', 'none'); 179*7d666900SdWiGhT var inputs_v = new Array( true, true, true, true, false); 180*7d666900SdWiGhT for (var i = 0; i < inputs.length; i++) { 181*7d666900SdWiGhT if (document.getElementById('preserve_css').checked) { 182*7d666900SdWiGhT document.getElementById(inputs[i]).disabled = inputs_v[i]; 183*7d666900SdWiGhT } else { 184*7d666900SdWiGhT document.getElementById(inputs[i]).disabled = !inputs_v[i]; 185*7d666900SdWiGhT } 186*7d666900SdWiGhT } 187*7d666900SdWiGhT } 188*7d666900SdWiGhT function ClipBoard() { 189*7d666900SdWiGhT if (window.clipboardData) { // Feature testing 190*7d666900SdWiGhT window.clipboardData.setData('Text',document.getElementById("copytext").innerText); 191*7d666900SdWiGhT } else if (navigator.userAgent.indexOf('Gecko') != -1 192*7d666900SdWiGhT && navigator.userAgent.indexOf('Apple') == -1 193*7d666900SdWiGhT ) { 194*7d666900SdWiGhT try { 195*7d666900SdWiGhT netscape.security.PrivilegeManager.enablePrivilege('UniversalXPConnect'); 196*7d666900SdWiGhT const gClipboardHelper = Components.classes["@mozilla.org/widget/clipboardhelper;1"]. 197*7d666900SdWiGhT getService(Components.interfaces.nsIClipboardHelper); 198*7d666900SdWiGhT gClipboardHelper.copyString(document.getElementById("copytext").innerHTML); 199*7d666900SdWiGhT } 200*7d666900SdWiGhT catch (e) { 201*7d666900SdWiGhT alert(e+"\n\n"+"<?php echo $lang[$l][66] ?>"); 202*7d666900SdWiGhT } 203*7d666900SdWiGhT } else { 204*7d666900SdWiGhT alert("<?php echo $lang[$l][60]; ?>"); 205*7d666900SdWiGhT } 206*7d666900SdWiGhT } 207*7d666900SdWiGhT /*]]>*/--> 208*7d666900SdWiGhT </script> 209*7d666900SdWiGhT </head> 210*7d666900SdWiGhT <body onload="enable_disable_preserve()"> 211*7d666900SdWiGhT <div><h1 style="display:inline"> 212*7d666900SdWiGhT <?php echo $lang[$l][1]; ?> 213*7d666900SdWiGhT </h1> 214*7d666900SdWiGhT <?php echo $lang[$l][2]; ?> <a 215*7d666900SdWiGhT href="http://csstidy.sourceforge.net/">csstidy</a> <?php echo $css->version; ?>) 216*7d666900SdWiGhT </div><p> 217*7d666900SdWiGhT <?php echo $lang[$l][39]; ?>: <a hreflang="en" href="?lang=en">English</a> <a hreflang="de" href="?lang=de">Deutsch</a> <a hreflang="fr" href="?lang=fr">French</a> <a hreflang="zh" href="?lang=zh">Chinese</a></p> 218*7d666900SdWiGhT <p><?php echo $lang[$l][4]; ?> 219*7d666900SdWiGhT <?php echo $lang[$l][6]; ?> 220*7d666900SdWiGhT </p> 221*7d666900SdWiGhT 222*7d666900SdWiGhT <form method="post" action=""> 223*7d666900SdWiGhT <div> 224*7d666900SdWiGhT <fieldset id="field_input"> 225*7d666900SdWiGhT <legend><?php echo $lang[$l][8]; ?></legend> <label for="css_text" 226*7d666900SdWiGhT class="block"><?php echo $lang[$l][9]; ?></label><textarea id="css_text" name="css_text" rows="20" cols="35"><?php if (isset($_REQUEST['css_text'])) echo htmlspecialchars($_REQUEST['css_text'], ENT_QUOTES, "utf-8"); ?></textarea> 227*7d666900SdWiGhT <label for="url"><?php echo $lang[$l][10]; ?></label> <input type="text" 228*7d666900SdWiGhT name="url" id="url" <?php if (isset($_REQUEST['url']) && 229*7d666900SdWiGhT !empty($_REQUEST['url'])) echo 'value="',htmlspecialchars($_REQUEST['url'], ENT_QUOTES, 'utf-8'),'"'; ?> 230*7d666900SdWiGhT size="35" /><br /> 231*7d666900SdWiGhT <input type="submit" value="<?php echo $lang[$l][35]; ?>" id="submit" /> 232*7d666900SdWiGhT </fieldset> 233*7d666900SdWiGhT <div id="rightcol"> 234*7d666900SdWiGhT <fieldset id="code_layout"> 235*7d666900SdWiGhT <legend><?php echo $lang[$l][11]; ?></legend> <label for="template" 236*7d666900SdWiGhT class="block"><?php echo $lang[$l][12]; ?></label> <select 237*7d666900SdWiGhT id="template" name="template" style="margin-bottom:1em"> 238*7d666900SdWiGhT <?php 239*7d666900SdWiGhT $num = (isset($_REQUEST['template'])) ? intval($_REQUEST['template']) : 1; 240*7d666900SdWiGhT echo options(array(3 => $lang[$l][13], 2 => $lang[$l][14], 1 => $lang[$l][15], 0 => $lang[$l][16], 4 => $lang[$l][17]), $num); 241*7d666900SdWiGhT ?> 242*7d666900SdWiGhT </select><br /> 243*7d666900SdWiGhT <label for="custom" class="block"> 244*7d666900SdWiGhT <?php echo $lang[$l][18]; ?> </label> <textarea id="custom" 245*7d666900SdWiGhT name="custom" cols="33" rows="4"><?php 246*7d666900SdWiGhT if ($is_custom) echo 247*7d666900SdWiGhT htmlspecialchars($_REQUEST['custom'], ENT_QUOTES, 'utf-8'); 248*7d666900SdWiGhT elseif(isset($_COOKIE['custom_template']) && 249*7d666900SdWiGhT !empty($_COOKIE['custom_template'])) echo 250*7d666900SdWiGhT htmlspecialchars($_COOKIE['custom_template'], ENT_QUOTES, 'utf-8'); 251*7d666900SdWiGhT ?></textarea> 252*7d666900SdWiGhT </fieldset> 253*7d666900SdWiGhT <fieldset id="options"> 254*7d666900SdWiGhT <legend><?php echo $lang[$l][19]; ?></legend> 255*7d666900SdWiGhT 256*7d666900SdWiGhT <input onchange="enable_disable_preserve()" type="checkbox" name="preserve_css" id="preserve_css" 257*7d666900SdWiGhT <?php if ($css->get_cfg('preserve_css')) echo 'checked="checked"'; ?> /> 258*7d666900SdWiGhT <label for="preserve_css" title="<?php echo $lang[$l][52]; ?>" class="help"><?php echo $lang[$l][51]; ?></label><br /> 259*7d666900SdWiGhT 260*7d666900SdWiGhT 261*7d666900SdWiGhT <input type="checkbox" name="sort_sel" id="sort_sel" 262*7d666900SdWiGhT <?php if ($css->get_cfg('sort_selectors')) echo 'checked="checked"'; ?> /> 263*7d666900SdWiGhT <label for="sort_sel" title="<?php echo $lang[$l][41]; ?>" class="help"><?php echo $lang[$l][20]; ?></label><br /> 264*7d666900SdWiGhT 265*7d666900SdWiGhT 266*7d666900SdWiGhT <input type="checkbox" name="sort_de" id="sort_de" 267*7d666900SdWiGhT <?php if ($css->get_cfg('sort_properties')) echo 'checked="checked"'; ?> /> 268*7d666900SdWiGhT <label for="sort_de"><?php echo $lang[$l][21]; ?></label><br /> 269*7d666900SdWiGhT 270*7d666900SdWiGhT 271*7d666900SdWiGhT <label for="merge_selectors"><?php echo $lang[$l][22]; ?></label> 272*7d666900SdWiGhT <select style="width:15em;" name="merge_selectors" id="merge_selectors"> 273*7d666900SdWiGhT <?php echo options(array('0' => $lang[$l][47], '1' => $lang[$l][48], '2' => $lang[$l][49]), $css->get_cfg('merge_selectors')); ?> 274*7d666900SdWiGhT </select><br /> 275*7d666900SdWiGhT 276*7d666900SdWiGhT <label for="optimise_shorthands"><?php echo $lang[$l][23]; ?></label> 277*7d666900SdWiGhT <select name="optimise_shorthands" id="optimise_shorthands"> 278*7d666900SdWiGhT <?php echo options(array($lang[$l][54], $lang[$l][55], $lang[$l][56]), $css->get_cfg('optimise_shorthands')); ?> 279*7d666900SdWiGhT </select><br /> 280*7d666900SdWiGhT 281*7d666900SdWiGhT 282*7d666900SdWiGhT <input type="checkbox" name="compress_c" id="compress_c" 283*7d666900SdWiGhT <?php if ($css->get_cfg('compress_colors')) echo 'checked="checked"';?> /> 284*7d666900SdWiGhT <label for="compress_c"><?php echo $lang[$l][24]; ?></label><br /> 285*7d666900SdWiGhT 286*7d666900SdWiGhT 287*7d666900SdWiGhT <input type="checkbox" name="compress_fw" id="compress_fw" 288*7d666900SdWiGhT <?php if ($css->get_cfg('compress_font-weight')) echo 'checked="checked"';?> /> 289*7d666900SdWiGhT <label for="compress_fw"><?php echo $lang[$l][45]; ?></label><br /> 290*7d666900SdWiGhT 291*7d666900SdWiGhT 292*7d666900SdWiGhT <input type="checkbox" name="lowercase" id="lowercase" value="lowercase" 293*7d666900SdWiGhT <?php if ($css->get_cfg('lowercase_s')) echo 'checked="checked"'; ?> /> 294*7d666900SdWiGhT <label title="<?php echo $lang[$l][30]; ?>" class="help" for="lowercase"><?php echo $lang[$l][25]; ?></label><br /> 295*7d666900SdWiGhT 296*7d666900SdWiGhT 297*7d666900SdWiGhT <?php echo $lang[$l][26]; ?><br /> 298*7d666900SdWiGhT <input type="radio" name="case_properties" id="none" value="0" 299*7d666900SdWiGhT <?php if ($css->get_cfg('case_properties') === 0) echo 'checked="checked"'; ?> /> 300*7d666900SdWiGhT <label for="none"><?php echo $lang[$l][53]; ?></label> 301*7d666900SdWiGhT <input type="radio" name="case_properties" id="lower_yes" value="1" 302*7d666900SdWiGhT <?php if ($css->get_cfg('case_properties') === 1) echo 'checked="checked"'; ?> /> 303*7d666900SdWiGhT <label for="lower_yes"><?php echo $lang[$l][27]; ?></label> 304*7d666900SdWiGhT <input type="radio" name="case_properties" id="upper_yes" value="2" 305*7d666900SdWiGhT <?php if ($css->get_cfg('case_properties') === 2) echo 'checked="checked"'; ?> /> 306*7d666900SdWiGhT <label for="upper_yes"><?php echo $lang[$l][29]; ?></label><br /> 307*7d666900SdWiGhT 308*7d666900SdWiGhT <input type="checkbox" name="rbs" id="rbs" 309*7d666900SdWiGhT <?php if ($css->get_cfg('remove_bslash')) echo 'checked="checked"'; ?> /> 310*7d666900SdWiGhT <label for="rbs"><?php echo $lang[$l][31]; ?></label><br /> 311*7d666900SdWiGhT 312*7d666900SdWiGhT 313*7d666900SdWiGhT <input type="checkbox" id="remove_last_sem" name="remove_last_sem" 314*7d666900SdWiGhT <?php if ($css->get_cfg('remove_last_;')) echo 'checked="checked"'; ?> /> 315*7d666900SdWiGhT <label for="remove_last_sem"><?php echo $lang[$l][42]; ?></label><br /> 316*7d666900SdWiGhT 317*7d666900SdWiGhT 318*7d666900SdWiGhT <input type="checkbox" id="discard" name="discard" 319*7d666900SdWiGhT <?php if ($css->get_cfg('discard_invalid_properties')) echo 'checked="checked"'; ?> /> 320*7d666900SdWiGhT <label for="discard"><?php echo $lang[$l][43]; ?></label> 321*7d666900SdWiGhT <select name="css_level"><?php echo options(array('CSS3.0','CSS2.1','CSS2.0','CSS1.0'),$css->get_cfg('css_level'), true); ?></select><br /> 322*7d666900SdWiGhT 323*7d666900SdWiGhT 324*7d666900SdWiGhT <input type="checkbox" id="timestamp" name="timestamp" 325*7d666900SdWiGhT <?php if ($css->get_cfg('timestamp')) echo 'checked="checked"'; ?> /> 326*7d666900SdWiGhT <label for="timestamp"><?php echo $lang[$l][57]; ?></label><br /> 327*7d666900SdWiGhT 328*7d666900SdWiGhT <input type="checkbox" id="rtl" name="rtl" 329*7d666900SdWiGhT <?php if ($css->get_cfg('reverse_left_and_right')) echo 'checked="checked"'; ?> /> 330*7d666900SdWiGhT <label for="rtl"><?php echo $lang[$l][67]; ?></label><br /> 331*7d666900SdWiGhT 332*7d666900SdWiGhT <input type="checkbox" id="whole_file" name="whole_file" 333*7d666900SdWiGhT <?php if (isset($_REQUEST['whole_file'])) echo 'checked="checked"'; ?> /> 334*7d666900SdWiGhT <label for="whole_file"><?php echo $lang[$l][63]; ?></label><br /> 335*7d666900SdWiGhT 336*7d666900SdWiGhT 337*7d666900SdWiGhT <input type="checkbox" name="file_output" id="file_output" value="file_output" 338*7d666900SdWiGhT <?php if (isset($_REQUEST['file_output'])) echo 'checked="checked"'; ?> /> 339*7d666900SdWiGhT <label class="help" title="<?php echo $lang[$l][34]; ?>" for="file_output"> 340*7d666900SdWiGhT <strong><?php echo $lang[$l][33]; ?></strong> 341*7d666900SdWiGhT </label><br /> 342*7d666900SdWiGhT 343*7d666900SdWiGhT </fieldset> 344*7d666900SdWiGhT <input type="hidden" name="post" /> 345*7d666900SdWiGhT </div> 346*7d666900SdWiGhT </div> 347*7d666900SdWiGhT </form> 348*7d666900SdWiGhT <?php 349*7d666900SdWiGhT 350*7d666900SdWiGhT $file_ok = false; 351*7d666900SdWiGhT $result = false; 352*7d666900SdWiGhT 353*7d666900SdWiGhT $url = (isset($_REQUEST['url']) && !empty($_REQUEST['url'])) ? $_REQUEST['url'] : false; 354*7d666900SdWiGhT 355*7d666900SdWiGhT if (isset($_REQUEST['template'])) { 356*7d666900SdWiGhT switch ($_REQUEST['template']) { 357*7d666900SdWiGhT case 4: 358*7d666900SdWiGhT if ($is_custom) { 359*7d666900SdWiGhT $css->load_template($_REQUEST['custom'],false); 360*7d666900SdWiGhT } 361*7d666900SdWiGhT break; 362*7d666900SdWiGhT 363*7d666900SdWiGhT case 3: 364*7d666900SdWiGhT $css->load_template('highest_compression'); 365*7d666900SdWiGhT break; 366*7d666900SdWiGhT 367*7d666900SdWiGhT case 2: 368*7d666900SdWiGhT $css->load_template('high_compression'); 369*7d666900SdWiGhT break; 370*7d666900SdWiGhT 371*7d666900SdWiGhT case 0: 372*7d666900SdWiGhT $css->load_template('low_compression'); 373*7d666900SdWiGhT break; 374*7d666900SdWiGhT } 375*7d666900SdWiGhT } 376*7d666900SdWiGhT 377*7d666900SdWiGhT if ($url) { 378*7d666900SdWiGhT if (substr($_REQUEST['url'],0,7) !== 'http://') { 379*7d666900SdWiGhT $_REQUEST['url'] = 'http://'.$_REQUEST['url']; 380*7d666900SdWiGhT } 381*7d666900SdWiGhT $result = $css->parse_from_url($_REQUEST['url'],0); 382*7d666900SdWiGhT } elseif (isset($_REQUEST['css_text']) && strlen($_REQUEST['css_text'])>5) { 383*7d666900SdWiGhT $result = $css->parse($_REQUEST['css_text']); 384*7d666900SdWiGhT } 385*7d666900SdWiGhT 386*7d666900SdWiGhT if ($result) { 387*7d666900SdWiGhT $ratio = $css->print->get_ratio(); 388*7d666900SdWiGhT $diff = $css->print->get_diff(); 389*7d666900SdWiGhT if (isset($_REQUEST['file_output'])) { 390*7d666900SdWiGhT $filename = md5(mt_rand().time().mt_rand()); 391*7d666900SdWiGhT if (!is_dir('temp')) { 392*7d666900SdWiGhT $madedir = mkdir('temp'); 393*7d666900SdWiGhT if (!$madedir) { 394*7d666900SdWiGhT print 'Could not make directory "temp" in '.dirname(__FILE__); 395*7d666900SdWiGhT exit; 396*7d666900SdWiGhT } 397*7d666900SdWiGhT } 398*7d666900SdWiGhT $handle = fopen('temp/'.$filename.'.css','w'); 399*7d666900SdWiGhT if ($handle) { 400*7d666900SdWiGhT if (fwrite($handle,$css->print->plain())) { 401*7d666900SdWiGhT $file_ok = true; 402*7d666900SdWiGhT } 403*7d666900SdWiGhT } 404*7d666900SdWiGhT fclose($handle); 405*7d666900SdWiGhT } 406*7d666900SdWiGhT if ($ratio>0) $ratio = '<span style="color:green">'.$ratio.'%</span> 407*7d666900SdWiGhT ('.$diff.' Bytes)'; else $ratio = '<span 408*7d666900SdWiGhT style="color:red;">'.$ratio.'%</span> ('.$diff.' Bytes)'; 409*7d666900SdWiGhT if (count($css->log) > 0): ?> 410*7d666900SdWiGhT <fieldset id="messages"><legend>Messages</legend> 411*7d666900SdWiGhT <div><dl><?php 412*7d666900SdWiGhT foreach ($css->log as $line => $array) { 413*7d666900SdWiGhT echo '<dt>',$line,'</dt>'; 414*7d666900SdWiGhT $array_size = count($array); 415*7d666900SdWiGhT for ($i = 0; $i < $array_size; ++$i) { 416*7d666900SdWiGhT echo '<dd class="',$array[$i]['t'],'">',$array[$i]['m'],'</dd>'; 417*7d666900SdWiGhT } 418*7d666900SdWiGhT } 419*7d666900SdWiGhT ?></dl></div> 420*7d666900SdWiGhT </fieldset> 421*7d666900SdWiGhT <?php endif; 422*7d666900SdWiGhT echo '<fieldset><legend>',$lang[$l][37],': ',$css->print->size('input'),'KB, ',$lang[$l][38],':',$css->print->size('output'),'KB, ',$lang[$l][36],': ',$ratio; 423*7d666900SdWiGhT if ($file_ok) { 424*7d666900SdWiGhT echo ' - <a href="temp/',$filename,'.css">Download</a>'; 425*7d666900SdWiGhT } 426*7d666900SdWiGhT echo ' - <a href="javascript:ClipBoard()">',$lang[$l][58],'</a>' 427*7d666900SdWiGhT , '</legend>' 428*7d666900SdWiGhT , '<code id="copytext">' 429*7d666900SdWiGhT , $css->print->formatted() 430*7d666900SdWiGhT , '</code></fieldset><div><br /></div>' 431*7d666900SdWiGhT 432*7d666900SdWiGhT , '<fieldset class="code_output"><legend>',$lang[$l][64],'</legend>' 433*7d666900SdWiGhT , '<textarea rows="10" cols="80">'; 434*7d666900SdWiGhT 435*7d666900SdWiGhT if (isset($_REQUEST['whole_file'])) { 436*7d666900SdWiGhT echo htmlspecialchars($css->print->formatted_page('xhtml1.1', false, '', 'en'), ENT_QUOTES, 'utf-8'); 437*7d666900SdWiGhT } else { 438*7d666900SdWiGhT echo htmlspecialchars('<code id="copytext">', ENT_QUOTES, 'utf-8'),"\n"; 439*7d666900SdWiGhT echo htmlspecialchars($css->print->formatted()."\n".'</code>', ENT_QUOTES, 'utf-8'); 440*7d666900SdWiGhT } 441*7d666900SdWiGhT echo '</textarea></fieldset>' 442*7d666900SdWiGhT , '<fieldset class="code_output"><legend>',$lang[$l][65],'</legend>' 443*7d666900SdWiGhT , '<textarea rows="10" cols="30">'; 444*7d666900SdWiGhT 445*7d666900SdWiGhT echo file_get_contents('cssparsed.css'); 446*7d666900SdWiGhT echo '</textarea>' 447*7d666900SdWiGhT 448*7d666900SdWiGhT , '</fieldset><p><a href="javascript:scrollTo(0,0)">↑ ',$lang[$l][59],'</a></p>'; 449*7d666900SdWiGhT 450*7d666900SdWiGhT } elseif (isset($_REQUEST['css_text']) || isset($_REQUEST['url'])) { 451*7d666900SdWiGhT echo '<p class="important">',$lang[$l][28],'</p>'; 452*7d666900SdWiGhT } 453*7d666900SdWiGhT ?> 454*7d666900SdWiGhT <p style="text-align:center;font-size:.8em;clear:both"> 455*7d666900SdWiGhT <?php echo $lang[$l][61] ?> <a 456*7d666900SdWiGhT href="http://csstidy.sourceforge.net/contact.php"><?php echo $lang[$l][62] ?></a>. 457*7d666900SdWiGhT </p> 458*7d666900SdWiGhT </body> 459*7d666900SdWiGhT</html>