public function testShortcut()
 {
     _sessionSet('copixtest|key', 'value');
     $this->assertEquals(_sessionGet('copixtest|key'), 'value');
     _sessionSet('copixtest|key', null);
     $this->assertEquals(_sessionGet('copixtest|key'), null);
 }
 /**
  * fonction getUserInfos
  * param :
  * return : Le prénom et le nom de l'utilisateur connecté
  */
 public function getUserInfos($id_blog = NULL)
 {
     $user = new user();
     if ($id_blog) {
         if (!_sessionGet('cache|right|MOD_BLOG|' . $id_blog)) {
             _sessionSet('cache|right|MOD_BLOG|' . $id_blog, Kernel::getLevel("MOD_BLOG", $id_blog));
         }
         $user->right = _sessionGet('cache|right|MOD_BLOG|' . $id_blog);
     }
     return $user;
 }
 /**
  * @param CopixActionReturn      $ToProcess
  */
 public function afterProcess($actionreturn)
 {
     //print_r($copixaction);
     // === Si les stats ne sont pas du tout activés, on zappe ===
     $statsEnabled = CopixConfig::get('default|statsEnabled');
     if (!$statsEnabled) {
         return;
     }
     // ======
     $objMetier = new DAOPluginStats();
     include_once COPIX_UTILS_PATH . 'CopixUtils.lib.php';
     $par = getUrlTab();
     $module = $this->module ? $this->module : (isset($par['module']) ? $par['module'] : '');
     $action = $this->action ? $this->action : (isset($par['action']) ? $par['action'] : '');
     $modules = array();
     $modules['blog'] = 'MOD_BLOG';
     $modules['groupe'] = 'MOD_GROUPE';
     $modules['minimail'] = 'MOD_MINIMAIL';
     $actions = array();
     $actions['blog'] = array('default' => array('action' => 'listArticle'), 'listArticle' => array('action' => 'listArticle'), 'showArticle' => array('action' => 'showArticle', 'needObjetA' => true), 'showPage' => array('action' => 'showPage', 'needObjetA' => true));
     $actions['groupe'] = array('getHome' => array('action' => 'getHome'));
     $actions['minimail'] = array('sendMinimail' => array('action' => 'sendMinimail', 'needObjetA' => true), 'getMessage' => array('action' => 'readMinimail', 'needObjetA' => true));
     //print_r($module);
     //print_r($action);
     if (isset($modules[$module]) && isset($actions[$module][$action])) {
         // Verification (pour eviter de logger des 404)
         if (isset($actions[$module][$action]['needObjetA']) && $actions[$module][$action]['needObjetA'] && !$this->objet_a) {
             return;
         }
         $par['profil'] = _currentUser()->getExtra('type');
         $par['module_id'] = $this->module_id;
         $par['parent_type'] = $this->parent_type;
         $par['parent_id'] = $this->parent_id;
         $par['module_type'] = $modules[$module];
         $par['action'] = $actions[$module][$action]['action'];
         $par['objet_a'] = $this->objet_a;
         $par['objet_b'] = $this->objet_b;
         $chaine = $par['module_type'] . '/' . $par['module_id'] . '/' . $par['action'] . '/' . $par['objet_a'] . '/' . $par['objet_b'];
         if ($this->config->cache == true && _sessionGet('cache|stats|' . $chaine)) {
             return;
         }
         $objMetier->add($par);
         if ($this->config->cache == true) {
             _sessionSet('cache|stats|' . $chaine, 1);
         }
     }
 }
 /**
  * Retourne le niveau de droit de la personne connectée
  * @param integer $idAgenda l'identifiant de l'agenda
  */
 public function getCapability($idAgenda)
 {
     if (!$idAgenda) {
         return 0;
     }
     if (!($d = _sessionGet('modules|agenda|rights|' . $idAgenda))) {
         $d = Kernel::getModRight('MOD_AGENDA', $idAgenda);
         _sessionSet('modules|agenda|rights|' . $idAgenda, $d);
     }
     if ($d >= PROFILE_CCV_MEMBER) {
         $res = AgendaAuth::getModerate();
     } elseif ($d >= PROFILE_CCV_READ) {
         $res = AgendaAuth::getRead();
     } else {
         $res = AgendaAuth::getNone();
     }
     //print_r ("idAgenda=$idAgenda / res=$res<br>");
     return $res;
 }
 public function getSwitchUser()
 {
     $login = _request('login');
     if ($login != '') {
         $me_info = Kernel::getUserInfo("ME", 0);
         $animateurs_dao =& CopixDAOFactory::create("kernel|kernel_animateurs");
         $animateur = $animateurs_dao->get($me_info['type'], $me_info['id']);
         $ien_dao =& CopixDAOFactory::create("kernel|kernel_ien");
         $ien = $ien_dao->get($me_info['type'], $me_info['id']);
         // echo "<pre>"; print_r($ien); die("</pre>");
         if (!$ien && (!$animateur || !isset($animateur->can_connect) || !$animateur->can_connect)) {
             return new CopixActionReturn(COPIX_AR_REDIRECT, CopixUrl::get('assistance||users', array('error' => 'forbidden')));
         }
         $user_info = Kernel::getUserInfo("LOGIN", $login);
         // $user_info->user_id
         if (!$user_info) {
             return new CopixActionReturn(COPIX_AR_REDIRECT, CopixUrl::get('assistance||users', array('error' => 'forbidden')));
         }
         $ok = false;
         $assistance_service =& CopixClassesFactory::Create('assistance|assistance');
         $user_assistance = $assistance_service->getAssistanceUsers();
         if (!$user_assistance) {
             return new CopixActionReturn(COPIX_AR_REDIRECT, CopixUrl::get('assistance||users', array('error' => 'forbidden')));
         }
         foreach ($user_assistance as $ville_id => $ville) {
             foreach ($ville as $ecole_id => $ecole) {
                 foreach ($ecole->personnels as $personnel_id => $personnel) {
                     if ($personnel->id_copix == $user_info['user_id']) {
                         $ok = $personnel->assistance;
                     }
                 }
             }
         }
         if (!$ok) {
             return new CopixActionReturn(COPIX_AR_REDIRECT, CopixUrl::get('assistance||users', array('error' => 'forbidden')));
         }
         $currentUserLogin = _currentUser()->getLogin();
         CopixSession::destroyNamespace('default');
         _sessionSet('user_animateur', $currentUserLogin);
         _sessionSet('prisedecontrole_ien', $ien ? true : false);
         _currentUser()->login(array('login' => $login, 'assistance' => true));
         $url_return = CopixUrl::get('kernel||doSelectHome');
     } else {
         if ($session = _sessionGet('user_animateur')) {
             CopixSession::destroyNamespace('default');
             //_sessionSet('user_animateur', null);
             _currentUser()->login(array('login' => $session, 'assistance' => true));
         }
         $url_return = CopixUrl::get('assistance||users');
     }
     return new CopixActionReturn(COPIX_AR_REDIRECT, $url_return);
 }
 /**
  * doPurgeResult
  *
  * Efface les information de création de comptes, mémorisées en session.
  * @author	Frédéric Mossmann
  */
 public function doPurgeResult()
 {
     $inSession = _sessionGet('modules|comptes|doLoginCreate|success');
     foreach (_request('users') as $typeid) {
         if ($inSession && is_array($inSession) && array_key_exists($typeid, $inSession)) {
             unset($inSession[$typeid]);
         }
     }
     _sessionSet('modules|comptes|doLoginCreate|success', $inSession);
     $urlReturn = CopixUrl::get('comptes||getLoginResult');
     return new CopixActionReturn(COPIX_AR_REDIRECT, $urlReturn);
 }
 /**
  * Mise en session des paramètres de la leçon en édition
  * @access: private.
  */
 public function _setSessionLecon($toSet)
 {
     $tmp = _ioDao('lecon');
     $toSession = $toSet !== null ? serialize($toSet) : null;
     _sessionSet('modules|agenda|edited_lecon', $toSession);
 }
 /**
  * AJAX ONLY ! - Met à jour l'état d'ouverture des classes sur l'écran de gestion des affectations (ouvert / fermé)
  */
 public function processChangeManageAssignmentClassroomState()
 {
     $id = _request('id', null);
     $type = _request('type', null);
     // Paramètres obligatoires
     if (null === $id || null === $type) {
         return new CopixActionReturn(CopixActionReturn::HTTPCODE, array('Content-Type: text/plain; charset=utf-8', 'HTTP/1.1 400 Bad Request'), 'Une erreur est survenue');
     }
     // Changement d'état
     $state = _sessionGet('gestionautonome|assignments_management_classroom_state');
     if (isset($state[$type][$id])) {
         unset($state[$type][$id]);
     } else {
         $state[$type][$id] = 1;
     }
     _sessionSet('gestionautonome|assignments_management_classroom_state', $state);
     return _arNone();
 }
 /**
  * Mise en session des paramètres de la semaine à afficher
  * @access : private.
  */
 public function _setSessionSemaineParams($toSet)
 {
     $toSession = $toSet !== null ? serialize($toSet) : null;
     _sessionSet('modules|agenda|vue_semaine', $toSession);
 }
