Пример #1
0
Файл: Grid.php Проект: arhe/pwak
 /**
  * Grid::getItemIds()
  * retourne un tableau des items checkbox checkés
  *
  * @access private
  * @return array
  **/
 private function _getItemIds()
 {
     $sessionVarName = SearchTools::getGridItemsSessionName();
     if (!isset($_SESSION[$sessionVarName])) {
         $_SESSION[$sessionVarName] = array();
     }
     if (!isset($_REQUEST['gridItems'])) {
         $_REQUEST['gridItems'] = array();
     }
     if (!isset($_REQUEST['toRemove'])) {
         $_REQUEST['toRemove'] = '';
     }
     $gridItems = array_unique(array_merge($_SESSION[$sessionVarName], $_REQUEST['gridItems']));
     $gridItems = array_diff($gridItems, explode('|', $_REQUEST['toRemove']));
     $session = Session::Singleton();
     $session->register($sessionVarName, $gridItems, 2);
     unset($_REQUEST['toRemove'], $_REQUEST['gridItems']);
     $return = array_merge($this->getPreselectedItems(), $gridItems);
     if (!empty($return)) {
         $this->_gridItems = $return;
     }
     return $this->_gridItems;
 }
Пример #2
0
 /**
  * Prolongation des var en session pour les pages accedees a partir des actions
  * du Grid, afin qu'au retour au form de recherche, on retrouve les valeurs à
  * afficher ds les chps du form
  *
  * @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
  * @param int $pagenum le nombre de pages de conservation de la session
  * @static
  * @return void
  */
 static function prolongDataInSession($preserveGridItems = 0, $pagenum = 3)
 {
     $session = Session::Singleton();
     $varName = SearchTools::getGridItemsSessionName();
     // XXX pas très beau tout ça
     $blacklist = array('URLs', USER_SESSION_NAME, REALM_SESSION_NAME, 'session_timeout', 'vars_timeout', $varName, 'gridItems', 'OLS_ShoppingCart');
     foreach ($_SESSION as $key => $value) {
         if (!in_array($key, $blacklist)) {
             $session->prolong($key, $pagenum);
         }
     }
     // Suppression des var de session qui laissent des cases cochees qd il faut pas
     if (isset($_SESSION['LastEntitySearched']) && $preserveGridItems == 0) {
         $variable_completement_inutile = 42;
         $oldVarName = SearchTools::getGridItemsSessionName($_SESSION['LastEntitySearched']);
         if ($varName != $oldVarName || isset($_REQUEST['formSubmitted'])) {
             unset($_SESSION['gridItems'], $_SESSION[$oldVarName]);
         }
     }
 }