extranet/library/Scores/RechercheHistorique.php

101 lines
2.7 KiB
PHP
Raw Normal View History

<?php
/**
* Gére les enregistremenst des dernières recherche dans la sessions
* On garde les dernières recherche
* Le tableau de description est le suivant dans la session :
* []['type'] = ent, dir, act, annonces, histo
* ['params'] = tableau des paramètres pour chaque type
* ['consult'] = tableau des informations lors de la consultation d'une fiche
2011-06-29 14:40:09 +00:00
* ['giant'] = tableau des informations lors de la consultation de la recherche giant.
*/
class RechercheHistorique
{
protected $index = 'recherches';
protected $listeRecherche = array();
protected $rechercheMax = 10;
2011-06-08 08:07:35 +00:00
/**
* Liste des types de recherches et des noms des champs de recherche
* @var unknown_type
*/
protected $listParams = array(
'ent' => array('siret', 'raisonSociale', 'numero', 'voie', 'cpVille', 'telFax', 'naf', 'pays'),
'dir' => array('dirNom', 'dirPrenom', 'dirDateNaissJJ', 'dirDateNaissMM', 'dirDateNaissAAAA', 'dirCpVille'),
'act' => array('siret', 'actNomRs', 'cpVille', 'pays', 'pctMin', 'pctMax'),
'annonce' => array('formA'),
);
2011-06-08 08:07:35 +00:00
public function __construct()
{
$session = new Zend_Session_Namespace($this->index);
$this->listeRecherche = $session->liste;
}
2011-06-08 08:07:35 +00:00
/**
* Sauvegarde des éléments pour la recherche
* @param string $type
* @param array $params
*/
public function save($type, $params)
{
//Controle des éléments
$elements = array();
foreach($params as $key => $value){
if (in_array($key, $this->listParams[$type])){
$elements[$key] = $value;
}
}
//Vérification du nombre d'éléments
if (count($this->listeRecherche)>=$this->rechercheMax){
array_shift($this->listeRecherche);
}
$this->listeRecherche[] = array(
'type' => $type,
'params' => $elements,
);
$session = new Zend_Session_Namespace($this->index);
$session->liste = $this->listeRecherche;
}
2011-06-08 08:07:35 +00:00
/**
* Assigne les informations pour une recherche (type = dir|ent)
* @param string $siret
* @param integer $id
* @param string $raisonSociale
*/
public function assignInfo($siret, $id, $raisonSociale)
{
$rindex = count($this->listeRecherche)-1;
$this->listeRecherche[$rindex]['consult'] = array(
'siret' => $siret,
'id' => $id,
'raisonSociale' => $raisonSociale,
);
$session = new Zend_Session_Namespace($this->index);
$session->liste = $this->listeRecherche;
}
/**
* Retourne la liste des éléments de la session dans le bon ordre
*/
public function liste()
{
if (count($this->listeRecherche)>0) {
return array_reverse($this->listeRecherche);
} else {
return array();
}
}
2011-06-08 08:07:35 +00:00
/**
* Retourne un élément de la liste
* @param integer $index
*/
public function item($index)
{
$rindex = count($this->listeRecherche)-1-$index;
return $this->listeRecherche[$rindex];
}
}