<?
// simple use, easy integration
// Author: SD
// Version: 1.31
class arromat
{
var $rows = 5;
var $pages= array();
var $actual_page = 1;
var $pages_per_site = 20;
var $start_row = 0;
var $data = array();
function arromat($data,$page)
{
$this->data= (array)$data;
if (!empty($page)) $this->actual_page=$page;
}
function getNumberPages()
{
//thanks to alex for bugfixing
if ($this->rows==0)
$this->number_pages=1;
else
$this->number_pages=ceil(count($this->data)/$this->rows);
return $this->number_pages;
}
function setRows($anzahl)
{
$this->rows=$anzahl;
}
function getPages()
{
$seiten=array();
if ($this->actual_page+$this->pages_per_site<$this->getNumberPages())
$end=$this->actual_page+(int)($this->pages_per_site/2);
else
$end=$this->getNumberPages();
$start=$end-$this->pages_per_site;
if ($start<0)
$start=0;
for ($i=$start;$i<$end;$i++)
$seiten[$i]=$i+1;
return $seiten;
}
function getActualPage()
{
return $this->actual_page;
}
function getNextPage()
{
if ($this->actual_page < $this->getNumberPages() && $this->getNumberPages()>1)
return $this->actual_page+1;
else
return false;
}
function getPrevPage()
{
if ($this->actual_page > 1)
return $this->actual_page-1;
else
return false;
}
function getTotalItems()
{
return count($this->data);
}
function getCurrentItemsStr($separator='-')
{
$start = ($this->rows*($this->actual_page-1));
$tmp=$start;
if ($start==0)
$start=1;
return $start.$separator.($tmp+count($this->getPageData()));
}
function getPageData()
{
return array_slice ($this->data, $this->getStartRow(),$this->rows);
}
// a little sort function
function mksort($ky,$sort_method='asc')
{
if (!$ky) return false;
$arr_tmp = array();
$arr_tmp1 = array();
foreach ($this->data as $key=>$val)
{
if (array_key_exists($ky,$val))
{
$arr_tmp[]=$val[$ky];
} else return false;
}
switch ($sort_method)
{
case 'desc':
natcasesort($arr_tmp);
arsort($arr_tmp);
break;
default: natcasesort($arr_tmp);
break;
}
foreach($arr_tmp as $key => $val)
{
$this->data[$key][$ky]=$arr_tmp[$key];
$arr_tmp1[]=$this->data[$key];
}
$this->data=$arr_tmp1;
return true;
}
//PRIVATE
function getStartRow()
{
$this->start_row=($this->rows*$this->actual_page)-$this->rows;
return $this->start_row;
}
}
|