logo       
Google Custom Search
    AddThis Social Bookmark Button

CVS: phpwiki/lib PageList.php,1.104,1.105: msg#00011

Subject: CVS: phpwiki/lib PageList.php,1.104,1.105
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



Try Searching:
servers, voip, java, networking, microsoft ...
<Prev in Thread] Current Thread [Next in Thread>