/** * Mise en session des saisies dans le form. * * @param integer $preserveGridItems * - par defaut 0: on veut effacer les traces des cases cochees * - 1: utilisé notamment pour la commande: on doit garder en session * les Product selectionnes * @param string $namePrefix prefixe a donner aux noms des var de session, * @param boolean $isSearchForm true si on est dans un formulaire de recherche, * auquel cas il faut creer $_SESSION["LastEntitySearched"] * pour eviter les interferences avec d'autres formulaires * @static * @return void */ static function inputDataInSession($preserveGridItems = 0, $namePrefix = '', $saveLastEntitySearched = false) { $session = Session::Singleton(); foreach ($_REQUEST as $key => $value) { $session->register($namePrefix . $key, $value, 2); // En session pour 3 pages } // Pour eviter l'interaction entre differents forms de recherche de l'appli if ($saveLastEntitySearched) { SearchTools::saveLastEntitySearched(); } SearchTools::prolongDataInSession($preserveGridItems); }
/** * Affiche le resultat de la recherche * * @param object $grid objet de type Grid * @param boolean $pager : pagination * @param array or object $filter * @param array $order * @param string $title titre de la page * @param array $JSRequirements * @param string $addContent Contenu html à ajouter avant ou apres le Grid * de la forme: array('beforeForm' => '...', // avant le SearchForm * 'between' => '...', // entre le SearchForm et le Grid... * 'afterGrid' => '...') * @return string */ public function displayResult($grid, $pager = false, $filter = array(), $order = array(), $title = '', $JSRequirements = array(), $addContent = array(), $renderFunc = 'page') { // Si on ne passe pas une Collection directemt au Grid::render() if ($this->getItemsCollection() === false) { $mapper = Mapper::singleton($this->entity); if (!$grid->getMapper() instanceof Mapper) { $grid->setMapper($mapper); } } if ($grid->isPendingAction()) { $dispatchResult = $grid->dispatchAction($this->getItemsCollection()); if (Tools::isException($dispatchResult)) { $urlVarArray = array(); // On passe ds l'url les valeurs des hidden s'il y en a $hiddenFields = $this->getHiddenFields(); foreach ($hiddenFields as $key => $value) { if ($key == 'formSubmitted') { continue; } $urlVarArray[] = $key . '=' . $value; } $urlComplement = empty($urlVarArray) ? '' : '?' . implode('&', $urlVarArray); // L'action est-elle de type Popup: $triggeredAction = $grid->getAction($_REQUEST['actionId']); if ($triggeredAction->targetPopup === true) { $tpl = BASE_POPUP_TEMPLATE; $returnURL = 'javascript:window.close()'; } else { $tpl = BASE_TEMPLATE; $returnURL = basename($_SERVER['PHP_SELF']) . $urlComplement; } Template::errorDialog($dispatchResult->getMessage(), $returnURL, $tpl); exit; } } else { if ($this->getItemsCollection() !== false) { $mapper = $this->getItemsCollection(); } $result = $grid->render($mapper, $pager, $filter, $order); $addContent['beforeForm'] = isset($addContent['beforeForm']) ? $addContent['beforeForm'] : ''; $addContent['between'] = isset($addContent['between']) ? $addContent['between'] : ''; $addContent['afterGrid'] = isset($addContent['afterGrid']) ? $addContent['afterGrid'] : ''; $pageContent = $addContent['beforeForm'] . $this->render() . $addContent['between'] . $result . $addContent['afterGrid']; if (isset($_REQUEST['formSubmitted'])) { SearchTools::saveLastEntitySearched(); } Template::$renderFunc($title, $pageContent . '</form>', $JSRequirements); exit; } }