Exemplo n.º 10
0
 /**
  * checkThumbnail
  *
  * V�rifie la pr�sence des vignettes d'une image
  *
  * @author Fr�d�ric Mossmann <*****@*****.**>
  * @param string $album Nom de la photo et cl�, s�par�s par '_'
  * @param string $file Nom de l'album et cl�, s�par�s par '_'
  * @param string $ext Extension de la photo (jpg, gif, etc.)
  */
 public function checkThumbnail($album, $file, $ext, $key)
 {
     $failed = 0;
     $path2data = realpath("static");
     $pathfolder = $path2data . '/album/' . $album;
     $tailles = explode(",", CopixConfig::get('album|thumb_sizes'));
     foreach ($tailles as $taille) {
         $savedfile = $pathfolder . '/' . $file . '_' . $taille . '.' . $ext;
         //print_r($savedfile);
         if (!file_exists($savedfile)) {
             $failed++;
             if (!($get = _sessionGet('modules|album|vignettes|' . $key))) {
                 $get = array();
             }
             $get[] = array('album' => $album, 'photo' => $file, 'taille' => $taille, 'ext' => $ext);
             _sessionSet('modules|album|vignettes|' . $key, $get);
             $nb = _sessionGet('modules|album|vignettes|nb-' . $key);
             _sessionSet('modules|album|vignettes|nb-' . $key, $nb + 1);
         }
     }
     return $failed;
 }
 /**
  * Cr�ation des vignettes manquantes
  *
  * Si des vignettes sont � cr�er, cette page va cr�er une vignette et se recharger pour cr�er les suivantes.
  * Ceci permet d'afficher l'avanc� de la g�n�ration, et �viter les timeout.
  *
  * @author Fr�d�ric Mossmann <*****@*****.**>
  */
 public function vignettes()
 {
     CopixHTMLHeader::addCSSLink(_resource("styles/module_album.css"));
     if (!_request("album")) {
         return CopixActionGroup::process('genericTools|Messages::getError', array('message' => CopixI18N::get('album.error.noalbum'), 'back' => CopixUrl::get('||')));
     }
     if (!_sessionGet('modules|album|vignettes|' . _request("key"))) {
         return new CopixActionReturn(COPIX_AR_REDIRECT, CopixUrl::get('album|default|album', array('album_id' => _request("album"), 'dossier_id' => _request("dossier"))));
         /*
         return CopixActionGroup::process ('genericTools|Messages::getError',
         array (	'message'=>CopixI18N::get ('album.error.nothumbscreate'),
                 'back'=>CopixUrl::get('album||album',array('album_id'=>_request("album")))));
         */
     }
     $finish = false;
     $tpl = new CopixTpl();
     $vignettes = _sessionGet('modules|album|vignettes|' . _request("key"));
     //print_r($vignettes);
     $image = array_shift($vignettes);
     _sessionSet('modules|album|vignettes|' . _request("key"), $vignettes);
     if ($image == NULL) {
         $finish = true;
         $tpl->assign('url_album', _request("album"));
         $tpl->assign('url_dossier', _request("dossier"));
         $tpl->assign('url_key', _request("key"));
         $tpl->assign('finish', $finish);
         $tpl->assign('message', CopixI18N::get('album.message.thumbs_end'));
         return new CopixActionReturn(COPIX_AR_REDIRECT, CopixUrl::get('album|default|album', array('album_id' => _request("album"), 'dossier_id' => _request("dossier"))));
         // return new CopixActionReturn (COPIX_AR_DISPLAY_IN, $tpl, "album|vignettes.tpl" );
     }
     $photo_dao = null;
     $ok = Album::createThumbnail($image['album'], $image['photo'], $image['ext'], $image['taille']);
     if (!$ok) {
         if (ereg("^([0-9]+)_([0-9a-fA-F]+)\$", $image['photo'], $photo_regs)) {
             if ($photo_dao == null) {
                 $photo_dao = CopixDAOFactory::create("photo");
             }
             $photo_dao->delete($photo_regs[1]);
         }
     }
     $pAlbum = _request("album");
     $pDossier = _request("dossier");
     $pKey = _request("key");
     $nb = _sessionGet('modules|album|vignettes|nb-' . $pKey);
     $vignettes = _sessionGet('modules|album|vignettes|' . $pKey);
     $tpl->assign('message', CopixI18N::get('album.message.thumbs_create', array($nb - sizeof($vignettes), $nb)));
     $tpl->assign('bar_max', $nb);
     $tpl->assign('bar_value', $nb - sizeof($vignettes));
     $result = $tpl->fetch('vignettes.tpl');
     $ppo = new CopixPPO();
     $ppo->result = $result;
     $ppo->TITLE_PAGE = CopixI18N::get('album|album.moduleDescription');
     CopixHTMLHeader::addCSSLink(_resource("styles/module_album.css"));
     if ($finish) {
         CopixHTMLHeader::addOthers('<meta HTTP-EQUIV="REFRESH" content="3; url=' . CopixUrl::get('album||album', array('album_id' => $pAlbum, 'dossier' => $pDossier)) . '"');
     } else {
         CopixHTMLHeader::addOthers('<meta HTTP-EQUIV="REFRESH" content="0; url=' . CopixUrl::get('album||vignettes', array('album' => $pAlbum, 'dossier' => $pDossier, 'key' => $pKey)) . '"');
     }
     $ppo->CAN_CLOSE = false;
     return _arPPO($ppo, array('template' => 'vignettes_ppo.tpl', 'mainTemplate' => 'default|main_popup.php'));
     //return new CopixActionReturn (COPIX_AR_DISPLAY_IN, $tpl, "album|vignettes.tpl" );
 }
 /**
  * Mise en session des param�tres de l'�v�nement en �dition
  * @access: private.
  */
 public function _setSessionEvent($toSet)
 {
     $tmp = _ioDao('event');
     $toSession = $toSet !== null ? serialize($toSet) : null;
     _sessionSet('modules|agenda|edited_event', $toSession);
 }
 /**
  * Stock en session la liste des identifiants des agendas à afficher
  * @author Audrey Vassal <*****@*****.**>
  * @since 2006/07/28
  * @param array $pArIdAgenda tableau d'identifiant des éléments à afficher
  */
 public function setAgendaAffiches($pArIdAgenda)
 {
     _sessionSet('modules|agenda|affiches', $pArIdAgenda);
 }
 /**
  * Mise en session des paramètres de l'évènement en édition
  * @access: private.
  */
 public function _setSessionExport($toSet)
 {
     $toSession = $toSet !== null ? serialize($toSet) : null;
     _sessionSet('modules|agenda|export_agenda', $toSession);
 }
 /**
  * Stock en session le tri pour l'affichage des contenus du classeur
  *
  * @param string $folderColumn   Colonne sur laquelle trier le contenu
  * @param string $triDirection  Direction du tri
  */
 public static function setContentSort($column, $direction)
 {
     $validSorts = array('titre', 'origine', 'type', 'date', 'taille');
     if (!in_array($column, $validSorts)) {
         $column = 'titre';
     }
     _sessionSet('classeur|tri_affichage_contenu', array('colonne' => $column, 'direction' => $direction));
 }
