diff --git a/css/header.css b/css/header.css index 5804783..a1646c8 100755 --- a/css/header.css +++ b/css/header.css @@ -190,7 +190,6 @@ } #HEADER .searchbar:focus{ - background-image: url(../src/header/search@hover.svg); color: #17232f; } diff --git a/index.php b/index.php index b584792..c4ab787 100755 --- a/index.php +++ b/index.php @@ -14,8 +14,8 @@ $notifNotifNum = 5; - - + + diff --git a/manager/database.php b/manager/database.php index 055d999..52728ce 100755 --- a/manager/database.php +++ b/manager/database.php @@ -277,7 +277,14 @@ class DataBase{ /******************************************************************/ /*** retourne la liste des utilisateurs des groupes d'une année ***/ /******************************************************************/ - public function listeEtudiantsTousGroupesAnnee($annee){ + public function listeEtudiantsTousGroupesAnnee($annee, $pSemestre, $pGroupe){ + // définition des paramètres optionnels + $semestreDeb = 1; $semestreFin = 4; + if( $pSemestre != null ){ $semestreDeb = $pSemestre; $semestreFin = $pSemestre; } // semestre donné uniquement (si param non null) + + $groupeOpt = '%'; + 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) ***/ $checkAnnee = $this->pdo->prepare("SELECT id_semestre as id FROM semestre WHERE annee = :annee"); $checkAnnee->execute(array( @@ -293,10 +300,14 @@ class DataBase{ "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.rang BETWEEN :semestreDeb AND :semestreFin ". "AND s.annee = :annee ". "ORDER BY g.nom"); $getGroupesUID->execute(array( + ':semestreDeb' => $semestreDeb, + ':semestreFin' => $semestreFin, ':annee' => $annee )); @@ -321,7 +332,15 @@ class DataBase{ /******************************************************************/ /*** retourne la liste des utilisateurs des groupes d'une année ***/ /******************************************************************/ - public function listeEtudiantsTousGroupesEnseignant($annee, $enseignant){ + public function listeEtudiantsTousGroupesEnseignant($annee, $enseignant, $pSemestre, $pGroupe){ + // définition des paramètres optionnels + $semestreDeb = 1; $semestreFin = 4; + if( $pSemestre != null ){ $semestreDeb = $pSemestre; $semestreFin = $pSemestre; } // semestre donné uniquement (si param non null) + + $groupeOpt = '%'; + 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) ***/ $checkAnnee = $this->pdo->prepare("SELECT id_semestre as id FROM semestre WHERE annee = :annee"); $checkAnnee->execute(array( @@ -345,7 +364,6 @@ class DataBase{ else return 'unknown_user'; - // on cherche tout les groupes du même semestre de la même année $getGroupesUID = $this->pdo->prepare("SELECT DISTINCT s.nom as semestre, s.rang, g.nom as nom ". "FROM module as m, utilisateur as u, utilisateur as eleve, groupe as g, enseignement as ens, mcc_ue, mcc_module as mcc_m, semestre as s, appartenance as app ". @@ -361,14 +379,18 @@ class DataBase{ "AND app.id_semestre = s.id_semestre ". "AND app.id_groupe = g.id_groupe ". + "AND g.nom LIKE '".$groupeOpt."' ". + "AND s.rang BETWEEN :semestreDeb AND :semestreFin ". "AND s.annee = :annee ". "AND u.identifiant = :enseignantUID ". "ORDER BY s.rang, g.nom"); $getGroupesUID->execute(array( + // ':groupeOpt' => $groupeOpt, + ':semestreDeb' => $semestreDeb, + ':semestreFin' => $semestreFin, ':annee' => $annee, ':enseignantUID' => $enseignantUID )); - $grouplist = array(); // contiendra tout les groupes // on parcourt tous les groupes diff --git a/manager/groups.php b/manager/groups.php index 788aaf0..f949e52 100755 --- a/manager/groups.php +++ b/manager/groups.php @@ -124,9 +124,20 @@ require_once __ROOT__.'/manager/database.php'; $anneeCheck = $areSetParam && preg_match('/^[0-9]{4}$/i', $request->annee); // semestre (annee) bon format $enseignantCheck = $anneeCheck && preg_match('/^[\w -]{3,50}$/i', $request->enseignant); // enseignant (annee) bon format + // paramètres optionnels + $optionalSemestre = isset($request->semestre) && is_numeric($request->semestre) && preg_match('/^[1-4]{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); + + // définition (ou pas) des paramètres optionnels + if( $optionalSemestre ) $semestre = $request->semestre; + else $semestre = null; + + if( $optionalGroupe ) $groupe = $request->groupe; + else $groupe = null; + if( $enseignantCheck ){ - $grouplist = DataBase::getInstance()->listeEtudiantsTousGroupesEnseignant($request->annee, $request->enseignant); + $grouplist = DataBase::getInstance()->listeEtudiantsTousGroupesEnseignant($request->annee, $request->enseignant, $semestre, $groupe); if( is_array($grouplist) ){ // si on a récupéré la liste des utilisateurs $answer->grouplist = $grouplist; @@ -146,9 +157,23 @@ require_once __ROOT__.'/manager/database.php'; $typeOkParam = $areSetParam && is_numeric($request->annee); // si c'est des strings $anneeCheck = $areSetParam && preg_match('/^[0-9]{4}$/i', $request->annee); // semestre (annee) bon format + + // paramètres optionnels + $optionalSemestre = isset($request->semestre) && is_numeric($request->semestre) && preg_match('/^[1-4]{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); + + // définition (ou pas) des paramètres optionnels + if( $optionalSemestre ) $semestre = $request->semestre; + else $semestre = null; + + if( $optionalGroupe ) $groupe = $request->groupe; + else $groupe = null; + + + if( $anneeCheck ){ - $grouplist = DataBase::getInstance()->listeEtudiantsTousGroupesAnnee($request->annee); + $grouplist = DataBase::getInstance()->listeEtudiantsTousGroupesAnnee($request->annee, $semestre, $groupe); if( is_array($grouplist) ){ // si on a récupéré la liste des utilisateurs $answer->grouplist = $grouplist; diff --git a/page/career.php b/page/career.php index 7235b4e..feb5918 100755 --- a/page/career.php +++ b/page/career.php @@ -19,6 +19,9 @@ require_once __ROOT__.'/manager/career.php'; ?> + + + $v) + array_push($postVars, $k); + + + + /* GESTION SEMESTRE OPTIONNEL */ + if( isset($postVars[1]) && is_numeric($postVars[1]) ) + $semestreOpt = $postVars[1]; + else + $semestreOpt = null; + + echo 'semestre '.$semestreOpt; + + /* GESTION GROUPES OPTIONNEL */ + if( isset($postVars[2]) && is_string($postVars[2]) && strlen($postVars[2]) > 1 ) + $groupeOpt = $postVars[2]; + else + $groupeOpt = null; + + echo 'groupe '.$groupeOpt; + + /************************/ /*** TOUS LES GROUPES ***/ /************************/ diff --git a/page/home.php b/page/home.php index 4c03378..5731758 100755 --- a/page/home.php +++ b/page/home.php @@ -42,18 +42,4 @@ if( $_SESSION['identifiant'] != null ){ // si on est connecté ?>
Notification 2
Notification 1
- - - - -Vous pouvez consulter votre groupe ainsi que tous les groupes de votre semestre.
-Vous pouvez consulter votre parcours complet, c'est à dire toutes les notes que vous avez eu dans chaque module. avec un affichage par UE, ou par semestre, afin de consulter votre évolution.
-