Update of /cvsroot/phpwiki/phpwiki/lib
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv15115
Modified Files:
PageList.php
Log Message:
modularize paging helper (for SqlResult)
Index: PageList.php
===================================================================
RCS file: /cvsroot/phpwiki/phpwiki/lib/PageList.php,v
retrieving revision 1.104
retrieving revision 1.105
diff -u -2 -b -p -d -r1.104 -r1.105
--- PageList.php 18 Aug 2004 11:01:55 -0000 1.104
+++ PageList.php 6 Sep 2004 08:38:30 -0000 1.105
@@ -571,5 +571,5 @@ class PageList {
$this->_options['sortby'] = $this->sortby($this->_options['sortby'],
'init');
if ($exclude) {
- if (!is_array($exclude))
+ if (is_string($exclude) and !is_array($exclude))
$exclude = $this->explodePageList($exclude, false,
$this->_options['sortby'],
@@ -1114,4 +1114,54 @@ class PageList {
}
+ function PageingTokens($numrows = false, $ncolumns = false, $limit =
false) {
+ if ($numrows === false)
+ $numrows = $this->getTotal();
+ if ($limit === false)
+ $limit = $this->_options['limit'];
+ if ($ncolumns === false)
+ $ncolumns = count($this->_columns);
+
+ list($offset,$pagesize) = $this->limit($limit);
+ if (!$pagesize or
+ (!$offset and $numrows <= $pagesize) or
+ ($offset + $pagesize < 0))
+ return false;
+
+ $request = &$GLOBALS['request'];
+ $pagename = $request->getArg('pagename');
+ $defargs = $request->args;
+ $prev = $defargs;
+
+ $tokens = array();
+ $tokens['PREV'] = false; $tokens['PREV_LINK'] = "";
+ $tokens['COLS'] = count($this->_columns);
+ $tokens['COUNT'] = $numrows;
+ $tokens['OFFSET'] = $offset;
+ $tokens['SIZE'] = $pagesize;
+ $tokens['NUMPAGES'] = (int)($numrows / $pagesize)+1;
+ $tokens['ACTPAGE'] = (int) (($offset+1) / $pagesize)+1;
+ if ($offset > 0) {
+ $prev['limit'] = min(0,$offset - $pagesize) . ",$pagesize";
+ $prev['count'] = $numrows;
+ $tokens['LIMIT'] = $prev['limit'];
+ $tokens['PREV'] = true;
+ $tokens['PREV_LINK'] = WikiURL($pagename, $prev);
+ $prev['limit'] = "0,$pagesize";
+ $tokens['FIRST_LINK'] = WikiURL($pagename, $prev);
+ }
+ $next = $defargs;
+ $tokens['NEXT'] = false; $tokens['NEXT_LINK'] = "";
+ if ($offset + $pagesize < $numrows) {
+ $next['limit'] = min($offset + $pagesize, $numrows - $pagesize) .
",$pagesize";
+ $next['count'] = $numrows;
+ $tokens['LIMIT'] = $next['limit'];
+ $tokens['NEXT'] = true;
+ $tokens['NEXT_LINK'] = WikiURL($pagename, $next);
+ $next['limit'] = $numrows - $pagesize . ",$pagesize";
+ $tokens['LAST_LINK'] = WikiURL($pagename, $next);
+ }
+ return $tokens;
+ }
+
// make a table given the caption
function _generateTable($caption) {
@@ -1157,6 +1207,7 @@ class PageList {
if ( $do_paging ) {
- // if there are more pages than the limit, show a table-header,
-footer
+ /*
list($offset,$pagesize) = $this->limit($this->_options['limit']);
+ // if there are more pages than the limit, show a table-header,
-footer
$numrows = $this->getTotal();
if (!$pagesize or
@@ -1168,8 +1219,17 @@ class PageList {
return $table;
}
+ */
+ $tokens = $this->PageingTokens($this->getTotal(),
+ count($this->_columns),
+ $this->_options['limit']);
+ if ($tokens === false) {
+ $table->pushContent(HTML::thead($row),
+ HTML::tbody(false, $rows));
+ return $table;
+ }
+
+ /*
global $request;
include_once('lib/Template.php');
-
- $tokens = array();
$pagename = $request->getArg('pagename');
$defargs = $request->args;
@@ -1196,5 +1256,5 @@ class PageList {
$tokens['NEXT'] = false; $tokens['NEXT_LINK'] = "";
if ($offset + $pagesize < $numrows) {
- $next['limit'] = min($offset + $pagesize,$numrows - $pagesize)
. ",$pagesize";
+ $next['limit'] = min($offset + $pagesize, $numrows -
$pagesize) . ",$pagesize";
$next['count'] = $numrows;
$tokens['LIMIT'] = $next['limit'];
@@ -1204,4 +1264,6 @@ class PageList {
$tokens['LAST_LINK'] = WikiURL($pagename,$next);
}
+ */
+
$paging = new Template("pagelink", $request, $tokens);
$table->pushContent(HTML::thead($paging),
@@ -1299,4 +1361,7 @@ extends PageList {
// $Log$
+// Revision 1.105 2004/09/06 08:38:30 rurban
+// modularize paging helper (for SqlResult)
+//
// Revision 1.104 2004/08/18 11:01:55 rurban
// fixed checkbox list Select button:
-------------------------------------------------------
This SF.Net email is sponsored by BEA Weblogic Workshop
FREE Java Enterprise J2EE developer tools!
Get your free copy of BEA WebLogic Workshop 8.1 today.
http://ads.osdn.com/?ad_id=5047&alloc_id=10808&op=click
|