Exemplo n.º 16
0
 public function unregisterModule($module_type, $module_id, $node_type = "ALL", $node_id = 0)
 {
     $dao = _dao("kernel|kernel_mod_enabled");
     if ($node_type == "ALL" && $node_id == 0) {
         $dao->delByModule($module_type, $module_id);
     } else {
         $dao->delete($node_type, $node_id, $module_type, $module_id);
     }
     if ($module_type == "MOD_AGENDA") {
         _sessionSet('modules|agenda', null);
     }
     return true;
 }
 /**
  * Affichage principal
  */
 public function processVoirContenu()
 {
     $ppo = new CopixPPO();
     _classInclude('classeur|classeurService');
     // Récupération des paramètres
     $ppo->classeurId = _request('classeurId', null);
     $ppo->dossierId = _request('dossierId', 0);
     $ppo->confirmMessage = _request('confirmMessage', null);
     $ppo->errorMessage = _request('errorMessage', null);
     $vue = _request('vue', null);
     // Paramètres de tri
     $triColonne = _request('triColonne', null);
     $triDirection = _request('triDirection', 'ASC');
     // Gestion des droits
     $ppo->withSubLockers = Kernel::getLevel('MOD_CLASSEUR', $ppo->classeurId) >= PROFILE_CCV_PUBLISH ? true : false;
     $ppo->conf_ModClasseur_upload = CopixConfig::exists('default|conf_ModClasseur_upload') ? CopixConfig::get('default|conf_ModClasseur_upload') : 0;
     // Récupération de l'identifiant du classeur personnel si non disponible en session
     if (is_null($ppo->idClasseurPersonnel = _sessionGet('classeur|idClasseurPersonnel'))) {
         // Création des modules inexistants.
         Kernel::createMissingModules(_currentUser()->getExtra('type'), _currentUser()->getExtra('id'));
         $modsList = Kernel::getModEnabled(_currentUser()->getExtra('type'), _currentUser()->getExtra('id'));
         foreach ($modsList as $modInfo) {
             if ($modInfo->module_type == 'MOD_CLASSEUR' && $modInfo->module_id) {
                 _sessionSet('classeur|idClasseurPersonnel', $modInfo->module_id);
                 $ppo->idClasseurPersonnel = _sessionGet('classeur|idClasseurPersonnel');
             }
         }
     }
     // Si ID du classeur non spécifié, on récupère l'identifiant du classeur perso disponible en session
     if (is_null($ppo->classeurId)) {
         $ppo->classeurId = _sessionGet('classeur|idClasseurPersonnel');
     }
     // Si type de vue spécifié, on le met en session et on le stocke en BDD
     $kernelConfUserDAO = _ioDAO('kernel|kernel_conf_user');
     if (!is_null($vue) && ($vue == 'liste' || $vue == 'vignette')) {
         _sessionSet('classeur|typeVue', $vue);
         $confVue = $kernelConfUserDAO->getByPathAndUserId('/module_classeur/vue', _currentUser()->getExtra('id'));
         if ($confVue) {
             $confVue->value = $vue;
             $kernelConfUserDAO->update($confVue);
         } else {
             $kernelConfUser = _record('kernel|kernel_conf_user');
             $kernelConfUser->path = '/module_classeur/vue';
             $kernelConfUser->id_dbuser = _currentUser()->getExtra('id');
             $kernelConfUser->value = $vue;
             $kernelConfUserDAO->insert($kernelConfUser);
         }
     }
     // Récupération de la vue en session ou BDD
     if (!is_null(_sessionGet('classeur|typeVue'))) {
         $ppo->vue = _sessionGet('classeur|typeVue');
     } else {
         $confVue = $kernelConfUserDAO->getByPathAndUserId('/module_classeur/vue', _currentUser()->getExtra('id'));
         if ($confVue) {
             _sessionSet('classeur|typeVue', $vue);
             $ppo->vue = _sessionGet('classeur|typeVue');
         } else {
             _sessionSet('classeur|typeVue', 'liste');
             $kernelConfUser = _record('kernel|kernel_conf_user');
             $kernelConfUser->path = '/module_classeur/vue';
             $kernelConfUser->id_dbuser = _currentUser()->getExtra('id');
             $kernelConfUser->value = 'liste';
             $kernelConfUserDAO->insert($kernelConfUser);
         }
     }
     // Si tri spécifié, mise en session
     if (!is_null($triColonne)) {
         ClasseurService::setContentSort($triColonne, $triDirection);
     }
     // Ouverture du dossier courant dans l'arborescence
     if ($ppo->dossierId != 0) {
         classeurService::openTree($ppo->classeurId, $ppo->dossierId);
     }
     $modParentInfo = Kernel::getModParentInfo('MOD_CLASSEUR', $ppo->classeurId);
     $ppo->TITLE_PAGE = $modParentInfo['nom'];
     $classeurDAO = _ioDAO('classeur|classeur');
     $folderDAO = _ioDAO('classeur|classeurdossier');
     $fichierDAO = _ioDAO('classeur|classeurfichier');
     $classeur = $classeurDAO->get($ppo->classeurId);
     $folder = $folderDAO->get($classeur->upload_db);
     if ($ppo->conf_ModClasseur_upload && $classeur->upload_fs) {
         $nomClasseur = $classeur->id . '-' . $classeur->cle;
         // $extension  = strtolower(strrchr($fichier->fichier, '.'));
         // $nomFichier = $fichier->id.'-'.$fichier->cle.$extension;
         $path = realpath('./upload') . '/' . $classeur->upload_fs;
         if ($classeur->upload_fs && glob($path . '/*')) {
             foreach (glob($path . '/*') as $file) {
                 if (is_file($file)) {
                     $fichier = _record('classeur|classeurfichier');
                     $title = Kernel::stripText($file);
                     $fichier->classeur_id = $classeur->id;
                     $fichier->dossier_id = $classeur->upload_db;
                     // TODO : Verifier existance
                     $fichier->titre = substr(basename($file), 0, 63);
                     $fichier->commentaire = '';
                     $fichier->fichier = basename($file);
                     $fichier->taille = file_exists($file) ? filesize($file) : 0;
                     $fichier->type = strtoupper(substr(strrchr($file, '.'), 1));
                     $fichier->cle = classeurService::createKey();
                     $fichier->date_upload = date('Y-m-d H:i:s');
                     $fichier->user_type = _currentUser()->getExtra('type');
                     $fichier->user_id = _currentUser()->getExtra('id');
                     $fichierDAO->insert($fichier);
                     $nomClasseur = $classeur->id . '-' . $classeur->cle;
                     $nomFichier = $fichier->id . '-' . $fichier->cle;
                     $extension = strtolower(strrchr($file, '.'));
                     $dir = realpath('./static/classeur') . '/' . $classeur->id . '-' . $classeur->cle . '/';
                     // Déplacement du fichier temporaire dans le classeur
                     copy($file, $dir . $fichier->id . '-' . $fichier->cle . $extension);
                     ClasseurService::doAutoRotateJpegByOrientation($dir . $fichier->id . '-' . $fichier->cle . $extension, $extension);
                     // Suppression du fichier temporaire
                     unlink($file);
                 }
                 if ($classeur->upload_db) {
                     classeurService::updateFolderInfos($folder);
                 }
             }
         }
         // print_r($classeur);
         // upload_fs
     }
     return _arPPO($ppo, 'voir_contenu.tpl');
 }