Ignore:
Timestamp:
Jan 19, 2014, 9:36:28 PM (11 years ago)
Author:
chronos
Message:
  • Upraveno: Jednotka UTF8 přepracována na třídu. Převodní tabulka se takto bude inicializovat pouze pokud bude skutečně vytvořena instance třídy.
  • Přidáno: V jednotce Table implementována tabulka jako obecná třída.
  • Upraveno: Stránkování ve výpisech implementováno jako samostatná třída.
  • Upraveno: Titulek stránky s názvem stránky není třeba zobrazovat jelikož název stránky se zobrazuje v titulku prohlížeče.
File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/Common/Global.php

    r627 r635  
    1313include_once(dirname(__FILE__).'/Mail.php');
    1414include_once(dirname(__FILE__).'/Page.php');
     15include_once(dirname(__FILE__).'/Table.php');
    1516include_once(dirname(__FILE__).'/Form/Form.php');
    1617include_once(dirname(__FILE__).'/Config.php');
     
    136137}
    137138
     139class Pageing
     140{
     141        var $TotalCount;
     142        var $ItemPerPage;
     143        var $Around;
     144       
     145        function __construct()
     146        {
     147                global $System;
     148               
     149                $this->ItemPerPage = 5; //$System->Config['Web']['ItemsPerPage'];
     150                $this->Around = $System->Config['Web']['VisiblePagingItems'];
     151        }
     152       
     153  function Show()
     154  {
     155    $QueryItems = GetQueryStringArray($_SERVER['QUERY_STRING']);
     156 
     157    $Result = '';
     158    if(array_key_exists('all', $QueryItems))
     159    {
     160      $PageCount = 1;
     161      $ItemPerPage = $this->TotalCount;   
     162    } else
     163    {
     164      $ItemPerPage = $this->ItemPerPage;
     165      $Around = round($this->Around / 2);
     166      $PageCount = floor($this->TotalCount / $ItemPerPage) + 1;
     167    }
     168 
     169    if(!array_key_exists('Page', $_SESSION)) $_SESSION['Page'] = 0;
     170    if(array_key_exists('page', $_GET)) $_SESSION['Page'] = $_GET['page'] * 1;
     171    if($_SESSION['Page'] < 0) $_SESSION['Page'] = 0;
     172    if($_SESSION['Page'] >= $PageCount) $_SESSION['Page'] = $PageCount - 1;
     173    $CurrentPage = $_SESSION['Page']; 
     174       
     175    $Result .= 'Počet položek: <strong>'.$this->TotalCount.'</strong> &nbsp; Stránky: ';
     176 
     177    $Result = '';
     178    if($PageCount > 1)
     179    {
     180      if($CurrentPage > 0)
     181      {
     182        $QueryItems['page'] = 0;     
     183        $Result.= '<a href="?'.SetQueryStringArray($QueryItems).'">&lt;&lt;</a> ';
     184        $QueryItems['page'] = ($CurrentPage - 1);
     185        $Result.= '<a href="?'.SetQueryStringArray($QueryItems).'">&lt;</a> ';
     186      }
     187      $PagesMax = $PageCount - 1;
     188      $PagesMin = 0;
     189      if($PagesMax > ($CurrentPage + $Around)) $PagesMax = $CurrentPage + $Around;
     190      if($PagesMin < ($CurrentPage - $Around))
     191      {
     192        $Result.= ' ... ';
     193        $PagesMin = $CurrentPage - $Around;
     194      }
     195      for($i = $PagesMin; $i <= $PagesMax; $i++)
     196      {
     197        if($i == $CurrentPage) $Result.= '<strong>'.($i + 1).'</strong> ';
     198        else {
     199         $QueryItems['page'] = $i;
     200         $Result .= '<a href="?'.SetQueryStringArray($QueryItems).'">'.($i + 1).'</a> ';
     201        }
     202      }
     203      if($PagesMax < ($PageCount - 1)) $Result .= ' ... ';
     204      if($CurrentPage < ($PageCount - 1))
     205      {
     206        $QueryItems['page'] = ($CurrentPage + 1);
     207        $Result.= '<a href="?'.SetQueryStringArray($QueryItems).'">&gt;</a> ';
     208        $QueryItems['page'] = ($PageCount - 1);
     209        $Result.= '<a href="?'.SetQueryStringArray($QueryItems).'">&gt;&gt;</a>';
     210      }
     211    }
     212    $QueryItems['all'] = '1';
     213    if($PageCount > 1) $Result.= ' <a href="?'.SetQueryStringArray($QueryItems).'">Vše</a>';
     214 
     215    $Result = '<div style="text-align: center">'.$Result.'</div>';
     216    $this->SQLLimit = ' LIMIT '.$CurrentPage * $ItemPerPage.', '.$ItemPerPage;
     217    $this->Page = $CurrentPage;
     218    return($Result);
     219  }
     220}
     221
    138222function GetPageList($TotalCount)
    139223{
Note: See TracChangeset for help on using the changeset viewer.