Changeset 21


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.
Location:
trunk/www
Files:
9 edited

Legend:

Unmodified
Added
Removed
  • trunk/www/config.sample.php

    r20 r21  
    2727    'ShowRuntimeInfo' => false,
    2828    'ErrorLogFile' => 'php_script_error.log',   
     29    'TableRowPerPage' => 30,
    2930  ),
    3031  'BaseDir' => '/opt/wowhosting/',
  • trunk/www/form.php

    r16 r21  
    3333    foreach($this->Definition['Items'] as $Index => $Item)
    3434    {
    35       if(!array_key_exists($Index, $this->Values) and isset($Item['Default'])) $this->Values[$Index] = $Item['Default'];
    36       $Edit = ExecuteTypeEvent($Item['Type'], 'OnView',
    37         array('Name' => $Index, 'Value' => $this->Values[$Index], 'Type' => $Item['Type']));
    38       array_push($Table['Rows'], array($Item['Caption'], $Edit));
     35      if($Item['Type'] != 'Hidden')
     36      {
     37        if(!array_key_exists($Index, $this->Values) and isset($Item['Default'])) $this->Values[$Index] = $Item['Default'];
     38        $Edit = ExecuteTypeEvent($Item['Type'], 'OnView',
     39          array('Name' => $Index, 'Value' => $this->Values[$Index], 'Type' => $Item['Type']));
     40        array_push($Table['Rows'], array($Item['Caption'], $Edit));
     41      }
    3942    }
    4043    $Output = '<div style="text-align: center">'.$this->Definition['Title'].'</div>'.Table($Table, 'WideTable');
     
    6063    foreach($this->Definition['Items'] as $Index => $Item)
    6164    {
    62       if(!array_key_exists($Index, $this->Values) and isset($Item['Default'])) $this->Values[$Index] = $Item['Default'];
    63       $Edit = ExecuteTypeEvent($Item['Type'], 'OnEdit',
    64         array('Name' => $Index, 'Value' => $this->Values[$Index], 'Type' => $Item['Type']));
    65       array_push($Table['Rows'], array($Item['Caption'].':', $Edit));
     65      if($Item['Type'] != 'Hidden')
     66      {
     67        if(!array_key_exists($Index, $this->Values) and isset($Item['Default'])) $this->Values[$Index] = $Item['Default'];
     68        $Edit = ExecuteTypeEvent($Item['Type'], 'OnEdit', array('Name' => $Index, 'Value' => $this->Values[$Index], 'Type' => $Item['Type']));
     69        array_push($Table['Rows'], array($Item['Caption'].':', $Edit));
     70      }
    6671    }
    6772    $Output = '<fieldset><legend>'.$this->Definition['Title'].'</legend>'.Table($Table, 'BasicTable').
    6873    '</fieldset>';
     74    foreach($this->Definition['Items'] as $Index => $Item)
     75      if($Item['Type'] == 'Hidden') $Output .= ExecuteTypeEvent($Item['Type'], 'OnEdit', array('Name' => $Index, 'Value' => $this->Values[$Index], 'Type' => $Item['Type']));
    6976    return($Output);
    7077  }
     
    7885    foreach($this->Definition['Items'] as $Index => $Item)
    7986    {
    80       $this->Values[$Index] = $DbRow[$Index];
     87      if($Item['Type'] != 'Hidden')
     88        $this->Values[$Index] = $DbRow[$Index];
    8189    }
    8290  }
  • trunk/www/form_classes.php

    r20 r21  
    7171      'Database' => array('Type' => 'Database', 'Caption' => 'Databáze', 'Default' => 0),
    7272      'Motd' => array('Type' => 'String', 'Caption' => 'Zpráva dne', 'Default' => 'Vítejte na free WoW serveru'),
     73      'ServerId' => array('Type' => 'Hidden', 'Caption' => 'Id', 'Default' => 0),
    7374      //'TimeCreation' => array('Type' => 'DateTime', 'Caption' => 'Datum založení', 'Default' => 'NOW()'),
    7475    ),
  • trunk/www/global.php

    r17 r21  
    263263}
    264264
     265function GetRemoteAddress()
     266{
     267  if(array_key_exists('HTTP_X_FORWARDED_FOR',$_SERVER)) $IP = $_SERVER['HTTP_X_FORWARDED_FOR'] ;
     268  else if(array_key_exists('REMOTE_ADDR', $_SERVER)) $IP = $_SERVER['REMOTE_ADDR'];
     269  else $IP = '0.0.0.0';
     270  return($IP);
     271}
     272
     273function RemoveDiacritic($Text)
     274{
     275  return(str_replace(
     276    array('á', 'č', 'ď', 'é', 'ě', 'í', 'ľ', 'ň', 'ó', 'ř', 'š', 'ť', 'ú', 'ů', 'ý', 'ž', 'Á', 'Č', 'Ď', 'É', 'Ě', 'Í', 'Ľ', 'Ň', 'Ó', 'Ř', 'Š', 'Ť', 'Ú', 'Ů', 'Ý', 'Ž'),
     277    array('a', 'c', 'd', 'e', 'e', 'i', 'l', 'n', 'o', 'r', 's', 't', 'u', 'u', 'y', 'z', 'A', 'C', 'D', 'E', 'E', 'I', 'L', 'N', 'O', 'R', 'S', 'T', 'U', 'U', 'Y', 'Z'),
     278    $Text));
     279}
     280
     281function NotBlank($Text)
     282{
     283  if($Text == '') return('&nbsp'); else return($Text);
     284}
     285
     286function MakeLink($Target, $Title)
     287{
     288  return('<a href="'.$Target.'">'.$Title.'</a>');
     289}
     290
     291function Table($Table, $Class)
     292{
     293  $Result = '<table class="'.$Class.'">';
     294  if(array_key_exists('Header', $Table))
     295  {
     296    $Result .= '<tr>';
     297    foreach($Table['Header'] as $Item)
     298      $Result .= '<th>'.$Item.'</th>';
     299    $Result .= '</tr>';
     300  }
     301  foreach($Table['Rows'] as $Row)
     302  {
     303    $Result .= '<tr>';
     304    foreach($Row as $Index => $Item)
     305    {
     306      if($Index == 0) $Class = ' class="Header"'; else $Class = '';
     307      $Result .= '<td'.$Class.'>'.$Item.'</td>';
     308    }
     309    $Result .= '</tr>';
     310  }
     311  $Result .= '</table>';
     312  return($Result);
     313}
     314
     315function GetQueryStringArray()
     316{
     317  $Result = array();
     318  $Parts = explode('&', $_SERVER['QUERY_STRING']);
     319  foreach($Parts as $Part)
     320  {
     321    if($Part != '')
     322    {
     323      $Item = explode('=', $Part);
     324      $Result[$Item[0]] = $Item[1];
     325    }
     326  }
     327  return($Result);
     328}
     329
     330function SetQueryStringArray($QueryStringArray)
     331{
     332  $Parts = array();
     333  foreach($QueryStringArray as $Index => $Item)
     334  {
     335    $Parts[] = $Index.'='.$Item;
     336  }
     337  return(implode('&', $Parts));
     338}
     339
    265340// Zobrazení číselný seznamu stránek
    266 function PagesList($URL, $Page, $TotalCount, $CountPerPage, $Around = 10)
    267 {
     341function PageList($QueryStringVar, $Page, $TotalCount, $CountPerPage, $Around = 10)
     342{
     343  $QueryStringArray = GetQueryStringArray();
    268344  $Count = ceil($TotalCount / $CountPerPage);
    269345  $Result = '';
     
    272348    if($Page > 0)
    273349    {
    274       $Result .= '<a href="'.$URL.'0">&lt;&lt;</a> ';
    275       $Result .= '<a href="'.$URL.($Page - 1).'">&lt;</a> ';
     350      $QueryStringArray[$QueryStringVar] = 0;
     351      $Result .= '<a href="?'.SetQueryStringArray($QueryStringArray).'">&lt;&lt;</a> ';
     352      $QueryStringArray[$QueryStringVar] = $Page - 1;
     353      $Result .= '<a href="?'.SetQueryStringArray($QueryStringArray).'">&lt;</a> ';
    276354    }
    277355    $PagesMax = $Count - 1;
     
    286364    {
    287365      if($i == $Page) $Result .= '<strong>';
    288       $Result .= '<a href="'.$URL.$i.'">'.($i + 1).'</a> ';
     366      $QueryStringArray[$QueryStringVar] = $i;
     367      $Result .= '<a href="?'.SetQueryStringArray($QueryStringArray).'">'.($i + 1).'</a> ';
    289368      if($i == $Page) $Result .= '</strong>';
    290369    }
     
    292371    if($Page < ($Count - 1))
    293372    {
    294       $Result .= '<a href="'.$URL.($Page + 1).'">&gt;</a> ';
    295       $Result .= '<a href="'.$URL.($Count - 1).'">&gt;&gt;</a>';
     373      $QueryStringArray[$QueryStringVar] = $Page + 1;
     374      $Result .= '<a href="?'.SetQueryStringArray($QueryStringArray).'">&gt;</a> ';
     375      $QueryStringArray[$QueryStringVar] = $Count - 1;
     376      $Result .= '<a href="?'.SetQueryStringArray($QueryStringArray).'">&gt;&gt;</a>';
    296377    }
    297378  }
     
    299380}
    300381
    301 function GetRemoteAddress()
    302 {
    303   if(array_key_exists('HTTP_X_FORWARDED_FOR',$_SERVER)) $IP = $_SERVER['HTTP_X_FORWARDED_FOR'] ;
    304   else if(array_key_exists('REMOTE_ADDR', $_SERVER)) $IP = $_SERVER['REMOTE_ADDR'];
    305   else $IP = '0.0.0.0';
    306   return($IP);
    307 }
    308 
    309 function RemoveDiacritic($Text)
    310 {
    311   return(str_replace(
    312     array('á', 'č', 'ď', 'é', 'ě', 'í', 'ľ', 'ň', 'ó', 'ř', 'š', 'ť', 'ú', 'ů', 'ý', 'ž', 'Á', 'Č', 'Ď', 'É', 'Ě', 'Í', 'Ľ', 'Ň', 'Ó', 'Ř', 'Š', 'Ť', 'Ú', 'Ů', 'Ý', 'Ž'),
    313     array('a', 'c', 'd', 'e', 'e', 'i', 'l', 'n', 'o', 'r', 's', 't', 'u', 'u', 'y', 'z', 'A', 'C', 'D', 'E', 'E', 'I', 'L', 'N', 'O', 'R', 'S', 'T', 'U', 'U', 'Y', 'Z'),
    314     $Text));
    315 }
    316 
    317 function NotBlank($Text)
    318 {
    319   if($Text == '') return('&nbsp'); else return($Text);
    320 }
    321 
    322 function MakeLink($Target, $Title)
    323 {
    324   return('<a href="'.$Target.'">'.$Title.'</a>');
    325 }
    326 
    327 function Table($Table, $Class)
    328 {
    329   $Result = '<table class="'.$Class.'">';
    330   if(array_key_exists('Header', $Table))
    331   {
    332     $Result .= '<tr>';
    333     foreach($Table['Header'] as $Item)
    334       $Result .= '<th>'.$Item.'</th>';
    335     $Result .= '</tr>';
    336   }
    337   foreach($Table['Rows'] as $Row)
    338   {
    339     $Result .= '<tr>';
    340     foreach($Row as $Index => $Item)
    341     {
    342       if($Index == 0) $Class = ' class="Header"'; else $Class = '';
    343       $Result .= '<td'.$Class.'>'.$Item.'</td>';
    344     }
    345     $Result .= '</tr>';
    346   }
    347   $Result .= '</table>';
    348   return($Result);
    349 }
    350 
    351382?>
  • trunk/www/index.php

    r20 r21  
    4747    $Output .= $Form->ShowTable();
    4848    $Output .= '<div style="text-align: center">';
    49     if(($this->System->Modules['User']->User['Role'] >= USER_ROLE_USER) and ($this->System->Modules['User']->User['Id'] == $Server->Server['User']))
     49    if((($this->System->Modules['User']->User['Role'] >= USER_ROLE_USER) and ($this->System->Modules['User']->User['Id'] == $Server->Server['User'])) or ($this->System->Modules['User']->User['Role'] >= USER_ROLE_ADMINISTRATOR))
    5050    {
    5151      $Output .= '<br /><a href="http://'.$this->System->Config['Web']['Host'].'/mysql/">Správa databáze</a> ';
     
    5353      {
    5454        $ServerStatus = $Server->GetState();
    55         if($ServerStatus['RealmdPortState'] == true) $Output .= ' <a href="?Action=ServerStop">Zastavit</a>  <a href="?Action=ServerRestart">Restartovat</a>';
    56           else $Output .= ' <a href="?Action=ServerStart">Spustit</a>';
     55        if($ServerStatus['RealmdPortState'] == true) $Output .= ' <a href="?Action=ServerStop&amp;Id='.$Server->Id.'">Zastavit</a>  <a href="?Action=ServerRestart&amp;Id='.$Server->Id.'">Restartovat</a>';
     56          else $Output .= ' <a href="?Action=ServerStart&amp;Id='.$Server->Id.'">Spustit</a>';
    5757      }
    58       $Output .= ' <a href="?Action=ServerEdit">Upravit</a>';
    59       $Output .= ' <a href="?Action=ServerDatabaseImport">Načtení čisté databáze</a>';
     58      $Output .= ' <a href="?Action=ServerEdit&amp;Id='.$Server->Id.'">Upravit</a>';
     59      $Output .= ' <a href="?Action=ServerDatabaseImport&amp;Id='.$Server->Id.'">Načtení čisté databáze</a>';
    6060    }
    6161    $Output .= '</div>';
     
    253253      {
    254254        if(array_key_exists('Id', $_GET)) $Output .= $this->ShowServer($_GET['Id']);
    255           else
    256           {
    257             $DbResult = $this->Database->query('SELECT Id FROM Server WHERE User='.$this->System->Modules['User']->User['Id']);
    258             $Server = $DbResult->fetch_assoc();
    259             $Output .= $this->ShowServer($Server['Id']);
    260           }
     255        else $this->SystemMessage('Zobrazení serveru', 'Nebylo zadáno Id');
    261256      } else
    262257      if($_GET['Action'] == 'ServerEdit')
    263258      {
    264         if($this->System->Modules['User']->User['Role'] >= USER_ROLE_USER)
    265         {
    266           $DbResult = $this->Database->query('SELECT Id FROM Server WHERE User='.$this->System->Modules['User']->User['Id']);
    267           $Server = $DbResult->fetch_assoc();
     259        $Server = new Server($this->Database, $_GET['Id']);
     260        if(($this->System->Modules['User']->User['Id'] == $Server->Server['User']) or ($this->System->Modules['User']->User['Role'] >= USER_ROLE_ADMINISTRATOR))
     261        {
    268262          $Form = new Form('EditServer');
    269           $Form->LoadValuesFromDatabase($Server['Id']);
     263          $Form->LoadValuesFromDatabase($_GET['Id']);
     264          $Form->Values['ServerId'] = $_GET['Id'];
    270265          $Form->OnSubmit = '?Action=ServerSave';
    271266          $Output .= $Form->ShowEditForm();
    272         } else $Output .= USER_BAD_ROLE;
     267        } else $this->SystemMessage('Nastavení serveru', 'Nemáte oprávnění');
    273268      } else
    274269      if($_GET['Action'] == 'ServerSave')
    275270      {
    276         if($this->System->Modules['User']->User['Role'] >= USER_ROLE_USER)
    277         {
    278           $DbResult = $this->Database->query('SELECT Id FROM Server WHERE User='.$this->System->Modules['User']->User['Id']);
    279           $Server = $DbResult->fetch_assoc();
    280           $UserOptions = new Form('EditServer', array());
    281           $UserOptions->LoadValuesFromForm();
     271        $Server = new Server($this->Database, $_POST['ServerId']);
     272        if(($this->System->Modules['User']->User['Id'] == $Server->Server['User']) or ($this->System->Modules['User']->User['Role'] >= USER_ROLE_ADMINISTRATOR))
     273        {
     274          $Form = new Form('EditServer', array());
     275          $Form->LoadValuesFromForm();
     276          $ServerId = $_POST['ServerId'];
     277          unset($Form->Values['ServerId']);
    282278          $Output .= $this->SystemMessage('Upravit server', 'Nastavení serveru uloženo.');
    283           $UserOptions->SaveValuesToDatabase($Server['Id']);
    284           $UserOptions->OnSubmit = '?Action=ServerSave';
     279          $Form->SaveValuesToDatabase($_POST['ServerId']);
     280          $Form->OnSubmit = '?Action=ServerSave';
    285281       
    286           $Server = new Server($this->Database, $Server['Id']);
     282          $Server = new Server($this->Database, $_POST['ServerId']);
    287283          $Server->SaveConfiguration();
    288 
    289           $Output .= $UserOptions->ShowEditForm();
    290         } else $Output .= USER_BAD_ROLE;
     284          $Form->Values['ServerId'] = $ServerId;
     285          $Output .= $Form->ShowEditForm();
     286        } else $this->SystemMessage('Nastavení serveru', 'Nemáte oprávnění');
    291287      } else
    292288      if($_GET['Action'] == 'ServerStart')
     
    294290        if($this->System->Modules['User']->User['Role'] >= USER_ROLE_USER)
    295291        {
    296           $DbResult = $this->Database->query('SELECT Id FROM Server WHERE User='.$this->System->Modules['User']->User['Id']);
    297           $Server = $DbResult->fetch_assoc();
    298           $Server = new Server($this->Database, $Server['Id']);
    299           $Output .= $this->SystemMessage('Spuštění serveru', $Server->Start());
     292          $Server = new Server($this->Database, $_GET['Id']);
     293          if(($this->System->Modules['User']->User['Id'] == $Server->Server['User']) or ($this->System->Modules['User']->User['Role'] >= USER_ROLE_ADMINISTRATOR))
     294          {
     295            $Output .= $this->SystemMessage('Spuštění serveru', $Server->Start());
     296          } else $this->SystemMessage('Spuštění serveru', 'Nemáte oprávnění');
    300297        } else $Output .= USER_BAD_ROLE;
    301298      } else
     
    304301        if($this->System->Modules['User']->User['Role'] >= USER_ROLE_USER)
    305302        {
    306           $DbResult = $this->Database->query('SELECT Id FROM Server WHERE User='.$this->System->Modules['User']->User['Id']);
    307           $Server = $DbResult->fetch_assoc();
    308           $Server = new Server($this->Database, $Server['Id']);
    309           $Output .= $this->SystemMessage('Zastavení serveru', $Server->Stop());
     303          $Server = new Server($this->Database, $_GET['Id']);
     304          if(($this->System->Modules['User']->User['Id'] == $Server->Server['User']) or ($this->System->Modules['User']->User['Role'] >= USER_ROLE_ADMINISTRATOR))
     305          {
     306            $Output .= $this->SystemMessage('Zastavení serveru', $Server->Stop());
     307          } else $this->SystemMessage('Zastavení serveru', 'Nemáte oprávnění');
    310308        } else $Output .= USER_BAD_ROLE;
    311309      } else
     
    314312        if($this->System->Modules['User']->User['Role'] >= USER_ROLE_USER)
    315313        {
    316           $DbResult = $this->Database->query('SELECT Id FROM Server WHERE User='.$this->System->Modules['User']->User['Id']);
    317           $Server = $DbResult->fetch_assoc();
    318           $Server = new Server($this->Database, $Server['Id']);
    319           $Server->ImportDatabase(true);
    320           $Output .= $this->SystemMessage('Import čisté databáze', 'Úloha zařazena do fronty');
     314          $Server = new Server($this->Database, $_GET['Id']);
     315          if(($this->System->Modules['User']->User['Id'] == $Server->Server['User']) or ($this->System->Modules['User']->User['Role'] >= USER_ROLE_ADMINISTRATOR))
     316          {
     317            $Server->ImportDatabase(true);
     318            $Output .= $this->SystemMessage('Import čisté databáze', 'Úloha zařazena do fronty');
     319          } else $this->SystemMessage('Zastavení serveru', 'Nemáte oprávnění');
    321320        } else $Output .= USER_BAD_ROLE;
    322321      } else
  • trunk/www/mangos_debug.php

    r18 r21  
    3333      $Output .= '<br />';
    3434    }
    35     $Output .= PagesList('?Page=', $Page, $Total, $this->ItemPerPage, 2);
     35    $Output .= PageList('Page', $Page, $Total, $this->ItemPerPage, 2);
    3636
    3737    $Output .= '</td><td valign="top" width="90%">';
  • trunk/www/page.php

    r20 r21  
    3232      if($DbRow[0] > 0)
    3333      {
    34         $Output .= ' <a href="?Action=ServerShow">Vlastní server</a>';
    35         $Output .= ' <a href="?Action=ServerDebug">Ladící záznamy</a>';
     34        $DbResult = $this->Database->query('SELECT Id FROM Server WHERE User='.$this->System->Modules['User']->User['Id']);
     35        $Server = $DbResult->fetch_assoc();
     36        $Output .= ' <a href="?Action=ServerShow&amp;Id='.$Server['Id'].'">Můj server</a>';
     37        $Output .= ' <a href="?Action=ServerDebug&amp;Id='.$Server['Id'].'">Ladící záznamy</a>';
    3638      } else $Output .= ' <a href="?Action=ServerAdd">Vytvořit vlastní server</a>';
    3739      $Output .= ' <a href="'.$this->System->Config['Web']['RootFolder'].'/?Action=UserOptions">Nastavení účtu</a>';
  • trunk/www/style.css

    r6 r21  
    7474  border-top-color: gray;
    7575  border-width: 1px 0 0 0;
    76   margin-top: 7px;
     76  margin-top: 20px;
    7777  padding-top: 2px;
    7878  font-size: 10px;
     
    330330  text-align: center;
    331331}
     332
     333.Pager
     334{
     335  text-align: center;
     336}
  • 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.