jablonka.czprosek.czf

czf4bfu

Subversion Repositories:
[/] [index.php] - Rev 21

Compare with Previous - Blame - Download


<?php
error_reporting(0);
// Nastavime, aby se nam zbytecne nelogovaly chyby
ini_set('log_errors',false);
// max_execution_time, pro fungovani je nutne vypnout Safe_mod
set_time_limit(0);

/*$starttime = microtime();
$startarray = explode(" ", $starttime);
$starttime = $startarray[1] + $startarray[0];*/

header("Content-Type: text/html; charset=windows-1250");
setlocale(LC_ALL, 'cs_CZ', 'czech', 'cs_CZ.windows.1250');
$verze = "1.9";

$jmena_cloudu = array("10.1.0.0/16" => "Connection.cz / AS Centrum network",
"10.2.0.0/16" => "Praha - Connection.cz",
"10.10.0.0/16" => "reserved",
"10.11.0.0/16" => "Praha - Střešovice, Břevnov, Hradčany, Strahov",
"10.12.0.0/16" => "Praha - Nusle, Michle, Vršovice, Vinohrady",
"10.13.0.0/16" => "Praha - Stodůlky, Nové Butovice, Luka, Lužiny, Řeporyje, Jinonice",
"10.15.0.0/16" => "Praha - Malvazinky, Košíře, Motol",
"10.16.0.0/16" => "Praha - Barrandov",
"10.17.0.0/16" => "Praha - Záběhlice, Zahradní město",
"10.18.0.0/16" => "Praha - Dejvice, Podbaba",
"10.19.0.0/16" => "Praha - Suchdol, Lysolaje, Hanspaulka, Horoměřice",
"10.20.0.0/16" => "Praha - P6 - Dědina, Liboc, Ruzyně",
"10.21.0.0/16" => "Praha - Řepy, Zličín",
"10.22.0.0/16" => "Praha - Holešovice",
"10.23.0.0/16" => "Praha - Vinohrady, Vršovice, Michle, Nusle, Žižkov",
"10.24.0.0/16" => "Praha - Jarov, Strašnice, Malešice, Skalka",
"10.25.0.0/16" => "Praha - Hlubočepy, Podolí, Braník",
"10.26.0.0/16" => "Praha - Radotín, Zbraslav, Lipence",
"10.27.0.0/16" => "Praha - Modřany, Velká Chuchle, Hodkovičky",
"10.28.0.0/16" => "Praha - VYPAL (VYsočany, PAlmovka, Libeň)",
"10.30.0.0/16" => "Praha - Jarov, Strašnice, Malešice, Skalka, Hostivař",
"10.31.0.0/16" => "Praha - Bohnice, Čimice",
"10.32.0.0/16" => "Praha - Dolní Chabry, Ďáblice, Kobylisy, Vychovatelna",
"10.33.0.0/16" => "Praha - Prosek, Letňany, Čakovice",
"10.34.0.0/16" => "Praha - Letná, Štrossmajerák",
"10.37.0.0/16" => "Praha - Radotín",
"10.38.0.0/16" => "Praha - Chodov, Opatov, Háje, Kateřinky",
"10.39.0.0/16" => "Praha - Šibřina, Újezd nad Lesy, Koloděje, Květnice",
"10.40.0.0/16" => "Praha - Krč, sidl.Novodvorská, Kačerov, Spořilov, Roztyly",
"10.41.0.0/16" => "HMNet - Horní Měcholupy, Horní Počernice, Kyje, Dubeč",
"10.43.0.0/16" => "Řepná pole, Vinoř",
"10.44.0.0/16" => "Praha - Podolí",
"10.51.0.0/16" => "Praha - Petřiny",
"10.55.0.0/16" => "Praha - Centrum",
"10.58.0.0/16" => "Praha 1",
"10.63.0.0/17" => "Rakovník a okolí",
"10.64.0.0/17" => "Křivoklátsko a okolí",
"10.66.0.0/16" => "Hostivice, Chýně, Ptice, Červený Újezd, Sobín",
"10.67.0.0/16" => "Rudná u Prahy, Ptice, Úhonice, Drahelčice",
"10.69.0.0/17" => "Mělník a okolí",
"10.69.128.0/17" => "Neratovice a okolí",
"10.70.0.0/16" => "Beroun a okolí",
"10.76.0.0/16" => "Plzeň - PilsFree",
"10.80.0.0/16" => "České Budějovice",
"10.88.0.0/16" => "Říčany a okolí",
"10.89.0.0/16" => "Mnichovice",
"10.92.0.0/19" => "Libčice nad Vltavou",
"10.93.0.0/16" => "Čelákovice",
"10.94.0.0/17" => "Mladá Boleslav a okolí",
"10.98.0.0/16" => "Unhoš, Chýně, Červený Újezd, Ptice, Nouzov, Kysice, Braškov, Horní Bezděkov a další",
"10.101.0.0/16" => "Liberec",
"10.102.0.0/16" => "Klfree.net - Kladno, Unhoš a okolí",
"10.103.0.0/16" => "Karlovy Vary",
"10.105.0.0/17" => "Kolín",
"10.106.0.0/16" => "KHnet - Kutná Hora",
"10.107.0.0/16" => "Hradec Králové",
"10.108.0.0/16" => "České Budějovice",
"10.109.0.0/16" => "Plzeň",
"10.110.0.0/17" => "Chrudim, Pardubice, Křižánovice a okolí",
"10.110.128.0/17" => "PlzenecNET o.s. - Starý Plzenec",
"10.111.0.0/20" => "Žihle",
"10.111.64.0/18" => "Touškov.NET",
"10.111.128.0/17" => "Tremnet - Třemošná a okolí",
"10.113.0.0/16" => "Louny, Žatec, Pobořany",
"10.114.0.0/16" => "Příbram",
"10.115.0.0/16" => "Bubakov.czf - Nové Strašecí a okolí",
"10.117.0.0/16" => "Turnov a okolí",
"10.120.0.0/18" => "MH2Net - Mnichovo Hradiště směr Turnov",
"10.121.0.0/18" => "Steadynet - Nové Město na Moravě a okolí",
"10.128.0.0/15" => "Brno - město",
"10.128.0.0/16" => "Brno - město",
"10.129.0.0/16" => "okolí Brna",
"10.129.24.0/21" => "Tišnov",
"10.130.0.0/16" => "Severní Morava",
"10.131.0.0/16" => "Uherské Hradiště",
"10.132.0.0/16" => "Střední Morava - Olomouc",
"10.133.0.0/16" => "PVfree.net - Prostějov",
"10.134.0.0/16" => "Přerovsko",
"10.135.0.0/16" => "BrNet - Brno",
"10.136.0.0/16" => "testovací sítě pro Moravu",
"10.143.0.0/16" => "UnArt Slavičín",
"10.145.0.0/16" => "Vsetín a okolí",
"10.152.0.0/14" => "Ostrava - okres",
"10.152.0.0/16" => "Ostrava - okres",
"10.153.0.0/16" => "Ostrava - okres",
"10.154.0.0/16" => "Ostrava - okres",
"10.155.0.0/16" => "Ostrava - okres",
"10.161.0.0/16" => "Evkanet - Ostrava",
"10.193.64.0/18" => "Varnsdorf a okolí",
"10.225.0.0/16" => "CZFree-ol - Olomouc",
"10.253.0.0/16" => "NFX z.s.p.o.",
"10.254.0.0/16" => "NCX Labyrint");

