slitaz-dev-tools annotate mirror-tools/slitaz/mirror/dir-generator.php @ rev 10

Add mirror-tools/slitaz folder.
author Christopher Rogers <slaxemulator@gmail.com>
date Thu Feb 24 02:26:10 2011 +0000 (2011-02-24)
parents
children c9f517d25721
rev   line source
slaxemulator@10 1 <?php
slaxemulator@10 2 function redirect()
slaxemulator@10 3 {
slaxemulator@10 4 ?>
slaxemulator@10 5 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
slaxemulator@10 6 "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
slaxemulator@10 7 <html xml:lang="en" xmlns="http://www.w3.org/1999/xhtml" lang="en">
slaxemulator@10 8 <head>
slaxemulator@10 9 <title>SliTaz mirror redirection</title>
slaxemulator@10 10 <meta http-equiv="content-type" content="text/html; charset=ISO-8859-1" />
slaxemulator@10 11 <meta name="description" content="slitaz mirror redirection" />
slaxemulator@10 12 <meta name="robots" content="index, nofollow" />
slaxemulator@10 13 <meta name="author" content="SliTaz Contributors" />
slaxemulator@10 14 <meta http-equiv="Refresh" content="0;url=http://mirror.slitaz.org/">
slaxemulator@10 15 </head>
slaxemulator@10 16 <?php
slaxemulator@10 17 }
slaxemulator@10 18
slaxemulator@10 19 $VERSION = "0.2-slitaz";
slaxemulator@10 20
slaxemulator@10 21 /* Lighttpd Enhanced Directory Listing Script
slaxemulator@10 22 * ------------------------------------------
slaxemulator@10 23 * Authors: Evan Fosmark <me@evanfosmark.com>,
slaxemulator@10 24 * Pascal Bellard <pascal.bellard@slitaz.org>
slaxemulator@10 25 * Christophe Lincoln <pankso@slitaz.org>
slaxemulator@10 26 *
slaxemulator@10 27 *
slaxemulator@10 28 * GNU License Agreement
slaxemulator@10 29 * ---------------------
slaxemulator@10 30 * This program is free software; you can redistribute it and/or modify
slaxemulator@10 31 * it under the terms of the GNU General Public License as published by
slaxemulator@10 32 * the Free Software Foundation; either version 2 of the License, or
slaxemulator@10 33 * (at your option) any later version.
slaxemulator@10 34 *
slaxemulator@10 35 * This program is distributed in the hope that it will be useful,
slaxemulator@10 36 * but WITHOUT ANY WARRANTY; without even the implied warranty of
slaxemulator@10 37 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
slaxemulator@10 38 * GNU General Public License for more details.
slaxemulator@10 39 *
slaxemulator@10 40 * You should have received a copy of the GNU General Public License
slaxemulator@10 41 * along with this program; if not, write to the Free Software
slaxemulator@10 42 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
slaxemulator@10 43 *
slaxemulator@10 44 * http://www.gnu.org/licenses/gpl.txt
slaxemulator@10 45 */
slaxemulator@10 46
slaxemulator@10 47 // Get the path (cut out the query string from the request_uri)
slaxemulator@10 48 list($path) = explode('?', $_SERVER['REQUEST_URI']);
slaxemulator@10 49
slaxemulator@10 50
slaxemulator@10 51 // Get the path that we're supposed to show.
slaxemulator@10 52 $path = ltrim(rawurldecode($path), '/');
slaxemulator@10 53
slaxemulator@10 54
slaxemulator@10 55 if(strlen($path) == 0) {
slaxemulator@10 56 $path = "./";
slaxemulator@10 57 }
slaxemulator@10 58
slaxemulator@10 59
slaxemulator@10 60 // Can't call the script directly since REQUEST_URI won't be a directory
slaxemulator@10 61 if($_SERVER['PHP_SELF'] == '/'.$path) {
slaxemulator@10 62 redirect();
slaxemulator@10 63 // die("Unable to call " . $path . " directly.");
slaxemulator@10 64 }
slaxemulator@10 65
slaxemulator@10 66
slaxemulator@10 67 $vpath = ($path != "./")?$path:"";
slaxemulator@10 68 // Make sure it is valid.
slaxemulator@10 69 if(!is_dir($path)) {
slaxemulator@10 70 // die("<b>" . $path . "</b> is not a valid path.");
slaxemulator@10 71 $path = dirname($_SERVER["SCRIPT_FILENAME"]);
slaxemulator@10 72 list($vpath) = explode('?', $_SERVER['REQUEST_URI']);
slaxemulator@10 73 $vpath = ltrim(rawurldecode($vpath), '/');
slaxemulator@10 74 }
slaxemulator@10 75
slaxemulator@10 76
slaxemulator@10 77 //
slaxemulator@10 78 // This function returns the file size of a specified $file.
slaxemulator@10 79 //
slaxemulator@10 80 function format_bytes($size, $precision=1) {
slaxemulator@10 81 $sizes = array('Y', 'Z', 'E', 'P', 'T', 'G', 'M', 'K', '');
slaxemulator@10 82 $total = count($sizes);
slaxemulator@10 83
slaxemulator@10 84 while($total-- && $size > 1024) $size /= 1024;
slaxemulator@10 85 if ($sizes[$total] == '') {
slaxemulator@10 86 $size /= 1024;
slaxemulator@10 87 $total--;
slaxemulator@10 88 }
slaxemulator@10 89 return sprintf('%.'.$precision.'f', $size).$sizes[$total];
slaxemulator@10 90 }
slaxemulator@10 91
slaxemulator@10 92
slaxemulator@10 93 //
slaxemulator@10 94 // Get some variables from /etc/lighttpd/lighttpd.conf
slaxemulator@10 95 //
slaxemulator@10 96 $conf_lightty = file_get_contents("/etc/lighttpd/lighttpd.conf");
slaxemulator@10 97
slaxemulator@10 98 function get_conf($var,$start,$stop,$default='') {
slaxemulator@10 99 global $conf_lightty;
slaxemulator@10 100
slaxemulator@10 101 if (!preg_match('/'.$var.'/',$conf_lightty)) return $default;
slaxemulator@10 102 $filter = '/(.*\n)*'.$var.'\s*=\s*'.$start.'(([^'.$stop.']*\n*)*)'.$stop.'(.*\n)*/';
slaxemulator@10 103 return preg_replace($filter,'$2',$conf_lightty);
slaxemulator@10 104 }
slaxemulator@10 105
slaxemulator@10 106 $encoding = get_conf('dir-listing.encoding','"','"','ascii');
slaxemulator@10 107 $external_css = get_conf('dir-listing.external-css','"','"');
slaxemulator@10 108
slaxemulator@10 109 $show_hidden_files = false;
slaxemulator@10 110 if (get_conf('dir-listing.hide-dotfile','"','"','disable') == "disable") {
slaxemulator@10 111 $show_hidden_files = true;
slaxemulator@10 112 }
slaxemulator@10 113 // get_conf('dir-listing.exclude','\(','\)');
slaxemulator@10 114 // get_conf('dir-listing.set-footer','"','"');
slaxemulator@10 115
slaxemulator@10 116 $mime_types = array();
slaxemulator@10 117 foreach (explode(',',get_conf('mimetype.assign','\(','\)')) as $item) {
slaxemulator@10 118 $filter = '/\s*"(.*)"\s*=>\s*"(.*)".*/';
slaxemulator@10 119 $val = explode(',',preg_replace($filter,'$1,$2',$item));
slaxemulator@10 120 if (isset($val[1])) $mime_types[$val[0]] = $val[1];
slaxemulator@10 121 }
slaxemulator@10 122
slaxemulator@10 123 //
slaxemulator@10 124 // This function returns the mime type of $file.
slaxemulator@10 125 //
slaxemulator@10 126 function get_file_type($file) {
slaxemulator@10 127 global $mime_types;
slaxemulator@10 128
slaxemulator@10 129 $file = basename($file);
slaxemulator@10 130 $default_type = "application/octet-stream";
slaxemulator@10 131 if (isset($mime_types[$file])) {
slaxemulator@10 132 return $mime_types[$file];
slaxemulator@10 133 }
slaxemulator@10 134 $pos = strrpos($file, ".");
slaxemulator@10 135 if ($pos === false) {
slaxemulator@10 136 return $default_type;
slaxemulator@10 137 }
slaxemulator@10 138 //FIXME .tar.gz
slaxemulator@10 139 $ext = '.'.rtrim(substr($file, $pos+1), "~");
slaxemulator@10 140 if (isset($mime_types[$ext])) {
slaxemulator@10 141 return $mime_types[$ext];
slaxemulator@10 142 }
slaxemulator@10 143 return $default_type;
slaxemulator@10 144 }
slaxemulator@10 145
slaxemulator@10 146 //$slitaz_style = (dirname($_SERVER["PHP_SELF"]) == '/');
slaxemulator@10 147 $slitaz_style = ($_SERVER["SERVER_NAME"] == "mirror.slitaz.org");
slaxemulator@10 148 if ($slitaz_style) {
slaxemulator@10 149 $fvalue = "";
slaxemulator@10 150 if (isset($_GET[f])) $fvalue = 'value="'.$_GET[f].'"';
slaxemulator@10 151 print <<<EOT
slaxemulator@10 152 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
slaxemulator@10 153 "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
slaxemulator@10 154 <html xml:lang="en" xmlns="http://www.w3.org/1999/xhtml" lang="en">
slaxemulator@10 155 <head>
slaxemulator@10 156 <title>Index of /$vpath</title>
slaxemulator@10 157 <meta http-equiv="content-type" content="text/html; charset=ISO-8859-1" />
slaxemulator@10 158 <meta name="description" content=">Index of /$vpath" />
slaxemulator@10 159 <meta name="robots" content="index, nofollow" />
slaxemulator@10 160 <meta name="author" content="SliTaz Contributors" />
slaxemulator@10 161 <link rel="shortcut icon" href="/css/favicon.ico" />
slaxemulator@10 162 <link rel="stylesheet" type="text/css" href="/css/slitaz.css" />
slaxemulator@10 163 <style type='text/css'>
slaxemulator@10 164 div.list { background-color: white; padding-bottom: 14px;}
slaxemulator@10 165 table {width: 100% ;}
slaxemulator@10 166 th, td { font: 90% monospace; text-align: left;}
slaxemulator@10 167 th { font-weight: bold; padding-right: 14px; padding-bottom: 3px;}
slaxemulator@10 168 td {padding-right: 14px;}
slaxemulator@10 169 td.s, th.s {text-align: right;}
slaxemulator@10 170 </style>
slaxemulator@10 171 </head>
slaxemulator@10 172 <body>
slaxemulator@10 173
slaxemulator@10 174 <!-- Header -->
slaxemulator@10 175 <div id="header">
slaxemulator@10 176 <a href="http://mirror.slitaz.org/"><img id="logo"
slaxemulator@10 177 src="/css/pics/website/logo.png"
slaxemulator@10 178 title="mirror.slitaz.org" alt="mirror.slitaz.org" /></a>
slaxemulator@10 179 <p id="titre">#!/Mirror/${vpath}</p>
slaxemulator@10 180 </div>
slaxemulator@10 181
slaxemulator@10 182 <!-- Content -->
slaxemulator@10 183 <div id="content-full">
slaxemulator@10 184
slaxemulator@10 185 <!-- Block begin -->
slaxemulator@10 186 <div class="block">
slaxemulator@10 187 <!-- Nav block begin -->
slaxemulator@10 188 <div id="block_nav">
slaxemulator@10 189 <h3><img src="/css/pics/website/users.png" alt="users.png" />Community</h3>
slaxemulator@10 190 <ul>
slaxemulator@10 191 <li><a href="http://pizza.slitaz.org/">Live Builder</a></li>
slaxemulator@10 192 <li><a href="http://boot.slitaz.org/">Web Boot</a></li>
slaxemulator@10 193 </ul>
slaxemulator@10 194 <h3>Search</h3>
slaxemulator@10 195 <form class="search" action="${_SERVER["REQUEST_URI"]}" method="get" >
slaxemulator@10 196 <p><input type="text" name="f" $fvalue /></p>
slaxemulator@10 197 </form>
slaxemulator@10 198 <!-- Nav block end -->
slaxemulator@10 199 </div>
slaxemulator@10 200 <!-- Top block begin -->
slaxemulator@10 201 <div id="block_top">
slaxemulator@10 202 <h1>About Mirror</h1>
slaxemulator@10 203 <p>Welcome to Open Source!
slaxemulator@10 204 EOT;
slaxemulator@10 205 if ($_SERVER["SERVER_NAME"] == "mirror.slitaz.org") print <<<EOT
slaxemulator@10 206 This is the SliTaz GNU/Linux main mirror. The server runs naturally SliTaz
slaxemulator@10 207 (stable) in an lguest virtual machine provided by
slaxemulator@10 208 <a href="http://www.ads-lu.com/">ADS</a>.
slaxemulator@10 209 EOT;
slaxemulator@10 210 print <<<EOT
slaxemulator@10 211 </p>
slaxemulator@10 212 <p><img src="/css/pics/website/network.png"
slaxemulator@10 213 alt=".png" style="vertical-align:middle;"/>Mirrors:
slaxemulator@10 214 EOT;
slaxemulator@10 215 $mirrors = array();
slaxemulator@10 216 $fp = @fopen(dirname($_SERVER["SCRIPT_FILENAME"])."/mirrors","r");
slaxemulator@10 217 if ($fp) {
slaxemulator@10 218 while (($line = fgets($fp)) !== false) {
slaxemulator@10 219 $line = chop($line);
slaxemulator@10 220 $url = parse_url($line);
slaxemulator@10 221 if ($_SERVER["SERVER_NAME"] == $url['host']) continue;
slaxemulator@10 222 $host = explode('.',$url['host']);
slaxemulator@10 223 $mirrors[$host[count($host)-2].".".
slaxemulator@10 224 $host[count($host)-1]] = $line;
slaxemulator@10 225 }
slaxemulator@10 226 }
slaxemulator@10 227 fclose($fp);
slaxemulator@10 228 foreach($mirrors as $name => $url) {
slaxemulator@10 229 echo "<a href=\"$url$vpath\" title=\"$name mirror\">$name</a>\n";
slaxemulator@10 230 }
slaxemulator@10 231 print <<<EOT
slaxemulator@10 232 </p>
slaxemulator@10 233 <!-- Top block end -->
slaxemulator@10 234 </div>
slaxemulator@10 235 <!-- Block end -->
slaxemulator@10 236 </div>
slaxemulator@10 237
slaxemulator@10 238 EOT;
slaxemulator@10 239 }
slaxemulator@10 240 else {
slaxemulator@10 241
slaxemulator@10 242 // Print the heading stuff
slaxemulator@10 243 print "<?xml version='1.0' encoding='$encoding'?>
slaxemulator@10 244 <!DOCTYPE html PUBLIC '-//W3C//DTD XHTML 1.1//EN' 'http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd'>
slaxemulator@10 245 <html xmlns='http://www.w3.org/1999/xhtml' xml:lang='en'>
slaxemulator@10 246 <head>
slaxemulator@10 247 <title>Index of /" .$vpath. "</title>
slaxemulator@10 248 ";
slaxemulator@10 249 if ($external_css != '') {
slaxemulator@10 250 print " <link rel='stylesheet' type='text/css' href='".$external_css."' />
slaxemulator@10 251 ";
slaxemulator@10 252 }
slaxemulator@10 253 else {
slaxemulator@10 254 print " <style type='text/css'>
slaxemulator@10 255 a, a:active {text-decoration: none; color: blue;}
slaxemulator@10 256 a:visited {color: #48468F;}
slaxemulator@10 257 a:hover, a:focus {text-decoration: underline; color: red;}
slaxemulator@10 258 body {background-color: #F5F5F5;}
slaxemulator@10 259 h2 {margin-bottom: 12px;}
slaxemulator@10 260 table {margin-left: 12px;}
slaxemulator@10 261 th, td { font: 90% monospace; text-align: left;}
slaxemulator@10 262 th { font-weight: bold; padding-right: 14px; padding-bottom: 3px;}
slaxemulator@10 263 td {padding-right: 14px;}
slaxemulator@10 264 td.s, th.s {text-align: right;}
slaxemulator@10 265 div.list { background-color: white; border-top: 1px solid #646464; border-bottom: 1px solid #646464; padding-top: 10px; padding-bottom: 14px;}
slaxemulator@10 266 div.foot { font: 90% monospace; color: #787878; padding-top: 4px;}
slaxemulator@10 267 </style>
slaxemulator@10 268 ";
slaxemulator@10 269 }
slaxemulator@10 270 print " </head>
slaxemulator@10 271 <boby>
slaxemulator@10 272 <h2>Index of /" . $vpath ."</h2>
slaxemulator@10 273 ";
slaxemulator@10 274 }
slaxemulator@10 275
slaxemulator@10 276 print " <div class='list'>
slaxemulator@10 277 <table summary='Directory Listing' cellpadding='0' cellspacing='0'>
slaxemulator@10 278 ";
slaxemulator@10 279
slaxemulator@10 280
slaxemulator@10 281
slaxemulator@10 282 // Get all of the folders and files.
slaxemulator@10 283 $folderlist = array();
slaxemulator@10 284 $filelist = array();
slaxemulator@10 285 if($handle = @opendir($path)) {
slaxemulator@10 286 while(($item = readdir($handle)) !== false) {
slaxemulator@10 287 if ($item == "index.php") continue;
slaxemulator@10 288 if ($item == "dir-generator.php") continue;
slaxemulator@10 289 if (isset($_GET['f'])) {
slaxemulator@10 290 $filter = $_GET['f'];
slaxemulator@10 291 if (substr($filter,0,1) != '/')
slaxemulator@10 292 $filter = '/'.$filter.'/i';
slaxemulator@10 293 if (!preg_match($filter,$item)) continue;
slaxemulator@10 294 }
slaxemulator@10 295 if(is_dir($path.'/'.$item) and $item != '.' and $item != '..') {
slaxemulator@10 296 $folderlist[] = array(
slaxemulator@10 297 'name' => $item,
slaxemulator@10 298 'size' => 0,
slaxemulator@10 299 'modtime'=> filemtime($path.'/'.$item),
slaxemulator@10 300 'file_type' => "Directory"
slaxemulator@10 301 );
slaxemulator@10 302 }
slaxemulator@10 303 elseif(is_file($path.'/'.$item)) {
slaxemulator@10 304 if(!$show_hidden_files) {
slaxemulator@10 305 if(substr($item, 0, 1) == "." or substr($item, -1) == "~") {
slaxemulator@10 306 continue;
slaxemulator@10 307 }
slaxemulator@10 308 }
slaxemulator@10 309 $filelist[] = array(
slaxemulator@10 310 'name'=> $item,
slaxemulator@10 311 'size'=> filesize($path.'/'.$item),
slaxemulator@10 312 'modtime'=> filemtime($path.'/'.$item),
slaxemulator@10 313 'file_type' => get_file_type($path.'/'.$item)
slaxemulator@10 314 );
slaxemulator@10 315 }
slaxemulator@10 316 }
slaxemulator@10 317 closedir($handle);
slaxemulator@10 318 }
slaxemulator@10 319
slaxemulator@10 320
slaxemulator@10 321 if(!isset($_GET['s'])) {
slaxemulator@10 322 $_GET['s'] = 'name';
slaxemulator@10 323 }
slaxemulator@10 324
slaxemulator@10 325 // Figure out what to sort files by
slaxemulator@10 326 $file_order_by = array();
slaxemulator@10 327 foreach ($filelist as $key=>$row) {
slaxemulator@10 328 $file_order_by[$key] = $row[$_GET['s']];
slaxemulator@10 329 }
slaxemulator@10 330
slaxemulator@10 331 // Figure out what to sort folders by
slaxemulator@10 332 $folder_order_by = array();
slaxemulator@10 333 foreach ($folderlist as $key=>$row) {
slaxemulator@10 334 $folder_order_by[$key] = $row[$_GET['s']];
slaxemulator@10 335 }
slaxemulator@10 336
slaxemulator@10 337 // Order the files and folders
slaxemulator@10 338 $sort_type = SORT_ASC;
slaxemulator@10 339 $order = "&amp;o=d";
slaxemulator@10 340 if(isset($_GET['o'])) {
slaxemulator@10 341 $sort_type = SORT_DESC;
slaxemulator@10 342 $order = "";
slaxemulator@10 343 }
slaxemulator@10 344 array_multisort($folder_order_by, $sort_type, $folderlist);
slaxemulator@10 345 array_multisort($file_order_by, $sort_type, $filelist);
slaxemulator@10 346
slaxemulator@10 347
slaxemulator@10 348 // Show sort methods
slaxemulator@10 349 print "<thead><tr>";
slaxemulator@10 350
slaxemulator@10 351 $sort_methods = array();
slaxemulator@10 352 $sort_methods['name'] = "Name";
slaxemulator@10 353 $sort_methods['modtime'] = "Last Modified";
slaxemulator@10 354 $sort_methods['size'] = "Size";
slaxemulator@10 355 $sort_methods['file_type'] = "Type";
slaxemulator@10 356
slaxemulator@10 357 foreach($sort_methods as $key=>$item) {
slaxemulator@10 358 if ($_GET['s'] == $key) $key = "$key$order";
slaxemulator@10 359 print "<th class='n'><a href='?s=$key'>$item</a></th>";
slaxemulator@10 360 }
slaxemulator@10 361 print "</tr></thead>\n<tbody>\n";
slaxemulator@10 362
slaxemulator@10 363
slaxemulator@10 364
slaxemulator@10 365 // Parent directory link
slaxemulator@10 366 if($path != "./") {
slaxemulator@10 367 print "<tr><td class='n'><a href='..'>Parent Directory</a>/</td>";
slaxemulator@10 368 print "<td class='m'>&nbsp;</td>";
slaxemulator@10 369 print "<td class='s'>- &nbsp;</td>";
slaxemulator@10 370 print "<td class='t'>Directory</td></tr>\n";
slaxemulator@10 371 }
slaxemulator@10 372
slaxemulator@10 373
slaxemulator@10 374
slaxemulator@10 375 // Print folder information
slaxemulator@10 376 foreach($folderlist as $folder) {
slaxemulator@10 377 print "<tr><td class='n'><a href='" . addslashes($folder['name']). "'>" .htmlentities($folder['name']). "</a>/</td>";
slaxemulator@10 378 print "<td class='m'>" . date('Y-M-d H:m:s', $folder['modtime']) . "</td>";
slaxemulator@10 379 print "<td class='s'>- &nbsp;</td>";
slaxemulator@10 380 print "<td class='t'>" . $folder['file_type'] . "</td></tr>\n";
slaxemulator@10 381 }
slaxemulator@10 382
slaxemulator@10 383
slaxemulator@10 384 // Print file information
slaxemulator@10 385 foreach($filelist as $file) {
slaxemulator@10 386 print "<tr><td class='n'><a href='" . addslashes($file['name']). "'>" .htmlentities($file['name']). "</a></td>";
slaxemulator@10 387 print "<td class='m'>" . date('Y-M-d H:m:s', $file['modtime']) . "</td>";
slaxemulator@10 388 print "<td class='s'>" . format_bytes($file['size']) . "</td>";
slaxemulator@10 389 print "<td class='t'>" . $file['file_type'] . "</td></tr>\n";
slaxemulator@10 390 }
slaxemulator@10 391
slaxemulator@10 392 // Print ending stuff
slaxemulator@10 393 $soft = explode('/',$_SERVER["SERVER_SOFTWARE"]);
slaxemulator@10 394 $tag = get_conf('server.tag','"','"',$soft[0].' &lt;'.$soft[1].'&gt;');
slaxemulator@10 395 print "</tbody>
slaxemulator@10 396 </table>
slaxemulator@10 397 </div>";
slaxemulator@10 398 if ($slitaz_style) { ?>
slaxemulator@10 399
slaxemulator@10 400 <!-- End of content -->
slaxemulator@10 401 </div>
slaxemulator@10 402
slaxemulator@10 403 <!-- Footer -->
slaxemulator@10 404 <div id="footer">
slaxemulator@10 405 <div class="right_box">
slaxemulator@10 406 <h4>SliTaz Network</h4>
slaxemulator@10 407 <ul>
slaxemulator@10 408 <li><a href="http://www.slitaz.org/">Main Website</a></li>
slaxemulator@10 409 <li><a href="http://doc.slitaz.org/">Documentation</a></li>
slaxemulator@10 410 <li><a href="http://forum.slitaz.org/">Support Forum</a></li>
slaxemulator@10 411 <li><a href="http://scn.slitaz.org/">Community Network</a></li>
slaxemulator@10 412 <li><a href="http://pkgs.slitaz.org/">Packages</a></li>
slaxemulator@10 413 <li><a href="http://labs.slitaz.org/">Laboratories</a></li>
slaxemulator@10 414 </ul>
slaxemulator@10 415 </div>
slaxemulator@10 416 <h4>SliTaz Website</h4>
slaxemulator@10 417 <ul>
slaxemulator@10 418 <li><a href="#header">Top of the page</a></li>
slaxemulator@10 419 <li>Copyright &copy; <span class="year"></span>
slaxemulator@10 420 <a href="http://www.slitaz.org/">SliTaz</a></li>
slaxemulator@10 421 <li><a href="about/">About the project</a></li>
slaxemulator@10 422 <li><a href="netmap.php">Network Map</a></li>
slaxemulator@10 423 <li>Page modified the <?php echo date('r'); ?></li>
slaxemulator@10 424 <li><a href="http://validator.w3.org/check?uri=referer"><img
slaxemulator@10 425 src="pics/website/xhtml10.png" alt="Valid XHTML 1.0"
slaxemulator@10 426 title="Code validé XHTML 1.0"
slaxemulator@10 427 style="width: 80px; height: 15px; vertical-align: middle;" /></a></li>
slaxemulator@10 428 </ul>
slaxemulator@10 429 </div>
slaxemulator@10 430
slaxemulator@10 431 <?php }
slaxemulator@10 432 else print "
slaxemulator@10 433 <form action='".$_SERVER["REQUEST_URI"]."' method='get'>
slaxemulator@10 434 <div class='foot'>".$tag."
slaxemulator@10 435 <input type='text' name='f'/>
slaxemulator@10 436 <!-- <input type='submit' value='Filter' /> -->
slaxemulator@10 437 </div>
slaxemulator@10 438 </form>
slaxemulator@10 439 ";
slaxemulator@10 440 print "</body>
slaxemulator@10 441 </html>";
slaxemulator@10 442 ?>