diff --git a/css/global.css b/css/global.css
index 0141612..e2d1d3e 100755
--- a/css/global.css
+++ b/css/global.css
@@ -126,4 +126,24 @@ table.basic:nth-child(4n+3) tr:hover td{ background-color: rgba(45, 204, 112, 1)
/*********************/
/*** LIENS BOUTONS ***/
-/*********************/
\ No newline at end of file
+/*********************/
+span.link{
+ /* position */
+ padding: .3em .8em;
+
+ /* border */
+ border-radius: 5px;
+ border: 1px solid #ddd;
+ box-shadow: inset 0 0 1px #f5f5f5;
+
+ /* background */
+ background: #eee;
+
+ /* foreground */
+ color: #333;
+
+ /* extra */
+ cursor: pointer;
+}
+
+span.link:hover{ color: #000; }
\ No newline at end of file
diff --git a/manager/database.php b/manager/database.php
index 672b63f..e18a440 100755
--- a/manager/database.php
+++ b/manager/database.php
@@ -324,6 +324,96 @@ class DataBase{
return 'error';
}
+ /**************************************************/
+ /*** retourne les modules d'un étudiant par UEs ***/
+ /**************************************************/
+ public function getModulesByUEByEtudiant($etudiant, $semestre, $annee){
+ /*** on cherche un semestre avec ce rang et cette année (qui est unique) ***/
+ $getSemestreUID = $this->pdo->prepare("SELECT id_semestre as id FROM semestre WHERE rang = :rang AND annee = :annee");
+ $getSemestreUID->execute(array(
+ ':rang' => $semestre,
+ ':annee' => $annee
+ ));
+
+ // si on trouve, on le définit, sinon on retourne "unknown_group"
+ if( $semestreUID = $getSemestreUID->fetch()['id'] )
+ $semestreUID = (int) $semestreUID;
+ else
+ return 'unknown_semestre';
+
+
+
+ /*** on cherche un utilisateur avec cet identifiant ***/
+ $getEtudiantUID = $this->pdo->prepare("SELECT identifiant as id FROM utilisateur WHERE identifiant = :etudiant");
+ $getEtudiantUID->execute(array(
+ ':etudiant' => $etudiant
+ ));
+
+ // si on trouve, on le définit, sinon on retourne "unknown_user"
+ if( $etudiantUID = $getEtudiantUID->fetch()['id'] )
+ $etudiantUID = $etudiantUID;
+ else
+ return 'unknown_user';
+
+ /*** on cherche le groupe de cet utilisateur ***/
+ $getGroupeUID = $this->pdo->prepare("SELECT g.id_groupe as id ".
+ "FROM utilisateur as u, groupe as g, appartenance as app, semestre as s ".
+ "WHERE app.id_etudiant = u.identifiant ".
+ "AND app.id_groupe = g.id_groupe ".
+ "AND app.id_semestre = s.id_semestre ".
+
+ "AND u.identifiant = :etudiantUID ".
+ "AND app.id_semestre = :semestreUID");
+ $getGroupeUID->execute(array(
+ ':etudiantUID' => $etudiantUID,
+ ':semestreUID' => $semestreUID,
+ ));
+
+ // si on trouve, on le définit, sinon on retourne "unknown_user"
+ if( $groupeUID = $getGroupeUID->fetch()['id'] )
+ $groupeUID = $groupeUID;
+ else
+ return 'unknown_group';
+
+ $UEList = $this->getUEsEtudiant($etudiant, $semestre, $annee); // on récupère la liste des UEs
+
+ foreach($UEList as $iter=>$UE){
+
+ // si on a l'UID utilisateur & l'UID groupe => on récupère les modules
+ $getModuleList = $this->pdo->prepare("SELECT DISTINCT m.id_module as id, m.nom as nom, m.libelle as libelle ".
+ "FROM module as m, groupe as g, semestre as s, ue, appartenance as app, mcc_ue, mcc_module as mcc_m ".
+ "WHERE app.id_semestre = s.id_semestre ".
+ "AND app.id_groupe = g.id_groupe ".
+ "AND app.id_semestre = mcc_ue.id_semestre ".
+
+ "AND mcc_ue.id_ue = ue.id_ue ".
+ "AND mcc_ue.id_mcc_ue = mcc_m.id_mcc_ue ".
+ "AND mcc_m.id_module = m.id_module ".
+
+ "AND g.id_groupe = :groupeUID ".
+ "AND s.id_semestre = :semestreUID ".
+ "AND ue.id_ue = :UEUID ".
+ "ORDER BY m.nom, m.libelle ASC");
+ $getModuleList->execute(array(
+ ':groupeUID' => $groupeUID,
+ ':semestreUID' => $semestreUID,
+ ':UEUID' => $UE['id']
+ ));
+
+ $modulelist = $getModuleList->fetchAll(); // on récupère la liste des modules
+
+ // on supprime les doublons des entrées (indice numérique)
+ for( $i = 0 ; $i < count($modulelist) ; $i++ ) // pour tout les modules
+ foreach($modulelist[$i] as $col => $val) // pour toutes les entrées
+ if( is_int($col) ) // si l'indice est un entier
+ unset( $modulelist[$i][$col] ); // on le supprime
+
+ $UEList[$iter]['modules'] = $modulelist; // on ajoute la liste des mdules
+ }
+
+ return $UEList;
+ }
+
/******************************************/
/*** retourne les modules d'un étudiant ***/
@@ -407,7 +497,6 @@ class DataBase{
}
-
/**************************************/
/*** retourne les UEs d'un étudiant ***/
/**************************************/
@@ -668,7 +757,7 @@ class DataBase{
// si on a l'UID utilisateur & l'UID groupe => on récupère les modules
- $getModuleList = $this->pdo->prepare("SELECT note.intitule, note.valeur, note.base ".
+ $getModuleList = $this->pdo->prepare("SELECT m.nom as module, m.libelle as modulelib, note.intitule, note.valeur, note.base, note.coefficient ".
"FROM note, appartenance as app, semestre as s, module as m, mcc_ue, mcc_module as mcc_m ".
"WHERE note.id_appartenance = app.id_appartenance ".
"AND note.id_mcc_module = mcc_m.id_mcc_module ".
@@ -765,7 +854,7 @@ class DataBase{
return 'unknown_UE';
// si on a l'UID utilisateur & l'UID UE => on récupère les notes
- $getUEList = $this->pdo->prepare("SELECT m.nom as module, note.intitule, note.valeur, note.base ".
+ $getUEList = $this->pdo->prepare("SELECT m.nom as module, m.libelle as modulelib, note.intitule, note.valeur, note.base, note.coefficient ".
"FROM note, appartenance as app, semestre as s, module as m, ue, mcc_ue, mcc_module as mcc_m ".
"WHERE note.id_appartenance = app.id_appartenance ".
"AND note.id_mcc_module = mcc_m.id_mcc_module ".
diff --git a/manager/modules.php b/manager/modules.php
index 7878f84..7078346 100755
--- a/manager/modules.php
+++ b/manager/modules.php
@@ -36,6 +36,33 @@ require_once __ROOT__.'/manager/database.php';
/***********************************/
/* liste des modules d'un ETUDIANT */
/***********************************/
+ // case 'getByEtudiant':
+ // $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
+ // $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
+ // $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
+
+ // if( $anneeCheck ){ // si tout les paramètres sont bons
+ // $modules = DataBase::getInstance()->getModulesEtudiant($request->etudiant, $request->semestre, $request->annee);
+
+ // // STRUCTURE
+ // // tableau d'UES contenant un tableau de MODULES
+
+ // if( is_array($modules) ){ // si on a bien un tableau
+ // $answer->modules = $modules; // on renvoie dans answer->modules
+ // $answer->request = 'success'; // et on renvoie success
+ // }else // sinon si c'est pas un tableau
+ // $answer->request = $modules; // on retourne l'erreur
+ // }else
+ // $answer->request = 'param_error';
+ // break;
+
+
+ /*******************************/
+ /* liste des UES d'un ETUDIANT */
+ /*******************************/
case 'getByEtudiant':
$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
@@ -45,13 +72,16 @@ require_once __ROOT__.'/manager/database.php';
$anneeCheck = $semestreCheck && preg_match('/^[0-9]{4}$/i', $request->annee); // semestre (annee) bon format
if( $anneeCheck ){ // si tout les paramètres sont bons
- $modules = DataBase::getInstance()->getModulesEtudiant($request->etudiant, $request->semestre, $request->annee);
+ $UEList = DataBase::getInstance()->getModulesByUEByEtudiant($request->etudiant, $request->semestre, $request->annee);
- if( is_array($modules) ){ // si on a bien un tableau
- $answer->modules = $modules; // on renvoie dans answer->modules
+ // STRUCTURE
+ // tableau d'UES contenant un tableau de MODULES
+
+ if( is_array($UEList) ){ // si on a bien un tableau
+ $answer->UEs = $UEList; // on renvoie dans answer->ues
$answer->request = 'success'; // et on renvoie success
}else // sinon si c'est pas un tableau
- $answer->request = $modules; // on retourne l'erreur
+ $answer->request = $UEList; // on retourne l'erreur
}else
$answer->request = 'param_error';
break;
diff --git a/page/career.php b/page/career.php
index 70c5e24..1f8adde 100755
--- a/page/career.php
+++ b/page/career.php
@@ -42,7 +42,7 @@ if( $_SESSION['identifiant'] != null && $_SESSION['droits'] == 'student' ){ // s
foreach($answer->notes as $module){
- echo "
";
+ echo "";
echo "";
echo '';
echo ''.$module['module']['nom'].' - '.$module['module']['libelle'].' | ';
@@ -52,8 +52,10 @@ if( $_SESSION['identifiant'] != null && $_SESSION['droits'] == 'student' ){ // s
echo '
';
foreach($module['notes'] as $note){
echo '';
+ echo "".$note['module']." - ".$note['modulelib']." | ";
echo ''.$note['intitule'].' | ';
echo ''.$note['valeur'].'/'.$note['base'].' | ';
+ echo ''.$note['coefficient'].' | ';
echo '
';
}
echo '';
@@ -94,7 +96,7 @@ if( $_SESSION['identifiant'] != null && $_SESSION['droits'] == 'student' ){ // s
foreach($answer->notes as $UE){
- echo "";
+ echo "";
echo "";
echo '';
echo ''.$UE['UE']['nom'].' - '.$UE['UE']['libelle'].' | ';
@@ -104,9 +106,10 @@ if( $_SESSION['identifiant'] != null && $_SESSION['droits'] == 'student' ){ // s
echo '
';
foreach($UE['notes'] as $note){
echo '';
- echo "".$note['module']." | ";
+ echo "".$note['module']." - ".$note['modulelib']." | ";
echo ''.$note['intitule'].' | ';
echo ''.$note['valeur'].'/'.$note['base'].' | ';
+ echo ''.$note['coefficient'].' | ';
echo '
';
}
echo '';
diff --git a/page/modules.php b/page/modules.php
index 4a03403..908eab2 100755
--- a/page/modules.php
+++ b/page/modules.php
@@ -37,18 +37,21 @@ if( $_SESSION['identifiant'] != null && $_SESSION['droits'] == 'student' ){ // s
////////////////////////////////////////////////////////////////////////////////
echo "";
- foreach($answer->modules as $module){
+ foreach($answer->UEs as $UE){
echo "";
echo "";
echo '';
- echo ''.$module['nom'].' | ';
+ echo ''.$UE['nom'].' - '.$UE['libelle'].' | ';
echo '
';
echo '';
echo '';
- echo '';
- echo ''.$module['nom'].' | ';
- echo ''.$module['libelle'].' | ';
- echo '
';
+ foreach($UE['modules'] as $MODULE){
+ echo '';
+ echo ''.$MODULE['nom'].' | ';
+ echo ''.$MODULE['libelle'].' | ';
+ echo '
';
+ }
+
echo '';
echo '
';
}