\n "; } // Cas général, on n'est pas la personne concernée if ( ! isset($estDispo) || $estDispo == '' ) { // Dispo Inconnue (icone ?) generate_html_dispo_inconnu($idP, $idC); } else { if ( $estDispo == 'oui' ) { // Disponible generate_html_dispo_oui($idP, $idC); }else { // Non Disponible generate_html_dispo_non($idP, $idC); } } } else { if ( $withTD ) { echo " \n "; } // On est la personne concernée, on peut donc choisir le créneau if ( ! isset($estDispo) || $estDispo == '' ) { // Dispo Inconnue generate_html_dispo_dire_oui($idR, $idC); //~ echo '   '; generate_html_dispo_dire_non($idR, $idC); } else { if ( $estDispo == 'oui' ) { // Disponible generate_html_dispo_oui($idP, $idC); //~ echo '   '."\n "; generate_html_dispo_dire_non($idR, $idC); }else { // Non Disponible generate_html_dispo_dire_oui($idR, $idC); //~ echo '   '."\n "; generate_html_dispo_non($idP, $idC); } } } if ( $withTD ) { echo " \n"; } } // Génération du tableau complet // TODO : idée : class du tableau différnete quand annulée -> tableau grisé... function generate_html_array_personnes_crenaux($idR) { if ( isset($_SESSION['session_idP']) ) { $idP_Self=$_SESSION['session_idP']; } else { // TODO : Erreur } // Connexion à la base et sélection de la database require_once 'include/connect.inc.php'; // Récupération des paramètres de la réunion... $montrerDispoR=$estAnnulee=$is_admin=$estFixee=false; $idP_orga=null; $query="SELECT r.montrerDispoR, r.estAnnulee, r.idP_Orga, r.idC_Fixe, r.idL FROM Reunion r WHERE r.idR='$idR'"; $result = @mysql_query($query); if ( $result && ( mysql_num_rows($result) === 1 ) ) { list($montrerDispoR, $estAnnulee, $idP_orga, $idC_Fixe, $idL_interne) = mysql_fetch_row($result); $is_admin = ( $idP_Self == $idP_orga ); $montrerDispoR = ( ( $montrerDispoR === 'oui' ) || $is_admin ) ; //echo "DEBUG : annulée $estAnnulee\n"; $estAnnulee = ( $estAnnulee == 'oui' ); $estFixee = ( $idC_Fixe != null); } else { // TODO : erreur } // DEBUG : tests en forçant les variables //$estAnnulee=true; //~ echo "DEBUG : \nmontrerDispoR==$montrerDispoR\nestAnnulee==$estAnnulee\nestFixee==$estFixee\nis_admin==$is_admin\n"; ?>
Mail' . "\n"; } echo ' ' . "\n"; // Remplissage des entêtes de colonnes (créneaux) $query="SELECT idC, UNIX_TIMESTAMP(dateHeure), duree FROM Creneau WHERE idR='$idR' ORDER BY dateHeure ASC;"; $creneaux=array(); $dispos=array(); if ( $result = @mysql_query($query) ) { while ( list($idC, $date_deb, $duree) = mysql_fetch_row($result) ) { // Calcul des dates //echo $date_deb . "\n"; $date_fin = $date_deb + 60 * $duree; if ( $idC != $idC_Fixe ) { echo ' \n"; // Comptage des personnes disponibles et indisponibles $creneaux[] = $idC; $dispos[$idC]['nbDispo']=0; $dispos[$idC]['nbNonDispo']=0; $dispo_max_id=-1; $dispo_max_val=0; } } if ( $is_admin && ! $estFixee && ! $estAnnulee ) { ?> $dispo_max_val ) { $dispo_max_id=$idC; $dispo_max_val=$dispos[$idC]['nbDispo']; } } } } //print_r($dispos); $query='SELECT p.idP, p.prenomP, p.nomP FROM Personne p, Appartenir a, Reunion r WHERE ' . "r.idR='$idR' AND a.idL=r.idL AND p.idP=a.idP ORDER BY p.nomP, p.prenomP;"; if ( $result = @mysql_query($query) ) { // On écrit ligne à ligne les personnes et les disponibilités while ( $p = mysql_fetch_array($result) ) // Boucle sur chaque personne { echo " \n"; // Colonne de checkbox pour envoi email si $is_admin == true if ( $is_admin ) { echo ' ' . "\n"; } // Nom prénom echo " \n"; // Disponibilités foreach ( $creneaux as $c_id ) // Pour chaque créneau { if (isset($dispos[$c_id][$p[0]])) { $estDispo=$dispos[$c_id][$p[0]]; } else { $estDispo=''; } //echo "DEBUG : generate_html_dispo_case($p[0], $c_id, ( $p[0]==$idP_Self ), $estDispo);\n"; if ( $c_id != $idC_Fixe ) { $class=''; } else { $class='class="selected"'; } generate_html_dispo_case($idR, $p[0], $c_id, ( ! $estFixee && ! $estAnnulee && ( $p[0]==$idP_Self ) ),$estDispo, true, $class); } // Colonne vide pour l'ajout de personnes if ( $is_admin && ! $estFixee && ! $estAnnulee ) { echo " \n"; } echo " \n"; } // Si $is_admin, on met une ligne avec bouton envoyer pour les mails et icône ajout de personnes if ( $is_admin ) { echo " \n  \n"; } if ( $is_admin && ! $estFixee && ! $estAnnulee ) { echo " \n"; } echo " \n"; } // On inscrit les lignes de totaux si les disponibilités sont révélées if ( $is_admin && ! $estFixee && ! $estAnnulee) { echo " \n"; echo " \n"; echo " \n"; foreach ( $creneaux as $c_id ) { if ( $c_id == $dispo_max_id ) { echo ' \n"; } else { echo ' \n"; } } echo " \n"; echo " \n"; echo " \n"; echo " \n"; echo " \n"; foreach ( $creneaux as $c_id ) { echo ' \n"; } echo " \n"; echo " \n"; } } echo " \n"; echo "
' ."\n"; if ( $is_admin ) { echo ' ' . "\n"; echo ' Ajouter une personne' . "\n"; echo '  '; } echo 'Personnes' . "\n"; echo ' '; } else { echo ' '; } if ( $is_admin && ! $estFixee && ! $estAnnulee ) { echo ''; } echo date('d/m/y', $date_deb) . '
' . date('H:i', $date_deb) . ' - ' . date('H:i', $date_fin); if ( $is_admin && ! $estFixee && ! $estAnnulee ) { echo '
'; } echo "
Editer les creneaux
$p[1] $p[2] 
\n"; echo ' ' . "\n"; ?> ' . "\n"; ?> Ajouter une personne  
 Personnes présentes' . $dispos[$c_id]['nbDispo'] . "' . $dispos[$c_id]['nbDispo'] . " 
 Personnes absentes' . $dispos[$c_id]['nbNonDispo'] . " 
\n
\n"; } function traiter_formulaire_fixer_creneau() { if ( ! isset($_GET['idR']) || !isset($_GET['idC']) ) { $errmsg="Impossible de fixer la réunion : paramètres manquants ou erroné"; return $errmsg; } $idR=addslashes($_GET['idR']); $idC=addslashes($_GET['idC']); $query="UPDATE Reunion SET idC_Fixe=$idC WHERE idR=$idR;"; if ( ! mysql_query($query) || mysql_affected_rows() != 1 ) { $errmsg='Impossible de fixer la réunion : ' . mysql_generate_errmsg(); return $errmsg; } return; } function traiter_formulaire_creer_reunion() { include_once('include/je.inc.php'); $idP=$_SESSION['session_idP']; // Recherche d'une réunion vierge déjà existante $query='SELECT idR FROM Reunion WHERE idP_Orga=' . "('$idP') AND objetR='Renseignez';"; if ( ( $result = mysql_query($query) ) && (mysql_num_rows($result) > 0) ) { list($idR)=mysql_fetch_array($result); } else { // Création de la Réunion sauf si une réunion vierge existe déjà $query='INSERT INTO Reunion(idP_Orga, objetR) VALUES' . "('$idP', 'Renseignez');"; if ( ! $result = @mysql_query($query) || (mysql_affected_rows() != 1) ) { // Cas d'erreur $errmsg ='Erreur lors de la création de la liste de participants : ' . mysql_generate_errmsg(); return $errmsg; } $idR=mysql_insert_id(); // Création de la Liste des participants if ( ! $idL=list_new("interne_idR_$idR","NULL",true) ) { $errmsg ='Erreur lors de la création de la liste de participants : Erreur de base de données'; return $errmsg; } $query="UPDATE Reunion SET idL='$idL' WHERE idR='$idR'"; if ( ! $result = @mysql_query($query) || (mysql_affected_rows() != 1) ) { // Cas d'erreur $errmsg = 'Erreur lors de la création de la liste de participants : ' . mysql_generate_errmsg(); return $errmsg; } } return (int) $idR; } function traiter_formulaire_modif_detail_reunion() { if ( ! isset($_REQUEST['idR']) || !isset($_POST['objetR']) || !isset($_POST['lieuR']) || !isset($_POST['ordreJourR']) || !isset($_POST['remarquesR']) ) { $errmsg = 'Impossible de modifier de détail de la réunion : Paramètres manquants'; // DEBUG : //echo "DEBUG : $query\n$errmsg\n"; return $errmsg; } $idR=addslashes($_REQUEST['idR']); $objetR=addslashes($_POST['objetR']); $lieuR=addslashes($_POST['lieuR']); $ordreJourR=addslashes($_POST['ordreJourR']); $remarquesR=addslashes($_POST['remarquesR']); $estAnnulee=( isset($_POST['isCancelled']) && ($_POST['isCancelled']==='on') )?'oui':'non'; $query="UPDATE Reunion SET objetR='$objetR', lieuR='$lieuR', ordreJourR='$ordreJourR', remarquesR='$remarquesR', estAnnulee='$estAnnulee' WHERE idR='$idR'"; if ( ! $result = @mysql_query($query) || (mysql_affected_rows() != 1) ) { // Cas d'erreur $errmsg = 'Erreur lors de la modification de la réunion : ' . mysql_generate_errmsg(); // DEBUG : //echo "DEBUG : $query\n$errmsg\n"; return $errmsg; } // DEBUG : //echo "DEBUG : $query\n$errmsg\n"; return; } function generate_html_reunion_detail2($idR) { $query='SELECT r.objetR, r.ordreJourR, r.lieuR, r.remarquesR, r.montrerDispoR, r.estAnnulee, r.idP_Orga, r.idC_Fixe, p.nomP, p.prenomP' . " FROM Reunion r, Personne p WHERE r.idR='$idR' AND p.idP=r.idP_Orga"; $result = @mysql_query($query); if ( ! $result || ( mysql_num_rows($result) !== 1 ) ) { $errmsg="Impossible de récuprérer les informations de la réunion : Erreur de base de données\n"; return $errmsg; } list($objetR, $ordreJourR, $lieuR, $remarquesR, $montrerDispoR, $estAnnulee, $idP_Orga, $idC_Fixe, $nomP, $prenomP) = mysql_fetch_row($result); if ( $estAnnulee=='oui' ) { $etat = 'reunion_annulee'; } elseif ( $idC_Fixe!=null) { $etat ='reunion_fixee'; } else { $etat = 'reunion_en_cours'; } ?> ' ."\n"; switch($etat) { case 'reunion_fixee': echo "Fixée\n"; break; case 'reunion_en_cours': echo "En préparation\n"; break; case 'reunion_annulee': echo "Annulée\n"; break; } if ( $montrerDispoR === 'non' ) { echo ', disponibilités masquées'; } ?>
Détails de la réunion (Editer)\n"; } ?>
Objet :
Organisateur :
Lieu :
Ordre du jour :
Remarques :
Etat :