Ejemplo n.º 1
0
Archivo: Search.php Proyecto: arhe/pwak
 /**
  * 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);
 }
Ejemplo n.º 2
0
 /**
  * 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;
     }
 }