function arfsort($a) {
  usort($a,'arfsort_func');
  return $a;
}

function arfsort_func($a, $b) {
  $order[0][0] = "TYP";
  $order[1][0] = "NAZEV";
  foreach($order as $f) {
    $strc = strcasecmp($a[$f[0]],$b[$f[0]]);
    if ($strc!=0) {
      return $strc;
    }
  }
  return 0;
}

function natsort_func($a,$b){
  $strc = strnatcmp($a,$b);
  if ($strc!=0) {
     return $strc;
  }
  return 0;
}

function get_icon($bfufile, $icon, $typ) {
  if(isset($icon)) {
    preg_match('/^(.*)\/([^\/]+)$/i', $icon, $iconname);
    $ikonka = "cache/".$bfufile."_".$iconname[2];
    if(!file_exists($ikonka)) {
      $ikonka = "ikony/".$typ.".png";
      if(!file_exists($ikonka)) {
        $ikonka = "ikony/none.png";
      }
    }
  } else {
    $ikonka = "ikony/".$typ.".png";
    if(!file_exists($ikonka)) { $ikonka = "ikony/none.png"; }
  }
  return $ikonka;
}

function show_small($test) {
  $string = "";
  foreach ($test as $key=>$row) {
      $oblastx = $row["OBLAST"];
      $typ = $row["TYP"];
      $nazev = $row["NAZEV"];
      $id = $row["ID"];
      $ikonka = $row["BFUICON"];
      
      $string .= "<div class=\"smallicon\"><a title=\"$nazev\" href=\"?id=$id&amp;oblast=$oblastx#$oblastx\"><img title=\"$nazev\" src=\"$ikonka\"><span>$nazev</span></a></div>\n";
  }
  return $string;
}

