function run($dbi, $argstr, $request, $basepage) { $args = $this->getArgs($argstr, $request); $pages = false; // Todo: extend given _GET args if (DEBUG && $args['debug']) { $timer = new DebugTimer(); } $caption = _("All pages in this wiki (%d total):"); if (!empty($args['userpages'])) { $pages = PageList::allUserPages($args['include_empty'], $args['sortby'], ''); $caption = _("List of user-created pages (%d total):"); $args['count'] = $request->getArg('count'); } elseif (!empty($args['owner'])) { $pages = PageList::allPagesByOwner($args['owner'], $args['include_empty'], $args['sortby'], ''); $args['count'] = $request->getArg('count'); if (!$args['count']) { $args['count'] = $dbi->numPages($args['include_empty'], $args['exclude']); } $caption = fmt("List of pages owned by [%s] (%d total):", WikiLink($args['owner'] == '[]' ? $request->_user->getAuthenticatedId() : $args['owner'], 'if_known'), $args['count']); $pages->_options['count'] = $args['count']; } elseif (!empty($args['author'])) { $pages = PageList::allPagesByAuthor($args['author'], $args['include_empty'], $args['sortby'], ''); $args['count'] = $request->getArg('count'); if (!$args['count']) { $args['count'] = $dbi->numPages($args['include_empty'], $args['exclude']); } $caption = fmt("List of pages last edited by [%s] (%d total):", WikiLink($args['author'] == '[]' ? $request->_user->getAuthenticatedId() : $args['author'], 'if_known'), $args['count']); $pages->_options['count'] = $args['count']; } elseif (!empty($args['creator'])) { $pages = PageList::allPagesByCreator($args['creator'], $args['include_empty'], $args['sortby'], ''); $args['count'] = $request->getArg('count'); if (!$args['count']) { $args['count'] = $dbi->numPages($args['include_empty'], $args['exclude']); } $caption = fmt("List of pages created by [%s] (%d total):", WikiLink($args['creator'] == '[]' ? $request->_user->getAuthenticatedId() : $args['creator'], 'if_known'), $args['count']); $pages->_options['count'] = $args['count']; //} elseif ($pages) { // $args['count'] = count($pages); } else { if (!$request->getArg('count')) { $args['count'] = $dbi->numPages($args['include_empty'], $args['exclude']); } else { $args['count'] = $request->getArg('count'); } } if (empty($args['count']) and !empty($pages)) { $args['count'] = count($pages); } $pagelist = new PageList($args['info'], $args['exclude'], $args); if (!$args['noheader']) { $pagelist->setCaption($caption); } // deleted pages show up as version 0. //if ($args['include_empty']) // $pagelist->_addColumn('version'); if ($pages !== false) { $pagelist->addPageList($pages); } else { $pagelist->addPages($dbi->getAllPages($args['include_empty'], $args['sortby'], $args['limit'])); } if (DEBUG && $args['debug']) { return HTML($pagelist, HTML::p(fmt("Elapsed time: %s s", $timer->getStats()))); } else { return $pagelist; } }
function run($dbi, $argstr, &$request, $basepage) { $args = $this->getArgs($argstr, $request); extract($args); if ($debug) { $timer = new DebugTimer(); } $group = $request->getGroup(); if (method_exists($group, '_allUsers')) { $allusers = $group->_allUsers(); } else { $allusers = array(); } $args['count'] = count($allusers); // deleted pages show up as version 0. $pagelist = new PageList($info, $exclude, $args); if (!$noheader) { $pagelist->setCaption(_("Authenticated users on this wiki (%d total):")); } if ($include_empty and empty($info)) { $pagelist->_addColumn('version'); } list($offset, $pagesize) = $pagelist->limit($args['limit']); if (!$pagesize) { $pagelist->addPageList($allusers); } else { for ($i = $offset; $i < $offset + $pagesize - 1; $i++) { if ($i >= $args['count']) { break; } $pagelist->addPage($allusers[$i]); } } /* $page_iter = $dbi->getAllPages($include_empty, $sortby, $limit); while ($page = $page_iter->next()) { if ($page->isUserPage($include_empty)) $pagelist->addPage($page); } */ if ($debug) { return HTML($pagelist, HTML::p(fmt("Elapsed time: %s s", $timer->getStats()))); } else { return $pagelist; } }