Changeset 303


Ignore:
Timestamp:
Jan 30, 2011, 8:19:57 AM (13 years ago)
Author:
george
Message:
  • Přidáno: Stránka telefonního seznamu.
  • Přidáno: Telefonní seznam, televizní kanály a seznam uživatelů nyní využívá stránkování a řazení sloupců.
Location:
trunk
Files:
2 added
5 edited

Legend:

Unmodified
Added
Removed
  • trunk/config.sample.php

    r298 r303  
    3838    ),     
    3939    'GoogleMapsApiKey' => '',
     40    'ItemsPerPage' => 50,
     41    'VisiblePagingItems' => 20,
    4042  ),
    4143  'Finance' => array
  • trunk/global.php

    r267 r303  
    183183    return($Value.' '.$PrefixMultipliers[$PrefixType]['Definition'][$I][0].$Unit);
    184184  }
     185 
     186  function Link($Target)
     187  {
     188    global $Config;
     189   
     190    return($Config['Web']['RootFolder'].$Target);
     191  }
    185192}
    186193
     
    297304}
    298305
     306function GetQueryStringArray($QueryString)
     307{
     308  $Result = array();
     309  $Parts = explode('&', $QueryString);
     310  foreach($Parts as $Part)
     311  {
     312    if($Part != '')
     313    {
     314      if(!strpos($Part, '=')) $Part .= '=';
     315      $Item = explode('=', $Part);
     316      $Result[$Item[0]] = $Item[1];
     317    }
     318  }
     319  return($Result);
     320}
     321
     322function SetQueryStringArray($QueryStringArray)
     323{
     324  $Parts = array();
     325  foreach($QueryStringArray as $Index => $Item)
     326  {
     327    $Parts[] = $Index.'='.$Item;
     328  }
     329  return(implode('&', $Parts));
     330}
     331
     332function GetPageList($TotalCount)
     333{
     334  global $System;
     335   
     336  $QueryItems = GetQueryStringArray($_SERVER['QUERY_STRING']);
     337 
     338  $ItemPerPage = $System->Config['Web']['ItemsPerPage'];
     339  $Around = round($System->Config['Web']['VisiblePagingItems'] / 2);
     340  $Result = '';
     341  $PageCount = floor($TotalCount / $ItemPerPage) + 1;
     342 
     343  if(!array_key_exists('Page', $_SESSION)) $_SESSION['Page'] = 0;
     344  if(array_key_exists('page', $_GET)) $_SESSION['Page'] = $_GET['page'] * 1;
     345  if($_SESSION['Page'] < 0) $_SESSION['Page'] = 0;
     346  if($_SESSION['Page'] >= $PageCount) $_SESSION['Page'] = $PageCount - 1;
     347  $CurrentPage = $_SESSION['Page'];
     348 
     349       
     350  $Result .= 'Počet položek: <strong>'.$TotalCount.'</strong> &nbsp; Stránky: ';
     351
     352  $Result = '';
     353  if($PageCount > 1)
     354  {
     355    if($CurrentPage > 0)
     356    {
     357      $QueryItems['page'] = 0;     
     358      $Result.= '<a href="?'.SetQueryStringArray($QueryItems).'">&lt;&lt;</a> ';
     359      $QueryItems['page'] = ($CurrentPage - 1);
     360      $Result.= '<a href="?'.SetQueryStringArray($QueryItems).'">&lt;</a> ';
     361    }
     362    $PagesMax = $PageCount - 1;
     363    $PagesMin = 0;
     364    if($PagesMax > ($CurrentPage + $Around)) $PagesMax = $CurrentPage + $Around;
     365    if($PagesMin < ($CurrentPage - $Around))
     366    {
     367      $Result.= ' ... ';
     368      $PagesMin = $CurrentPage - $Around;
     369    }
     370    for($i = $PagesMin; $i <= $PagesMax; $i++)
     371    {
     372      if($i == $CurrentPage) $Result.= '<strong>'.($i + 1).'</strong> ';
     373      else {
     374       $QueryItems['page'] = $i;
     375       $Result .= '<a href="?'.SetQueryStringArray($QueryItems).'">'.($i + 1).'</a> ';
     376      }
     377    }
     378    if($PagesMax < ($PageCount - 1)) $Result .= ' ... ';
     379    if($CurrentPage < ($PageCount - 1))
     380    {
     381      $QueryItems['page'] = ($CurrentPage + 1);
     382      $Result.= '<a href="?'.SetQueryStringArray($QueryItems).'">&gt;</a> ';
     383      $QueryItems['page'] = ($PageCount - 1);
     384      $Result.= '<a href="?'.SetQueryStringArray($QueryItems).'">&gt;&gt;</a>';
     385    }
     386  }
     387  $Result = '<div style="text-align: center">'.$Result.'</div>';
     388  return(array('SQLLimit' => ' LIMIT '.$CurrentPage * $ItemPerPage.', '.$ItemPerPage,
     389    'Page' => $CurrentPage,
     390    'Output' => $Result,
     391  ));
     392}
     393
     394$OrderDirSQL = array('ASC', 'DESC');
     395$OrderArrowImage = array('sort_asc.png', 'sort_desc.png');
     396
     397function GetOrderTableHeader($Columns, $DefaultColumn, $DefaultOrder = 0)
     398{
     399  global $OrderDirSQL, $OrderArrowImage, $Config, $System;
     400 
     401  if(array_key_exists('OrderCol', $_GET)) $_SESSION['OrderCol'] = $_GET['OrderCol'];
     402  if(array_key_exists('OrderDir', $_GET)) $_SESSION['OrderDir'] = $_GET['OrderDir'];
     403  if(!array_key_exists('OrderCol', $_SESSION)) $_SESSION['OrderCol'] = $DefaultColumn;
     404  if(!array_key_exists('OrderDir', $_SESSION)) $_SESSION['OrderDir'] = $DefaultOrder;
     405 
     406  // Check OrderCol
     407  $Found = false;
     408  foreach($Columns as $Column)
     409  {
     410    if($Column['Name'] == $_SESSION['OrderCol'])
     411    {
     412      $Found = true;   
     413      break;
     414    }
     415  }
     416  if($Found == false)
     417  {
     418    $_SESSION['OrderCol'] = $DefaultColumn;
     419    $_SESSION['OrderDir'] = $DefaultOrder;
     420  }
     421  // Check OrderDir
     422  if(($_SESSION['OrderDir'] != 0) and ($_SESSION['OrderDir'] != 1)) $_SESSION['OrderDir'] = 0;
     423 
     424  $Result = '';
     425  $QueryItems = GetQueryStringArray($_SERVER['QUERY_STRING']);
     426  foreach($Columns as $Index => $Column)
     427  {
     428    $QueryItems['OrderCol'] = $Column['Name'];
     429    $QueryItems['OrderDir'] = 1 - $_SESSION['OrderDir'];
     430    if($Column['Name'] == $_SESSION['OrderCol']) $ArrowImage = '<img  style="vertical-align: middle; border: 0px;" src="'.$System->Link('/images/'.$OrderArrowImage[$_SESSION['OrderDir']]).'" alt="order arrow">';
     431      else $ArrowImage = '';
     432    if($Column['Name'] == '') $Result .= '<th>'.$Column['Title'].'</th>';
     433      else $Result .= '<th><a href="?'.SetQueryStringArray($QueryItems).'">'.$Column['Title'].$ArrowImage.'</a></th>';
     434  }
     435  return(array(
     436    'SQL' => ' ORDER BY `'.$_SESSION['OrderCol'].'` '.$OrderDirSQL[$_SESSION['OrderDir']],
     437    'Output' => '<tr>'.$Result.'</tr>',
     438    'Column' => $_SESSION['OrderCol'],
     439    'Direction' => $_SESSION['OrderDir'],
     440  ));
     441}
    299442function GetRemoteAddress()
    300443{
  • trunk/telseznam.php

    r148 r303  
    44class PhoneBookPage extends Page
    55{
    6   var $FullTitle = 'Seznam telefoních čísel';
     6  var $FullTitle = 'Seznam telefonních čísel';
    77  var $ShortTitle = 'Telefonní seznam';
     8 
     9  var $OperatorURL = array(
     10    'Mikrotech' => 'http://voip.mikrotech.cz',
     11    '802.cz' => 'http://802.cz/telefon',
     12    'O2' => 'http://o2.cz',
     13  ); 
    814
    915  function Show()
    1016  {
    11     $Output = '<img alt="Telefonní seznam" width="100%" src="images/telseznam.jpg">';
     17    $DbResult = $this->Database->query('SELECT COUNT(*) FROM `PhoneBook`');
     18    $DbRow = $DbResult->fetch_row();
     19    $PageList = GetPageList($DbRow[0]);   
     20
     21    $Output = $PageList['Output'];
     22    $Output .= '<br/><table class="WideTable">';
     23   
     24    $TableColumns = array(
     25      array('Name' => 'Number', 'Title' => 'Číslo'),
     26      array('Name' => 'Name', 'Title' => 'Jméno'),
     27      array('Name' => 'Address', 'Title' => 'Adresa'),
     28      array('Name' => 'Operator', 'Title' => 'Operátor'),
     29      array('Name' => 'LastUpdate', 'Title' => 'Aktualizace'),
     30    );
     31    $Order = GetOrderTableHeader($TableColumns, 'Name', 0);
     32    $Output .= $Order['Output'];
     33
     34    $Query = 'SELECT * FROM `PhoneBook` '.$Order['SQL'].$PageList['SQLLimit'];
     35
     36    $DbResult = $this->Database->query($Query);
     37    while($Line = $DbResult->fetch_assoc())
     38    {
     39      if(array_key_exists($Line['Operator'], $this->OperatorURL))
     40        $Line['Operator'] = '<a href="'.$this->OperatorURL[$Line['Operator']].'">'.$Line['Operator'].'</a>';
     41      $Output .= '<tr><td>'.$Line['Number'].'</td>'.
     42      '<td>'.$Line['Name'].'</td>'.
     43      '<td>'.$Line['Address'].'</td>'.
     44      '<td>'.$Line['Operator'].'</td>'.
     45      '<td>'.$this->System->HumanDate(MysqlDateTimeToTime($Line['LastUpdate'])).'</td></tr>';
     46    }
     47    $Output .= '</table>';
     48    $Output .= $PageList['Output'];
     49   
     50    $Output .= '<p>Pro aktualizaci údajů v seznamu se prosím obraťte na email robie@centrum.cz</p>';
     51    $Output .= '<a href="images/telseznam.jpg">Starý seznam</a>';
    1252    return($Output);
    1353  }
  • trunk/tv/index.php

    r289 r303  
    1616    'Zobrazení playlistu ve VLC lze provést pomocí menu <strong>View - Playlist</strong> nebo klávesové zkratky CTRL+L<br/>'.
    1717    '<br/>'.
    18     '<div align="center"><strong>Výpis kanálů:</strong><br>'.
    19 '<table class="WideTable">'.
    20 '<tr><th>Jméno stanice</th><th>Jazyk</th><th>Zaměření</th><th>Zdroj</th></th><th>Ladění</th></tr>';
     18    '<div align="center"><strong>Výpis kanálů:</strong><br>';
    2119
    22     $DbResult = $this->Database->select('TV', '*', ' (`Stream` <> "") OR (`StreamWeb` <> "") ORDER BY `Name` ');
    23     while($Channel = $DbResult->fetch_array())
    24     {
    25       $Output .= '<tr><td><a href="'.$Channel['Homepage'].'">'.$Channel['Name'].'</a></td><td>'.$Channel['Language'].'</td><td>'.$Channel['Category'].'</td><td>'.$Channel['SourceType'].'</td><td>';
    26       if($Channel['Stream'] <> '') $Output .= '<a href="playlist.php?id='.$Channel['ShortName'].'">Naladit</a>';
    27         else $Output .= '&nbsp;';
    28       if($Channel['StreamWeb'] <> '') $Output .= '<a href="'.$Channel['StreamWeb'].'">Naladit</a>';
    29         else $Output .= '&nbsp;';
    30       $Output .= '</td></tr>';
     20    $Where =
     21    $DbResult = $this->Database->query('SELECT COUNT(*) FROM `TV` WHERE (`Stream` <> "") OR (`StreamWeb` <> "")');
     22    $DbRow = $DbResult->fetch_row();
     23    $PageList = GetPageList($DbRow[0]);   
     24
     25    $Output .= $PageList['Output'];
     26    $Output .= '<table class="WideTable">';
     27   
     28    $TableColumns = array(
     29      array('Name' => 'Name', 'Title' => 'Jméno stanice'),
     30      array('Name' => 'Language', 'Title' => 'Jazyk'),
     31      array('Name' => 'Category', 'Title' => 'Zaměření'),
     32      array('Name' => 'SourceType', 'Title' => 'Zdroj'),
     33      array('Name' => '', 'Title' => 'Ladění'),
     34    );
     35    $Order = GetOrderTableHeader($TableColumns, 'Name', 0);
     36    $Output .= $Order['Output'];
     37
     38    $Query = 'SELECT * FROM `TV` WHERE (`Stream` <> "") OR (`StreamWeb` <> "") '.$Order['SQL'].$PageList['SQLLimit'];
     39
     40    $DbResult = $this->Database->query($Query);
     41    while($Line = $DbResult->fetch_assoc())
     42    {
     43      if($Line['Stream'] <> '') $Line['Show'] = '<a href="playlist.php?id='.$Line['ShortName'].'">Naladit</a>';
     44      else
     45      if($Line['StreamWeb'] <> '') $Line['Show'] = '<a href="'.$Line['StreamWeb'].'">Naladit</a>';
     46        else $Line['Show'] = '&nbsp;';
     47     
     48      $Output .= '<tr><td><a href="'.$Line['Homepage'].'">'.$Line['Name'].'</a></td>'.
     49      '<td>'.$Line['Language'].'</td>'.
     50      '<td>'.$Line['Category'].'</td>'.
     51      '<td>'.$Line['SourceType'].'</td>'.
     52      '<td>'.$Line['Show'].'</td></tr>';
    3153    }
    32 
    33     $Output .= '</table></div><br/>';
     54    $Output .= '</table>';
     55    $Output .= $PageList['Output'];
     56   
     57    $Output .= '</div><br/>';
    3458   
    3559    $Output .= 'Originální informace o televizi: <a href="http://tv.hovnet.czf/">HovNet televize</a><br/>';
  • trunk/userlist.php

    r214 r303  
    99  function Show()
    1010  {
    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>';
     11    $DbResult = $this->Database->query('SELECT COUNT(*) FROM `User` WHERE (`Login` != "Anonym")');
     12    $DbRow = $DbResult->fetch_row();
     13    $PageList = GetPageList($DbRow[0]);   
    1214
    13     $DbResult = $this->Database->select('User', '*', 'Login != "Anonym" ORDER BY Name');
    14     while($User = $DbResult->fetch_assoc())
    15     {
    16       if($User['ICQ'] > 0) $ICQ = $User['ICQ']; else $ICQ = '&nbsp;';
    17       if($User['PhoneNumber'] > 0) $Phone = $User['PhoneNumber']; else $Phone = '&nbsp;';
     15    $Output = $PageList['Output'];
     16    $Output .= '<table class="WideTable" style="font-size: small;">';
     17   
     18    $TableColumns = array(
     19      array('Name' => 'Name', 'Title' => 'Jméno'),
     20      array('Name' => 'Email', 'Title' => 'E-mail'),
     21      array('Name' => 'ICQ', 'Title' => 'ICQ'),
     22      array('Name' => 'PhoneNumber', 'Title' => 'Telefón'),
     23      array('Name' => '', 'Title' => 'Počítače'),
     24    );
     25    $Order = GetOrderTableHeader($TableColumns, 'Name', 0);
     26    $Output .= $Order['Output'];
     27
     28    $Query = 'SELECT * FROM `User` WHERE (`Login` != "Anonym") '.$Order['SQL'].$PageList['SQLLimit'];
     29
     30    $DbResult = $this->Database->query($Query);
     31    while($User = $DbResult->fetch_assoc())
     32    {
     33      if($User['ICQ'] > 0) $User['ICQ'] = $User['ICQ'];
     34        else $User['ICQ'] = '&nbsp;';
     35      if($User['PhoneNumber'] > 0) $User['PhoneNumber'] = $User['PhoneNumber'];
     36        else $User['PhoneNumber'] = '&nbsp;';
    1837
    1938      $DbResult2 = $this->Database->query('SELECT Name, Id FROM NetworkDevice WHERE Member = (SELECT Id FROM Member WHERE Member.ResponsibleUser = '.$User['Id'].') AND Used=1 ORDER BY Name');
     
    2342        $Devices[] = $Device['Name'];
    2443      }
    25       $Devices = implode(', ', $Devices);
    26       $Output .= '<tr><td>'.$User['Name'].'</td><td>'.$User['Email'].'&nbsp;</td><td>'.$ICQ.'</td><td>'.$Phone.'</td><td>'.$Devices.'</td></tr>';
     44      $User['Devices'] = implode(', ', $Devices);
     45     
     46      $Output .= '<tr><td>'.$User['Name'].'</td>'.
     47      '<td>'.$User['Email'].'</td>'.
     48      '<td>'.$User['ICQ'].'</td>'.
     49      '<td>'.$User['PhoneNumber'].'</td>'.
     50      '<td>'.$User['Devices'].'</td></tr>';
    2751    }
    2852    $Output .= '</table>';
     53    $Output .= $PageList['Output'];
     54   
    2955    return($Output);
    3056  }
Note: See TracChangeset for help on using the changeset viewer.