cvs: pear /Pager package.xml /Pager/examples Pager_Wrapper.php

From: Date: Sat, 05 Feb 2005 10:32:56 +0000
Subject: cvs: pear /Pager package.xml /Pager/examples Pager_Wrapper.php
Groups: php.pear.cvs 
Request: Send a blank email to pear-cvs+get-29144@lists.php.net to get a copy of this message
quipo Sat Feb 5 05:32:56 2005 EDT Modified files: /pear/Pager/examples Pager_Wrapper.php /pear/Pager package.xml Log: new Pager wrapper for the PHPEclipse library http://cvs.php.net/diff.php/pear/Pager/examples/Pager_Wrapper.php?r1=1.6&r2=1.7&ty=u Index: pear/Pager/examples/Pager_Wrapper.php diff -u pear/Pager/examples/Pager_Wrapper.php:1.6 pear/Pager/examples/Pager_Wrapper.php:1.7 --- pear/Pager/examples/Pager_Wrapper.php:1.6 Tue Nov 23 08:55:53 2004 +++ pear/Pager/examples/Pager_Wrapper.php Sat Feb 5 05:32:56 2005 @@ -253,4 +253,64 @@ } return $page; } + +/** + * @param object PHP Eclipse instance + * @param string db query + * @param array PEAR::Pager options + * @param boolean Disable pagination (get all results) + * @return array with links and paged data + * @author Matte Edens <matte@arubanetworks.com> + * @see http://sourceforge.net/projects/eclipselib/ + */ +function Pager_Wrapper_Eclipse(&$db, $query, $pager_options = array(), $disabled = false) +{ + if (!$disabled) { + require_once(ECLIPSE_ROOT . 'PagedQuery.php'); + $query =& new PagedQuery($db->query($query), $pager_options['perPage']); + $totalrows = $query->getRowCount(); + $numpages = $query->getPageCount(); + $whichpage = isset($_GET[$pager_options['urlVar']]) ? (int)$_GET[$pager_options['urlVar']] - 1 : 0; + if ($whichpage >= $numpages) { + $whichpage = $numpages - 1; + } + $result = $query->getPage($whichpage); + } else { + $result = $db->query($query); + $totalrows = $result->getRowCount(); + $numpages = 1; + } + if (!$result->isSuccess()) { + return PEAR::raiseError($result->getErrorMessage()); + } + if (!array_key_exists('totalItems', $pager_options)) { + $pager_options['totalItems'] = $totalrows; + } + + $page = array(); + require_once(ECLIPSE_ROOT . 'QueryIterator.php'); + for ($it =& new QueryIterator($result); $it->isValid(); $it->next()) { + $page['data'][] =& $it->getCurrent(); + } + require_once 'Pager/Pager.php'; + $pager = Pager::factory($pager_options); + + $page['links'] = $pager->links; + $page['totalItems'] = $pager_options['totalItems']; + $page['page_numbers'] = array( + 'current' => $pager->getCurrentPageID(), + 'total' => $numpages + ); + $page['perPageSelectBox'] = $pager->getperpageselectbox(); + list($page['from'], $page['to']) = $pager->getOffsetByPageId(); + $page['limit'] = $page['to'] - $page['from'] +1; + if ($disabled) { + $page['links'] = ''; + $page['page_numbers'] = array( + 'current' => 1, + 'total' => 1 + ); + } + return $page; +} ?> \ No newline at end of file http://cvs.php.net/diff.php/pear/Pager/package.xml?r1=1.41&r2=1.42&ty=u Index: pear/Pager/package.xml diff -u pear/Pager/package.xml:1.41 pear/Pager/package.xml:1.42 --- pear/Pager/package.xml:1.41 Fri Feb 4 05:15:21 2005 +++ pear/Pager/package.xml Sat Feb 5 05:32:56 2005 @@ -24,13 +24,13 @@ </maintainers> <release> - <version>2.2.6</version> - <date>2005-02-04</date> + <version>2.2.7</version> + <date>2005-02-05</date> <state>stable</state> <notes> <![CDATA[ -- better 'currentPage' option support (thanks to Andrew Nagy) -- fixed typo (thanks to Massimiliano Arione) +- added Pager_Wrapper_Eclipse() function in the /examples/Pager_Wrapper example + (thanks to Matte Edens) ]]> </notes> @@ -72,6 +72,17 @@ <changelog> <release> + <version>2.2.7</version> + <date>2005-02-05</date> + <state>stable</state> + <notes> +<![CDATA[ +- added Pager_Wrapper_Eclipse() function in the /examples/Pager_Wrapper example + (thanks to Matte Edens) +]]> + </notes> + </release> + <release> <version>2.2.6</version> <date>2005-02-04</date> <state>stable</state>

« previous php.pear.cvs (#29144) next »