public function testGetPeriodeNote() { $sixieme_A = ClasseQuery::create()->findOneByNom('6ieme A'); $periode_col = $sixieme_A->getPeriodeNotes(); $this->assertEquals('2',$periode_col->count()); $this->assertEquals('1',$periode_col->getFirst()->getNumPeriode()); $this->assertEquals('2',$periode_col->getLast()->getNumPeriode()); $periode = $sixieme_A->getPeriodeNote(JEUDI_1a_s48j4); $this->assertEquals('2',$periode->getNumPeriode(),'à la date du '.JEUDI_1a_s48j4.', il doit y avoir la derniére période par défaut'); $periode = $sixieme_A->getPeriodeNote(MARDI_s40j2); $this->assertNotNull($periode,'à la date du '.MARDI_s40j2.' il ne doit y avoir la première période d assignée, donc on doit retourner null'); $this->assertEquals('1',$periode->getNumPeriode()); $periode = $sixieme_A->getPeriodeNote(MARDI_s50j2); $this->assertNotNull($periode,'à la date du '.MARDI_s50j2.', il ne doit y avoir la deuxième période d assignée, donc on doit retourner null'); $this->assertEquals('2',$periode->getNumPeriode()); $periode = $sixieme_A->getPeriodeNote(SAMEDI_a1_s19j6); $this->assertEquals('2',$periode->getNumPeriode(),'à la date du '.SAMEDI_a1_s19j6.', il doit y avoir la derniére période par défaut'); //on rajoute une autre période, dont la date de fin est non renseignée $periode_6A_3 = new PeriodeNote(); $periode_6A_3->setClasse($sixieme_A); $periode_6A_3->setNumPeriode(3); $periode_6A_3->setVerouiller('O'); $periode_6A_3->setNomPeriode('troisième trimestre'); $periode_6A_3->save(); $periode = $sixieme_A->getPeriodeNote(SAMEDI_a1_s19j6); $this->assertNotNull($periode,'à la date du '.SAMEDI_a1_s19j6.', il ne doit y avoir la troisième période d assignée meme si elle n est pas terminée'); $this->assertEquals('3',$periode->getNumPeriode()); }
if(isset($odt)&& (($odt=="exclusion")|| ($odt=="travail")|| ($odt=="autre"))) { //impression de l'exclusion en Ooo //recup des informations à exporter dans l'ODT //Nom et prenom eleve; if ($ele_login != null && $ele_login != '') { $eleve_current= EleveQuery::create()->filterByLogin($ele_login)->findOne(); $nom_ele = $eleve_current->getNom(); $prenom_ele= $eleve_current->getPrenom(); $id_classe_ele= $eleve_current->getClasse()->getId(); } //classe de l'élève if ($id_classe_ele != null && $id_classe_ele != '') { $classe = ClasseQuery::create()->findOneById($id_classe_ele); if ($classe != null) { $classe_ele = $classe->getNom(); } } require_once("./lib_tbs_courrier.php"); //fonction pour le traitement de l'adresse $tab_adresse=adresse_responsables($ele_login); // Pour le moment on ne traite que pour le R1 $ad_nom_resp=$tab_adresse[0]['civilite']; $adr1_resp=$tab_adresse[0]['adresse1']; $adr2_resp=$tab_adresse[0]['adresse2']; $adr3_resp=$tab_adresse[0]['adresse3']; $cp_ville_resp=$tab_adresse[0]['cp_ville'];
afficher_div('edt_classe','y',-20,20); } </script>\n"; } ?> <!-- Affichage des réponses--> <table class="tab_edt" summary="Liste des absents répartie par classe"> <?php // 20130416 $tab_dest_message=array(); $cpt_user=0; // On affiche la liste des classes $classe_col = ClasseQuery::create()->orderByNom()->orderByNomComplet()->distinct() ->leftJoinWith('Classe.JGroupesClasses') ->leftJoinWith('JGroupesClasses.Groupe') ->find(); $dt_debut_creneau = clone $dt_date_absence_eleve; $dt_debut_creneau->setTime($choix_creneau_obj->getHeuredebutDefiniePeriode('H'), $choix_creneau_obj->getHeuredebutDefiniePeriode('i')); $dt_fin_creneau = clone $dt_date_absence_eleve; $dt_fin_creneau->setTime($choix_creneau_obj->getHeurefinDefiniePeriode('H'), $choix_creneau_obj->getHeurefinDefiniePeriode('i')); foreach($classe_col as $classe){ //$classe = new Classe(); // On détermine si sur deux colonnes, le compte tombe juste $calc = $classe_col->count() / 2; $modulo = $classe_col->count() % 2; $num_id = 'id'.remplace_accents($classe->getNom(), 'all'); $id_classe = $classe->getId(); if ($classe_col->isEven()) {
private function import_user_profile_from_scribe() { global $mysqli; # On ne peut arriver ici quand dans le cas où on a une authentification réussie. # L'import d'un utilisateur ne peut se faire qu'à partir d'un LDAP de Scribe, ici. if (!LDAPServer::is_setup()) { return false; die(); } else { // config_cas.inc.php est le fichier d'informations de connexions au serveur cas $path = dirname(__FILE__)."/LDAPServerScribe.class.php"; include($path); # Le serveur LDAP est configuré, on y va. # Encore un dernier petit test quand même : est-ce que l'utilisateur # est bien absent de la base. $sql = "SELECT login FROM utilisateurs WHERE (login = '******')"; $resultat = mysqli_query($mysqli, $sql); if ($resultat->num_rows != "0") { $resultat->close(); return false; die(); } $resultat->close(); $ldap_server = new LDAPServerScribe; $user = $ldap_server->get_user_profile($this->login); if ($user) { # On ne refait pas de tests ou de formattage. La méthode get_user_profile # s'occupe de tout. $errors = false; // On s'occupe de tous les traitements spécifiques à chaque statut // Eleve if ($user['statut'] == 'eleve') { // On a un élève : on vérifie s'il existe dans la table 'eleves', // sur la base de son INE, ou nom et prénom. $sql_test = "SELECT * FROM eleves WHERE (no_gep = '".$user['raw']['ine'][0]."' OR (nom = '".$user['nom']."' AND prenom = '".$user['prenom']."'))"; $resultat = mysqli_query($mysqli, $sql); $test = $resultat->num_rows; $resultat->close(); if ($test == 0) { // L'élève n'existe pas du tout. On va donc le créer. $nouvel_eleve = new Eleve(); $nouvel_eleve->setLogin($this->login); $nouvel_eleve->setNom($user['nom']); $nouvel_eleve->setPrenom($user['prenom']); $nouvel_eleve->setSexe($user['raw']['entpersonsexe'][0]); $naissance = $user['raw']['entpersondatenaissance'][0]; if ($naissance != '') { $annee = mb_substr($naissance, 0, 4); $mois = mb_substr($naissance, 4, 2); $jour = mb_substr($naissance, 6, 2); } else { $annee = '0000'; $mois = '00'; $jour = '00'; } $nouvel_eleve->setNaissance("$annee-$mois-$jour"); $nouvel_eleve->setLieuNaissance(''); $nouvel_eleve->setElenoet($user['raw']['employeenumber'][0] || ''); $nouvel_eleve->setEreno(''); $nouvel_eleve->setEleid($user['raw']['intid'][0] || ''); $nouvel_eleve->setNoGep($user['raw']['ine'][0] || ''); $nouvel_eleve->setEmail($user['email']); if (!$nouvel_eleve->save()) $errors = true; /* * Récupération des CLASSES de l'eleve : * Pour chaque eleve, on parcours ses classes, et on ne prend que celles * qui correspondent à la branche de l'établissement courant, et on les stocke */ $nb_classes = $user['raw']['enteleveclasses']['count']; // Pour chaque classe trouvée.. $eleve_added_to_classe = false; for ($cpt=0; $cpt<$nb_classes; $cpt++) { if ($eleve_added_to_classe) break; $classe_from_ldap = explode("$", $user['raw']['enteleveclasses'][$cpt]); // $classe_from_ldap[0] contient le DN de l'établissement // $classe_from_ldap[1] contient l'id de la classe $code_classe = $classe_from_ldap[1]; // Si le SIREN de la classe trouvée correspond bien au SIREN de l'établissement courant, // on crée une entrée correspondante dans le tableau des classes disponibles // Sinon c'est une classe d'un autre établissement, on ne doit donc pas en tenir compte if (strcmp($classe_from_ldap[0], $ldap_server->get_base_branch()) == 0) { /* * On test si la classe que l'on souhaite ajouter existe déjà * en la cherchant dans la base ( */ $classe_courante = ClasseQuery::create() ->filterByClasse($code_classe) ->findOne(); if ($classe_courante) { foreach($classe_courante->getPeriodeNotes() as $periode) { // On associe l'élève à la classe $sql_classe = "INSERT INTO j_eleves_classes SET login = '******', id_classe = '".$classe_courante->getId()."', periode = '".$periode->getNumPeriode()."'"; $res = mysqli_query($mysqli, $sql); $res->close(); } // Fin boucle périodes $eleve_added_to_classe = true; } // Fin test classe } //Fin du if classe appartient a l'etablissement courant } //Fin du parcours des classes de l'eleve // On a maintenant un élève en base, qui appartient à sa classe // pour toutes les périodes à partir de la période courante // On ne l'associe pas aux enseignements, car c'est un peu trop // risqué et bancal pour être réalisé dynamiquement ici, dans // la mesure où l'on n'a pas une information précise sur la // composition des groupes. } else { // L'élève existe déjà dans la base. On ne créé que l'utilisateur correspondant. // Pour ça, on va devoir s'assurer que l'identifiant est identique ! $sql_login = "******".$user['raw']['ine'][0]."' OR (nom = '".$user['nom']."' AND prenom = '".$user['prenom']."'))"; $resultat = mysqli_query($mysqli, $sql); $res = $resultatè->fetch_object(); $test_login = $res->login; $resultat->close(); if ($test_login != $this->login) { // Le login est différent, on ne peut rien faire... Il faudrait renommer // le login partout dans l'application, mais il n'existe pas de mécanisme // pour le faire de manière fiable. $errors = true; } } } elseif ($user['statut'] == 'responsable') { // Si on a un responsable, il faut l'associer à un élève $resp = new ResponsableEleve(); $resp->setLogin($this->login); $resp->setNom($user['nom']); $resp->setPrenom($user['prenom']); $resp->setCivilite($user['raw']['personaltitle'][0]); $resp->setTelPers($user['raw']['homephone'][0]); $resp->setTelProf($user['raw']['telephonenumber'][0]); $resp->setTelPort($user['raw']['mobile'][0]); $resp->setMel($user['email']); $resp->setAdresseId($user['raw']['intid'][0]); // On créé l'adresse associée $adr = new Adresse(); $adr->setAdresseId($user['raw']['intid'][0]); $adr->setAdr1($user['raw']['entpersonadresse'][0]); $adr->setAdr2(''); $adr->setAdr3(''); $adr->setAdr4(''); $adr->setCommune($user['raw']['entpersonville'][0]); $adr->setCp($user['raw']['entpersoncodepostal'][0]); $adr->setPays($user['raw']['entpersonpays'][0]); $resp->setAdresse($adr); $resp->save(); $nb_eleves_a_charge = $user['raw']['entauxpersreleleveeleve']['count']; //pour chaque dn d'eleve for ($i=0;$i<$nb_eleves_a_charge;$i++) { $eleve_uid = explode(",",$user['raw']['entauxpersreleleveeleve'][$i]); $eleve_associe_login = mb_substr($eleve_uid[0], 4); $eleve_sql = "SELECT ele_id FROM eleves WHERE login = '******'"; $eleve_query = mysqli_query($mysqli, $sql); if ($eleve_query->num_rows == 1) { $eleve_associe_obj = $eleve_query->fetch_object(); $eleve_associe_ele_id = $eleve_associe_obj->ele_id; // Gepi donne un ordre aux responsables, il faut donc verifier combien de responsables sont deja enregistres pour l'eleve // On initialise le numero de responsable $numero_responsable = 1; $req_nb_resp_deja_presents = "SELECT count(*) FROM responsables2 WHERE ele_id = '$eleve_associe_ele_id'"; $res_nb_resp = mysqli_query($mysqli, $req_nb_resp_deja_presents); $nb_resp = $res_nb_resp->fetch_array($res_nb_resp); if ($nb_resp[0] > 0) { // Si deja 1 ou plusieurs responsables legaux pour cet eleve,on ajoute le nouveau responsable en incrementant son numero $numero_responsable += $nb_resp[0]; //-- // TODO: tester si on a des adresses identiques, et n'utiliser qu'un seul objet adresse dans ce cas. //-- } // Ajout de la relation entre Responsable et Eleve dans la table "responsables2" pour chaque eleve $req_ajout_lien_eleve_resp = "INSERT INTO responsables2 VALUES('$eleve_associe_ele_id','".$resp->getResponsableEleveId()."','$numero_responsable','')"; $insert_lien = mysqli_query($mysqli, $req_ajout_lien_eleve_resp); } } } elseif ($user['statut'] == 'professeur') { // Rien de spécial à ce stade. } else { // Ici : que fait-on si l'on n'a pas un statut directement reconnu // et compatible Gepi ? // On applique le statut par défaut, configuré par l'admin. $user['statut'] = getSettingValue("statut_utilisateur_defaut"); } // On créé l'utilisateur, s'il n'y a pas eu d'erreurs. if (!$errors) { $new_compte_utilisateur = new UtilisateurProfessionnel(); $new_compte_utilisateur->setAuthMode('sso'); $new_compte_utilisateur->setCivilite($user['civilite']); $new_compte_utilisateur->setEmail($user['email']); $new_compte_utilisateur->setEtat('actif'); $new_compte_utilisateur->setLogin($this->login); $new_compte_utilisateur->setNom($user['nom']); $new_compte_utilisateur->setPrenom($user['prenom']); $new_compte_utilisateur->setShowEmail('no'); $new_compte_utilisateur->setStatut($user['statut']); //$new_compte_utilisateur->save(); if ($new_compte_utilisateur->save()) { return true; } else { return false; } } } else { return false; } } }
/** * * Renvoi sous forme d'un tableau la liste des classes d'un utilisateur. Le tableau est ordonné par les noms des classes. * Manually added for N:M relationship * It seems that the groupes are passed by values and not by references. * * @param PropelPDO $con (optional) The PropelPDO connection to use. * @return PropelObjectCollection Classes[] */ public function getClasses($criteria = null, $con = null) { if(null === $this->collClasses || null !== $criteria) { if ($this->isNew() && null === $this->collClasses) { // return empty collection $this->initClasses(); } else { $collClasses = ClasseQuery::create(null, $criteria)->orderByNom()->orderByNomComplet()->filterByUtilisateurProfessionnel($this)->distinct()->find($con); if (null !== $criteria) { return $collClasses; } $this->collClasses = $collClasses; } } return $this->collClasses; }
/** * Gets a collection of Classe objects related by a many-to-many relationship * to the current object by way of the j_groupes_classes cross-reference table. * * If the $criteria is not null, it is used to always fetch the results from the database. * Otherwise the results are fetched from the database the first time, then cached. * Next time the same method is called without $criteria, the cached collection is returned. * If this Groupe is new, it will return * an empty collection or the current collection; the criteria is ignored on a new object. * * @param Criteria $criteria Optional query object to filter the query * @param PropelPDO $con Optional connection object * * @return PropelCollection|array Classe[] List of Classe objects */ public function getClasses($criteria = null, PropelPDO $con = null) { if(null === $this->collClasses || null !== $criteria) { if ($this->isNew() && null === $this->collClasses) { // return empty collection $this->initClasses(); } else { //si collJGroupesClassess est hydraté, on va regarder si les classes aussi sont hydratée $classe_hydrated = false; if (null !== $this->collJGroupesClassess) { $classe_hydrated = true; foreach($this->collJGroupesClassess as $jgroupeclasse) { if ($jgroupeclasse === null) continue; $classe_hydrated = $classe_hydrated && $jgroupeclasse->isClasseHydrated(); if (!$classe_hydrated) break; } } if (!$classe_hydrated || null !== $criteria) {//on refait une requete $collClasses = ClasseQuery::create(null, $criteria) ->filterByGroupe($this) ->find($con); if (null !== $criteria) { return $collClasses; } $this->collClasses = $collClasses; } else {//on utilise ce qui est déjà hydraté $this->initClasses(); foreach ($this->collJGroupesClassess as $jgroupeclasse) { $this->collClasses->add($jgroupeclasse->getClasse()); } } } } return $this->collClasses; }
/** * Renvoie la liste des classes de GEPI avec la liste des professeurs pour chaque classe * classe, liste prof dans cette classe * * @return array Tableau des classes de Gepi : nom, nom_complet, '', '', '', '', liste des logins des professeurs de la classe */ public function listeClassesAvecProfesseurs() { $classes = ClasseQuery::create()->find(); $retour = $this->_format == 'xml' ? '<?xml version=\'1.0\' encoding=\'UTF-8\'?><classes>' : array(); foreach ($classes as $classe) { $professeurs = $this->_format == 'xml' ? '' : array(); // Pour chaque classe, on liste les groupes $groupes = $classe->getJGroupesClassessJoinGroupe(); foreach ($groupes as $groupe) { $profs = $groupe->getGroupe()->getJGroupesProfesseurssJoinUtilisateurProfessionnel(); // Puis on récupère le login des professeurs qui ont au moins un enseignement dans cette classe. foreach ($profs as $prof) { if ($this->_format == 'xml') { $professeurs .= ' <professeur>' . $prof->getUtilisateurProfessionnel()->getlogin() . '</professeur>'; } else { $professeurs[] = $prof->getUtilisateurProfessionnel()->getlogin(); } } } if ($this->_format == 'xml') { $retour .= ' <classe> <nom>' . $classe->getNom() . '</nom> <nomcomplet>' . $classe->getNomComplet() . '</nomcomplet> ' . $professeurs . ' </classe> '; } else { $retour[] = array($classe->getNom(), $classe->getNomComplet(), '', '', '', '', $professeurs); } } // foreach ($classes as $classe){ if ($this->_format == 'xml') { $retour .= '</classes>'; } return $retour; }
/** * * Renvoi sous forme d'un tableau la liste des classes d'un eleves. * Il peut y avoir dans le modèle plusieurs classes associés à un élève, mais il faut l'éviter en pratique * * @param mixed $periode numeric, DateTime ou PeriodeNote * @return PropelObjectCollection Classes[] * */ public function getClasses($periode = null) { if ($periode != null && !is_numeric($periode) && !($periode instanceOf PeriodeNote) && !($periode instanceOf DateTime)) { throw new PropelException('$periode doit être de type numeric|DateTime|PeriodeNote'); } //on va récupérer le numéro de période $periode_num if (is_numeric($periode)) { $periode_num = $periode; } else { if ($periode instanceOf PeriodeNote) { $periode_num = $periode->getNumPeriode(); } else { //$periode devrait maintenant être un DateTime (ou null) $periode = $this->getPeriodeNote($periode);//on récupère un objet période qui englobe la date if ($periode != null) { $periode_num = $periode->getNumPeriode(); } else { return new PropelObjectCollection();//si la période est nulle, c'est que aucune classe n'a été assignée pour le paramêtre passé } } } if(!isset($this->collClasses[$periode_num]) || null === $this->collClasses[$periode_num]) { if ($this->isNew() && null === $this->collClasses[$periode_num]) { // return empty collection $this->initClasses($periode_num); } else { //on optimise si les jointure sont déjà hydratées, sinon on fait une requete $classe_hydrated = false; if (null !== $this->collJEleveClasses) { //on teste si la collection de collJEleveClasses est hydratee avec les classes if ($this->collJEleveClasses->getFirst() != null) { if ($this->collJEleveClasses->getFirst()->isClasseHydrated()) { $classe_hydrated = true; } } } if ($classe_hydrated) { foreach ($this->getJEleveClasses() as $JEleveClasse) { if ($JEleveClasse->getClasse() != null) { if(!isset($this->collClasses[$JEleveClasse->getPeriode()]) || null === $this->collClasses[$JEleveClasse->getPeriode()]) { $this->initClasses($JEleveClasse->getPeriode()); } $this->collClasses[$JEleveClasse->getPeriode()]->add($JEleveClasse->getClasse()); } } if (!isset($this->collClasses[$periode_num]) || $this->collClasses[$periode_num] == null) { //rien n'a été trouvé pour cette période, on renvoi une collection vide $this->initClasses($periode_num); } } else { $query = ClasseQuery::create(); $query->useJEleveClasseQuery()->filterByEleve($this)->filterByPeriode($periode_num)->endUse(); $query->orderByNomComplet()->distinct(); $this->collClasses[$periode_num] = $query->find(); } } } return $this->collClasses[$periode_num]; }
$titre_infobulle = "EDT de la classe de <span id='span_id_nom_classe'></span>"; $texte_infobulle = ""; $tabdiv_infobulle[] = creer_div_infobulle('edt_classe', $titre_infobulle, "", $texte_infobulle, "", 40, 0, 'y', 'y', 'n', 'n'); echo "<style type='text/css'>\r\n\t.lecorps {\r\n\t\tmargin-left:0px;\r\n\t}\r\n</style>\r\n\r\n<script type='text/javascript'>\r\n\tfunction affiche_edt_en_infobulle(id_classe, classe) {\r\n\t\tdocument.getElementById('span_id_nom_classe').innerHTML=classe;\r\n\r\n\t\tnew Ajax.Updater(\$('edt_classe_contenu_corps'),'../edt_organisation/index_edt.php?login_edt='+id_classe+'&type_edt_2=classe&visioedt=classe1&no_entete=y&no_menu=y&mode_infobulle=y',{method: 'get'});\r\n\t\tafficher_div('edt_classe','y',-20,20);\r\n\t}\r\n</script>\n"; } ?> <!-- Affichage des réponses--> <table class="tab_edt" summary="Liste des absents répartie par classe"> <?php // 20130416 $tab_dest_message = array(); $cpt_user = 0; // On affiche la liste des classes $classe_col = ClasseQuery::create()->orderByNom()->orderByNomComplet()->distinct()->leftJoinWith('Classe.JGroupesClasses')->leftJoinWith('JGroupesClasses.Groupe')->find(); $dt_debut_creneau = clone $dt_date_absence_eleve; $dt_debut_creneau->setTime($choix_creneau_obj->getHeuredebutDefiniePeriode('H'), $choix_creneau_obj->getHeuredebutDefiniePeriode('i')); $dt_fin_creneau = clone $dt_date_absence_eleve; $dt_fin_creneau->setTime($choix_creneau_obj->getHeurefinDefiniePeriode('H'), $choix_creneau_obj->getHeurefinDefiniePeriode('i')); foreach ($classe_col as $classe) { //$classe = new Classe(); // On détermine si sur deux colonnes, le compte tombe juste $calc = $classe_col->count() / 2; $modulo = $classe_col->count() % 2; $num_id = 'id' . remplace_accents($classe->getNom(), 'all'); $id_classe = $classe->getId(); if ($classe_col->isEven()) { echo '<tr>'; } // echo ' <td>
echo '<div>'; //echo '<nobr>'; echo '<span style="white-space: nowrap;"> '; echo 'Classe'; echo '<input type="image" src="../images/up.png" title="monter" style="width:15px; height:15px; vertical-align: middle;'; if ($order == "asc_classe") {echo "border-style: solid; border-color: red;";} else {echo "border-style: solid; border-color: silver;";} echo 'border-width:1px;" alt="" name="order" value="asc_classe"/>'; echo '<input type="image" src="../images/down.png" title="monter" style="width:15px; height:15px; vertical-align: middle;'; if ($order == "des_classe") {echo "border-style: solid; border-color: red;";} else {echo "border-style: solid; border-color: silver;";} echo 'border-width:1px;" alt="" name="order" value="des_classe"/>'; //echo '</nobr>'; echo '</span>'; echo '<br />'; echo ("<select name=\"filter_classe\" onchange='submit()'>"); echo "<option value=''></option>\n"; foreach (ClasseQuery::create()->orderByNom()->orderByNomComplet()->distinct()->find() as $classe) { echo "<option value='".$classe->getId()."'"; if (getFiltreRechercheParam('filter_classe') === (string) $classe->getId()) echo " SELECTED "; echo ">"; echo $classe->getNom(); echo "</option>\n"; } echo "</select>"; echo '</div>'; //en tete filtre groupe echo '<div>'; //echo '<nobr>'; echo '<span style="white-space: nowrap;"> '; echo 'Groupe'; echo '<input type="image" src="../images/up.png" title="monter" style="width:15px; height:15px; vertical-align: middle;';
/** * Gets the number of Classe objects related by a many-to-many relationship * to the current object by way of the j_groupes_classes cross-reference table. * * @param Criteria $criteria Optional query object to filter the query * @param boolean $distinct Set to true to force count distinct * @param PropelPDO $con Optional connection object * * @return int the number of related Classe objects */ public function countClasses($criteria = null, $distinct = false, PropelPDO $con = null) { if(null === $this->collClasses || null !== $criteria) { if ($this->isNew() && null === $this->collClasses) { return 0; } else { $query = ClasseQuery::create(null, $criteria); if($distinct) { $query->distinct(); } return $query ->filterByGroupe($this) ->count($con); } } else { return count($this->collClasses); } }
/** * Removes this object from datastore and sets delete attribute. * * @param PropelPDO $con * @return void * @throws PropelException * @see BaseObject::setDeleted() * @see BaseObject::isDeleted() */ public function delete(PropelPDO $con = null) { if ($this->isDeleted()) { throw new PropelException("This object has already been deleted."); } if ($con === null) { $con = Propel::getConnection(ClassePeer::DATABASE_NAME, Propel::CONNECTION_WRITE); } $con->beginTransaction(); try { $deleteQuery = ClasseQuery::create() ->filterByPrimaryKey($this->getPrimaryKey()); $ret = $this->preDelete($con); if ($ret) { $deleteQuery->delete($con); $this->postDelete($con); $con->commit(); $this->setDeleted(true); } else { $con->commit(); } } catch (Exception $e) { $con->rollBack(); throw $e; } }
} // On se connecte au LDAP $ldap->connect(); $equipes = $ldap->get_all_equipes(); $nb_equipes = $equipes['count']; $nombre_enseignements = 0; # On initialise un tableau avec juste les données nécessaires $donnees_equipes = array(); for ($cpt = 0; $cpt < $equipes['count']; $cpt++) { $code_classe = str_replace('profs-', '', $equipes[$cpt]['cn'][0]); $donnees_equipes[$code_classe] = array(); for ($i = 0; $i < $equipes[$cpt]['memberuid']['count']; $i++) { $donnees_equipes[$code_classe][] = $equipes[$cpt]['memberuid'][$i]; } } $classes = ClasseQuery::create()->setFormatter(ModelCriteria::FORMAT_ON_DEMAND)->find(); // On boucle sur chaque équipe, ce qui revient à boucler sur les classes foreach ($classes as $classe_courante) { # On a une classe, on poursuit if (array_key_exists($classe_courante->getNom(), $donnees_equipes)) { # On initialisation la liste des élèves de la classe $students_query = mysqli_query($GLOBALS["mysqli"], "SELECT login FROM j_eleves_classes WHERE \n id_classe = '" . $classe_courante->getId() . "' AND\n periode = '1'"); unset($students); $students = array(); while ($row = mysqli_fetch_object($students_query)) { $students[] = $row->login; } # On passe tous les profs de l'équipe foreach ($donnees_equipes[$classe_courante->getNom()] as $login_prof) { $prof = UtilisateurProfessionnelPeer::retrieveByPK($login_prof); if ($prof) {
/** * Get the associated Classe object * * @param PropelPDO Optional Connection object. * @return Classe The associated Classe object. * @throws PropelException */ public function getClasse(PropelPDO $con = null) { if ($this->aClasse === null && ($this->id_classe !== null)) { $this->aClasse = ClasseQuery::create()->findPk($this->id_classe, $con); /* The following can be used additionally to guarantee the related object contains a reference to this object. This level of coupling may, however, be undesirable since it could result in an only partially populated collection in the referenced object. $this->aClasse->addJScolClassess($this); */ } return $this->aClasse; }
$message_enregistrement .= "<span style='color :red'>Erreur : Probleme avec le parametre id_cours</span><br/>"; } } } else { $current_creneau = EdtCreneauQuery::create()->findPk($id_creneau); if ($current_creneau == null) { $message_enregistrement .= "<span style='color :red'>Erreur : Probleme avec le parametre id_creneau</span><br/>"; } } if ($type_selection == 'id_groupe') { $current_groupe = GroupeQuery::create()->findPk($id_groupe); if ($current_groupe == null) { $message_enregistrement .= "<span style='color :red'>Erreur : Probleme avec le parametre id_groupe</span><br/>"; } } elseif ($type_selection == 'id_classe') { $current_classe = ClasseQuery::create()->findPk($id_classe); if ($current_classe == null) { $message_enregistrement .= "<span style='color :red'>Erreur : Probleme avec le parametre id_classe</span><br/>"; } } elseif ($type_selection == 'id_aid') { $current_aid = AidDetailsQuery::create()->findPk($id_aid); if ($current_aid == null) { $message_enregistrement .= "<span style='color :red'>Erreur : Probleme avec le parametre id_aid</span><br/>"; } } $id_groupe = null; $id_classe = null; $id_aid = null; $id_creneau = null; $id_cours = null; if ($current_groupe != null) {
echo "border-style: solid; border-color: silver;"; } echo 'border-width:1px;" alt="" name="order" value="asc_eleve" onclick="this.form.order.value = this.value"/>'; echo '<input type="image" src="../images/down.png" title="descendre" style="vertical-align: middle;width:15px; height:15px; '; if ($order == "des_eleve") { echo "border-style: solid; border-color: red;"; } else { echo "border-style: solid; border-color: silver;"; } echo 'border-width:1px;" alt="" name="order" value="des_eleve" onclick="this.form.order.value = this.value"/>'; //echo '</nobr>'; echo '</span>'; echo '<br /><input type="text" name="filter_eleve" value="' . getFiltreRechercheParam('filter_eleve') . '" size="8"/>'; //on affiche une boite de selection avec les classe if (getSettingValue("GepiAccesAbsTouteClasseCpe") == 'yes' && $utilisateur->getStatut() == "cpe") { $classe_col = ClasseQuery::create()->orderByNom()->orderByNomComplet()->find(); } else { $classe_col = $utilisateur->getClasses(); } if (!$classe_col->isEmpty()) { echo '<br />'; // echo '<input type="hidden" name="type_selection" value="id_classe"/>'; echo "<select multiple name='filter_classe[]' onchange='submit()' style='width:100%' title='Sélectionnez une ou plusieurs classes'>"; // echo "<option value='SANS'>choisissez une classe</option>\n"; echo "<option value='SANS'>Toutes les classes</option>\n"; foreach ($classe_col as $classe) { echo "<option value='" . $classe->getId() . "'"; if (isFiltreRechercheParam('filter_classe') && getFiltreRechercheParam('filter_classe') != "SANS") { if (in_array($classe->getId(), getFiltreRechercheParam('filter_classe'))) { echo " selected='selected' "; }
/** * Returns a new ClasseQuery object. * * @param string $modelAlias The alias of a model in the query * @param Criteria $criteria Optional Criteria to build the query from * * @return ClasseQuery */ public static function create($modelAlias = null, $criteria = null) { if ($criteria instanceof ClasseQuery) { return $criteria; } $query = new ClasseQuery(); if (null !== $modelAlias) { $query->setModelAlias($modelAlias); } if ($criteria instanceof Criteria) { $query->mergeWith($criteria); } return $query; }