Changeset 15 for trunk/www/table.php


Ignore:
Timestamp:
Jun 12, 2009, 8:09:48 AM (15 years ago)
Author:
george
Message:
  • Přidáno: Nastavení parametrů gcc překladu emulátoru přes konfigurační soubor.
  • Přidáno: Podpora řazení dle sloupců v tabulkách.
  • Upraveno: Nezjišťovat informace o stavu serverů z tabulek mangosu, ale ukládat stavové informace serverů přímo do tabulky Server. Nutno provádět aktualizaci tabulky.
File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/www/table.php

    r11 r15  
    88  var $Header;
    99  var $OnRow;
     10  var $QueryParameters;
    1011 
    1112  function __construct($ClassName)
     
    1415
    1516    $this->Definition = &$FormClasses[$ClassName];   
     17    $this->QueryParameters = array();
    1618  }
    1719 
    1820  function Show()
    1921  {
     22    $Header = array();
     23    if(!array_key_exists('Order', $_GET)) $_GET['Order'] = 0;
     24    if(!array_key_exists('Column', $_GET)) $_GET['Column'] = 0;
     25    $QueryParts = explode('&', $_SERVER['QUERY_STRING']);
     26    foreach($QueryParts as $Part)
     27    {
     28      $Part2 = explode('=', $Part);
     29      $QueryItems[$Part2[0]] = $Part2[1];
     30    }
     31    $QueryItems['Order'] = $_GET['Order'];
     32    foreach($this->Definition['Items'] as $Index => $Item)
     33    {
     34      $QueryItems['Column'] = $Index;
     35      if($_GET['Column'] == $Index) $QueryItems['Order'] = 1 - $_GET['Order'];
     36        else $QueryItems['Order'] = $_GET['Order'];
     37      $QueryParts = array();
     38      foreach($QueryItems as $Index2 => $Item2)
     39      {
     40        $QueryParts[] = $Index2.'='.$Item2;
     41      }
     42      $Header[] = '<a href="?'.implode('&amp;', $QueryParts).'">'.$Item['Caption'].'</a>';
     43    }
    2044    $Table = array(
    21       'Header' => $this->Header,
     45      'Header' => $Header,
    2246      'Rows' => $this->Values,
    2347    );
     
    2852  function LoadValuesFromDatabase($Database)
    2953  {   
     54    $OrderType = array('ASC', 'DESC');
     55    if(!array_key_exists('Order', $_GET)) $_GET['Order'] = 0;
     56    else if($_GET['Order'] == 'Asc') $_GET['Order'] = 1;
     57    if(!array_key_exists('Column', $_GET))
     58    {
     59      $Keys = array_keys($this->Definition['Items']);
     60      $_GET['Column'] = $Keys[0];
     61    }
    3062    $this->Header = array();
    3163    foreach($this->Definition['Items'] as $Index => $Item)
    3264    {
    3365      $this->Header[] = $Item['Caption'];
    34 
    3566    }
    3667    $this->Values = array();
    37     $DbResult = $Database->query('SELECT * FROM '.$this->Definition['Table']);
     68    $Table = $this->Definition['Table'];
     69    foreach($this->QueryParameters as $Index => $Item)
     70      $Table = str_replace('%'.$Index, $Item, $Table);
     71    $DbResult = $Database->query('SELECT * FROM '.$Table.' ORDER BY T.'.$_GET['Column'].' '.$OrderType[$_GET['Order']]);
    3872    while($DbRow = $DbResult->fetch_assoc())
    3973    {
Note: See TracChangeset for help on using the changeset viewer.