slitaz-forge rev 600
mirror: add support for small screens and touch screens, add icons for mirrors and file types, update mirrors list, minify resources.
line diff
1.1 --- a/mirror/README Sat Sep 19 16:15:43 2015 +0200 1.2 +++ b/mirror/README Fri Oct 02 01:31:59 2015 +0300 1.3 @@ -2,15 +2,15 @@ 1.4 =============================================================================== 1.5 1.6 1.7 -Files and tools used on mirror.slitaz.org including web interface info. Images 1.8 +Files and tools used on mirror1.slitaz.org including web interface info. Images 1.9 and CSS style are hosted on MF and aliases are widely used for replication. 1.10 1.11 * files : Custom system configuration files 1.12 - * info : Mirror web interface at http://mirror.slitaz.org/info/ 1.13 - * root : File for the root directory of http://mirror.slitaz.org/ 1.14 + * info : Mirror web interface at http://mirror1.slitaz.org/info/ 1.15 + * root : File for the root directory of http://mirror1.slitaz.org/ 1.16 1.17 -Host : mirror.slitaz.org 1.18 -IP : 91.121.171.224 1.19 +Host : mirror1.slitaz.org 1.20 +IP : 188.165.229.172 1.21 1.22 1.23 Administration
2.1 --- a/mirror/mirror Sat Sep 19 16:15:43 2015 +0200 2.2 +++ b/mirror/mirror Fri Oct 02 01:31:59 2015 +0300 2.3 @@ -2,7 +2,7 @@ 2.4 # 2.5 # Main SliTaz Mirror admin utility 2.6 # 2.7 -# Copyright (C) 2012-2014 SliTaz GNU/Linux - BSD License 2.8 +# Copyright (C) 2012-2015 SliTaz GNU/Linux - BSD License 2.9 # 2.10 # Authors : Christophe Lincoln <pankso@slitaz.org> 2.11 #
3.1 --- a/mirror/root/dir-generator.php Sat Sep 19 16:15:43 2015 +0200 3.2 +++ b/mirror/root/dir-generator.php Fri Oct 02 01:31:59 2015 +0300 3.3 @@ -1,22 +1,37 @@ 3.4 <?php 3.5 -function redirect() 3.6 -{ 3.7 +if (substr_count($_SERVER['HTTP_ACCEPT_ENCODING'], 'gzip')) 3.8 + ob_start('ob_gzhandler'); 3.9 +else 3.10 + ob_start(); 3.11 + 3.12 +function redirect() { 3.13 ?> 3.14 -<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 3.15 - "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 3.16 -<html xml:lang="en" xmlns="http://www.w3.org/1999/xhtml" lang="en"> 3.17 +<!DOCTYPE html> 3.18 +<html lang="en"> 3.19 <head> 3.20 <title>SliTaz mirror redirection</title> 3.21 - <meta http-equiv="content-type" content="text/html; charset=UTF-8" /> 3.22 - <meta name="description" content="slitaz mirror redirection" /> 3.23 - <meta name="robots" content="index, nofollow" /> 3.24 - <meta name="author" content="SliTaz Contributors" /> 3.25 + <meta charset="UTF-8"> 3.26 + <meta name="description" content="slitaz mirror redirection"> 3.27 + <meta name="robots" content="index, nofollow"> 3.28 + <meta name="author" content="SliTaz Contributors"> 3.29 <meta http-equiv="Refresh" content="0;url=http://mirror1.slitaz.org/"> 3.30 </head> 3.31 +<body> 3.32 + <script>window.location.replace('http://mirror1.slitaz.org/')</script> 3.33 + <noscript> 3.34 + <frameset rows="100%"> 3.35 + <frame src="http://mirror1.slitaz.org/"> 3.36 + <noframes> 3.37 + <body>Please follow <a href="http://mirror1.slitaz.org/">this link</a>.</body> 3.38 + </noframes> 3.39 + </frameset> 3.40 + </noscript> 3.41 +</body> 3.42 +</html> 3.43 <?php 3.44 } 3.45 3.46 -$VERSION = "0.3-slitaz"; 3.47 +$VERSION = "0.4-slitaz"; 3.48 3.49 /* Lighttpd Enhanced Directory Listing Script 3.50 * ------------------------------------------ 3.51 @@ -43,7 +58,8 @@ 3.52 * 3.53 * http://www.gnu.org/licenses/gpl.txt 3.54 */ 3.55 - 3.56 + 3.57 + 3.58 // Get the path (cut out the query string from the request_uri) 3.59 list($path) = explode('?', $_SERVER['REQUEST_URI']); 3.60 3.61 @@ -52,21 +68,20 @@ 3.62 $path = ltrim(rawurldecode($path), '/'); 3.63 3.64 3.65 -if(strlen($path) == 0) { 3.66 +if(strlen($path) == 0) 3.67 $path = "./"; 3.68 -} 3.69 3.70 3.71 // Can't call the script directly since REQUEST_URI won't be a directory 3.72 -if($_SERVER['PHP_SELF'] == '/'.$path) { 3.73 +if($_SERVER['PHP_SELF'] == '/' . $path) { 3.74 redirect(); 3.75 // die("Unable to call " . $path . " directly."); 3.76 } 3.77 3.78 3.79 -$vpath = ($path != "./")?$path:""; 3.80 +$vpath = ($path != "./") ? $path : ""; 3.81 // Make sure it is valid. 3.82 -if(!is_dir($path)) { 3.83 +if (!is_dir($path)) { 3.84 // die("<b>" . $path . "</b> is not a valid path."); 3.85 $path = dirname($_SERVER["SCRIPT_FILENAME"]); 3.86 list($vpath) = explode('?', $_SERVER['REQUEST_URI']); 3.87 @@ -78,114 +93,112 @@ 3.88 // This function returns the file size of a specified $file. 3.89 // 3.90 function format_bytes($size, $precision=1) { 3.91 - $sizes = array('Y', 'Z', 'E', 'P', 'T', 'G', 'M', 'K', ''); 3.92 - $total = count($sizes); 3.93 + $sizes = array('Y', 'Z', 'E', 'P', 'T', 'G', 'M', 'K', ''); 3.94 + $total = count($sizes); 3.95 3.96 - while($total-- && $size > 1024) $size /= 1024; 3.97 - if ($sizes[$total] == '') { 3.98 - $size /= 1024; 3.99 - $total--; 3.100 - } 3.101 - return sprintf('%.'.$precision.'f', $size).$sizes[$total]; 3.102 + while ($total-- && $size > 1024) 3.103 + $size /= 1024; 3.104 + if ($sizes[$total] == '') { 3.105 + $size /= 1024; 3.106 + $total--; 3.107 + } 3.108 + return sprintf('%.' . $precision . 'f', $size) . $sizes[$total]; 3.109 } 3.110 3.111 + 3.112 // 3.113 // Get some variables from /etc/lighttpd/lighttpd.conf 3.114 // 3.115 $conf_lightty = file_get_contents("/etc/lighttpd/lighttpd.conf"); 3.116 3.117 -function get_conf($var,$start,$stop,$default='') { 3.118 - global $conf_lightty; 3.119 +function get_conf($var, $start, $stop, $default='') { 3.120 + global $conf_lightty; 3.121 3.122 - if (!preg_match('/'.$var.'/',$conf_lightty)) return $default; 3.123 - $filter = '/(.*\n)*'.$var.'\s*=\s*'.$start.'(([^'.$stop.']*\n*)*)'.$stop.'(.*\n)*/'; 3.124 - return preg_replace($filter,'$2',$conf_lightty); 3.125 + if (!preg_match('/' . $var . '/', $conf_lightty)) 3.126 + return $default; 3.127 + $filter = '/(.*\n)*' . $var . '\s*=\s*' . $start . '(([^' . $stop . ']*\n*)*)' . $stop . '(.*\n)*/'; 3.128 + return preg_replace($filter, '$2', $conf_lightty); 3.129 } 3.130 3.131 -$encoding = get_conf('dir-listing.encoding','"','"','ascii'); 3.132 -$external_css = get_conf('dir-listing.external-css','"','"'); 3.133 +$encoding = get_conf('dir-listing.encoding', '"', '"', 'ascii'); 3.134 +$external_css = get_conf('dir-listing.external-css', '"', '"'); 3.135 3.136 $show_hidden_files = false; 3.137 -if (get_conf('dir-listing.hide-dotfile','"','"','disable') == "disable") { 3.138 +if (get_conf('dir-listing.hide-dotfile', '"', '"', 'disable') == "disable") 3.139 $show_hidden_files = true; 3.140 -} 3.141 + 3.142 // get_conf('dir-listing.exclude','\(','\)'); 3.143 // get_conf('dir-listing.set-footer','"','"'); 3.144 3.145 $mime_types = array(); 3.146 -foreach (explode(',',get_conf('mimetype.assign','\(','\)')) as $item) { 3.147 +foreach (explode(',', get_conf('mimetype.assign','\(','\)')) as $item) { 3.148 $filter = '/\s*"(.*)"\s*=>\s*"(.*)".*/'; 3.149 - $val = explode(',',preg_replace($filter,'$1,$2',$item)); 3.150 - if (isset($val[1])) $mime_types[$val[0]] = $val[1]; 3.151 + $val = explode(',', preg_replace($filter, '$1,$2', $item)); 3.152 + if (isset($val[1])) 3.153 + $mime_types[$val[0]] = $val[1]; 3.154 } 3.155 3.156 + 3.157 // 3.158 // This function returns the mime type of $file. 3.159 // 3.160 function get_file_type($file) { 3.161 global $mime_types; 3.162 - 3.163 + 3.164 $file = basename($file); 3.165 $default_type = "application/octet-stream"; 3.166 - if (isset($mime_types[$file])) { 3.167 + if (isset($mime_types[$file])) 3.168 return $mime_types[$file]; 3.169 - } 3.170 $pos = strrpos($file, "."); 3.171 - if ($pos === false) { 3.172 + if ($pos === false) 3.173 return $default_type; 3.174 - } 3.175 //FIXME .tar.gz 3.176 - $ext = '.'.rtrim(substr($file, $pos+1), "~"); 3.177 - if (isset($mime_types[$ext])) { 3.178 + $ext = '.' . rtrim(substr($file, $pos+1), "~"); 3.179 + if (isset($mime_types[$ext])) 3.180 return $mime_types[$ext]; 3.181 - } 3.182 return $default_type; 3.183 } 3.184 3.185 + 3.186 + 3.187 + 3.188 //$slitaz_style = (dirname($_SERVER["PHP_SELF"]) == '/'); 3.189 //$slitaz_style = ($_SERVER["SERVER_NAME"] == "mirror1.slitaz.org"); 3.190 -$slitaz_style = preg_match("/mirror1\.slitaz\./",$_SERVER["SERVER_NAME"]); 3.191 +$slitaz_style = preg_match("/mirror1\.slitaz\./", $_SERVER["SERVER_NAME"]); 3.192 + 3.193 if ($slitaz_style) { 3.194 + // SliTaz Style 3.195 $modified = gmdate("D, d M Y H:i:s e", strtotime("-1 hour")); 3.196 - $expires = gmdate("D, d M Y H:i:s e", strtotime("+1 hour")); 3.197 + $expires = gmdate("D, d M Y H:i:s e", strtotime("+1 hour")); 3.198 $fvalue = ""; 3.199 - if (isset($_GET['f'])) $fvalue = 'value="'.$_GET['f'].'"'; 3.200 - header("Expires: ".$expires); 3.201 + if (isset($_GET['f'])) 3.202 + $fvalue = 'value="' . $_GET['f'] . '"'; 3.203 + header("Expires: " . $expires); 3.204 header("Last-Modified: " . $modified); 3.205 header("Pragma: cache"); 3.206 -// header("Cache-Control: public"); 3.207 -// <meta http-equiv="cache-control" content="public" /> 3.208 -// <meta http-equiv="last-modified" content="$modified" /> 3.209 -// <meta http-equiv="expires" content="$expires" /> 3.210 - print <<<EOT 3.211 -<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 3.212 - "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 3.213 -<html xml:lang="en" xmlns="http://www.w3.org/1999/xhtml" lang="en"> 3.214 + // header("Cache-Control: public"); 3.215 + // <meta http-equiv="cache-control" content="public" /> 3.216 + // <meta http-equiv="last-modified" content="$modified" /> 3.217 + // <meta http-equiv="expires" content="$expires" /> 3.218 + ?> 3.219 +<!DOCTYPE html> 3.220 +<html lang="en"> 3.221 <head> 3.222 <title>Index of /$vpath</title> 3.223 - <meta http-equiv="content-type" content="text/html; charset=UTF-8" /> 3.224 - <meta name="description" content="Index of /$vpath" /> 3.225 - <meta name="robots" content="index, nofollow" /> 3.226 - <meta name="author" content="SliTaz Contributors" /> 3.227 - <link rel="shortcut icon" href="/static/favicon.ico" /> 3.228 - <link rel="stylesheet" type="text/css" href="/static/slitaz.css" /> 3.229 - <style type="text/css"> 3.230 - #block { min-height: 160px; } 3.231 - div.list { background-color: white; padding-bottom: 14px; } 3.232 - th, td { font: 90% monospace; text-align: left; } 3.233 - th { font-weight: bold; padding-right: 14px; padding-bottom: 3px; } 3.234 - td { padding-right: 14px; } 3.235 - td.s, th.s { text-align: right; } 3.236 - </style> 3.237 + <meta charset="UTF-8"> 3.238 + <meta name="description" content="Index of /$vpath"> 3.239 + <meta name="robots" content="index, nofollow"> 3.240 + <meta name="author" content="SliTaz Contributors"> 3.241 + <meta name="viewport" content="width=device-width, initial-scale=1.0"> 3.242 + <link rel="shortcut icon" href="/static/favicon.ico"> 3.243 + <link rel="stylesheet" type="text/css" href="/static/slitaz.min.css"> 3.244 </head> 3.245 <body> 3.246 3.247 -<!-- Header --> 3.248 -<div id="header"> 3.249 - <div id="logo"></div> 3.250 +<header> 3.251 + <h1><a href="http://mirror1.slitaz.org/">SliTaz Mirror</a></h1> 3.252 <div id="network"> 3.253 - <a href="http://www.slitaz.org/"> 3.254 - <img src="/static/home.png" alt="[ Home ]" /></a> 3.255 + <a class="home" href="http://www.slitaz.org/"></a> 3.256 <a href="http://scn.slitaz.org/">Community</a> 3.257 <a href="http://doc.slitaz.org/">Doc</a> 3.258 <a href="http://forum.slitaz.org/">Forum</a> 3.259 @@ -195,41 +208,42 @@ 3.260 <a href="http://hg.slitaz.org/?sort=lastchange">Hg</a> 3.261 <a href="http://cook.slitaz.org/">Cook</a> 3.262 </div> 3.263 - <h1><a href="http://mirror1.slitaz.org/">SliTaz Mirror</a></h1> 3.264 -</div> 3.265 +</header> 3.266 3.267 -<!-- Block --> 3.268 -<div id="block"> 3.269 +<div id="block"><div> 3.270 + <!-- Information/image --> 3.271 + <div id="block_info"> 3.272 + <header>Welcome to Open Source!</header> 3.273 +<?php 3.274 + 3.275 + if (preg_match("/mirror1\.slitaz\./", $_SERVER["SERVER_NAME"])) 3.276 + { ?> 3.277 + <p>This is the SliTaz GNU/Linux main mirror. The server runs naturally 3.278 + SliTaz (stable) in an uml virtual machine provided by 3.279 + <a href="http://www.ads-lu.com/">ADS</a> and is located in France.</p> 3.280 + <p><a href="/info/">Mirror info...</a></p> 3.281 +<?php 3.282 + } 3.283 + 3.284 + ?> 3.285 + <form action="/" method="get"> 3.286 + <input type="search" name="f"/> 3.287 + </form> 3.288 + </div> 3.289 <!-- Navigation --> 3.290 - <div id="block_nav"> 3.291 - <h4>Online Tools</h4> 3.292 + <nav> 3.293 + <header>Online Tools</header> 3.294 <ul> 3.295 <li><a href="http://pizza.slitaz.me/">Live ISO Builder</a></li> 3.296 <li><a href="http://pizza.slitaz.org/">Live flavor Builder</a></li> 3.297 <li><a href="http://tiny.slitaz.org/">Tiny SliTaz Builder</a></li> 3.298 <li><a href="http://boot.slitaz.org/">Web Boot</a></li> 3.299 + <li><a href="http://web.archive.org/web/*/http://mirror.slitaz.org">WebArchive</a></li> 3.300 </ul> 3.301 - </div> 3.302 - <!-- Information/image --> 3.303 - <div id="block_info"> 3.304 - <h4>Welcome to Open Source!</h4> 3.305 -EOT; 3.306 - if (preg_match("/mirror1\.slitaz\./",$_SERVER["SERVER_NAME"])) print <<<EOT 3.307 - <p>This is the SliTaz GNU/Linux main mirror. The server runs naturally 3.308 - SliTaz (stable) in an uml virtual machine provided by 3.309 - <a href="http://www.ads-lu.com/">ADS</a> and is located in France. 3.310 - <a href="/info/">Mirror info...</a></p> 3.311 -EOT; 3.312 - print <<<EOT 3.313 - <form action="${_SERVER["REQUEST_URI"]}" method="get" style="width: 300px;"> 3.314 - <p><input type="text" name="f" $fvalue 3.315 - style="width: 260px;" /></p> 3.316 - </form> 3.317 - </div> 3.318 -</div> 3.319 + </nav> 3.320 +</div></div> 3.321 3.322 -<!-- script type="text/javascript" src="/static/qrcode.js"></script --> 3.323 -<script type="text/javascript"> 3.324 +<script> 3.325 function QRCodePNG(str, obj) { 3.326 try { 3.327 obj.height = obj.width += 200; 3.328 @@ -237,7 +251,7 @@ 3.329 } 3.330 catch (any) { 3.331 var element = document.createElement("script"); 3.332 - element.src = "/static/qrcode.js"; 3.333 + element.src = "/static/qrcode.min.js"; 3.334 element.type ="text/javascript"; 3.335 element.onload = function() { 3.336 obj.src = QRCode.generatePNG(str, {ecclevel: 'H'}); 3.337 @@ -245,189 +259,210 @@ 3.338 document.body.appendChild(element); 3.339 } 3.340 } 3.341 + 3.342 + document.documentElement.className += (("ontouchstart" in document.documentElement) ? ' touch' : ' no-touch'); 3.343 </script> 3.344 -<div id="lang"> 3.345 -Path: /${vpath} 3.346 -</div> 3.347 3.348 <!-- Content --> 3.349 <div id="content"> 3.350 + <div id="mirrors"> 3.351 +<?php 3.352 3.353 -<div id="mirrors"> 3.354 -<a href="http://web.archive.org/web/*/http://mirror.slitaz.org"><img 3.355 - src="/static/network.png" alt="[ Mirrors ]" style="margin-right: 5px;" /></a> 3.356 -EOT; 3.357 + // Mirror list 3.358 + $mirrors = array(); 3.359 + $fp = @fopen(dirname($_SERVER["SCRIPT_FILENAME"]) . "/mirrors.html", "r"); 3.360 + if ($fp) { 3.361 + // Parse mirrors.html 3.362 + while (($line = fgets($fp)) !== false) { 3.363 + // string /" is the end of mirrors url 3.364 + $fullline = str_replace('/"', "/" . $vpath . '"', $line); 3.365 + print $fullline; 3.366 + } 3.367 + fclose($fp); 3.368 + } else { 3.369 + $fp = @fopen(dirname($_SERVER["SCRIPT_FILENAME"]) . "/mirrors", "r"); 3.370 + if ($fp) { 3.371 + while (($line = fgets($fp)) !== false) { 3.372 + $line = chop($line); 3.373 + $url = parse_url($line); 3.374 + if ($_SERVER["SERVER_NAME"] == $url['host']) 3.375 + continue; 3.376 + $host = explode('.', $url['host']); 3.377 + $mirrors[$host[count($host)-2] . "." . 3.378 + $host[count($host)-1]] = $line; 3.379 + } 3.380 + } 3.381 + fclose($fp); 3.382 + foreach($mirrors as $name => $url) { 3.383 + print "<a href=\"$url$vpath\" title=\"$name mirror\">$name</a>\n"; 3.384 + } 3.385 + } 3.386 3.387 -// Mirror list 3.388 -$mirrors = array(); 3.389 -$fp = @fopen(dirname($_SERVER["SCRIPT_FILENAME"])."/mirrors","r"); 3.390 -if ($fp) { 3.391 - while (($line = fgets($fp)) !== false) { 3.392 - $line = chop($line); 3.393 - $url = parse_url($line); 3.394 - if ($_SERVER["SERVER_NAME"] == $url['host']) continue; 3.395 - $host = explode('.',$url['host']); 3.396 - $mirrors[$host[count($host)-2].".". 3.397 - $host[count($host)-1]] = $line; 3.398 - } 3.399 -} 3.400 -fclose($fp); 3.401 -foreach($mirrors as $name => $url) { 3.402 - echo "<a href=\"$url$vpath\" title=\"$name mirror\">$name</a>\n"; 3.403 -} 3.404 -echo "</div>"; 3.405 -} 3.406 -else { 3.407 + print "</div>"; 3.408 + // end SliTaz Style 3.409 +} else { 3.410 + // not SliTaz Style 3.411 3.412 -// Print the heading stuff 3.413 -print "<?xml version='1.0' encoding='$encoding'?> 3.414 + // Print the heading stuff 3.415 + print "<?xml version='1.0' encoding='$encoding'?> 3.416 <!DOCTYPE html PUBLIC '-//W3C//DTD XHTML 1.1//EN' 'http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd'> 3.417 <html xmlns='http://www.w3.org/1999/xhtml' xml:lang='en'> 3.418 <head> 3.419 - <title>Index of /" .$vpath. "</title> 3.420 + <title>Index of /$vpath</title> 3.421 "; 3.422 -if ($external_css != '') { 3.423 -print " <link rel='stylesheet' type='text/css' href='".$external_css."' /> 3.424 + if ($external_css != '') { 3.425 + print " <link rel='stylesheet' type='text/css' href='$external_css' />"; 3.426 + } else { 3.427 + print "<style type='text/css'> 3.428 + a, a:active {text-decoration: none; color: blue;} 3.429 + a:visited {color: #48468F;} 3.430 + a:hover, a:focus {text-decoration: underline; color: red;} 3.431 + body {background-color: #F5F5F5;} 3.432 + h2 {margin-bottom: 12px;} 3.433 + table {margin-left: 12px;} 3.434 + th, td {font: 90% monospace; text-align: left;} 3.435 + th {font-weight: bold; padding-right: 14px; padding-bottom: 3px;} 3.436 + td {padding-right: 14px;} 3.437 + td.s, th.s {text-align: right;} 3.438 + div.list {background-color: white; border-top: 1px solid #646464; border-bottom: 1px solid #646464; padding-top: 10px; padding-bottom: 14px;} 3.439 + div.foot { font: 90% monospace; color: #787878; padding-top: 4px;} 3.440 +</style> 3.441 "; 3.442 -} 3.443 -else { 3.444 -print " <style type='text/css'> 3.445 - a, a:active {text-decoration: none; color: blue;} 3.446 - a:visited {color: #48468F;} 3.447 - a:hover, a:focus {text-decoration: underline; color: red;} 3.448 - body {background-color: #F5F5F5;} 3.449 - h2 {margin-bottom: 12px;} 3.450 - table {margin-left: 12px;} 3.451 - th, td { font: 90% monospace; text-align: left;} 3.452 - th { font-weight: bold; padding-right: 14px; padding-bottom: 3px;} 3.453 - td {padding-right: 14px;} 3.454 - td.s, th.s {text-align: right;} 3.455 - div.list { background-color: white; border-top: 1px solid #646464; border-bottom: 1px solid #646464; padding-top: 10px; padding-bottom: 14px;} 3.456 - div.foot { font: 90% monospace; color: #787878; padding-top: 4px;} 3.457 - </style> 3.458 + } 3.459 + 3.460 + print " </head> 3.461 + <body> 3.462 + <h2>Index of /$vpath</h2> 3.463 "; 3.464 -} 3.465 -print " </head> 3.466 - <body> 3.467 - <h2>Index of /" . $vpath ."</h2> 3.468 -"; 3.469 + // end not SliTaz Style 3.470 } 3.471 3.472 + 3.473 + 3.474 + 3.475 print " <div class='list'> 3.476 - <table summary='Directory Listing' cellpadding='0' cellspacing='0'> 3.477 -"; 3.478 + <div id='lang'>Path: /$vpath</div> 3.479 + <table>"; 3.480 3.481 -function my_is_file($path) // 2G+ file support 3.482 -{ 3.483 - exec("[ -f '".$path."' ]", $tmp, $ret); 3.484 + 3.485 +function my_is_file($path) { 3.486 + // 2G+ file support 3.487 + exec("[ -f '" . $path . "' ]", $tmp, $ret); 3.488 return $ret == 0; 3.489 -//return is_file($path); 3.490 + //return is_file($path); 3.491 } 3.492 3.493 -function my_filesize($path) // 2G+ file support 3.494 -{ 3.495 - return rtrim(shell_exec("stat -Lc %s '".$path."'")); 3.496 -//return filesize($path); 3.497 + 3.498 +function my_filesize($path) { 3.499 + // 2G+ file support 3.500 + return rtrim(shell_exec("stat -Lc %s '" . $path . "'")); 3.501 + //return filesize($path); 3.502 } 3.503 3.504 -function my_filemtime($path) // 2G+ file support 3.505 -{ 3.506 - return rtrim(shell_exec("stat -Lc %Y '".$path."'")); 3.507 -//return filemtime($path); 3.508 + 3.509 +function my_filemtime($path) { 3.510 + // 2G+ file support 3.511 + return rtrim(shell_exec("stat -Lc %Y '" . $path . "'")); 3.512 + //return filemtime($path); 3.513 } 3.514 3.515 -function my_filemtimeasc($path) // 2G+ file support 3.516 -{ 3.517 - return rtrim(shell_exec("LC_ALL=C date -r '".$path."' '+%Y-%b-%d %H:%M:%S'")); 3.518 -//return date('Y-M-d H:m:s', filemtime($path)); 3.519 + 3.520 +function my_filemtimeasc($path) { 3.521 + // 2G+ file support 3.522 + return rtrim(shell_exec("LC_ALL=C date -r '" . $path . "' '+%Y-%b-%d %H:%M:%S'")); 3.523 + //return date('Y-M-d H:m:s', filemtime($path)); 3.524 } 3.525 3.526 -if (filesize($path."/.folderlist") > 0 && filesize($path."/.filelist") > 0 && 3.527 - filemtime($path."/.filelist") > filemtime($path)) { 3.528 - $folderlist = unserialize(file_get_contents($path."/.folderlist")); 3.529 - $filelist = unserialize(file_get_contents($path."/.filelist")); 3.530 -} 3.531 -else { 3.532 3.533 -proc_nice(10); 3.534 -// Get all of the folders and files. 3.535 -$folderlist = array(); 3.536 -$filelist = array(); 3.537 -if($handle = @opendir($path)) { 3.538 - while(($item = readdir($handle)) !== false) { 3.539 - if ($item == "index.php") continue; 3.540 - if ($item == ".folderlist") continue; 3.541 - if ($item == ".filelist") continue; 3.542 - if ($item == "dir-generator.php") continue; 3.543 - if ($item == "robots.txt") continue; 3.544 - if ($item == "humans.txt") continue; 3.545 - if(is_dir($path.'/'.$item) and $item != '.' and $item != '..') { 3.546 - $folderlist[] = array( 3.547 - 'name' => $item, 3.548 - 'size' => 0, 3.549 - 'modtime'=> filemtime($path.'/'.$item), 3.550 - 'modtimeasc'=> my_filemtimeasc($path.'/'.$item), 3.551 - 'file_type' => "Directory" 3.552 - ); 3.553 +if (filesize($path . "/.folderlist") > 0 && 3.554 + filesize($path . "/.filelist") > 0 && 3.555 + filemtime($path . "/.filelist") > filemtime($path)) { 3.556 + $folderlist = unserialize(file_get_contents($path . "/.folderlist")); 3.557 + $filelist = unserialize(file_get_contents($path . "/.filelist")); 3.558 +} else { 3.559 + 3.560 + proc_nice(10); 3.561 + // Get all of the folders and files. 3.562 + $folderlist = array(); 3.563 + $filelist = array(); 3.564 + if($handle = @opendir($path)) { 3.565 + while(($item = readdir($handle)) !== false) { 3.566 + if ($item == "index.php") continue; 3.567 + if ($item == ".folderlist") continue; 3.568 + if ($item == ".filelist") continue; 3.569 + if ($item == "dir-generator.php") continue; 3.570 + if ($item == "robots.txt") continue; 3.571 + if ($item == "humans.txt") continue; 3.572 + if ($item == "mirrors.html") continue; 3.573 + if (is_dir($path.'/'.$item) and $item != '.' and $item != '..') { 3.574 + $folderlist[] = array( 3.575 + 'name' => $item, 3.576 + 'size' => 0, 3.577 + 'modtime'=> filemtime($path . '/' . $item), 3.578 + 'modtimeasc'=> my_filemtimeasc($path . '/' . $item), 3.579 + 'file_type' => "Directory" 3.580 + ); 3.581 + } elseif (my_is_file($path . '/' . $item)) { 3.582 + if (!$show_hidden_files) { 3.583 + if (substr($item, 0, 1) == "." or substr($item, -1) == "~") 3.584 + continue; 3.585 + } 3.586 + $filelist[] = array( 3.587 + 'name'=> $item, 3.588 + 'size'=> my_filesize($path . '/' . $item), 3.589 + 'modtime'=> my_filemtime($path . '/' . $item), 3.590 + 'modtimeasc'=> my_filemtimeasc($path . '/' . $item), 3.591 + 'file_type' => get_file_type($path . '/' . $item) 3.592 + ); 3.593 + } 3.594 } 3.595 - elseif(my_is_file($path.'/'.$item)) { 3.596 - if(!$show_hidden_files) { 3.597 - if(substr($item, 0, 1) == "." or substr($item, -1) == "~") { 3.598 - continue; 3.599 - } 3.600 - } 3.601 - $filelist[] = array( 3.602 - 'name'=> $item, 3.603 - 'size'=> my_filesize($path.'/'.$item), 3.604 - 'modtime'=> my_filemtime($path.'/'.$item), 3.605 - 'modtimeasc'=> my_filemtimeasc($path.'/'.$item), 3.606 - 'file_type' => get_file_type($path.'/'.$item) 3.607 - ); 3.608 - } 3.609 + closedir($handle); 3.610 + file_put_contents($path . "/.folderlist", serialize($folderlist), LOCK_EX); 3.611 + file_put_contents($path . "/.filelist", serialize($filelist), LOCK_EX); 3.612 } 3.613 - closedir($handle); 3.614 - file_put_contents($path."/.folderlist",serialize($folderlist),LOCK_EX); 3.615 - file_put_contents($path."/.filelist",serialize($filelist),LOCK_EX); 3.616 -} 3.617 } 3.618 3.619 if (isset($_GET['f'])) { 3.620 $filter = $_GET['f']; 3.621 - if (substr($filter,0,1) != '/') 3.622 - $filter = '/'.$filter.'/i'; 3.623 + if (substr($filter, 0, 1) != '/') 3.624 + $filter = '/' . $filter . '/i'; 3.625 foreach ($filelist as $key => $value) 3.626 - if (!preg_match($filter,$value['name'])) 3.627 + if (!preg_match($filter, $value['name'])) 3.628 unset($filelist[$key]); 3.629 foreach ($folderlist as $key => $value) 3.630 - if (!preg_match($filter,$value['name'])) 3.631 + if (!preg_match($filter, $value['name'])) 3.632 unset($folderlist[$key]); 3.633 } 3.634 3.635 -if(!isset($_GET['s'])) { 3.636 +if (!isset($_GET['s'])) 3.637 $_GET['s'] = 'name'; 3.638 -} 3.639 + 3.640 3.641 // Figure out what to sort files by 3.642 $file_order_by = array(); 3.643 -foreach ($filelist as $key=>$row) { 3.644 - $file_order_by[$key] = $row[$_GET['s']]; 3.645 -} 3.646 +foreach ($filelist as $key => $row) 3.647 + $file_order_by[$key] = $row[$_GET['s']]; 3.648 + 3.649 3.650 // Figure out what to sort folders by 3.651 $folder_order_by = array(); 3.652 -foreach ($folderlist as $key=>$row) { 3.653 - $folder_order_by[$key] = $row[$_GET['s']]; 3.654 -} 3.655 +foreach ($folderlist as $key => $row) 3.656 + $folder_order_by[$key] = $row[$_GET['s']]; 3.657 + 3.658 3.659 // Order the files and folders 3.660 $sort_type = SORT_ASC; 3.661 $order = "&o=d"; 3.662 -if(isset($_GET['o'])) { 3.663 +if (isset($_GET['o'])) { 3.664 $sort_type = SORT_DESC; 3.665 $order = ""; 3.666 } 3.667 array_multisort($folder_order_by, $sort_type, $folderlist); 3.668 -array_multisort($file_order_by, $sort_type, $filelist); 3.669 +array_multisort($file_order_by, $sort_type, $filelist); 3.670 + 3.671 + 3.672 +// Table caption: number of folders and files 3.673 +print "<caption>" . count($folderlist) . " folders and " . count($filelist) . " files.</caption>"; 3.674 3.675 3.676 // Show sort methods 3.677 @@ -437,102 +472,127 @@ 3.678 $sort_methods['name'] = "Name"; 3.679 $sort_methods['modtime'] = "Last Modified"; 3.680 $sort_methods['size'] = "Size"; 3.681 -$sort_methods['file_type'] = "Type"; 3.682 3.683 -foreach($sort_methods as $key=>$item) { 3.684 - if ($_GET['s'] == $key) $key = "$key$order"; 3.685 - print "<th class='n'><a href='?s=$key'>$item</a></th>"; 3.686 +foreach($sort_methods as $key => $item) { 3.687 + if ($_GET['s'] == $key) 3.688 + $key = "$key$order"; 3.689 + print "<th><a href='?s=$key'>$item</a></th>"; 3.690 } 3.691 print "</tr></thead>\n<tbody>\n"; 3.692 3.693 3.694 3.695 + 3.696 // Parent directory link 3.697 -if($path != "./") { 3.698 - print "<tr><td class='n'><a href='..'>Parent Directory</a>/</td>"; 3.699 - print "<td class='m'> </td>"; 3.700 - print "<td class='s'>- </td>"; 3.701 - print "<td class='t'>Directory</td></tr>\n"; 3.702 -} 3.703 +if ($path != "./") 3.704 + print "<tr><td class='up'><a href='..'>Parent Directory</a>/</td>" . 3.705 + "<td> </td>" . 3.706 + "<td>- </td></tr>\n"; 3.707 + 3.708 3.709 3.710 3.711 // Print folder information 3.712 -foreach($folderlist as $folder) { 3.713 - print "<tr><td class='n'><a href='" . addslashes($folder['name']). "'>" .htmlentities($folder['name']). "</a>/</td>"; 3.714 - print "<td class='m'>" . $folder['modtimeasc'] . "</td>"; 3.715 - print "<td class='s'>- </td>"; 3.716 - print "<td class='t'>" . $folder['file_type'] . "</td></tr>\n"; 3.717 -} 3.718 +foreach($folderlist as $folder) 3.719 + print "<tr><td class='dir'><a href='" . addslashes($folder['name']). "'>" . 3.720 + htmlentities($folder['name']) . "</a>/</td>" . 3.721 + "<td" . $folder['modtimeasc'] . "</td>" . 3.722 + "<td>- </td></tr>\n"; 3.723 + 3.724 3.725 3.726 // Print file information 3.727 foreach($filelist as $file) { 3.728 $url = addslashes($file['name']); 3.729 - print "<tr><td class='n'><a href='$url'>" .htmlentities($file['name']). "</a></td>"; 3.730 - print "<td class='m'>" . $file['modtimeasc'] . 3.731 - " <img src=\"/static/qr.png\" alt=\"@\" onmouseover=" . 3.732 - "\"this.title = location.href+'$url'\" onclick=" . 3.733 - "\"this.src = QRCodePNG(location.href+'$url', this) \"/></td>"; 3.734 - print "<td class='s'>" . format_bytes($file['size']) . "</td>"; 3.735 - print "<td class='t'>" . $file['file_type'] . "</td></tr>\n"; 3.736 + 3.737 + if (preg_match('/\.tazpkg$/', $file)) 3.738 + $class = "pkg"; 3.739 + elseif (preg_match('/\.iso$/', $file)) 3.740 + $class = "iso"; 3.741 + elseif (preg_match('/\.(exe|com)$/', $file)) 3.742 + $class = "exe"; 3.743 + elseif (preg_match('/^README$/', $file)) 3.744 + $class = "rme"; 3.745 + elseif (preg_match('/^bzImage$/', $file)) 3.746 + $class = "krn"; 3.747 + elseif (preg_match('/\.zip$/', $file)) 3.748 + $class = "zip"; 3.749 + elseif (preg_match('/\.log$/', $file)) 3.750 + $class = "log"; 3.751 + else { 3.752 + $classes = explode('/', $file['file_type']); 3.753 + $class = $classes[1]; 3.754 + } 3.755 + 3.756 + 3.757 + print "<tr><td class='$class'><a href='$url'>" . htmlentities($file['name']) . "</a></td>" . 3.758 + "<td>" . $file['modtimeasc'] . 3.759 + " <img src='/static/qr.png' alt='#' " . 3.760 + "onmouseover=\"this.title = location.href+'$url'\" " . 3.761 + "onclick=\"this.src = QRCodePNG(location.href+'$url', this)\"/></td>" . 3.762 + "<td>" . format_bytes($file['size']) . "</td></tr>\n"; 3.763 } 3.764 3.765 // Print ending stuff 3.766 -$soft = explode('/',$_SERVER["SERVER_SOFTWARE"]); 3.767 -$tag = get_conf('server.tag','"','"',$soft[0].' <'.$soft[1].'>'); 3.768 -print "</tbody> 3.769 +print " </tbody> 3.770 </table> 3.771 - ".count($folderlist)." folders and ".count($filelist)." files.</div>"; 3.772 -if (filesize($path."/README")) { 3.773 - echo "<pre>\n"; 3.774 - echo preg_replace('!(((f|ht)tp(s)?://)[-a-zA-Z()0-9@:%_+.~#?&;//=]+)!i', 3.775 - '<a href="$1">$1</a>', file_get_contents($path."/README")); 3.776 - echo "</pre>\n"; 3.777 -} 3.778 +</div>"; 3.779 3.780 -if ($slitaz_style) { ?> 3.781 +$soft = explode('/', $_SERVER["SERVER_SOFTWARE"]); 3.782 +$tag = get_conf('server.tag', '"', '"', $soft[0] . ' <' . $soft[1] . '>'); 3.783 + 3.784 + 3.785 +if (filesize($path . "/README")) 3.786 + print "<pre>" . 3.787 + preg_replace('!(((f|ht)tp(s)?://)[-a-zA-Z()0-9@:%_+.~#?&;//=]+)!i', 3.788 + '<a href="$1">$1</a>', file_get_contents($path . "/README")) . 3.789 + "</pre>\n"; 3.790 + 3.791 + 3.792 + 3.793 +if ($slitaz_style) { 3.794 + // SliTaz Style 3.795 +?> 3.796 3.797 <!-- End of content --> 3.798 </div> 3.799 3.800 -<!-- Footer --> 3.801 -<div id="footer"> 3.802 - Copyright © <span class="year"></span> 3.803 - <a href="http://www.slitaz.org/">SliTaz</a> - Network: 3.804 - <a href="http://scn.slitaz.org/">Community</a> 3.805 - <a href="http://doc.slitaz.org/">Doc</a> 3.806 - <a href="http://forum.slitaz.org/">Forum</a> 3.807 - <a href="http://pkgs.slitaz.org/">Packages</a> 3.808 - <a href="http://bugs.slitaz.org">Bugs</a> 3.809 - <a href="http://hg.slitaz.org/?sort=lastchange">Hg</a> 3.810 - <p> 3.811 - <img src="/static/qr.png" alt="#" onmouseover="this.title = location.href" 3.812 - onclick="this.src = QRCodePNG(location.href, this)" /> 3.813 - SliTaz @ 3.814 +<footer> 3.815 + <p>Copyright © <span class="year"></span> <a href="http://www.slitaz.org/">SliTaz</a></p> 3.816 + <p>Network: 3.817 + <a href="http://scn.slitaz.org/">Community</a> 3.818 + <a href="http://doc.slitaz.org/">Doc</a> 3.819 + <a href="http://forum.slitaz.org/">Forum</a> 3.820 + <a href="http://pkgs.slitaz.org/">Packages</a> 3.821 + <a href="http://bugs.slitaz.org">Bugs</a> 3.822 + <a href="http://hg.slitaz.org/?sort=lastchange">Hg</a> 3.823 + </p> 3.824 + <p>SliTaz @ 3.825 <a href="http://twitter.com/slitaz">Twitter</a> 3.826 <a href="http://www.facebook.com/slitaz">Facebook</a> 3.827 <a href="http://distrowatch.com/slitaz">Distrowatch</a> 3.828 <a href="http://en.wikipedia.org/wiki/SliTaz">Wikipedia</a> 3.829 <a href="http://flattr.com/profile/slitaz">Flattr</a> 3.830 </p> 3.831 - <p> 3.832 - <a href="http://validator.w3.org/check?uri=referer"> 3.833 - <img src="/static/xhtml10.png" 3.834 - alt="Valid XHTML 1.0" title="Valid XHTML 1.0 Transitional" 3.835 - style="width: 80px; height: 15px;" /></a> 3.836 - </p> 3.837 -</div> 3.838 + <img src="static/qr.png" alt="#" onmouseover="this.title = location.href" 3.839 + onclick="this.src = QRCodePNG(location.href, this)" /> 3.840 +</footer> 3.841 3.842 -<?php } 3.843 -else print " 3.844 - <form action='".$_SERVER["REQUEST_URI"]."' method='get'> 3.845 - <div class='foot'>".$tag." 3.846 - <input type='text' name='f'/> 3.847 - <!-- <input type='submit' value='Filter' /> --> 3.848 - </div> 3.849 +<?php 3.850 + // end SliTaz Style 3.851 +} else { 3.852 + // not SliTaz Style 3.853 + print " 3.854 + <form action='" . $_SERVER["REQUEST_URI"] . "' method='get'> 3.855 + <div class='foot'>" . $tag . " 3.856 + <input type='text' name='f'/> 3.857 + <!-- <input type='submit' value='Filter' /> --> 3.858 + </div> 3.859 </form> 3.860 "; 3.861 + // end not SliTaz Style 3.862 +} 3.863 + 3.864 print "</body> 3.865 </html>"; 3.866 ?>
4.1 --- a/mirror/root/mirrors Sat Sep 19 16:15:43 2015 +0200 4.2 +++ b/mirror/root/mirrors Fri Oct 02 01:31:59 2015 +0300 4.3 @@ -5,14 +5,20 @@ 4.4 ftp://ftp.gtlib.gatech.edu/pub/slitaz/ 4.5 http://download.tuxfamily.org/slitaz/ 4.6 ftp://download.tuxfamily.org/slitaz/ 4.7 -http://mirror.lupaworld.com/slitaz/ 4.8 http://slitaz.c3sl.ufpr.br/ 4.9 ftp://slitaz.c3sl.ufpr.br/slitaz/ 4.10 http://slitaz.mirror.garr.it/mirrors/slitaz/ 4.11 ftp://slitaz.mirror.garr.it/mirrors/slitaz/ 4.12 -ftp://ftp.pina.si/slitaz/ 4.13 -http://distro.ibiblio.org/pub/linux/distributions/slitaz/ 4.14 -http://ftp.ch.xemacs.org/ftp/pool/4/mirror/slitaz/ 4.15 -ftp://ftp.ch.xemacs.org//pool/4/mirror/slitaz/ 4.16 +http://distro.ibiblio.org/slitaz/ 4.17 +ftp://distro.ibiblio.org/slitaz/ 4.18 http://mirror.clarkson.edu/slitaz/ 4.19 -http://slitaz.balinor.net/ 4.20 +http://malibu.tuxfamily.net/slitaz/ 4.21 +ftp://malibu.tuxfamily.net/slitaz/ 4.22 +http://ftp.uni-stuttgart.de/slitaz/ 4.23 +ftp://ftp.uni-stuttgart.de/slitaz/ 4.24 +ftp://fb04272.mathematik.tu-darmstadt.de/pub/linux/distributions/slitaz/ 4.25 +ftp://linux.mathematik.tu-darmstadt.de/pub/linux/distributions/misc/slitaz/ 4.26 +ftp://ftp.rz.uni-kiel.de/pub2/linux/slitaz/ 4.27 +ftp://ftp.icm.edu.pl/vol/rzm5/linux-ibiblio/distributions/slitaz/ 4.28 +ftp://ftp.br.debian.org/slitaz/ 4.29 +ftp://opensuse.c3sl.ufpr.br/slitaz/
5.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 5.2 +++ b/mirror/root/mirrors.html Fri Oct 02 01:31:59 2015 +0300 5.3 @@ -0,0 +1,13 @@ 5.4 +<a class="fr" href="http://mirror.slitaz.org/" title="slitaz.org mirror">slitaz.org</a> 5.5 +<a class="fr" href="http://malibu.tuxfamily.net/slitaz/" title="TuxFamily mirror">tuxfamily.net</a> 5.6 +<a class="us" href="http://www.gtlib.gatech.edu/pub/slitaz/" title="Georgia Tech Software Library (GTlib) mirror">gatech.edu</a> 5.7 +<a class="us" href="http://mirror.clarkson.edu/slitaz/" title="Clarkson University mirror">clarkson.edu</a> 5.8 +<a class="de ftp" href="http://ftp.uni-stuttgart.de/slitaz/" title="University of Stuttgart mirror">uni-stuttgart.de</a> 5.9 +<a class="ch" href="http://mirror.switch.ch/ftp/mirror/slitaz/" title="Swiss academia mirror">switch.ch</a> 5.10 +<a class="de" href="ftp://linux.mathematik.tu-darmstadt.de/pub/linux/distributions/misc/slitaz/" title="Technische Universität Darmstadt mirror">tu-darmstadt.de</a> 5.11 +<a class="de" href="ftp://ftp.rz.uni-kiel.de/pub2/linux/slitaz/" title="Kiel University mirror">uni-kiel.de</a> 5.12 +<a class="us" href="http://distro.ibiblio.org/slitaz/" title="University of North Carolina mirror">ibiblio.org</a> 5.13 +<a class="it" href="ftp://slitaz.mirror.garr.it/mirrors/slitaz/" title="Italian Research & Education Network (NREN) mirror">garr.it</a> 5.14 +<a class="pl" href="ftp://ftp.icm.edu.pl/vol/rzm5/linux-ibiblio/distributions/slitaz/" title="University of Warsaw mirror">icm.edu.pl</a> 5.15 +<a class="br" href="http://slitaz.c3sl.ufpr.br/" title="Federal University of Paraná (UFPR) mirror">ufpr.br</a> 5.16 +<a class="fr" href="http://download.tuxfamily.org/slitaz/" title="TuxFamily mirror">tuxfamily.org</a>
6.1 Binary file mirror/root/static/BR.png has changed
7.1 Binary file mirror/root/static/CH.png has changed
8.1 Binary file mirror/root/static/DE.png has changed
9.1 Binary file mirror/root/static/FR.png has changed
10.1 Binary file mirror/root/static/IT.png has changed
11.1 Binary file mirror/root/static/PL.png has changed
12.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 12.2 +++ b/mirror/root/static/README Fri Oct 02 01:31:59 2015 +0300 12.3 @@ -0,0 +1,80 @@ 12.4 +-------------------------------------------------------------------------------- 12.5 + 12.6 +Countries flags by Go Squared: 12.7 + 12.8 + * BR.png 12.9 + * CH.png 12.10 + * DE.png 12.11 + * FR.png 12.12 + * IT.png 12.13 + * PL.png 12.14 + * US.png 12.15 + 12.16 +Copyright (c) 2013 Go Squared Ltd. http://www.gosquared.com/ 12.17 + 12.18 +Permission is hereby granted, free of charge, to any person obtaining a copy of 12.19 +this software and associated documentation files (the "Software"), to deal in 12.20 +the Software without restriction, including without limitation the rights to 12.21 +use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of 12.22 +the Software, and to permit persons to whom the Software is furnished to do so, 12.23 +subject to the following conditions: 12.24 + 12.25 +The above copyright notice and this permission notice shall be included in all 12.26 +copies or substantial portions of the Software. 12.27 + 12.28 +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 12.29 +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS 12.30 +FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR 12.31 +COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER 12.32 +IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN 12.33 +CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 12.34 + 12.35 +-------------------------------------------------------------------------------- 12.36 + 12.37 +MIME Types icons from Faenza icon theme: 12.38 + 12.39 + * application-octet-stream.png 12.40 + * application-x-bittorrent.png 12.41 + * application-x-bzip.png 12.42 + * application-x-cd-image.png 12.43 + * application-x-executable.png 12.44 + * application-x-gzip.png 12.45 + * application-x-ms-dos-executable.png 12.46 + * application-zip.png 12.47 + * folder.png 12.48 + * go-up.png 12.49 + * home.png 12.50 + * package-x-generic.png 12.51 + * text-plain.png 12.52 + * text-x-changelog.png 12.53 + * text-x-readme.png 12.54 + 12.55 +Copyright (c) 2010 Matthieu James <matthieu.james@gmail.com> GPL-3+ 12.56 + 12.57 +-------------------------------------------------------------------------------- 12.58 + 12.59 +qrcode.js -- QR code generator in Javascript (revision 2011-01-19) 12.60 +Written by Kang Seonghoon <public+qrjs@mearie.org>. 12.61 + 12.62 +This source code is in the public domain; if your jurisdiction does not 12.63 +recognize the public domain the terms of Creative Commons CC0 license apply. In 12.64 +the other words, you can always do what you want. 12.65 + 12.66 +-------------------------------------------------------------------------------- 12.67 + 12.68 +SliTaz Contributors commits: 12.69 + 12.70 + * favicon.ico 12.71 + * logo.png 12.72 + * qr.png 12.73 + * slitaz.css 12.74 + 12.75 +-------------------------------------------------------------------------------- 12.76 + 12.77 +Minified script and styles using tools from 12.78 +"Free Online Tools For Developers"(http://www.freeformatter.com/) 12.79 + 12.80 + * qrcode.min.js 12.81 + * slitaz.min.css 12.82 + 12.83 +--------------------------------------------------------------------------------
13.1 Binary file mirror/root/static/US.png has changed
14.1 Binary file mirror/root/static/application-octet-stream.png has changed
15.1 Binary file mirror/root/static/application-x-bittorrent.png has changed
16.1 Binary file mirror/root/static/application-x-bzip.png has changed
17.1 Binary file mirror/root/static/application-x-cd-image.png has changed
18.1 Binary file mirror/root/static/application-x-executable.png has changed
19.1 Binary file mirror/root/static/application-x-gzip.png has changed
20.1 Binary file mirror/root/static/application-x-ms-dos-executable.png has changed
21.1 Binary file mirror/root/static/application-zip.png has changed
22.1 Binary file mirror/root/static/folder.png has changed
23.1 Binary file mirror/root/static/go-up.png has changed
24.1 Binary file mirror/root/static/help.png has changed
25.1 Binary file mirror/root/static/home.png has changed
26.1 Binary file mirror/root/static/logo.png has changed
27.1 Binary file mirror/root/static/mime/Directory has changed
28.1 Binary file mirror/root/static/mime/application_octet-stream has changed
29.1 Binary file mirror/root/static/mime/file_fd has changed
30.1 Binary file mirror/root/static/mime/file_iso has changed
31.1 Binary file mirror/root/static/mime/file_md5 has changed
32.1 Binary file mirror/root/static/mime/file_tar.gz has changed
33.1 Binary file mirror/root/static/mime/file_tazpkg has changed
34.1 Binary file mirror/root/static/mime/text_plain has changed
35.1 Binary file mirror/root/static/network.png has changed
36.1 Binary file mirror/root/static/package-x-generic.png has changed
37.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 37.2 +++ b/mirror/root/static/qrcode.min.js Fri Oct 02 01:31:59 2015 +0300 37.3 @@ -0,0 +1,1 @@ 37.4 +var QRCode=(function(){var V=[null,[[10,7,17,13],[1,1,1,1],[]],[[16,10,28,22],[1,1,1,1],[4,16]],[[26,15,22,18],[1,1,2,2],[4,20]],[[18,20,16,26],[2,1,4,2],[4,24]],[[24,26,22,18],[2,1,4,4],[4,28]],[[16,18,28,24],[4,2,4,4],[4,32]],[[18,20,26,18],[4,2,5,6],[4,20,36]],[[22,24,26,22],[4,2,6,6],[4,22,40]],[[22,30,24,20],[5,2,8,8],[4,24,44]],[[26,18,28,24],[5,4,8,8],[4,26,48]],[[30,20,24,28],[5,4,11,8],[4,28,52]],[[22,24,28,26],[8,4,11,10],[4,30,56]],[[22,26,22,24],[9,4,16,12],[4,32,60]],[[24,30,24,20],[9,4,16,16],[4,24,44,64]],[[24,22,24,30],[10,6,18,12],[4,24,46,68]],[[28,24,30,24],[10,6,16,17],[4,24,48,72]],[[28,28,28,28],[11,6,19,16],[4,28,52,76]],[[26,30,28,28],[13,6,21,18],[4,28,54,80]],[[26,28,26,26],[14,7,25,21],[4,28,56,84]],[[26,28,28,30],[16,8,25,20],[4,32,60,88]],[[26,28,30,28],[17,8,25,23],[4,26,48,70,92]],[[28,28,24,30],[17,9,34,23],[4,24,48,72,96]],[[28,30,30,30],[18,9,30,25],[4,28,52,76,100]],[[28,30,30,30],[20,10,32,27],[4,26,52,78,104]],[[28,26,30,30],[21,12,35,29],[4,30,56,82,108]],[[28,28,30,28],[23,12,37,34],[4,28,56,84,112]],[[28,30,30,30],[25,12,40,34],[4,32,60,88,116]],[[28,30,30,30],[26,13,42,35],[4,24,48,72,96,120]],[[28,30,30,30],[28,14,45,38],[4,28,52,76,100,124]],[[28,30,30,30],[29,15,48,40],[4,24,50,76,102,128]],[[28,30,30,30],[31,16,51,43],[4,28,54,80,106,132]],[[28,30,30,30],[33,17,54,45],[4,32,58,84,110,136]],[[28,30,30,30],[35,18,57,48],[4,28,56,84,112,140]],[[28,30,30,30],[37,19,60,51],[4,32,60,88,116,144]],[[28,30,30,30],[38,19,63,53],[4,28,52,76,100,124,148]],[[28,30,30,30],[40,20,66,56],[4,22,48,74,100,126,152]],[[28,30,30,30],[43,21,70,59],[4,26,52,78,104,130,156]],[[28,30,30,30],[45,22,74,62],[4,30,56,82,108,134,160]],[[28,30,30,30],[47,24,77,65],[4,24,52,80,108,136,164]],[[28,30,30,30],[49,25,81,68],[4,28,56,84,112,140,168]]];var l=0;var o=1,U=2,R=4,y=8;var G=/^\d*$/;var E=/^[A-Za-z0-9 $%*+\-./:]*$/;var t=/^[A-Z0-9 $%*+\-./:]*$/;var h=1,g=0,c=3,n=2;var B=[],Q=[-1];for(var P=0,H=1;P<255;++P){B.push(H);Q[H]=P;H=(H*2)^(H>=128?285:0)}var m=[[]];for(var P=0;P<30;++P){var D=m[P],F=[];for(var O=0;O<=P;++O){var T=(O<P?B[D[O]]:0);var S=B[(P+(D[O-1]||0))%255];F.push(Q[T^S])}m.push(F)}var q={};for(var P=0;P<45;++P){q["0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ $%*+-./:".charAt(P)]=P}var J=[function(b,a){return(b+a)%2==0},function(b,a){return b%2==0},function(b,a){return a%3==0},function(b,a){return(b+a)%3==0},function(b,a){return(((b/2)|0)+((a/3)|0))%2==0},function(b,a){return(b*a)%2+(b*a)%3==0},function(b,a){return((b*a)%2+(b*a)%3)%2==0},function(b,a){return((b+a)%2+(b*a)%3)%2==0}];var f=function(a){return a>6};var x=function(a){return 4*a+17};var u=function(a){var b=V[a];var i=16*a*a+128*a+64;if(f(a)){i-=36}if(b[2].length){i-=25*b[2].length*b[2].length-10*b[2].length-55}return i};var p=function(a,b){var j=u(a)&~7;var i=V[a];j-=8*i[0][b]*i[1][b];return j};var A=function(a,b){switch(b){case o:return(a<10?10:a<27?12:14);case U:return(a<10?9:a<27?11:13);case R:return(a<10?8:16);case y:return(a<10?8:a<27?10:12)}};var z=function(a,j,b){var i=p(a,b)-4-A(a,j);switch(j){case o:return((i/10)|0)*3+(i%10<4?0:i%10<7?1:2);case U:return((i/11)|0)*2+(i%11<6?0:1);case R:return(i/8)|0;case y:return(i/13)|0}};var s=function(W,j){switch(W){case o:if(!j.match(G)){return null}return j;case U:if(!j.match(E)){return null}return j.toUpperCase();case R:if(typeof j==="string"){var v=[];for(var a=0;a<j.length;++a){var b=j.charCodeAt(a);if(b<128){v.push(b)}else{if(b<2048){v.push(192|(b>>6),128|(b&63))}else{if(b<65536){v.push(224|(b>>12),128|((b>>6)&63),128|(b&63))}else{v.push(240|(b>>18),128|((b>>12)&63),128|((b>>6)&63),128|(b&63))}}}}return v}else{return j}}};var k=function(aa,Y,X,Z){var b=[];var ac=0,v=8;var a=X.length;var ab=function(i,ad){if(ad>=v){b.push(ac|(i>>(ad-=v)));while(ad>=8){b.push((i>>(ad-=8))&255)}ac=0;v=8}if(ad>0){ac|=(i&((1<<ad)-1))<<(v-=ad)}};var j=A(aa,Y);ab(Y,4);ab(a,j);switch(Y){case o:for(var W=2;W<a;W+=3){ab(parseInt(X.substring(W-2,W+1),10),10)}ab(parseInt(X.substring(W-2),10),[0,4,7][a%3]);break;case U:for(var W=1;W<a;W+=2){ab(q[X.charAt(W-1)]*45+q[X.charAt(W)],11)}if(a%2==1){ab(q[X.charAt(W-1)],6)}break;case R:for(var W=0;W<a;++W){ab(X[W],8)}break}ab(l,4);if(v<8){b.push(ac)}while(b.length+1<Z){b.push(236,17)}if(b.length<Z){b.push(236)}return b};var C=function(Z,a){var b=Z.slice(0);var aa=Z.length,X=a.length;for(var W=0;W<X;++W){b.push(0)}for(var W=0;W<aa;){var Y=Q[b[W++]];if(Y>=0){for(var v=0;v<X;++v){b[W+v]^=B[(Y+a[v])%255]}}}return b.slice(aa)};var N=function(a,Y,b){var ae=[];var ab=(a.length/Y)|0,ac=0;var aa=Y-a.length%Y;for(var W=0;W<aa;++W){ae.push(ac);ac+=ab}for(var W=aa;W<Y;++W){ae.push(ac);ac+=ab+1}ae.push(ac);var Z=[];for(var W=0;W<Y;++W){Z.push(C(a.slice(ae[W],ae[W+1]),b))}var ad=[];var X=(a.length/Y)|0;for(var W=0;W<X;++W){for(var v=0;v<Y;++v){ad.push(a[ae[v]+W])}}for(var v=aa;v<Y;++v){ad.push(a[ae[v+1]-1])}for(var W=0;W<b.length;++W){for(var v=0;v<Y;++v){ad.push(Z[v][W])}}return ad};var M=function(W,X,a,v){var b=W<<v;for(var j=X-1;j>=0;--j){if((b>>(v+j))&1){b^=a<<j}}return(W<<v)|b};var I=function(af){var ah=V[af],X=x(af);var ag=[],W=[];for(var ad=0;ad<X;++ad){ag.push([]);W.push([])}var ab=function(an,v,al,ai,am){for(var ak=0;ak<al;++ak){for(var aj=0;aj<ai;++aj){ag[an+ak][v+aj]=(am[ak]>>aj)&1;W[an+ak][v+aj]=1}}};ab(0,0,9,9,[127,65,93,93,93,65,383,0,64]);ab(X-8,0,8,9,[256,127,65,93,93,93,65,127]);ab(0,X-8,9,8,[254,130,186,186,186,130,254,0,0]);for(var ad=9;ad<X-8;++ad){ag[6][ad]=ag[ad][6]=~ad&1;W[6][ad]=W[ad][6]=1}var b=ah[2],Y=b.length;for(var ad=0;ad<Y;++ad){var ae=(ad==0||ad==Y-1?1:0),Z=(ad==0?Y-1:Y);for(var ac=ae;ac<Z;++ac){ab(b[ad],b[ac],5,5,[31,17,21,17,31])}}if(f(af)){var a=M(af,6,7973,12);var aa=0;for(var ad=0;ad<6;++ad){for(var ac=0;ac<3;++ac){ag[ad][(X-11)+ac]=ag[(X-11)+ac][ad]=(a>>aa++)&1;W[ad][(X-11)+ac]=W[(X-11)+ac][ad]=1}}}return{matrix:ag,reserved:W}};var L=function(ab,b,a){var v=ab.length;var X=0,W=-1;for(var Z=v-1;Z>=0;Z-=2){if(Z==6){--Z}var aa=(W<0?v-1:0);for(var Y=0;Y<v;++Y){for(var ac=Z;ac>Z-2;--ac){if(!b[aa][ac]){ab[aa][ac]=(a[X>>3]>>(~X&7))&1;++X}}aa+=W}W=-W}return ab};var K=function(v,a,b){var X=J[b];var Z=v.length;for(var Y=0;Y<Z;++Y){for(var W=0;W<Z;++W){if(!a[Y][W]){v[Y][W]^=X(Y,W)}}}return v};var e=function(Z,v,b,aa){var W=Z.length;var j=M((b<<3)|aa,5,1335,10)^21522;for(var X=0;X<15;++X){var a=[0,1,2,3,4,5,7,8,W-7,W-6,W-5,W-4,W-3,W-2,W-1][X];var Y=[W-1,W-2,W-3,W-4,W-5,W-6,W-7,W-8,7,5,4,3,2,1,0][X];Z[a][8]=Z[8][Y]=(j>>X)&1}return Z};var w=function(ad){var Z=3;var ai=3;var af=40;var ag=10;var a=function(j){var al=0;for(var aj=0;aj<j.length;++aj){if(j[aj]>=5){al+=Z+(j[aj]-5)}}for(var aj=5;aj<j.length;aj+=2){var ak=j[aj];if(j[aj-1]==ak&&j[aj-2]==3*ak&&j[aj-3]==ak&&j[aj-4]==ak&&(j[aj-5]>=4*ak||j[aj+1]>=4*ak)){al+=af}}return al};var W=ad.length;var Y=0,X=0;for(var ac=0;ac<W;++ac){var ah=ad[ac];var v;v=[0];for(var ab=0;ab<W;){var aa;for(aa=0;ab<W&&ah[ab];++aa){++ab}v.push(aa);for(aa=0;ab<W&&!ah[ab];++aa){++ab}v.push(aa)}Y+=a(v);v=[0];for(var ab=0;ab<W;){var aa;for(aa=0;ab<W&&ad[ab][ac];++aa){++ab}v.push(aa);for(aa=0;ab<W&&!ad[ab][ac];++aa){++ab}v.push(aa)}Y+=a(v);var ae=ad[ac+1]||[];X+=ah[0];for(var ab=1;ab<W;++ab){var b=ah[ab];X+=b;if(ah[ab-1]==b&&ae[ab]===b&&ae[ab-1]===b){Y+=ai}}}Y+=ag*((Math.abs(X/W/W-0.5)/0.05)|0);return Y};var d=function(X,aa,Z,a,ad){var ac=V[aa];var i=k(aa,Z,X,p(aa,a)>>3);i=N(i,ac[1][a],m[ac[0][a]]);var ae=I(aa);var ab=ae.matrix,b=ae.reserved;L(ab,b,i);if(ad<0){K(ab,b,0);e(ab,b,a,0);var W=0,Y=w(ab);K(ab,b,0);for(ad=1;ad<8;++ad){K(ab,b,ad);e(ab,b,a,ad);var j=w(ab);if(Y>j){Y=j;W=ad}K(ab,b,ad)}ad=W}K(ab,b,ad);e(ab,b,a,ad);return ab};var r={generate:function(X,v){var W={numeric:o,alphanumeric:U,octet:R};var j={L:h,M:g,Q:c,H:n};v=v||{};var a=v.version||-1;var i=j[(v.ecclevel||"L").toUpperCase()];var Y=v.mode?W[v.mode.toLowerCase()]:-1;var b="mask" in v?v.mask:-1;if(Y<0){if(typeof X==="string"){if(X.match(G)){Y=o}else{if(X.match(t)){Y=U}else{Y=R}}}else{Y=R}}else{if(!(Y==o||Y==U||Y==R)){throw"invalid or unsupported mode"}}X=s(Y,X);if(X===null){throw"invalid data format"}if(i<0||i>3){throw"invalid ECC level"}if(a<0){for(a=1;a<=40;++a){if(X.length<=z(a,Y,i)){break}}if(a>40){throw"too large data"}}else{if(a<1||a>40){throw"invalid version"}}if(b!=-1&&(b<0||b>8)){throw"invalid mask"}return d(X,a,Y,i,b)},generatePNG:function(Z,ad){ad=ad||{};var ab=r.generate(Z,ad);var aa=Math.max(ad.modulesize||5,0.5);var W=Math.max(ad.margin||4,0);var v=ab.length;var ac=aa*(v+2*W);var b=document.createElement("canvas"),a;b.width=b.height=ac;a=b.getContext("2d");if(!a){throw"canvas support is needed for PNG output"}a.fillStyle="#fff";a.fillRect(0,0,ac,ac);a.fillStyle="#000";for(var Y=0;Y<v;++Y){for(var X=0;X<v;++X){if(ab[Y][X]){a.fillRect(aa*(W+X),aa*(W+Y),aa,aa)}}}return b.toDataURL()}};return r})();
38.1 --- a/mirror/root/static/slitaz.css Sat Sep 19 16:15:43 2015 +0200 38.2 +++ b/mirror/root/static/slitaz.css Fri Oct 02 01:31:59 2015 +0300 38.3 @@ -3,355 +3,423 @@ 38.4 */ 38.5 38.6 html { 38.7 - min-height: 102%; 38.8 -} 38.9 + min-height: 102%; 38.10 + } 38.11 +body { 38.12 + height: 100%; 38.13 + margin: 0; 38.14 + box-sizing: border-box; 38.15 + color: #222; 38.16 + background: #fff; 38.17 + font: 13px Ubuntu, "Droid Sans", "DejaVu Sans", FreeSans, "Liberation Sans", sans-serif; 38.18 + -moz-hyphens: auto; -epub-hyphens: auto; -webkit-hyphens: auto; hyphens: auto; 38.19 + } 38.20 +code, pre, samp, kbd { 38.21 + color: #000; 38.22 + background-color: rgba(0, 0, 0, .05); 38.23 + } 38.24 +a { 38.25 + text-decoration: none; 38.26 + color: #215090; 38.27 + } 38.28 +a:hover { 38.29 + text-decoration: underline; 38.30 + } 38.31 +img { 38.32 + border: 0 none; 38.33 + vertical-align: middle; 38.34 + } 38.35 +h2 { 38.36 + color: #444; 38.37 + font-size: 26px; 38.38 + font-weight: 300; 38.39 + margin: 26px 0 13px; 38.40 + border-bottom: 2px solid #999; 38.41 + letter-spacing: 1px; 38.42 + } 38.43 +h3 { 38.44 + color: #666; 38.45 + font-size: 19px; 38.46 + font-weight: 300; 38.47 + margin: 26px 0 0; 38.48 + line-height: 1; 38.49 + letter-spacing: .5px; 38.50 + } 38.51 +pre { 38.52 + background-color: #F8F8F8; 38.53 + border: 1px solid #DDD; 38.54 + padding: 10px; 38.55 + white-space: pre-wrap; 38.56 + overflow-x: auto; 38.57 + line-height: 1; 38.58 + } 38.59 +table { 38.60 + background-color: #F8F8F8; 38.61 + border: 1px solid #DDD; 38.62 + width: 100%; 38.63 + margin-bottom: 20px; 38.64 + padding: 6px; 38.65 + } 38.66 38.67 -body { 38.68 - background: #ffffff; 38.69 - color: black; 38.70 - font: 13px sans-serif, vernada, arial; 38.71 - margin: 0; 38.72 - min-width: 780px; 38.73 - height: 100%; 38.74 -} 38.75 38.76 -a { text-decoration: underline; color: #215090; } 38.77 -a:hover { text-decoration: none; color: blue; } 38.78 -img { border: 0pt none; vertical-align: middle; } 38.79 -h2 { color: #444; } 38.80 -h3 { color: #666; font-size: 140%; } 38.81 -h4 { color: #888; font-size: 120%; } 38.82 -pre { 38.83 - background-color: #f8f8f8; 38.84 - border: 1px solid #ddd; 38.85 - padding: 10px; 38.86 -} 38.87 -table { 38.88 - background-color: #f8f8f8; 38.89 - border: 1px solid #ddd; 38.90 - width: 100%; 38.91 - margin: 0px 0px 20px 0px; 38.92 - padding: 10px; 38.93 -} 38.94 +/* Page header */ 38.95 38.96 -/* Header */ 38.97 +body > header { 38.98 + display: table; 38.99 + width: 100%; 38.100 + vertical-align: middle; 38.101 + min-height: 40px; 38.102 + background: #222; 38.103 + } 38.104 38.105 -#header { 38.106 - height: 40px; 38.107 - background: #222; 38.108 - color: #ffffff; 38.109 -} 38.110 - 38.111 -#header h1 { 38.112 - margin: 0; 38.113 - padding: 8px 0 0 42px; 38.114 - width: 250px; 38.115 -} 38.116 - 38.117 -#header h1 a { 38.118 - color: white; 38.119 - text-decoration: none; 38.120 +h1 { 38.121 + display: table-cell; 38.122 + height: 40px; 38.123 + vertical-align: middle; 38.124 + line-height: 20px; 38.125 + white-space: nowrap; 38.126 + } 38.127 +h1::before { 38.128 + display: inline-block; 38.129 + content: url(logo.png); 38.130 + vertical-align: middle; 38.131 + } 38.132 +h1 a { 38.133 + color: #FFF; 38.134 font-size: 20px; 38.135 font-style: italic; 38.136 -} 38.137 + } 38.138 38.139 -#header h1 a:hover, #network a:hover { 38.140 - color: #ccc; 38.141 -} 38.142 38.143 -/* Logo */ 38.144 38.145 -#logo { 38.146 - background: url(logo.png) no-repeat left; 38.147 - position: absolute; 38.148 - float: left; 38.149 - left: 0px; 38.150 - top: 0px; 38.151 - width: 40px; 38.152 - height: 40px; 38.153 -} 38.154 38.155 /* SliTaz Network */ 38.156 38.157 -#network { 38.158 - float: right; 38.159 - padding: 10px 5px 0; 38.160 +#network { 38.161 + display: table-cell; 38.162 + text-align: right; 38.163 + vertical-align: middle; 38.164 font-size: 12px; 38.165 } 38.166 38.167 -#network a { padding: 0 6px; } 38.168 +#network a { 38.169 + display: inline-block; 38.170 + padding: 0 6px; 38.171 + vertical-align: middle; 38.172 + } 38.173 +.home::before { 38.174 + content: url(home.png); 38.175 + } 38.176 + 38.177 + 38.178 +/* Country flags */ 38.179 + 38.180 +.br::before { content: url(BR.png); } 38.181 +.ch::before { content: url(CH.png); } 38.182 +.de::before { content: url(DE.png); } 38.183 +.fr::before { content: url(FR.png); } 38.184 +.it::before { content: url(IT.png); } 38.185 +.pl::before { content: url(PL.png); } 38.186 +.us::before { content: url(US.png); } 38.187 + 38.188 + 38.189 38.190 /* Block */ 38.191 38.192 -#block { 38.193 - min-height: 200px; 38.194 - background: #ccc; 38.195 - padding: 26px 10% 0px; 38.196 - text-align: center; 38.197 - color: #333; 38.198 - border-bottom: 1px solid #f5f5f5; 38.199 -} 38.200 +#block { 38.201 + padding: 30px 6px; 38.202 + background: #CCC; 38.203 + } 38.204 +#block div { 38.205 + max-width: 600px; 38.206 + margin: 0 auto; 38.207 + } 38.208 +#block_info { 38.209 + padding: 6px 12px 0 0; 38.210 + } 38.211 +#block_info input { 38.212 + width: 100%; 38.213 + } 38.214 +#block a, 38.215 +#network a { 38.216 + color: #FFF; 38.217 + } 38.218 +#block header { 38.219 + font-weight: 400; 38.220 + font-size: 18px; 38.221 + line-height: 18px; 38.222 + } 38.223 38.224 -#block_info { 38.225 - text-align: justify; 38.226 - width: 48%; 38.227 - padding: 10px 10px 0 0; 38.228 -} 38.229 +#block_info p { 38.230 + margin: 7px 0; 38.231 + padding: 0; 38.232 + text-align: justify; 38.233 + } 38.234 +#block_info a { 38.235 + font-weight: 400; 38.236 + color: #B51; 38.237 + } 38.238 38.239 -#block a, #network a { 38.240 - color: #fff; 38.241 - font-weight: bold; 38.242 - text-decoration: none; 38.243 -} 38.244 38.245 -#block h4 { 38.246 - color: #222; 38.247 - margin: 0px; 38.248 - font-weight: bold; 38.249 - font-size: 110%; 38.250 -} 38.251 38.252 -#block_info p { margin: 6px 0; padding: 0 12px 0 0; } 38.253 -#block_info a { font-weight: normal; color: #B51; } 38.254 -#block_info a:hover { color: #000; } 38.255 - 38.256 -#block ul { list-style-type: square; } 38.257 -#block a:hover { color: #afafaf; } 38.258 38.259 /* Navigation */ 38.260 38.261 -#block_nav { 38.262 - background: #666; 38.263 - padding: 10px 10px 40px; 38.264 - text-align: justify; 38.265 - width: 48%; 38.266 - float: right; 38.267 -} 38.268 +nav { 38.269 + background: #666; color: #fff; 38.270 + padding: 6px; 38.271 + width: 40%; 38.272 + } 38.273 +nav a { 38.274 + white-space: nowrap; 38.275 + } 38.276 38.277 -#block_nav ul { 38.278 - list-style-type: none; 38.279 - margin: 6px 0; 38.280 +nav header img { 38.281 + margin: 0 4px 0 0; 38.282 padding: 0; 38.283 -} 38.284 + } 38.285 +nav, 38.286 +#block_info { 38.287 + display: table-cell; 38.288 + } 38.289 38.290 -#block_nav h4 img { 38.291 - margin: 0 4px 0 0; 38.292 - padding: 0; 38.293 -} 38.294 + 38.295 38.296 /* Languages */ 38.297 38.298 #lang { 38.299 - position: absolute; 38.300 - right: 0; 38.301 + margin: 0; 38.302 + text-align: right; 38.303 padding: 6px; 38.304 font-size: 11px; 38.305 -} 38.306 + } 38.307 +#lang a { 38.308 + padding: 0 2px; 38.309 + } 38.310 38.311 -#lang a { 38.312 - text-decoration: none; 38.313 - padding: 0 2px; 38.314 -} 38.315 - 38.316 -#lang a:hover { 38.317 - text-decoration: underline; 38.318 -} 38.319 38.320 /* Content */ 38.321 38.322 #content { 38.323 - padding: 30px 80px; 38.324 + max-width: 600px; 38.325 + margin: 6px auto; 38.326 + padding: 0 6px; 38.327 text-align: justify; 38.328 -} 38.329 + line-height: 1.5rem; 38.330 + } 38.331 38.332 .news li { 38.333 list-style-type: square; 38.334 border-bottom: 1px dotted #BEBEBE; 38.335 margin-left: -25px; 38.336 - padding: 4px 0px 4px 0px; 38.337 -} 38.338 + padding: 4px 0; 38.339 + } 38.340 38.341 -.news a, .feed-grid a { text-decoration: none; } 38.342 -.news p a { text-decoration: underline; } 38.343 -.news p a:hover { text-decoration: none; } 38.344 -#twitter { margin: 20px 0; } 38.345 -#gallery { text-align: center; } 38.346 - 38.347 +#twitter { 38.348 + margin: 20px 0; 38.349 + } 38.350 +#gallery { 38.351 + text-align: center; 38.352 + } 38.353 #sponsor { 38.354 font-size: 90%; 38.355 - background-color: #fbfbfb; 38.356 - border: 2px solid #ddd; 38.357 + background-color: #FBFBFB; 38.358 + border: 2px solid #DDD; 38.359 width: 200px; 38.360 height: 160px; 38.361 float: right; 38.362 text-align: center; 38.363 - margin: 10px 0px 20px 20px; 38.364 -} 38.365 + margin: 10px 0 20px 20px; 38.366 + } 38.367 + 38.368 + 38.369 +/* Mirrors list */ 38.370 38.371 #mirrors { 38.372 padding: 10px; 38.373 - margin: 10px 0px 20px; 38.374 + margin: 10px 0 20px; 38.375 text-align: center; 38.376 - background: #f1f1f1; 38.377 - border: 2px solid #ddd; 38.378 -} 38.379 + background: #F1F1F1; 38.380 + border: 1px solid #DDD; 38.381 + } 38.382 +#mirrors a, 38.383 +#mirrors a::before { 38.384 + display: inline-block; 38.385 + padding: 0 3px; 38.386 + } 38.387 +#mirrors a::before { 38.388 + vertical-align: -4px; 38.389 + } 38.390 + 38.391 + 38.392 38.393 /* Classes */ 38.394 38.395 -.right_box { width: 48%; float: right; } 38.396 -.left_box { width: 48%; float: left; } 38.397 - 38.398 +.right_box { 38.399 + width: 48%; 38.400 + float: right; 38.401 + } 38.402 +.left_box { 38.403 + width: 48%; 38.404 + float: left; 38.405 + } 38.406 .box { 38.407 margin: 20px 60px; 38.408 padding: 12px; 38.409 - background: #efefef; 38.410 - border: 1px solid #ddd; 38.411 + background: #EFEFEF; 38.412 + border: 1px solid #DDD; 38.413 +} 38.414 +.searchbox { 38.415 + margin: 20px 80px; 38.416 + padding: 12px; 38.417 + background: #F8F8F8; 38.418 + text-align: center; 38.419 + border: 1px solid #DDD; 38.420 } 38.421 38.422 -.searchbox { 38.423 - margin: 20px 80px; 38.424 - padding: 12px; 38.425 - background: #f8f8f8; 38.426 - text-align: center; 38.427 - border: 1px solid #ddd; 38.428 -} 38.429 38.430 /* Activity Box */ 38.431 38.432 -.activity { 38.433 - margin: 0 0 20px; 38.434 - background: #efefef; 38.435 - padding: 5px 2px 0; 38.436 - border: 1px solid #ddd; 38.437 -} 38.438 -.activity div { padding: 5px 10px; background: #fff; margin-top: 5px; } 38.439 -.activity p { margin: 0; padding: 5px 10px; font-weight: bold; } 38.440 -.activity a { text-decoration: none; } 38.441 -.activity ul { list-style-type: none; 38.442 - margin: 4px 0; padding: 0 4px; line-height: 150%; } 38.443 -.activity_more { text-align: right; } 38.444 -.activity_more a { font-weight: normal; color: #000; padding: 0 4px; } 38.445 -.activity_more a:hover { text-decoration: underline; } 38.446 +.activity { 38.447 + margin: 0 0 20px; 38.448 + background: #EFEFEF; 38.449 + padding: 5px 2px 0; 38.450 + border: 1px solid #DDD; 38.451 + } 38.452 +.activity div { 38.453 + padding: 5px 10px; 38.454 + background: #FFF; 38.455 + margin-top: 5px; 38.456 + } 38.457 +.activity p { 38.458 + margin: 0; 38.459 + padding: 5px 10px; 38.460 + font-weight: 700; 38.461 + } 38.462 +.activity ul { 38.463 + list-style-type: none; 38.464 + margin: 4px 0; 38.465 + padding: 0 4px; 38.466 + line-height: 150%; 38.467 + } 38.468 +.activity_more { 38.469 + text-align: right; 38.470 + } 38.471 +.activity_more a { 38.472 + font-weight: 400; 38.473 + color: #000; 38.474 + padding: 0 4px; 38.475 + } 38.476 +.activity span, 38.477 +.news span { 38.478 + color: #666; 38.479 + font-size: 11px; 38.480 + font-weight: 400; 38.481 + } 38.482 38.483 -.activity span, .news span { 38.484 - color: #666; 38.485 - font-size: 11px; 38.486 - font-weight: normal; 38.487 -} 38.488 - 38.489 -/* Button */ 38.490 - 38.491 -.button a { 38.492 - background-color: #666; 38.493 - color: #ffffff; 38.494 - margin-right: 6px; 38.495 - padding: 6px 10px; 38.496 - font-size: 12px; 38.497 - text-decoration: none; 38.498 - font-weight: bold; 38.499 -} 38.500 -.button a:hover, input[type=submit]:hover { 38.501 - background-color: #444; 38.502 - color: #ffffff; 38.503 -} 38.504 38.505 /* Round corner */ 38.506 38.507 -#block_nav, pre, .box, .searchbox, .button a, #twitter, .activity, 38.508 -.activity div, #sponsor, #mirrors, table, input, textarea, select { 38.509 +nav, pre, table, textarea, select, 38.510 +.box, .searchbox, .activity, .activity div, 38.511 +#twitter, #sponsor, #mirrors { 38.512 -moz-border-radius: 4px; 38.513 -webkit-border-radius: 4px; 38.514 border-radius: 4px; 38.515 -} 38.516 + } 38.517 38.518 -/* Form */ 38.519 38.520 -form { display: inline; } 38.521 -input[type="submit"], input[type="text"], input[type="search"], textarea, select { 38.522 - color: #444444; 38.523 - border: 1px solid #cccccc; 38.524 - padding: 4px; 38.525 - margin: 4px 0px; 38.526 - font-size: 14px; 38.527 - line-height: 1.2em; 38.528 - background-image: -webkit-linear-gradient(#FAFAFA, #F4F4F4 40%, #E5E5E5); 38.529 - background-image: -moz-linear-gradient(#FAFAFA, #F4F4F4 40%, #E5E5E5); 38.530 - -webkit-appearance: none; 38.531 - -webkit-padding-end: 6px; 38.532 - -webkit-padding-start: 6px; 38.533 -} 38.534 +/* Page footer */ 38.535 38.536 -input[type="text"], input[type="search"], textarea { background: #fefefe; border: 2px solid #ccc; 38.537 - width: 460px; } 38.538 -/*input[type="file"] { border: 2px solid #ddd; }*/ 38.539 -/*input[type="checkbox"] { background: #fefefe; }*/ 38.540 - 38.541 -/* Be compatible with old FF and Webkit version. */ 38.542 -input[type="submit"] { 38.543 - -webkit-box-shadow: 0px 1px 3px rgba(0, 0, 0, 0.1); 38.544 - -moz-box-shadow: 0px 1px 3px rgba(0, 0, 0, 0.1); 38.545 - box-shadow: 0px 1px 3px rgba(0, 0, 0, 0.1); 38.546 -} 38.547 - 38.548 -input[type="submit"]:hover { 38.549 - cursor: pointer; 38.550 - color: black; 38.551 -} 38.552 - 38.553 -select { 38.554 - background-image: url(images/down.png), 38.555 - -webkit-linear-gradient(#FAFAFA, #F4F4F4 40%, #E5E5E5); 38.556 - background-position: center right; 38.557 - background-repeat: no-repeat; 38.558 -} 38.559 - 38.560 -.searchbox input[type=submit] { 38.561 - border: 1px solid #666; 38.562 - background-color: #666; 38.563 - color: white; 38.564 - font-weight: bold; 38.565 - cursor: pointer; 38.566 - padding: 4px 10px; 38.567 - font-size: 14px; 38.568 - margin-left: -5px; 38.569 - -webkit-border-top-right-radius: 4px; 38.570 - -webkit-border-bottom-right-radius: 4px; 38.571 - -moz-border-radius-topright: 4px; 38.572 - -moz-border-radius-bottomright: 4px; 38.573 - border-top-right-radius: 4px; 38.574 - border-bottom-right-radius: 4px; 38.575 -} 38.576 - 38.577 -.searchbox input[type=submit]:hover { background-color: #444; } 38.578 - 38.579 -.searchbox input[type=text], input[type=search] { 38.580 - border: 1px solid #333333; 38.581 - padding: 4px; 38.582 - height: 17px; 38.583 - width: 100%; 38.584 - -webkit-border-top-left-radius: 4px; 38.585 - -webkit-border-bottom-left-radius: 4px; 38.586 - -moz-border-radius-topleft: 4px; 38.587 - -moz-border-radius-bottomleft: 4px; 38.588 - border-top-left-radius: 4px; 38.589 - border-bottom-left-radius: 4px; 38.590 -} 38.591 - 38.592 -/* Footer */ 38.593 - 38.594 -#footer { 38.595 - background: #f1f1f1; 38.596 +body > footer { 38.597 + background: #F1F1F1; 38.598 text-align: center; 38.599 - border-top: 1px solid #ddd; 38.600 - padding: 40px; 38.601 + border-top: 1px solid #DDD; 38.602 + padding: 30px; 38.603 color: #666; 38.604 clear: both; 38.605 margin-bottom: -2%; 38.606 -} 38.607 - 38.608 -#footer a { color: #666; padding: 0 2px; } 38.609 - 38.610 + } 38.611 +footer a + a { 38.612 + margin: 0 6px; 38.613 + } 38.614 .year:after { 38.615 /* content: "2007-2015"; */ 38.616 content: "2015"; 38.617 -} 38.618 + } 38.619 + 38.620 + 38.621 +/* Mirror file table */ 38.622 + 38.623 +table { 38.624 + border-collapse: collapse; 38.625 + line-height: 1; 38.626 + } 38.627 +caption { 38.628 + caption-side: bottom; 38.629 + text-align: left; 38.630 + padding: 6px 0; 38.631 + } 38.632 +thead tr { 38.633 + background-color: #DDD; 38.634 + } 38.635 +th { 38.636 + padding: 4px 1px; 38.637 + } 38.638 +th:nth-child(3), 38.639 +td:nth-child(3) { 38.640 + text-align: right; 38.641 + } 38.642 +td:nth-child(1) { 38.643 + vertical-align: middle; 38.644 + } 38.645 + 38.646 +tbody tr:nth-child(odd) { 38.647 + background-color: #FFF; 38.648 + } 38.649 +tbody tr:nth-child(even) { 38.650 + background-color: #EEE; 38.651 + } 38.652 + 38.653 + 38.654 +/* More space for touch links */ 38.655 + 38.656 +.touch td, .touch th { 38.657 + padding: 6px; 38.658 + } 38.659 +.touch #network a, 38.660 +.touch nav a, 38.661 +.touch #mirrors a, 38.662 +.touch footer a { 38.663 + display: inline-block; 38.664 + padding: 6px; 38.665 + } 38.666 + 38.667 + 38.668 +/* Mimetype icons */ 38.669 + 38.670 +td:nth-child(1)::before { 38.671 + display: inline-block; 38.672 + vertical-align: middle; 38.673 + padding-right: 3px; 38.674 + } 38.675 +.x-bzip::before { content: url(application-x-bzip.png); } 38.676 +.x-gzip::before { content: url(application-x-gzip.png); } 38.677 +.plain::before { content: url(text-plain.png); } 38.678 +.x-bittorrent::before { content: url(application-x-bittorrent.png); } 38.679 +.octet-stream::before { content: url(application-octet-stream.png); } 38.680 +.dir::before { content: url(folder.png); } 38.681 +.up::before { content: url(go-up.png); } 38.682 +.zip::before { content: url(application-zip.png); } 38.683 +.iso::before { content: url(application-x-cd-image.png); } 38.684 +.krn::before { content: url(application-x-executable.png); } 38.685 +.exe::before { content: url(application-x-ms-dos-executable.png); } 38.686 +.rme::before { content: url(text-x-readme.png); } 38.687 +.log::before { content: url(text-x-changelog.png); } 38.688 +.pkg::before { content: url(package-x-generic.png); } 38.689 + 38.690 + 38.691 +/* Lists */ 38.692 + 38.693 +ul ul, ol ol, ul ol, ol ul { margin: 0; } 38.694 +ul, ol, dd { padding: 0 0 0 21px; }
39.1 --- /dev/null Thu Jan 01 00:00:00 1970 +0000 39.2 +++ b/mirror/root/static/slitaz.min.css Fri Oct 02 01:31:59 2015 +0300 39.3 @@ -0,0 +1,1 @@ 39.4 +html{min-height:102%}body{height:100%;margin:0;box-sizing:border-box;color:#222;background:#fff;font:13px Ubuntu,"Droid Sans","DejaVu Sans",FreeSans,"Liberation Sans",sans-serif;-moz-hyphens:auto;-epub-hyphens:auto;-webkit-hyphens:auto;hyphens:auto}code,pre,samp,kbd{color:#000;background-color:rgba(0,0,0,.05)}a{text-decoration:none;color:#215090}a:hover{text-decoration:underline}img{border:0 none;vertical-align:middle}h2{color:#444;font-size:26px;font-weight:300;margin:26px 0 13px;border-bottom:2px solid #999;letter-spacing:1px}h3{color:#666;font-size:19px;font-weight:300;margin:26px 0 0;line-height:1;letter-spacing:.5px}pre{background-color:#f8f8f8;border:1px solid #DDD;padding:10px;white-space:pre-wrap;overflow-x:auto;line-height:1}table{background-color:#f8f8f8;border:1px solid #DDD;width:100%;margin-bottom:20px;padding:6px}body>header{display:table;width:100%;vertical-align:middle;min-height:40px;background:#222}h1{display:table-cell;height:40px;vertical-align:middle;line-height:20px;white-space:nowrap}h1::before{display:inline-block;content:url(logo.png);vertical-align:middle}h1 a{color:#FFF;font-size:20px;font-style:italic}#network{display:table-cell;text-align:right;vertical-align:middle;font-size:12px}#network a{display:inline-block;padding:0 6px;vertical-align:middle}.home::before{content:url(home.png)}.br::before{content:url(BR.png)}.ch::before{content:url(CH.png)}.de::before{content:url(DE.png)}.fr::before{content:url(FR.png)}.it::before{content:url(IT.png)}.pl::before{content:url(PL.png)}.us::before{content:url(US.png)}#block{padding:30px 6px;background:#CCC}#block div{max-width:600px;margin:0 auto}#block_info{padding:6px 12px 0 0}#block_info input{width:100%}#block a,#network a{color:#FFF}#block header{font-weight:400;font-size:18px;line-height:18px}#block_info p{margin:7px 0;padding:0;text-align:justify}#block_info a{font-weight:400;color:#B51}nav{background:#666;color:#fff;padding:6px;width:40%}nav a{white-space:nowrap}nav header img{margin:0 4px 0 0;padding:0}nav,#block_info{display:table-cell}#lang{margin:0;text-align:right;padding:6px;font-size:11px}#lang a{padding:0 2px}#content{max-width:600px;margin:6px auto;padding:0 6px;text-align:justify;line-height:1.5rem}.news li{list-style-type:square;border-bottom:1px dotted #bebebe;margin-left:-25px;padding:4px 0}#twitter{margin:20px 0}#gallery{text-align:center}#sponsor{font-size:90%;background-color:#fbfbfb;border:2px solid #DDD;width:200px;height:160px;float:right;text-align:center;margin:10px 0 20px 20px}#mirrors{padding:10px;margin:10px 0 20px;text-align:center;background:#f1f1f1;border:1px solid #DDD}#mirrors a,#mirrors a::before{display:inline-block;padding:0 3px}#mirrors a::before{vertical-align:-4px}.right_box{width:48%;float:right}.left_box{width:48%;float:left}.box{margin:20px 60px;padding:12px;background:#efefef;border:1px solid #DDD}.searchbox{margin:20px 80px;padding:12px;background:#f8f8f8;text-align:center;border:1px solid #DDD}.activity{margin:0 0 20px;background:#efefef;padding:5px 2px 0;border:1px solid #DDD}.activity div{padding:5px 10px;background:#FFF;margin-top:5px}.activity p{margin:0;padding:5px 10px;font-weight:700}.activity ul{list-style-type:none;margin:4px 0;padding:0 4px;line-height:150%}.activity_more{text-align:right}.activity_more a{font-weight:400;color:#000;padding:0 4px}.activity span,.news span{color:#666;font-size:11px;font-weight:400}nav,pre,table,textarea,select,.box,.searchbox,.activity,.activity div,#twitter,#sponsor,#mirrors{-moz-border-radius:4px;-webkit-border-radius:4px;border-radius:4px}body>footer{background:#f1f1f1;text-align:center;border-top:1px solid #DDD;padding:30px;color:#666;clear:both;margin-bottom:-2%}footer a+a{margin:0 6px}.year:after{content:"2015"}table{border-collapse:collapse;line-height:1}caption{caption-side:bottom;text-align:left;padding:6px 0}thead tr{background-color:#DDD}th{padding:4px 1px}th:nth-child(3),td:nth-child(3){text-align:right}td:nth-child(1){vertical-align:middle}tbody tr:nth-child(odd){background-color:#FFF}tbody tr:nth-child(even){background-color:#EEE}.touch td,.touch th{padding:6px}.touch #network a,.touch nav a,.touch #mirrors a,.touch footer a{display:inline-block;padding:6px}td:nth-child(1)::before{display:inline-block;vertical-align:middle;padding-right:3px}.x-bzip::before{content:url(application-x-bzip.png)}.x-gzip::before{content:url(application-x-gzip.png)}.plain::before{content:url(text-plain.png)}.x-bittorrent::before{content:url(application-x-bittorrent.png)}.octet-stream::before{content:url(application-octet-stream.png)}.dir::before{content:url(folder.png)}.up::before{content:url(go-up.png)}.zip::before{content:url(application-zip.png)}.iso::before{content:url(application-x-cd-image.png)}.krn::before{content:url(application-x-executable.png)}.exe::before{content:url(application-x-ms-dos-executable.png)}.rme::before{content:url(text-x-readme.png)}.log::before{content:url(text-x-changelog.png)}.pkg::before{content:url(package-x-generic.png)}ul ul,ol ol,ul ol,ol ul{margin:0}ul,ol,dd{padding:0 0 0 21px}
40.1 Binary file mirror/root/static/text-plain.png has changed
41.1 Binary file mirror/root/static/text-x-changelog.png has changed
42.1 Binary file mirror/root/static/text-x-readme.png has changed
43.1 Binary file mirror/root/static/xhtml10.png has changed