From: Reini U. <ru...@us...> - 2004-09-06 08:38:39
|
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: |