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); }
/** * 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)); }
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'); }