Changeset 21 for trunk/www/table.php


Ignore:
Timestamp:
Jun 12, 2009, 7:26:20 PM (15 years ago)
Author:
george
Message:
  • Přidáno: Podpora stránkování obsahu tabulek.
  • Upraveno: Administrátor může spravovat všechny servery.
  • Přidáno: Podpora zpracování skrytých položek ve formulářích.
  • Upraveno: Adresování serverů v URL přes Id namísto zjištění serveru uživatele. Potřebné pro administrátora.
File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/www/table.php

    r20 r21  
    99  var $OnRow;
    1010  var $QueryParameters;
     11  var $TotalRowCount;
    1112 
    1213  function __construct($ClassName)
     
    2021  function Show()
    2122  {
     23    global $Config;
     24
    2225    $Header = array();
    2326    if(!array_key_exists('Order', $_GET)) $_GET['Order'] = 0;
    2427    if(!array_key_exists('Column', $_GET)) $_GET['Column'] = 0;
    25     $QueryParts = explode('&', $_SERVER['QUERY_STRING']);
    26     foreach($QueryParts as $Part)
    27     {
    28       if($Part != '')
    29       {
    30         $Part2 = explode('=', $Part);
    31         $QueryItems[$Part2[0]] = $Part2[1];
    32       }
    33     }
    34     $QueryItems['Order'] = $_GET['Order'];
     28    $QueryStringArray = GetQueryStringArray();
     29    $QueryStringArray['Order'] = $_GET['Order'];
    3530    foreach($this->Definition['Items'] as $Index => $Item)
    3631    {
    37       $QueryItems['Column'] = $Index;
    38       if($_GET['Column'] == $Index) $QueryItems['Order'] = 1 - $_GET['Order'];
    39         else $QueryItems['Order'] = $_GET['Order'];
    40       $QueryParts = array();
    41       foreach($QueryItems as $Index2 => $Item2)
    42       {
    43         $QueryParts[] = $Index2.'='.$Item2;
    44       }
    45       $Header[] = '<a href="?'.implode('&amp;', $QueryParts).'">'.$Item['Caption'].'</a>';
     32      $QueryStringArray['Column'] = $Index;
     33      if($_GET['Column'] == $Index) $QueryStringArray['Order'] = 1 - $_GET['Order'];
     34        else $QueryStringArray['Order'] = $_GET['Order'];
     35      $Header[] = '<a href="?'.SetQueryStringArray($QueryStringArray).'">'.$Item['Caption'].'</a>';
    4636    }
    4737    $Table = array(
     
    5040    );
    5141    $Output = Table($Table, 'WideTable');
     42    $Output .= '<div class="Pager">'.PageList('Page', $this->Page, $this->TotalRowCount, $Config['Web']['TableRowPerPage']).'</div>';
    5243    return($Output);
    5344  } 
     
    5546  function LoadValuesFromDatabase($Database)
    5647  {   
     48    global $Config;
     49   
    5750    $OrderType = array('ASC', 'DESC');
    5851    if(!array_key_exists('Order', $_GET)) $_GET['Order'] = 0;
     
    7265    foreach($this->QueryParameters as $Index => $Item)
    7366      $Table = str_replace('%'.$Index, $Item, $Table);
    74     $DbResult = $Database->query('SELECT * FROM '.$Table.' ORDER BY T.'.$_GET['Column'].' '.$OrderType[$_GET['Order']]);
     67    $DbResult = $Database->query('SELECT COUNT(*) FROM '.$Table.' ORDER BY T.'.$_GET['Column'].' '.$OrderType[$_GET['Order']]);
     68    $DbRow = $DbResult->fetch_row();
     69    $this->TotalRowCount = $DbRow[0];
     70    if(array_key_exists('Page', $_GET)) $this->Page = $_GET['Page']; else $this->Page = 0;
     71    if($this->Page > ($this->TotalRowCount / $Config['Web']['TableRowPerPage'])) $this->Page = 0;
     72    $DbResult = $Database->query('SELECT * FROM '.$Table.' ORDER BY T.'.$_GET['Column'].' '.$OrderType[$_GET['Order']].' LIMIT '.($this->Page * $Config['Web']['TableRowPerPage']).', '.$Config['Web']['TableRowPerPage']);
    7573    while($DbRow = $DbResult->fetch_assoc())
    7674    {
     
    9088      $this->Values[] = $Row;
    9189    }
    92   }
     90  } 
    9391}
    9492
Note: See TracChangeset for help on using the changeset viewer.