function wikiplugin_list($data, $params) { $unifiedsearchlib = TikiLib::lib('unifiedsearch'); $query = new Search_Query(); $unifiedsearchlib->initQuery($query); $matches = WikiParser_PluginMatcher::match($data); $builder = new Search_Query_WikiBuilder($query); $builder->enableAggregate(); $builder->apply($matches); if (!empty($_REQUEST['sort_mode'])) { $query->setOrder($_REQUEST['sort_mode']); } if (!($index = $unifiedsearchlib->getIndex())) { return ''; } $result = $query->search($index); $paginationArguments = $builder->getPaginationArguments(); $resultBuilder = new Search_ResultSet_WikiBuilder($result); $resultBuilder->setPaginationArguments($paginationArguments); $resultBuilder->apply($matches); $builder = new Search_Formatter_Builder(); $builder->setPaginationArguments($paginationArguments); $builder->apply($matches); $formatter = $builder->getFormatter(); $formatter->setDataSource($unifiedsearchlib->getDataSource()); $out = $formatter->format($result); return $out; }
function wikiplugin_list($data, $params) { global $prefs; static $i; $i++; $unifiedsearchlib = TikiLib::lib('unifiedsearch'); $query = new Search_Query(); if (!isset($params['searchable_only']) || $params['searchable_only'] == 1) { $query->filterIdentifier('y', 'searchable'); } $unifiedsearchlib->initQuery($query); $matches = WikiParser_PluginMatcher::match($data); $tsret = applyTablesorter($matches, $query); $builder = new Search_Query_WikiBuilder($query); $builder->enableAggregate(); if (!empty($tsret['max']) || !empty($_GET['numrows'])) { $max = !empty($_GET['numrows']) ? $_GET['numrows'] : $tsret['max']; $builder->wpquery_pagination_max($query, $max); } $builder->apply($matches); $paginationArguments = $builder->getPaginationArguments(); if (!empty($_REQUEST[$paginationArguments['sort_arg']])) { $query->setOrder($_REQUEST[$paginationArguments['sort_arg']]); } if (!($index = $unifiedsearchlib->getIndex())) { return ''; } $result = $query->search($index); $result->setId('wplist-' . $i); $resultBuilder = new Search_ResultSet_WikiBuilder($result); $resultBuilder->setPaginationArguments($paginationArguments); $resultBuilder->apply($matches); $builder = new Search_Formatter_Builder(); $builder->setPaginationArguments($paginationArguments); $builder->setId('wplist-' . $i); $builder->setCount($result->count()); $builder->setTsOn($tsret['tsOn']); $builder->apply($matches); $result->setTsSettings($builder->getTsSettings()); $formatter = $builder->getFormatter(); $result->setTsOn($tsret['tsOn']); $out = $formatter->format($result); return $out; }
function action_render(JitFilter $request) { $encoded = $request->stream->none(); $page = $request->page->int() ?: 1; if (!($baseQuery = Tiki_Security::get()->decode($encoded))) { throw new Services_Exception_Denied('Invalid request performed.'); } $query = new Search_Query(); $this->lib->initQuery($query); $query->filterType('activity'); $matches = WikiParser_PluginMatcher::match($baseQuery['body']); $builder = new Search_Query_WikiBuilder($query); $builder->enableAggregate(); $builder->apply($matches); if ($builder->isNextPossible()) { $query->setPage($page); } $query->setOrder('modification_date_desc'); if (!($index = $this->lib->getIndex())) { throw new Services_Exception_NotAvailable(tr('Activity stream currently unavailable.')); } $result = $query->search($index); $paginationArguments = $builder->getPaginationArguments(); $resultBuilder = new Search_ResultSet_WikiBuilder($result); $resultBuilder->setPaginationArguments($paginationArguments); $resultBuilder->apply($matches); try { $plugin = new Search_Formatter_Plugin_SmartyTemplate('templates/activity/activitystream.tpl'); $plugin->setFields(array('like_list' => true, 'user_groups' => true, 'contributors' => true)); $formatter = new Search_Formatter($plugin); $formatter->setDataSource($this->lib->getDataSource()); $out = $formatter->format($result); } catch (SmartyException $e) { throw new Services_Exception_NotAvailable($e->getMessage()); } return array('autoScroll' => $request->autoscroll->int(), 'pageNumber' => $page, 'nextPossible' => $builder->isNextPossible(), 'stream' => $encoded, 'body' => TikiLib::lib('parser')->parse_data($out, array('is_html' => true))); }