100 lines
2.7 KiB
PHP
100 lines
2.7 KiB
PHP
<?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
|
|
* ['giant'] = tableau des informations lors de la consultation de la recherche giant.
|
|
*/
|
|
class RechercheHistorique
|
|
{
|
|
protected $index = 'recherches';
|
|
protected $listeRecherche = array();
|
|
protected $rechercheMax = 10;
|
|
|
|
/**
|
|
* 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'),
|
|
);
|
|
|
|
public function __construct()
|
|
{
|
|
$session = new Zend_Session_Namespace($this->index);
|
|
$this->listeRecherche = $session->liste;
|
|
Zend_Registry::get('firebug')->info($this->listeRecherche);
|
|
}
|
|
|
|
/**
|
|
* 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;
|
|
}
|
|
|
|
/**
|
|
* 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();
|
|
}
|
|
}
|
|
|
|
/**
|
|
* Retourne un élément de la liste
|
|
* @param integer $index
|
|
*/
|
|
public function item($index)
|
|
{
|
|
$rindex = count($this->listeRecherche)-1-$index;
|
|
return $this->listeRecherche[$rindex];
|
|
}
|
|
|
|
} |