示例#1
0
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;
}
示例#2
0
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;
}
示例#3
0
 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)));
 }