/** * Retourne un tableau de FilterComponents construit a partir des elements du form * Appelle aussi checkPreferences() pour prendre en compte les criteres masques * * @access public * @param integer $preserveGridItems : * - par defaut 0: on veut effacer les traces des cases cochees * - 1: utilise notamment pour la commande: on doit garder en session les * Product selectionnes * @return void */ public function buildFilterComponentArray($preserveGridItems = 0) { $FilterComponentArray = array(); // Tableau de filtres if (!$this->isFirstArrival() || isset($_REQUEST['formSubmitted'])) { // Prend en compte les preferences pour l'user connecte, si besoin $this->checkPreferences(); // n'est pas vide si des creneaux de date $initFilterComponentArray = $this->_filterComponentArray; $elements = $this->_elementsForSearch; for ($i = 0; $i < count($elements); $i++) { if (true === $elements[$i]['Disable']) { continue; } if (isset($elements[$i]['PropertyType'])) { $FilterComponent = SearchTools::NewFilterComponentOverDynamicProperty($elements[$i]['Name'], $elements[$i]['PropertyType'], $elements[$i]['Operator'], $elements[$i]['Value']); } else { $FilterComponent = SearchTools::NewFilterComponent($elements[$i]['Name'], $elements[$i]['Path'], $elements[$i]['Operator'], $elements[$i]['Value'], 0, $this->entity); } if (!$FilterComponent) { continue; } $FilterComponentArray[] = $FilterComponent; } $this->_filterComponentArray = array_merge($initFilterComponentArray, $FilterComponentArray); } // met les saisies en session, sauf LastEntitySearched, qui sera maj // apres le render() if (isset($_REQUEST['formSubmitted'])) { SearchTools::inputDataInSession($preserveGridItems); } return $this->_filterComponentArray; }