summaryrefslogtreecommitdiff
path: root/appli_3_alpha_old/include
diff options
context:
space:
mode:
Diffstat (limited to 'appli_3_alpha_old/include')
-rw-r--r--appli_3_alpha_old/include/connect.inc.php14
-rw-r--r--appli_3_alpha_old/include/ical.inc.php68
-rw-r--r--appli_3_alpha_old/include/je.inc.php99
-rw-r--r--appli_3_alpha_old/include/ju.inc.php80
-rw-r--r--appli_3_alpha_old/include/ludo/TODO_list.txt22
-rw-r--r--appli_3_alpha_old/include/ludo/TODO_list.txt~19
-rw-r--r--appli_3_alpha_old/include/ludo/auth.inc.php78
-rw-r--r--appli_3_alpha_old/include/ludo/config.inc.php63
-rw-r--r--appli_3_alpha_old/include/ludo/fonctions.inc.php294
-rw-r--r--appli_3_alpha_old/include/ludo/html_elements.inc.php138
-rw-r--r--appli_3_alpha_old/include/ludo/mail_textarea.php44
-rw-r--r--appli_3_alpha_old/include/ludo/majDispo.php28
-rw-r--r--appli_3_alpha_old/include/ludo/redir.inc.php20
-rw-r--r--appli_3_alpha_old/include/ludo/session_verify.inc.php10
14 files changed, 977 insertions, 0 deletions
diff --git a/appli_3_alpha_old/include/connect.inc.php b/appli_3_alpha_old/include/connect.inc.php
new file mode 100644
index 0000000..be96c02
--- /dev/null
+++ b/appli_3_alpha_old/include/connect.inc.php
@@ -0,0 +1,14 @@
+<?php
+/*
+ * Paramètres de connexion à la base MySQL
+ */
+
+// $bd représente le nom de la database à utiliser
+$bd = "awor";
+// mysql_connect(<nom_ou_ip_serveur_mysql>, <utilisateur_mysql>, <mot_de_passe_en_clair_mysql>);
+$link = @mysql_connect('localhost', 'lud_restricted', 'maille_ess_ku_elle');
+
+@mysql_select_db($bd , $link);
+
+// NB : La gestion d'erreur est inhibée. Cet include ne génèrera jamais de code, même si la connexion n'a pas pu être établie
+?> \ No newline at end of file
diff --git a/appli_3_alpha_old/include/ical.inc.php b/appli_3_alpha_old/include/ical.inc.php
new file mode 100644
index 0000000..5df8e4c
--- /dev/null
+++ b/appli_3_alpha_old/include/ical.inc.php
@@ -0,0 +1,68 @@
+<?php
+/*
+ * Fonction de génération d'iCal
+ */
+
+// Constantes d'erreur
+define("ERR_ICAL_NO_DATA", -1);
+define("ERR_ICAL_SQL_ERROR", -2);
+
+ function generationIcal($idP, &$iCal_name, &$iCal_content, &$errmsg)
+{
+ require_once('connect.inc.php');
+ $query = 'SELECT DISTINCT R.idR,R.objetR,P.courrielP,UNIX_TIMESTAMP(C.dateHeure),C.duree,R.lieuR,R.ordreJourR,L.idL'
+ . ' FROM Liste L,Reunion R,Appartenir A,Creneau C,Personne P'
+ . " WHERE ((A.idP = $idP AND A.idL = L.idL) OR R.idP_Orga = $idP)"
+ . ' AND R.idL = L.idL AND C.idC = R.idC_Fixe AND P.idP = R.idP_Orga';
+
+ if ( ! $result = @mysql_query($query) )
+ {
+ // Cas d'erreur
+ $errmsg =mysql_generate_errmsg();
+ return ERR_ICAL_SQL_ERROR;
+ }
+ else
+ {
+ if (mysql_num_rows($result)<1)
+ {
+ return ERR_ICAL_NO_DATA;
+ }
+ else
+ {
+ $time = time();
+ $iCal_name = "iCal_${idP}_${time}.ics";
+ $iCal_content = "BEGIN:VCALENDAR\r\n" . "VERSION:2.0\r\n";
+ while ( list($idR, $objetR, $courrielP, $dateDeb, $duree, $lieuR, $ordreJourR, $idL) = mysql_fetch_array($result) )
+ {
+ // TODO : Il est probablement judicieux d'ajouter à l'UID un timestamp unix !!!!!
+ $iCal_content .= "BEGIN:VEVENT\r\n" . "UID:awor_${idP}.${idR}\r\n" . "SUMMARY:$objetR ($courrielP)\r\n";
+ $iCal_content .= 'DTSTART:' . date('Ymd\THis', $dateDeb) . "\r\n";
+ $iCal_content .= 'DTEND:' . date('Ymd\THis', $dateDeb+60*$duree) . "\r\n";
+ $iCal_content .= "LOCATION:$lieuR\r\n";
+ $iCal_content .= "DESCRIPTION:$ordreJourR\r\n";
+
+ $query = 'SELECT P.courrielP FROM Appartenir A,Personne P' . " WHERE A.idP=P.idP AND A.idL='$idL'";
+ if ( ! $result = mysql_query($query) )
+ {
+ // Cas d'erreur
+ $errmsg =mysql_generate_errmsg();
+ $ret=ERR_ICAL_SQL_ERROR;
+ break;
+ }
+ else
+ {
+ while ( list($mail_autres) = mysql_fetch_array($result) )
+ {
+ $iCal_content .= "ATTENDEE:mailto:$mail_autres\r\n";
+ }
+ }
+ // TODO : vérifier la pertinance de la variable utilisée
+ $iCal_content .= 'URL:http://' . $_SERVER['HTTP_HOST'] . "\r\n";
+ $iCal_content .= "END:VEVENT\r\n";
+ }
+ $iCal_content .= "END:VCALENDAR\r\n";
+ return 0;
+ }
+ }
+}
+?> \ No newline at end of file
diff --git a/appli_3_alpha_old/include/je.inc.php b/appli_3_alpha_old/include/je.inc.php
new file mode 100644
index 0000000..cb80df0
--- /dev/null
+++ b/appli_3_alpha_old/include/je.inc.php
@@ -0,0 +1,99 @@
+<?php
+ function traiter_formulaire_valider_modif_personnes()
+ {
+ require_once ('include/connect.inc.php');
+ $result = mysql_query("SELECT P.idP,P.courrielP FROM Appartenir A, Personne P WHERE P.idP = A.idP AND A.idL=".$_GET['idL']);
+ if (mysql_num_rows($result)>=0)
+ {
+ //Fabrication des trois tableaux
+ $tabOldPers = array();
+ $tabOldPersMail = array();
+ $tabNewPers = array();
+ if (isset( $_GET['dataParticipants'] ) ) $tabNewPers = $_GET['dataParticipants'];
+ for($i=0;$i<mysql_num_rows($result);$i++)
+ {
+ $row = mysql_fetch_array($result);
+ $tabOldPers[$i] = $row[0];
+ $tabOldPersMail[$i] = $row[1];
+ }
+ //Boucle permettant de suprimer les élements identiques aux deux tableaux
+ $i = 0;
+ while ($i < count($tabOldPers))
+ {
+ $exist=false;
+ for ($j=0;$j<count($tabNewPers);$j++)
+ {
+ echo $tabOldPers[$i] . "==<b>" . $tabNewPers[$j] . "</b>OU " . $tabOldPersMail[$i] . "==<b>" . $tabNewPers[$j] . "</b>->" ;
+ echo "<i>" . (($tabOldPers[$i] == $tabNewPers[$j]) or ($tabOldPersMail[$i] == $tabNewPers[$j])) . "</i><br/>";
+
+ if (($tabOldPers[$i] == $tabNewPers[$j]) or ($tabOldPersMail[$i] == $tabNewPers[$j]))
+ {
+ $exist = true;
+ print_r($tabNewPers);
+ $tabNewPers[$j]=NULL;
+ echo "<br/>";
+ print_r($tabNewPers);
+ echo "<br/>";
+ }
+ }
+ if ($exist)
+ {
+ /*
+ $tabOldPers[$i] = $tabOldPers[(count($tabOldPers)-1)];unset($tabOldPers[(count($tabOldPers)-1)]);
+ $tabOldPersMail[$i] = $tabOldPersMail[(count($tabOldPersMail)-1)];unset($tabOldPersMail[(count($tabOldPersMail)-1)]);
+ }
+ else
+ {i++;}
+ */
+ $tabOldPers[$i]=NULL;
+ $tabOldPersMail[$i]=NULL;
+ }
+ $i++;
+ }
+ //Tableau permet de savoir qui doit etre supprimer et ajouter
+ echo "--TabOldPers--<br/>";
+ print_r ($tabOldPers);
+ //for ($i=0;$i<(int)$sizeTabOldPers;$i++) echo "<br/> - " . $tabOldPers[$i];
+ echo "<br/>--TabNewPers--<br/>";
+ print_r ($tabNewPers);
+ //for ($i=0;$i<(int)$sizeTabNewPers;$i++) echo " - " . $tabNewPers[$i] ."<br/>";
+ }
+ /*
+ for ($i=0;$i<count($_GET['dataParticipants']); $i++)
+ {
+ if (!stristr($_GET['dataParticipants'][$i],'@')===false)
+ {
+ echo "Nouvel inscrit : ".$_GET['dataParticipants'][$i];
+ }
+ }
+ */
+ }
+
+ //Fonction qui affiche toutes les liste public ainsi que les liste privée possédées par idP
+ function generate_html_array_list ($idP)
+ {
+
+ // Connexion à la base et sélection de la database
+ require_once ('include/connect.inc.php');
+ $result = mysql_query("SELECT idL,libelleL,estPrivee FROM Liste WHERE idP_Createur=$idP OR estPrivee='non' ORDER BY estPrivee");
+ echo "<table>\n<tr>\n<th>Type</th>\n<th>Libell&eacute;</th>\n</tr>\n";
+ if (mysql_num_rows($result)>0)
+ {
+
+ for($i=0;$i<mysql_num_rows($result);$i++)
+ {
+ $row = mysql_fetch_array($result);
+ echo "<tr>\n<td>";
+ if ($row['estPrivee'] == 'oui') echo 'Priv&eacute;e' ; else echo 'Public';
+ echo "</td>\n<td>";
+ echo "<a href=\"#\" onclick=\"loadid('poppersonne.php?idL=".$row['idL']."&amp;idP_orga=$idP','poppersonne',true);popon('poppersonne')\" \>";
+ echo $row['libelleL'];
+ echo "</a>\n";
+ echo "</td>\n</tr>\n";
+ }
+
+ }
+ echo "</table>\n";
+
+ }
+?> \ No newline at end of file
diff --git a/appli_3_alpha_old/include/ju.inc.php b/appli_3_alpha_old/include/ju.inc.php
new file mode 100644
index 0000000..1a03ca9
--- /dev/null
+++ b/appli_3_alpha_old/include/ju.inc.php
@@ -0,0 +1,80 @@
+<?php
+ function traiter_formulaire_cequetuveux_aussi()
+ {
+ echo "coucou\n";
+ }
+
+ function generate_html_reunion_commentaires($idR)
+ {
+?>
+ <table cellspacing="0" class="commentaires">
+ <thead>
+ <tr>
+ <th>Commentaires <a href="#">(Editer votre commentaire)</a></th>
+ </tr>
+ </thead>
+ <tr>
+ <td>Ludo : J'ai mont&eacute; le DC sur lequel sera bas&eacute; le SNI</td>
+ </tr>
+ <tr>
+ <td>J&eacute;r&eacute;mie : J'ai fais une premi&egrave;re ebauche du DC</td>
+ </tr>
+ </table>
+<?php
+ }
+
+
+ function generate_html_reunion_fichiers($idR)
+ {
+?>
+<table cellspacing="0" class="fichiers">
+ <thead>
+ <tr>
+ <th>Fichiers attach&eacute;s <a href="#popfichier" class="pop">(Ajouter un fichier)</a></th>
+ </tr>
+ </thead>
+ <tr>
+ <td><a href="compte-rendu.txt">compte-rendu.txt</a></td>
+ </tr>
+ <tr>
+ <td><a href="photos-ru.jpg">photos-ru.jpg</a></td>
+ </tr>
+</table>
+<?php
+ }
+
+
+ function generate_html_reunion_detail($idR)
+ {
+?>
+ <table cellspacing="0" class="detail_reunion">
+ <thead>
+ <tr>
+ <th>D&eacute;tails de la r&eacute;union </th>
+ <th>&nbsp;</th>
+ </tr>
+ </thead>
+ <tr>
+ <td><strong>Objet : </strong></td>
+ <td>D&eacute;tails stages NEWI</td>
+ </tr>
+ <tr>
+ <td><strong>Organisateur : </strong></td>
+ <td>Mme Verdier</td>
+ </tr>
+ <tr>
+ <td><strong>Lieu : </strong></td>
+ <td>Salle 209 </td>
+ </tr>
+ <tr>
+ <td><strong>Ordre du jour : </strong></td>
+ <td>Le logement, le s&eacute;jour, les contacts</td>
+ </tr>
+ <tr>
+ <td><strong>Remarque :</strong></td>
+ <td>aucune</td>
+ </tr>
+ </table>
+<?php
+ }
+?> \ No newline at end of file
diff --git a/appli_3_alpha_old/include/ludo/TODO_list.txt b/appli_3_alpha_old/include/ludo/TODO_list.txt
new file mode 100644
index 0000000..09bca5c
--- /dev/null
+++ b/appli_3_alpha_old/include/ludo/TODO_list.txt
@@ -0,0 +1,22 @@
+mysql_free_result après les requetes et mysql_close ?
+
+configuration de PHP dans un fichier INI :
+array parse_ini_file ( string filename [, bool process_sections] )
+
+
+Vérifier que les redirections vers authentification et le retour fasse bien suivre les paramètres
+--> bookmarque details_reunion?idR=1
+
+
+faire une fonction JS qui appelle une page php ou créer toute seule un cookie qui gère la préférence du css.
+
+Se préoccuper des accents et des encodages de pages !
+
+Faire un pied de page avec nos noms, et les logos valide XHTML, CSS...
+
+TODO : un script php qui purge la base
+-> export SQL ancienne base ?
+-> suppression des réunions plus vielles que...
+-> suppression des Personnes n'ayant jamais changé leur profil et n'ayant plus de réunion les concernant
+-> suppression de tout les créneaux non référencés
+-> suppression de toutes les listes privées obsoletes
diff --git a/appli_3_alpha_old/include/ludo/TODO_list.txt~ b/appli_3_alpha_old/include/ludo/TODO_list.txt~
new file mode 100644
index 0000000..9d5b2f5
--- /dev/null
+++ b/appli_3_alpha_old/include/ludo/TODO_list.txt~
@@ -0,0 +1,19 @@
+mysql_free_result après les requetes et mysql_close ?
+
+
+Vérifier que les redirections vers authentification et le retour fasse bien suivre les paramètres
+--> bookmarque details_reunion?idR=1
+
+
+faire une fonction JS qui appelle une page php ou créer toute seule un cookie qui gère la préférence du css.
+
+Se préoccuper des accents et des encodages de pages !
+
+Faire un pied de page avec nos noms, et les logos valide XHTML, CSS...
+
+TODO : un script php qui purge la base
+-> export SQL ancienne base ?
+-> suppression des réunions plus vielles que...
+-> suppression des Personnes n'ayant jamais changé leur profil et n'ayant plus de réunion les concernant
+-> suppression de tout les créneaux non référencés
+-> suppression de toutes les listes privées obsoletes
diff --git a/appli_3_alpha_old/include/ludo/auth.inc.php b/appli_3_alpha_old/include/ludo/auth.inc.php
new file mode 100644
index 0000000..18b339d
--- /dev/null
+++ b/appli_3_alpha_old/include/ludo/auth.inc.php
@@ -0,0 +1,78 @@
+<?php
+/*
+ * Collection de fonctions pour une authentification externe POP3
+ */
+
+// Constantes d'erreur
+define("ERR_POP3_AUTH_BADSOCK", -1);
+define("ERR_POP3_AUTH_SERVERNACK", -2);
+define("ERR_POP3_AUTH_BADUSER", -3);
+define("ERR_POP3_AUTH_BADPASS", -4);
+define("ERR_BAD_PARAMS", -100);
+
+// Fonction d'authentification pop3
+function pop3_auth_simple($mail, $upw)
+{
+ if ( ($ret = ereg ( "(^.*)@([[:alnum:]]+\.[[:alnum:]]+)", $mail, $re_tokens ) ) )
+ {
+ /* $re_tokens []
+ * [0] : email complet
+ * [1] : nom_mail
+ * [2] : serveur_mail
+ */
+ require_once('config.inc.php');
+ $srv_conf = $CONFIG['AUTH']['POP']['SERVERS'][strtolower($re_tokens[2])];
+ if ( is_array($srv_conf) )
+ {
+ $server=$srv_conf['subdomain'];
+ $port=$srv_conf['port'];
+ if ( $srv_conf['username_is_full_mail'] )
+ { $user = $mail; } else { $user = $re_tokens[1]; }
+ return pop3_auth ($server, $port, $user, $upw);
+ }
+ }
+ /* DEBUG
+ echo $mail . "\n" . $ret . "\n";;
+ print_r($re_tokens);
+ */
+ return ERR_BAD_PARAMS;
+}
+
+function pop3_auth ($server, $port, $user, $upw)
+{
+ //echo "DEBUG : fsockopen($server, $port, $errno, $errstr, 10);";
+ $sock = @fsockopen($server, $port, $errno, $errstr, 10);
+ if ( $sock === false)
+ {
+ return ERR_POP3_AUTH_BADSOCK;
+ }
+
+ //stream_set_timeout ( $sock, 1, 0 );
+
+ fputs($sock, "user $user\r\n");
+
+ if ( pop3_GetAndTestReply($sock) === false )
+ {
+ return ERR_POP3_AUTH_BADUSER;
+ }
+
+ fputs($sock, "pass $upw\r\n");
+
+ if ( pop3_GetAndTestReply($sock) === false )
+ {
+ return ERR_POP3_AUTH_BADPASS;
+ }
+
+ fputs($sock, "quit\r\n");
+
+ return 0;
+}
+
+// Fonction interne testant les réponses du serveur POP3
+function pop3_GetAndTestReply($sock)
+{
+ $reply = fgets($sock, 128);
+ echo $reply . "\n";
+ return ( substr($reply, 0, 4) == "+OK " );
+}
+?> \ No newline at end of file
diff --git a/appli_3_alpha_old/include/ludo/config.inc.php b/appli_3_alpha_old/include/ludo/config.inc.php
new file mode 100644
index 0000000..58d159f
--- /dev/null
+++ b/appli_3_alpha_old/include/ludo/config.inc.php
@@ -0,0 +1,63 @@
+<?php
+$CONFIG = array
+(
+ 'adminMail' => 'jmi@iut-blagnac.fr',
+ 'AUTH' => array
+ (
+ 'POP' => array
+ (
+ 'SERVERS' => array
+ (
+ 'wanadoo.fr' => array
+ (
+ 'subdomain' => 'pop.orange.fr',
+ 'port' => 110,
+ 'username_is_full_mail' => false
+ ),
+ 'orange.fr' => array
+ (
+ 'subdomain' => 'pop.orange.fr',
+ 'port' => 110,
+ 'username_is_full_mail' => false
+ )
+ )
+ ),
+ 'bypass_if_local' => false
+ ),
+ 'CSS' => array
+ (
+ 'CHOOSER_LIST' => array
+ (
+ // 'nom à afficher' => 'nom_fichier_sans_extension'
+ 'standard' => 'ice',
+ 'bleu' => 'style1'
+ )
+ ),
+ 'MAIL' => array
+ (
+ 'TEMPLATES' => array
+ (
+ 'cree' => array
+ (
+ 'caption' => 'Nouvelle Réunion',
+ 'tpl_file' => 'mail_cree.php'
+ ),
+ 'modif' => array
+ (
+ 'caption' => 'Réunion modifiée',
+ 'tpl_file' => 'mail_modif.php'
+ ),
+ 'annul' => array
+ (
+ 'caption' => 'Réunion annulée',
+ 'tpl_file' => 'mail_annul.php'
+ ),
+ 'fixee' => array
+ (
+ 'caption' => 'Réunion fixée',
+ 'tpl_file' => 'mail_fixee.php'
+ )
+ )
+ )
+);
+?>
diff --git a/appli_3_alpha_old/include/ludo/fonctions.inc.php b/appli_3_alpha_old/include/ludo/fonctions.inc.php
new file mode 100644
index 0000000..2914d50
--- /dev/null
+++ b/appli_3_alpha_old/include/ludo/fonctions.inc.php
@@ -0,0 +1,294 @@
+<?php
+/*
+ * Fonctions de génération de message d'erreur pour utilisateur (et le debuggueur !)
+ */
+// Fonction retournant un message d'erreur correspondant à une erreur mysql
+function mysql_generate_errmsg()
+{
+ if ( isset($_REQUEST['debug']) )
+ {
+ return 'Erreur SQL numéro ' . mysql_errno() . ' : ' . mysql_error();
+ }else{
+ return 'Une erreur de base de données s\'est produite, veuillez réessayer ultérieurement.';
+ }
+}
+
+// Fonction retournant un message d'erreur correspondant à un numero d'erreur de pop3_auth(...)
+function pop3_generate_errmsg($errno)
+{
+ require_once 'auth.inc.php';
+
+ if ( isset($_REQUEST['debug']) )
+ {
+ $msg = 'Erreur authentification POP3 de code ' . $errno;
+ }else{
+ switch ($errno)
+ {
+ case ERR_POP3_AUTH_BADUSER :
+ case ERR_POP3_AUTH_BADPASS :
+ $msg = 'Authentification rejetée : Vérifiez votre identifiant et saisissez votre mot de passe à nouveau';
+ break;
+ case ERR_BAD_PARAMS :
+ $msg = 'Adresse email invalide, ou serveur mail non répertorié';
+ break;
+ default :
+ $msg = 'Une erreur de communication avec le service d\'authentification s\'est produite,' .
+ 'veuillez réessayer ultérieurement.';
+ break;
+ }
+ }
+ return $msg;
+}
+
+/*
+ * Génération du code html d'une case du tableau croisé Créneau/Presonnes ayant comme personne $idP,
+ * comme créneau $idC. Si $idEditable est vrai je pourrai cliquer sur le bouton
+ * pour donner ma disponibilité. $estDispo peut-être 'oui', 'non', ou '' et signifie que la personne a déjà répondu 'oui', non'
+ * ou n'a pas encore répondu.
+ */
+// Génération d'une case
+function generate_html_dispo_case($idR, $idP, $idC, $isEditable, $estDispo, $withTD)
+{
+ // Alignement html
+ require_once('html_elements.inc.php');
+ if ( ! $isEditable )
+ {
+ if ( $withTD ) { echo " <td>\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 " <td id=\"dispo_idC${idC}\">\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 ' &nbsp;&nbsp;';
+ generate_html_dispo_dire_non($idR, $idC);
+ }
+ else
+ {
+ if ( $estDispo == 'oui' )
+ { // Disponible
+ generate_html_dispo_oui($idP, $idC);
+ echo ' &nbsp;&nbsp;';
+ generate_html_dispo_dire_non($idR, $idC);
+ }else
+ {
+ // Non Disponible
+ generate_html_dispo_dire_oui($idR, $idC);
+ echo ' &nbsp;&nbsp;';
+ generate_html_dispo_non($idP, $idC);
+ }
+ }
+ }
+ if ( $withTD ) { echo " </td>\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, $idP_Self)
+{
+ // 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);
+ //echo "$is_admin = ( $idP_Self == $idP_orga );";
+ $is_admin = ( $idP_Self == $idP_orga );
+ $montrerDispoR = ( ( $montrerDispoR === 'oui' ) || $is_admin ) ;
+ //echo "DEBUG : annuléé $estAnnulee\n";
+ $estAnnulee = ( $estAnnulee == 'oui' );
+ $estFixee = ( $idC_Fixe != null);
+ }
+ else
+ {
+ // TODO : erreur
+ }
+ // DEBUG : tests en forçant les variables
+ //$estAnnulee=true;
+
+ echo "\nmontrerDispoR==$montrerDispoR\nestAnnulee==$estAnnulee\nestFixee==$estFixee\nis_admin==$is_admin\n";
+?>
+<table class="details" cellspacing="0" summary="Disponibilité des personnes pour chaque créneau possible de la réunion">
+ <thead>
+ <tr>
+<?php
+ if ( $is_admin ) { echo ' <th>Mail</th>' . "\n"; }
+ echo ' <th>Personnes</th>' . "\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;
+ echo ' <th>';
+ if ( $is_admin && ! $estFixee && ! $estAnnulee )
+ {
+ echo '<a href="#popfixer" onclick="loadid(\'popfixer.php?idC=' . $idC;
+ echo '&idR=' . $idR . '\',\'popfixer\',true);popon(\'popfixer\');">';
+ }
+ echo date('d/m/y', $date_deb) . '<br />' . date('H:i', $date_deb) . ' - ' . date('H:i', $date_fin);
+ if ( $is_admin && ! $estFixee && ! $estAnnulee ) { echo '</a>'; }
+ echo "</th>\n";
+
+ // Comptage des personnes disponibles et indisponibles
+ $creneaux[] = $idC;
+ $dispos[$idC]['nbDispo']=0;
+ $dispos[$idC]['nbNonDispo']=0;
+
+ }
+ }
+ if ( $is_admin && ! $estFixee && ! $estAnnulee )
+ {
+?>
+ <th>
+ <a href="#popcreneau" onclick="loadid('popcreneau.php?idR=<?php echo $idR; ?>','popcreneau',true);popon('popcreneau');">
+ <img src="./images/editCreneau2.gif" alt="Editer les creneaux" title="Editer les creneaux" height="21" width="22">
+ </a>
+ </th>
+<?php
+ }
+ //print_r($creneaux);
+?>
+ </tr>
+ </thead>
+ <form id="formmail" action="sendmail.php" method="get">
+ <tbody>
+<?php
+ // Remplissage du tableau, ligne à ligne
+ // Requette écrivant les disponibilités dans un tableau associatif en une seule fois
+ if ( $montrerDispoR )
+ {
+ $query='SELECT ch.idC, ch.idP, ch.estDispo FROM Choisir ch, Creneau c, Personne p, Appartenir a, Reunion r WHERE '
+ ."c.idR=$idR AND r.idR=$idR AND a.idL=r.idL AND p.idP=a.idP AND ch.idC = c.idC AND ch.idP = p.idP;";
+ }
+ else
+ {
+ $query='SELECT ch.idC, ch.idP, ch.estDispo FROM Choisir ch, Creneau c WHERE '
+ ."c.idR='$idR' AND ch.idC=c.idC AND ch.idP='$idP_Self';";
+ }
+ //echo $query . "\n";
+ if ( $result = @mysql_query($query) )
+ {
+ while ( list($idC, $idP, $estDispo) = mysql_fetch_row($result) )
+ {
+ //echo "idC == '$idC'\n";
+ $dispos[$idC][$idP]=$estDispo;
+ if ( $estDispo=='oui' ) { $dispos[$idC]['nbDispo']++; }
+ if ( $estDispo=='non' ) { $dispos[$idC]['nbNonDispo']++; }
+ }
+ }
+ //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 " <tr>\n ";
+ // Colonne de checkbox pour envoi email si $is_admin == true
+ if ( $is_admin ) { echo ' <td><input name="mail_idP' . $p[0] . '" type="checkbox" checked="checked"></td>' . "\n "; }
+ // Nom prénom
+ echo " <td>$p[1] $p[2]</td>\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";
+ generate_html_dispo_case($idR, $p[0], $c_id, ( ! $estFixee && ! $estAnnulee && ( $p[0]==$idP_Self ) ),$estDispo, true);
+ }
+ // Colonne vide pour l'ajout de personnes
+ if ( $is_admin && ! $estFixee && ! $estAnnulee ) { echo " <td>&nbsp;</td>\n"; }
+ echo " </tr>\n";
+ }
+ // Si $is_admin, on met une ligne avec bouton envoyer pour les mails et icône ajout de personnes
+ if ( $is_admin )
+ {
+ echo " <tr>\n <td>\n";
+ echo ' <input name="idR" value="' . $idR . '" type="hidden">' . "\n";
+?>
+ <input value="Envoyer" type="submit">
+ </td>
+ <td>
+ <?php
+ echo '<a href="#poppersonne" onclick="loadid(\'poppersonne.php?idL=';
+ echo $idL_interne . '&idP_orga=' . $idP_orga . '\',\'poppersonne\',true);popon(\'poppersonne\');">' . "\n";
+ ?>
+ <img src="images/addP.gif" alt="Ajouter une personne" title="Ajouter une personne" height="17" width="19">
+ </a>
+ </td>
+<?php
+ foreach ( $creneaux as $c ) { echo '<td>&nbsp;</td>'; }
+ if ( $is_admin && ! $estFixee && ! $estAnnulee ) { echo "\n <td>&nbsp;</td>\n"; }
+ echo " </tr>\n";
+ }
+
+ // On inscrit les lignes de totaux si les disponibilités sont révélées
+ if ( $is_admin && ! $estFixee && ! $estAnnulee)
+ {
+ echo " <tr>\n";
+ echo " <td>&nbsp;</td>\n";
+ echo " <td>Personnes présentes</td>\n";
+ foreach ( $creneaux as $c_id )
+ {
+ echo ' <td>' . $dispos[$c_id]['nbDispo'] . "</td>\n";
+ }
+ echo " <td>&nbsp;</td>\n";
+ echo " </tr>\n";
+
+ echo " <tr>\n";
+ echo " <td>&nbsp;</td>\n";
+ echo " <td>Personnes absentes</td>\n";
+ foreach ( $creneaux as $c_id )
+ {
+ echo ' <td>' . $dispos[$c_id]['nbNonDispo'] . "</td>\n";
+ }
+ echo " <td>&nbsp;</td>\n";
+ echo " </tr>\n";
+ }
+ }
+ echo " </tbody>\n";
+ echo " input name=\"idR\" value=\"$idR\" type=\"hidden\"\n";
+ echo " </form> </table>\n";
+}
+
+?> \ No newline at end of file
diff --git a/appli_3_alpha_old/include/ludo/html_elements.inc.php b/appli_3_alpha_old/include/ludo/html_elements.inc.php
new file mode 100644
index 0000000..511ea58
--- /dev/null
+++ b/appli_3_alpha_old/include/ludo/html_elements.inc.php
@@ -0,0 +1,138 @@
+<?php
+/*
+ * Fonctions de génération de code HTML...
+ */
+ function generate_html_doctype_and_head($title)
+{
+echo '<?xml version="1.0" encoding="ISO-8859-1"?>'."\n"
+?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" lang="fr">
+ <head>
+ <?php echo "<title>AWOR - $title</title>\n"; ?>
+ <meta name="keywords" content="AWOR, Application Web, Organisation, Réunion, Reunion" />
+ <meta name="description" content="Application Web d'Organisation de Réunion (AWOR). Facilite la vie des organisateurs !" />
+ <meta name="author" content="Jérémie Dénoyer, Ludovic Pouzenc, Andriana Semouchtchak, Julien Sérè" />
+ <script type="text/javascript" src="script.js"></script>
+ <?php
+ if ( isset($_COOKIE['awor']['custom_css'] ) )
+ {
+ $cssfile = $_COOKIE['awor']['custom_css'];
+ }
+ else
+ {
+ include 'config.inc.php';
+ $cssfile=$CONFIG['CSS']['CHOOSER_LIST']['standard'];
+ }
+ echo '<link href="css/' . $cssfile . '.css" rel="stylesheet" type="text/css" />' . "\n";
+ echo '<link href="css/' . $cssfile . '_nohelp.css" rel="alternate stylesheet" type="text/css" title="nohelp"/>' . "\n";
+ echo '<!--<link href="css/print.css" rel="alternate stylesheet" type="text/css" title="print"/>-->' . "\n";
+ ?>
+ </head>
+<?php
+}
+
+function generate_html_divs_menu()
+{
+?>
+<div id="titre"><h2>AWOR</h2></div>
+<div id="main_menu">
+ <ul id="menu">
+ <li><a href="index.php">R&eacute;unions</a></li>
+ <li><a href="listes.php">Listes</a></li>
+ <li><a href="profil.php">Mon profil</a></li>
+ <li><a href="ical.php">iCal</a></li>
+ <li id="deconnection"><a href="deco.php">D&eacute;connexion</a></li>
+ </ul>
+</div>
+<?php
+}
+
+function generate_html_div_help($help_file='')
+{
+ //echo "DEBUG : function generate_html_div_help()\n";
+ if ($help_file=='' ) { $help_file='help/' . basename($_SERVER['PHP_SELF']) . '.hlp'; }
+ //$help_file='modele_page.php.hlp';
+ //echo "DEBUG : $help_file\n";
+ if ( is_readable($help_file) )
+ //if ( @fopen($help_file, 'r')!==false )
+ {
+ echo '<div id="no_help">' . "\n<h2><a href=\"#css_standard\" onclick=\"setActiveStyleSheet('standard');\">?</a></h2>\n" . "</div>\n";
+ echo '<div id="help">' . "\n<h2><a href=\"#css_nohelp\" onclick=\"setActiveStyleSheet('nohelp');\">Aide</a></h2>\n";
+ readfile($help_file);
+ echo "</div>\n";
+ }
+}
+
+function generate_html_div_errmsg($errmsg)
+{
+ echo '<div class="errmsg">' . "\n" . '<span class="errmsg">' . $errmsg . "</span>\n";
+ require_once('config.inc.php');
+ if ( isset( $CONFIG['adminMail'] ) && ( ! isset($_REQUEST['debug'] ) ) )
+ {
+ echo '<span class="contactAdm">Si le problème persiste, vous pouvez contacter l\'administrateur par email à l\'adresse suivante : ';
+ echo '<a href="mailto:' . $CONFIG['adminMail'] . '">' . $CONFIG['adminMail'] . "</a></span>\n";
+ }
+ echo "</div>\n";
+}
+
+function generate_html_div_css_chooser()
+{
+ // TODO : fonction JS qui fait ce qu'il faut !! (a mettre dans le head ??)
+ require_once('config.inc.php');
+ if ( ! is_array($CONFIG['CSS']['CHOOSER_LIST']) ) { return false; }
+
+ if ( isset($_COOKIE['awor']['custom_css'] ) ) { $css_selected=$_COOKIE['awor']['custom_css']; };
+ echo '<div class="css_chooser">' . "\n";
+ echo ' <select>' . "\n";
+ foreach ( $CONFIG['CSS']['CHOOSER_LIST'] as $file => $name )
+ {
+ echo ' <option value="' . $file;
+ if ( $file == $css_selected ) { echo ' selected="selected'; }
+ echo '">' . $name . '</option>' . "\n";
+ }
+ echo ' </select>'. "\n";
+ echo '</div>'. "\n";
+}
+
+function generate_html_div_deconnect()
+{
+ echo '<div class="deco"><a href="deco.php">Deconnexion</a></div>'."\n";
+}
+function generate_html_div_back()
+{
+ echo '<div class="retour"><a href="index.php">Retour</a></div>'."\n";
+}
+
+function generate_html_dispo_inconnu($idP, $idC)
+{
+ echo '<img src="./images/question.gif" alt="Inconnu" height="15" width="15" />' . "\n";
+}
+
+function generate_html_dispo_oui($idP, $idC)
+{
+ echo '<img src="./images/ok.gif" alt="Disponible" height="16" width="16" />' . "\n";
+}
+
+function generate_html_dispo_non($idP, $idC)
+{
+ echo '<img src="./images/del.gif" alt="Non disponible" height="15" width="15" />' . "\n";
+}
+
+function generate_html_dispo_dire_oui($idR, $idC)
+{
+ //~ echo '<img src="./images/button_ok.png" alt="Dire que je suis disponible" height="25" width="25" />' . "\n";
+ echo "<a href=\"#dispo_idC${idC}\" onclick=\"loadid('include/ludo/majDispo.php?idR=$idR&idC=$idC&estDispo=oui','dispo_idC${idC}',false);\">";
+ echo '<img src="./images/button_ok.png" alt="Dire que je suis disponible" height="25" width="25" /></a>' . "\n";
+}
+
+function generate_html_dispo_dire_non($idR, $idC)
+{
+ echo "<a href=\"#dispo_idC${idC}\" onclick=\"loadid('include/ludo/majDispo.php?idR=$idR&idC=$idC&estDispo=non','dispo_idC${idC}',false);\">";
+ echo '<img src="./images/button_del.png" alt="Dire que je suis pas disponible" height="25" width="25" /></a>' . "\n";
+}
+
+function generate_html_reunion_detail_button($idR)
+{
+ echo '<a href="details_reunion.php?idR=' . $idR . '"><img src="images/details.png" alt="D&eacute;tails" width="20" height="20" /></a>';
+}
diff --git a/appli_3_alpha_old/include/ludo/mail_textarea.php b/appli_3_alpha_old/include/ludo/mail_textarea.php
new file mode 100644
index 0000000..c9a01eb
--- /dev/null
+++ b/appli_3_alpha_old/include/ludo/mail_textarea.php
@@ -0,0 +1,44 @@
+<?php
+require_once('session_verify.inc.php');
+include('config.inc.php');
+//~ require_once('/home/lud/shares/public_html/awor/appli_3_alpha/include/connect.inc.php');
+
+//include('include/connect.inc.php');
+
+if ( isset($_GET['model']) ) { $model=$_GET['model']; } else { $model='empty'; }
+?>
+
+<textarea name="msgText">
+<?php
+ if ( $model != 'empty')
+ {
+ include('../connect.inc.php');
+ if ( ! isset($CONFIG['MAIL']['TEMPLATES'][$model]['tpl_file']) )
+ {
+ echo 'Désolé, modèle indisponible...';
+ }
+ else
+ {
+ // On récupère quelques information à propos de la réunion pour que les templates puissent être customisés
+ $objetR=$ordreJourR=$lieuR=$remarquesR="";
+ if (isset( $_GET['idR']) )
+ {
+ $idR=addslashes($_GET['idR']);
+ $result = mysql_query("SELECT objetR, ordreJourR, lieuR, remarquesR FROM Reunion WHERE idR='$idR'");
+ if (mysql_num_rows($result)===1)
+ {
+ list($objetR, $ordreJourR, $lieuR, $remarquesR) = mysql_fetch_array($result);
+ }
+ }
+ //echo 'DEBUG : ../../templates/' . $CONFIG['MAIL']['TEMPLATES'][$model]['tpl_file'] . "\n";
+ if (!@include('../../templates/' . $CONFIG['MAIL']['TEMPLATES'][$model]['tpl_file']) )
+ {
+ echo 'Désolé, impossible de charger le fichier modèle...';
+ }
+ }
+ }
+ //print_r($_REQUEST);
+ //print_r($CONFIG);
+?>
+</textarea>
+
diff --git a/appli_3_alpha_old/include/ludo/majDispo.php b/appli_3_alpha_old/include/ludo/majDispo.php
new file mode 100644
index 0000000..276b8a3
--- /dev/null
+++ b/appli_3_alpha_old/include/ludo/majDispo.php
@@ -0,0 +1,28 @@
+<?php
+require('session_verify.inc.php');
+require('fonctions.inc.php');
+
+// TODO : vérification que la réunion nous concerne bien !
+
+if ( !isset($_GET['idR']) || !isset($_GET['idC']) || !isset($_GET['estDispo']) || !isset($_SESSION['idP']) )
+{
+ $errmsg="Paramètres incorrects\n";
+}
+
+if ( isset( $errmsg ) )
+{
+ // TODO
+}
+else
+{
+ $idR=addslashes($_GET['idR']);
+ $idC=addslashes($_GET['idC']);
+ $estDispo=addslashes($_GET['estDispo']);
+ $idP=$_SESSION['idP'];
+
+
+ // TODO Traitement
+
+ generate_html_dispo_case($idR, $idP, $idC, true, $estDispo, false);
+}
+?> \ No newline at end of file
diff --git a/appli_3_alpha_old/include/ludo/redir.inc.php b/appli_3_alpha_old/include/ludo/redir.inc.php
new file mode 100644
index 0000000..6baf40d
--- /dev/null
+++ b/appli_3_alpha_old/include/ludo/redir.inc.php
@@ -0,0 +1,20 @@
+<?php
+function html_redir($dest)
+{
+ header("Location: $dest");
+require_once('html_elements.inc.php');
+generate_html_doctype_and_head("Redirection");
+?>
+<body>
+ <h1>Redirection</h1>
+ <p>Si vous voyez cette page, merci de suivre le lien ci-dessous</p>
+<?php
+ // Ne respecte pas le XHTML s'il y a des paramètres les & doivent être remplacée par &amp;
+ echo '<p><a href="' . $dest . '">' . $dest . '</a></p>' . "\n";
+?>
+</body>
+</html>
+<?php
+ exit();
+}
+?> \ No newline at end of file
diff --git a/appli_3_alpha_old/include/ludo/session_verify.inc.php b/appli_3_alpha_old/include/ludo/session_verify.inc.php
new file mode 100644
index 0000000..0a9cfbb
--- /dev/null
+++ b/appli_3_alpha_old/include/ludo/session_verify.inc.php
@@ -0,0 +1,10 @@
+<?php
+require('redir.inc.php');
+
+session_start();
+if ( ! isset($_SESSION['loginP']) )
+{
+ $dest='auth_dialog.php?retour=' . $_SERVER['PHP_SELF'];
+ html_redir($dest);
+}
+?> \ No newline at end of file