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');
 }
 public function _createContent(&$toReturn)
 {
     $ppo = new CopixPPO();
     // Récupérations des filtres en session
     $ppo->selected = $this->getParam('selected', null);
     $ppo->withLabel = $this->getParam('with_label', true);
     $ppo->withEmpty = $this->getParam('with_empty', true);
     $ppo->labelEmpty = $this->getParam('label_empty', null);
     $ppo->name = $this->getParam('name', null);
     $ppo->all = $this->getParam('all', false);
     $grade = $this->getParam('grade', _sessionGet('grade', Kernel::getAnneeScolaireCourante()->id_as));
     if (!is_null($schoolId = $this->getParam('school_id', null))) {
         // Récupération des écoles de la ville sélectionnée pour liste déroulante
         $classroomDAO = _ioDAO('kernel|kernel_bu_ecole_classe');
         if (_currentUser()->testCredential('module:school|' . $schoolId . '|classroom|create@gestionautonome') || $ppo->all) {
             $classes = $classroomDAO->getBySchool($schoolId, $grade);
         } else {
             $groups = _currentUser()->getGroups();
             $classes = $classroomDAO->findBySchoolIdAndUserGroups($schoolId, $groups['gestionautonome|iconitogrouphandler'], $grade);
         }
         $ppo->classesIds = array();
         $ppo->classesNames = array();
         foreach ($classes as $class) {
             $ppo->classesIds[] = $class->id;
             $ppo->classesNames[] = $class->nom;
         }
     }
     $toReturn = $this->_usePPO($ppo, '_filter_class.tpl');
 }
 public function _createContent(&$toReturn)
 {
     $ppo = new CopixPPO();
     // Récupération des paramètres
     $ppo->classeurId = $this->getParam('classeurId');
     $ppo->dossierId = $this->getParam('dossierId');
     $ppo->current = $this->getParam('current');
     // Gestion des droits
     $ppo->niveauUtilisateur = Kernel::getLevel('MOD_CLASSEUR', $ppo->classeurId);
     $ppo->typeUtilisateur = _currentUser()->getExtra('type');
     $ppo->vue = !is_null(_sessionGet('classeur|typeVue')) ? _sessionGet('classeur|typeVue') : 'liste';
     $ppo->conf_ModClasseur_options = CopixConfig::exists('default|conf_ModClasseur_options') ? CopixConfig::get('default|conf_ModClasseur_options') : 0;
     // L'album public est t-il publié ?
     $ppo->estPublic = false;
     if (!is_null($ppo->dossierId) && $ppo->dossierId != 0) {
         $dossierDAO = _ioDAO('classeur|classeurdossier');
         $ppo->dossier = $dossierDAO->get($ppo->dossierId);
         if ($ppo->dossier->public) {
             $ppo->estPublic = true;
         }
     } else {
         $classeurDAO = _ioDAO('classeur|classeur');
         $classeur = $classeurDAO->get($ppo->classeurId);
         if ($classeur->public) {
             $ppo->estPublic = true;
         }
     }
     $toReturn = $this->_usePPO($ppo, '_affichage_menu.tpl');
 }
 public function testShortcut()
 {
     _sessionSet('copixtest|key', 'value');
     $this->assertEquals(_sessionGet('copixtest|key'), 'value');
     _sessionSet('copixtest|key', null);
     $this->assertEquals(_sessionGet('copixtest|key'), null);
 }
 public function _createContent(&$toReturn)
 {
     $ppo = new CopixPPO();
     // Récupération des paramètres
     $ppo->nodeId = $this->getParam('nodeId');
     $ppo->nodeType = $this->getParam('nodeType');
     $ppo->cpt = $this->getParam('cpt');
     $ppo->studentId = $this->getParam('studentId', false);
     // Récupération des relations
     $parentLinkDAO = _ioDAO('kernel_bu_lien_parental');
     $parentLinks = $parentLinkDAO->findAll();
     $ppo->linkNames = array();
     $ppo->linkIds = array();
     foreach ($parentLinks as $parentLink) {
         $ppo->linkNames[] = $parentLink->parente;
         $ppo->linkIds[] = $parentLink->id_pa;
     }
     $ppo->genderNames = array('Homme', 'Femme');
     $ppo->genderIds = array('1', '2');
     // Récupération des responsables de l'élève
     if (false !== $ppo->studentId) {
         $personsInChargeDAO = _ioDAO('kernel|kernel_bu_res');
         $ppo->persons = $personsInChargeDAO->getByStudent($ppo->studentId);
     } else {
         // Récupération des responsables en session (devant être créés lors de la création de l'élève)
         $ppo->personsInSession = _sessionGet('modules|gestionautonome|tmpAccount');
     }
     $ppo->user = _currentUser();
     // Get vocabulary catalog to use
     $nodeVocabularyCatalogDAO = _ioDAO('kernel|kernel_i18n_node_vocabularycatalog');
     $ppo->vocabularyCatalog = $nodeVocabularyCatalogDAO->getCatalogForNode($ppo->nodeType, $ppo->nodeId);
     $toReturn = $this->_usePPO($ppo, '_create_person_in_charge.tpl');
 }
 /**
  * Test si un utilisateur est reconnecté en animateur
  * @return	boolean	true si un utilisateur est connectÈ, false sinon
  * @author	Frédéric MOSSMANN
  * @since	13.11.2009
  *
  */
 public function is_animateur()
 {
     $isAnim = _sessionGet('user_animateur');
     if ($isAnim != '') {
         return true;
     }
     return false;
 }
 public function _createContent(&$toReturn)
 {
     $ppo = new CopixPPO();
     // Récupération des paramètres
     $ppo->classeurId = $this->getParam('classeurId');
     $ppo->dossierCourant = $this->getParam('dossierCourant');
     // Paramètres pour la vue popup
     $ppo->field = $this->getParam('field');
     $ppo->format = $this->getParam('format');
     $ppo->withPersonal = _sessionGet('user_animateur') ? false : $this->getParam('withPersonal', true);
     $ppo->moduleType = $this->getParam('moduleType', null);
     $ppo->moduleId = $this->getParam('moduleId', null);
     // Récupération des classeurs accessibles à l'utilisateur
     $classeurIds = array();
     // Récupération de ses ressources (obligatoire pour récupérer le classeur personnel)
     $nodes = Kernel::getMyNodes(_currentUser()->getExtra('type'), _currentUser()->getExtra('id'));
     foreach ($nodes as $node) {
         $modules = Kernel::getModEnabled($node->type, $node->id, _currentUser()->getExtra('type'), _currentUser()->getExtra('id'));
         foreach ($modules as $module) {
             if ($module->module_type == 'MOD_CLASSEUR' && Kernel::getLevel('MOD_CLASSEUR', $module->module_id) >= PROFILE_CCV_READ) {
                 // Le module correspond-il au classeur personnel
                 if ($ppo->withPersonal && strpos($module->node_type, 'USER_') !== false && ($module->node_type == _currentUser()->getExtra('type') && $module->node_id == _currentUser()->getExtra('id'))) {
                     $ppo->classeurPersonnel = $module->module_id;
                     $classeurIds[] = $module->module_id;
                 } elseif (null === $ppo->moduleType) {
                     $classeurIds[] = $module->module_id;
                 }
             }
         }
     }
     // Récupération des ressources
     if (null !== $ppo->moduleType) {
         $node = Kernel::getModParentInfo($ppo->moduleType, $ppo->moduleId);
         $modules = Kernel::getModEnabled($node['type'], $node['id'], _currentUser()->getExtra('type'), _currentUser()->getExtra('id'));
         foreach ($modules as $module) {
             if ($module->module_type == 'MOD_CLASSEUR' && Kernel::getLevel('MOD_CLASSEUR', $module->module_id) >= PROFILE_CCV_READ) {
                 $classeurIds[] = $module->module_id;
             }
         }
     }
     // Dédoublonnage des classeurs (responsables avec plusieurs enfants)
     $classeurIds = array_unique($classeurIds);
     $ppo->classeurs = array();
     $classeurDAO = _dao("classeur|classeur");
     foreach ($classeurIds as $classeurId) {
         $classeur = $classeurDAO->get($classeurId);
         $classeur->titre = $classeur->realName();
         $ppo->classeurs[] = $classeur;
     }
     _classInclude('classeurservice');
     $ppo->classeursOuverts = ClasseurService::getClasseursTreeState();
     if (!is_array($ppo->classeursOuverts)) {
         $ppo->classeursOuverts = array();
     }
     $this->flash->addCycle();
     $toReturn = $this->_usePPO($ppo, '_arborescence_classeurs.tpl');
 }
 /**
  * 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;
 }
 public function _createContent(&$toReturn)
 {
     $ppo = new CopixPPO();
     // Récupération des paramètres
     $ppo->classeurId = $this->getParam('classeurId');
     $ppo->dossierId = $this->getParam('dossierId');
     $ppo->idClasseurPersonnel = _sessionGet('classeur|idClasseurPersonnel');
     // Gestion des droits
     $ppo->niveauUtilisateur = Kernel::getLevel('MOD_CLASSEUR', $ppo->classeurId);
     // Récupération du dossier courant
     $dossierDAO = _ioDAO('classeur|classeurdossier');
     $ppo->dossier = $dossierDAO->get($ppo->dossierId);
     $toReturn = $this->_usePPO($ppo, '_actions_de_masse.tpl');
 }
 public function _createContent(&$toReturn)
 {
     $toReturn = '';
     $passwordsList = _sessionGet('modules|gestionautonome|passwordsList');
     if (!empty($passwordsList)) {
         foreach ($passwordsList as $line) {
             if (!empty($line)) {
                 $ppo = new CopixPPO();
                 $toReturn = $this->_usePPO($ppo, '_get_passwords_list.tpl');
                 break;
             }
         }
     }
 }
 /**
  * @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);
         }
     }
 }
 /**
  * Affichage des groupes de villes
  */
 public function _createContent(&$toReturn)
 {
     $ppo = new CopixPPO();
     $citiesGroupDAO = _ioDAO('kernel|kernel_bu_groupe_villes');
     if (_currentUser()->testCredential('module:*||cities_group|create@gestionautonome')) {
         $criteria = _daoSp();
         $criteria->orderBy('nom_groupe');
         $ppo->citiesGroups = $citiesGroupDAO->findBy($criteria);
     } else {
         $groups = _currentUser()->getGroups();
         $ppo->citiesGroups = $citiesGroupDAO->findByUserGroups($groups['gestionautonome|iconitogrouphandler']);
     }
     // Récupération des noeuds ouvert
     $ppo->nodes = _sessionGet('cities_groups_nodes');
     if (is_null($ppo->nodes)) {
         $ppo->nodes = array();
     }
     $toReturn = $this->_usePPO($ppo, '_cities_group.tpl');
 }
 /**
  * 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;
 }
 /**
  * Affichage des classes
  */
 public function _createContent(&$toReturn)
 {
     $ppo = new CopixPPO();
     // Récupération de l'année scolaire
     if (is_null($grade = _sessionGet('grade'))) {
         $grade = Kernel::getAnneeScolaireCourante()->id_as;
     }
     if (is_null($schoolId = $this->getParam('school_id'))) {
         $toReturn = '';
         return;
     }
     $classroomDAO = _ioDAO('kernel|kernel_bu_ecole_classe');
     if (_currentUser()->testCredential('module:school|' . $schoolId . '|classroom|create@gestionautonome')) {
         $ppo->classrooms = $classroomDAO->getBySchool($schoolId, $grade);
     } else {
         $groups = _currentUser()->getGroups();
         $ppo->classrooms = $classroomDAO->findBySchoolIdAndUserGroups($schoolId, $groups['gestionautonome|iconitogrouphandler'], $grade);
     }
     $toReturn = $this->_usePPO($ppo, '_classroom.tpl');
 }
 public function beforeAction()
 {
     _currentUser()->assertCredential('group:[current_user]');
     $this->menu = array();
     if (Kernel::isAdmin() || _currentUser()->hasAssistance('can_comptes')) {
         if (CopixConfig::exists('kernel|gestionAutonomeEnabled') && CopixConfig::get('kernel|gestionAutonomeEnabled')) {
             $this->menu[] = array('txt' => CopixI18N::get('comptes|comptes.menu.getUsers'), 'url' => CopixUrl::get('gestionautonome||showTree'), 'type' => 'users');
         } else {
             $this->menu[] = array('txt' => CopixI18N::get('comptes|comptes.menu.getUsers'), 'url' => CopixUrl::get('comptes||'), 'type' => 'users');
         }
         $this->menu[] = array('txt' => CopixI18N::get('comptes|comptes.menu.getExt'), 'url' => CopixUrl::get('comptes||getUserExt'), 'type' => 'acl');
     }
     if (Kernel::isAdmin()) {
         $this->menu[] = array('txt' => CopixI18N::get('comptes|comptes.menu.getRoles'), 'url' => CopixUrl::get('comptes||getRoles'), 'type' => 'acl', 'current' => 'current');
         $this->menu[] = array('txt' => CopixI18N::get('comptes|comptes.menu.manageGrades'), 'url' => CopixUrl::get('gestionautonome||manageGrades'), 'type' => 'agendalist');
     }
     $session = _sessionGet('modules|comptes|doLoginCreate|success');
     if ($session && is_array($session) && sizeof($session)) {
         $this->menu[] = array('txt' => CopixI18N::get('comptes.strings.showloginresult', sizeof($session)), 'url' => CopixUrl::get('comptes||getLoginResult'), 'size' => 145);
     }
 }
 /**
  * Affichage des écoles
  */
 public function _createContent(&$toReturn)
 {
     $ppo = new CopixPPO();
     if (is_null($cityId = $this->getParam('city_id'))) {
         $toReturn = '';
         return;
     }
     $schoolDAO = _ioDAO('kernel|kernel_bu_ecole');
     if (_currentUser()->testCredential('module:city|' . $cityId . '|school|create@gestionautonome')) {
         $ppo->schools = $schoolDAO->getByCity($cityId);
     } else {
         $groups = _currentUser()->getGroups();
         $ppo->schools = $schoolDAO->findByCityIdAndUserGroups($cityId, $groups['gestionautonome|iconitogrouphandler']);
     }
     // Récupération des noeuds ouvert
     $ppo->nodes = _sessionGet('schools_nodes');
     if (is_null($ppo->nodes)) {
         $ppo->nodes = array();
     }
     $toReturn = $this->_usePPO($ppo, '_school.tpl');
 }
 public function loadXml()
 {
     if (!is_null($myNode = _sessionGet('myNode'))) {
         $ppo = new CopixPPO();
         $ppo->targetId = $myNode['id'];
         $ppo->targetType = $myNode['type'];
         $ppo->myNodeInfos = Kernel::getNodeInfo($myNode['type'], $myNode['id']);
         if ($ppo->targetType == "BU_CLASSE") {
             $ppo->url_classe = urlencode($ppo->myNodeInfos['nom']);
             $ppo->siret_ecole = $ppo->myNodeInfos['ALL']->eco_siret;
         }
     }
     $this->rssUrl = $this->helpers->config('rssetagere|rss_url');
     // $this->rssUrl = $this->rssUrl.'?classe='.$ppo->url_classe.'&siren='.$ppo->url_ecole.($ppo->targetType=="BU_CLASSE"?'&classeId='.$ppo->targetId:'');
     $this->rssUrl = $this->rssUrl . '?siren=' . $ppo->siret_ecole . ($ppo->targetType == "BU_CLASSE" ? '&classe=' . $ppo->targetId : '');
     if (CopixConfig::exists('default|rssEtagereEnt') && ($ent = CopixConfig::get('default|rssEtagereEnt'))) {
         $this->rssUrl .= '&ent=' . urlencode($ent);
     }
     $this->xml = @simplexml_load_file($this->rssUrl);
     if ($this->xml == false) {
         return false;
     }
     return true;
 }
 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);
 }
 public function _createContent(&$toReturn)
 {
     $ppo = new CopixPPO();
     // Récupération des paramètres
     $id = $this->getParam('node_id');
     $ppo->type = $this->getParam('node_type');
     $ppo->tab = $this->getParam('tab') ? $this->getParam('tab') : 0;
     // Récupération de l'utilisateur connecté
     $ppo->user = _currentUser();
     if (!is_null($ppo->type) && !is_null($id)) {
         $ppo->parent = Kernel::getNodeInfo($ppo->type, $id);
         $personnelDAO = _ioDAO('kernel|kernel_bu_personnel');
         switch ($ppo->type) {
             case 'BU_GRVILLE':
                 $ppo->persons = $personnelDAO->findCitiesAgentsByCitiesGroupId($id);
                 break;
             case 'BU_VILLE':
                 $ppo->persons = $personnelDAO->findCityAgentsByCityId($id);
                 break;
             case 'BU_ECOLE':
                 $personEntityDAO = _ioDAO('kernel|kernel_bu_personnel_entite');
                 $classroomDAO = _ioDAO('kernel|kernel_bu_ecole_classe');
                 $classnames = array();
                 $ppo->persons = $personnelDAO->findAdministrationStaffAndPrincipalBySchoolId($id);
                 foreach ($ppo->persons as $person) {
                     // Pour les enseignants, on récupère leurs affectations pour déterminer s'il est possible de les désaffecter de l'école
                     if ($person->role == DAOKernel_bu_personnel_entite::ROLE_TEACHER && $personEntityDAO->hasTeacherRoleInSchool($person->numero, $id, true)) {
                         $person->hasTeacherRoleInSchool = true;
                         // Récupération du nom des classes ou il est affecté
                         $classnames = array();
                         $personEntities = $personEntityDAO->getTeacherRoleInSchool($person->numero, $id, true);
                         foreach ($personEntities as $personEntity) {
                             $class = $classroomDAO->get($personEntity->pers_entite_reference);
                             $classnames[] = $class->nom;
                         }
                         $person->classrooms = implode(', ', $classnames);
                     } else {
                         $person->hasTeacherRoleInSchool = false;
                     }
                 }
                 break;
             case 'BU_CLASSE':
                 // Récupération des enseignants
                 $ppo->persons = $personnelDAO->findTeachersByClassroomId($id);
                 // Récupération des élèves
                 $studentDAO = _ioDAO('kernel|kernel_bu_ele');
                 $ppo->students = $studentDAO->getStudentsByClass($id);
                 // Récupération des parents
                 $responsableDAO = _ioDAO('kernel|kernel_bu_res');
                 $ppo->responsables = $responsableDAO->getParentsInClasse($id);
                 _classInclude('gestionautonome|GestionAutonomeService');
                 $ppo->isTeachersLimitByClassroomReached = false;
                 if (GestionAutonomeService::hasTeachersLimitByClassroom()) {
                     $ppo->isTeachersLimitByClassroomReached = count($ppo->persons) >= CopixConfig::get('gestionautonome|teachersLimitByClassroom');
                 }
                 $ppo->isStudentsLimitByClassroomReached = false;
                 if (GestionAutonomeService::hasStudentsLimitByClassroom()) {
                     $ppo->isStudentsLimitByClassroomReached = count($ppo->students) >= CopixConfig::get('gestionautonome|studentsLimitByClassroom');
                 }
                 break;
         }
     }
     // Récupération du catalogue de vocabulaire à utiliser
     $nodeVocabularyCatalogDAO = _ioDAO('kernel|kernel_i18n_node_vocabularycatalog');
     $ppo->vocabularyCatalog = $nodeVocabularyCatalogDAO->getCatalogForNode($ppo->type, $id);
     // Récupération de l'année scolaire suivante
     $ppo->nextGrade = _ioDAO('kernel|kernel_bu_annee_scolaire')->getNextGrade(_sessionGet('grade'));
     $toReturn = $this->_usePPO($ppo, '_persons_data.tpl');
 }
 /**
  * Récupération en session des paramètres de la semaine à afficher
  * @access : private.
  */
 public function _getSessionSemaineParams()
 {
     $inSession = _sessionGet('modules|agenda|vue_semaine');
     return $inSession ? unserialize($inSession) : null;
 }
 /**
  * Récupération en session des paramètres de l'évènement en édition
  * @access: private.
  */
 public function _getSessionExport()
 {
     $inSession = _sessionGet('modules|agenda|export_agenda');
     return $inSession ? unserialize($inSession) : null;
 }
 /**
  * Retourne le tri pour l'affichage des contenus du classeur
  *
  * @return array
  */
 public static function getContentSort()
 {
     $sort = _sessionGet('classeur|tri_affichage_contenu');
     if (is_null($sort)) {
         return array('colonne' => 'titre', 'direction' => 'ASC');
     }
     return $sort;
 }
 /**
  * R�cup�ration en session des param�tres de l'�v�nement en �dition
  * @access: private.
  */
 public function _getSessionEvent()
 {
     $tmp = _ioDao('event');
     $inSession = _sessionGet('modules|agenda|edited_event');
     return $inSession ? unserialize($inSession) : null;
 }
 /**
  * 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;
 }
 /**
  * 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();
 }
 /**
  * Retourne si une entité à un rôle d'enseignant dans les classes d'une école donnée
  *
  * @param int   $id
  * @param int   $schoolId
  * @param bool  $forCurrentGrade
  *
  * @return bool
  */
 public function getTeacherRoleInSchool($id, $schoolId, $forCurrentGrade = false)
 {
     $toReturn = false;
     $schoolClassDAO = _ioDAO('kernel|kernel_bu_ecole_classe');
     if ($forCurrentGrade) {
         if (is_null($grade = _sessionGet('grade'))) {
             $grade = Kernel::getAnneeScolaireCourante()->id_as;
         }
         $classrooms = $schoolClassDAO->getBySchool($schoolId, $grade);
     } else {
         $classrooms = $schoolClassDAO->getBySchool($schoolId);
     }
     foreach ($classrooms as $classroom) {
         if ($entity = self::getByIdReferenceAndType($id, $classroom->id, 'CLASSE')) {
             $toReturn[] = $entity;
         }
     }
     return $toReturn;
 }
 /**
  * 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" );
 }
 /**
  * Récupération en session des paramètres de la leçon en édition
  * @access: private.
  */
 public function _getSessionLecon()
 {
     $tmp = _ioDao('lecon');
     $inSession = _sessionGet('modules|agenda|edited_lecon');
     return $inSession ? unserialize($inSession) : null;
 }
 public function _createContent(&$toReturn)
 {
     $ppo = new CopixPPO();
     // Récupération du context en session
     $ppo->filters = _sessionGet('gestionautonome|assignments_management_filters');
     $ppo->openedClassrooms = _sessionGet('gestionautonome|assignments_management_classroom_state');
     // Initialisation des tableaux des affectations
     $originAssignments = array();
     $destinationAssignments = array();
     $withoutAssignments = array();
     $classroomDAO = _ioDAO('kernel|kernel_bu_ecole_classe');
     $groups = _currentUser()->getGroups();
     $studentDAO = _ioDAO('kernel|kernel_bu_ele');
     $personnelDAO = _ioDAO('kernel|kernel_bu_personnel');
     // Récupération des éléves ou des enseignants
     if ($ppo->filters['searchMode'] === 'byStructure') {
         if ($ppo->filters['originUserType'] == 'USER_ELE') {
             if ($ppo->filters['mode'] == 'changeClassroom') {
                 $originAssignments = $studentDAO->findStudentsForAssignment($ppo->filters['originGrade'], array('cityGroup' => $ppo->filters['originCityGroup'], 'city' => $ppo->filters['originCity'], 'school' => $ppo->filters['originSchool'], 'classroom' => $ppo->filters['originClassroom'], 'level' => $ppo->filters['originLevel'], 'lastname' => $ppo->filters['originLastname'], 'firstname' => $ppo->filters['originFirstname']));
             } else {
                 $originAssignments = $studentDAO->findForManageAssignments($ppo->filters['originGrade'], $ppo->filters);
             }
         } elseif ($ppo->filters['originUserType'] === 'USER_ENS') {
             $originAssignments = $personnelDAO->findTeachersAssignedToSchoolByStructure($ppo->filters['originGrade'], $ppo->filters['originSchool'], $ppo->filters['originClassroom'], $ppo->filters['originLevel'], $ppo->filters['originFirstname'], $ppo->filters['originLastname']);
         }
     } elseif ($ppo->filters['searchMode'] === 'byName' && ($ppo->filters['originFirstnameSearch'] || $ppo->filters['originLastnameSearch'])) {
         if ($ppo->filters['originUserTypeSearch'] == 'USER_ELE') {
             if ($ppo->filters['mode'] === 'changeClassroom') {
                 $originAssignments = $studentDAO->findStudentsForAssignmentByName($ppo->filters['originGrade'], $ppo->filters['originFirstnameSearch'], $ppo->filters['originLastnameSearch']);
             } else {
                 $originAssignments = $studentDAO->findForManageAssignmentsByName($ppo->filters['originGrade'], $ppo->filters['destinationGrade'], $ppo->filters['originFirstnameSearch'], $ppo->filters['originLastnameSearch']);
             }
         } elseif ($ppo->filters['originUserTypeSearch'] === 'USER_ENS') {
             $originAssignments = $personnelDAO->findTeachersByName($ppo->filters['originGrade'], $ppo->filters['originFirstnameSearch'], $ppo->filters['originLastnameSearch']);
         }
     }
     if ($ppo->filters['originUserTypeSearch'] == 'USER_ELE' || $ppo->filters['originUserTypeSearch'] == 'USER_ELE') {
         $destinationAssignments = $studentDAO->findAssigned(array('grade' => $ppo->filters['destinationGrade'], 'cityGroup' => $ppo->filters['destinationCityGroup'], 'city' => $ppo->filters['destinationCity'], 'school' => $ppo->filters['destinationSchool'], 'classroom' => $ppo->filters['destinationClassroom'], 'level' => $ppo->filters['destinationLevel']), !_currentUser()->testCredential('module:school|' . $ppo->filters['destinationSchool'] . '|teacher|update@gestionautonome') ? $groups['gestionautonome|iconitogrouphandler'] : null);
     }
     if ($ppo->filters['originUserTypeSearch'] == 'USER_ENS' || $ppo->filters['originUserTypeSearch'] == 'USER_ENS') {
         $destinationAssignments = $personnelDAO->findTeachersAssignedToClassroomByStructure($ppo->filters['destinationGrade'], $ppo->filters['destinationSchool'], $ppo->filters['destinationClassroom'], $ppo->filters['destinationLevel']);
     }
     foreach ($originAssignments as $originAssignment) {
         if ($ppo->filters['originUserType'] == 'USER_ELE' && $originAssignment->current || $ppo->filters['originUserType'] == 'USER_ENS' && $originAssignment->nom_classe != '') {
             if ($ppo->filters['originUserType'] == 'USER_ENS') {
                 // Regroupement des enseignants dans la même classe. Pas de distinction des niveaux
                 $ppo->originAssignments[''][$originAssignment->id_classe][$originAssignment->user_id] = $originAssignment;
             } elseif ($ppo->filters['originUserType'] == 'USER_ELE') {
                 $ppo->originAssignments[$originAssignment->id_niveau][$originAssignment->id_classe][] = $originAssignment;
             }
             $ppo->classrooms[$originAssignment->id_classe] = $originAssignment->nom_classe;
             $ppo->classroomLevels[$originAssignment->id_niveau] = $originAssignment->nom_niveau;
         } elseif (is_null($ppo->filters['originClassroom']) || $ppo->filters['mode'] != 'changeClassroom') {
             $ppo->classrooms[0] = 'Sans affectation';
             $withoutAssignments[] = $originAssignment;
         }
     }
     foreach ($withoutAssignments as $withoutAssignment) {
         $ppo->originAssignments[''][0][] = $withoutAssignment;
     }
     // Construction du tableau des affectations de destination pour l'affichage
     if (!isset($ppo->filters['destinationClassroom'])) {
         if ($ppo->filters['originUserType'] == 'USER_ELE') {
             if (isset($ppo->filters['destinationLevel']) && !is_null($ppo->filters['destinationLevel'])) {
                 // On récupère toutes les classes disponibles pour l'école et le niveau de classe sélectionnés
                 if (_currentUser()->testCredential('module:school|' . $ppo->filters['destinationSchool'] . '|classroom|create@gestionautonome')) {
                     $destinationClassrooms = $classroomDAO->getBySchoolAndLevel($ppo->filters['destinationSchool'], $ppo->filters['destinationLevel'], $ppo->filters['destinationGrade']);
                 } else {
                     $destinationClassrooms = $classroomDAO->findBySchoolIdAndUserGroups($ppo->filters['destinationSchool'], $groups['gestionautonome|iconitogrouphandler'], $ppo->filters['destinationGrade'], $ppo->filters['destinationLevel']);
                 }
                 foreach ($destinationClassrooms as $destinationClassroom) {
                     $classroomLevel = _ioDAO('kernel|kernel_bu_classe_niveau')->get($ppo->filters['destinationLevel']);
                     $ppo->destinationAssignments[$ppo->filters['destinationLevel']][$destinationClassroom->id] = array();
                     $ppo->classrooms[$destinationClassroom->id] = $destinationClassroom->nom;
                     $ppo->classroomLevels[$ppo->filters['destinationLevel']] = $classroomLevel->niveau_court;
                 }
             } else {
                 // On récupère toutes les classes disponibles pour l'école
                 if (_currentUser()->testCredential('module:school|' . $ppo->filters['destinationSchool'] . '|classroom|create@gestionautonome')) {
                     $destinationClassrooms = $classroomDAO->getBySchool($ppo->filters['destinationSchool'], $ppo->filters['destinationGrade']);
                 } else {
                     $destinationClassrooms = $classroomDAO->findBySchoolIdAndUserGroups($ppo->filters['destinationSchool'], $groups['gestionautonome|iconitogrouphandler'], $ppo->filters['destinationGrade']);
                 }
                 foreach ($destinationClassrooms as $destinationClassroom) {
                     $levels = $destinationClassroom->getLevels();
                     foreach ($levels as $level) {
                         $ppo->destinationAssignments[$level->id_n][$destinationClassroom->id] = array();
                         $ppo->classrooms[$destinationClassroom->id] = $destinationClassroom->nom;
                         $ppo->classroomLevels[$level->id_n] = $level->niveau_court;
                     }
                 }
             }
         } else {
             if (isset($ppo->filters['destinationLevel']) && !is_null($ppo->filters['destinationLevel'])) {
                 if (_currentUser()->testCredential('module:school|' . $ppo->filters['destinationSchool'] . '|classroom|create@gestionautonome')) {
                     $destinationClassrooms = $classroomDAO->getBySchoolAndLevel($ppo->filters['destinationSchool'], $ppo->filters['destinationLevel'], $ppo->filters['destinationGrade']);
                 } else {
                     $destinationClassrooms = $classroomDAO->findBySchoolIdAndUserGroups($ppo->filters['destinationSchool'], $groups['gestionautonome|iconitogrouphandler'], $ppo->filters['destinationGrade'], $ppo->filters['destinationLevel']);
                 }
             } else {
                 if (_currentUser()->testCredential('module:school|' . $ppo->filters['destinationSchool'] . '|classroom|create@gestionautonome')) {
                     $destinationClassrooms = $classroomDAO->getBySchool($ppo->filters['destinationSchool'], $ppo->filters['destinationGrade']);
                 } else {
                     $destinationClassrooms = $classroomDAO->findBySchoolIdAndUserGroups($ppo->filters['destinationSchool'], $groups['gestionautonome|iconitogrouphandler'], $ppo->filters['destinationGrade']);
                 }
             }
             foreach ($destinationClassrooms as $destinationClassroom) {
                 $ppo->destinationAssignments[''][$destinationClassroom->id] = array();
                 $ppo->classrooms[$destinationClassroom->id] = $destinationClassroom->nom;
             }
         }
     } else {
         // Récupération de la classe sélectionnée par les filtres
         $destinationClassroom = $classroomDAO->get($ppo->filters['destinationClassroom']);
         if ($ppo->filters['originUserType'] == 'USER_ELE') {
             if (isset($ppo->filters['destinationLevel']) && !is_null($ppo->filters['destinationLevel'])) {
                 $classroomLevel = _ioDAO('kernel|kernel_bu_classe_niveau')->get($ppo->filters['destinationLevel']);
                 $ppo->destinationAssignments[$classroomLevel->id_n][$destinationClassroom->id] = array();
                 $ppo->classrooms[$destinationClassroom->id] = $destinationClassroom->nom;
                 $ppo->classroomLevels[$classroomLevel->id_n] = $classroomLevel->niveau_court;
             } else {
                 $levels = $destinationClassroom->getLevels();
                 foreach ($levels as $level) {
                     $ppo->destinationAssignments[$level->id_n][$destinationClassroom->id] = array();
                     $ppo->classrooms[$destinationClassroom->id] = $destinationClassroom->nom;
                     $ppo->classroomLevels[$level->id_n] = $level->niveau_court;
                 }
             }
         } else {
             $ppo->destinationAssignments[''][$destinationClassroom->id] = array();
             $ppo->classrooms[$destinationClassroom->id] = $destinationClassroom->nom;
         }
     }
     // Ajout des affectations au tableau des affectations de destination destiné à l'affichage
     foreach ($destinationAssignments as $destinationAssignment) {
         if ($ppo->filters['originUserType'] == 'USER_ENS') {
             // Regroupement des enseignants dans la même classe. Pas de distinction des niveaux
             $ppo->destinationAssignments[''][$destinationAssignment->id_classe][$destinationAssignment->user_id] = $destinationAssignment;
         } elseif ($ppo->filters['originUserType'] == 'USER_ELE') {
             $ppo->destinationAssignments[$destinationAssignment->id_niveau][$destinationAssignment->id_classe][] = $destinationAssignment;
         }
         $ppo->classrooms[$destinationAssignment->id_classe] = $destinationAssignment->nom_classe;
         $ppo->classroomLevels[$destinationAssignment->id_niveau] = $destinationAssignment->nom_niveau;
     }
     // Gestion des limites
     _classInclude('gestionautonome|GestionAutonomeService');
     $ppo->personsLimitByClassroom = 0;
     if ($ppo->filters['originUserType'] == 'USER_ENS') {
         if (GestionAutonomeService::hasTeachersLimitByClassroom()) {
             $ppo->personsLimitByClassroom = CopixConfig::get('gestionautonome|teachersLimitByClassroom');
         }
     } elseif ($ppo->filters['originUserType'] == 'USER_ELE') {
         if (GestionAutonomeService::hasStudentsLimitByClassroom()) {
             $ppo->personsLimitByClassroom = CopixConfig::get('gestionautonome|studentsLimitByClassroom');
         }
     }
     $ppo->totalPersonsByClassroom = array();
     foreach ($ppo->destinationAssignments as $level) {
         foreach ($level as $classroomId => $persons) {
             if (!array_key_exists($classroomId, $ppo->totalPersonsByClassroom)) {
                 $ppo->totalPersonsByClassroom[$classroomId] = 0;
             }
             $ppo->totalPersonsByClassroom[$classroomId] += count($persons);
         }
     }
     if (CopixConfig::exists('|can_search_by_name') && CopixConfig::get('|can_search_by_name')) {
         $ppo->can_search_by_name = true;
     } else {
         $ppo->can_search_by_name = false;
     }
     $toReturn = $this->_usePPO($ppo, '_manage_assignments.tpl');
 }