function show_big($test) {
  $string = "";
  foreach ($test as $row) {
      $oblastx = $row["OBLAST"];
      $typ = $row["TYP"];
      $nazev = $row["NAZEV"];
      $popis = $row["POPIS"];
      $id = $row["ID"];
      $ikonka = $row["BFUICON"];
      
      $string .= "<div class=\"icon\"><a title=\"".$popis."\" href=\"?id=".$id."&amp;oblast=".$oblastx."#".$oblastx."\"><img title=\"".$popis."\" src=\"$ikonka\"><br>".$nazev."</a></div>\n";
  }
  return $string;
}

function show_groups($test) {
  $pamatuj = "";
  $string = "";
  $x = 0;
  foreach ($test as $row) {
    $oblastx = $row["OBLAST"];
    $typ = $row["TYP"];
    $nazev = $row["NAZEV"];
    $popis = $row["POPIS"];
    $id = $row["ID"];
    $ikonka = $row["BFUICON"];

    if ($typ===$pamatuj) {
       $string .= "<div class=\"icon\"><a title=\"".$popis."\" href=\"?id=".$id."&amp;oblast=".$oblastx."#".$oblastx."\"><img title=\"".$popis."\" src=\"$ikonka\"><br>".$nazev."</a></div>\n";
    } else {
       if($x==0) { $nomargin = "nomargin "; $x==1; } else { $nomargin = ""; }
       $string .= "<div class=\"sizer\"></div><a name=\"".$typ."\" href=\"#".$typ."\" class=\"".$nomargin."title\">".$typ."</a>\n";
       $string .= "<div class=\"icon\"><a title=\"".$popis."\" href=\"?id=".$id."&amp;oblast=".$oblastx."#".$oblastx."\"><img title=\"".$popis."\" src=\"$ikonka\"><br>".$nazev."</a></div>\n";
    }
    $pamatuj = $typ;
  }
  return $string;
}

function show_clouds($test, $jmena_cloudu) {
  $string = "";
  foreach ($test as $row) {
    if($row!="") {
      $cl_popis = $jmena_cloudu["$row"];
      $cl_naz = $row;
      $cl_nazev = $row."<br>".$cl_popis;

      $string .= "<div class=\"icon2\"><a title=\"".$cl_popis."\" href=\"?oblast=".$cl_naz."#".$cl_naz."\"><img title=\"".$cl_popis."\" src=\"img/cloud.png\"><br>".$cl_nazev."</a></div>\n";
    }
  }
  return $string;
}

