diff --git a/Code/accueil.php b/Code/accueil.php index cc17db42c5c0c20acbac23937eae9b90f9b3d567..d9320777ca482cd7bd94710599a87968457170c7 100644 --- a/Code/accueil.php +++ b/Code/accueil.php @@ -114,6 +114,7 @@ if ($co) { print "<h4>Ajout de liens (parrains-filleuls) :</h4>\n"; print "<p> <a href='add_lien.php'>Ajouter un lien de parenté</a> </p>\n"; + print "<p> <a href='demande_lien.php'>Demandes de lien en attente</a> </p>\n"; print "</form>"; } diff --git a/Code/demande_lien.php b/Code/demande_lien.php new file mode 100644 index 0000000000000000000000000000000000000000..458d0e40765756fd1f8ceb867fe7fd30796dbe89 --- /dev/null +++ b/Code/demande_lien.php @@ -0,0 +1,65 @@ +<?php +/** + * Created by PhpStorm. + * User: sandra + * Date: 09/05/16 + * Time: 00:07 + */ + +session_start(); +require_once ("config_s.php"); +include('mise_en_page.php'); +include_once ('profil_vision.php'); + + +/* Variables de session */ +$nomUser=$_SESSION['nomUser']; +$admin = $_SESSION['admin']; +$co = $_SESSION['co']; + + +enTete("Demandes de lien de parenté en attente",$nomUser); + +/* On regarde dans la base de données tous les liens non validés */ +$retour = lienAttente($nomUser, $nomHost, $nomBase, $nomRoot, $mdpRoot); +$nb = $retour[0]; + +if ($nb == -3) { + print "<p class='erreur'>Erreur lors de la connexion à la base de données, rafraîchir la page ou contacter l'administrateur</p>"; +} + +elseif ($nb == -2) { + print "<p class='erreur'>Erreur lors de la connexion à la table voulue, rafraîchir la page ou contacter l'administrateur</p>"; +} + +elseif ($nb == -1) { + print "<p>Il n'y a pas de demandes de lien en attente.<br/> "; + print "<a href='add_lien.php'>Faire une demande de lien de parenté</a> </p>\n"; +} + +else { + print "<p>Voici la liste des liens en attente de confirmation : (cochez pour valider le lien) <ul>"; + + $ensLiens = array(); + $i = 0; + + print "<form action=\"validation_lien.php\" method='get'\n>"; + foreach ($retour as $key => $lien) { + if ($key != 0) { + foreach ($lien as $parr => $fill) { + $ensLiens[$i] = array($parr, $fill); + $i ++; + print "<li><input type='checkbox' name=$key value='ajout'> $parr => $fill </li>"; + } + } + } + + print "<p><input type=\"submit\" value=\"Valider\" name=\"validation\" /></p>\n"; + + print "</form>"; +} + +retourAuMenu(); +pied(); + +?> \ No newline at end of file diff --git a/Code/profil_vision.php b/Code/profil_vision.php index 010c1615a5b45508dd1b170892578f21bee1f7de..030d71205240536bf6ffeb31036f0dc688fd8e77 100644 --- a/Code/profil_vision.php +++ b/Code/profil_vision.php @@ -1068,7 +1068,6 @@ function modifierAssoc_eleve($ajout, $login, $id, $nomHost, $nomBase, $nomRoot, } - /* Renvoie: 0 si la commande a pu être exécutée -1 si la commande a échoué -2 si on n'a pas réussi à se connecter à la base @@ -1097,7 +1096,93 @@ function ajoutLien($login1, $login2, $nomHost, $nomBase, $nomRoot, $mdpRoot) { } + +/* Renvoie un array : nb de liens en attente, autant de array de 2 éléments + -1 s'il n'y a pas de liens en attente + -2 si on n'a pas réussi à se connecter à la table + -3 si on n'a pas réussi à se connecter à la base + Supprime ou ajoute (selon $ajout) une association $id dans la table Assoc_eleve pour un login donné */ +function lienAttente($login, $nomHost, $nomBase, $nomRoot, $mdpRoot) { + + /* On se connecte a la base */ + if ( $DB = pg_connect("host=$nomHost user=$nomRoot dbname=$nomBase password=$mdpRoot" ) ) { + + $commande = pg_query($DB, "SELECT parrain, filleul FROM liens WHERE ((parrain='$login' OR filleul='$login') AND valide='n')"); + if ($commande) { + + $ligne = pg_fetch_array($commande); + + if ($ligne) { + $retour = array(); + $i = 1; + while ($ligne) { + $parr = $ligne['parrain']; + $fill = $ligne['filleul']; + + $retour[$i] = array($parr => $fill); + $i ++; + $ligne = pg_fetch_array($commande); + } + $retour[0] = $i-1; /* Le 1e terme de $retour est le nombre de liens en attente */ + + } + + else $retour = array(-1,0); + } + else $retour = array(-2,0); + + } + + else { + /* Impossible de se connecter a la BD */ + $retour = array(-3,0); + } + + return $retour; + +} + + +/* Renvoie: 1 si la commande a pu être exécutée (suppression) + 2 si la commande a pu être exécutée (confirmation) + -1 si on n'a pas réussi à se connecter à la table, + -2 si on n'a pas réussi à se connecter à la base + Supprime ou comfirme (selon $ajout) un lien dans la table Liens pour un login donné */ +function modifierLien($ajout, $parr, $fill, $nomHost, $nomBase, $nomRoot, $mdpRoot) { + + /* On se connecte a la base */ + if ( $DB = pg_connect("host=$nomHost user=$nomRoot dbname=$nomBase password=$mdpRoot" ) ) { + + if ($ajout == null) { /* Suppression */ + $commande = pg_query($DB, "DELETE FROM liens WHERE (parrain='$parr' AND filleul='$fill')"); + if ($commande) { + $retour = 1; + } + else $retour = -1; + } + + else { /* ajout */ + $commande = pg_query($DB, "UPDATE liens SET valide='y' WHERE (parrain='$parr' AND filleul='$fill')"); + if ($commande) { + $retour = 2; + } + else $retour = -1; + } + } + + else { + /* Impossible de se connecter a la BD */ + $retour = -2; + } + + return $retour; + +} + + +/* Renvoie: affiche seulement tous les liens */ function affichage_total ($nomHost, $nomBase, $nomRoot, $mdpRoot) { + /* On se connecte a la base */ if ( $DB = pg_connect("host=$nomHost user=$nomRoot dbname=$nomBase password=$mdpRoot" ) ) { $query = "SELECT parr.nom_eleve AS nomParr, parr.prenom AS prenomParr, fill.nom_eleve AS nomFill, fill.prenom AS prenomFill @@ -1116,18 +1201,18 @@ function affichage_total ($nomHost, $nomBase, $nomRoot, $mdpRoot) { $nomFill = $ligne['nomfill']; $prenomFill = $ligne['prenomfill']; - $affich = "$nomParr $prenomParr-> $nomFill $prenomFill"; + $affich = "$nomParr $prenomParr => $nomFill $prenomFill"; print $affich; print "<br/>"; $ligne = pg_fetch_array($commande); } } - else print "ERREUR"; + else print "<p class='erreur'>Erreur lors de la connexion à la table voulue, rafraîchir la page ou contacter l'administrateur</p>";; } else { /* Impossible de se connecter a la BD */ - $retour = -2; + print "<p class='erreur'>Erreur lors de la connexion à la base de données, rafraîchir la page ou contacter l'administrateur</p>";; } diff --git a/Code/style.css b/Code/style.css index 7c0ec56e2ccd84f3bbc22191e50e2614b56f3497..e64a416fa8d5da7092137a8905f1ae1fb9abb6ae 100644 --- a/Code/style.css +++ b/Code/style.css @@ -24,4 +24,12 @@ p.up{ p.down{ text-align: center; color: #665544; +} + +p.accept{ + color: green; +} + +p.decline{ + color: darkslategray; } \ No newline at end of file diff --git a/Code/validation_lien.php b/Code/validation_lien.php new file mode 100644 index 0000000000000000000000000000000000000000..a7c515459d7df9acde8e9ea8c5c846023030e125 --- /dev/null +++ b/Code/validation_lien.php @@ -0,0 +1,58 @@ +<?php +/** + * Created by PhpStorm. + * User: sandra + * Date: 09/05/16 + * Time: 00:33 + */ + +session_start(); +require_once ("config_s.php"); +include("mise_en_page.php"); +include("profil_vision.php"); + +/* Variables de session */ +$nomUser=$_SESSION['nomUser']; +$admin = $_SESSION['admin']; +$co = $_SESSION['co']; + + +/* Variables issues du formulaire tous les liens validés ou non */ + +$retour = lienAttente($nomUser, $nomHost, $nomBase, $nomRoot, $mdpRoot); + +enTete("Modifications apportées", $nomUser); + + +foreach ($retour as $key => $value) { + if ($key != 0) { + $resLien = $_GET[$key]; + + foreach ($value as $parr => $fill) { + $res = modifierLien($resLien, $parr, $fill, $nomHost, $nomBase, $nomRoot, $mdpRoot); + + if ($res == -2) { + print "<p class='erreur'>Erreur lors de la connexion à la base de données, rafraîchir la page ou contacter l'administrateur</p>"; + break; + } + elseif ($res == -1) { + print "<p class='erreur'>Erreur lors de la connexion à la base de données, rafraîchir la page ou contacter l'administrateur</p>"; + break; + } + elseif($res == 1) { + print "<p class='decline'>Lien $parr => $fill refusé </p>"; + } + else { + print "<p class='accept'>Lien $parr => $fill accepté </p>"; + } + } + } +} + +print "<br/><a href='add_lien.php'>Faire une demande de lien de parenté</a> </p>\n"; + + +retourAuMenu(); +pied(); + +?> \ No newline at end of file diff --git a/Code/validation_modif.php b/Code/validation_modif.php index e8437e16d5f076279f375db4ff46853d40128c79..0172e637fffa268db684444af27cc9b5375bd79c 100644 --- a/Code/validation_modif.php +++ b/Code/validation_modif.php @@ -276,4 +276,6 @@ print "<input type=\"hidden\" value=\"Personnel\" name=\"Mprofil\" /></p>\n"; print "</form>"; retourAuMenu(); -pied(); \ No newline at end of file +pied(); + +?> \ No newline at end of file