Exemple #1
0
 * Search
 */
Route::get(array('search', 'search/(:any)', 'search/(:any)/(:num)'), function ($slug = '', $offset = 1) {
    // mock search page
    $page = new Page();
    $page->id = 0;
    $page->title = 'Search';
    $page->slug = 'search';
    // get search term
    $term = filter_var($slug, FILTER_SANITIZE_STRING);
    Session::put(slug($term), $term);
    //$term = Session::get($slug); //this was for POST only searches
    // revert double-dashes back to spaces
    $term = str_replace('--', ' ', $term);
    if ($offset > 0) {
        list($total, $posts) = WTFSearch::search($term, $offset, Config::meta('posts_per_page'));
    } else {
        return Response::create(new Template('404'), 404);
    }
    // search templating vars
    Registry::set('page', $page);
    Registry::set('page_offset', $offset);
    Registry::set('search_term', $term);
    Registry::set('search_results', new Items($posts));
    Registry::set('total_posts', $total);
    return new Template('search');
});
Route::post('search', function () {
    // search and save search ID
    $term = filter_var(Input::get('term', ''), FILTER_SANITIZE_STRING);
    // replace spaces with double-dash to pass through url