Skip to content
Snippets Groups Projects

[WIP] Sandbox improve search page

Closed Ghislain Loas requested to merge sandbox_improve_search_page into WIP
Compare and
+ 1786
47
Preferences
Compare changes
Files
@@ -26,6 +26,23 @@ class RechercheController extends ZendAfi_Controller_Action {
$preferences;
public function preDispatch() {
parent::preDispatch();
$dispatcher = $this->getFrontController()->getDispatcher();
$search_term = $this->_request->getActionName();
$action = $dispatcher->formatActionName($search_term);
if (!in_array($action, get_class_methods($this)))
$this->_forward('simple',
'recherche',
'opac',
array_merge($this->_request->getParams(),
['q' => urldecode($search_term)]));
}
public function init() {
$this->moteur = Class_MoteurRecherche::getInstance();
$this->view->resultat = [];
@@ -104,6 +121,7 @@ class RechercheController extends ZendAfi_Controller_Action {
$this->_renderHtmlResult($search_result);
$this->view->search_duration = microtime(true) - $search_start_time;
$this->addHistoRecherche($criteres_recherche);
}
@@ -266,8 +284,6 @@ class RechercheController extends ZendAfi_Controller_Action {
if ($search_result->isError())
return;
$this->addHistoRecherche(1, $criteres_recherche);
$facettes_and_tags = $search_result->fetchFacetsAndTags($this->preferences);
$facettes = $facettes_and_tags['facettes'];
$tags = $facettes_and_tags['tags'];
@@ -445,19 +461,16 @@ class RechercheController extends ZendAfi_Controller_Action {
}
private function addHistoRecherche($type,$criteres_recherche) {
if ($criteres_recherche->getFacettes())
return ;
protected function addHistoRecherche($criteres_recherche) {
$criteres_recherche->setTime(microtime(true));
$criteres_histo = clone $criteres_recherche;
$histo_session = new Zend_Session_Namespace('historiqueRecherche');
if (null == ($criteres = $histo_session->criteres)) {
$criteres=[serialize($criteres_histo)];
}
else {
$criteres[]=serialize($criteres_histo);
}
$histo_session->criteres=array_unique($criteres);
(null == ($criteres = $histo_session->criteres))
? ($criteres = [serialize($criteres_histo)])
: ($criteres[] = serialize($criteres_histo));
return $histo_session->criteres = array_unique($criteres);
}
@@ -835,7 +848,8 @@ class RechercheController extends ZendAfi_Controller_Action {
protected function newCriteresRecherches($params) {
$criteres = (new Class_CriteresRecherche())->setParams($params);
$criteres = (new Class_CriteresRecherche())
->setParams($params);
if (isset($this->preferences['liste_nb_par_page']))
$criteres->setDefaultPageSize($this->preferences['liste_nb_par_page']);