Changeset 148
- Timestamp:
- Feb 15, 2009, 7:59:35 PM (16 years ago)
- Location:
- www
- Files:
-
- 13 added
- 1 deleted
- 19 edited
Legend:
- Unmodified
- Added
- Removed
-
www/config.sample.php
r67 r148 2 2 3 3 $Config = array( 4 'Database' => array( 4 'Database' => array 5 ( 5 6 'Host' => 'centrala', 6 7 'User' => 'root', … … 10 11 'Charset' => 'utf8', 11 12 ), 12 'Web' => array( 13 'Web' => array 14 ( 13 15 'Charset' => 'utf-8', 14 16 'Host' => 'localhost', … … 22 24 'WebcamPassword' => '', 23 25 'WebcamRefresh' => 5, 24 'News' => array( 26 'News' => array 27 ( 25 28 'DaysAgo' => 30, 26 29 'Count' => 5, 27 30 ), 28 31 ), 32 'Finance' => array 33 ( 34 'MainUserId' => 1, 35 ), 36 'Network' => array 37 ( 38 'MaxSubnetCount' => 7, 39 ), 29 40 ); 30 41 -
www/database.php
r129 r148 9 9 var $LastQuery = ''; 10 10 11 function query($Query) 12 { 13 $this->LastQuery = $Query; 14 return(parent::query($Query)); 15 } 16 11 17 function select($Table, $What = '*', $Condition = 1) 12 18 { … … 30 36 $Name .= ',`'.$Key.'`'; 31 37 if($Value == 'NOW()') $Values .= ",".$Value; 38 else if($Value == 'UUID()') $Values .= ",".$Value; 32 39 else $Values .= ",'".$Value."'"; 33 40 } -
www/global.php
r145 r148 9 9 include('database.php'); 10 10 //include('error.php'); 11 include_once('code.php'); 11 12 $Database = new Database($Config['Database']['Host'], $Config['Database']['User'], $Config['Database']['Password'], $Config['Database']['Database']); 12 13 $Database->Prefix = $Config['Database']['Prefix']; 13 14 $Database->charset($Config['Database']['Charset']); 14 include('module.php'); 15 //include('user.php'); 16 //$User = new User($Database); 17 //$User->Check(); 15 include_once('module.php'); 16 include_once('forms.php'); 17 include_once('page.php'); 18 19 class System extends Module 20 { 21 var $Modules = array(); 22 23 function ModulePresent($Name) 24 { 25 return(array_key_exists($Name, $this->Modules)); 26 } 27 28 function AddModule($Module) 29 { 30 global $Database; 31 32 //echo('Přidávám modul '.get_class($Module).'<br>'); 33 $Module->System = &$this; 34 $Module->Database = &$Database; 35 $this->Modules[get_class($Module)] = $Module; 36 } 37 } 38 39 $System = new System(); 40 $System->Config = $Config; 41 /* 42 include_once('log.php'); 43 $System->AddModule(new Log()); 44 include_once('user.php'); 45 $System->AddModule(new User()); 46 $System->Modules['User']->Check(); 47 include_once('aktuality/news.php'); 48 $System->AddModule(new News()); 49 include_once('webcam/webcam.php'); 50 $System->AddModule(new Webcam()); 51 include_once('finance/bills.php'); 52 $System->AddModule(new Bill()); 53 include_once('finance/finance.php'); 54 $System->AddModule(new Finance()); 55 */ 18 56 19 57 $MonthNames = array('', 'Leden', 'Únor', 'Březen', 'Duben', 'Květen', 'Červen', 'Červenec', 'Srpen', 'Září', 'Říjen', 'Listopad', 'Prosinec'); 20 58 21 $MaxSubnet = 7; 59 $MaxSubnet = $Config['Network']['MaxSubnetCount']; 60 61 $UnitNames = array('B', 'kB', 'MB', 'GB', 'TB', 'PB', 'EB'); 22 62 63 function HumanSize($Value) 64 { 65 global $UnitNames; 66 67 $UnitIndex = 0; 68 while($Value > 1024) 69 { 70 $Value = round($Value / 1024, 3); 71 $UnitIndex++; 72 } 73 return($Value.' '.$UnitNames[$UnitIndex]); 74 } 75 23 76 function GetMicrotime() 24 77 { … … 120 173 { 121 174 if(array_key_exists('HTTP_X_FORWARDED_FOR',$_SERVER)) $IP = $_SERVER['HTTP_X_FORWARDED_FOR'] ; 122 else $IP = $_SERVER['REMOTE_ADDR'];123 //if($IP == '127.0.0.1')175 else if(array_key_exists('REMOTE_ADDR', $_SERVER)) $IP = $_SERVER['REMOTE_ADDR']; 176 else $IP = '0.0.0.0'; 124 177 return($IP); 125 178 } … … 130 183 $RemoteAddr = explode('.', $RemoteAddr); 131 184 return(!(($RemoteAddr[0] == 192) and ($RemoteAddr[1] == 168))); 132 }133 134 // Funkce formatovani vystupu135 function FormatOutput($s)136 {137 $out = '';138 $nn = 0;139 $n = 0;140 while($s!='')141 {142 $start = strpos($s,'<');143 $end = strpos($s,'>');144 if($start != 0)145 {146 $end = $start-1;147 $start = 0;148 }149 $line = trim(substr($s,$start,$end+1));150 if(strlen($line)>0)151 if($line[0] == '<')152 {153 if($s[$start+1] == '/')154 {155 $n = $n - 2;156 $nn = $n;157 } else158 {159 if(strpos($line,' ')) $cmd = substr($line,1,strpos($line,' ')-1);160 else $cmd = substr($line,1,strlen($line)-2);161 //echo('['.$cmd.']');162 if(strpos($s,'</'.$cmd.'>')) $n = $n + 2;163 }164 }// else $line = '['.$line.']';165 //if($line != '') echo(htmlspecialchars(str_repeat(' ',$nn).$line."\n"));166 if($line != '') $out .= (str_repeat(' ',$nn).$line."\n");167 $s = substr($s,$end+1,strlen($s));168 $nn = $n;169 }170 return($out);171 185 } 172 186 -
www/history.php
r4 r148 1 1 <?php 2 include('style.php'); 3 ShowHeader('Historie sítě', 'Historie'); 4 echo('<table> 2 include_once('global.php'); 3 4 class NetworkHistoryPage extends Page 5 { 6 var $FullTitle = 'Historie vývoje sítě'; 7 var $ShortTitle = 'Historie'; 8 9 function Show() 10 { 11 $Output = '<table> 5 12 <tr><td style="text-align: right; vertical-align: top;">1.1.2008 - </td><td>Navýšení rychlosti linky na 10 Mbit/s za stejnou cenu. Rychlosti všech tarifů byly zvednuty na čtyřnásobek. Přidán tarif Pomalejší.</td></tr> 6 13 <tr><td style="text-align: right; vertical-align: top;">1.2.2007 - </td><td>Navýšení rychlosti linky na 2 Mbit/s. Cena se zvýšila mírně, agregace se snížila na polovinu. Nabídka rozšířena o další rychlejší tarif.</td></tr> … … 19 26 <tr><td style="text-align: right; vertical-align: top;">19.07.2002 - </td><td>V tento den byl zakoupen síťový přepínač, UTP kabel a síťové karty, a byly propojeny tři domy a celkem čtyři počítače v kolonce u Hajdů. Přestože se ještě nejednalo o Zděchovskou počítačovou síť, lze tuto událost považovat za jeden z prvních kroků, který vedl k pozdějšímu vzniku sítě.</td></tr> 20 27 <tr><td style="text-align: right; vertical-align: top;">2000-2001 - </td><td>Někdy v této době byl uskutečněn první amatérský kabelový spoj mezi dvěma počítači ve dvou sousedních domech v naší obci. K propojení byl použit tenký koaxiální kabel s BNC konektory na vzdálenost zhruba 30 metrů. Ještě dříve však byl na stejném místě natažen jiný kabel a to dvouvodičový, který sloužil ke spojení dvou dětských telefonů. Tento kabel byl dokonce použit jako nosné lanko pro pohyb miniaturní lanovky pro převážení menších předmětů. Tyto úsměvné události lze považovat za zárodek sítě, která začala vznikat o pár let později.</td></tr> 21 </table>'); 28 </table>'; 29 return($Output); 30 } 31 } 22 32 23 ShowFooter(); 33 $System->AddModule(new NetworkHistoryPage()); 34 $System->Modules['NetworkHistoryPage']->GetOutput(); 35 24 36 ?> -
www/hostlist.php
r78 r148 1 1 <?php 2 include('style.php');3 ShowHeader('Seznam známých počítačů v síti', 'Seznam počítačů');4 5 2 include_once('global.php'); 6 3 7 echo('<table border="1" cellspacing="0" cellpadding="2" style="font-size: small;"> 8 <tr><th>Jméno počítače</th><th>IP adresa</th><th>Naposledy</th><th>Správce</th></tr>'); 4 class HostListPage extends Page 5 { 6 var $FullTitle = 'Seznam registrovaných počítačů'; 7 var $ShortTitle = 'Seznam počítačů'; 9 8 10 $DbResult = $Database->select('hosts', '*', 'type=0 ORDER BY name'); 11 while($Host = $DbResult->fetch_array()) 12 { 13 $DbResult2 = $Database->select('users','*, CONCAT(second_name," ",first_name) as fullname','id='.$Host['user']); 14 $User = $DbResult2->fetch_array(); 15 //'<img src="http://wwp.icq.com/scripts/online.dll?icq='.$Row['icq'].'&img=5">'. 16 if($Host['online'] == 1) $Style = 'font-weight: bold; color: blue;'; else $Style = ''; 17 if($Host['IP'] == '') $Host['IP'] = ' '; 18 echo('<tr><td style="text-align: left; '.$Style.'">'.$Host['name'].'</td><td>'.$Host['IP'].'</td><td style="text-align: right;">'.HumanDate($Host['last_online']).'</td><td style="text-align: right;">'.$User['fullname'].'</td></tr>'); 9 function Show() 10 { 11 $Output = '<div align="center" style="font-size: small;"><table class="WideTable"><tr><th>Jméno počítače</th><th>IP adresa</th><th>Naposledy</th><th>Správce</th></tr>'; 12 $DbResult = $this->Database->select('hosts', '*', 'type=0 ORDER BY name'); 13 while($Host = $DbResult->fetch_array()) 14 { 15 $DbResult2 = $this->Database->select('users','*, CONCAT(second_name," ",first_name) as fullname','id='.$Host['user']); 16 $User = $DbResult2->fetch_array(); 17 if($Host['online'] == 1) $Style = 'font-weight: bold; color: blue;'; else $Style = ''; 18 if($Host['IP'] == '') $Host['IP'] = ' '; 19 $Output .= '<tr><td style="text-align: left; '.$Style.'">'.$Host['name'].'</td><td>'.$Host['IP'].'</td><td style="text-align: right;">'.HumanDate($Host['last_online']).'</td><td style="text-align: right;">'.$User['fullname'].'</td></tr>'; 20 } 21 $Output .= '</table></div>'; 22 return($Output); 23 } 19 24 } 20 echo('</table>');21 25 22 ShowFooter(); 26 $System->AddModule(new HostListPage()); 27 $System->Modules['HostListPage']->GetOutput(); 28 23 29 ?> -
www/index.php
r143 r148 116 116 <img alt="" src="images/favicons/tech.gif" width="16" height="16" /> <a href="network.php">Technické informace</a><br /> 117 117 <img alt="" src="images/favicons/socer.gif" width="16" height="16" /> <a href="http://fotbal.zdechov.net/">Fotbal Sokol Zděchov</a><br /> 118 <img alt="" src="images/favicons/clear.gif" width="16" height="16" /> <a href=" /webcam/">Web kamera</a><br />118 <img alt="" src="images/favicons/clear.gif" width="16" height="16" /> <a href="webcam/">Web kamera</a><br /> 119 119 <img alt="" src="images/favicons/clear.gif" width="16" height="16" /> <a href="http://www.zdechov.net">Stránky naší sítě</a><br /> 120 120 <br /> -
www/merak.php
r4 r148 1 1 <?php 2 include_once('style.php'); 3 ShowHeader('Domácí měřicí přístroj spotřeby', 'Měřič spotřeby'); 4 echo('Tento měřící přístroj byl zakoupen pro potřeby měření spotřeby elektrické energie jednotlivými zařízeními sítě. Změřená spotřeba je zaznamenána do databáze, a podle ní je vypočítáván poplatek za spotřebu. Přístroj však není využíván stále a jelikož je ve vlastnictví celé sítě, je možno si jej zapůjčit. Možnost půjčení závisí na tom, zda je momentálně volný nebo jej má někdo půjčený.<br> S tímto přístrojem lze měřit spotřebu zařízení ve Wattech a to okamžitou, maximální a celkovou, a dále ji nechat přepočítat na náklady. Další informace naleznete v manuálu níže. Spotřebu všech zařízení však \nezměří přesně, některá totiž nejsou pouze odporovou zátěží, ale i kapacitní a indukční. U těchto zařízení lze spotřebu změřit přesněji jiným způsobem, měřením činného a jalového výkonu a určením účinníku. 5 <br>Pokud si chcete přístroj půjčit, kontaktujte správce sítě přes chat nebo na telefonním čísle 737785792.<br><br> 6 <strong>Aktuální stav:</strong> volný<br> 7 <br>Náhledy:<br> 2 include_once('global.php'); 3 4 class RentalPage extends Page 5 { 6 var $FullTitle = 'Domácí měřicí přístroj spotřeby'; 7 var $ShortTitle = 'Měřič spotřeby'; 8 9 function Show() 10 { 11 $Output = 'Tento měřící přístroj byl zakoupen pro potřeby měření spotřeby elektrické energie jednotlivými zařízeními sítě. Změřená spotřeba je zaznamenána do databáze, a podle ní je vypočítáván poplatek za spotřebu. Přístroj však není využíván stále a jelikož je ve vlastnictví celé sítě, je možno si jej zapůjčit. Možnost půjčení závisí na tom, zda je momentálně volný nebo jej má někdo půjčený.<br /> S tímto přístrojem lze měřit spotřebu zařízení ve Wattech a to okamžitou, maximální a celkovou, a dále ji nechat přepočítat na náklady. Další informace naleznete v manuálu níže. Spotřebu všech zařízení však \nezměří přesně, některá totiž nejsou pouze odporovou zátěží, ale i kapacitní a indukční. U těchto zařízení lze spotřebu změřit přesněji jiným způsobem, měřením činného a jalového výkonu a určením účinníku. 12 <br />Pokud si chcete přístroj půjčit, kontaktujte správce sítě přes chat nebo na telefonním čísle 737785792.<br /><br /> 13 <strong>Aktuální stav:</strong> volný<br /> 14 <br />Náhledy:<br /> 8 15 <a href="images/measure/Image1.jpg"><img height="200" src="images/measure/Image1.jpg" alt="Image1"></a> '. 9 16 '<a href="images/measure/Image2.jpg"><img height="200" src="images/measure/Image2.jpg" alt="Image2"></a> '. 10 17 '<a href="images/measure/Image3.jpg"><img height="200" src="images/measure/Image3.jpg" alt="Image3"></a> '. 11 18 '<a href="images/measure/Image4.jpg"><img height="200" src="images/measure/Image4.jpg" alt="Image4"></a> '. 12 '<a href="images/measure/Image5.jpg"><img height="200" src="images/measure/Image5.jpg" alt="Image5"></a> <br >'.13 '<br >Přiložené pokyny k použití přístroje:<br>'.19 '<a href="images/measure/Image5.jpg"><img height="200" src="images/measure/Image5.jpg" alt="Image5"></a> <br />'. 20 '<br />Přiložené pokyny k použití přístroje:<br />'. 14 21 '<a href="images/measure/Image6.jpg"><img height="400" src="images/measure/Image6.jpg" alt="Image6"></a> '. 15 '<a href="images/measure/Image7.jpg"><img height="400" src="images/measure/Image7.jpg" alt="Image7"></a><br> '); 22 '<a href="images/measure/Image7.jpg"><img height="400" src="images/measure/Image7.jpg" alt="Image7"></a><br />'; 23 return($Output); 24 } 25 } 16 26 17 ShowFooter(); 27 $System->AddModule(new RentalPage()); 28 $System->Modules['RentalPage']->GetOutput(); 18 29 19 30 ?> -
www/missing.php
r4 r148 1 1 <?php 2 include('style.php'); 3 ShowHeader('Stránka nenalezena', 'Stránka nenalezena'); 2 include_once('global.php'); 4 3 5 echo('<h3> Požadovanou stránku nelze zobrazit, protože na serveru neexistuje! </h3>'); 4 class MissingPage extends Page 5 { 6 var $FullTitle = 'Stránka nenalezena'; 7 var $ShortTitle = 'Stránka nenalezena'; 6 8 7 ShowFooter(); 9 function Show() 10 { 11 return('<h3 align="center"> Požadovanou stránku nelze zobrazit, protože na serveru neexistuje. </h3>'); 12 } 13 } 14 15 $System->AddModule(new MissingPage()); 16 $System->Modules['MissingPage']->GetOutput(); 17 8 18 ?> -
www/module.php
r77 r148 1 1 <?php 2 2 3 class Module 3 class Module 4 4 { 5 5 var $Database; … … 8 8 var $Dependencies = array(); 9 9 var $CurrentPath = '/'; 10 11 function __construct( $Database)10 11 function __construct() 12 12 { 13 $this->Database = $Database;14 13 } 15 14 -
www/network.php
r76 r148 1 1 <?php 2 include('style.php'); 3 ShowHeader('Technické informace o síti', 'Technické informace'); 2 include_once('global.php'); 4 3 4 class NetworkInformationPage extends Page 5 { 6 var $FullTitle = 'Technické informace o síti'; 7 var $ShortTitle = 'Technické informace'; 5 8 6 if(!array_key_exists('section', $_GET)) $_GET['section'] = ''; 7 switch($_GET['section']) 8 { 9 case 'servers': 10 $Servers = array( 11 array( 12 'name' => 'centrala', 13 'description' => 'Hlavní router a víceúčelový server sítě', 14 'components' => array( 15 array('Procesor', 'AMD Sempron 64 2500+ (1,4 GHz 800 MHz 256k) soc 754, BOX', 1890), 16 array('Paměť', '512 MB DDR 400 MHz', '500(síť) + 500(George)', 0), 17 array('Základní deska', 'GIGABYTE s. 754 K8VT800, VIA K8T800, AGP 8x, 3x DDR400, LAN, audio', 1890), 18 array('Skříň', 'Midi RedStar 2202 ATX 300W', 690), 19 array('Grafická karta', 'ATI Rage 128 Pro 32 MB', 300), 20 array('Pevný disk - systémový', 'WD300BB 30 GB', 500), 21 array('Pevný disk - datový', 'Maxtor DiamondMax SATA 160 GB', 1664), 22 array('Pevný disk - zálohovací', 'Maxtor 91301U3 13 GB', 'věnoval Marek Hrňa'), 23 ), 24 ), 25 array( 26 'name' => 'game', 27 'description' => 'Hostovaný počítač hráčů serveru <a href="http://wow.zdechov.net/">WoW Heroes of Fantasy</a>', 28 'components' => array( 29 array('Procesor', '', 0), 30 array('Paměť', '', 0), 31 array('Základní deska', '', 0), 32 array('Skříň', '', 0), 33 array('Grafická karta', '', 0), 34 array('Pevný disk', '', 0), 35 ), 36 ), 37 array( 38 'name' => 'tv', 39 'description' => 'Televizní server', 40 'components' => array( 41 array('Procesor', 'AMD Athlon 64 3800+, 2.4 GHz', 3140), 42 array('Paměť', '512 MB DDR 400 MHz', 1100), 43 array('Paměť', '512 MB DDR 400 MHz', 1000), 44 array('Paměť', '512 MB DDR 400 MHz', 700), 45 array('Paměť', '512 MB DDR 400 MHz', 700), 46 array('Základní deska', 'ASUS A8V-VM', 1382), 47 array('Skříň', 'Midi tower Redstar HERO 10 ATX', 690), 48 array('Grafická karta', 'PCI S3 Trio64+', 50), 49 array('Pevný disk', '?', '?'), 50 ), 51 ), 52 array( 53 'name' => 'testserver', 54 'description' => 'Stará záložní centrála', 55 'components' => array( 56 array('Procesor', 'Intel Pentium 2 350 MHz', 0), 57 array('Paměť', '64 MB DIMM 100 MHz', 0), 58 array('Základní deska', 'MSI M11E', 0), 59 array('Skříň', 'Mini tower AT 200W', 0), 60 array('Grafická karta', 'S3 Trio3D/2X 8 MB', 0), 61 array('Pevný disk', 'ST3840A 8 GB', 0), 62 ), 63 ), 64 ); 65 echo('<strong>Seznam serverů v síti:</strong><br><br>'); 66 foreach($Servers as $Server) 9 function Show() 10 { 11 $Output = ''; 12 if(!array_key_exists('section', $_GET)) $_GET['section'] = ''; 13 switch($_GET['section']) 67 14 { 68 echo('<strong>'.strtoupper($Server['name']).'</strong><br>'. 69 $Server['description'].'<br>'. 70 '<table style="font-size: small;" border="1" cellspacing="0" cellpadding="3">'. 71 '<tr><th>Jméno komponenty</th><th>Značka</th><th>Cena [Kč]</th></tr>'); 72 foreach($Server['components'] as $Component) 73 { 74 echo('<tr><td>'.$Component[0].'</td><td>'.$Component[1].'</td><td>'.$Component[2].'</td></tr>'); 75 } 76 echo('</table><br>'); 77 } 78 break; 79 case 'nastaveni_pripojeni': 80 echo('<br><strong>Nastavení síťového přípojení:</strong><br> 15 case 'servers': 16 $Servers = array( 17 array( 18 'name' => 'centrala', 19 'description' => 'Hlavní router a víceúčelový server sítě', 20 'components' => array( 21 array('Procesor', 'AMD Sempron 64 2500+ (1,4 GHz 800 MHz 256k) soc 754, BOX', 1890), 22 array('Paměť', '512 MB DDR 400 MHz', '500(síť) + 500(George)', 0), 23 array('Základní deska', 'GIGABYTE s. 754 K8VT800, VIA K8T800, AGP 8x, 3x DDR400, LAN, audio', 1890), 24 array('Skříň', 'Midi RedStar 2202 ATX 300W', 690), 25 array('Grafická karta', 'ATI Rage 128 Pro 32 MB', 300), 26 array('Pevný disk - systémový', 'WD300BB 30 GB', 500), 27 array('Pevný disk - datový', 'Maxtor DiamondMax SATA 160 GB', 1664), 28 array('Pevný disk - zálohovací', 'Maxtor 91301U3 13 GB', 'věnoval Marek Hrňa'), 29 ), 30 ), 31 array( 32 'name' => 'game', 33 'description' => 'Hostovaný počítač hráčů serveru <a href="http://wow.zdechov.net/">WoW Heroes of Fantasy</a>', 34 'components' => array( 35 array('Procesor', '', 0), 36 array('Paměť', '', 0), 37 array('Základní deska', '', 0), 38 array('Skříň', '', 0), 39 array('Grafická karta', '', 0), 40 array('Pevný disk', '', 0), 41 ), 42 ), 43 array( 44 'name' => 'tv', 45 'description' => 'Televizní server', 46 'components' => array( 47 array('Procesor', 'AMD Athlon 64 3800+, 2.4 GHz', 3140), 48 array('Paměť', '512 MB DDR 400 MHz', 1100), 49 array('Paměť', '512 MB DDR 400 MHz', 1000), 50 array('Paměť', '512 MB DDR 400 MHz', 700), 51 array('Paměť', '512 MB DDR 400 MHz', 700), 52 array('Základní deska', 'ASUS A8V-VM', 1382), 53 array('Skříň', 'Midi tower Redstar HERO 10 ATX', 690), 54 array('Grafická karta', 'PCI S3 Trio64+', 50), 55 array('Pevný disk', '?', '?'), 56 ), 57 ), 58 array( 59 'name' => 'testserver', 60 'description' => 'Stará záložní centrála', 61 'components' => array( 62 array('Procesor', 'Intel Pentium 2 350 MHz', 0), 63 array('Paměť', '64 MB DIMM 100 MHz', 0), 64 array('Základní deska', 'MSI M11E', 0), 65 array('Skříň', 'Mini tower AT 200W', 0), 66 array('Grafická karta', 'S3 Trio3D/2X 8 MB', 0), 67 array('Pevný disk', 'ST3840A 8 GB', 0), 68 ), 69 ), 70 ); 71 $Output .= '<strong>Seznam serverů v síti:</strong><br /><br />'; 72 foreach($Servers as $Server) 73 { 74 $Output .= '<strong>'.strtoupper($Server['name']).'</strong><br />'. 75 $Server['description'].'<br />'. 76 '<table style="font-size: small;" border="1" cellspacing="0" cellpadding="3">'. 77 '<tr><th>Jméno komponenty</th><th>Značka</th><th>Cena [Kč]</th></tr>'; 78 foreach($Server['components'] as $Component) 79 { 80 $Output .= '<tr><td>'.$Component[0].'</td><td>'.$Component[1].'</td><td>'.$Component[2].'</td></tr>'; 81 } 82 $Output .= '</table><br />'; 83 } 84 break; 85 case 'nastaveni_pripojeni': 86 $Output .= '<br /><strong>Nastavení síťového přípojení:</strong><br /> 81 87 <table style="font-size: small;" border="1" cellspacing="0" cellpadding="3"> 82 88 <tr><td>IP adresa</td><td>192.168.x.x</td></tr> … … 89 95 <tr><td>Přípona DNS počítače</td><td>zdechov.net</td></tr> 90 96 <tr><td>Skupina</td><td>ZDECHOV</td></tr> 91 </table>' );92 break;93 case 'obsazeni_wifi_kanalu':94 echo('<br><strong>Obsazení wifi kanálů:</strong><br>97 </table>'; 98 break; 99 case 'obsazeni_wifi_kanalu': 100 $Output .= '<br /><strong>Obsazení wifi kanálů:</strong><br /> 95 101 <table style="font-size: small;" border="1" cellspacing="0" cellpadding="3"> 96 102 <tr><th>Kanál</th><th>Frekvence [GHz]</th><th>Zařízení</th></tr> 97 <tr><td>1</td><td>2,412</td><td>AP-RUDO, AP-HAJDIKOVI </td></tr>98 <tr><td>2</td><td>2,417</td><td> AP-JANICATA</td></tr>99 <tr><td>3</td><td>2,422</td><td> AP-MARKYTAN, ap-zvonicek</td></tr>100 <tr><td>4</td><td>2,427</td><td> </td></tr>101 <tr><td>5</td><td>2,432</td><td>AP-MARON </td></tr>102 <tr><td>6</td><td>2,437</td><td> AP-SKARPA2,ap-sekula</td></tr>103 <tr><td>7</td><td>2,442</td><td> </td></tr>104 <tr><td>8</td><td>2,447</td><td>ap- hajda</td></tr>105 <tr><td>9</td><td>2,452</td><td> AP-HAPPY</td></tr>106 <tr><td>10</td><td>2,457</td><td> AP-HAJDIKOVI2, AP-NAVRATIL</td></tr>107 <tr><td>11</td><td>2,462</td><td> AP-MARTIN</td></tr>108 <tr><td>12</td><td>2,467</td><td> AP-SEKULA</td></tr>109 <tr><td>13</td><td>2,472</td><td> AP-SKARPA</td></tr>103 <tr><td>1</td><td>2,412</td><td>AP-RUDO, AP-HAJDIKOVI, ptp-skarpa</td></tr> 104 <tr><td>2</td><td>2,417</td><td> </td></tr> 105 <tr><td>3</td><td>2,422</td><td>ap-markytan, ap-zvonicek, ap-hrbacek</td></tr> 106 <tr><td>4</td><td>2,427</td><td>ap-george</td></tr> 107 <tr><td>5</td><td>2,432</td><td>AP-MARON, ap-janicata</td></tr> 108 <tr><td>6</td><td>2,437</td><td>ap-sekula</td></tr> 109 <tr><td>7</td><td>2,442</td><td>ap-chaty</td></tr> 110 <tr><td>8</td><td>2,447</td><td>ap-bytovky</td></tr> 111 <tr><td>9</td><td>2,452</td><td>ap-kopecek</td></tr> 112 <tr><td>10</td><td>2,457</td><td>ap-skarpa, AP-HAJDIKOVI2, AP-NAVRATIL</td></tr> 113 <tr><td>11</td><td>2,462</td><td> </td></tr> 114 <tr><td>12</td><td>2,467</td><td> </td></tr> 115 <tr><td>13</td><td>2,472</td><td>ap-hajda, zbranek</td></tr> 110 116 <tr><td>100</td><td>5,500</td><td>ptp-markytan</td></tr> 111 <tr><td>104</td><td>5,520</td><td> </td></tr>117 <tr><td>104</td><td>5,520</td><td>ptp-smutny</td></tr> 112 118 <tr><td>108</td><td>5,540</td><td> </td></tr> 113 119 <tr><td>112</td><td>5,560</td><td> </td></tr> 114 <tr><td>116</td><td>5,580</td><td> </td></tr>115 <tr><td>120</td><td>5,600</td><td> </td></tr>120 <tr><td>116</td><td>5,580</td><td>ptp-janicata</td></tr> 121 <tr><td>120</td><td>5,600</td><td>ptp-hajdova</td></tr> 116 122 <tr><td>124</td><td>5,620</td><td> </td></tr> 117 <tr><td>128</td><td>5,640</td><td> </td></tr>118 <tr><td>132</td><td>5,660</td><td> </td></tr>123 <tr><td>128</td><td>5,640</td><td>ptp-bytovky</td></tr> 124 <tr><td>132</td><td>5,660</td><td>ptp-chaty</td></tr> 119 125 <tr><td>136<td>5,700</td></td><td>ptp-sekula</td></tr> 120 126 <tr><td>140<td>5,720</td></td><td> </td></tr> 121 </table>'); 122 break; 123 case 'udp_forward': 124 echo('<br><strong>Průchozí UDP porty her:</strong><br> 127 </table>'; 128 $Output .= 'Aktualizováno: 10.8.2008'; 129 break; 130 case 'udp_forward': 131 $Output .= '<br /><strong>Průchozí UDP porty her:</strong><br /> 125 132 <table style="font-size: small;" border="1" cellspacing="0" cellpadding="3"> 126 <tr><th>Hra</th><th>Číslo portu</th></tr>'); 127 $DbResult = $Database->select('network_udp_forwarder', '*'); 128 while($Row = $DbResult->fetch_array()) 129 { 130 echo('<tr><td>'.$Row['game'].'</td><td align="right">'.$Row['port'].'</td></tr>'); 133 <tr><th>Hra</th><th>Číslo portu</th></tr>'; 134 $DbResult = $this->Database->select('network_udp_forwarder', '*'); 135 while($Row = $DbResult->fetch_array()) 136 { 137 $Output .= '<tr><td>'.$Row['game'].'</td><td align="right">'.$Row['port'].'</td></tr>'; 138 } 139 $Output .= '</table>'; 140 break; 141 default: 142 $Output .= '<a href="?section=servers">Seznam serverů</a><br />'; 143 $Output .= '<a href="?section=udp_forward">Průchozí UDP porty přes centrálu</a><br />'; 144 $Output .= '<a href="?section=nastaveni_pripojeni">Nastavení připojení počítačů</a><br />'; 145 $Output .= '<a href="?section=obsazeni_wifi_kanalu">Obsazení Wi-Fi kanálů</a><br />'; 131 146 } 132 echo('</table>'); 133 break; 134 default: 135 echo('<a href="?section=servers">Seznam serverů</a><br>'); 136 echo('<a href="?section=udp_forward">Průchozí UDP porty přes centrálu</a><br>'); 137 echo('<a href="?section=nastaveni_pripojeni">Nastavení připojení počítačů</a><br>'); 138 echo('<a href="?section=obsazeni_wifi_kanalu">Obsazení Wi-Fi kanálů</a><br>'); 147 return($Output); 148 } 139 149 } 140 150 141 ShowFooter(); 151 $System->AddModule(new NetworkInformationPage()); 152 $System->Modules['NetworkInformationPage']->GetOutput(); 142 153 143 154 ?> -
www/otevreno.php
r146 r148 1 1 <?php 2 include ('style.php');2 include_once('global.php'); 3 3 4 ShowHeader('Otvírací doby místních subjektů', 'Otvírací doby'); 5 $DaysOfWeek = array('Pondělí', 'Úterý', 'Středa', 'Čtvrtek', 'Pátek', 'Sobota', 'Neděle'); 4 class SubjectOpenTimePage extends Page 5 { 6 var $FullTitle = 'Otvírací doby místních subjektů'; 7 var $ShortTitle = 'Otvírací doby'; 8 var $DaysOfWeek = array('Pondělí', 'Úterý', 'Středa', 'Čtvrtek', 'Pátek', 'Sobota', 'Neděle'); 6 9 7 10 function Show() 8 11 { 9 global $Database, $DaysOfWeek;10 11 12 $Output = '<div align="center">'; 12 $DbResult = $ Database->query('SELECT SubjectOpenTime.*, DATE_FORMAT(SubjectOpenTime.UpdateTime, "%e.%c.%Y") as UpdateTime, Subject.Name as Name FROM SubjectOpenTime JOIN Subject ON Subject.Id = SubjectOpenTime.Subject');13 $DbResult = $this->Database->query('SELECT SubjectOpenTime.*, DATE_FORMAT(SubjectOpenTime.UpdateTime, "%e.%c.%Y") as UpdateTime, Subject.Name as Name FROM SubjectOpenTime JOIN Subject ON Subject.Id = SubjectOpenTime.Subject'); 13 14 while($Subject = $DbResult->fetch_array()) 14 15 { 15 16 $Output .= '<strong>'.$Subject['Name'].':</strong><br />'; 16 $DbResult2 = $ Database->query('SELECT Subject, OpenTime, CloseTime, TIMEDIFF(CloseTime, DATE_FORMAT(NOW(), "0000-01-%w %T")) as RemainTime FROM `SubjectOpenTimeInterval` WHERE DATE_FORMAT(NOW(), "0000-01-%w %T") > OpenTime AND DATE_FORMAT(NOW(), "0000-01-%w %T") < CloseTime AND Subject='.$Subject['Subject']);17 $DbResult2 = $this->Database->query('SELECT Subject, OpenTime, CloseTime, TIMEDIFF(CloseTime, DATE_FORMAT(NOW(), "0000-01-%w %T")) as RemainTime FROM `SubjectOpenTimeInterval` WHERE DATE_FORMAT(NOW(), "0000-01-%w %T") > OpenTime AND DATE_FORMAT(NOW(), "0000-01-%w %T") < CloseTime AND Subject='.$Subject['Subject']); 17 18 if($DbResult2->num_rows > 0) 18 19 { … … 21 22 } else 22 23 { 23 $DbResult2 = $ Database->query('SELECT Subject, OpenTime, CloseTime, TIMEDIFF(OpenTime, DATE_FORMAT(NOW(), "0000-01-%w %T")) as RemainTime FROM `SubjectOpenTimeInterval` WHERE DATE_FORMAT(NOW(), "0000-01-%w %T") < OpenTime AND Subject='.$Subject['Subject'].' ORDER BY OpenTime LIMIT 1');24 $DbResult2 = $this->Database->query('SELECT Subject, OpenTime, CloseTime, TIMEDIFF(OpenTime, DATE_FORMAT(NOW(), "0000-01-%w %T")) as RemainTime FROM `SubjectOpenTimeInterval` WHERE DATE_FORMAT(NOW(), "0000-01-%w %T") < OpenTime AND Subject='.$Subject['Subject'].' ORDER BY OpenTime LIMIT 1'); 24 25 $DbRow = $DbResult2->fetch_array(); 25 26 $Output .= 'Otevírá za '.$DbRow['RemainTime']; … … 27 28 $Output .= '<table class="WideTable"> 28 29 <tr><th>Den</th><th>Čas</th></tr>'; 29 foreach($ DaysOfWeek as $DayIndex => $DayOfWeek)30 foreach($this->DaysOfWeek as $DayIndex => $DayOfWeek) 30 31 { 31 $DbResult2 = $ Database->query('SELECT *, DATE_FORMAT(OpenTime, "%k:%i") as OpenTime, DATE_FORMAT(CloseTime, "%k:%i") as CloseTime FROM SubjectOpenTimeInterval WHERE SubjectOpenTimeInterval.Subject = '.$Subject['Subject'].' AND ((DAYOFWEEK(OpenTime) + 0) MOD 7)='.$DayIndex);32 $DbResult2 = $this->Database->query('SELECT *, DATE_FORMAT(OpenTime, "%k:%i") as OpenTime, DATE_FORMAT(CloseTime, "%k:%i") as CloseTime FROM SubjectOpenTimeInterval WHERE SubjectOpenTimeInterval.Subject = '.$Subject['Subject'].' AND ((DAYOFWEEK(OpenTime) + 0) MOD 7)='.$DayIndex); 32 33 $Output .= '<tr><td>'.$DayOfWeek.'</td><td align="center">'; 33 34 if($DbResult2->num_rows) … … 47 48 return($Output); 48 49 } 50 } 49 51 50 echo(Show()); 51 52 ShowFooter(); 52 $System->AddModule(new SubjectOpenTimePage()); 53 $System->Modules['SubjectOpenTimePage']->GetOutput(); 53 54 54 55 ?> -
www/share/index.php
r4 r148 1 1 <?php 2 2 3 function ShowTime() 3 include('../global.php'); 4 5 class SharePage extends Page 4 6 { 5 echo(date("H:i:s")."<br>\n"); 6 flush(); 7 var $FullTitle = 'Vyhledávání souborů'; 8 var $ShortTitle = 'Vyhledávání souborů'; 9 var $Dependencies = array('Log'); 10 var $MaxNesting = 20; // Maximální vnoření 11 var $Promene = array( // Automatické zapamatování proměnných 12 'keyword' => '', 13 'file_type' => 0, 14 'size' => '', 15 'size_method' => 1, 16 'size_units' => 2, 17 'online' => 'on', 18 'order' => 'size DESC', 19 'page' => '0', 20 'view' => 1, 21 ); 22 23 function ShowTime() 24 { 25 return(date("H:i:s")."<br />\n"); 26 } 27 28 // Inicializace Logu 29 //$LogFile = fopen('info.log','w'); 30 function Loguj($Info) 31 { 32 //global $LogFile; 33 //fputs($LogFile,$Info."\n"); 34 } 35 //Show_Array($GLOBALS); 36 37 // Najde cestu ke keřenu 38 function PlnaCesta($Row) 39 { 40 // Vyhledání cesty 41 $Otec = $Row['parent']; 42 $Cesta = ''; //$Row['name']; 43 $i = 0; 44 while(($Otec > 1) && ($i < $this->MaxNesting)) 45 { 46 $DbResult = $this->Database->query('SELECT id,name,parent FROM items WHERE id='.$Otec); 47 $Row = $DbResult->fetch_array(); 48 $this->Loguj('Name: '.$Row['name'].' ID:'.$Row['id'].' Parent:'.$Row['parent']); 49 $Cesta = $Row['name'].'\\'.$Cesta; 50 $Otec = $Row['parent']; 51 $i++; 52 } 53 if($i >= $this->MaxNesting) $Cesta = '?'.'\\'.$Cesta; 54 return('\\\\'.$Cesta); 55 } 56 57 // Převede velikost v bajtech na odpovídající jednotky 58 function PrevedVelikost($Velikost) 59 { 60 $Jednotky = array('B','kB','MB','GB','TB','PB','EB'); 61 while($Velikost >= 1024) 62 { 63 $Velikost = round($Velikost / 1024 * 10) / 10; 64 array_shift($Jednotky); 65 } 66 return($Velikost.' '.$Jednotky[0]); 67 } 68 69 function Show() 70 { 71 if(!$this->System->Modules['User']->CheckPermission('Share', 'Display')) return('Nemáte oprávnění'); 72 73 // If not only online checkbox checked 74 if(array_key_exists('view', $_POST) and !array_key_exists('online', $_POST)) $_POST['online'] = 'off'; 75 76 // Default host list view 77 if((count($_POST) == 0) and (count($_GET) == 0)) 78 { 79 $_POST['view'] = 1; 80 $_POST['page'] = 0; 81 } 82 83 // Toggle order direction 84 if(array_key_exists('order', $_GET) and ($_SESSION['order'] == $_GET['order'])) $_GET['order'] .= ' DESC'; 85 86 //print_r($_POST); 87 foreach($this->Promene as $Index => $Prvek) 88 { 89 if(!array_key_exists($Index, $_SESSION)) $_SESSION[$Index] = $this->Promene[$Index]; 90 if(array_key_exists($Index, $_GET)) $_SESSION[$Index] = $_GET[$Index]; 91 if(array_key_exists($Index, $_POST)) $_SESSION[$Index] = $_POST[$Index]; 92 if(($Index == 'keyword') and (array_key_exists('view', $_GET))) $_SESSION[$Index] = $this->Promene[$Index]; 93 if(($Index == 'view') and ((array_key_exists('keyword', $_POST)) or (array_key_exists('keyword', $_GET)))) $_SESSION[$Index] = ''; 94 $$Index = $_SESSION[$Index]; 95 //echo('$'.$Index.' = '.$_SESSION[$Index].'<br>'); 96 } 97 //echo($keyword); 98 //if($keyword) 99 //if($keyword != '') $view = ''; 100 101 $this->Database->select_db('share'); 102 103 // Log search 104 if(array_key_exists('keyword', $_POST) or array_key_exists('keyword', $_GET)) 105 $this->System->Modules['Log']->NewRecord('Share', 'Hledaný výraz', $_SESSION['keyword']); 106 107 // Zobrazení formuláře 108 $Output = '<form action="'.$this->System->Config['Web']['RootFolder'].'/share/" method="post"> 109 <input type="hidden" name="view" value=""> 110 <input type="hidden" name="page" value="0"> 111 Hledat: <input type="text" name="keyword" value="'.$keyword.'">'; 112 $Output .= '<input type="submit" value="Hledat"> Typ: <select name="file_type" id="file_type">'; 113 $Selected = array('', '', '', '', '', '', '', ''); 114 $Selected[$file_type] = 'selected '; 115 $Output .= '<option '.$Selected[0].'value="0">Vše 116 <option '.$Selected[1].'value="1">Audio(mp3,wav,ogg,mid) 117 <option '.$Selected[2].'value="2">Dokument(doc,txt,pdf) 118 <option '.$Selected[3].'value="3">Komprimovaný(zip,rar,ace,tar) 119 <option '.$Selected[4].'value="4">Video(mpeg,avi,ogm,mkv,asf) 120 <option '.$Selected[5].'value="5">Obrázek(jpg,bmp,gif,png) 121 <option '.$Selected[6].'value="6">Složka 122 <option '.$Selected[7].'value="7">Spustitelný(exe,com) 123 <option '.$Selected[7].'value="8">Obraz disku(iso,nrg,ccd,bin) 124 </select> 125 Velikost: <select name="size_method">'; 126 $Selected = array('', '', ''); 127 $Selected[$size_method] = 'selected '; 128 $Output .= '<option '.$Selected[0].'value="0">Rovno 129 <option '.$Selected[1].'value="1">Nejméně 130 <option '.$Selected[2].'value="2">Nejvíce 131 </select> 132 <input type="edit" size="5" name="size" value="'.$size.'"> 133 <select name="size_units">'; 134 $Selected = array('', '', '', ''); 135 $Selected[$size_units] = 'selected '; 136 $Output .= '<option '.$Selected[0].'value="0">B 137 <option '.$Selected[1].'value="1">kB 138 <option '.$Selected[2].'value="2">MB 139 <option '.$Selected[3].'value="3">GB 140 </select> '; 141 142 if($online == 'on') $Selected = 'checked '; else $Selected = ''; 143 $Output .= '<input type="checkbox" '.$Selected.'name="online">Pouze aktivní uživatele<br> 144 </form>'; 145 146 //$Output .= $view; 147 if($view != '') 148 { 149 // Zobrazení obsahu vybrané složky 150 $DbResult = $this->Database->query('SELECT * FROM items WHERE id='.$view); 151 $Row = $DbResult->fetch_array(); 152 $Cesta = $this->PlnaCesta($Row); 153 $Output .= '<strong>Obsah složky: '.$Cesta.$Row['name'].'</strong><br />'; 154 $Podminka = '(parent='.$view.')'; 155 $Nahoru = $Row['parent']; 156 } else 157 { 158 // Zobrazení výsledku vyhledávání 159 $Output .= '<strong>Výsledek hledání:</strong><br />'; 160 $Podminka = "(name LIKE '%".strtr($keyword, '*', '%')."%')"; 161 162 // Hledání podle typů 163 $Pripony = array('', 164 "(ext LIKE 'mp3') OR (ext LIKE 'wav') OR (ext LIKE 'ogg') OR (ext LIKE 'mid')", 165 "(ext LIKE 'doc') OR (ext LIKE 'txt') OR (ext LIKE 'pdf')", 166 "(ext LIKE 'zip') OR (ext LIKE 'rar') OR (ext LIKE 'ace') OR (ext LIKE 'tar')", 167 "(ext LIKE 'mpeg') OR (ext LIKE 'mpg') OR (ext LIKE 'avi') OR (ext LIKE 'ogm') OR (ext LIKE 'mkv') OR (ext LIKE 'asf')", 168 "(ext LIKE 'jpg') OR (ext LIKE 'gif') OR (ext LIKE 'bmp') OR (ext LIKE 'ico') OR (ext LIKE 'png')", 169 "(type='2')", 170 "(ext LIKE 'exe') OR (ext LIKE 'com')", 171 "(ext LIKE 'iso') OR (ext LIKE 'nrg') OR (ext LIKE 'ccd') OR (ext LIKE 'bin') OR (ext LIKE 'mds')", 172 ); 173 if($file_type > 0) $Podminka .= ' AND ('.$Pripony[$file_type].')'; 174 175 //Hledání podle velikosti 176 $Jednotky = array(1, 1024, 1048576, 1073741824); 177 if(is_numeric($size)) 178 { 179 $Metoda = array('=', '>', '<'); 180 $Velikost = $size * $Jednotky[$size_units]; 181 $Podminka .= ' AND (size'.$Metoda[$size_method].$Velikost.')'; 182 } 183 } 184 185 // Omezení na online/offline uživatele 186 $this->Database->select_db('is'); 187 if($online == 'on') $DbResult = $this->Database->query('SELECT id FROM hosts WHERE online=1 AND user>0'); 188 else $DbResult = $this->Database->query('SELECT id FROM hosts'); 189 $Vyber = ''; 190 while($Row = $DbResult->fetch_array()) $Vyber .= $Row['id'].','; 191 $Podminka .= ' AND (host IN ('.substr($Vyber, 0, -1).'))'; 192 //echo($Podminka.'<br>'); 193 $this->Database->select_db('share'); 194 195 //ShowTime(); 196 197 // Zjištění počtu výskytů 198 //DB_Query("SELECT COUNT(*) FROM items WHERE ($Podminka)"); 199 //$Row = DB_Row(); 200 //$Pocet = $Row[0]; 201 202 // Zobrazení [..] 203 if(($view != '') && ($page == 0) && ($Nahoru > 0)) 204 { 205 $DbResult = $this->Database->query('SELECT * FROM items WHERE id='.$view); 206 $Row = $DbResult->fetch_array(); 207 //ShowArray($Row); 208 $Datum = explode(' ', $Row['date']); 209 $upstr = '<tr><td bgcolor="#F0F0FF"><a href="index.php?view='.$Nahoru.'">[..]</a></td><td bgcolor="#F0F0FF" width="1%"></td><td align="right" bgcolor="#F0F0FF" width="1%">'.$this->PrevedVelikost($Row['size']).'</td><td bgcolor="#F0F0FF" width="90">'.$Datum[0].'</td><td bgcolor="#F0F0FF" width="50%">'.$Cesta.'</td></tr>'; 210 } else $upstr = ''; 211 212 // Nacteni vysledku z databaze 213 $PerPage = 30; 214 $Dotaz = "SELECT SQL_CALC_FOUND_ROWS * FROM items WHERE ($Podminka)"; 215 if($order != '') $Dotaz .= ' ORDER BY '.$order; 216 $Dotaz .= " LIMIT ".($page * $PerPage).",".$PerPage; 217 $DbResult = $this->Database->query($Dotaz); 218 219 $DbResult2 = $this->Database->query("SELECT FOUND_ROWS()"); 220 $Row = $DbResult2->fetch_array(); 221 $Pocet = $Row[0]; 222 223 if($Pocet > 0) 224 { 225 $Output .= 'Nalezeno celkem: '.$Pocet.' položek<br />'; 226 } else 227 $Output .= 'Podle zadaných podmínek nic nenalezeno'; 228 if(($Pocet > 0) || ($upstr)) 229 { 230 $Output .= '<table width="100%" style="font-size: 8pt;" border="0" cellpadding="2" cellspacing="2"> 231 <tr><th bgcolor="#E0E0FF"><a href="index.php?order=name">Soubor</a></th><th bgcolor="#E0E0FF"><a href="index.php?order=ext">Přípona</a></th><th bgcolor="#E0E0FF"><a href="index.php?order=size">Velikost</a></th><th bgcolor="#E0E0FF"><a href="index.php?order=date">Datum</a></th><th bgcolor="#E0E0FF">Umístění</th></tr>'; 232 $Output .= $upstr; 233 if($Pocet > 0) 234 { 235 // Zobrazení tabulky s výsledky 236 $Pages = floor($Pocet / $PerPage); 237 // echo($Dotaz); 238 239 // Zobrazení poloľek 240 while($Row = $DbResult->fetch_array()) 241 { 242 // Loguj('Radek '.$Row['name']); 243 $Radek = $Row; 244 $Cesta = $this->PlnaCesta($Row); 245 $Datum = explode(' ', $Radek['date']); 246 247 // Zobrazení řádku 248 $Cesta2 = strtr($Cesta.$Radek['name'], '\\', '/'); 249 if($Radek['ext'] != '') $Cesta2 .= '.'.$Radek['ext']; 250 if($Radek['type'] != 0) $Adresa = 'index.php?view='.$Radek['id'].'">['.$Radek['name'].']'; 251 else 252 { 253 if(strstr($_SERVER['HTTP_USER_AGENT'], 'Linux')) $Adresa = 'smb:'.$Cesta2.'">'.$Radek['name']; 254 else $Adresa = 'file:///'.$Cesta2.'">'.$Radek['name']; 255 } 256 $Output .= '<tr><td bgcolor="#F0F0FF"><a href="'.$Adresa.'</a></td><td bgcolor="#F0F0FF" width="1%">'.$Radek['ext'].'</td><td align="right" bgcolor="#F0F0FF" width="1%">'.$this->PrevedVelikost($Radek['size']).'</td><td bgcolor="#F0F0FF" width="90">'.$Datum[0].'</td><td bgcolor="#F0F0FF" width="50%" >'.$Cesta.'</td></tr>'; 257 } 258 $Output .= '</table>'; 259 } 260 } 261 if($Pocet > 0) 262 { 263 // Celkový přehled 264 if($view == 1) 265 { 266 $DbResult = $this->Database->query('SELECT SUM(size) FROM items WHERE (parent=1) AND (host IN ('.substr($Vyber,0,-1).'))'); 267 $Row = $DbResult->fetch_array(); 268 $SizeOnline = $this->PrevedVelikost($Row[0]); 269 $DbResult = $this->Database->query('SELECT size FROM items WHERE id=1'); 270 $Row = $DbResult->fetch_array(); 271 $Size = $this->PrevedVelikost($Row['size']); 272 $DbResult = $this->Database->query('SELECT COUNT(*) FROM items'); 273 $Row = $DbResult->fetch_array(); 274 $Output .= '<br />Celková velikost online sdílených dat: '.$SizeOnline; 275 $Output .= '<br />Celkem v databázi '.$Row[0].' položek o celkové velikosti '.$Size.'<br />'; 276 $Output .= '<br /><strong>Popis služby:</strong><br /> 277 Tento vyhledávač slouží k prohledávání obsahu samba sdílení všech uživatelů. Je postaven na filosofii, čím více lidí bude sdílet data, tím větší bude pravděpodobnost, že najdete to co hledáte. Každý počítač je jednou za den oskenován a informace o jeho sdílení jsou zaneseny do databáze. Každou hodinu probíhá kontrola zapnutých počítačů a jejich případné oskenování. Při hledání použíjte znak * podobně jako při vyhledávání souborů na disku.<br><br> 278 <a href="firefox.php">Vyhledávání přes internetový prohlížeč Firefox</a><br />'; 279 $Output .= '<a href="playlist.php">WinAMP playlist mp3 souborů online počítačů</a><br /><br />'; 280 281 // Zobrazení chyb sdílení 282 $Host = gethostbyaddr(GetRemoteAddress()); 283 //echo($Host); 284 $Host = strtoupper(substr($Host, 0, strpos($Host, '.'))); 285 $DbResult = $this->Database->select('errors', '*', 'host="'.$Host.'"'); 286 if($DbResult->num_rows > 0) $Output .= '<strong>Výpis chybových hlášení pro počítač '.$Host.':</strong><br />'; 287 //echo('host="'.$Host.'"'); 288 while($Row = $DbResult->fetch_array()) 289 { 290 $Row['message'] = str_replace('/', '\\', $Row['message']); 291 $Output .= $Row['message'].'<br />'; 292 } 293 } 294 295 // Zobrazení seznamu stránek 296 if($Pages > 1) 297 { 298 if($page > 0) $Output .= '<a href="index.php?page=0"><<</a> '; 299 if($page > 0) $Output .= '<a href="index.php?page='.($page-1).'"><</a> '; 300 $PagesMax = $Pages; 301 $PagesMin = 0; 302 if($PagesMax > ($page + 10)) $PagesMax = $page + 10; 303 if($PagesMin < ($page - 10)) 304 { 305 $Output .= ' .. '; 306 $PagesMin = $page - 10; 307 } 308 for($i = $PagesMin; $i <= $PagesMax; $i++) 309 { 310 if($i == $page) $Output .= '<strong>'; 311 $Output .= '<a href="index.php?page='.$i.'">'.($i + 1).'</a> '; 312 if($i == $page) $Output .= '</strong>'; 313 } 314 if($PagesMax < $Pages) $Output .= ' .. '; 315 if($page < $Pages) $Output .= '<a href="index.php?page='.($page + 1).'">></a> '; 316 if($page < $Pages) $Output .= '<a href="index.php?page='.$Pages.'">>></a>'; 317 } 318 } 319 return($Output); 320 } 7 321 } 8 322 9 include('../global.php'); 10 include('../style.php'); 11 12 // Inicializace Logu 13 //$LogFile = fopen('info.log','w'); 14 function Loguj($Info) 15 { 16 //global $LogFile; 17 //fputs($LogFile,$Info."\n"); 18 } 19 //Show_Array($GLOBALS); 20 21 // Maximální vnoření 22 $MaxNesting = 20; 23 24 // Automatické zapamatování proměnných 25 $Promene = array( 26 'keyword' => '', 27 'file_type' => 0, 28 'size' => '', 29 'size_method' => 1, 30 'size_units' => 2, 31 'online' => 'on', 32 'order' => 'size DESC', 33 'page' => '0', 34 'view' => 1, 35 ); 36 37 // If not only online checkbox checked 38 if(array_key_exists('view',$_POST) && !array_key_exists('online',$_POST)) $_POST['online'] = 'off'; 39 40 //echo($_SERVER['HTTP_REFERER']); 41 if(array_key_exists('HTTP_REFERER',$_SERVER)) 42 { 43 $Url = explode('?',$_SERVER['HTTP_REFERER']); 44 $Url = explode('/',$Url[0]); 45 //ShowArray($Url); 46 $Url[2] = gethostbyname($Url[2]); 47 if($Url[2]=='127.0.0.1') $Url[2] = '192.168.0.1'; 48 $Server = gethostbyname($_SERVER["HTTP_HOST"]); 49 if($Server=='127.0.0.1') $Server = '192.168.0.1'; 50 $Url = implode('/',$Url); 51 //echo($Url.',http://'.$Server.$_SERVER["SCRIPT_NAME"]); 52 if(($Url!='http://'.$Server.$_SERVER["SCRIPT_NAME"])) { $_POST['view'] = 1; $_POST['page'] = 0; } 53 } else { $_POST['view'] = 1; $_POST['page'] = 0; } 54 55 // Default host list view 56 if((count($_POST)==0) && (count($_GET)==0)) $_POST['view'] = 1; 57 58 // Toggle order direction 59 if(array_key_exists('order',$_GET)&&($_SESSION['order']==$_GET['order'])) $_GET['order'] .= ' DESC'; 60 61 //print_r($_POST); 62 foreach($Promene as $Index => $Prvek) 63 { 64 if(!array_key_exists($Index, $_SESSION)) $_SESSION[$Index] = $Promene[$Index]; 65 if(array_key_exists($Index, $_GET)) $_SESSION[$Index] = $_GET[$Index]; 66 if(array_key_exists($Index, $_POST)) $_SESSION[$Index] = $_POST[$Index]; 67 if(($Index == 'keyword') and (array_key_exists('view', $_GET))) $_SESSION[$Index] = $Promene[$Index]; 68 if(($Index == 'view') and ((array_key_exists('keyword', $_POST)) or (array_key_exists('keyword', $_GET)))) $_SESSION[$Index] = ''; 69 $$Index = $_SESSION[$Index]; 70 //echo('$'.$Index.' = '.$_SESSION[$Index].'<br>'); 71 } 72 //echo($keyword); 73 //if($keyword) 74 //if($keyword != '') $view = ''; 75 76 if(!isset($page)) $page = 0; 77 78 $Database->select_db('share'); 79 80 // Najde cestu ke keřenu 81 function PlnaCesta($Row) 82 { 83 global $MaxNesting, $Database; 84 85 // Vyhledání cesty 86 $Otec = $Row['parent']; 87 $Cesta = ''; //$Row['name']; 88 $i = 0; 89 while(($Otec>1)&&($i<$MaxNesting)) 90 { 91 $DbResult = $Database->query('SELECT id,name,parent FROM items WHERE id='.$Otec); 92 $Row = $DbResult->fetch_array(); 93 Loguj('Name: '.$Row['name'].' ID:'.$Row['id'].' Parent:'.$Row['parent']); 94 $Cesta = $Row['name'].'\\'.$Cesta; 95 $Otec = $Row['parent']; 96 $i++; 97 } 98 if($i>=$MaxNesting) $Cesta = '?'.'\\'.$Cesta; 99 return('\\\\'.$Cesta); 100 } 101 102 // Převede velikost v bajtech na odpovídající jednotky 103 function PrevedVelikost($Velikost) 104 { 105 $Jednotky = array('B','kB','MB','GB','TB','PB','EB'); 106 while($Velikost>=1024) 107 { 108 $Velikost = round($Velikost/1024*10)/10; 109 array_shift($Jednotky); 110 } 111 return($Velikost.' '.$Jednotky[0]); 112 } 113 ShowHeader('Vyhledávání souborů','Vyhledávání souborů'); 114 115 // Zobrazení formuláře 116 echo('<form action="/share/index.php" method="post"> 117 <input type="hidden" name="view" value=""> 118 <input type="hidden" name="page" value="0"> 119 Hledat: <input type="text" name="keyword" value="'.$keyword.'">'); 120 echo('<input type="submit" value="Hledat"> Typ: <select name="file_type" id="file_type">'); 121 $Selected = array('','','','','','','',''); 122 $Selected[$file_type] = 'selected '; 123 echo('<option '.$Selected[0].'value="0">Vše 124 <option '.$Selected[1].'value="1">Audio(mp3,wav,ogg,mid) 125 <option '.$Selected[2].'value="2">Dokument(doc,txt,pdf) 126 <option '.$Selected[3].'value="3">Komprimovaný(zip,rar,ace,tar) 127 <option '.$Selected[4].'value="4">Video(mpeg,avi,ogm,mkv,asf) 128 <option '.$Selected[5].'value="5">Obrázek(jpg,bmp,gif,png) 129 <option '.$Selected[6].'value="6">Složka 130 <option '.$Selected[7].'value="7">Spustitelný(exe,com) 131 <option '.$Selected[7].'value="8">Obraz disku(iso,nrg,ccd,bin) 132 </select> 133 Velikost: <select name="size_method">'); 134 $Selected = array('','',''); 135 $Selected[$size_method] = 'selected '; 136 echo('<option '.$Selected[0].'value="0">Rovno 137 <option '.$Selected[1].'value="1">Nejméně 138 <option '.$Selected[2].'value="2">Nejvíce 139 </select> 140 <input type="edit" size="5" name="size" value="'.$size.'"> 141 <select name="size_units">'); 142 $Selected = array('','','',''); 143 $Selected[$size_units] = 'selected '; 144 echo('<option '.$Selected[0].'value="0">B 145 <option '.$Selected[1].'value="1">kB 146 <option '.$Selected[2].'value="2">MB 147 <option '.$Selected[3].'value="3">GB 148 </select> '); 149 150 if($online=='on') $Selected = 'checked '; else $Selected = ''; 151 echo('<input type="checkbox" '.$Selected.'name="online">Pouze aktivní uživatele<br> 152 </form>'); 153 154 //echo($view); 155 if($view != '') 156 { 157 // Zobrazení obsahu vybrané sloľky 158 $DbResult = $Database->query("SELECT * FROM items WHERE id=$view"); 159 $Row = $DbResult->fetch_array(); 160 $Cesta = PlnaCesta($Row); 161 echo('<strong>Obsah složky: '.$Cesta.$Row['name'].'</strong><br>'); 162 $Podminka = '(parent='.$view.')'; 163 $Nahoru = $Row['parent']; 164 } else 165 { 166 // Zobrazení výsledku vyhledávání 167 echo('<strong>Výsledek hledání:</strong><br>'); 168 $Podminka = "(name LIKE '%".strtr($keyword,'*','%')."%')"; 169 170 // Hledání podle typů 171 $Pripony = array('', 172 "(ext LIKE 'mp3') OR (ext LIKE 'wav') OR (ext LIKE 'ogg') OR (ext LIKE 'mid')", 173 "(ext LIKE 'doc') OR (ext LIKE 'txt') OR (ext LIKE 'pdf')", 174 "(ext LIKE 'zip') OR (ext LIKE 'rar') OR (ext LIKE 'ace') OR (ext LIKE 'tar')", 175 "(ext LIKE 'mpeg') OR (ext LIKE 'mpg') OR (ext LIKE 'avi') OR (ext LIKE 'ogm') OR (ext LIKE 'mkv') OR (ext LIKE 'asf')", 176 "(ext LIKE 'jpg') OR (ext LIKE 'gif') OR (ext LIKE 'bmp') OR (ext LIKE 'ico') OR (ext LIKE 'png')", 177 "(type='2')", 178 "(ext LIKE 'exe') OR (ext LIKE 'com')", 179 "(ext LIKE 'iso') OR (ext LIKE 'nrg') OR (ext LIKE 'ccd') OR (ext LIKE 'bin') OR (ext LIKE 'mds')", 180 ); 181 if($file_type>0) $Podminka .= ' AND ('.$Pripony[$file_type].')'; 182 183 //Hledání podle velikosti 184 $Jednotky = array(1,1024,1048576,1073741824); 185 if(is_numeric($size)) 186 { 187 $Metoda = array('=','>','<'); 188 $Velikost = $size*$Jednotky[$size_units]; 189 $Podminka .= ' AND (size'.$Metoda[$size_method].$Velikost.')'; 190 } 191 } 192 193 // Omezení na online/offline uľivatele 194 $Database->select_db('is'); 195 if($online == 'on') $DbResult = $Database->query('SELECT id FROM hosts WHERE online=1 AND user>0'); 196 else $DbResult = $Database->query('SELECT id FROM hosts'); 197 $Vyber = ''; 198 while($Row = $DbResult->fetch_array()) $Vyber .= $Row['id'].','; 199 $Podminka .= ' AND (host IN ('.substr($Vyber,0,-1).'))'; 200 //echo($Podminka.'<br>'); 201 $Database->select_db('share'); 202 203 //ShowTime(); 204 flush(); 205 206 // Zjištění počtu výskytů 207 //DB_Query("SELECT COUNT(*) FROM items WHERE ($Podminka)"); 208 //$Row = DB_Row(); 209 //$Pocet = $Row[0]; 210 211 // Zobrazení [..] 212 if(($view!='')&&($page==0)&&($Nahoru>0)) 213 { 214 $DbResult = $Database->query("SELECT * FROM items WHERE id=$view"); 215 $Row = $DbResult->fetch_array(); 216 //ShowArray($Row); 217 $Datum = explode(' ',$Row['date']); 218 $upstr = '<tr><td bgcolor="#F0F0FF"><a href="index.php?view='.$Nahoru.'">[..]</a></td><td bgcolor="#F0F0FF" width="1%"></td><td align="right" bgcolor="#F0F0FF" width="1%">'.PrevedVelikost($Row['size']).'</td><td bgcolor="#F0F0FF" width="90">'.$Datum[0].'</td><td bgcolor="#F0F0FF" width="50%">'.$Cesta.'</td></tr>'; 219 } else $upstr = ''; 220 221 // Nacteni vysledku z databaze 222 $PerPage = 30; 223 $Dotaz = "SELECT SQL_CALC_FOUND_ROWS * FROM items WHERE ($Podminka)"; 224 if($order!='') $Dotaz .= " ORDER BY $order"; 225 $Dotaz .= " LIMIT ".($page*$PerPage).",".$PerPage; 226 $DbResult = $Database->query($Dotaz); 227 228 $DbResult2 = $Database->query("SELECT FOUND_ROWS()"); 229 $Row = $DbResult2->fetch_array(); 230 $Pocet = $Row[0]; 231 232 if($Pocet > 0) { echo('Nalezeno celkem: '.$Pocet.' položek<br>'); } else echo('Podle zadaných podmínek nic nenalezeno'); 233 if(($Pocet > 0)||($upstr)) { 234 echo('<table width="100%" style="font-size: 8pt;" border="0" cellpadding="2" cellspacing="2"> 235 <tr><th bgcolor="#E0E0FF"><a href="index.php?order=name">Soubor</a></th><th bgcolor="#E0E0FF"><a href="index.php?order=ext">Přípona</a></th><th bgcolor="#E0E0FF"><a href="index.php?order=size">Velikost</a></th><th bgcolor="#E0E0FF"><a href="index.php?order=date">Datum</a></th><th bgcolor="#E0E0FF">Umístění</th></tr>'); 236 echo $upstr; 237 if($Pocet > 0) { 238 // Zobrazení tabulky s výsledky 239 $Pages = floor($Pocet/$PerPage); 240 // echo($Dotaz); 241 242 // Zobrazení poloľek 243 while($Row = $DbResult->fetch_array()) 244 { 245 // Loguj('Radek '.$Row['name']); 246 $Radek = $Row; 247 $Cesta = PlnaCesta($Row); 248 $Datum = explode(' ',$Radek['date']); 249 250 // Zobrazení řádku 251 $Cesta2 = strtr($Cesta.$Radek['name'],'\\','/'); 252 if($Radek['ext']!='') $Cesta2 .= '.'.$Radek['ext']; 253 if($Radek['type']!=0) $Adresa = 'index.php?view='.$Radek['id'].'">['.$Radek['name'].']'; 254 else 255 { 256 if(strstr($_SERVER['HTTP_USER_AGENT'],'Linux')) $Adresa = 'smb:'.$Cesta2.'">'.$Radek['name']; 257 else $Adresa = 'file:///'.$Cesta2.'">'.$Radek['name']; 258 } 259 echo('<tr><td bgcolor="#F0F0FF"><a href="'.$Adresa.'</a></td><td bgcolor="#F0F0FF" width="1%">'.$Radek['ext'].'</td><td align="right" bgcolor="#F0F0FF" width="1%">'.PrevedVelikost($Radek['size']).'</td><td bgcolor="#F0F0FF" width="90">'.$Datum[0].'</td><td bgcolor="#F0F0FF" width="50%" >'.$Cesta.'</td></tr>'); 260 // flush(); 261 } 262 echo('</table>'); 263 }} 264 if($Pocet > 0) { 265 // Celkový přehled 266 if($view==1) 267 { 268 $DbResult = $Database->query('SELECT SUM(size) FROM items WHERE (parent=1) AND (host IN ('.substr($Vyber,0,-1).'))'); 269 $Row = $DbResult->fetch_array(); 270 $SizeOnline = PrevedVelikost($Row[0]); 271 $DbResult = $Database->query('SELECT size FROM items WHERE id=1'); 272 $Row = $DbResult->fetch_array(); 273 $Size = PrevedVelikost($Row['size']); 274 $DbResult = $Database->query('SELECT COUNT(*) FROM items'); 275 $Row = $DbResult->fetch_array(); 276 echo('<br>Celková velikost online sdílených dat: '.$SizeOnline); 277 echo('<br>Celkem v databázi '.$Row[0].' položek o celkové velikosti '.$Size.'<br>'); 278 echo('<br><strong>Popis služby:</strong><br> 279 Tento vyhledávač slouží k prohledávání obsahu samba sdílení všech uživatelů. Je postaven na filosofii, čím více lidí bude sdílet data, tím větší bude pravděpodobnost, že najdete to co hledáte. Každý počítač je jednou za den oskenován a informace o jeho sdílení jsou zaneseny do databáze. Každou hodinu probíhá kontrola zapnutých počítačů a jejich případné oskenování. Při hledání použíjte znak * podobně jako při vyhledávání souborů na disku.<br><br> 280 <a href="firefox.php">Vyhledávání přes internetový prohlížeč Firefox</a><br>'); 281 echo('<a href="playlist.php">WinAMP playlist mp3 souborů online počítačů</a><br><br>'); 282 283 // Zobrazení chyb sdílení 284 $Host = gethostbyaddr(GetRemoteAddress()); 285 //echo($Host); 286 $Host = strtoupper(substr($Host, 0, strpos($Host, '.'))); 287 $DbResult = $Database->select('errors', '*', 'host="'.$Host.'"'); 288 if($DbResult->num_rows > 0) echo('<strong>Výpis chybových hlášení pro počítač '.$Host.':</strong><br>'); 289 //echo('host="'.$Host.'"'); 290 while($Row = $DbResult->fetch_array()) 291 { 292 $Row['message'] = str_replace('/', '\\', $Row['message']); 293 echo($Row['message'].'<br>'); 294 } 295 } 296 297 // Zobrazení seznamu stránek 298 if($Pages>1) 299 { 300 if($page>0) echo('<a href="index.php?page=0"><<</a> '); 301 if($page>0) echo('<a href="index.php?page='.($page-1).'"><</a> '); 302 $PagesMax = $Pages; 303 $PagesMin = 0; 304 if($PagesMax>($page+10)) $PagesMax = $page+10; 305 if($PagesMin<($page-10)) 306 { 307 echo(' .. '); 308 $PagesMin = $page-10; 309 } 310 for($i=$PagesMin;$i<=$PagesMax;$i++) 311 { 312 if($i==$page) echo('<strong>'); 313 echo('<a href="index.php?page='.$i.'">'.($i+1).'</a> '); 314 if($i==$page) echo('</strong>'); 315 } 316 if($PagesMax<$Pages) echo(' .. '); 317 if($page<$Pages) echo('<a href="index.php?page='.($page+1).'">></a> '); 318 if($page<$Pages) echo('<a href="index.php?page='.$Pages.'">>></a>'); 319 } 320 } 321 322 ShowFooter(); 323 $System->AddModule(new SharePage()); 324 $System->Modules['SharePage']->GetOutput(); 325 323 326 ?> -
www/style.css
r146 r148 1 1 body 2 2 { 3 } 4 5 #MenuItem 3 font-family: sans-serif; 4 } 5 6 #MainTable 7 { 8 width: 100%; 9 } 10 11 #MainTable td 12 { 13 border-width: 0px 1px 0px 0px; 14 border-style: solid; 15 border-color: silver; 16 padding: 0px 1px 0px 1px; 17 } 18 19 #MainTable td .Panel 20 { 21 border-width: 0px 0px 0px 0px; 22 border-style: solid; 23 border-color: #e0e0ff; 24 padding: 10px 5px 10px 5px; 25 } 26 27 #MainTable td .PanelTitle 28 { 29 border-width: 0px 0px 2px 0px; 30 border-style: solid; 31 border-color: #6060ff; 32 font-weight: bold; 33 margin: 0px 0px 3px 0px; 34 } 35 36 #MainTable td .PanelTitleRight 37 { 38 border-width: 0px 0px 2px 0px; 39 border-style: solid; 40 border-color: #6060ff; 41 margin: 0px 0px 3px 0px; 42 text-align: right; 43 } 44 45 #MainTable td td 46 { 47 border-width: 0px 0px 0px 0px; 48 border-style: solid; 49 border-color: silver; 50 } 51 52 form 53 { 54 margin: 10px 10px 10px 10px; 55 } 56 57 .MenuItem 6 58 { 7 59 float: left; 8 60 } 9 61 10 #MenuItem262 .MenuItem2 11 63 { 12 64 text-align: right; 13 65 width: 100%; 66 font-weight: normal; 14 67 } 15 68 … … 25 78 } 26 79 27 #Navigation80 .Navigation 28 81 { 29 82 border-style: solid; … … 32 85 margin-bottom: 3px; 33 86 padding-bottom: 2px; 87 } 88 89 .Navigation img 90 { 91 margin: 0px 0px 0px 0px; 92 padding: 0px 0px 0px 0px; 93 border-width: 0px 0px 0px 0px; 94 vertical-align: middle; 34 95 } 35 96 … … 118 179 } 119 180 181 182 .BasicTable 183 { 184 width: 100%; 185 } 186 187 .BasicTable td 188 { 189 text-align: left; 190 padding: 3px 3px 3px 3px; 191 } 192 193 .BasicTable .Header 194 { 195 text-align: right; 196 padding: 3px 3px 3px 3px; 197 } 198 199 .ChatHistory .Year 200 { 201 border-style: solid; 202 border-bottom-color: gray; 203 border-width: 0px 0px 1px 0px; 204 margin-bottom: 3px; 205 padding-bottom: 2px; 206 } 207 208 .ChatHistory .Year .YearContent 209 { 210 margin-left: 15px; 211 margin-right: 15px; 212 } 213 214 .ChatHistory .Year .YearContent .Months 215 { 216 border-style: solid; 217 border-bottom-color: gray; 218 border-width: 0px 0px 1px 0px; 219 margin-bottom: 3px; 220 padding-bottom: 2px; 221 } 222 223 .ChatHistory .Year .YearContent .Months span 224 { 225 position: absolute; 226 left: 100px; 227 } 228 229 .ChatHistory .YearContent .Months span strong 230 { 231 border-style: solid; 232 border-width: 1px; 233 border-color: black; 234 padding-left: 3px; 235 } 236 237 .ChatHistoryText 238 { 239 font-size: small; 240 padding: 10px 0px 10px 0px; 241 } 242 120 243 .WideTable 121 244 { -
www/style.php
r140 r148 14 14 function ShowHeader($Title, $Path, $BodyParam = '') 15 15 { 16 global $Time_Start, $refresh, $Config, $User, $PathTree ;16 global $Time_Start, $refresh, $Config, $User, $PathTree, $Database, $System; 17 17 18 18 $Time_Start = GetMicrotime(); // Zjisti počáteční čas … … 134 134 $Navigation = substr($Navigation, 0, -6); 135 135 136 $Output = '<?xml version="1.0" encoding="'.$Config['Web']['Charset'].'"?>'. "\n".137 '<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">'. "\n".138 '<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">'. "\n".139 '< meta http-equiv="content-type" content="text/html; charset=utf-8" />'.140 '< head><link rel="stylesheet" href="'.$Config['Web']['RootFolder'].'/style.css" type="text/css" media="all" />'."\n".141 '<script type="text/javascript" src="'.$Config['Web']['RootFolder'].'/global.js"></script>'. "\n".142 '<title>'.$Config['Web']['Title'].' - '.$Path.'</title> '."\n".143 '</head><body style="font-family: sans-serif;"'.$BodyParam.'>136 $Output = '<?xml version="1.0" encoding="'.$Config['Web']['Charset'].'"?>'. 137 '<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">'. 138 '<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">'. 139 '<head><link rel="stylesheet" href="'.$Config['Web']['RootFolder'].'/style.css" type="text/css" media="all" />'. 140 '<meta http-equiv="content-type" content="text/html; charset='.$Config['Web']['Charset'].'" />'. 141 '<script type="text/javascript" src="'.$Config['Web']['RootFolder'].'/global.js"></script>'. 142 '<title>'.$Config['Web']['Title'].' - '.$Path.'</title> 143 </head><body'.$BodyParam.'> 144 144 <div id="Title">'.$Title.'</div> 145 <div id="Navigation"><span id="MenuItem"><strong>Navigace >></strong> '.$Navigation.'</span><div id="MenuItem2">';146 // if($User->User['Id'] == $User->AnonymousUserId) 147 //$Output .= '<a href="'.$Config['Web']['RootFolder'].'?Action=LoginForm">Přihlášení</a> <a href="'.$Config['Web']['RootFolder'].'?Action=RegistrationForm">Registrace</a>';148 // else $Output .= $User->User['Name'].' <a href="?Action=Logout">Odhlásit</a> <a href="?Action=UserOptions">Nastavení</a>';149 $Output .= ' </div></div>';145 <div class="Navigation"><span class="MenuItem"><strong>Navigace >></strong> '.$Navigation.'</span><div class="MenuItem2"> '; 146 //if($System->Modules['User']->User['Id'] == $System->Modules['User']->AnonymousUserId) 147 // $Output .= '<a href="'.$Config['Web']['RootFolder'].'?Action=LoginForm">Přihlášení</a> <a href="'.$Config['Web']['RootFolder'].'?Action=RegistrationForm">Registrace</a>'; 148 // else $Output .= $System->Modules['User']->User['Name'].' <a href="?Action=Logout">Odhlásit</a> <a href="?Action=UserOptions">Nastavení</a>'; 149 $Output .= '</div></div>'; 150 150 echo($Output); 151 151 } … … 157 157 $Time = floor((GetMicrotime() - $Time_Start) * 100) / 100; 158 158 echo('<div id="Footer"> 159 <i>| Web mistr: Jiří Hajda | e-mail: robie@centrum.cz | ICQ: 277158770| Vygenerováno za '.$Time.' s | Verze: 1.1 | Úprava skriptu: '.date('j.n.Y',filemtime($_SERVER['SCRIPT_FILENAME'])).' |</i>159 <i>| Správa webu: Jiří Hajda | e-mail: robie@centrum.cz | Vygenerováno za '.$Time.' s | Verze: 1.1 | Úprava skriptu: '.date('j.n.Y',filemtime($_SERVER['SCRIPT_FILENAME'])).' |</i> 160 160 </div>'); 161 161 //ShowArray($GLOBALS); … … 163 163 } 164 164 165 165 166 ?> -
www/telseznam.php
r4 r148 1 1 <?php 2 include_once('global.php'); 2 3 3 include('style.php'); 4 ShowHeader('Seznam telefoních èísel','Telefonní seznam'); 5 echo('<img width="100%" src="images/telseznam.jpg">'); 6 ShowFooter(); 4 class PhoneBookPage extends Page 5 { 6 var $FullTitle = 'Seznam telefoních čísel'; 7 var $ShortTitle = 'Telefonní seznam'; 8 9 function Show() 10 { 11 $Output = '<img alt="Telefonní seznam" width="100%" src="images/telseznam.jpg">'; 12 return($Output); 13 } 14 } 15 16 $System->AddModule(new PhoneBookPage()); 17 $System->Modules['PhoneBookPage']->GetOutput(); 7 18 8 19 ?> -
www/tkr.php
r4 r148 1 1 <?php 2 include('style.php'); 3 ShowHeader('Seznam televizních kanálů místní kabelové televize', 'Kanály kabelové televize'); 2 include_once('global.php'); 4 3 5 echo('<strong>Výpis kanálů:</strong><br>'. 6 '<table cellpadding="3" cellspacing="0" border="1">'. 7 '<tr><th>Číslo</th<th>Jméno stanice</th><th>Frekvence [MHz]</th><th>Jazyk</th></tr>'); 8 $DbResult = $Database->select('tkr', '*', ' 1 ORDER BY id'); 9 while($Row = $DbResult->fetch_array()) 4 class CableTVChennelListPage extends Page 10 5 { 11 echo('<tr><td>'.$Row['id'].'</td><td><a href="'.$Row['www'].'">'.$Row['name'].'</a></td><td align="right">'.($Row['freq']/1000).'</td><td>'.$Row['lang'].'</td></tr>'); 6 var $FullTitle = 'Seznam televizních kanálů místní kabelové televize'; 7 var $ShortTitle = 'Kanály kabelové televize'; 8 9 function Show() 10 { 11 $Output = '<div align="center"><strong>Výpis kanálů:</strong><br>'. 12 '<table class="WideTable">'. 13 '<tr><th>Číslo</th<th>Jméno stanice</th><th>Frekvence [MHz]</th><th>Jazyk</th></tr>'; 14 $DbResult = $this->Database->select('tkr', '*', ' 1 ORDER BY id'); 15 while($Row = $DbResult->fetch_array()) 16 { 17 $Output .= '<tr><td>'.$Row['id'].'</td><td><a href="'.$Row['www'].'">'.$Row['name'].'</a></td><td align="right">'.($Row['freq']/1000).'</td><td>'.$Row['lang'].'</td></tr>'; 18 } 19 $Output .= '</table>Aktualizováno dne 17.12.2007<br></div>'; 20 return($Output); 21 } 12 22 } 13 echo('</table> 14 Aktualizováno dne 17.12.2007<br>'); 15 ShowFooter(); 23 24 $System->AddModule(new CableTVChennelListPage()); 25 $System->Modules['CableTVChennelListPage']->GetOutput(); 26 16 27 ?> -
www/ukoly.php
r4 r148 1 1 <?php 2 include('style.php'); 3 ShowHeader('Informace o plánech a úkolech', 'Plány do budoucna'); 4 ?> 2 include_once('global.php'); 5 3 6 <strong>Plánované úkoly:</strong><br> 4 class FuturePlansPage extends Page 5 { 6 var $FullTitle = 'Informace o budoucích plánech a úkolech'; 7 var $ShortTitle = 'Informace o plánech a úkolech'; 8 9 function Show() 10 { 11 $Output = '<strong>Plánované úkoly:</strong><br> 7 12 <div><ul> 8 <li>Zprovoznit televizní server </li>9 <li>Pokusit se vytvořit přímé spojení z AP-SKARPA přes AP-JANICATA na AP- HAPPYa zprovoznit směrovače</li>13 <li>Zprovoznit televizní server a streaming lokální kabelové televize po síti na způsob IPTV. Zpovoznění multicastového vysílání.</li> 14 <li>Pokusit se vytvořit přímé spojení z AP-SKARPA přes AP-JANICATA na AP-KOPECEK a zprovoznit směrovače</li> 10 15 <li>Zprovoznit další webové kamery pro sledování koupaliště a vleku</li> 11 16 <li>Vytvořit online mapu pokrytí sítě a vnitřních spojů</li> 12 <li>Převést síť na živnost </li>13 17 <li>Informační systém na centrále (elektronické hlasování, registrace přípojek, atd.)</li> 14 <li>Zřístupnit o bsah infokanálu a seznam knižek v obecni knihovne</li>15 <li> Vytvořit levné zařízení pro posílání odezvy na ICMP pakety pro potřeby určování místa problémů v kabelových úsecích sítě</li>18 <li>Zřístupnit online obsah infokanálu a seznam knižek v obecní knihovně</li> 19 <li>Zřídit poloprofesionální meteo stanici a zpřístupnit měřené hodnoty online</li> 16 20 </ul></div> 17 21 <br> 18 22 <strong>Hotové úkoly:</strong><br> 19 23 <div><ul> 24 <li>Vytvořit levné zařízení pro posílání odezvy na ICMP pakety pro potřeby určování místa problémů v kabelových úsecích sítě. (řešeno použitím nejlevnějších routerů)</li> 25 <li>Převést síť na živnost. (1.12.2007)</li> 20 26 <li>Zprovoznit kontrolu přístupu k internetu pomocí VPN, zabezpečení šifrováním a heslem (13.8.2006)</li> 21 27 <li>Zprovoznit kontrolu přístupu do sítě (záznam času, IP a MAC adresy, ad.) (20.7.2006)</li> 22 28 <li>Vytvořit stromovou blokovou mapu sítě (26.12.2005)</li> 23 </ul></div> 24 <? 25 ShowFooter(); 29 </ul></div>'; 30 return($Output); 31 } 32 } 33 34 $System->AddModule(new FuturePlansPage()); 35 $System->Modules['FuturePlansPage']->GetOutput(); 36 26 37 ?> -
www/user.php
r130 r148 1 1 <?php 2 2 3 define('NICK_USED', 'Přezdívka použita!'); 3 define('NICK_USED', 'Přihlašovací jméno již použito.'); 4 define('EMAIL_USED', 'Email je již použitý.'); 4 5 define('USER_REGISTRATED', 'Uživatel zaregistrován.'); 5 define('DATA_MISSING', 'Chybí emailová adresa, přezdívka, nebo některé z hesel!'); 6 define('PASSWORDS_UNMATCHED', 'Hesla si neodpovídají!'); 6 define('USER_REGISTRATION_CONFIRMED', 'Vaše registrace byla potvrzena.'); 7 define('DATA_MISSING', 'Chybí emailová adresa, přezdívka, nebo některé z hesel.'); 8 define('PASSWORDS_UNMATCHED', 'Hesla si neodpovídají.'); 9 define('ACCOUNT_LOCKED', 'Účet uzamčen. Po registraci je nutné provést aktivaci účtu podle zaslaného aktivačního emailu.'); 7 10 define('USER_NOT_LOGGED', 'Nejste přihlášen.'); 8 11 define('USER_LOGGED', 'Uživatel přihlášen.'); … … 12 15 define('USER_LOGGED_OUT', 'Byl jste odhlášen.'); 13 16 define('BAD_PASSWORD', 'Špatné heslo.'); 17 define('USER_NOT_FOUND', 'Uživatel nenalezen.'); 14 18 define('USER_TIMEOUT', 300); // in seconds 19 define('USER_PASSWORD_RECOVERY_SUCCESS', 'Přihlašovací údaje byly odeslány na zadanou emailovou adresu.'); 20 define('USER_PASSWORD_RECOVERY_FAIL', 'Podle zadaných údajů nebyl nalezen žádný uživatel.'); 21 define('USER_PASSWORD_RECOVERY_CONFIRMED', 'Nové heslo bylo aktivováno.'); 22 23 define('USER_EVENT_REGISTER', 1); 24 define('USER_EVENT_LOGIN', 2); 25 define('USER_EVENT_LOGOUT', 3); 26 define('USER_EVENT_OPTIONS_CHANGED', 4); 15 27 16 28 class User extends Module 17 29 { 30 var $Dependencies = array('Log'); 18 31 var $Roles = array(); 19 32 var $User = array(); 20 33 var $DefaultRole = 2; 21 var $AnonymousUserId = 1;34 var $AnonymousUserId = 80; 22 35 23 36 function Check() … … 29 42 { 30 43 // Refresh time of last access 31 $this->Database->update('UserOnline', 'SessionId="'.$SID.'"', array(' Time' => 'NOW()'));32 } else $this->Database->insert('UserOnline', array('SessionId' => $SID, 'User' => $this->AnonymousUserId, ' Time' => 'NOW()', 'IpAddress' => GetRemoteAddress(), 'HostName' => gethostbyaddr(GetRemoteAddress())));44 $this->Database->update('UserOnline', 'SessionId="'.$SID.'"', array('ActivityTime' => 'NOW()')); 45 } else $this->Database->insert('UserOnline', array('SessionId' => $SID, 'User' => $this->AnonymousUserId, 'LoginTime' => 'NOW()', 'ActivityTime' => 'NOW()', 'IpAddress' => GetRemoteAddress(), 'HostName' => gethostbyaddr(GetRemoteAddress()))); 33 46 //echo($this->Database->LastQuery); 34 35 // Odeber neaktivní uživatele36 $this->Database->delete('UserOnline', 'Time < DATE_SUB(NOW(), INTERVAL '.USER_TIMEOUT.' SECOND)');37 47 38 48 // Zkontroluj přihlášení 39 49 $Query = $this->Database->select('UserOnline', '*', 'SessionId="'.$SID.'"'); 40 50 $Row = $Query->fetch_array(); 41 if( ($Row['User'] != $this->AnonymousUserId) and ($Query->num_rows > 0))51 if($Row['User'] != $this->AnonymousUserId) 42 52 { 43 53 $Query = $this->Database->select('User', '*', "Id=".$Row['User'].""); 44 54 $this->User = $Query->fetch_array(); 45 55 $Result = USER_LOGGED; 46 } else 56 } else 47 57 { 48 58 $Query = $this->Database->select('User', '*', "Id=".$this->AnonymousUserId); … … 50 60 $Result = USER_NOT_LOGGED; 51 61 } 52 $this->LoadPermission($this->User['Role']); 62 63 // Odeber neaktivní uživatele 64 $DbResult = $this->Database->select('UserOnline', 'Id, User', 'ActivityTime < DATE_SUB(NOW(), INTERVAL '.USER_TIMEOUT.' SECOND)'); 65 while($DbRow = $DbResult->fetch_array()) 66 { 67 $this->Database->delete('UserOnline', 'Id='.$DbRow['User']); 68 $this->System->Modules['Log']->NewRecord('User', 'Logout'); 69 } 70 //$this->LoadPermission($this->User['Role']); 53 71 54 72 // Role and permission 55 $this->LoadRoles(); 56 } 57 58 function Register($Nick, $Password, $Password2, $Email, $FullName) 59 { 60 global $Options; 73 //$this->LoadRoles(); 74 } 75 76 function Register($Nick, $Password, $Password2, $Email, $FirstName, $SecondName) 77 { 78 global $Options, $Config; 79 61 80 if(($Email == '') || ($Nick == '') || ($Password == '') || ($Password2 == '')) $Result = DATA_MISSING; 62 81 else if($Password != $Password2) $Result = PASSWORDS_UNMATCHED; 63 else 82 else 64 83 { 65 84 // Je uživatel registrován? 66 85 $Query = $this->Database->select('User', '*', 'Name = "'.$Nick.'"'); 67 if($Query->num_rows() > 0) $Result = NICK_USED; 68 else 69 { 70 $this->Database->insert('User', array('Name' => addslashes($Nick), 'FullName' => addslashes($FullName), 'Password' => addslashes($Password), 'Email' => htmlspecialchars($Email), 'Role' => $this->DefaultRole)); 71 $Result = USER_REGISTRATED; 86 if($Query->num_rows > 0) $Result = NICK_USED; 87 else 88 { 89 $Query = $this->Database->select('User', '*', 'Email = "'.$Email.'"'); 90 if($Query->num_rows > 0) $Result = EMAIL_USED; 91 else 92 { 93 $this->Database->insert('User', array('Name' => $Nick, 'FirstName' => $FirstName, 'SecondName' => $SecondName, 'Password' => sha1($Password), 'Email' => $Email, 'RegistrationTime' => 'NOW()', 'Locked' => 1)); 94 $UserId = $this->Database->insert_id; 95 96 $Subject = FromUTF8('Registrace nového účtu', 'iso2'); 97 $Message = 'Provedli jste registraci nového účtu na serveru <a href="http://'.$Config['Web']['Host'].$Config['Web']['RootFolder'].'">http://'.$Config['Web']['Host'].$Config['Web']['RootFolder']."</a>.<br>\nPokud jste tak neučinili, měli by jste tento email ignorovat.<br><br>\n\nVáš účet je: ".$Nick."\n<br>Pro dokončení registrace klikněte na ".'<a href="http://'.$Config['Web']['Host'].$Config['Web']['RootFolder'].'/?Action=UserRegisterConfirm&User='.$UserId.'&H='.sha1($Password).'">tento odkaz</a>.'."\n<br> \n\n<br><br>Na tento email neodpovídejte."; 98 $AdditionalHeaders = "To: ".$Nick." <".$Email.">\n"."From: ".FromUTF8($Config['Web']['Title'], 'iso2')." <noreplay@zdechov.net>\n"."MIME-Version: 1.0\n"."Content-type: text/html; charset=utf-8"; 99 mail($Email, $Subject, $Message, $AdditionalHeaders); 100 $Result = USER_REGISTRATED; 101 $this->System->Modules['Log']->NewRecord('User', 'NewRegistration', $Nick); 102 } 72 103 } 73 104 } 74 105 return($Result); 106 } 107 108 function RegisterConfirm($Id, $Hash) 109 { 110 $DbResult = $this->Database->select('User', 'Id, Name, Password', 'Id = '.$Id); 111 if($DbResult->num_rows > 0) 112 { 113 $Row = $DbResult->fetch_array(); 114 if($Hash == $Row['Password']) 115 { 116 $this->Database->update('User', 'Id='.$Row['Id'], array('Locked' => 0)); 117 $Output = USER_REGISTRATION_CONFIRMED; 118 $this->System->Modules['Log']->NewRecord('User', 'RegisterConfirm', 'Username='.$Row['Name']); 119 } else $Output = PASSWORDS_UNMATCHED; 120 } else $Output = USER_NOT_FOUND; 121 return($Output); 75 122 } 76 123 … … 83 130 { 84 131 $Row = $Query->fetch_array(); 85 if($Row['Password'] != $Password) $Result = BAD_PASSWORD; 132 if($Row['Password'] != sha1($Password)) $Result = BAD_PASSWORD; 133 else if($Row['Locked'] == 1) $Result = ACCOUNT_LOCKED; 86 134 else 87 135 { 88 $this->Database->update('User', 'Id='.$Row['Id'], array('LastLoginTime' => 'NOW()')); 136 $this->Database->update('User', 'Id='.$Row['Id'], array('LastLoginTime' => 'NOW()')); 89 137 $this->Database->update('UserOnline', 'SessionId="'.$SID.'"', array('User' => $Row['Id'])); 90 138 // načtení stavu stromu 91 $Result = USER_LOGGED_IN; 139 $Result = USER_LOGGED_IN; 140 $this->System->Modules['Log']->NewRecord('User', 'Login', 'Nick='.$Nick.',Host='.gethostbyaddr(GetRemoteAddress())); 92 141 } 93 142 } else $Result = USER_NOT_REGISTRED; 143 $this->Check(); 94 144 return($Result); 95 145 } … … 99 149 $SID = session_id(); 100 150 $this->Database->update('UserOnline', 'SessionId="'.$SID.'"', array('User' => $this->AnonymousUserId)); 151 $this->System->Modules['Log']->NewRecord('User', 'Logout', $this->User['Name']); 152 $this->Check(); 101 153 return(USER_LOGGED_OUT); 102 154 } … … 129 181 if($DbRow['Write']) $Value .= 'W'; 130 182 $Result[$DbRow['Description']][$DbRow['Title']] = $Value; 131 } 183 } 132 184 return($Result); 133 185 } 186 187 function CheckGroupPermission($GroupId, $OperationId) 188 { 189 // Check group-group relation 190 $DbResult = $this->Database->select('PermissionGroupAssignment', '*', '`Group`="'.$GroupId.'" AND `Type`="Group"'); 191 while($DbRow = $DbResult->fetch_array()) 192 { 193 if($this->CheckGroupPermission($DbRow['GroupOrOperation'], $OperationId) == true) return(true); 194 } 195 196 // Check group-operation relation 197 $DbResult = $this->Database->select('PermissionGroupAssignment', '*', '`Group`="'.$GroupId.'" AND `GroupOrOperation`="'.$OperationId.'" AND `Type`="Operation"'); 198 if($DbResult->num_rows > 0) return(true); 199 return(false); 200 } 201 202 function CheckPermission($Module, $Operation, $ItemType = '', $ItemIndex = 0) 203 { 204 $DbResult = $this->Database->select('PermissionOperation', 'Id', '`Module`="'.$Module.'" AND `Item`="'.$ItemType.'" AND `ItemId`='.$ItemIndex.' AND `Operation`="'.$Operation.'"'); 205 if($DbResult->num_rows > 0) 206 { 207 $DbRow = $DbResult->fetch_array(); 208 $OperationId = $DbRow['Id']; 209 210 // Check user-operation relation 211 $DbResult = $this->Database->select('PermissionUserAssignment', '*', '`User`="'.$this->User['Id'].'" AND `GroupOrOperation`="'.$OperationId.'" AND `Type`="Operation"'); 212 if($DbResult->num_rows > 0) return(true); 213 214 // Check user-group relation 215 $DbResult = $this->Database->select('PermissionUserAssignment', 'GroupOrOperation', '`User`="'.$this->User['Id'].'" AND `Type`="Group"'); 216 while($DbRow = $DbResult->fetch_array()) 217 { 218 if($this->CheckGroupPermission($DbRow['GroupOrOperation'], $OperationId) == true) return(true); 219 } 220 return(false); 221 } else return(false); 222 } 223 224 function PasswordRecoveryRequest($Name, $Email) 225 { 226 global $Config; 227 228 $DbResult = $this->Database->select('User', 'Name, Id, Email, Password', '`Name`="'.$Name.'" AND `Email`="'.$Email.'"'); 229 if($DbResult->num_rows > 0) 230 { 231 $Row = $DbResult->fetch_array(); 232 $NewPassword = substr(sha1(strtoupper($Row['Name'])), 0, 7); 233 234 $Subject = 'Obnova hesla'; 235 $Message = 'Požádali jste o zaslání nového hesla na serveru <a href="http://'.$Config['Web']['Host'].$Config['Web']['RootFolder'].'">http://'.$Config['Web']['Host'].$Config['Web']['RootFolder']."</a>.<br>\nPokud jste tak neučinili, měli by jste tento email ignorovat.<br><br>\n\nVaše nové heslo k účtu ".$Row['Name']." je: ".$NewPassword."\n<br>Pro aktivaci tohoto hesla klikněte na ".'<a href="http://'.$Config['Web']['Host'].$Config['Web']['RootFolder'].'/?Action=PasswordRecoveryConfirm&User='.$Row['Id'].'&H='.$Row['Password'].'&P='.$NewPassword.'">tento odkaz</a>.'."\n<br> Po přihlášení si prosím změňte heslo na nové.\n\n<br><br>Na tento email neodpovídejte."; 236 $AdditionalHeaders = "To: ".$Row['Name']." <".$Row['Email'].">\n"."From: ".FromUTF8($Config['Web']['Title'], 'iso2')." <noreplay@zdechov.net>\n"."MIME-Version: 1.0\n"."Content-type: text/html; charset=utf-8"; 237 mail($Row['Email'], $Subject, $Message, $AdditionalHeaders); 238 $Output = USER_PASSWORD_RECOVERY_SUCCESS; 239 $this->System->Modules['Log']->NewRecord('User', 'PasswordRecoveryRequest', 'Username='.$Name.',Email='.$Email); 240 } else $Output = USER_PASSWORD_RECOVERY_FAIL; 241 return($Output); 242 } 243 244 function PasswordRecoveryConfirm($Id, $Hash, $NewPassword) 245 { 246 $DbResult = $this->Database->select('User', 'Id, Name, Password', 'Id = '.$Id); 247 if($DbResult->num_rows > 0) 248 { 249 $Row = $DbResult->fetch_array(); 250 $NewPassword2 = substr(sha1(strtoupper($Row['Name'])), 0, 7); 251 if(($NewPassword == $NewPassword2) and ($Hash == $Row['Password'])) 252 { 253 $this->Database->update('User', 'Id='.$Row['Id'], array('Password' => sha1($NewPassword), 'Locked' => 0)); 254 $Output = USER_PASSWORD_RECOVERY_CONFIRMED; 255 $this->System->Modules['Log']->NewRecord('User', 'PasswordRecoveryConfirm', 'Username='.$Row['Name']); 256 } else $Output = PASSWORDS_UNMATCHED; 257 } else $Output = USER_NOT_FOUND; 258 return($Output); 259 } 134 260 } 135 261 -
www/userlist.php
r143 r148 1 1 <?php 2 include('style.php');3 2 include_once('global.php'); 4 ShowHeader('Seznam uživatelů na síti', 'Seznam uživatelů');5 3 6 //echo('<a href="#network">Nastavení sítě</a><br>'); 7 echo('<table border="1" cellspacing="0" cellpadding="2" style="font-size: small;"><tr><th>Jméno uživatele</th><th>E-mail</th><th>ICQ</th><th>Telefon</th><th>Počítače</th></tr>'); 4 class UserListPage extends Page 5 { 6 var $FullTitle = 'Seznam registrovaných uživatelů'; 7 var $ShortTitle = 'Seznam uživatelů'; 8 8 9 $DbResult = $Database->select('users', '*,CONCAT(second_name," ",first_name) as fullname','role=2 ORDER BY fullname'); 10 while($User = $DbResult->fetch_array()) 11 { 12 if($User['icq']>0) $ICQ = $User['icq']; else $ICQ = ' '; 13 if($User['phone']>0) $Phone = $User['phone']; else $Phone = ' '; 14 15 $DbResult2 = $Database->select('hosts','*','user='.$User['id'].' AND block=0 ORDER BY name'); 16 $Hosts = ''; 17 while($Host = $DbResult2->fetch_array()) 9 function Show() 18 10 { 19 $Hosts = $Hosts.$Host['name'].', '; 20 //'<img src="http://wwp.icq.com/scripts/online.dll?icq='.$Row['icq'].'&img=5">'. 11 $Output = '<table class="WideTable" style="font-size: small;"><tr><th>Jméno uživatele</th><th>E-mail</th><th>ICQ</th><th>Telefon</th><th>Počítače</th></tr>'; 12 13 $DbResult = $this->Database->select('users', '*, CONCAT(second_name," ",first_name) as fullname', '1 ORDER BY fullname'); 14 while($User = $DbResult->fetch_array()) 15 { 16 if($User['icq'] > 0) $ICQ = $User['icq']; else $ICQ = ' '; 17 if($User['phone'] > 0) $Phone = $User['phone']; else $Phone = ' '; 18 19 $DbResult2 = $this->Database->select('hosts', '*', 'user='.$User['id'].' AND block=0 ORDER BY name'); 20 $Hosts = ''; 21 while($Host = $DbResult2->fetch_array()) 22 { 23 $Hosts = $Hosts.$Host['name'].', '; 24 //'<img src="http://wwp.icq.com/scripts/online.dll?icq='.$Row['icq'].'&img=5">'. 25 } 26 if($Hosts != '') $Hosts = substr($Hosts, 0, -2); 27 $Output .= '<tr><td>'.$User['fullname'].'</td><td>'.$User['email'].' </td><td>'.$ICQ.'</td><td>'.$Phone.'</td><td>'.$Hosts.'</td></tr>'; 28 } 29 $Output .= '</table>'; 30 return($Output); 21 31 } 22 if($Hosts != '') $Hosts = substr($Hosts, 0, -2);23 echo('<tr><td>'.$User['fullname'].'</td><td>'.$User['email'].' </td><td>'.$ICQ.'</td><td>'.$Phone.'</td><td>'.$Hosts.'</td></tr>');24 32 } 25 echo('</table>');26 33 27 //for($i=0;$i<60;$i++) echo('<img //src="http://wwp.icq.com/scripts/online.dll?icq=277158770&img='.$i.'"><br>'); 34 $System->AddModule(new UserListPage()); 35 $System->Modules['UserListPage']->GetOutput(); 28 36 29 ShowFooter();30 37 ?>
Note:
See TracChangeset
for help on using the changeset viewer.