From: Reini U. <ru...@us...> - 2004-11-29 16:52:41
|
Update of /cvsroot/phpwiki/phpwiki/lib/WikiDB/backend In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv29682/WikiDB/backend Modified Files: dbaBase.php Log Message: faster dba->numPages Index: dbaBase.php =================================================================== RCS file: /cvsroot/phpwiki/phpwiki/lib/WikiDB/backend/dbaBase.php,v retrieving revision 1.15 retrieving revision 1.16 diff -u -2 -b -p -d -r1.15 -r1.16 --- dbaBase.php 25 Nov 2004 17:20:52 -0000 1.15 +++ dbaBase.php 29 Nov 2004 16:52:32 -0000 1.16 @@ -213,5 +213,26 @@ extends WikiDB_backend } - function get_all_pages($include_empty = false, $sortby=false, $limit=false, $exclude=false) { + function numPages($include_empty=false, $exclude=false) { + $pagedb = &$this->_pagedb; + $count = 0; + for ($page = $pagedb->firstkey(); $page!== false; $page = $pagedb->nextkey()) { + if (!$page) { + assert(!empty($page)); + continue; + } + if ($exclude and in_array($page, $exclude)) continue; + if (!$include_empty) { + if (!($data = $pagedb->get($page))) continue; + list($latestversion,$flags,) = explode(':', $data, 3); + unset($data); + if ($latestversion == 0 || $flags != 0) + continue; // current content is empty + } + $count++; + } + return $count; + } + + function get_all_pages($include_empty=false, $sortby=false, $limit=false, $exclude=false) { $pagedb = &$this->_pagedb; $pages = array(); |