Rectification et factorisation des groupes (page, manager, database, repo) + commentaire phpexcell car fait bugger

This commit is contained in:
xdrm-brackets 2015-11-12 09:18:10 +01:00
parent 0b790cdfe5
commit b985e2f0ae
8 changed files with 158 additions and 152 deletions

View File

@ -41,7 +41,7 @@ require_once __ROOT__.'/manager/database.php';
$areSetParam = isset($request->etudiant) && isset($request->semestre) && isset($request->annee); // les arguments existent $areSetParam = isset($request->etudiant) && isset($request->semestre) && isset($request->annee); // les arguments existent
$typeOkParam = $areSetParam && is_string($request->etudiant) && is_string($request->semestre) && is_string($request->annee); // si c'est des strings $typeOkParam = $areSetParam && is_string($request->etudiant) && is_string($request->semestre) && is_string($request->annee); // si c'est des strings
$nEmptyParam = $typeOkParam && strlen($request->etudiant) > 0 && is_numeric($request->semestre) && is_numeric($request->annee); // des bon types $nEmptyParam = $typeOkParam && strlen($request->etudiant) > 0 && is_numeric($request->semestre) && is_numeric($request->annee); // des bon types
$etudiantCheck = $nEmptyParam && preg_match('/^[\w -]{6,100}$/i', $request->etudiant); // nom bon format $etudiantCheck = $nEmptyParam && preg_match('/^[\w -]{3,50}$/i', $request->etudiant); // nom bon format
$semestreCheck = $etudiantCheck && preg_match('/^[1-4]{1}$/i', $request->semestre); // semestre (semestre) bon format $semestreCheck = $etudiantCheck && preg_match('/^[1-4]{1}$/i', $request->semestre); // semestre (semestre) bon format
$anneeCheck = $semestreCheck && preg_match('/^[0-9]{4}$/i', $request->annee); // semestre (annee) bon format $anneeCheck = $semestreCheck && preg_match('/^[0-9]{4}$/i', $request->annee); // semestre (annee) bon format

View File