function show_details($test) {
  $ikonka_det = $test["TYP"];
  $ikonka_url = $test["BFUICON"];
  $string = "<div class=\"det\"><div class=\"icon_det\"><img alt=\"$ikonka_det\" src=\"$ikonka_url\"></div><div class=\"info_det\">";
  foreach ($test as $key => $row) {
   if(!preg_match('%^(?:HESLOEDIT|SOURCE|BFUFILE|BFUICON|ID|#)%',$key)) {
      if (preg_match('%^URL(?:|IP|INET)%',$key)) {
        if (!preg_match('%\://%',$row)) {
           $row = "<a href=\"http://".$row."\">http://".$row."</a>";
        } else {
           $row = "<a href=\"".$row."\">".$row."</a>";
        }
      }
      if($key!="") {
        $string .= "<strong>".$key."</strong>:&nbsp;".$row."<br>";
      }
   }
  }
  return $string."</div><div class=\"info_cut\"></div></div>";
}


$seznam = array();
echo "<!--CZF4BFU ";
if (function_exists('scandir')) {
  $scan = scandir(".");
  foreach($scan as $file) {
    if (preg_match('/^(?:global|local)-.*.txt$/',$file)) {
      echo $file." ";
      $seznam[] = $file;
    }
  }
} else {
  if ($dir = opendir(".")) {
    while (($file = readdir($dir)) !== false)
     if (preg_match('/^(?:global|local)-.*.txt$/',$file)) {
       echo $file." ";
       $seznam[] = $file;
     }
  }
}
echo "-->\n";

$group = $_GET["group"];
$czf_group = $group;
$czf_oblast = $_GET["oblast"];
$czf_id = $_GET["id"];

if(!empty($seznam)) {

$item = array();
$items = array();
$oblast = array();

$polozka=-1;
$patterns = array('%OBLAST\:([\s\t]+)?([\r\v\n]+)%i', '%ICON\:([\s\t]+)?([\r\v\n]+)%i', '%\:(?:\s|\t)+%', '%\\\\([\r\v\n])+%');
$replacements = array("OBLAST:10.0.0.0/8\n", "", ":", "\\");
$trans = array("\\" => "\\n", (chr(13)) => "", (chr(9)) => "", "ž" => "&#382", "š" => "&#353");

foreach($seznam as $fil) {
  $dat = file_get_contents($fil);
  $dat = strtr(preg_replace($patterns, $replacements, $dat), $trans);
  $data = explode("\n", $dat);
  $soucet = count($data);

  for($j=0; $j<=$soucet; ++$j) {
        if ((($data[$j]!="") and ($data[$j]!=" ")) and ($data[$j][0]!=(chr(13)))) {
           if (preg_match('%^TYP:%i',$data[$j])) {
             $polozka++;
             preg_match('/^(?:global|local)-(.*).txt$/i', $fil, $filen);
             $item[$polozka]="BFUFILE:".$filen[1]."<br>";
           }
           $item[$polozka]=$item[$polozka].$data[$j]."<br>";
        }
  }
}

// ------- naladujem data do 3-rozmernyho pole -------

for ($k=0; $k<=$polozka; ++$k) {
 if(preg_match('%OBLAST:%i', $item[$k])) {
   preg_match('%OBLAST:(.*?)(<br)%i', $item[$k], $cloud);
   if (!isset($obl["$cloud[1]"])) {
     $oblast[] = $cloud[1];
   }
 } else {
   $cloud[1] = "10.0.0.0/8";
 }
 
 $ic = explode("<br>", $item[$k]);
 $cnt_ic = (count($ic));
 for ($b=0; $b<=$cnt_ic; ++$b) {
  if($b===$cnt_ic) {
    $items[$k]["BFUICON"]=get_icon($items[$k]["BFUFILE"], $items[$k]["ICON"], $items[$k]["TYP"]);
    $items[$k]["ID"]=$k;
  } else {
    if(($ic[$b])!="") {
      $ic[$b] = strtr($ic[$b], array("\\n\\n" => "<br>", "\\n" => "<br>"));
      $pole = strpos($ic[$b], ":");
      $items[$k][(strtoupper(substr($ic[$b], 0, $pole)))]=(substr($ic[$b], $pole+1));
    }
  }
 }
 $obl[$cloud[1]][] = $items[$k];
}

unset($item);
unset($trans);
$pocet_oblasti = count($oblast)-1;

// -- seradime oblasti (bublinkovy razeni je silene pomaly)
usort($oblast,'natsort_func');

} //end seznam

