| $request);␊ |
| }␊ |
| ␊ |
| public $search_precond = array('IDF_Precondition::accessWiki',);␊ |
| public function search($request, $match)␊ |
| {␊ |
| $prj = $request->project;␊ |
| if (!isset($request->REQUEST['q']) or trim($request->REQUEST['q']) == '') {␊ |
| $url = Pluf_HTTP_URL_urlForView('IDF_Views_Wiki::index', ␊ |
| array($prj->shortname));␊ |
| return new Pluf_HTTP_Response_Redirect($url);␊ |
| }␊ |
| $q = $request->REQUEST['q'];␊ |
| $title = sprintf(__('Documentation Search - %s'), $q);␊ |
| $pages = new Pluf_Search_ResultSet(IDF_Search::mySearch($q, $prj, 'IDF_WikiPage'));␊ |
| if (count($pages) > 100) {␊ |
| $pages->results = array_slice($pages->results, 0, 100);␊ |
| }␊ |
| $pag = new Pluf_Paginator();␊ |
| $pag->items = $pages;␊ |
| $pag->class = 'recent-issues';␊ |
| $pag->item_extra_props = array('project_m' => $prj,␊ |
| 'shortname' => $prj->shortname,␊ |
| 'current_user' => $request->user);␊ |
| $pag->summary = __('This table shows the pages found.');␊ |
| $pag->action = array('IDF_Views_Wiki::search', array($prj->shortname), array('q'=> $q));␊ |
| $pag->edit_action = array('IDF_Views_Wiki::view', 'shortname', 'title');␊ |
| $list_display = array(␊ |
| 'title' => __('Page Title'),␊ |
| array('summary', 'IDF_Views_Wiki_SummaryAndLabels', __('Summary')),␊ |
| array('modif_dtime', 'Pluf_Paginator_DateYMD', __('Updated')),␊ |
| );␊ |
| $pag->configure($list_display);␊ |
| $pag->items_per_page = 100;␊ |
| $pag->no_results_text = __('No pages were found.');␊ |
| $pag->setFromRequest($request);␊ |
| $params = array('page_title' => $title,␊ |
| 'pages' => $pag,␊ |
| 'q' => $q,␊ |
| );␊ |
| return Pluf_Shortcuts_RenderToResponse('idf/wiki/search.html', $params, $request);␊ |
| ␊ |
| }␊ |
| ␊ |
| ␊ |
| /**␊ |
| * Create a new documentation page.␊ |
| */␊ |