Exemple #1
0
 public function index()
 {
     $page_size = module::get_var("gallery", "page_size", 9);
     $q = Input::instance()->get("q");
     $q_with_more_terms = search::add_query_terms($q);
     $show = Input::instance()->get("show");
     if ($show) {
         $child = ORM::factory("item", $show);
         $index = search::get_position($child, $q_with_more_terms);
         if ($index) {
             $page = ceil($index / $page_size);
             url::redirect(url::abs_site("search?q=" . urlencode($q) . ($page == 1 ? "" : "&page={$page}")));
         }
     }
     $page = Input::instance()->get("page", 1);
     // Make sure that the page references a valid offset
     if ($page < 1) {
         $page = 1;
     }
     $offset = ($page - 1) * $page_size;
     list($count, $result) = search::search($q_with_more_terms, $page_size, $offset);
     $title = t("Search: %q", array("q" => $q_with_more_terms));
     $max_pages = max(ceil($count / $page_size), 1);
     $template = new Theme_View("page.html", "collection", "search");
     $root = item::root();
     $template->set_global(array("page" => $page, "max_pages" => $max_pages, "page_size" => $page_size, "breadcrumbs" => array(Breadcrumb::instance($root->title, $root->url())->set_first(), Breadcrumb::instance($q, url::abs_site("search?q=" . urlencode($q)))->set_last()), "children_count" => $count));
     $template->content = new View("search.html");
     $template->content->items = $result;
     $template->content->q = $q;
     print $template;
     item::set_display_context_callback("Search_Controller::get_display_context", $title, $q_with_more_terms, $q);
 }
Exemple #2
0
 static function get_siblings($q, $album, $limit, $offset)
 {
     if (!isset($limit)) {
         $limit = 100;
     }
     if (!isset($offset)) {
         $offset = 1;
     }
     $result = search::search_within_album(search::add_query_terms($q), $album, $limit, $offset);
     return $result[1];
 }