Changeset 8 for Common/Common.php


Ignore:
Timestamp:
Jan 22, 2016, 5:13:22 PM (9 years ago)
Author:
chronos
Message:
  • Added: Setup and Update class for basic web application setup and configuration.
File:
1 edited

Legend:

Unmodified
Added
Removed
  • Common/Common.php

    r6 r8  
    1616include_once(dirname(__FILE__).'/Page.php');
    1717include_once(dirname(__FILE__).'/Locale.php');
     18include_once(dirname(__FILE__).'/Update.php');
     19include_once(dirname(__FILE__).'/Setup.php');
     20include_once(dirname(__FILE__).'/Table.php');
    1821
    1922class PackageCommon
     
    2124  var $Name;
    2225  var $Version;
     26  var $ReleaseDate;
    2327  var $License;
    2428  var $Creator;
     
    2832  {
    2933    $this->Name = 'Common';
    30     $this->Version = '1.1';
     34    $this->Version = '1.2';
     35    $this->ReleaseDate = strtotime('2016-01-22');
    3136    $this->Creator = 'Chronos';
    3237    $this->License = 'GNU/GPL';
     
    3439  }
    3540}
     41
     42class Paging
     43{
     44  var $TotalCount;
     45  var $ItemPerPage;
     46  var $Around;
     47  var $SQLLimit;
     48  var $Page;
     49
     50  function __construct()
     51  {
     52    global $System;
     53
     54    $this->ItemPerPage = $System->Config['Web']['ItemsPerPage'];
     55    $this->Around = $System->Config['Web']['VisiblePagingItems'];
     56  }
     57
     58  function Show()
     59  {
     60    $QueryItems = GetQueryStringArray($_SERVER['QUERY_STRING']);
     61
     62    $Result = '';
     63    if(array_key_exists('all', $QueryItems))
     64    {
     65      $PageCount = 1;
     66      $ItemPerPage = $this->TotalCount;
     67    } else
     68    {
     69      $ItemPerPage = $this->ItemPerPage;
     70      $Around = round($this->Around / 2);
     71      $PageCount = floor($this->TotalCount / $ItemPerPage) + 1;
     72    }
     73
     74    if(!array_key_exists('Page', $_SESSION)) $_SESSION['Page'] = 0;
     75    if(array_key_exists('page', $_GET)) $_SESSION['Page'] = $_GET['page'] * 1;
     76    if($_SESSION['Page'] < 0) $_SESSION['Page'] = 0;
     77    if($_SESSION['Page'] >= $PageCount) $_SESSION['Page'] = $PageCount - 1;
     78    $CurrentPage = $_SESSION['Page'];
     79
     80    $Result .= 'Počet položek: <strong>'.$this->TotalCount.'</strong> &nbsp; Stránky: ';
     81
     82    $Result = '';
     83    if($PageCount > 1)
     84    {
     85      if($CurrentPage > 0)
     86      {
     87        $QueryItems['page'] = 0;
     88        $Result.= '<a href="?'.SetQueryStringArray($QueryItems).'">&lt;&lt;</a> ';
     89        $QueryItems['page'] = ($CurrentPage - 1);
     90        $Result.= '<a href="?'.SetQueryStringArray($QueryItems).'">&lt;</a> ';
     91      }
     92      $PagesMax = $PageCount - 1;
     93      $PagesMin = 0;
     94      if($PagesMax > ($CurrentPage + $Around)) $PagesMax = $CurrentPage + $Around;
     95      if($PagesMin < ($CurrentPage - $Around))
     96      {
     97        $Result.= ' ... ';
     98        $PagesMin = $CurrentPage - $Around;
     99      }
     100      for($i = $PagesMin; $i <= $PagesMax; $i++)
     101      {
     102        if($i == $CurrentPage) $Result.= '<strong>'.($i + 1).'</strong> ';
     103        else {
     104         $QueryItems['page'] = $i;
     105         $Result .= '<a href="?'.SetQueryStringArray($QueryItems).'">'.($i + 1).'</a> ';
     106        }
     107      }
     108      if($PagesMax < ($PageCount - 1)) $Result .= ' ... ';
     109      if($CurrentPage < ($PageCount - 1))
     110      {
     111        $QueryItems['page'] = ($CurrentPage + 1);
     112        $Result.= '<a href="?'.SetQueryStringArray($QueryItems).'">&gt;</a> ';
     113        $QueryItems['page'] = ($PageCount - 1);
     114        $Result.= '<a href="?'.SetQueryStringArray($QueryItems).'">&gt;&gt;</a>';
     115      }
     116    }
     117    $QueryItems['all'] = '1';
     118    if($PageCount > 1) $Result.= ' <a href="?'.SetQueryStringArray($QueryItems).'">Vše</a>';
     119
     120    $Result = '<div style="text-align: center">'.$Result.'</div>';
     121    $this->SQLLimit = ' LIMIT '.$CurrentPage * $ItemPerPage.', '.$ItemPerPage;
     122    $this->Page = $CurrentPage;
     123    return($Result);
     124  }
     125}
Note: See TracChangeset for help on using the changeset viewer.