Changeset 100


Ignore:
Timestamp:
Aug 1, 2008, 2:47:59 PM (16 years ago)
Author:
george
Message:
  • Přidáno: Zobrazení systémových zpráv.
  • Přidáno: Aktivace nových účtů ověřením emailové adresy.
  • Přidáno: Doplnění zaznamenávání událostí do několika modulů.
  • Upraveno: Přepracovány některé stránky do objektového stylu.
Location:
devel/www
Files:
1 added
1 deleted
16 edited

Legend:

Unmodified
Added
Removed
  • devel/www/aktuality/index.php

    r96 r100  
    172172
    173173          //echo(GetRemoteAddress().','.$_SERVER['HTTP_X_FORWARDED_FOR'].'<br />');
    174           $DbResult = $this->Database->query('SELECT `news`.*, `User`.`Name` FROM `news` LEFT JOIN `User` ON `User`.`Id`=`news`.`User` WHERE `category`='.$Category.' ORDER BY `news`.`id` DESC LIMIT '.$Page*$PerPage.','.$PerPage);
     174          $DbResult = $this->Database->query('SELECT `news`.*, `User`.`Name` FROM `news` LEFT JOIN `User` ON `User`.`Id`=`news`.`User` WHERE `category`='.$Category.' ORDER BY `news`.`id` DESC LIMIT '.($Page * $PerPage).','.$PerPage);
    175175          while($Row = $DbResult->fetch_array())
    176176          {
     
    193193            $Output .= '</div>';
    194194          }
    195           $Output .= PagesList('?category='.$Category.'&amp;page=',$Page,$PageMax,$PerPage);
     195          $Output .= PagesList('?category='.$Category.'&amp;page=', $Page, $PageMax, $PerPage);
    196196          $Output .= '</div>';
    197197        } else $Output .= 'Nemáte oprávnění.';
  • devel/www/farnost/index.php

    r89 r100  
    11<?php
    2 include_once('../style.php');
    32include_once('../global.php');
    4 ShowHeader('Rozpis mší svatých v našem kostele', 'Rozpis mší');
    53
    6 $Filename = 'Rozpis_msi_2006_Listopad';
     4class ChurchServiceSchedule extends Page
     5{
     6  var $FullTitle = 'Rozpis mší svatých v místním kostele';
     7  var $ShortTitle = 'Rozpis mší';
     8  var $Filename = 'Rozpis_msi_2006_Listopad';
    79
    8 echo('Rozpis je pouze orientační, přesné údaje najdete na nástěnce před kostelem<br>
    9 <div align="center"><a href="images/'.$Filename.'.jpg"><img src="images/'.$Filename.'_resize.jpg" alt="Listopad 2006"></a></div>');
    10 ShowFooter();
     10  function Show()
     11  {
     12    $Output = 'Rozpis je pouze orientační, přesné údaje najdete na nástěnce před kostelem<br />
     13<div align="center"><a href="images/'.$this->Filename.'.jpg"><img src="images/'.$this->Filename.'_resize.jpg" alt="Listopad 2006"></a></div>';
     14    return($Output);
     15  }
     16}
     17
     18$System->AddModule(new ChurchServiceSchedule());
     19$System->Modules['ChurchServiceSchedule']->GetOutput();
     20
    1121?>
  • devel/www/finance/index.php

    r87 r100  
    2323    $Output .= '<a href="tarify.php">Tarify</a><br />';
    2424    $Output .= '<a href="inventory.php">Výpis skladových zásob</a><br />';
    25     $Output .= '<a href="srovnani.php">Porovnání tarifů s konkurencí</a><br />';
    2625    $Output .= '</td><td width="50%">';
    2726
  • devel/www/finance/spotreba.php

    r87 r100  
    11<?php
    22include_once('../global.php');
    3 include('../style.php');
    4 include('include.php');
     3include_once('include.php');
    54
    6 ShowHeader('Spotřeba energie','Spotřeba');
     5class FinanceConsumption extends Page
     6{
     7  var $FullTitle = 'Spotřeba energie';
     8  var $ShortTitle = 'Spotřeba';
    79
    8 // Seznam segmentů a zařízení
    9 echo('Spotřeba zařízení jednotlivých segmentů:<br><table border="1" cellspacing="0" cellpadding="3"><tr><th>Jméno segmentu</th><th>Spotřeba [W]</th><th>Cena [Kč/měsíc]</th></tr>');
    10 $CelkovaSpotreba = 0;
    11 $DbResult = $Database->query("SELECT * FROM network_segments");   
    12 while($Row = $DbResult->fetch_array())
    13 {
    14   $DbResult2 = $Database->query("SELECT SUM(consumption) FROM network_devices WHERE segment=".$Row['id']." AND used=1");
    15   $Row2 = $DbResult2->fetch_array();
    16   $CelkovaSpotreba = $CelkovaSpotreba + $Row2[0];
    17   echo('<tr><td>'.$Row['name'].'</td><td align="right">'.$Row2[0].'</td><td align="right">'.W2Kc($Row2[0]).'</td></tr>');
     10  function Show()
     11  {
     12    global $kWh;
     13
     14    // Seznam segmentů a zařízení
     15    $Output = 'Spotřeba zařízení jednotlivých segmentů:<br /><table border="1" cellspacing="0" cellpadding="3"><tr><th>Jméno segmentu</th><th>Spotřeba [W]</th><th>Cena [Kč/měsíc]</th></tr>';
     16    $CelkovaSpotreba = 0;
     17    $DbResult = $this->Database->query("SELECT * FROM network_segments");
     18    while($Row = $DbResult->fetch_array())
     19    {
     20      $DbResult2 = $this->Database->query("SELECT SUM(consumption) FROM network_devices WHERE segment=".$Row['id']." AND used=1");
     21      $Row2 = $DbResult2->fetch_array();
     22      $CelkovaSpotreba = $CelkovaSpotreba + $Row2[0];
     23      $Output .= '<tr><td>'.$Row['name'].'</td><td align="right">'.$Row2[0].'</td><td align="right">'.W2Kc($Row2[0]).'</td></tr>';
     24    }
     25    $Output .= '<tr style="font-weight: Bold;"><td><strong>Celkem</strong></td><td align="right">'.$CelkovaSpotreba.'</td><td align="right">'.W2Kc($CelkovaSpotreba).'</td></tr>';
     26    $Output .= '</table><br />';
     27    $Output .= 'Dohodnutá cena za jednu kWh: <strong>'.$kWh.' Kč</strong><br />';
     28    return($Output);
     29  }
    1830}
    19 echo('<tr style="font-weight: Bold;"><td><strong>Celkem</strong></td><td align="right">'.$CelkovaSpotreba.'</td><td align="right">'.W2Kc($CelkovaSpotreba).'</td></tr>');
    20 echo('</table><br>');
    21 echo('Dohodnutá cena za jednu kWh: <strong>'.$kWh.' Kč</strong><br>');
    2231
    23 /*
    24 echo('<strong>Jak se rozpočítávají finance</strong><br>Internet i zařízení sítě se platí za domácnost. Systém výpočtu vychází z topologie sítě. Síť má stromovou topologii přičemž listy stromu jsou jednotliví uživatelé a kořen stromu je linka do internetu. Dosavadní systém je uzpůsoben tak, aby linky, které jsou nejvíce zatíženy, byly nejlépe zaplaceny a mohlo na nich tak být dražší a výkonější zařízení. Nejvytíženější linky se nazývají páteřní. Proto platí každý uživatel podílově zařízení, které vede od něj až ke kořenu stromu, což je v našem případě server Centrála s trvalým internetovým připojením. Pro jednoduchost je síť rozdělena na segmenty. Segment je část sítě, kterou využívá konstantní počet uživatelů. Každý segment je tvořen skupinou zařízení a má svoji celkovou cenu. Každý uživatel je přirozeně napojen na některý ze segmentů. Podíl klienta na zařízení sítě je vypočten jako součet podílů na jednotlivých segmentech směrem ke kořenu. Podíl na segmentu znamená celková cena segmentu podělená počtem uživatelů využívajících daný segment.<br>');
    25   }
    26 */
    27 ShowFooter();
     32$System->AddModule(new FinanceConsumption());
     33$System->Modules['FinanceConsumption']->GetOutput();
     34
    2835?>
  • devel/www/forms.php

    r87 r100  
    132132      {
    133133        case 'Password':
    134           if($this->Values[$Index] == sha1('')) unset($this->Values[$Index]); // Do not modify empty passwords
     134          if($this->Values[$Index] == '') unset($this->Values[$Index]); // Do not modify empty passwords
     135          else $this->Values[$Index] = sha1($this->Values[$Index]);
    135136          break;
    136137        case 'Time':
  • devel/www/global.php

    r96 r100  
    3939$System = new System();
    4040$System->Config = $Config;
     41include_once('log.php');
     42$System->AddModule(new Log());
    4143include_once('user.php');
    4244$System->AddModule(new User());
     
    4648include_once('webcam/webcam.php');
    4749$System->AddModule(new Webcam());
    48 include_once('log.php');
    49 $System->AddModule(new Log());
    5050include_once('finance/bills.php');
    5151$System->AddModule(new Bill());
  • devel/www/hostlist.php

    r87 r100  
    99  function Show()
    1010  {
    11     $Output = '<table border="1" cellspacing="0" cellpadding="2" style="font-size: small;"><tr><th>Jméno počítače</th><th>IP adresa</th><th>Naposledy</th><th>Správce</th></tr>';
     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>';
    1212    $DbResult = $this->Database->select('hosts', '*', 'type=0 ORDER BY name');
    1313    while($Host = $DbResult->fetch_array())
     
    1919      $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>';
    2020    }
    21     $Output .= '</table>';
     21    $Output .= '</table></div>';
    2222    return($Output);
    2323  }
  • devel/www/index.php

    r98 r100  
    1717      array('Seznam počítačů', '/hostlist.php', 'comp.gif'),
    1818      array('Historie chatu', '/chat/history.php', 'sunrisechat.gif', array('Chat', 'Display')),
    19       array('Webový chat', 'http://embed.mibbit.com/?server=game.zdechov.net%3A6667&channel=%23zdechov&forcePrompt=true&charset=windows-1250', 'sunrisechat.gif'),
     19      array('Webový chat', 'http://embed.mibbit.com/?server=game.zdechov.net%3A6667&amp;channel=%23zdechov&amp;forcePrompt=true&amp;charset=windows-1250', 'sunrisechat.gif'),
    2020      array('Diskusní fórum', '/forum/', 'discus.gif'),
    2121      array('WebMail', 'https://centrala.zdechov.net/cgi-bin/openwebmail/openwebmail.pl', 'openwebmail.gif'),
     
    2525      array('Rozpis mší', '/farnost/', 'cfix.gif'),
    2626      array('Telefonní seznam', '/telseznam.php', 'tel.gif'),
    27       array('Zápisy ze schůzí', '/docs/zapisy/zapisy.php', 'zapisy.gif'),
    28       array('Mapa Zděchova', '/mapy/mapa.php', 'clear.gif'),
     27      array('Mapa Zděchova', 'http://www.mapy.cz/#x=141560832@y=133134848@z=13@mm=FP@sa=s@st=s@ssq=zd%C4%9Bchov@sss=1@ssp=120738725_123701121_150360997_149800833', 'clear.gif'),
    2928      array('Otvírací doby', '/otevreno.php', 'otv_doby.gif'),
    3029      array('Topologie sítě', '/is/topologie.php', 'topologie.gif'),
     
    3635    'other' => array('Další odkazy',
    3736      array('Kanály kabelovky', '/tkr.php', 'tv.gif'),
    38       array('Nabídka mapy', '/mapy/mapa_nabidka.php', 'clear.gif'),
    3937      array('Historie sítě', '/history.php', 'clear.gif'),
    4038      array('Měřič spotřeby', '/merak.php', 'electric.gif'),
    41       array('Seznam služeb', '/sluzby.php', 'clear.gif'),
    4239      array('Plány do budoucna', '/ukoly.php', 'clear.gif'),
    4340    ),
     
    129126    }
    130127
    131     $Output = '<div class="Navigation"><span id="MenuItem">'.$Output.'</span><div id="MenuItem2">'.$Output2.'</div></div>';
     128    $Output = '<div class="Navigation"><span class="MenuItem">'.$Output.'</span><div class="MenuItem2">&nbsp;'.$Output2.'</div></div>';
    132129    return($Output);
    133130  }
     
    140137   '<a href="'.$this->System->Config['Web']['RootFolder'].'/network/user_hosts.php">Registrované počítače</a><br />'.
    141138   '<a href="'.$this->System->Config['Web']['RootFolder'].'/aktuality/?action=add">Vložení aktuality</a><br />';
     139   if($this->System->Modules['User']->CheckPermission('EatingPlace', 'Edit')) $Output .= '<a href="'.$this->System->Config['Web']['RootFolder'].'/jidelna/menuedit.php">Editace jídelníčků</a><br />';
    142140   if($this->System->Modules['User']->CheckPermission('Finance', 'Manage')) $Output .= '<a href="'.$this->System->Config['Web']['RootFolder'].'/finance/manage.php">Správa financí</a><br />';
    143141   if($this->System->Modules['User']->CheckPermission('Network', 'Administration')) $Output .= '<a href="'.$this->System->Config['Web']['RootFolder'].'/is/administration_page.php">Správa sítě</a><br />';
     
    267265        $Output .= $UserRegister->ShowEditForm();
    268266      } else
     267      if($_GET['Action'] == 'UserRegisterConfirm')
     268      {
     269          $Output .= $this->SystemMessage('Potvrzení registrace', $this->System->Modules['User']->RegisterConfirm($_GET['User'], $_GET['H']));
     270      } else
    269271      if($_GET['Action'] == 'PasswordRecovery')
    270272      {
  • devel/www/jidelna/menuedit.php

    r99 r100  
    44class EatingPlaceEdit extends Page
    55{
     6  var $Dependencies = array('Log');
    67  var $FullTitle = 'Jídleníček jídelny Na kopečku';
    78  var $ShortTitle = 'Editace jídelníčku';
     
    4950        }
    5051        $Output .= '<div style="color: red; font-size: larger;">Menu uloženo!</div>';
     52        $this->System->Modules['Log']->NewRecord('EatingPlace', 'MenuSave');
    5153      }
    5254      if($_GET['action'] == 'saveinfo')
     
    5557        $this->Database->insert('MealsInfo', array('Info' => $_POST['info'], 'Price' => $_POST['price']));
    5658        $Output .= '<div style="color: red; font-size: larger;">Informační údaje uloženy!</div>';
     59        $this->System->Modules['Log']->NewRecord('EatingPlace', 'InfoSave');
    5760      }
    5861    }
  • devel/www/log.php

    r87 r100  
    1010    //echo($this->Database->LastQuery);
    1111  }
     12
    1213}
  • devel/www/page.php

    r87 r100  
    2727    'merak.php' => 'Měřič spotřeby',
    2828    'tkr.php' => 'Kanály kabelové televize',
     29    'LogShow.php' => 'Záznamy operací',
    2930    'share' => array('Prohledat sdílení',
    3031      'index.php' => '',
     
    165166    $Output = $this->ShowHeader($this->FullTitle, $this->ShortTitle).$Output;
    166167    $Output .= $this->ShowFooter();
    167     //echo($this->FormatOutput($Output));
    168     echo($Output);
     168    echo($this->FormatOutput($Output));
     169    //echo($Output);
    169170  }
    170171
  • devel/www/statistic/trafficview2.php

    r95 r100  
    11<?php
    22include_once('../global.php');
    3 include_once('../style.php');
    4 //$refresh = 60;
    5 ShowHeader('Časové záznamy','Statistika');
    63include('measures.php');
     4
     5class StatisticPage extends Page
     6{
     7  var $FullTitle = 'Časové záznamy';
     8  var $ShortTitle = 'Statistika';
     9
     10  function Show()
     11  {
     12    global $Measures;
     13
    714
    815$GrafTimeRanges = array(
     
    3946);
    4047
    41 $Perioda = 'day';
    42 if(array_key_exists('period',$_SESSION)) $Perioda = $_SESSION['period'];
    43 if(array_key_exists('period',$_GET)) $Perioda = $_GET['period'];
    44 if(!array_key_exists($Perioda, $GrafTimeRanges)) $Perioda = 'day';
    45 $_SESSION['period'] = $Perioda;
     48    $Perioda = 'day';
     49    if(array_key_exists('period',$_SESSION)) $Perioda = $_SESSION['period'];
     50    if(array_key_exists('period',$_GET)) $Perioda = $_GET['period'];
     51    if(!array_key_exists($Perioda, $GrafTimeRanges)) $Perioda = 'day';
     52    $_SESSION['period'] = $Perioda;
    4653
    47 $Type = 'inet';
    48 if(array_key_exists('type',$_SESSION)) $Type = $_SESSION['type'];
    49 if(array_key_exists('type',$_GET)) $Type = $_GET['type'];
    50 if(!array_key_exists($Type, $Measures)) $Type = 'inet_down';
    51 $_SESSION['type'] = $Type;
     54    $Type = 'inet';
     55    if(array_key_exists('type',$_SESSION)) $Type = $_SESSION['type'];
     56    if(array_key_exists('type',$_GET)) $Type = $_GET['type'];
     57    if(!array_key_exists($Type, $Measures)) $Type = 'inet_down';
     58    $_SESSION['type'] = $Type;
    5259
    53 // Show graf time range menu
    54 echo('Časový úsek: ');
    55 foreach($GrafTimeRanges as $Index => $Item)
    56   echo('<a href="?period='.$Index.'">'.$Item['caption'].'</a>&nbsp;');
     60    // Show graf time range menu
     61    $Output = 'Časový úsek: ';
     62    foreach($GrafTimeRanges as $Index => $Item)
     63      $Output .= '<a href="?period='.$Index.'">'.$Item['caption'].'</a>&nbsp;';
    5764
    58 // Show graf type menu
    59 echo('<br>Výběr záznamu: ');
    60 foreach($Measures as $Index => $Item)
    61   echo('<a href="?type='.$Index.'">'.$Item['title'].'</a>&nbsp;');
     65    // Show graf type menu
     66    $Output .= '<br>Výběr záznamu: ';
     67    foreach($Measures as $Index => $Item)
     68      $Output .= '<a href="?type='.$Index.'">'.$Item['title'].'</a>&nbsp;';
    6269
    63 // Insert graf
    64 echo('<br><br>'.$Measures[$Type]['title'].' za poslední '.strtolower($GrafTimeRanges[$Perioda]['caption']).':<br>');
    65 echo('<img alt="Graf '.strtolower($Measures[$Type]['title']).' za poslední '.strtolower($GrafTimeRanges[$Perioda]['caption']).'" src="graf2.php?type='.$Type.'&amp;count='.$GrafTimeRanges[$Perioda]['count'].'&amp;size='.$GrafTimeRanges[$Perioda]['segment'].'" width="750" height="214"><br>');
     70    // Insert graf
     71    $Output .= '<br><br>'.$Measures[$Type]['title'].' za poslední '.strtolower($GrafTimeRanges[$Perioda]['caption']).':<br />';
     72    $Output .= '<img alt="Graf '.strtolower($Measures[$Type]['title']).' za poslední '.strtolower($GrafTimeRanges[$Perioda]['caption']).'" src="graf2.php?type='.$Type.'&amp;count='.$GrafTimeRanges[$Perioda]['count'].'&amp;size='.$GrafTimeRanges[$Perioda]['segment'].'" width="750" height="214"><br />';
    6673
    67 echo('<span style="color: #ffb4b4">Maximálně</span>&nbsp;&nbsp;');
    68 echo('<span style="color: #7878ff">Průměrně</span>');
    69 echo('<br><br>');
     74    $Output .= '<span style="color: #ffb4b4">Maximálně</span>&nbsp;&nbsp;';
     75    $Output .= '<span style="color: #7878ff">Průměrně</span>';
     76    $Output .= '<br /><br />';
    7077
    71 flush();
    72 // Online status check
    73 if(($Type == 'inet') or ($Type == 'inet_up') or ($Type == 'inet_down'))
    74 {
    75 /*
    76   echo('Stav: ');
    77   $Output = array();
    78   $Online = 0;
    79   exec('ping 195.47.235.3 -c 1 | grep received',$Output);
    80   if(count($Output) == 1)
    81   {
    82     $Output = explode(" ",$Output[0]);
    83     if($Output[3]=='1') $Online = 1;
     78    $Output .= '<a href="bandwidth.php">Tabulka zatížení linky podle počítačů</a><br />';
     79    $Output .= '<a href="http://rychlost.cz/statistika/ip/">Měření rychlost připojení k internetu (rychlost.cz)</a><br />';
     80    return($Output);
    8481  }
    85   // exec('ifconfig | grep ppp0',$Output);
    86   //$Online = count($Output);
    87   if($Online == 1) echo('<font style="color: green; font-weight: bold;">ONLINE</font>'); else echo('<font style="color: red; font-weight: bold;">OFFLINE</font>');
    88 */
    89 /*  echo('<br>');
    90  
    91   $EndTime = time();
    92   $StartTime = $EndTime-$GrafTimeRanges[$Perioda]['count']*$GrafTimeRanges[$Perioda]['segment']*60;
    93   DB_Select('traffic', 'sum(inet_down),sum(inet_up)', 'time>FROM_UNIXTIME('.$StartTime.') AND time<FROM_UNIXTIME('.$EndTime.')');
    94   $Row = DB_Row();
    95   echo('Za úsek staľeno: '.Round($Row[0]*60/1024/1024).' MB &nbsp;&nbsp;&nbsp; Za úsek odesláno: '.Round($Row[1]*60/1024/1024).' MB<br>');
    96 
    97   // Total downloaded and uploaded
    98   DB_Query('select sum(inet_down),sum(inet_up) from traffic');
    99   $Row = DB_Row();
    100   echo('Celkem staľeno: '.Round($Row[0]*60/1024/1024).' MB &nbsp;&nbsp;&nbsp; Celkem odesláno: '.Round($Row[1]*60/1024/1024).' MB<br><br>');
    101 */
    102   echo('<a href="bandwidth.php">Tabulka zatížení linky podle počítačů</a><br>');
    103   echo('<a href="http://rychlost.cz/statistika/ip/">Měření rychlost připojení k internetu (rychlost.cz)</a><br>');
    104  
    10582}
    10683
     
    127104// echo('informace jsou aktualizovány kaľdou minutu. stránku je nutno obnovovat.');
    128105*/
    129 ShowFooter();
     106
     107$System->AddModule(new StatisticPage());
     108$System->Modules['StatisticPage']->GetOutput();
     109
    130110?>
  • devel/www/style.css

    r98 r100  
    244244  border-color: black;
    245245  border-style: solid;
    246   border-width: 1px;
     246  border-width: 1px 1px 0px 0px;
    247247  border-spacing: 0px;
    248248}
     
    252252  border-color: black;
    253253  border-style: solid;
    254   border-width: 1px;
     254  border-width: 0px 0px 1px 1px;
    255255  padding: 1px 10px 1px 10px;
    256256}
     
    260260  border-color: black;
    261261  border-style: solid;
    262   border-width: 1px;
     262  border-width: 0px 0px 1px 1px;
    263263  padding: 1px 10px 1px 10px;
    264264}
  • devel/www/style.php

    r87 r100  
    142142  </head><body'.$BodyParam.'>
    143143<div id="Title">'.$Title.'</div>
    144 <div class="Navigation"><span id="MenuItem"><strong>Navigace &gt;&gt;</strong> '.$Navigation.'</span><div id="MenuItem2">';
     144<div class="Navigation"><span class="MenuItem"><strong>Navigace &gt;&gt;</strong> '.$Navigation.'</span><div class="MenuItem2">';
    145145  if($System->Modules['User']->User['Id'] == $System->Modules['User']->AnonymousUserId)
    146146    $Output .= '<a href="'.$Config['Web']['RootFolder'].'?Action=LoginForm">Přihlášení</a> <a href="'.$Config['Web']['RootFolder'].'?Action=RegistrationForm">Registrace</a>';
  • devel/www/user.php

    r96 r100  
    11<?php
    22
    3 define('NICK_USED', 'Přezdívka použita!');
     3define('NICK_USED', 'Přihlašovací jméno již použito.');
     4define('EMAIL_USED', 'Email je již použitý.');
    45define('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í!');
     6define('USER_REGISTRATION_CONFIRMED', 'Vaše registrace byla potvrzena.');
     7define('DATA_MISSING', 'Chybí emailová adresa, přezdívka, nebo některé z hesel.');
     8define('PASSWORDS_UNMATCHED', 'Hesla si neodpovídají.');
     9define('ACCOUNT_LOCKED', 'Účet uzamčen. Po registraci je nutné provést aktivaci účtu podle zaslaného aktivačního emailu.');
    710define('USER_NOT_LOGGED', 'Nejste přihlášen.');
    811define('USER_LOGGED', 'Uživatel přihlášen.');
     
    1215define('USER_LOGGED_OUT', 'Byl jste odhlášen.');
    1316define('BAD_PASSWORD', 'Špatné heslo.');
    14 define('USER_NOT_FOUND', 'Uživatele nenalezen.');
     17define('USER_NOT_FOUND', 'Uživatel nenalezen.');
    1518define('USER_TIMEOUT', 300);  // in seconds
    1619define('USER_PASSWORD_RECOVERY_SUCCESS', 'Přihlašovací údaje byly odeslány na zadanou emailovou adresu.');
     
    3942    {
    4043      // Refresh time of last access
    41       $this->Database->update('UserOnline', 'SessionId="'.$SID.'"', array('Time' => 'NOW()'));
    42     } 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())));
    4346    //echo($this->Database->LastQuery);
    44 
    45     // Odeber neaktivní uživatele
    46     $this->Database->delete('UserOnline', 'Time < DATE_SUB(NOW(), INTERVAL '.USER_TIMEOUT.' SECOND)');
    4747
    4848    // Zkontroluj přihlášení
     
    6060      $Result = USER_NOT_LOGGED;
    6161    }
     62
     63    // Odeber neaktivní uživatele
     64    $DbResult = $this->Database->select('UserOnline', '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    }
    6270    //$this->LoadPermission($this->User['Role']);
    6371
    6472    // Role and permission
    6573    //$this->LoadRoles();
    66    
    6774  }
    6875
    6976  function Register($Nick, $Password, $Password2, $Email, $FirstName, $SecondName)
    7077  {
    71     global $Options;
     78    global $Options, $Config;
     79
    7280    if(($Email == '') || ($Nick == '') || ($Password == '') || ($Password2 == '')) $Result = DATA_MISSING;
    7381    else if($Password != $Password2) $Result = PASSWORDS_UNMATCHED;
    74     else 
     82    else
    7583    {
    7684      // Je uživatel registrován?
    7785      $Query = $this->Database->select('User', '*', 'Name = "'.$Nick.'"');
    7886      if($Query->num_rows > 0) $Result = NICK_USED;
    79       else
    80       {
    81         $this->Database->insert('User', array('Name' => $Nick, 'FirstName' => $FirstName, 'SecondName' => $SecondName, 'Password' => sha1($Password), 'Email' => $Email, 'RegistrationTime' => 'NOW()'));
    82         $Result = USER_REGISTRATED;
    83         $this->System->Modules['Log']->NewRecord('User', 'Uživatel registrován', $Nick);
     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()'));
     94          $UserId = $this->Database->insert_id;
     95         
     96          $Subject = from_utf8('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&amp;User='.$UserId.'&amp;H='.sha1($Password).'">tento odkaz</a>.'."\n<br> \n\n<br><br>Na tento email neodpovídejte.";
     98          $AdditionalHeaders = "To: ".$Nick." <".$Email.">\n"."From: ".from_utf8($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        }
    84103      }
    85104    }
    86105    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);
    87122  }
    88123
     
    96131      $Row = $Query->fetch_array();
    97132      if($Row['Password'] != sha1($Password)) $Result = BAD_PASSWORD;
     133      else if($Row['Locked'] == 1) $Result = ACCOUNT_LOCKED;
    98134      else
    99135      {
    100         $this->Database->update('User', 'Id='.$Row['Id'], array('LastLoginTime' => 'NOW()'));   
     136        $this->Database->update('User', 'Id='.$Row['Id'], array('LastLoginTime' => 'NOW()'));
    101137        $this->Database->update('UserOnline', 'SessionId="'.$SID.'"', array('User' => $Row['Id']));
    102138        // načtení stavu stromu
    103         $Result = USER_LOGGED_IN;   
    104         $this->System->Modules['Log']->NewRecord('User', 'Uživatel přihlášen', $Nick);
     139        $Result = USER_LOGGED_IN;
     140        $this->System->Modules['Log']->NewRecord('User', 'Login', 'Nick='.$Nick.',Host='.gethostbyaddr(GetRemoteAddress()));
    105141      }
    106142    } else $Result = USER_NOT_REGISTRED;
     
    113149    $SID = session_id();
    114150    $this->Database->update('UserOnline', 'SessionId="'.$SID.'"', array('User' => $this->AnonymousUserId));
    115     $this->System->Modules['Log']->NewRecord('User', 'Uživatel odhlášen', $this->User['Name']);
     151    $this->System->Modules['Log']->NewRecord('User', 'Logout', $this->User['Name']);
    116152    $this->Check();
    117153    return(USER_LOGGED_OUT);
     
    145181      if($DbRow['Write']) $Value .= 'W';
    146182      $Result[$DbRow['Description']][$DbRow['Title']] = $Value;
    147     }   
     183    }
    148184    return($Result);
    149185  }
     
    201237      mail($Row['Email'], $Subject, $Message, $AdditionalHeaders);
    202238      $Output = USER_PASSWORD_RECOVERY_SUCCESS;
     239      $this->System->Modules['Log']->NewRecord('User', 'PasswordRecoveryRequest', 'Username='.$Name.',Email='.$Email);
    203240    } else $Output = USER_PASSWORD_RECOVERY_FAIL;
    204241    return($Output);
     
    216253        $this->Database->update('User', 'Id='.$Row['Id'], array('Password' => sha1($NewPassword)));
    217254        $Output = USER_PASSWORD_RECOVERY_CONFIRMED;
     255        $this->System->Modules['Log']->NewRecord('User', 'PasswordRecoveryConfirm', 'Username='.$Row['Name']);
    218256      } else $Output = PASSWORDS_UNMATCHED;
    219257    } else $Output = USER_NOT_FOUND;
  • devel/www/userlist.php

    r87 r100  
    99  function Show()
    1010  {
    11     $Output = '<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>';
     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>';
    1212
    1313    $DbResult = $this->Database->select('users', '*, CONCAT(second_name," ",first_name) as fullname', '1 ORDER BY fullname');
Note: See TracChangeset for help on using the changeset viewer.