@ -176,26 +176,8 @@ class DataBase{
if( !($groupeUID=groupRepo::UID($groupe)) ) return 'unknown_group'; else $groupeUID = (int) $groupeUID; if( !($groupeUID=groupRepo::UID($groupe)) ) return 'unknown_group'; else $groupeUID = (int) $groupeUID;
if( !($semestreUID=semestreRepo::UID($semestre, $annee)) ) return 'unknown_semestre'; else $semestreUID = (int) $semestreUID; if( !($semestreUID=semestreRepo::UID($semestre, $annee)) ) return 'unknown_semestre'; else $semestreUID = (int) $semestreUID;
// on retourne la liste des utilisateurs et on supprime les doublons à indices numériques
return DataBase::delNumeric( groupRepo::membres($groupeUID, $semestreUID) );
// si le groupe existe => on récupère ses utilisateurs
$appartenance = DataBase::getPDO()->prepare("SELECT u.identifiant, u.prenom, u.nom, u.mail, u.droits, s.nom as semestre ".
"FROM utilisateur as u, groupe as g, semestre as s, appartenance as app ".
"WHERE u.identifiant = app.id_etudiant ".
"AND g.id_groupe = app.id_groupe ".
"AND s.id_semestre = app.id_semestre ". // à virer (peut-être)
"AND g.id_groupe = :groupeUID ".
"AND s.id_semestre = :semestreUID ".
"ORDER BY u.prenom, u.nom");
$appartenance->execute(array(
':groupeUID' => $groupeUID,
':semestreUID' => $semestreUID
));
// on fetch tous les utilisateurs & on supprime les doublons des entrées (indice numérique)
return DataBase::delNumeric( $appartenance->fetchAll() ); // on retourne le tout
} }
@ -219,19 +201,11 @@ class DataBase{
':semestreUID' => $semestreUID ':semestreUID' => $semestreUID
)); ));
$grouplist = array(); // contiendra tout les groupes $grouplist = $getGroupesUID->fetchAll(); // contiendra tout les groupes
// on parcourt tous les groupes // on parcourt tous les groupes
while( $groupeUID = $getGroupesUID->fetch() ){ foreach($grouplist as $iter=>$val)
$grouplist[$iter]['userlist'] = groupRepo::membres($grouplist[$iter]['id'], $semestreUID); // on charge la liste des utilisateurs de ce groupe
$groupe = new stdClass();
$groupe->nom = $groupeUID['nom']; // attribut "nom" ajouté au groupe
$groupe->semestre = $groupeUID['semestre'];
$groupe->userlist = groupRepo::membres($groupeUID['id'], $semestreUID); // on charge la liste des utilisateurs de ce groupe
array_push($grouplist, $groupe); // on l'ajoute au résultat
}
return $grouplist; // sinon on retourne le tableau return $grouplist; // sinon on retourne le tableau
@ -240,56 +214,54 @@ class DataBase{
/******************************************************************/ /******************************************************************/
/*** retourne la liste des utilisateurs des groupes d'une année ***/ /*** retourne la liste des utilisateurs des groupes d'une année ***/
/******************************************************************/ /******************************************************************/
public function listeEtudiantsTousGroupesAnnee($annee, $semestre_pair, $pSemestre, $pGroupe){ public function listeEtudiantsTousGroupesAnnee($annee, $semestre_pair, $pSemestre=null, $pGroupe=null){ // pSemestre/pGroupe optionnels
// définition des paramètres optionnels // définition des paramètres optionnels
$semestreDeb = 1; $semestreFin = 4; $semestreOpt = '%';
if( $pSemestre != null ){ $semestreDeb = $pSemestre; $semestreFin = $pSemestre; } // semestre donné uniquement (si param non null) if( $pSemestre != null ){ $semestreOpt = $pSemestre; } // semestre donné uniquement (si param non null)
$groupeOpt = '%'; $groupeOpt = '%';
if( $pGroupe != null ){ $groupeOpt = $pGroupe; } // si le groupe est donné, on le définit if( $pGroupe != null ){ $groupeOpt = $pGroupe; } // si le groupe est donné, on le définit
/*** on cherche un semestre avec ce rang et cette année (qui est unique) ***/ /*** on cherche un semestre avec ce rang et cette année (qui est unique) ***/
$checkAnnee = DataBase::getPDO()->prepare("SELECT id_semestre as id FROM semestre WHERE annee = :annee"); $checkAnnee = DataBase::getPDO()->prepare("SELECT id_semestre as id FROM semestre WHERE annee = :annee");
$checkAnnee->execute(array( $checkAnnee->execute(array( ':annee' => $annee ));
':annee' => $annee if( !( $checkAnnee->fetch()['id'] ) ) return 'unknown_year';
));
// si on trouve pas, on retourne "unknown_year"
if( !( $checkAnnee->fetch()['id'] ) )
return 'unknown_year';
// on cherche tout les groupes du même semestre de la même année // // on cherche tout les groupes des semestres courants de l'année
$getGroupesUID = DataBase::getPDO()->prepare("SELECT DISTINCT g.id_groupe as id, g.nom, s.rang, s.id_semestre, s.nom as semestre ". // $getGroupesUID = DataBase::getPDO()->prepare("SELECT DISTINCT g.id_groupe as id, g.nom, s.rang, s.id_semestre, s.nom as semestre ".
"FROM groupe as g, semestre as s, appartenance as app ". // "FROM groupe as g, semestre as s, appartenance as app ".
"WHERE g.id_groupe = app.id_groupe ". // "WHERE g.id_groupe = app.id_groupe ".
"AND s.id_semestre = app.id_semestre ". // "AND s.id_semestre = app.id_semestre ".
"AND g.nom LIKE '".$groupeOpt."' ". // "AND g.nom LIKE '".$groupeOpt."' ".
"AND s.rang BETWEEN :semestreDeb AND :semestreFin ". // "AND s.nom LIKE '".$semestreOpt."' ".
"AND s.rang % 2 = :semestre_pair ". // "AND s.rang % 2 = :semestre_pair ".
"AND s.annee = :annee ". // "AND s.annee = :annee ".
"ORDER BY g.nom"); // "ORDER BY g.nom");
$getGroupesUID->execute(array( // $getGroupesUID->execute(array(
':semestreDeb' => $semestreDeb, // ':semestre_pair' => ($semestre_pair) ? '0' : '1',
':semestreFin' => $semestreFin, // ':annee' => $annee
':semestre_pair' => ($semestre_pair) ? '0' : '1', // ));
':annee' => $annee
));
$grouplist = array(); // contiendra tout les groupes // $grouplist = array(); // contiendra tout les groupes
// on parcourt tous les groupes $grouplist = DataBase::delNumeric( groupRepo::forYear($semestre_pair, $annee, $pSemestre, $pGroupe) );
while( $groupeUID = $getGroupesUID->fetch() ){
$groupe = new stdClass(); foreach($grouplist as $iter=>$val)
$groupe->nom = $groupeUID['nom']; // attribut "nom" ajouté au groupe $grouplist[$iter]['userlist'] = groupRepo::membres($grouplist[$iter]['id'], $grouplist[$iter]['id_semestre']);
$groupe->semestre = $groupeUID['semestre']; // // on parcourt tous les groupes
// while( $groupeUID = $getGroupesUID->fetch() ){
$groupe->userlist = groupRepo::membres($groupeUID['id'], $groupeUID['id_semestre']); // on charge la liste des utilisateurs de ce groupe // $groupe = new stdClass();
// $groupe->nom = $groupeUID['nom']; // attribut "nom" ajouté au groupe
// $groupe->semestre = $groupeUID['semestre'];
array_push($grouplist, $groupe); // on l'ajoute au résultat // $groupe->userlist = groupRepo::membres($groupeUID['id'], $groupeUID['id_semestre']); // on charge la liste des utilisateurs de ce groupe
}
// array_push($grouplist, $groupe); // on l'ajoute au résultat
// }
return $grouplist; // sinon on retourne le tableau return $grouplist; // sinon on retourne le tableau

View File

@ -169,7 +169,7 @@ require_once __ROOT__.'/manager/database.php';
$enseignantCheck = $anneeCheck && preg_match('/^[\w -]{3,50}$/i', $request->enseignant); // enseignant (annee) bon format $enseignantCheck = $anneeCheck && preg_match('/^[\w -]{3,50}$/i', $request->enseignant); // enseignant (annee) bon format
// paramètres optionnels // paramètres optionnels
$optionalSemestre = isset($request->semestre) && is_numeric($request->semestre) && preg_match('/^[1-4]{1}$/i', $request->semestre); $optionalSemestre = isset($request->semestre) && is_string($request->semestre) && preg_match('/^S[0-9]{1}$/i', $request->semestre);
$optionalGroupe = isset($request->groupe) && is_string($request->groupe) && strlen($request->groupe) > 1 && preg_match('/^[a-z0-9 -]{1,10}$/i', $request->groupe); $optionalGroupe = isset($request->groupe) && is_string($request->groupe) && strlen($request->groupe) > 1 && preg_match('/^[a-z0-9 -]{1,10}$/i', $request->groupe);
// définition (ou pas) des paramètres optionnels // définition (ou pas) des paramètres optionnels
@ -207,7 +207,7 @@ require_once __ROOT__.'/manager/database.php';
// paramètres optionnels // paramètres optionnels
$optionalSemestre = isset($request->semestre) && is_numeric($request->semestre) && preg_match('/^[1-4]{1}$/i', $request->semestre); $optionalSemestre = isset($request->semestre) && is_string($request->semestre) && preg_match('/^S[0-9]{1}$/i', $request->semestre);
$optionalGroupe = isset($request->groupe) && is_string($request->groupe) && strlen($request->groupe) > 1 && preg_match('/^[a-z0-9 -]{1,10}$/i', $request->groupe); $optionalGroupe = isset($request->groupe) && is_string($request->groupe) && strlen($request->groupe) > 1 && preg_match('/^[a-z0-9 -]{1,10}$/i', $request->groupe);
// définition (ou pas) des paramètres optionnels // définition (ou pas) des paramètres optionnels

View File

@ -47,7 +47,7 @@ require_once __ROOT__.'/manager/database.php';
$areSetParam = isset($request->etudiant) && isset($request->semestre) && isset($request->annee); // les arguments existent $areSetParam = isset($request->etudiant) && isset($request->semestre) && isset($request->annee); // les arguments existent
$typeOkParam = $areSetParam && is_string($request->etudiant) && is_string($request->semestre) && is_string($request->annee); // si c'est des strings $typeOkParam = $areSetParam && is_string($request->etudiant) && is_string($request->semestre) && is_string($request->annee); // si c'est des strings
$nEmptyParam = $typeOkParam && strlen($request->etudiant) > 0 && is_numeric($request->semestre) && is_numeric($request->annee); // des bon types $nEmptyParam = $typeOkParam && strlen($request->etudiant) > 0 && is_numeric($request->semestre) && is_numeric($request->annee); // des bon types
$etudiantCheck = $nEmptyParam && preg_match('/^[\w -]{6,100}$/i', $request->etudiant); // nom bon format $etudiantCheck = $nEmptyParam && preg_match('/^[\w -]{3,50}$/i', $request->etudiant); // nom bon format
$semestreCheck = $etudiantCheck && preg_match('/^[1-4]{1}$/i', $request->semestre); // semestre (semestre) bon format $semestreCheck = $etudiantCheck && preg_match('/^[1-4]{1}$/i', $request->semestre); // semestre (semestre) bon format
$anneeCheck = $semestreCheck && preg_match('/^[0-9]{4}$/i', $request->annee); // semestre (annee) bon format $anneeCheck = $semestreCheck && preg_match('/^[0-9]{4}$/i', $request->annee); // semestre (annee) bon format
@ -78,7 +78,7 @@ require_once __ROOT__.'/manager/database.php';
$areSetParam = isset($request->enseignant)&& isset($request->annee); // les arguments existent $areSetParam = isset($request->enseignant)&& isset($request->annee); // les arguments existent
$typeOkParam = $areSetParam && is_string($request->enseignant) && is_string($request->annee); // si c'est des strings $typeOkParam = $areSetParam && is_string($request->enseignant) && is_string($request->annee); // si c'est des strings
$nEmptyParam = $typeOkParam && strlen($request->enseignant) > 0 && is_numeric($request->annee); // des bon types $nEmptyParam = $typeOkParam && strlen($request->enseignant) > 0 && is_numeric($request->annee); // des bon types
$enseignantCheck = $nEmptyParam && preg_match('/^[\w -]{6,100}$/i', $request->enseignant); // nom bon format $enseignantCheck = $nEmptyParam && preg_match('/^[\w -]{3,50}$/i', $request->enseignant); // nom bon format
$anneeCheck = $enseignantCheck && preg_match('/^[0-9]{4}$/i', $request->annee); // semestre (annee) bon format $anneeCheck = $enseignantCheck && preg_match('/^[0-9]{4}$/i', $request->annee); // semestre (annee) bon format
if( $anneeCheck ){ // si tout les paramètres sont bons if( $anneeCheck ){ // si tout les paramètres sont bons

View File

@ -202,7 +202,41 @@ class groupRepo extends DBAccess{
/* RETOURNE TOUS LES GROUPES DES SEMESTRES COURANT D'UNE ANNÉE
*
* @semestre_pair<Boolean> VRAI si le semestre courant est pair
* @annee<int> L'année en cours
*
* @pSemestre<int> ***OPTIONNEL*** le nom du semestre
* @pGroupe<String> ***OPTIONNEL*** le nom du groupe
*
*
* @return groupes<Array> retourne la liste des groupes correspondant aux critères
*
*/
public static function forYear($semestre_pair, $annee, $pSemestre=null, $pGroupe=null){
// si le semestre est donné, on cherche uniquement celui-ci, sinon on les affiche tous
$semestreOpt = '%';
if( $pSemestre != null ){ $semestreOpt = $pSemestre; }
// si le groupe est donné, on cherche uniquement celui-ci, sinon on les affiche tous
$groupeOpt = '%';
if( $pGroupe != null ){ $groupeOpt = $pGroupe; }
$getGroupeList = DataBase::getPDO()->prepare("SELECT DISTINCT g.id_groupe as id, g.nom, s.rang, s.id_semestre, s.nom as semestre ".
"FROM groupe as g, semestre as s, appartenance as app ".
"WHERE g.id_groupe = app.id_groupe ".
"AND s.id_semestre = app.id_semestre ".
"AND g.nom LIKE '".$groupeOpt."' ".
"AND s.nom LIKE '".$semestreOpt."' ".
"AND s.rang % 2 = :semestre_pair ".
"AND s.annee = :annee ".
"ORDER BY g.nom");
$getGroupeList->execute(array( ':semestre_pair' => ($semestre_pair) ? '0' : '1', ':annee' => $annee ));
return DataBase::delNumeric( $getGroupeList->fetchAll() );
}
} }

View File

@ -47,7 +47,7 @@ require_once __ROOT__.'/manager/database.php';
$typeOkParam = $areSetParam && is_string($request->identifiant) && is_string($request->mdp); // ils sont tous 2 des string $typeOkParam = $areSetParam && is_string($request->identifiant) && is_string($request->mdp); // ils sont tous 2 des string
$nEmptyParam = $typeOkParam && strlen($request->identifiant) > 0 && strlen($request->mdp) > 0; // d'au moins 1 caractère $nEmptyParam = $typeOkParam && strlen($request->identifiant) > 0 && strlen($request->mdp) > 0; // d'au moins 1 caractère
$identifiantCheck = $nEmptyParam && preg_match('/^[\w -]{3,50}$/i', $request->identifiant); // identifiant bon format $identifiantCheck = $nEmptyParam && preg_match('/^[\w -]{3,50}$/i', $request->identifiant); // identifiant bon format
$mdpCheck = $identifiantCheck && preg_match('/^[\w -]{6,100}$/i', $request->mdp); // mdp bon format $mdpCheck = $identifiantCheck && preg_match('/^[\w -]{4,100}$/i', $request->mdp); // mdp bon format
if( $mdpCheck ) // si tout les params sont ok if( $mdpCheck ) // si tout les params sont ok
$answer->request = user_authentification($request->identifiant, $request->mdp); $answer->request = user_authentification($request->identifiant, $request->mdp);
@ -83,7 +83,7 @@ require_once __ROOT__.'/manager/database.php';
$prenomCheck = $identifiantCheck && preg_match('/^[a-z -]{3,50}$/i', $request->prenom); // prenom bon format $prenomCheck = $identifiantCheck && preg_match('/^[a-z -]{3,50}$/i', $request->prenom); // prenom bon format
$nomCheck = $prenomCheck && preg_match('/^[a-z -]{3,50}$/i', $request->nom); // nom bon format $nomCheck = $prenomCheck && preg_match('/^[a-z -]{3,50}$/i', $request->nom); // nom bon format
$mailCheck = $nomCheck && preg_match('/^[\w\.-]+@[\w\.-]+\.[a-z]{2,4}$/i', $request->mail); // mail bon format $mailCheck = $nomCheck && preg_match('/^[\w\.-]+@[\w\.-]+\.[a-z]{2,4}$/i', $request->mail); // mail bon format
$mdpCheck = $mailCheck && preg_match('/^[\w -]{6,100}$/i', $request->mdp); // mdp bon format $mdpCheck = $mailCheck && preg_match('/^[\w -]{4,100}$/i', $request->mdp); // mdp bon format
$droitsCheck = $mdpCheck && is_int(array_search($request->droits, ['student', 'teacher', 'master', 'admin'])); // droits bon format $droitsCheck = $mdpCheck && is_int(array_search($request->droits, ['student', 'teacher', 'master', 'admin'])); // droits bon format
if( $droitsCheck ){ // si tout les paramètres sont bons if( $droitsCheck ){ // si tout les paramètres sont bons

View File

@ -87,10 +87,10 @@ var selectList = document.querySelectorAll("#CONTAINER > section[name] > select"
// GESTION DE LA PRISE EN COMPTE DES SELECT // // GESTION DE LA PRISE EN COMPTE DES SELECT //
DOM.CONTAINER.addEventListener('change', function(e){ DOM.CONTAINER.addEventListener('change', function(e){
if( e.target.tagName == 'SELECT' && ['semestre', 'groupe'].indexOf(e.target.getAttribute('name')) > -1 ){ if( e.target.tagName == 'SELECT' && ['semestre', 'groupe'].indexOf(e.target.getAttribute('name')) > -1 ){
if( e.target.getAttribute('name') == 'semestre' ){ // si modifie le semestre if( e.target.getAttribute('name') == 'semestre' ){ // SI modifie le semestre
pageM.vars[1] = e.target.value; // on selectionne semestre pageM.vars[1] = e.target.value; // on selectionne semestre
pageM.vars[2] = '*'; // on désactive le groupe pageM.vars[2] = '*'; // on désactive le groupe
}else{ }else{ // SINON
pageM.vars[1] = '*'; // on désactive le semestre pageM.vars[1] = '*'; // on désactive le semestre
pageM.vars[2] = e.target.value; // on active le groupe pageM.vars[2] = e.target.value; // on active le groupe
} }

View File

@ -25,7 +25,7 @@ require_once __ROOT__.'/manager/groups.php';
/* GESTION SEMESTRE OPTIONNEL */ /* GESTION SEMESTRE OPTIONNEL */
if( isset($postVars[1]) && is_numeric($postVars[1]) ) if( isset($postVars[1]) && preg_match('/^S[0-9]{1}$/', $postVars[1]) )
$semestreOpt = $postVars[1]; $semestreOpt = $postVars[1];
else else
$semestreOpt = null; $semestreOpt = null;
@ -71,7 +71,7 @@ if( permission('student') ){ // si connecté && utilisateur
foreach($answer->grouplist as $group){ // pour chaque groupe foreach($answer->grouplist as $group){ // pour chaque groupe
if( count($group->userlist) > 0 ){ // s'il y a des utilisateurs if( count($group['userlist']) > 0 ){ // s'il y a des utilisateurs
echo "<table class='basic margin col5'>"; echo "<table class='basic margin col5'>";
@ -79,13 +79,13 @@ if( permission('student') ){ // si connecté && utilisateur
// pour chaque utilisateur // pour chaque utilisateur
foreach($group->userlist as $user){ foreach($group['userlist'] as $user){
echo '<tr>'; echo '<tr>';
echo "<td><span class=link>".$user['identifiant'].'</span></td>'; echo "<td><span class=link>".$user['identifiant'].'</span></td>';
echo '<td>'.$user['prenom'].'</td>'; echo '<td>'.$user['prenom'].'</td>';
echo '<td>'.$user['nom'].'</td>'; echo '<td>'.$user['nom'].'</td>';
echo '<td>'.$group->semestre.'</td>'; echo '<td>'.$group['semestre'].'</td>';
echo '<td>Groupe <span class=stressed>'.$group->nom.'</span></td>'; echo '<td>Groupe <span class=stressed>'.$group['nom'].'</span></td>';
echo '</tr>'; echo '</tr>';
} }
@ -137,13 +137,13 @@ if( permission('teacher') ){ // si connecté && prof
echo "<select name='semestre'>"; echo "<select name='semestre'>";
echo "<option value='*'>Tous les semestres</option>"; echo "<option value='*'>Tous les semestres</option>";
foreach($answer->grouplist as $group){ foreach($answer->grouplist as $group){
if( $lastSemestre == null || $lastSemestre != $group->semestre ){ if( $lastSemestre == null || $lastSemestre != $group['semestre'] ){
if( $group->semestre[1] == $semestreOpt ) // si c'est le semestre séléctionné if( $group['semestre'] == $semestreOpt ) // si c'est le semestre séléctionné
echo "<option value='".$group->semestre[1]."' selected>".$group->semestre.'</option>'; echo "<option value='".$group['semestre']."' selected>".$group['semestre'].'</option>';
else // sinon on affiche normalement else // sinon on affiche normalement
echo "<option value='".$group->semestre[1]."'>".$group->semestre.'</option>'; echo "<option value='".$group['semestre']."'>".$group['semestre'].'</option>';
$lastSemestre = $group->semestre; $lastSemestre = $group['semestre'];
} }
} }
echo "<select>"; echo "<select>";
@ -156,12 +156,12 @@ if( permission('teacher') ){ // si connecté && prof
foreach($answer->grouplist as $group){ foreach($answer->grouplist as $group){
if( $lastGroupe == null || $lastGroupe != $group->nom ){ if( $lastGroupe == null || $lastGroupe != $group->nom ){
if( $group->nom == $groupeOpt ) // si c'est le groupe séléctionné if( $group['nom'] == $groupeOpt ) // si c'est le groupe séléctionné
echo "<option value='".$group->nom."' selected>".$group->nom.'</option>'; echo "<option value='".$group['nom']."' selected>".$group['nom'].'</option>';
else else
echo "<option value='".$group->nom."'>".$group->nom.'</option>'; echo "<option value='".$group['nom']."'>".$group['nom'].'</option>';
$lastGroupe = $group->nom; $lastGroupe = $group['nom'];
} }
} }
echo "<select>"; echo "<select>";
@ -177,7 +177,7 @@ if( permission('teacher') ){ // si connecté && prof
foreach($answer->grouplist as $group){ // pour chaque groupe foreach($answer->grouplist as $group){ // pour chaque groupe
if( count($group->userlist) > 0 ){ // s'il y a des utilisateurs if( count($group['userlist']) > 0 ){ // s'il y a des utilisateurs
echo "<table class='basic margin col5'>"; echo "<table class='basic margin col5'>";
@ -185,13 +185,13 @@ if( permission('teacher') ){ // si connecté && prof
// pour chaque utilisateur // pour chaque utilisateur
foreach($group->userlist as $user){ foreach($group['userlist'] as $user){
echo '<tr>'; echo '<tr>';
echo "<td><span class=link>".$user['identifiant'].'</span></td>'; echo "<td><span class=link>".$user['identifiant'].'</span></td>';
echo '<td>'.$user['prenom'].'</td>'; echo '<td>'.$user['prenom'].'</td>';
echo '<td>'.$user['nom'].'</td>'; echo '<td>'.$user['nom'].'</td>';
echo '<td>'.$group->semestre.'</td>'; echo '<td>'.$group['semestre'].'</td>';
echo '<td>Groupe <span class=stressed>'.$group->nom.'</span></td>'; echo '<td>Groupe <span class=stressed>'.$group['nom'].'</span></td>';
echo '</tr>'; echo '</tr>';
} }
@ -330,10 +330,10 @@ if( permission('teacher') ){ // si l'utilisateur est connecté et que c'est un
foreach($answer->grouplist as $group){ foreach($answer->grouplist as $group){
if( $lastSemestre == null || $lastSemestre != $group->semestre ){ if( $lastSemestre == null || $lastSemestre != $group->semestre ){
if( $group->semestre[1] == $semestreOpt ) // si c'est le semestre séléctionné if( $group->semestre == $semestreOpt ) // si c'est le semestre séléctionné
echo "<option value='".$group->semestre[1]."' selected>".$group->semestre.'</option>'; echo "<option value='".$group->semestre."' selected>".$group->semestre.'</option>';
else // sinon on affiche normalement else // sinon on affiche normalement
echo "<option value='".$group->semestre[1]."'>".$group->semestre.'</option>'; echo "<option value='".$group->semestre."'>".$group->semestre.'</option>';
$lastSemestre = $group->semestre; $lastSemestre = $group->semestre;
} }
@ -437,14 +437,14 @@ if( permission('admin') ){ // si l'utilisateur est connecté et que c'est un adm
echo "<select name='semestre'>"; echo "<select name='semestre'>";
echo "<option value='*'>Tous les semestres</option>"; echo "<option value='*'>Tous les semestres</option>";
foreach($answer->grouplist as $group){ foreach($answer->grouplist as $group){
if( $lastSemestre == null || $lastSemestre != $group->semestre ){ if( $lastSemestre == null || $lastSemestre != $group['semestre'] ){
if( $group->semestre[1] == $semestreOpt ) // si c'est le semestre séléctionné if( $group['semestre'] == $semestreOpt ) // si c'est le semestre séléctionné
echo "<option value='".$group->semestre[1]."' selected>".$group->semestre.'</option>'; echo "<option value='".$group['semestre']."' selected>".$group['semestre'].'</option>';
else // sinon on affiche normalement else // sinon on affiche normalement
echo "<option value='".$group->semestre[1]."'>".$group->semestre.'</option>'; echo "<option value='".$group['semestre']."'>".$group['semestre'].'</option>';
$lastSemestre = $group->semestre; $lastSemestre = $group['semestre'];
} }
} }
echo "<select>"; echo "<select>";
@ -455,14 +455,14 @@ if( permission('admin') ){ // si l'utilisateur est connecté et que c'est un adm
echo "<select name='groupe'>"; echo "<select name='groupe'>";
echo "<option value='*'>Tous les groupes</option>"; echo "<option value='*'>Tous les groupes</option>";
foreach($answer->grouplist as $group){ foreach($answer->grouplist as $group){
if( $lastGroupe == null || $lastGroupe != $group->nom ){ if( $lastGroupe == null || $lastGroupe != $group['nom'] ){
if( $group->nom == $groupeOpt ) // si c'est le groupe séléctionné if( $group['nom'] == $groupeOpt ) // si c'est le groupe séléctionné
echo "<option value='".$group->nom."' selected>".$group->nom.'</option>'; echo "<option value='".$group['nom']."' selected>".$group['nom'].'</option>';
else else
echo "<option value='".$group->nom."'>".$group->nom.'</option>'; echo "<option value='".$group['nom']."'>".$group['nom'].'</option>';
$lastGroupe = $group->nom; $lastGroupe = $group['nom'];
} }
} }
echo "<select>"; echo "<select>";
@ -473,14 +473,14 @@ if( permission('admin') ){ // si l'utilisateur est connecté et que c'est un adm
foreach($answer->grouplist as $group){ // pour chaque groupe foreach($answer->grouplist as $group){ // pour chaque groupe
if( count($group->userlist) > 0 ){ // s'il y a des utilisateurs if( count($group['userlist']) > 0 ){ // s'il y a des utilisateurs
echo "<table class='basic col4'>"; echo "<table class='basic col4'>";
echo '<thead>'; echo '<thead>';
echo '<tr>'; echo '<tr>';
echo '<th colspan=5>'; echo '<th colspan=5>';
echo 'Groupe <span>'.$group->nom.'</span>'; echo 'Groupe <span>'.$group['nom'].'</span>';
echo "<span style='font-weight:normal;padding-left:1em; font-size: .8em;'>(glisser-déposer étudiant pour le déplacer)</span>"; echo "<span style='font-weight:normal;padding-left:1em; font-size: .8em;'>(glisser-déposer étudiant pour le déplacer)</span>";
echo '</th>'; echo '</th>';
echo '</tr>'; echo '</tr>';
@ -492,12 +492,12 @@ if( permission('admin') ){ // si l'utilisateur est connecté et que c'est un adm
// pour chaque utilisateur // pour chaque utilisateur
foreach($group->userlist as $user){ foreach($group['userlist'] as $user){
echo '<tr>'; echo '<tr>';
echo "<td><span class=link>".$user['identifiant'].'</span></td>'; echo "<td><span class=link>".$user['identifiant'].'</span></td>';
echo '<td>'.$user['prenom'].'</td>'; echo '<td>'.$user['prenom'].'</td>';
echo '<td>'.$user['nom'].'</td>'; echo '<td>'.$user['nom'].'</td>';
echo '<td><strong><span>'.$group->nom.'</span></strong></td>'; echo '<td><strong><span>'.$group['nom'].'</span></strong></td>';
echo '</tr>'; echo '</tr>';
} }
@ -523,53 +523,53 @@ if( permission('admin') ){ // si l'utilisateur est connecté et que c'est un adm
/*********************************/ /*********************************/
/*** IMPORTATION FICHIER EXCEL ***/ /*** IMPORTATION FICHIER EXCEL ***/
/*********************************/ /*********************************/
if( permission('admin') ){ // if( permission('admin') ){
echo "<section name='importexcel' title='Importation/Export' class='basic'>"; // echo "<section name='importexcel' title='Importation/Export' class='basic'>";
//inclusion des classes de PHPExcel // //inclusion des classes de PHPExcel
include __ROOT__.DIRECTORY_SEPARATOR.join(DIRECTORY_SEPARATOR, array("src", "phpexcel", "Classes", "PHPExcel.php")); // include __ROOT__.DIRECTORY_SEPARATOR.join(DIRECTORY_SEPARATOR, array("src", "phpexcel", "Classes", "PHPExcel.php"));
include __ROOT__.DIRECTORY_SEPARATOR.join(DIRECTORY_SEPARATOR, array("src", "phpexcel", "Classes", "PHPExcel", "Writer", "Excel2007.php")); // include __ROOT__.DIRECTORY_SEPARATOR.join(DIRECTORY_SEPARATOR, array("src", "phpexcel", "Classes", "PHPExcel", "Writer", "Excel2007.php"));
//On crée une instance du fichier xls, ainsi que de la feuille active // //On crée une instance du fichier xls, ainsi que de la feuille active
$workbook = new PHPExcel(); // $workbook = new PHPExcel();
$sheet = $workbook->getActiveSheet(); // $sheet = $workbook->getActiveSheet();
$writer = new PHPExcel_Writer_Excel2007($workbook); // $writer = new PHPExcel_Writer_Excel2007($workbook);
//on prépare le tableau // //on prépare le tableau
$sheet->setCellValue('A1', 'IAE Etape'); // $sheet->setCellValue('A1', 'IAE Etape');
$sheet->setCellValue('B1', 'Nom'); // $sheet->setCellValue('B1', 'Nom');
$sheet->setCellValue('C1', 'Prénom'); // $sheet->setCellValue('C1', 'Prénom');
$sheet->setCellValue('D1', 'Identifiant'); // $sheet->setCellValue('D1', 'Identifiant');
$sheet->setCellValue('E1', 'Sexe'); // $sheet->setCellValue('E1', 'Sexe');
$sheet->setCellValue('F1', 'Mail étudiant'); // $sheet->setCellValue('F1', 'Mail étudiant');
//on récupère l'ensemble des étudiants // //on récupère l'ensemble des étudiants
$request = new stdClass(); // $request = new stdClass();
$answer = new stdClass(); // $answer = new stdClass();
$request->level_1 = 'grouplistForYear'; // $request->level_1 = 'grouplistForYear';
$request->annee = $_SESSION['annee']; // $request->annee = $_SESSION['annee'];
groups_switch_level_1($request, $answer); // groups_switch_level_1($request, $answer);
//Si l'execution s'est proprement effectuée // //Si l'execution s'est proprement effectuée
$index = 2; // $index = 2;
if($answer->request == 'success') { // if($answer->request == 'success') {
foreach ($answer->grouplist as $group) { // foreach ($answer->grouplist as $group) {
$groupeName = $group->nom; // $groupeName = $group->nom;
foreach ($group->userlist as $student) { // foreach ($group->userlist as $student) {
$sheet->setCellValue('A'.$index, $groupeName); // $sheet->setCellValue('A'.$index, $groupeName);
$sheet->setCellValue('B'.$index, $student['nom']); // $sheet->setCellValue('B'.$index, $student['nom']);
$sheet->setCellValue('C'.$index, $student['prenom']); // $sheet->setCellValue('C'.$index, $student['prenom']);
$sheet->setCellValue('D'.$index, $student['identifiant']); // $sheet->setCellValue('D'.$index, $student['identifiant']);
//$sheet->setCellValue('E'.$index, $student['sexe']); // //$sheet->setCellValue('E'.$index, $student['sexe']);
$sheet->setCellValue('F'.$index, $student['mail']); // $sheet->setCellValue('F'.$index, $student['mail']);
$index++; // $index++;
} // }
} // }
} // }
//On enregistre le fichier // //On enregistre le fichier
$writer->save('test.xlsx'); // $writer->save('test.xlsx');
} // }
?> ?>