public function _createContent(&$toReturn) { $arModuleToInstall = CopixSession::get('arModuleToInstall', 'copix'); $arInstalledModule = CopixSession::get('arInstalledModule', 'copix'); $moduleName = array_pop($arModuleToInstall); $url = $this->getParam('url'); if (($message = CopixModule::installModule($moduleName)) === true) { $toReturn = _i18n('install.module.install') . ' ' . $moduleName . ' <img src="' . _resource('img/tools/valid.png') . '" />'; if (count($arModuleToInstall) > 0) { $toReturn .= _tag('copixzone', array('id' => uniqid(), 'process' => 'admin|installmodule', 'url' => $url, 'auto' => true, 'ajax' => true)); } elseif ($url) { $toReturn .= sprintf('<form action="%s" method="post"><input type="submit" value="%s"/></form>', htmlspecialchars($url), _i18n('copix:common.buttons.next')); } else { $toReturn .= "<script>\$('back').setStyle('display','');</script>"; } array_push($arInstalledModule, $moduleName); } else { array_push($arInstalledModule, $moduleName); $toReturn = _i18n('install.module.install') . ' ' . $moduleName . ' ' . _tag('popupinformation', array('img' => _resource('img/tools/delete.png')), $message); $toReturn .= '<div class="errorMessage">' . $message . '</div>'; if (count($arInstalledModule) > 0) { CopixSession::set('arModuleToDelete', $arInstalledModule, 'copix'); CopixSession::set('arInstalledModule', null, 'copix'); CopixSession::set('arModuleToInstall', null, 'copix'); $toReturn .= _tag('copixzone', array('id' => uniqid(), 'process' => 'admin|deletemodule', 'auto' => true, 'ajax' => true)); } } CopixSession::set('arModuleToInstall', $arModuleToInstall, 'copix'); CopixSession::set('arInstalledModule', $arInstalledModule, 'copix'); return true; }
/** * Retourne les données du chart * */ public function processGetChartsDatas() { $cle = CopixRequest::get('cle'); echo CopixSession::get("charts|datas|{$cle}"); CopixSession::set("charts|datas|{$cle}", null); return _arNone(); }
public function _createContent(&$toReturn) { //load PPO $ppo = new CopixPPO(); $ppo->user = _currentUser(); //if user is connected : load personal informations if ($ppo->user->isConnected()) { $ppo->animateur = _sessionGet('user_animateur') ? 1 : 0; $ppo->ien = _sessionGet('prisedecontrole_ien') ? 1 : 0; $type = $ppo->user->getExtra('type'); $sexe = $ppo->user->getExtra('sexe') == 2 ? 2 : ''; $ppo->usertype = strtolower($type) . $sexe; } // Get vocabulary catalog to use if ($myNode = CopixSession::get('myNode')) { $nodeVocabularyCatalogDAO = _ioDAO('kernel|kernel_i18n_node_vocabularycatalog'); $vocabularyCatalog = $nodeVocabularyCatalogDAO->getCatalogForNode($myNode['type'], $myNode['id']); } $ppo->vocabularyCatalogId = isset($vocabularyCatalog) ? $vocabularyCatalog->id_vc : CopixConfig::get('kernel|defaultVocabularyCatalog'); $this->addJs('js/iconito/module_auth.js'); $this->addCss('styles/module_auth.css'); $ppo->conf_Cas_actif = CopixConfig::exists('default|conf_Cas_actif') ? CopixConfig::get('default|conf_Cas_actif') : 0; $ppo->conf_Saml_actif = CopixConfig::exists('default|conf_Saml_actif') ? CopixConfig::get('default|conf_Saml_actif') : 0; //load tpl $toReturn = $this->_usePPO($ppo, 'userlogged.tpl'); }
/** * Retourne les logs sous forme d'idérateur * * @param string $pProfil Nom du profil dont on souhaite afficher le contenu * @param int $pNbItems Nombres d'items à afficher * @return Iterator */ public function getLog($pProfil, $pNbItems = 20) { // Mise en place des limites $page = CopixSession::get('log|numpage') - 1; $start = $page * $pNbItems; // Création du Search Params $sp = _daoSP()->addCondition('profile', '=', $pProfil)->orderBy(array('date', 'DESC')); $dbNbLines = _ioDAO('copixlog')->countBy($sp); CopixSession::set('log|nbpage', ceil($dbNbLines / $pNbItems)); $sp = $sp->setLimit($start, $pNbItems); return _ioDAO('copixlog')->findBy($sp); }
public function _createContent(&$toReturn) { $moduleName = CopixZone::getParam('moduleName'); $arDependency = CopixModule::getDependenciesForDelete($moduleName); $tpl = new CopixTpl(); $tpl->assign('arDependency', $arDependency); $tpl->assign('arModuleToDelete', $arDependency); CopixSession::set('arModuleToDelete', $arDependency, 'copix'); $tpl->assign('id', uniqid()); $tpl->assign('arModuleToDelete', $arDependency); $toReturn = $tpl->fetch('delete.script.tpl'); return true; }
/** * Envoie du mail */ public function processSend() { $ppo->mail = CopixSession::get('admin|email|donnees'); $ppo->mail['send'] = true; $ppo->mail['dest'] = _request("maildest"); $ppo->mail['cc'] = _request("mailcc"); $ppo->mail['cci'] = _request("mailcci"); $ppo->mail['from'] = _request("mailfrom"); $ppo->mail['fromname'] = _request("mailfromname"); $ppo->mail['subject'] = _request("mailtitle"); $ppo->mail['msg'] = _request("mailmsg"); CopixSession::set('admin|email|donnees', $ppo->mail); $arrErrors = _class("emailservices")->sendMail($ppo->mail); return CopixActionGroup::process('admin|Email::create', array('error' => $arrErrors, 'sending' => 'true')); }
public function beforeProcess(&$action) { if (CopixConfig::get('conf_Saml_actif') != 1) { return; } require_once COPIX_UTILS_PATH . '../../simplesamlphp/lib/_autoload.php'; $asId = 'iconito-sql'; if (CopixConfig::exists('default|conf_Saml_authSource') && CopixConfig::get('default|conf_Saml_authSource')) { $asId = CopixConfig::get('default|conf_Saml_authSource'); } $as = new SimpleSAML_Auth_Simple($asId); $ppo->user = _currentUser(); if ($as->isAuthenticated() && !$ppo->user->isConnected()) { $attributes = $as->getAttributes(); $uidAttribute = 'login_dbuser'; if (CopixConfig::exists('default|conf_Saml_uidAttribute') && CopixConfig::get('default|conf_Saml_uidAttribute')) { $uidAttribute = CopixConfig::get('default|conf_Saml_uidAttribute'); } $ppo->saml_user = null; if (isset($attributes[$uidAttribute]) && isset($attributes[$uidAttribute][0])) { $ppo->saml_user = $attributes[$uidAttribute][0]; } if ($ppo->saml_user) { $ppo->iconito_user = Kernel::getUserInfo("LOGIN", $ppo->saml_user); if ($ppo->iconito_user['login']) { _currentUser()->login(array('login' => $ppo->iconito_user['login'], 'assistance' => true)); $url_return = CopixUrl::get('kernel||doSelectHome'); // $url_return = CopixUrl::get ('assistance||users'); return new CopixActionReturn(COPIX_AR_REDIRECT, $url_return); } else { $ppo->cas_error = 'no-iconito-user'; return _arPpo($ppo, 'cas.tpl'); } } } if (!$as->isAuthenticated() && $ppo->user->isConnected()) { $ppo->user = _currentUser(); if ($ppo->user->isConnected()) { CopixAuth::getCurrentUser()->logout(array()); CopixEventNotifier::notify('logout', array('login' => CopixAuth::getCurrentUser()->getLogin())); CopixAuth::destroyCurrentUser(); CopixSession::destroyNamespace('default'); } } }
public function _createContent(&$toReturn) { if (!CopixPluginRegistry::isRegistered('themechooser|themechooser')) { $toReturn = ""; return true; } $tpl = new CopixTpl(); $arThemes = CopixPluginRegistry::getConfig('themechooser|themechooser')->getThemeList(); $arThemesToReturn = array(); foreach ($arThemes as $theme) { $arThemesToReturn[] = CopixTpl::getThemeInformations($theme); } $selectedTheme = CopixSession::get('themechooser|theme'); $tpl->assign('selectedTheme', $selectedTheme); $tpl->assign('arThemes', $arThemesToReturn); $toReturn = $tpl->fetch('combo.list.tpl'); return true; }
public function _createContent(&$toReturn) { if (CopixZone::getParam('arModule') !== null && is_array(CopixZone::getParam('arModule'))) { $arModule = CopixZone::getParam('arModule'); } else { $arModule = array(CopixZone::getParam('moduleName')); } $arModuleToInstall = array(); $arOrder = array(); foreach ($arModule as $moduleName) { $arDependency = CopixModule::getDependenciesForInstall($moduleName); foreach ($arDependency as $key => $dependency) { if ($dependency->kind === 'module') { //Gestion des modules en double avec les dependences if (!in_array($dependency->name, $arModuleToInstall)) { $arModuleToInstall[] = $dependency->name; $arOrder[] = $dependency->level; } else { //Gestion du niveau d'install des dependences $key = array_search($dependency->name, $arModuleToInstall); if ($arOrder[$key] < $dependency->level) { $arOrder[$key] = $dependency->level; } } } } } array_multisort($arOrder, SORT_ASC, $arModuleToInstall, SORT_DESC); $arModuleInfos = array(); $tpl = new CopixTpl(); $tpl->assign('arModuleToInstall', $arModuleToInstall); $tpl->assign('arModuleInfos', $arModuleInfos); CopixSession::set('arModuleToInstall', $arModuleToInstall, 'copix'); CopixSession::set('arInstalledModule', array(), 'copix'); $tpl->assign('id', uniqid()); $tpl->assign('url', CopixZone::getParam('url_return', _url('admin|install|manageModules'))); $tpl->assign('messageConfirm', CopixZone::getParam('messageConfirm', true)); $toReturn = $tpl->fetch('admin|install.script.tpl'); return true; }
public function _createContent(&$toReturn) { $arModuleToDelete = CopixSession::get('arModuleToDelete', 'copix'); $moduleName = array_pop($arModuleToDelete); if (($message = CopixModule::deleteModule($moduleName)) === true) { $toReturn = _i18n('install.module.delete') . ' ' . $moduleName . ' <img src="' . _resource('img/tools/valid.png') . '" />'; if (count($arModuleToDelete) > 0) { $toReturn .= _tag('copixzone', array('id' => uniqid(), 'process' => 'admin|deletemodule', 'auto' => true, 'ajax' => true)); } else { $toReturn .= "<script>\$('back').setStyle('display','');</script>"; } } else { $toReturn = _i18n('install.module.delete') . ' ' . $moduleName . ' ' . _tag('popupinformation', array('img' => _resource('img/tools/delete.png')), $message); $toReturn .= '<div class="errorMessage">' . $message . '</div>'; if (count($arModuleToDelete) > 0) { $toReturn .= _tag('copixzone', array('id' => uniqid(), 'process' => 'admin|deletemodule', 'auto' => true, 'ajax' => true)); } else { $toReturn .= "<script>\$('back').setStyle('display','');</script>"; } } CopixSession::set('arModuleToDelete', $arModuleToDelete, 'copix'); return true; }
/** * Retourne les logs sous forme d'itérateur * @param string $pProfil Le nom du profil dont on souhaite récupérer les logs * @return array */ public function getLog($pProfil) { if (is_array($profile = CopixSession::get('copix|log|firebug|' . $pProfil))) { $arLog = array(); foreach ($profile as $log) { $object = new StdClass(); $object->date = $log['date']; $object->classname = $log['classname']; $object->message = $log['message']; $object->line = $log['line']; $object->file = $log['file']; $object->functionname = $log['functionname']; $object->user = $log['user']; $object->level = $log['level']; $object->profil = $pProfil; $object->type = $log['type']; $arLog[] = $object; } $arrayObject = new ArrayObject(array_reverse($arLog)); return $arrayObject->getIterator(); } return new ArrayObject(); }
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); }
/** * Supression d'un utilisateur du groupe */ public function processRemoveUser() { $this->_validFromRequest(); $users = CopixSession::get('auth|usersgroup'); unset($users[CopixRequest::get('handlerUser')][CopixRequest::get('idUser')]); CopixSession::set('auth|usersgroup', $users); return _arRedirect(_url('auth|groups|edit')); }
/** * Supression d'un handleExcept pour le profil en cours de modification */ public function processRemoveHandleExcept() { if ($handleExceptToRemove = _request('handleExcept')) { if ($profile = CopixSession::get('admin|log|edit')) { unset($profile['handleExcept'][array_search($handleExceptToRemove, $profile['handleExcept'])]); CopixSession::set('admin|log|edit', $profile); } } return _arRedirect(_url('log|edit')); }
/** * Destruction de l'utilisateur courant */ public static function destroyCurrentUser() { CopixSession::set('copix|auth|user', null); }
public function processGetMultipleSelectContent() { $currentId = null; $classString = CopixSession::get(CopixRequest::get('class')); $arClass = explode('::', $classString); $class = _ioClass($arClass[0]); $values = $class->{$arClass}[1](); $objectMap = CopixRequest::get('objectMap'); if (!empty($objectMap)) { $tab = explode(';', $objectMap); if (count($tab) != 2) { throw new CopixTemplateTagException("[plugin select] parameter 'objectMap' must looks like idProp;captionProp"); } $idProp = $tab[0]; $captionProp = $tab[1]; } $id = CopixRequest::get('idselect'); $name = CopixRequest::get('nameselect'); $toReturn = ''; $compteur = 0; if (empty($objectMap)) { foreach ((array) $values as $key => $caption) { $currentId = uniqid(); $compteur++; $color = $compteur % 2 == 0 ? '#cccccc' : '#ffffff'; $toReturn .= '<div style="width:100%;background-color:' . $color . '"><input type="checkbox" class="check_' . $id . '" id="' . $currentId . '" value="' . $key . '" /><label id="label_' . $currentId . '" for="' . $currentId . '">' . _copix_utf8_htmlentities($caption) . '</label></div>'; } } else { //if given an object mapping request. foreach ((array) $values as $object) { $color = $compteur % 2 == 0 ? '#cccccc' : '#ffffff'; $toReturn .= '<div style="width:100%;background-color:' . $color . '"><input type="checkbox" id="' . $currentId . '" class="check_' . $id . '" value="' . $object->{$idProp} . '" /><label id="label_' . $currentId . '" for="' . $currentId . '">' . _copix_utf8_htmlentities($object->{$captionProp}) . '</label></div>'; } } //CopixSession::set(CopixRequest::get('class'),null); CopixHTMLHeader::addJsCode("\n window.addEvent('domready', function () {\n var input = \$('{$id}');\n \$\$('.check_{$id}').each (function (el) {\n el.addEvent ('change', function () {\n var value = '';\n \$('hidden_{$id}').setHTML('');\n \$\$('.check_{$id}').each ( function (el) {\n if (el.checked) {\n if (value!='') {\n value += ',';\n }\n value += \$('label_'+el.getProperty('id')).innerHTML;\n \$('hidden_{$id}').setHTML (\$('hidden_{$id}').innerHTML+'<input type=\"hidden\" name=\"" . $name . "[]\" value=\"'+el.value+'\" />');\n }\n });\n input.value = value;\n });\n });\n });\n "); return _arDirectPPO(new CopixPPO(array('MAIN' => $toReturn)), 'generictools|blank.tpl'); }
/** * Récupération d'un flash message * * @author Christophe Beyer <*****@*****.**> * @since 2012/06/21 * @param string $type : warning, success, error * @return string Contenu du flash message */ public function getFlashMessage($type) { return CopixSession::get('flash|' . $type); }
public function processQuiz() { $pId = CopixRequest::getInt('id', false); //init & secure quiz system ! if (is_null(CopixSession::get('id')) || $pId != qSession('id')) { if ($pId === false || !($quizData = _dao('quiz|quiz_quiz')->get($pId))) { return CopixActionGroup::process('genericTools|Messages::getError', array('message' => CopixI18N::get('quiz.errors.noQuiz'), 'back' => CopixUrl::get('quiz||'))); } //to propagate the quizData $quizData =& $quizData; //security for quiz $gr_id = qSession('id_gr_quiz'); if ($gr_id != $quizData->gr_id) { return $this->error('quiz.errors.noQuiz'); } //session storage : qSession('id', $pId); qSession('name', $quizData->name); qSession('opt', array('save' => $quizData->opt_save, 'show_result' => $quizData->opt_show_results)); //description $desc = $quizData->description == null ? null : $quizData->description; if ($quizData->lock == 1) { return CopixActionGroup::process('genericTools|Messages::getError', array('message' => CopixI18N::get('quiz.errors.lock'), 'back' => CopixUrl::get('quiz||'))); } //time test : if (time() < $quizData->date_start && $quizData->date_start != 0) { return CopixActionGroup::process('genericTools|Messages::getError', array('message' => CopixI18N::get('quiz.errors.beforeStart'), 'back' => CopixUrl::get('quiz||'))); } if (time() > $quizData->date_end && CopixRequest::get('action') != 'end_quiz' && $quizData->date_end != 0) { return CopixActionGroup::process('quiz|default::EndQuiz', array('id' => $pId)); } } else { $quizData = _dao('quiz|quiz_quiz')->get($pId); } //echo CopixRequest::get('action'); //ICI REROUTAGE EN FONCTION BESOIN !! //get informations from DB $userId = _currentUser()->getId(); $authorInfos = Kernel::getUserInfo('ID', $quizData->id_owner); $questionsData = _ioDAO('quiz|quiz_questions')->getQuestionsForQuiz($pId); $responsesFromUser = _ioDAO('quiz|quiz_responses')->getResponsesFromUser($userId, $pId); //si pas de questions : erreur : if (empty($questionsData)) { return CopixActionGroup::process('genericTools|Messages::getError', array('message' => CopixI18N::get('quiz.errors.noQuestions'), 'back' => CopixUrl::get('quiz||'))); } //if user have already begin the quiz : $uResp = false; $userResponses = array(); if (count($responsesFromUser) != 0) { $uResp = true; foreach ($responsesFromUser as $resp) { $userResponses[] = $resp->id_question; $userChoices[$resp->id_question] = $resp->id_choice; } array_unique($userResponses); } //fetch all question $i = 0; $userAllQuestions = true; foreach ($questionsData as $question) { $currentQuestionId = $question->id * 1; //pile for question $qQueue[] = $currentQuestionId; $questionsReturn[$i]['ct'] = $question; $questionsReturn[$i]['userResp'] = isset($userChoices[$currentQuestionId]); $i++; } if (!isset($qQueue)) { return CopixActionGroup::process('genericTools|Messages::getError', array('message' => CopixI18N::get('quiz.errors.noQuestions'), 'back' => CopixUrl::get('quiz||'))); } //data storage $this->session->save('questions', $qQueue); $this->session->save('quizId', $pId); $this->session->save('authorName', $authorInfos['nom']); $this->session->save('authorSurname', $authorInfos['prenom']); //load help $help = empty($quizData->help) ? $this->i18n('quiz.msg.noHelp') : $quizData->help; qSession('help', $help); //if qID exists in url : routing to question $qId = CopixRequest::get('qId', false); if ($qId) { return CopixActionGroup::process('quiz|default::Question', array('id' => $pId, 'qId' => (int) $qId)); } elseif (!$uResp) { //if users have not started the quiz : return CopixActionGroup::process('quiz|default::Question', array('id' => $pId, 'qId' => $qQueue[0])); } //var_dump($questionsReturn); //start TPL $this->addCss('styles/module_quiz.css'); // $this->js->button('.button'); $ppo = new CopixPPO(); //global data for quiz $ppo->name = $quizData->name; $ppo->quizId = $pId; $ppo->description = stripslashes($desc); $ppo->nameAuthor = $authorInfos['nom']; $ppo->surname = $authorInfos['prenom']; $ppo->img = $quizData->pic; //user data for quiz $ppo->uResp = $uResp; $ppo->uEnd = $userAllQuestions; //questions datas $ppo->questions = $questionsReturn; $ppo->next = $qQueue[0]; $ppo->TITLE_PAGE = 'Quiz'; if (Kernel::getLevel('MOD_QUIZ', $pId) >= PROFILE_CCV_ADMIN) { $ppo->MENU[] = array('txt' => $this->i18n('quiz.admin.listActive'), 'type' => 'list-active', 'url' => $this->url('quiz|default|default', array('qaction' => 'list'))); $ppo->MENU[] = array('txt' => $this->i18n('quiz.admin.listAll'), 'type' => 'list', 'url' => $this->url('quiz|admin|list')); $ppo->MENU[] = array('txt' => $this->i18n('quiz.admin.new'), 'type' => 'create', 'url' => $this->url('quiz|admin|modif', array('qaction' => 'new'))); } return _arPPO($ppo, 'accueil_quiz.tpl'); }
/** * On regarde s'il existe des informations de sélection en session * * Si c'est le cas, on met à jour les variables d'état du plugin * @return bool */ private function _alreadyDefinied() { $lang = null; $country = null; if (CopixSession::get('plugin|i18n|lang') !== null) { $this->_lang = CopixSession::get('plugin|i18n|lang'); } if (CopixSession::get('plugin|i18n|country') !== null) { $this->_country = CopixSession::get('plugin|i18n|country'); } return $this->_lang || $this->_country; }
/** * Logout */ public function processOut() { Logs::set(array('type' => 'LOG', 'message' => 'Logout: ' . _currentUser()->getLogin())); CopixAuth::getCurrentUser()->logout(array()); CopixEventNotifier::notify('logout', array('login' => CopixAuth::getCurrentUser()->getLogin())); CopixAuth::destroyCurrentUser(); CopixSession::destroyNamespace('default'); return _arRedirect(CopixRequest::get('auth_url_return', _url('||'))); }
public function processPreDelete() { CopixSession::set('admin|database|loginInformations', null); }
/** * Renvoie l'ecole sur laquelle on travaille selon la session utilisateur, uniquement pour les directeurs * * @author Christophe Beyer <*****@*****.**> * @since 2009/01/23 * @return integer Id de l'ecole, ou NULL si aucune (anormal) */ public function getTelepEcole() { $myNode = CopixSession::get('myNode'); return $myNode && $myNode['type'] == 'BU_ECOLE' ? $myNode['id'] : null; }
/** * Validation des modification sur le profil de cache */ public function processValid() { $type = CopixSession::get('admin|cache|edit'); if (_request('enabled')) { $type['enabled'] = true; } $type['strategy'] = _request('strategy'); if (_request('strategy_class', null, true)) { $type['strategy'] = _request('strategy_class'); } if ($dir = _request('dir')) { $type['dir'] = $dir; } $type['duration'] = _request('duration'); if ($link = _request('link')) { $type['link'] .= $type['link'] == "" ? $link : "|" . $link; } CopixSession::set('admin|cache|edit', $type); if (_request('save')) { $types = CopixConfig::instance()->copixcache_getRegisteredProfiles(); $types[$type['name']] = $type; _class('cacheConfigurationFile')->write($types); CopixSession::set('admin|cache|edit', null); return _arRedirect(_url('cache|admin')); } else { return _arRedirect(_url('cache|edit')); } }
/** * retourne le code html qui sera attaché au tpl * @return code html a passer au template */ protected function getChart($width = 400, $height = 250) { _classInclude('chart_swf|CopixSwfChart'); CopixSession::set("charts|datas|{$this->_cle}", CopixSwfChart::getChartData($this->_data)); $swf = _class('chart_swf|CopixSwfChart'); return $swf->getChart(_url("chart_swf||getChartsDatas", array("cle" => $this->_cle)), $width, $height); }
public function beforeDisplay(&$display) { $jscode = array(); $logs = array(); foreach (CopixConfig::instance()->copixlog_getRegistered() as $profil) { $name = CopixConfig::instance()->copixlog_getProfile($profil); $name = $name['strategy']; if (strtoupper($name) == "FIREBUG") { $logs[] = CopixLog::getLog($profil); } } //merge last logs to new logs if (CopixSession::get('plugin|firebug|log') !== null) { $logs = array_merge(CopixSession::get('plugin|firebug|log'), $logs); CopixSession::set('plugin|firebug|log', null); } $logs = array_reverse($logs); foreach ($logs as $arlog) { foreach ($arlog as $log) { foreach (array('message', 'file', 'line', 'level', 'classname', 'functionname', 'type') as $var) { if (isset($log->{$var})) { ${$var} = $log->{$var}; unset($log->{$var}); } else { ${$var} = null; } } $log->date = CopixDateTime::yyyymmddhhiissToDateTime($log->date); $log->location = "{$file}:{$line}"; $log->function = ($classname ? "{$classname}::" : "") . $functionname; switch ($level) { case CopixLog::INFORMATION: $type = "info"; break; case CopixLog::WARNING: case CopixLog::NOTICE: $type = "warn"; break; case CopixLog::EXCEPTION: case CopixLog::ERROR: case CopixLog::FATAL_ERROR: $type = "error"; break; default: $type = "log"; } unset($log->level); $jscode[] = sprintf('_l(%s,%s,%s,%s);', CopixJSON::encode($type), CopixJSON::encode($message), CopixJSON::encode($log->location), CopixJSON::encode($log)); } } foreach (CopixConfig::instance()->copixlog_getRegistered() as $profil) { $name = CopixConfig::instance()->copixlog_getProfile($profil); $name = $name['strategy']; if (strtoupper($name) == "FIREBUG") { CopixLog::deleteProfile($profil); } } if (count($jscode) > 0) { $jscode[] = "if(window.console && console.firebug){var _l=function(t,m,l,e){console.group('[COPIX] - '+t+' - '+l);console[t](m);console.dir(e);console.groupEnd();}"; $jscode = array_reverse($jscode); $jscode[] = "}"; CopixHTMLHeader::addJSCode(implode("\n", $jscode)); } }
/** * Validation des modifications apportées sur un utilisateur */ public function processValid() { //$user = new stdClass (); $user = _record('dbuser'); $user->login_dbuser = _request('login_dbuser', ''); $user->email_dbuser = _request('email_dbuser'); $errors = array(); //on vérifie si le login n'est pas déja pris $sp = _daoSp(); $sp->addCondition('login_dbuser', '=', $user->login_dbuser); if ($user->login_dbuser === '') { $errors['loginEmpty'] = 1; } if (count(_ioDAO('dbuser')->findBy($sp))) { $errors['loginNotAvailable'] = 1; } //on vérifie si un mot de passe est donné qu'ils soient bien identiques if (CopixRequest::get('password_dbuser')) { if (CopixRequest::get('password_dbuser') != CopixRequest::get('password_confirmation_dbuser')) { $errors['passwordDoNotMatch'] = 1; } else { $user->password_dbuser = md5(CopixRequest::get('password_dbuser')); } } else { //Comme c'est automatiquement un nouvel utilisateur, il est obligatoire de saisir un nouveau mot de passe. $errors['passwordEmpty'] = 1; } if (Copixconfig::get('auth|typeConfirm') == "email") { if (!$user->email_dbuser) { $errors['emailEmpty'] = 1; } else { try { CopixFormatter::getMail($user->email_dbuser); } catch (CopixException $e) { $errors['emailIsBad'] = 1; } } } if (Copixconfig::get('auth|typeConfirm') == "email") { $user->enabled_dbuser = 0; } else { $user->enabled_dbuser = 1; } //Si le module imageprotect est activé test la protection anti-spam if (CopixModule::isEnabled('antispam')) { CopixRequest::assert('confirmcode_dbuser'); CopixRequest::assert('idcode_dbuser'); $code = _request('confirmcode_dbuser'); $idCode = _request('idcode_dbuser'); // Test si le code de ssession est valide _classInclude('antispam|imageprotect'); if (!ImageProtect::getCode($idCode, $code)) { $errors['confirmCodeBad'] = 1; } } //redirige vers l'éditeur si il y a des erreurs if (count($errors) != 0) { $errors['idForm'] = uniqid(); CopixSession::set('auth|createForm', $user, $errors['idForm']); return _arRedirect(_url('auth|usersregister|edit', $errors)); } //sauvegarde de l'utilisateur _ioDAO('dbuser')->insert($user); return _arRedirect(_url('')); }
/** * Retourne les travaux en classe pour un agenda et une période de date donnés * * @param int $agendaId Identifiant de l'agenda * @param string $dateDebutSemaine Date de début (YYYYmmdd) * @param string $dateFinSemaine Date de fin (YYYYmmdd) * @param string $nodeType Type du node de l'agenda * @param int $nodeId Id du node de l'agenda * @param int $agendaLevel Level de l'utilisateur sur l'agenda * * @return array */ public function findTravauxEnClasseByAgendaParJour($agendaId, $dateDebutSemaine, $dateFinSemaine, $nodeType, $nodeId, $agendaLevel) { $arTravauxParJour = array(); $dateService = new DateService(); $dateCourante = $dateDebutSemaine; while ($dateCourante <= $dateFinSemaine) { $arTravauxParJour[$dateCourante] = ''; $dateCourante = $dateService->addToDate($dateService->dateBddToDateFr($dateCourante), 1, 0, 0, '/'); $dateCourante = $dateService->dateFrToDateBdd($dateCourante); } // Eleve if ($agendaLevel == PROFILE_CCV_WRITE) { $sql = 'SELECT count(module_cahierdetextes_travail.id) as count, module_agenda_work.module_agenda_agenda_id_agenda as id_agenda, "' . $nodeType . '" as node_type, ' . $nodeId . ' as node_id, module_cahierdetextes_travail.date_creation as date_creation, module_cahierdetextes_domaine.nom' . ' FROM module_cahierdetextes_travail' . ' LEFT JOIN module_agenda_work ON (module_agenda_work.module_agenda_agenda_id_agenda = :agendaId)' . ' LEFT JOIN module_cahierdetextes_travail2eleve ON (module_cahierdetextes_travail.id = module_cahierdetextes_travail2eleve.module_cahierdetextes_travail_id)' . ' LEFT JOIN module_cahierdetextes_domaine ON (module_cahierdetextes_domaine.id = module_cahierdetextes_travail.module_cahierdetextes_domaine_id)' . ' WHERE module_agenda_work.module_cahierdetextes_travail_id = module_cahierdetextes_travail.id' . ' AND module_cahierdetextes_travail2eleve.kernel_bu_eleve_idEleve=:idEleve' . ' AND module_cahierdetextes_travail.supprime = 0' . ' AND module_cahierdetextes_travail.a_faire = ' . self::TYPE_EN_CLASSE . ' AND module_cahierdetextes_travail.date_creation >= :dateDebut' . ' AND module_cahierdetextes_travail.date_creation <= :dateFin' . ' GROUP BY module_cahierdetextes_travail.id'; $results = _doQuery($sql, array('dateDebut' => $dateDebutSemaine, 'dateFin' => $dateFinSemaine, 'idEleve' => _currentUser()->getExtra('id'), 'agendaId' => $agendaId)); foreach ($results as $result) { $arTravauxParJour[$result->date_creation][] = $result; } } elseif ($agendaLevel == PROFILE_CCV_NONE && _currentUser()->getExtra('type') == 'USER_RES') { $myNode = CopixSession::get('myNode'); $eleveId = $myNode['type'] == "USER_ELE" ? $myNode['id'] : null; $sql = 'SELECT count(module_cahierdetextes_travail.id) as count, module_agenda_work.module_agenda_agenda_id_agenda as id_agenda, "' . $nodeType . '" as node_type, ' . $nodeId . ' as node_id, module_cahierdetextes_travail.date_creation as date_creation, module_cahierdetextes_domaine.nom' . ' FROM module_cahierdetextes_travail' . ' LEFT JOIN module_agenda_work ON (module_agenda_work.module_agenda_agenda_id_agenda = :agendaId)' . ' LEFT JOIN module_cahierdetextes_travail2eleve ON (module_cahierdetextes_travail.id = module_cahierdetextes_travail2eleve.module_cahierdetextes_travail_id)' . ' LEFT JOIN module_cahierdetextes_domaine ON (module_cahierdetextes_domaine.id = module_cahierdetextes_travail.module_cahierdetextes_domaine_id)' . ' WHERE module_agenda_work.module_cahierdetextes_travail_id = module_cahierdetextes_travail.id' . ' AND module_cahierdetextes_travail2eleve.kernel_bu_eleve_idEleve = :eleveId' . ' AND module_cahierdetextes_travail.supprime = 0' . ' AND module_cahierdetextes_travail.a_faire = ' . self::TYPE_EN_CLASSE . ' AND module_cahierdetextes_travail.date_creation >= :dateDebut' . ' AND module_cahierdetextes_travail.date_creation <= :dateFin' . ' GROUP BY module_cahierdetextes_travail.id'; $results = _doQuery($sql, array('dateDebut' => $dateDebutSemaine, 'dateFin' => $dateFinSemaine, 'agendaId' => $agendaId, 'eleveId' => $eleveId)); foreach ($results as $result) { $arTravauxParJour[$result->date_creation][] = $result; } } elseif ($agendaLevel == PROFILE_CCV_ADMIN) { $sql = 'SELECT count(module_cahierdetextes_travail.id) as count, module_agenda_work.module_agenda_agenda_id_agenda as id_agenda, "' . $nodeType . '" as node_type, ' . $nodeId . ' as node_id, module_cahierdetextes_travail.date_creation as date_creation, module_cahierdetextes_domaine.nom' . ' FROM module_cahierdetextes_travail' . ' LEFT JOIN module_agenda_work ON (module_agenda_work.module_agenda_agenda_id_agenda = :agendaId)' . ' LEFT JOIN module_cahierdetextes_domaine ON (module_cahierdetextes_domaine.id = module_cahierdetextes_travail.module_cahierdetextes_domaine_id)' . ' WHERE module_cahierdetextes_domaine.kernel_bu_ecole_classe_id=:nodeId' . ' AND module_agenda_work.module_cahierdetextes_travail_id = module_cahierdetextes_travail.id' . ' AND module_cahierdetextes_travail.supprime = 0' . ' AND module_cahierdetextes_travail.a_faire = ' . self::TYPE_EN_CLASSE . ' AND module_cahierdetextes_travail.date_creation >= :dateDebut' . ' AND module_cahierdetextes_travail.date_creation <= :dateFin' . ' GROUP BY module_cahierdetextes_travail.id'; $results = _doQuery($sql, array('dateDebut' => $dateDebutSemaine, 'dateFin' => $dateFinSemaine, 'nodeId' => $nodeId, 'agendaId' => $agendaId)); foreach ($results as $result) { $arTravauxParJour[$result->date_creation][] = $result; } } return $arTravauxParJour; }
/** * Récupération en session de l'aide simple en édition * @access: private. */ private function _getSessionSimpleHelp() { _daoInclude('simplehelp'); $oEdit = CopixSession::get('edithelp_object', 'simplehelp'); return isset($oEdit) ? unserialize($oEdit) : null; }
public function beforeProcess() { if (in_array(CopixSession::get('themechooser|theme'), $this->config->getThemeList())) { CopixTpl::setTheme(CopixSession::get('themechooser|theme')); } }
public function processLogout() { require_once COPIX_UTILS_PATH . '../../simplesamlphp/lib/_autoload.php'; $asId = 'iconito-sql'; if (CopixConfig::exists('default|conf_Saml_authSource') && CopixConfig::get('default|conf_Saml_authSource')) { $asId = CopixConfig::get('default|conf_Saml_authSource'); } $as = new SimpleSAML_Auth_Simple($asId); $ppo = new CopixPPO(); $ppo->user = _currentUser(); if ($ppo->user->isConnected()) { CopixAuth::getCurrentUser()->logout(array()); CopixEventNotifier::notify('logout', array('login' => CopixAuth::getCurrentUser()->getLogin())); CopixAuth::destroyCurrentUser(); CopixSession::destroyNamespace('default'); } $as->logout(_url() . 'simplesaml/saml2/idp/initSLO.php?RelayState=' . urlencode(_url('auth|saml|logout_cas'))); // $as->logout(_url ().'simplesaml/saml2/idp/initSLO.php?RelayState='.urlencode(_url() . 'logout.php')); }