Login   Register  
PHP Classes
elePHPant
Icontem

File: autoscrollform.php

Recommend this page to a friend!
Stumble It! Stumble It! Bookmark in del.icio.us Bookmark in del.icio.us
  Classes of Stanislav Okhvat  >  PageNavigator  >  autoscrollform.php  >  Download  
File: autoscrollform.php
Role: ???
Content type: text/plain
Description: An advanced example of the AutoScroll variation which shows how to render pages as form buttons
Class: PageNavigator
Author: By
Last change:
Date: 12 years ago
Size: 2,991 bytes
 

Contents

Class file image Download
<?php
class PageNavigator_AutoScroll_FormButtons extends PageNavigator_AutoScroll
{
    /**
    * Form method.
    *
    * @var      string
    * @access   private
    */
    var $method = "get";

	function setMethod($method)
	{
		$this->method = ($method == 'post' ? 'post' : 'get');
	}
	function getMethod()
	{
		return ($this->method == 'post' ? 'post' : 'get');
	}

	function PageNavigator_AutoScroll_FormButtons($current_page=0, $records_per_page=15, $total_records=0, $min_pages_per_set=10, $max_pages_per_set=20, $show_side_pages=-1, $query_vars='')
	{
		PageNavigator_AutoScroll::PageNavigator_AutoScroll($current_page, $records_per_page, $total_records, $min_pages_per_set, $max_pages_per_set, $show_side_pages, $query_vars);
	}
	function formatActivePage($pagenum)
	{
		return '<td width="30" align="center"><strong>'.$pagenum.'</strong></td>'."\n";
	}
	function formatPage($pagenum)
	{
		return '<td width="30" align="center"><input type="submit" '.$this->prepareQueryVars($pagenum).' class="buttons"></td>'."\n";

	}
	function formatMovePrevious($pagenum)
	{
		return $this->empty_cell;
	}
	function formatMoveNext($pagenum)
	{
		return $this->empty_cell;
	}
	function formatHeader()
	{
		global $PHP_SELF;
		return '<form method="get" action="'.$PHP_SELF.'"><table bgcolor="#FFFFFF" border="0" cellpadding="2" cellspacing="0" bgcolor="#000000">
		<tr valign="middle">';
	}
	function formatFooter()
	{
		// get all variables from $HTTP_GET_VARS or $HTTP_POST_VARS
		$query_var_container = 'HTTP_'.strtoupper($this->getMethod()).'_VARS';
		global $$query_var_container;
		$query_vars = $$query_var_container;
		
		// strip control variables from query string
		foreach ($this->query_vars as $v)
		{
			unset($query_vars[$v]);
		}
		
		// get all variables into hidden form elements
		$hidden = '';
		foreach ($query_vars as $k=>$v)
		{
			$hidden .= "<input type=\"hidden\" name=\"$k\" value=\"".addslashes($v)."\">\n";
		}
		if (isset($this->query_vars['from']))
		{
			$from = ($pagenum * $this->records_per_page) - $this->records_per_page + 1;

			$hidden .= "<input type=\"hidden\" name=\"".$this->query_vars['from']."\" value=\"$from\">\n";
			
			if (isset($this->query_vars['to']))
			{
				$hidden .= "<input type=\"hidden\" name=\"".
							$this->query_vars['to'].
							"\" value=\"".
							($pagenum * $this->records_per_page)."\">\n";
			}
			elseif (isset($this->query_vars['count']))
			{
				$hidden .= "<input type=\"hidden\" name=\"".
							$this->query_vars['count'].
							"\" value=\"".
							$this->records_per_page."\">\n";
			}
		}
		return $hidden."</form></tr>\n</table>\n";
	}

    function prepareQueryVars($pagenum)
    {
        $ret = '';

		if (!isset($this->query_vars['page'])) $this->query_vars['page'] = 'page';
		$ret = 'name="'.$this->query_vars['page'].'" value="'.$pagenum.'"';

		return $ret;

    } // end func prepareQueryVars
}
?>