cvs: pear /Pager package.xml /Pager/examples Pager_Wrapper.php
| From: | Lorenzo Alberton | 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>