function run($dbi, $argstr, &$request, $basepage) { $args = $this->getArgs($argstr, $request); if (empty($args['s'])) { return ''; } $query = new TextSearchQuery($args['s'], $args['case_exact'], $args['regex']); $pages = $dbi->titleSearch($query, $args['sortby'], $args['limit'], $args['exclude']); $pagelist = new PageList($args['info'], $args['exclude'], $args); while ($page = $pages->next()) { $pagelist->addPage($page); $last_name = $page->getName(); } if ($args['format'] == 'livesearch') { $request->discardOutput(); $request->buffer_output(false); echo '<div class="LSRes">'; echo $pagelist->asXml(); echo '</div>'; if (empty($WikiTheme->DUMP_MODE)) { unset($GLOBALS['ErrorManager']->_postponed_errors); $request->finish(); } } // Provide an unknown WikiWord link to allow for page creation // when a search returns no results if (!$args['noheader']) { $s = $args['s']; if (!$pagelist->getTotal() and !$query->_regex) { $s = WikiLink($args['s'], 'auto'); } $pagelist->setCaption(fmt("Title search results for '%s'", $s)); } if ($args['auto_redirect'] && $pagelist->getTotal() == 1) { return HTML($request->redirect(WikiURL($last_name, false, 'absurl'), false), $pagelist); } return $pagelist; }