$title = "CZF4BFU";

if($czf_oblast!="") {
  if(isset($jmena_cloudu[$czf_oblast])) {
    $title .= " | ".$jmena_cloudu[$czf_oblast];
  } else {
    $title .= " | ".$czf_oblast;
  }
}
if($czf_id!="") {
  $title .= " | ".$items[$czf_id]["NAZEV"];
}
if($czf_group=="2") {
  $title .= " | Cloudy";
}

?>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
 <!-- Unreal][ # http://www.jklir.net # Licence: GNU/GPL # v <?php echo $verze ?> (c) Jirka Klír 2013 for CZFree.net ;-) # -->
 <title><?php echo $title; ?></title>
 <meta http-equiv="Content-Type" content="text/html; charset=windows-1250">
 <meta http-equiv="Content-language" content="cs">
 <meta name="author" content="Unreal][, http://www.jklir.net">
 <link href="styl.css" rel="stylesheet" type="text/css">
 <link rel="SHORTCUT ICON" href="favicon.ico">
</head>
<body>

<h1>Rozcestník CZFree.Net</h1>

<?php
if($group!=2) {
  if($czf_oblast!="") { $aname = "#".$czf_oblast; } else { $aname = ""; }
  $group = !$group;
  $text = (!empty($group)) ? "seskupit" : "neseskupovat";
  echo "<a class=\"group\" href=\"?group=".$group."&amp;id=".$czf_id."&amp;oblast=".$czf_oblast.$aname."\">$text podle typu slu&#382;eb</a>";
} else {
  echo "<a class=\"group\" href=\"#\">&nbsp;</a>";
}
?>
<div class="sizer"></div>

<div class="tree">
 <a class="nomargin title" href="?oblast="><strong>CZFree.net</strong><br>celá sí</a>
 <div class="smallicon"><a title="seznam služeb" href="?oblast="><img class="dot" src="img/point.png"><span>seznam služeb</span></a></div>
 <div class="smallicon"><a title="seznam cloudů" href="?group=2"><img class="dot" src="img/point.png"><span>seznam cloudů</span></a></div>


<?php
if(!empty($seznam)) {
// ------- vypis ve sloupecku vlevo -------

for ($o=0; $o<=$pocet_oblasti; $o++) {
echo "<a class=\"title\" name=\"".$oblast[$o]."\" href=\"?oblast=".$oblast[$o]."#".$oblast[$o]."\"><span class=\"cloudip\">".$oblast[$o]."</span>\n";
  if(isset($jmena_cloudu[$oblast[$o]])) {
    echo "<br>".$jmena_cloudu[$oblast[$o]]."</a>";
  } else {
    echo "</a>";
  }
  $sorted[$oblast[$o]] = arfsort($obl[$oblast[$o]]);
  echo show_small($sorted[$oblast[$o]]);
}
unset($obl);
?>

</div>
<div class="items">

<?php

//#############  PODMINKY ZOBRAZENI  ###############//

if(($czf_group!="1") and ($czf_group!="2")) { $czf_group = ""; }

// ------- pokud neni uvedena oblast ani id ani groupa -------

if ((($czf_oblast=="") and ($czf_id=="")) and ($czf_group=="")) {
   $sorted0 = arfsort($items);
   echo show_big($sorted0)."<div class=\"sizer\"></div></div>";
}

// ------- pokud neni uvedena oblast ani id ale groupa ano -------

elseif ((($czf_oblast=="") and ($czf_id=="")) and ($czf_group=="1")) {
   $sorted0 = arfsort($items);
   echo show_groups($sorted0)."<div class=\"sizer\"></div></div>";
}

// ------- pokud neni uvedena oblast ani id ale groupa je 2 -------

elseif ((($czf_oblast=="") and ($czf_id=="")) and ($czf_group=="2")) {
   echo show_clouds($oblast, $jmena_cloudu)."<div class=\"sizer\"></div></div>";
}

// ------- pokud je uvedena oblast i id sluzby ale groupa ne -------

elseif ((($czf_oblast!="") and ($czf_id!="")) and ($czf_group=="")) {
   echo show_big($sorted[$czf_oblast])."<div class=\"sizer\"></div></div>\n<div class=\"detail\"><div class=\"nomargin title\"><strong>Detaily:</strong></div><div class=\"contents\">\n";
   if ($czf_id<=$polozka) {
     echo show_details($items[$czf_id]);
   } else {
    echo "<br>Položka neexistuje<br>";
   }
   echo "</div></div>\n";
}

// ------- pokud je uvedena oblast i id sluzby i groupa -------

elseif ((($czf_oblast!="") and ($czf_id!="")) and ($czf_group=="1")) {
   echo show_groups($sorted[$czf_oblast])."<div class=\"sizer\"></div></div>\n<div class=\"detail\"><div class=\"nomargin title\"><strong>Detaily:</strong></div><div class=\"contents\">\n";
   if ($czf_id<=$polozka) {
     echo show_details($items[$czf_id]);
   } else {
    echo "<br>Položka neexistuje<br>";
   }
   echo "</div></div>\n";
}


// ------- pokud neni uvedena oblast ale id a groupa ne -------

elseif ((($czf_oblast=="") and ($czf_id!="")) and ($czf_group=="")) {
  if ($czf_id<=$polozka) {
    if(($items[$czf_id]["OBLAST"])=="") {
      $sorted4 = $sorted["10.0.0.0/8"];
    } else {
      $sorted4 = $sorted[$items[$czf_id]['OBLAST']];
    }
    echo show_big($sorted4);
  } else {
    $sorted0 = arfsort($items);
    echo show_big($sorted0);
  }

   echo "<div class=\"sizer\"></div></div>\n<div class=\"detail\"><div class=\"nomargin title\"><strong>Detaily:</strong></div><div class=\"contents\">\n";
   if ($czf_id<=$polozka) {
     echo show_details($items[$czf_id]);
   } else {
     echo "<br>Položka neexistuje<br>";
   }
   echo "</div></div>\n";
}

// ------- pokud neni uvedena oblast ale id a groupa ano -------

elseif ((($czf_oblast=="") and ($czf_id!="")) and ($czf_group=="1")) {
  if ($czf_id<=$polozka) {
    if(($items[$czf_id]["OBLAST"])=="") {
      $sorted4 = $sorted["10.0.0.0/8"];
    } else {
      $sorted4 = $sorted[$items[$czf_id]['OBLAST']];
    }
    echo show_groups($sorted4);
  } else {
    $sorted0 = arfsort($items);
    echo show_groups($sorted0);
  }

   echo "<div class=\"sizer\"></div></div>\n<div class=\"detail\"><div class=\"nomargin title\"><strong>Detaily:</strong></div><div class=\"contents\">\n";
   if ($czf_id<=$polozka) {
     echo show_details($items[$czf_id]);
   } else {
    echo "<br>Položka neexistuje<br>";
   }
   echo "</div></div>\n";
}

// ------- pokud je uvedena oblast ale ne id ani groupa -------

elseif ((($czf_oblast!="") and ($czf_id=="")) and ($czf_group=="")){
   echo show_big($sorted[$czf_oblast])."<div class=\"sizer\"></div></div>\n";
}

// ------- pokud je uvedena oblast a groupa ale ne id -------

elseif ((($czf_oblast!="") and ($czf_id=="")) and ($czf_group=="1")){
   echo show_groups($sorted[$czf_oblast])."<div class=\"sizer\"></div></div>\n";
} else { break; }

unset($items);
unset($oblast);
} // end seznam

/*$endtime = microtime();
$endarray = explode(" ", $endtime);
$endtime = $endarray[1] + $endarray[0];
$totaltime = $endtime - $starttime;
$totaltime = round($totaltime,5);
echo "<br>Skript to vsechno stihnul v rekordnim case $totaltime sekund :-).";*/

?>

<div id="copy">czf4bfu v<?php echo $verze ?> - made <a href="http://www.jklir.net/">Unreal][</a>&nbsp;</div>
</body>
</html>

Powered by WebSVN 2.2.1