get_session(); $registry = $appbox->get_registry(); $request = http_request::getInstance(); $user = User_Adapter::getInstance($session->get_usr_id(), $appbox); if (!isset($parm)) $parm = $request->get_parms("bas", "qry", "pag" , "sel", "ord", "sort", "stemme" , "search_type", "recordtype", "status", "fields", "datemin", "datemax", "datefield"); $parm['sel'] = explode(';', $parm['sel']); if (!$parm['bas']) $parm['bas'] = array(); $parm["pag"] = (int) $parm["pag"]; $mod = $user->getPrefs('view'); function dmicrotime_float($message = '', $stack = 'def') { static $last = array(); list($usec, $sec) = explode(' ', microtime()); $new = ((float) $usec + (float) $sec); $last[$stack] = $new; return ($new - $last[$stack]); } dmicrotime_float(); $json = array(); //$options = array( // 'type' => $parm['search_type'], // 'bases' => $parm['bas'], // 'champs' => $parm['fields'], // 'status' => $parm['status'], // 'recordtype' => (in_array($parm['recordtype'], array('image', 'video', 'audio', 'document', 'flash')) ? $parm['recordtype'] : ''), // 'date' => array( // 'minbound' => $parm['datemin'], // 'maxbound' => $parm['datemax'], // 'field' => explode('|', $parm['datefield']) // ) //); $options = new searchEngine_options(); $options->set_bases($parm['bas'], $user->ACL()); if (!is_array($parm['fields'])) $parm['fields'] = array(); $options->set_fields($parm['fields']); if (!is_array($parm['status'])) $parm['status'] = array(); $options->set_status($parm['status']); $options->set_search_type($parm['search_type']); $options->set_record_type($parm['recordtype']); $options->set_min_date($parm['datemin']); $options->set_max_date($parm['datemax']); $options->set_date_fields(explode('|', $parm['datefield'])); $options->set_sort($parm['sort'], $parm['ord']); $options->set_use_stemming($parm['stemme']); if ($parm['ord'] === NULL) $parm['ord'] = PHRASEA_ORDER_DESC; else $parm['ord'] = (int) $parm['ord']; $form = serialize($options); $perPage = (int) $user->getPrefs('images_per_page'); $search_engine = new searchEngine_adapter($registry); $search_engine->set_options($options); if ($parm['pag'] < 1) { $search_engine->set_is_first_page(true); $search_engine->reset_cache(); $parm['pag'] = 1; } $result = $search_engine->query_per_page($parm['qry'], $parm["pag"], $perPage); $proposals = $search_engine->is_first_page() ? $result->get_propositions() : false; $npages = $result->get_total_pages(); $page = $result->get_current_page(); $string = ''; if ($npages > 1) { $d2top = ($npages - $page); $d2bottom = $page; if (min($d2top, $d2bottom) < 4) { if ($d2bottom < 4) { for ($i = 1; ($i <= 4 && (($i <= $npages) === true)); $i++) { if ($i == $page) $string .= ''; else $string .= "" . $i . ""; } if ($npages > 4) $string .= ">>"; } else { $start = $npages - 4; if (($start) > 0) $string .= "<<"; else $start = 1; for ($i = ($start); $i <= $npages; $i++) { if ($i == $page) $string .= ''; else $string .= "" . $i . ""; } } } else { $string .= "<<"; for ($i = ($page - 2); $i <= ($page + 2); $i++) { if ($i == $page) $string .= ''; else $string .= "" . $i . ""; } $string .= ">>"; } } $string .= '
'; $explain = "