<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DZone Snippets: pagination code</title>
    <link>http://snippets.dzone.com/posts</link>
    <pubDate>Wed, 08 Oct 2008 07:51:05 GMT</pubDate>
    <description>DZone Snippets: pagination code</description>
    <item>
      <title>PHP: Pagination</title>
      <link>http://snippets.dzone.com/posts/show/5214</link>
      <description>// Another example for creating pagination.&lt;br /&gt;// Usage:&lt;br /&gt;// print get_page_nav($page_current, $page_total);&lt;br /&gt;&lt;br /&gt;&lt;code&gt;&lt;br /&gt;	/**&lt;br /&gt;	 * Creates links to pages.&lt;br /&gt;	 * &lt;br /&gt;	 * @param	integer	$page_current The current page number.&lt;br /&gt;	 * @param	integer	$page_total The total number of pages.&lt;br /&gt;	 * @return 	string	HTML-code.&lt;br /&gt;	 */&lt;br /&gt;	function get_page_nav($page_current, $page_total)&lt;br /&gt;	{&lt;br /&gt;		$ar_pages = array();&lt;br /&gt;		/* HTML-tag to select the current page */&lt;br /&gt;		$str_tag = 'strong';&lt;br /&gt;		/* Language strings */&lt;br /&gt;		$str_page_prev = '&#1055;&#1088;&#1077;&#1076;&#1099;&#1076;&#1091;&#1097;&#1072;&#1103;';&lt;br /&gt;		$str_page_next = '&#1057;&#1083;&#1077;&#1076;&#1091;&#1102;&#1097;&#1072;&#1103;';&lt;br /&gt;		/* String placed between the first and last page numbers */&lt;br /&gt;		$str_more = '..';&lt;br /&gt;		/* String to separate page numbers */&lt;br /&gt;		$str_d = $this-&gt;sys['char_split_pages'];&lt;br /&gt;		/* URL for paging */&lt;br /&gt;		$str_url = 'index.php?book='.$this-&gt;gv['book'].'&amp;amp;page=%d';&lt;br /&gt;		&lt;br /&gt;		/* The number of links to pages displayed before and after the current page. 1 2 (3) 1 2 */&lt;br /&gt;		$int_max = 2;&lt;br /&gt;		$cnt_new = $page_current;&lt;br /&gt;		$cnt_max = $page_current + $int_max;&lt;br /&gt;		$cnt_min = $page_current - $int_max;&lt;br /&gt;		/* Fix the maximum number of pages */&lt;br /&gt;		if ($cnt_max &gt; $page_total)&lt;br /&gt;		{&lt;br /&gt;			$cnt_max = $page_total;&lt;br /&gt;		}&lt;br /&gt;		/* First page */&lt;br /&gt;		if ($cnt_min &gt; 1)&lt;br /&gt;		{&lt;br /&gt;			$ar_pages[] = '&lt;a href="'.sprintf($str_url, 1).'"&gt;1&lt;/a&gt;';&lt;br /&gt;			$ar_pages[] = $str_more;&lt;br /&gt;		}&lt;br /&gt;		/* For each page number */&lt;br /&gt;		for ($i = 1; $i &lt;= $page_total; $i++)&lt;br /&gt;		{&lt;br /&gt;			if ( ($i &gt;= $cnt_min &amp;&amp; $i &lt;= $cnt_max) )&lt;br /&gt;			{&lt;br /&gt;				if ($i == $page_current)&lt;br /&gt;				{&lt;br /&gt;					$ar_pages[] = '&lt;a href="'.sprintf($str_url, $i).'"&gt;&lt;'.$str_tag.'&gt;'.$i.'&lt;/'.$str_tag.'&gt;&lt;/a&gt;';&lt;br /&gt;				}&lt;br /&gt;				else&lt;br /&gt;				{&lt;br /&gt;					$ar_pages[] = '&lt;a href="'.sprintf($str_url, $i).'"&gt;'.$i.'&lt;/a&gt;';&lt;br /&gt;				}&lt;br /&gt;			}&lt;br /&gt;			$cnt_new++;&lt;br /&gt;		}&lt;br /&gt;		/* The last page */&lt;br /&gt;		if ($cnt_max &gt; 1 &amp;&amp; ($page_current + $int_max) &lt; $page_total)&lt;br /&gt;		{&lt;br /&gt;			$ar_pages[] = $str_more;&lt;br /&gt;			$ar_pages[] = '&lt;a href="'.sprintf($str_url, $page_total).'"&gt;'.$page_total.'&lt;/a&gt;';&lt;br /&gt;		}&lt;br /&gt;		/* Links to Next/Prev pages */&lt;br /&gt;		if ($page_current &gt; 1)&lt;br /&gt;		{&lt;br /&gt;			$ar_pages[] = '&lt;a href="'.sprintf($str_url, ($page_current - 1) ).'"&gt;'.$str_page_prev.'&lt;/a&gt;';&lt;br /&gt;		}&lt;br /&gt;		if ($page_current &lt; $page_total)&lt;br /&gt;		{&lt;br /&gt;			$ar_pages[] = '&lt;a href="'.sprintf($str_url, ($page_current + 1) ).'"&gt;'.$str_page_next.'&lt;/a&gt;';&lt;br /&gt;		}&lt;br /&gt;		return implode($str_d, $ar_pages);&lt;br /&gt;	}&lt;br /&gt;&lt;/code&gt;</description>
      <pubDate>Wed, 12 Mar 2008 01:11:08 GMT</pubDate>
      <guid>http://snippets.dzone.com/posts/show/5214</guid>
      <author>Dmitry-Sh (Dmitry Shilnikov)</author>
    </item>
  </channel>
</rss>
