class FromToEnd
{
var $fromItem;
var $endItem;
var $startPage;
var $endPage;
}
function GetRange($num_of_rows, $selectPage, $SCOPE )
{
$range = new FromToEnd;
$iStartEx;
$countPage;
define ("VISIBLE_COUNT", 10);
/*get number of pages*/
if (fmod($num_of_rows, $SCOPE) != 0)
{
$countPage = intval($num_of_rows / $SCOPE) + 1;
}
else {
$countPage = $num_of_rows / $SCOPE;
}
/*calc first page*/
$range->startPage = $selectPage - (VISIBLE_COUNT / 2);
if ($range->startPage < 1)
$range->startPage = 1;
/*calc last visible page link*/
$range->endPage = $range->startPage + VISIBLE_COUNT - 1;
if ($range->endPage > $countPage)
$range->endPage = $countPage;
/*modify start page*/
if ($range->endPage == $countPage)
{
$iStartEx = $range->endPage - VISIBLE_COUNT + 1;
if ($iStartEx < $range->startPage)
{
if ($iStartEx < 1)
$range->startPage = 1;
else
$range->startPage = $iStartEx;
}
}
/*calc item scope*/
if ($selectPage > 1)
{
$range->fromItem= $selectPage * $SCOPE - $SCOPE;
$range->endItem = $range->fromItem + $SCOPE;
if ($range->endItem > $num_of_rows)
$range->endItem -= ($range->endItem - $num_of_rows);
}
else
{
$range->fromItem = 0;
$range->endItem = $SCOPE;
if ($range->endItem > $num_of_rows)
$range->endItem -= ($range->endItem - $num_of_rows);
}
return $range;
}// end function GetRange
function GridMenu($num_of_rows, $Pages, $appPath, $range, $SCOPE)
{
$strCreateTable;
$num_of_pages;
$intPage;
// set pages
if ($Pages < 1)
$Pages = 1;
// create navigate table
if ($num_of_rows == 0)
{
$strCreateTable = "<span align='center'>no items</span>";
}
elseif ($num_of_rows > $SCOPE)
{
if (fmod($num_of_rows,$SCOPE) != 0)
{
$num_of_pages = int($num_of_rows / $SCOPE) + 1;
$strCreateTable = "<table class='tablenav' width='100%'>";
$strCreateTable = $strCreateTable."<tr><td align='left'><b>Number of pages:</b> $num_of_pages </td>";
$strCreateTable = $strCreateTable."<td align='center'><b>Items per page:</b> ".($range->endItem - $range->fromItem)."</td>";
$strCreateTable = $strCreateTable."<td align='right'><b>Current page:</b> $Pages </td></tr>";
if ($Pages <= 1)
{
$strCreateTable = $strCreateTable."<tr><td>&</td><td align='center'><b>Page:</b>";
}
else
{
$strCreateTable = $strCreateTable."<tr><td align='left' valign='bottom'><a href='$appPath?page=".($Pages - 1)."'><<< back</a></td>";
$strCreateTable = $strCreateTable."<td align='center'><b>Page:</b>";
}
// scope
for ($intPage = $range->startPage; $intPage <= $range->endPage; $intPage++)
{
$strCreateTable = $strCreateTable."<a href='$appPath?page=$intPage'><u>$intPage</u></a>&&";
}
if (($Pages * $SCOPE) >= $num_of_rows)
{
$strCreateTable = $strCreateTable."</td><td>&</td></tr></table>";
}
else
{
$strCreateTable = $strCreateTable."</td><td align='right' valign='bottom'><a href='$appPath?page=".($Pages + 1)."'>next >>></a></td></tr></table>";
}
}
else
{
$num_of_pages = $num_of_rows / $SCOPE;
$strCreateTable = "<table class='tablenav' width='100%'>";
$strCreateTable = $strCreateTable."<tr><td><b align='left'>Number of pages:</b> $num_of_pages </td>";
$strCreateTable = $strCreateTable."<td align='center'><b>Items per page:</b>".($range->endItem - $range->fromItem)."</td>";
$strCreateTable = $strCreateTable."<td align='right'><b>Current page:</b> $Pages </td></tr>";
if ($Pages <= 1)
{
$strCreateTable = $strCreateTable."<tr><td>&</td><td align='center'><b>Page:</b>";
}
else
{
$strCreateTable = $strCreateTable."<tr><td align='left' valign='bottom'><a href='$appPath?page=".($Pages - 1)."'><<< back</a></td>";
$strCreateTable = $strCreateTable."<td align='center'><b>Page:</b>";
}
// scope
for ($intPage = $range->startPage; $intPage <= $range->endPage; $intPage++)
{
$strCreateTable = $strCreateTable."<a href='$appPath?page=$intPage'><u>$intPage</u></a>&&";
}
if (($Pages * $SCOPE) >= $num_of_rows)
{
$strCreateTable = $strCreateTable."</td><td>&</td></tr></table>";
}
else
{
$strCreateTable = $strCreateTable."</td><td align='right' valign='bottom'><a href='$appPath?page=".($Pages + 1)."'>next >>></a></td></tr></table>";
}
}
}
else
{
$num_of_pages = 1;
$strCreateTable = "<table class='tablenav' width='100%'>";
$strCreateTable = $strCreateTable."<tr><td><b align='left'>Number of pages:</b> $num_of_pages </td>";
$strCreateTable = $strCreateTable."<td align='center'><b>Items per page:</b> ".($range->endItem - $range->fromItem)."</td>";
$strCreateTable = $strCreateTable."<td align='right'><b>Current page:</b> $Pages </td></tr></table>";
}
return $strCreateTable;
}// end function GetMenu