summaryrefslogtreecommitdiff
path: root/beta_old1/app
diff options
context:
space:
mode:
Diffstat (limited to 'beta_old1/app')
-rw-r--r--beta_old1/app/admin.php45
-rw-r--r--beta_old1/app/auth_dialog.php121
-rw-r--r--beta_old1/app/css/default.css240
-rw-r--r--beta_old1/app/css/default_img/README.txt1
-rw-r--r--beta_old1/app/css/default_img/README.txt~0
-rw-r--r--beta_old1/app/css/default_img/titre.pngbin0 -> 23658 bytes
-rw-r--r--beta_old1/app/css/ice.css311
-rw-r--r--beta_old1/app/css/ice_img/README.txt1
-rw-r--r--beta_old1/app/css/ice_img/logo.pngbin0 -> 5040 bytes
-rw-r--r--beta_old1/app/css/ice_img/masque.pngbin0 -> 415 bytes
-rw-r--r--beta_old1/app/css/ice_img/titleTable.pngbin0 -> 1248 bytes
-rw-r--r--beta_old1/app/css/ice_img/titre.pngbin0 -> 23658 bytes
-rw-r--r--beta_old1/app/css/ice_moche.css233
-rw-r--r--beta_old1/app/css/ice_moche_img/README.txt1
-rw-r--r--beta_old1/app/css/ice_moche_img/logo.pngbin0 -> 5040 bytes
-rw-r--r--beta_old1/app/css/ice_moche_img/masque.pngbin0 -> 415 bytes
-rw-r--r--beta_old1/app/css/ice_moche_img/titleTable.pngbin0 -> 1248 bytes
-rw-r--r--beta_old1/app/css/ice_moche_img/titre.pngbin0 -> 23658 bytes
-rw-r--r--beta_old1/app/css/ice_moche_nohelp.css252
-rw-r--r--beta_old1/app/css/ice_nohelp.css311
-rw-r--r--beta_old1/app/deco.php36
-rw-r--r--beta_old1/app/details_reunion.php121
-rw-r--r--beta_old1/app/help/admin.php.hlp23
-rw-r--r--beta_old1/app/help/auth_dialog.php.hlp2
-rw-r--r--beta_old1/app/help/details_reunion.php.hlp4
-rw-r--r--beta_old1/app/help/details_reunion_admin.php.hlp17
-rw-r--r--beta_old1/app/help/groupe.hlp1
-rw-r--r--beta_old1/app/help/index.php.hlp7
-rw-r--r--beta_old1/app/help/listes.php.hlp1
-rw-r--r--beta_old1/app/help/modele_page.php.hlp17
-rw-r--r--beta_old1/app/help/organiser.php.hlp2
-rw-r--r--beta_old1/app/help/profil.php.hlp2
-rw-r--r--beta_old1/app/help/sendmail.php.hlp2
-rw-r--r--beta_old1/app/ical.php36
-rw-r--r--beta_old1/app/images/addP.gifbin0 -> 363 bytes
-rw-r--r--beta_old1/app/images/button_del.pngbin0 -> 1429 bytes
-rw-r--r--beta_old1/app/images/button_ok.pngbin0 -> 1679 bytes
-rw-r--r--beta_old1/app/images/del.gifbin0 -> 882 bytes
-rw-r--r--beta_old1/app/images/details.pngbin0 -> 237 bytes
-rw-r--r--beta_old1/app/images/editCreneau2.gifbin0 -> 865 bytes
-rw-r--r--beta_old1/app/images/logo.pngbin0 -> 5040 bytes
-rw-r--r--beta_old1/app/images/masque.pngbin0 -> 415 bytes
-rw-r--r--beta_old1/app/images/ok.gifbin0 -> 340 bytes
-rw-r--r--beta_old1/app/images/question.gifbin0 -> 640 bytes
-rw-r--r--beta_old1/app/images/supprimer.pngbin0 -> 244 bytes
-rw-r--r--beta_old1/app/images/vcss.gifbin0 -> 1547 bytes
-rw-r--r--beta_old1/app/images/vxhtml.gifbin0 -> 2344 bytes
-rw-r--r--beta_old1/app/images/wai.gifbin0 -> 2370 bytes
-rw-r--r--beta_old1/app/include/connect.inc.php14
-rw-r--r--beta_old1/app/include/ical.inc.php68
-rw-r--r--beta_old1/app/include/je.inc.php244
-rw-r--r--beta_old1/app/include/ju.inc.php230
-rw-r--r--beta_old1/app/include/ludo/TODO_list.txt24
-rw-r--r--beta_old1/app/include/ludo/auth.inc.php78
-rw-r--r--beta_old1/app/include/ludo/config.inc.php73
-rw-r--r--beta_old1/app/include/ludo/div_create_or_modif.php79
-rw-r--r--beta_old1/app/include/ludo/fonctions.inc.php515
-rw-r--r--beta_old1/app/include/ludo/html_elements.inc.php183
-rw-r--r--beta_old1/app/include/ludo/mail_textarea.php44
-rw-r--r--beta_old1/app/include/ludo/majDispo.php41
-rw-r--r--beta_old1/app/include/ludo/redir.inc.php20
-rw-r--r--beta_old1/app/include/ludo/session_verify.inc.php9
-rw-r--r--beta_old1/app/index.php123
-rw-r--r--beta_old1/app/install/RAZbase.php130
-rw-r--r--beta_old1/app/install/base.sql123
-rw-r--r--beta_old1/app/install/jeu_essai.sql2
-rw-r--r--beta_old1/app/listes.php48
-rw-r--r--beta_old1/app/modele_page.php56
-rw-r--r--beta_old1/app/organiser.php24
-rw-r--r--beta_old1/app/popcommentaire.php23
-rw-r--r--beta_old1/app/popcreneau.php90
-rw-r--r--beta_old1/app/popdeletelist.php20
-rw-r--r--beta_old1/app/popfixer.php42
-rw-r--r--beta_old1/app/popnewlist.php3
-rw-r--r--beta_old1/app/poppersonne.php112
-rw-r--r--beta_old1/app/poppersonneliste.php27
-rw-r--r--beta_old1/app/profil.php59
-rw-r--r--beta_old1/app/script.js341
-rw-r--r--beta_old1/app/sendmail.php196
-rw-r--r--beta_old1/app/templates/mail_annul.php12
-rw-r--r--beta_old1/app/templates/mail_cree.php13
-rw-r--r--beta_old1/app/templates/mail_fixee.php14
-rw-r--r--beta_old1/app/templates/mail_modif.php13
-rw-r--r--beta_old1/app/test.php8
-rw-r--r--beta_old1/app/testGet.php18
85 files changed, 4906 insertions, 0 deletions
diff --git a/beta_old1/app/admin.php b/beta_old1/app/admin.php
new file mode 100644
index 0000000..fffdd13
--- /dev/null
+++ b/beta_old1/app/admin.php
@@ -0,0 +1,45 @@
+<?php
+require('include/ludo/session_verify.inc.php');
+require_once('include/ludo/html_elements.inc.php');
+require_once('include/ludo/fonctions.inc.php');
+require_once('include/je.inc.php');
+require_once('include/ju.inc.php');
+include('include/ludo/config.inc.php');
+
+generate_html_doctype_and_head("Administration");
+echo "<body>\n";
+
+generate_html_divs_menu();
+?>
+ <div id="sous_menu">
+ <p class="arbre">
+ &gt; <a href="index.php">Accueil</a>
+ &gt; Administration
+ </p>
+ </div>
+ <div id="contenu">
+<?php
+ generate_html_div_help();
+
+ if ( !isset($_SESSION['session_loginP']) || ( !is_integer(array_search($_SESSION['session_loginP'],$CONFIG['SUPERUSERS'],true))) )
+ {
+ $errmsg='Vous n\'avez pas le droit de consulter cette page : vous n\'êtes pas un administrateur !';
+ generate_html_div_errmsg($errmsg);
+ echo '</body></html>';
+ exit();
+ }
+
+
+ // TODO : fonctions qui purgent les tables filles selon un id donné, pour chaque cas mère-fille (indiqués plus bas)
+
+ // Fonctions qui génèrent des tableaux listant tous les objets de la base, et permettant la sélection multiple et l'éffacement (en cascade)
+ //~ admin_display_listes(); // Permet de virer des liste
+ //~ admin_display_fichiers(); // Permet de virer des fichiers, doit purger physiquement sur le disque
+ //~ admin_display_reunions(); // Permet de virer des gens, doit purger les tables Creneau et Choisir, Repondre, Fichiers
+ //~ admin_display_personnes(); // Permet de virer des gens, doit purger les tables Appartenir, Reunion
+
+echo " </div>\n";
+generate_html_div_footer();
+?>
+</body>
+</html>
diff --git a/beta_old1/app/auth_dialog.php b/beta_old1/app/auth_dialog.php
new file mode 100644
index 0000000..9d1d391
--- /dev/null
+++ b/beta_old1/app/auth_dialog.php
@@ -0,0 +1,121 @@
+<?php
+ // Récupération des paramètres
+ if ( isset($_GET['retour']) && $_GET['retour']!='' )
+ { $retour=addslashes( $_GET['retour'] ); } else { $retour='index.php'; }
+
+ // Si le formulaire à été envoyé, on le traite ici
+ if ( isset($_POST['envoi']) && $_POST['envoi'] === '1' )
+ {
+ if ( ! ( isset($_POST['loginP']) && isset($_POST['pass']) ) )
+ {
+ $errmsg = 'Paramètres incorrects';
+ }
+ else
+ {
+ $loginP=addslashes( $_POST['loginP'] );
+
+
+ include 'include/ludo/auth.inc.php';
+
+ // Code vérifiant que la personne qui tente de se connecter est bien référencée dans notre base
+ include 'include/ludo/fonctions.inc.php';
+ // Connexion à la base et sélection de la database
+ include 'include/connect.inc.php';
+ include 'include/ludo/config.inc.php';
+
+ // Requete SQL
+ $query = "SELECT idP, loginP, nomP, prenomP, methodeAuth FROM Personne WHERE loginP='$loginP';";
+ if ( ! $result = @mysql_query($query) )
+ {
+ // Cas d'erreur
+ $errmsg =mysql_generate_errmsg();
+ }
+ else
+ {
+ // Initialisation par défaut
+ $methodeAuth='';
+ // Chargement des préférences d'authentification de l'utilisateur
+ if ( mysql_num_rows($result) === 1)
+ {
+ list($idP, $loginP, $nomP, $prenomP, $methodeAuth) = mysql_fetch_row($result);
+ }
+ // Si le script est lancé en local, on saute l'authentification
+ if ( ($CONFIG['AUTH']['bypass_if_local'] === true )
+ && ( ($_SERVER['REMOTE_ADDR'] == 'localhost') || ($_SERVER['REMOTE_ADDR'] == '127.0.0.1') ) )
+ {
+ $methodeAuth='bypass';
+ }
+
+ $auth_is_ok=false;
+ switch ( $methodeAuth )
+ {
+ case 'webetud':
+ // TODO
+ break;
+ // Vous pouvez ajouter d'autres mode d'authentification ici !
+ case 'bypass':
+ $auth_is_ok=true;
+ break;
+ default:
+ // Tentative d'authentification POP
+ if ( ($errno = pop3_auth_simple($loginP, $_POST['pass']) ) != 0 )
+ {
+ // Authentification échouée
+ $errmsg=pop3_generate_errmsg($errno);
+ }
+ else
+ {
+ $auth_is_ok=true;
+ }
+ break;
+ }
+ if ( $auth_is_ok === true )
+ {
+ // Authentification réussie
+ session_start();
+ $_SESSION['session_loginP']=$loginP;
+ $_SESSION['session_nomP']=$nomP;
+ $_SESSION['session_prenomP']=$prenomP;
+ $_SESSION['session_idP']=$idP;
+ require('include/ludo/redir.inc.php');
+ html_redir($retour);
+ }
+ }
+ }
+ }
+require_once('include/ludo/html_elements.inc.php');
+generate_html_doctype_and_head("Identification");
+?>
+<body onload="javascript:document.forms['auth'].elements['loginP'].focus()">
+<div id="titre"><h2>AWOR</h2></div>
+
+<?php
+generate_html_div_help();
+?>
+<div id="page_accueil">
+ <h1>Application Web d'Organisation de Réunion</h1>
+ <h2>Veuillez vous identifier</h2>
+ <?php echo '<form id="auth" method="post" action="' . $_SERVER['PHP_SELF'] . '">' . "\n"; ?>
+ <input type="hidden" name="envoi" value="1" />
+ <?php echo '<input type="hidden" name="retour" value="' . $retour . '" />' . "\n" ; ?>
+ <div class="aligned">
+ <div>
+ <span class="label">Votre identifiant :</span>
+ <span class="field"><input name="loginP" type="text" size="20" tabindex="1" /></span>
+ </div>
+ <div>
+ <span class="label">Votre mot de passe :</span>
+ <span class="field"><input name="pass" type="password" size="20" tabindex="2" /></span>
+ </div>
+ <div>
+ <span class="label"><input type="reset" value="Vider" /></span>
+ <span class="field"><input type="submit" value="Valider" /></span>
+ </div>
+ </div>
+<?php if ( isset ($debug) ) { echo ' <input type="hidden" name="debug" value="true" />' . "\n"; } ?>
+ </form>
+</div>
+<?php if ( isset ($errmsg) ) { generate_html_div_errmsg($errmsg); }
+generate_html_div_footer(); ?>
+</body>
+</html>
diff --git a/beta_old1/app/css/default.css b/beta_old1/app/css/default.css
new file mode 100644
index 0000000..b8ecc3d
--- /dev/null
+++ b/beta_old1/app/css/default.css
@@ -0,0 +1,240 @@
+
+img { border : none ; }
+body {
+ color: #000000;
+ background-color:#F5F5DC;
+ font-family: Verdana, Arial, Helvetica, sans-serif;
+ padding:0px;
+ margin:0px;
+ min-width:750px; /*Pour eviter le chevauchement pour FireFox, ne change rien pour IE (qui gere pas trop mal sans ca) */
+}
+table {
+ border-spacing:0px;
+ margin: auto;
+ padding: 0px;
+ width:98%;
+ text-align:center;
+ border: thin solid #E0E0E0;
+ border-collapse:collapse; /* Imite le cellspacing=0 et fonctionne sous IE */
+ background-color:#F7F7F7;
+}
+th {
+ border-right:none;
+ font-weight: bold;
+ color: #FFFFFF;
+ background-color: #551A8B;
+}
+td {
+ border-bottom-width: thin;
+ border-bottom-style: solid;
+ border-bottom-color: #E0E0E0;
+}
+th a:link, th a:visited {
+ font-size: x-small;
+ color: #FFFFFF;
+}
+h1 {
+ font-weight: bold;
+ color: #9999FF;
+ text-align: center;
+}
+h2 {
+ color: #5C5CFF;
+ margin: 0px;
+}
+select { width:auto; }
+/***** Titre *****/
+#titre h2 {
+ color: #551A8B;
+ margin-left:50px;
+ height:50px;
+ width:200px;
+ background-image:url(default_img/titre.png);
+ background-position:left;
+ background-repeat:no-repeat;
+ color:#FFFFFF;
+ font-size:0px;
+}
+#titre {
+ height:50px;
+ clear:left;
+ background-color:#FFFFFF;
+ background-image:url(../images/logo.png);
+ background-position:left;
+ background-repeat:no-repeat;
+}
+
+/*****************/
+/***** Menu *****/
+#menu {
+ padding:0px;
+ margin:0px;
+ width:100%;
+ height:20px;
+ background-color:#551A8B;
+}
+#menu a {
+ text-decoration:none;
+ display:block;
+ font-weight:bold;
+ text-align:center;
+ color:#FFFFFF;
+}
+#menu a:hover {
+ color:#000000;
+ background-color:#FFFFFF;
+}
+/* Pour IE5/MAC \*/#menu a{float:none;}/**/
+#menu li {
+ list-style: none;
+ float:left;
+ padding:0;
+ margin:0;
+ width:120px;
+ white-space:nowrap;/*Evite l'étalement sur deux ligne*/
+ vertical-align:middle;
+}
+#menu #deconnection {
+ float:right;
+}
+
+#main_menu {
+
+}
+/*********************/
+/***** Sous Menu *****/
+#sous_menu {
+ clear:left;
+ padding-top:5px;
+ padding-bottom:3px;
+ padding-left:15px;
+ border-bottom:1px solid #000000;
+ background-color:#8470FF;
+}
+/* -------------- Arbre -------------------*/
+p.arbre {
+ font-size: small;
+ color: #FFFFFF;
+ text-align: left;
+ margin-top: 0px;
+ margin-right: 0px;
+ margin-bottom: 0px;
+ margin-left: 0px;
+}
+p.arbre a:link, p.arbre a:visited {color:#FFFFFF; }
+
+/*******************/
+/***** Contenu *****/
+#contenu {
+ padding-top:10px;
+ padding-bottom:20px;
+ padding-left:5px;
+ padding-right:22%;/*225px;*/ /*200 + 5*2 + 2*2 + (pour ie 5*2) */
+}
+#help {
+ text-align:justify;
+ color:#000000;
+ float:right;
+ margin:5px;
+ padding:5px;
+ border:thin solid #000000;
+ background-color:#F7F7F7;
+ font-size:small;
+ width:18%;
+}
+#help h2
+{
+ text-align:center;
+ font-size:medium;
+ color:#FFFFFF;
+ background-color:#551A8B;
+ margin-top:0;
+ margin-bottom:10px;
+}
+
+#no_help h2
+{
+ display:none;
+}
+.popup , .popup_creneau , .popup_personne , .popup_commentaire , .popup_fichier , .popup_new {
+ display: none;
+ position: absolute;
+ left:50%;
+ top:50%;
+ border: 3px solid #000000;
+ background-color: #8470FF;
+ z-index: 500;
+ font-size: 80%;
+ text-align:center;
+}
+.popup {
+ width: 20em;
+ height: 8em;
+ margin-top: -4em ;/*moitié de height */
+ margin-left: -10em ;/*moitié de width */
+}
+
+.popup_creneau {
+ width: 45em;
+ height: 22em;
+ margin-top: -11em ;/*moitié de height */
+ margin-left: -22.5em ;/*moitié de width */
+}
+.popup_personne {
+ width: 45em;
+ height: 25em;
+ margin-top: -12.5em ;/*moitié de height */
+ margin-left: -22.5em ;/*moitié de width */
+}
+.popup_commentaire {
+ width: 30em;
+ height: 8em;
+ margin-top: -4em ;/*moitié de height */
+ margin-left: -15em ;/*moitié de width */
+}
+
+.popup_fichier {
+ width: 30em;
+ height: 8em;
+ margin-top: -4em ;/*moitié de height */
+ margin-left: -15em ;/*moitié de width */
+}
+
+.popup_new {
+ width: 30em;
+ height: 8em;
+ margin-top: -4em ;/*moitié de height */
+ margin-left: -15em ;/*moitié de width */
+}
+
+.popup h2 , .popup_creneau h2 , .popup_personne h2 , .popup_commentaire h2 , .popup_fichier h2 , .popup_new h2
+{
+ background:#551A8B;
+ color:#FFFFFF;
+ font-size:small;
+ border-bottom:inherit;
+}
+
+div.popup_contenu
+{
+ margin-top:1em;
+ vertical-align:middle;
+}
+
+.popup input , .popup_creneau input , .popup_personne input , .popup_commentaire input , .popup_fichier input , .popup_new input
+{
+ cursor:pointer;
+}
+
+#masque
+{
+ width:100%;
+ height:100%;
+ display: none;
+ position: absolute;
+ left:0px;
+ top:0px;
+ background-image:url(../images/masque.png);
+ background-repeat:repeat;
+ z-index: 499;
+} \ No newline at end of file
diff --git a/beta_old1/app/css/default_img/README.txt b/beta_old1/app/css/default_img/README.txt
new file mode 100644
index 0000000..fec6abf
--- /dev/null
+++ b/beta_old1/app/css/default_img/README.txt
@@ -0,0 +1 @@
+C'est ici qu'on stockera les images propre au style default.css
diff --git a/beta_old1/app/css/default_img/README.txt~ b/beta_old1/app/css/default_img/README.txt~
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/beta_old1/app/css/default_img/README.txt~
diff --git a/beta_old1/app/css/default_img/titre.png b/beta_old1/app/css/default_img/titre.png
new file mode 100644
index 0000000..d8d9ce6
--- /dev/null
+++ b/beta_old1/app/css/default_img/titre.png
Binary files differ
diff --git a/beta_old1/app/css/ice.css b/beta_old1/app/css/ice.css
new file mode 100644
index 0000000..acc0714
--- /dev/null
+++ b/beta_old1/app/css/ice.css
@@ -0,0 +1,311 @@
+em {color:#F00;}
+img { border : none ; }
+img.spacing{ margin: 0 0.5em 0 0.5em;}
+body {
+ color: #000000;
+ background-color:#F5F5DC;
+ font-family: Verdana, Arial, Helvetica, sans-serif;
+ padding:0px;
+ margin:0px;
+ min-width:750px; /*Pour eviter le chevauchement pour FireFox, ne change rien pour IE (qui gere pas trop mal sans ca) */
+}
+table {
+ border-spacing:0px;
+ margin: auto;
+ padding: 0px;
+ width:98%;
+ text-align:center;
+ border: thin solid #E0E0E0;
+ border-collapse:collapse; /* Imite le cellspacing=0 et fonctionne sous IE */
+ background-color:#F7F7F7;
+}
+th {
+ border-right:none;
+ font-weight: bold;
+ color: #FFFFFF;
+ background-color:#551A8B;
+}
+th.selected {color:#FFF;background-color:#8470FF}
+td {
+ border-bottom-width: thin;
+ border-bottom-style: solid;
+ border-bottom-color: #E0E0E0;
+}
+th a:link, th a:visited {
+ font-size: x-small;
+ color: #FFFFFF;
+}
+
+h1 {
+ font-weight: bold;
+ color: #9999FF;
+ text-align: center;
+}
+h2 {
+ color: #5C5CFF;
+ margin: 0px;
+}
+.reunion_fixee {
+ color:#bf7e00;
+}
+.reunion_en_cours {
+ color:#9fbf00;
+}
+.reunion_annulee {
+ color:#bf2000;
+}
+select { width:auto; }
+/***** Titre *****/
+#titre h2 {
+ color: #551A8B;
+ margin-left:50px;
+ height:50px;
+ width:200px;
+ background-image:url(ice_img/titre.png);
+ background-position:left;
+ background-repeat:no-repeat;
+ color:#FFFFFF;
+ font-size:0px;
+}
+#titre {
+ height:50px;
+ clear:left;
+ background-color:#FFFFFF;
+ background-image:url(ice_img/logo.png);
+ background-position:left;
+ background-repeat:no-repeat;
+}
+
+/*****************/
+/***** Menu *****/
+#menu {
+ padding:0px;
+ margin:0px;
+ width:100%;
+ height:1.5em;
+ background-color:#551A8B;
+}
+#menu a {
+ text-decoration:none;
+ display:block;
+ font-weight:bold;
+ text-align:center;
+ color:#FFFFFF;
+ height:1.5em;
+}
+#menu a:hover {
+ color:#000000;
+ background-color:#FFFFFF;
+ height:1.5em;
+}
+/* Pour IE5/MAC \*/#menu a{float:none;}/**/
+#menu li {
+ list-style: none;
+ float:left;
+ padding:0;
+ margin:0;
+ width:10em;
+ white-space:nowrap;/*Evite l'étalement sur deux ligne*/
+ vertical-align:middle;
+}
+#menu #deconnection {
+ float:right;
+}
+
+#main_menu {
+
+}
+/*********************/
+/***** Sous Menu *****/
+#sous_menu {
+ clear:left;
+ padding-top:5px;
+ padding-bottom:3px;
+ padding-left:15px;
+ border-bottom:1px solid #000000;
+ background-color:#8470FF;
+}
+/* -------------- Arbre -------------------*/
+p.arbre {
+ font-size: small;
+ color: #FFFFFF;
+ text-align: left;
+ margin-top: 0px;
+ margin-right: 0px;
+ margin-bottom: 0px;
+ margin-left: 0px;
+}
+p.arbre a:link, p.arbre a:visited {color:#FFFFFF; }
+
+/*******************/
+/***** Contenu *****/
+#contenu {
+ padding-top:10px;
+ padding-bottom:20px;
+ padding-left:5px;
+ float:left;
+ width:78%;
+}
+#help {
+ text-align:justify;
+ color:#000000;
+ float:right;
+ margin:5px;
+ padding:5px;
+ border:thin solid #000000;
+ background-color:#F7F7F7;
+ font-size:small;
+ width:18%;
+}
+
+#help h2 , #help a
+{
+ text-align:center;
+ font-size:medium;
+ color:#FFFFFF;
+ background-color:#551A8B;
+ color:#FFFFFF;
+ margin-top:0;
+ margin-bottom:10px;
+}
+#no_help, #no_help h2
+{
+ display:none;
+}
+
+
+.popup , .popup_creneau , .popup_personne , .popup_commentaire , .popup_fichier , .popup_deletelist {
+ display: none;
+ position: absolute;
+ left:50%;
+ top:50%;
+ border: 3px solid #000000;
+ background-color: #8470FF;
+ z-index: 500;
+ font-size: 80%;
+ text-align:center;
+}
+.popup {
+ width: 20em;
+ height: 10em;
+ margin-top: -4em ;/*moitié de height */
+ margin-left: -10em ;/*moitié de width */
+}
+
+.popup_creneau {
+ width: 45em;
+ height: 22em;
+ margin-top: -11em ;/*moitié de height */
+ margin-left: -22.5em ;/*moitié de width */
+}
+.popup_personne {
+ width: 45em;
+ height: 30em;
+ margin-top: -15em ;/*moitié de height */
+ margin-left: -22.5em ;/*moitié de width */
+}
+.popup_commentaire {
+ width: 30em;
+ height: 14em;
+ margin-top: -7em ;/*moitié de height */
+ margin-left: -15em ;/*moitié de width */
+}
+
+.popup_fichier {
+ width: 30em;
+ height: 8em;
+ margin-top: -4em ;/*moitié de height */
+ margin-left: -15em ;/*moitié de width */
+}
+.popup_deletelist {
+ width: 26em;
+ height: 8em;
+ margin-top: -4em ;/*moitié de height */
+ margin-left: -13em ;/*moitié de width */
+}
+
+.popup h2 , .popup_creneau h2 , .popup_personne h2 , .popup_commentaire h2 , .popup_fichier h2 , .popup_deletelist h2
+{
+ background:#551A8B;
+ color:#FFFFFF;
+ font-size:small;
+ border-bottom:inherit;
+}
+
+div.popup_contenu
+{
+ margin-top:1em;
+ vertical-align:middle;
+}
+div.popup_contenu em
+{
+ font-size:x-small;
+ color:#FFF;
+}
+
+.popup input , .popup_creneau input , .popup_personne input , .popup_commentaire input , .popup_fichier input , .popup_deletelist input
+{
+ cursor:pointer;
+}
+
+#masque
+{
+ width:100%;
+ height:100%;
+ display: none;
+ position: absolute;
+ left:0px;
+ top:0px;
+ background-image:url(ice_img/masque.png);
+ background-repeat:repeat;
+ z-index: 499;
+}
+
+#page_accueil h1
+{
+ background:#551A8B;
+ color:#FFF;
+ margin-top:0;
+}
+
+#page_accueil
+{
+ text-align:center;
+}
+
+#msg
+{
+ display:none;
+ position:absolute;
+ text-align:center;
+ left:50%;
+ margin-left:-20%;
+ width:40%;
+ background-color:#551A8B;
+ top:-10px;
+ padding-top:15px;
+ padding-bottom:10px;
+ color:#FFF;
+ -moz-border-radius:16px;
+}
+
+
+#footer
+{
+ display:inline;
+ position:absolute;
+ text-align:center;
+ left:0px;
+ width:100%;
+ background-color:#551A8B;
+ top:100%;
+ height:2em;
+ padding-top:-2em;
+ margin-top:-2em;
+ color:#FFF;
+ font-size:x-small;
+}
+#footer li.left
+{
+ align-text:left;
+}
diff --git a/beta_old1/app/css/ice_img/README.txt b/beta_old1/app/css/ice_img/README.txt
new file mode 100644
index 0000000..b81d613
--- /dev/null
+++ b/beta_old1/app/css/ice_img/README.txt
@@ -0,0 +1 @@
+C'est ici qu'on stockera les images propre au style Ice.css
diff --git a/beta_old1/app/css/ice_img/logo.png b/beta_old1/app/css/ice_img/logo.png
new file mode 100644
index 0000000..a768d45
--- /dev/null
+++ b/beta_old1/app/css/ice_img/logo.png
Binary files differ
diff --git a/beta_old1/app/css/ice_img/masque.png b/beta_old1/app/css/ice_img/masque.png
new file mode 100644
index 0000000..45a6027
--- /dev/null
+++ b/beta_old1/app/css/ice_img/masque.png
Binary files differ
diff --git a/beta_old1/app/css/ice_img/titleTable.png b/beta_old1/app/css/ice_img/titleTable.png
new file mode 100644
index 0000000..e6c02d9
--- /dev/null
+++ b/beta_old1/app/css/ice_img/titleTable.png
Binary files differ
diff --git a/beta_old1/app/css/ice_img/titre.png b/beta_old1/app/css/ice_img/titre.png
new file mode 100644
index 0000000..d8d9ce6
--- /dev/null
+++ b/beta_old1/app/css/ice_img/titre.png
Binary files differ
diff --git a/beta_old1/app/css/ice_moche.css b/beta_old1/app/css/ice_moche.css
new file mode 100644
index 0000000..0004b1a
--- /dev/null
+++ b/beta_old1/app/css/ice_moche.css
@@ -0,0 +1,233 @@
+img { border : none ; }
+body {
+ color: #000000;
+ background-color:#F5F5DC;
+ font-family: Verdana, Arial, Helvetica, sans-serif;
+ padding:0px;
+ margin:0px;
+ min-width:750px; /*Pour eviter le chevauchement pour FireFox, ne change rien pour IE (qui gere pas trop mal sans ca) */
+}
+table {
+ border-spacing:0px;
+ margin: auto;
+ padding: 0px;
+ width:98%;
+ text-align:center;
+ border: thin solid #E0E0E0;
+ border-collapse:collapse; /* Imite le cellspacing=0 et fonctionne sous IE */
+ background-color:#F7F7F7;
+}
+th {
+ border-right:none;
+ font-weight: bold;
+ color: #FFFFFF;
+ background-color:#551A8B;
+}
+
+th.selected {color:#8470FF;}
+td {
+ border-bottom-width: thin;
+ border-bottom-style: solid;
+ border-bottom-color: #E0E0E0;
+}
+th a:link, th a:visited {
+ font-size: x-small;
+ color: #FFFFFF;
+}
+
+h1 {
+ font-weight: bold;
+ color: #9999FF;
+ text-align: center;
+}
+h2 {
+ color: #5C5CFF;
+ margin: 0px;
+}
+select { width:auto; }
+/***** Titre *****/
+#titre h2 {
+ color: #551A8B;
+ height:60px;
+ width:200px;
+ margin-left:60px;
+ padding-top:5px;
+/* background-image:url(ice_img/titre.png);
+ background-position:left;
+ background-repeat:no-repeat;*/
+ color:#FFFFFF;
+ font-size:40px;
+
+}
+#titre {
+ height:60px;
+ padding-top:5px;
+ width:100%;
+ clear:left;
+ background-color:#551A8B;
+ background-image:url(ice_img/logo.png);
+ background-position:left;
+ background-repeat:no-repeat;
+}
+
+/*****************/
+/***** Menu *****/
+#menu {
+ padding:0px;
+ margin:0px;
+ color:#551A8B;
+ width:15em;
+ background-color:#FFFFFF;
+}
+#menu a {
+ text-decoration:none;
+ display:block;
+ font-weight:bold;
+ text-align:center;
+ color:#551A8B;
+}
+#menu a:hover {
+ color:#FFFFFF;
+ background-color:#551A8B;
+}
+/* Pour IE5/MAC \*/#menu a{float:none;}/**/
+#menu li {
+ list-style: none;
+ padding:0px;
+ margin:0px;
+ vertical-align:middle;
+}
+#menu #deconnection {
+}
+
+#main_menu {
+
+}
+/*********************/
+/***** Sous Menu *****/
+#sous_menu {
+ display:none;
+}
+
+/*******************/
+/***** Contenu *****/
+#contenu {
+ padding-top:10px;
+ padding-bottom:10px;
+ padding-right:3em;
+ padding_left:3em;
+ position:absolute;
+ top:60px;
+ left:15em;
+
+}
+#help {
+ text-align:justify;
+ color:#000000;
+ float:left;
+ margin-top:20px;
+ margin-left:10px;
+ padding:5px;
+ border:thin solid #000000;
+ background-color:#F7F7F7;
+ font-size:small;
+ width:15em;
+}
+
+#help h2 , #help a
+{
+ text-align:center;
+ font-size:medium;
+ color:#FFFFFF;
+ background-color:#551A8B;
+ color:#FFFFFF;
+ margin-top:0;
+ margin-bottom:10px;
+}
+#no_help, #no_help h2
+{
+ display:none;
+}
+
+
+.popup , .popup_creneau , .popup_personne , .popup_commentaire , .popup_fichier , .popup_deletelist {
+ display: none;
+ position: absolute;
+ left:50%;
+ top:50%;
+ border: 3px solid #000000;
+ background-color: #8470FF;
+ z-index: 500;
+ font-size: 80%;
+ text-align:center;
+}
+.popup {
+ width: 20em;
+ height: 8em;
+ margin-top: -4em ;/*moitié de height */
+ margin-left: -10em ;/*moitié de width */
+}
+
+.popup_creneau {
+ width: 45em;
+ height: 22em;
+ margin-top: -11em ;/*moitié de height */
+ margin-left: -22.5em ;/*moitié de width */
+}
+.popup_personne {
+ width: 45em;
+ height: 30em;
+ margin-top: -15em ;/*moitié de height */
+ margin-left: -22.5em ;/*moitié de width */
+}
+.popup_commentaire {
+ width: 30em;
+ height: 8em;
+ margin-top: -4em ;/*moitié de height */
+ margin-left: -15em ;/*moitié de width */
+}
+
+.popup_fichier {
+ width: 30em;
+ height: 8em;
+ margin-top: -4em ;/*moitié de height */
+ margin-left: -15em ;/*moitié de width */
+}
+.popup_deletelist {
+ width: 26em;
+ height: 8em;
+ margin-top: -4em ;/*moitié de height */
+ margin-left: -13em ;/*moitié de width */
+}
+
+.popup h2 , .popup_creneau h2 , .popup_personne h2 , .popup_commentaire h2 , .popup_fichier h2 , .popup_deletelist h2
+{
+ background:#551A8B;
+ color:#FFFFFF;
+ font-size:small;
+ border-bottom:inherit;
+}
+
+div.popup_contenu
+{
+ margin-top:1em;
+ vertical-align:middle;
+}
+
+.popup input , .popup_creneau input , .popup_personne input , .popup_commentaire input , .popup_fichier input , .popup_deletelist input
+{
+ cursor:pointer;
+}
+
+#masque
+{
+ width:100%;
+ height:100%;
+ display: none;
+ position: absolute;
+ left:0px;
+ top:0px;
+ background-image:url(ice_img/masque.png);
+ background-repeat:repeat;
+ z-index: 499;
+}
diff --git a/beta_old1/app/css/ice_moche_img/README.txt b/beta_old1/app/css/ice_moche_img/README.txt
new file mode 100644
index 0000000..b81d613
--- /dev/null
+++ b/beta_old1/app/css/ice_moche_img/README.txt
@@ -0,0 +1 @@
+C'est ici qu'on stockera les images propre au style Ice.css
diff --git a/beta_old1/app/css/ice_moche_img/logo.png b/beta_old1/app/css/ice_moche_img/logo.png
new file mode 100644
index 0000000..a768d45
--- /dev/null
+++ b/beta_old1/app/css/ice_moche_img/logo.png
Binary files differ
diff --git a/beta_old1/app/css/ice_moche_img/masque.png b/beta_old1/app/css/ice_moche_img/masque.png
new file mode 100644
index 0000000..45a6027
--- /dev/null
+++ b/beta_old1/app/css/ice_moche_img/masque.png
Binary files differ
diff --git a/beta_old1/app/css/ice_moche_img/titleTable.png b/beta_old1/app/css/ice_moche_img/titleTable.png
new file mode 100644
index 0000000..e6c02d9
--- /dev/null
+++ b/beta_old1/app/css/ice_moche_img/titleTable.png
Binary files differ
diff --git a/beta_old1/app/css/ice_moche_img/titre.png b/beta_old1/app/css/ice_moche_img/titre.png
new file mode 100644
index 0000000..d8d9ce6
--- /dev/null
+++ b/beta_old1/app/css/ice_moche_img/titre.png
Binary files differ
diff --git a/beta_old1/app/css/ice_moche_nohelp.css b/beta_old1/app/css/ice_moche_nohelp.css
new file mode 100644
index 0000000..9032594
--- /dev/null
+++ b/beta_old1/app/css/ice_moche_nohelp.css
@@ -0,0 +1,252 @@
+
+img { border : none ; }
+body {
+ color: #000000;
+ background-color:#F5F5DC;
+ font-family: Verdana, Arial, Helvetica, sans-serif;
+ padding:0px;
+ margin:0px;
+ min-width:750px; /*Pour eviter le chevauchement pour FireFox, ne change rien pour IE (qui gere pas trop mal sans ca) */
+}
+table {
+ border-spacing:0px;
+ margin: auto;
+ padding: 0px;
+ width:98%;
+ text-align:center;
+ border: thin solid #E0E0E0;
+ border-collapse:collapse; /* Imite le cellspacing=0 et fonctionne sous IE */
+ background-color:#F7F7F7;
+}
+th {
+ border-right:none;
+ font-weight: bold;
+ color: #FFFFFF;
+ background-color: #551A8B;
+}
+th.selected {color:#8470FF;}
+td {
+ border-bottom-width: thin;
+ border-bottom-style: solid;
+ border-bottom-color: #E0E0E0;
+}
+th a:link, th a:visited {
+ font-size: x-small;
+ color: #FFFFFF;
+}
+h1 {
+ font-weight: bold;
+ color: #9999FF;
+ text-align: center;
+}
+h2 {
+ color: #5C5CFF;
+ margin: 0px;
+}
+select { width:auto; }
+/***** Titre *****/
+#titre h2 {
+ color: #551A8B;
+ margin-left:50px;
+ height:50px;
+ width:200px;
+ background-image:url(ice_img/titre.png);
+ background-position:left;
+ background-repeat:no-repeat;
+ color:#FFFFFF;
+ font-size:0px;
+}
+#titre {
+ height:50px;
+ clear:left;
+ background-color:#FFFFFF;
+ background-image:url(ice_img/logo.png);
+ background-position:left;
+ background-repeat:no-repeat;
+}
+
+/*****************/
+/***** Menu *****/
+#menu {
+ padding:0px;
+ margin:0px;
+ width:100%;
+ height:1.5em;
+ background-color:#551A8B;
+}
+#menu a {
+ text-decoration:none;
+ display:block;
+ font-weight:bold;
+ text-align:center;
+ color:#FFFFFF;
+ height:1.5em;
+}
+#menu a:hover {
+ color:#000000;
+ background-color:#FFFFFF;
+ height:1.5em;
+}
+/* Pour IE5/MAC \*/#menu a{float:none;}/**/
+#menu li {
+ list-style: none;
+ float:left;
+ padding:0;
+ margin:0;
+ width:10em;
+ white-space:nowrap;/*Evite l'étalement sur deux ligne*/
+ vertical-align:middle;
+}
+#menu #deconnection {
+ float:right;
+}
+
+#main_menu {
+
+}
+/*********************/
+/***** Sous Menu *****/
+#sous_menu {
+ clear:left;
+ padding-top:5px;
+ padding-bottom:3px;
+ padding-left:15px;
+ border-bottom:1px solid #000000;
+ background-color:#8470FF;
+}
+/* -------------- Arbre -------------------*/
+p.arbre {
+ font-size: small;
+ color: #FFFFFF;
+ text-align: left;
+ margin-top: 0px;
+ margin-right: 0px;
+ margin-bottom: 0px;
+ margin-left: 0px;
+}
+p.arbre a:link, p.arbre a:visited {color:#FFFFFF; }
+
+
+/*******************/
+/***** Contenu *****/
+
+#contenu {
+ padding-top:10px;
+ padding-bottom:20px;
+ padding-left:5px;
+ padding-right:5px;
+ float:left;
+ width:95%;
+}
+#no_help {
+ display:block;
+ text-align:justify;
+ color:#000000;
+ float:right;
+ margin:0px;
+ padding:1px;
+ border:thin solid #000000;
+ background-color:#F7F7F7;
+ font-size:small;
+ width:3%;
+}
+#no_help h2 , #no_help a
+{
+ display:block;
+ text-align:center;
+ font-size:medium;
+ color:#FFFFFF;
+ background-color:#551A8B;
+ margin:0px;
+ padding:0px;
+}
+#help,#help h2
+{
+ display:none;
+}
+
+
+
+
+.popup , .popup_creneau , .popup_personne , .popup_commentaire , .popup_fichier , .popup_deletelist {
+ display: none;
+ position: absolute;
+ left:50%;
+ top:50%;
+ border: 3px solid #000000;
+ background-color: #8470FF;
+ z-index: 500;
+ font-size: 80%;
+ text-align:center;
+}
+.popup {
+ width: 20em;
+ height: 8em;
+ margin-top: -4em ;/*moitié de height */
+ margin-left: -10em ;/*moitié de width */
+}
+
+.popup_creneau {
+ width: 45em;
+ height: 22em;
+ margin-top: -11em ;/*moitié de height */
+ margin-left: -22.5em ;/*moitié de width */
+}
+.popup_personne {
+ width: 45em;
+ height: 30em;
+ margin-top: -15em ;/*moitié de height */
+ margin-left: -22.5em ;/*moitié de width */
+}
+.popup_commentaire {
+ width: 30em;
+ height: 8em;
+ margin-top: -4em ;/*moitié de height */
+ margin-left: -15em ;/*moitié de width */
+}
+
+.popup_fichier {
+ width: 30em;
+ height: 8em;
+ margin-top: -4em ;/*moitié de height */
+ margin-left: -15em ;/*moitié de width */
+}
+
+.popup_deletelist {
+ width: 26em;
+ height: 8em;
+ margin-top: -4em ;/*moitié de height */
+ margin-left: -13em ;/*moitié de width */
+}
+
+.popup h2 , .popup_creneau h2 , .popup_personne h2 , .popup_commentaire h2 , .popup_fichier h2 , .popup_deletelist h2
+{
+ background:#551A8B;
+ color:#FFFFFF;
+ font-size:small;
+ border-bottom:inherit;
+}
+
+div.popup_contenu
+{
+ margin-top:1em;
+ vertical-align:middle;
+}
+
+.popup input , .popup_creneau input , .popup_personne input , .popup_commentaire input , .popup_fichier input , .popup_deletelist input
+{
+ cursor:pointer;
+}
+
+#masque
+{
+ width:100%;
+ height:100%;
+ display: none;
+ position: absolute;
+ left:0px;
+ top:0px;
+ background-image:url(ice_img/masque.png);
+ background-repeat:repeat;
+ z-index: 499;
+} \ No newline at end of file
diff --git a/beta_old1/app/css/ice_nohelp.css b/beta_old1/app/css/ice_nohelp.css
new file mode 100644
index 0000000..48a9fd8
--- /dev/null
+++ b/beta_old1/app/css/ice_nohelp.css
@@ -0,0 +1,311 @@
+em {color:#F00;}
+img { border : none ; }
+img.spacing{ margin: 0 0.5em 0 0.5em;}
+body {
+ color: #000000;
+ background-color:#F5F5DC;
+ font-family: Verdana, Arial, Helvetica, sans-serif;
+ padding:0px;
+ margin:0px;
+ min-width:750px; /*Pour eviter le chevauchement pour FireFox, ne change rien pour IE (qui gere pas trop mal sans ca) */
+}
+table {
+ border-spacing:0px;
+ margin: auto;
+ padding: 0px;
+ width:98%;
+ text-align:center;
+ border: thin solid #E0E0E0;
+ border-collapse:collapse; /* Imite le cellspacing=0 et fonctionne sous IE */
+ background-color:#F7F7F7;
+}
+th {
+ border-right:none;
+ font-weight: bold;
+ color: #FFFFFF;
+ background-color: #551A8B;
+}
+th.selected {color:#FFF;background-color:#8470FF}
+td {
+ border-bottom-width: thin;
+ border-bottom-style: solid;
+ border-bottom-color: #E0E0E0;
+}
+th a:link, th a:visited {
+ font-size: x-small;
+ color: #FFFFFF;
+}
+h1 {
+ font-weight: bold;
+ color: #9999FF;
+ text-align: center;
+}
+h2 {
+ color: #5C5CFF;
+ margin: 0px;
+}
+.reunion_fixee {
+ color:#bf7e00;
+}
+.reunion_en_cours {
+ color:#9fbf00;
+}
+.reunion_annulee {
+ color:#bf2000;
+}
+select { width:auto; }
+/***** Titre *****/
+#titre h2 {
+ color: #551A8B;
+ margin-left:50px;
+ height:50px;
+ width:200px;
+ background-image:url(ice_img/titre.png);
+ background-position:left;
+ background-repeat:no-repeat;
+ color:#FFFFFF;
+ font-size:0px;
+}
+#titre {
+ height:50px;
+ clear:left;
+ background-color:#FFFFFF;
+ background-image:url(ice_img/logo.png);
+ background-position:left;
+ background-repeat:no-repeat;
+}
+
+/*****************/
+/***** Menu *****/
+#menu {
+ padding:0px;
+ margin:0px;
+ width:100%;
+ height:1.5em;
+ background-color:#551A8B;
+}
+#menu a {
+ text-decoration:none;
+ display:block;
+ font-weight:bold;
+ text-align:center;
+ color:#FFFFFF;
+ height:1.5em;
+}
+#menu a:hover {
+ color:#000000;
+ background-color:#FFFFFF;
+ height:1.5em;
+}
+/* Pour IE5/MAC \*/#menu a{float:none;}/**/
+#menu li {
+ list-style: none;
+ float:left;
+ padding:0;
+ margin:0;
+ width:10em;
+ white-space:nowrap;/*Evite l'étalement sur deux ligne*/
+ vertical-align:middle;
+}
+#menu #deconnection {
+ float:right;
+}
+
+#main_menu {
+
+}
+/*********************/
+/***** Sous Menu *****/
+#sous_menu {
+ clear:left;
+ padding-top:5px;
+ padding-bottom:3px;
+ padding-left:15px;
+ border-bottom:1px solid #000000;
+ background-color:#8470FF;
+}
+/* -------------- Arbre -------------------*/
+p.arbre {
+ font-size: small;
+ color: #FFFFFF;
+ text-align: left;
+ margin-top: 0px;
+ margin-right: 0px;
+ margin-bottom: 0px;
+ margin-left: 0px;
+}
+p.arbre a:link, p.arbre a:visited {color:#FFFFFF; }
+
+
+/*******************/
+/***** Contenu *****/
+
+#contenu {
+ padding-top:10px;
+ padding-bottom:20px;
+ padding-left:5px;
+ padding-right:5px;
+ float:left;
+ width:95%;
+}
+#no_help {
+ display:block;
+ text-align:justify;
+ color:#000000;
+ float:right;
+ margin:0px;
+ padding:1px;
+ border:thin solid #000000;
+ background-color:#F7F7F7;
+ font-size:small;
+ width:3%;
+}
+#no_help h2 , #no_help a
+{
+ display:block;
+ text-align:center;
+ font-size:medium;
+ color:#FFFFFF;
+ background-color:#551A8B;
+ margin:0px;
+ padding:0px;
+}
+#help,#help h2
+{
+ display:none;
+}
+
+
+
+
+.popup , .popup_creneau , .popup_personne , .popup_commentaire , .popup_fichier , .popup_deletelist {
+ display: none;
+ position: absolute;
+ left:50%;
+ top:50%;
+ border: 3px solid #000000;
+ background-color: #8470FF;
+ z-index: 500;
+ font-size: 80%;
+ text-align:center;
+}
+.popup {
+ width: 20em;
+ height: 10em;
+ margin-top: -4em ;/*moitié de height */
+ margin-left: -10em ;/*moitié de width */
+}
+
+.popup_creneau {
+ width: 45em;
+ height: 22em;
+ margin-top: -11em ;/*moitié de height */
+ margin-left: -22.5em ;/*moitié de width */
+}
+.popup_personne {
+ width: 45em;
+ height: 30em;
+ margin-top: -15em ;/*moitié de height */
+ margin-left: -22.5em ;/*moitié de width */
+}
+.popup_commentaire {
+ width: 30em;
+ height: 14em;
+ margin-top: -7em ;/*moitié de height */
+ margin-left: -15em ;/*moitié de width */
+}
+
+.popup_fichier {
+ width: 30em;
+ height: 8em;
+ margin-top: -4em ;/*moitié de height */
+ margin-left: -15em ;/*moitié de width */
+}
+
+.popup_deletelist {
+ width: 26em;
+ height: 8em;
+ margin-top: -4em ;/*moitié de height */
+ margin-left: -13em ;/*moitié de width */
+}
+
+.popup h2 , .popup_creneau h2 , .popup_personne h2 , .popup_commentaire h2 , .popup_fichier h2 , .popup_deletelist h2
+{
+ background:#551A8B;
+ color:#FFFFFF;
+ font-size:small;
+ border-bottom:inherit;
+}
+
+div.popup_contenu
+{
+ margin-top:1em;
+ vertical-align:middle;
+}
+div.popup_contenu em
+{
+ font-size:x-small;
+ color:#FFF;
+}
+
+.popup input , .popup_creneau input , .popup_personne input , .popup_commentaire input , .popup_fichier input , .popup_deletelist input
+{
+ cursor:pointer;
+}
+
+#masque
+{
+ width:100%;
+ height:100%;
+ display: none;
+ position: absolute;
+ left:0px;
+ top:0px;
+ background-image:url(ice_img/masque.png);
+ background-repeat:repeat;
+ z-index: 499;
+}
+
+#page_accueil h1
+{
+ background:#551A8B;
+ color:#FFF;
+ margin-top:0;
+}
+
+#page_accueil
+{
+ text-align:center;
+}
+
+#msg
+{
+ display:none;
+ position:absolute;
+ text-align:center;
+ left:50%;
+ margin-left:-20%;
+ width:40%;
+ background-color:#551A8B;
+ top:-10px;
+ padding-top:15px;
+ padding-bottom:10px;
+ color:#FFF;
+ -moz-border-radius:16px;
+}
+
+#footer
+{
+ display:block;
+ position:absolute;
+ text-align:center;
+ left:0px;
+ width:100%;
+ background-color:#551A8B;
+ top:100%;
+ height:2em;
+ padding-top:-2em;
+ margin-top:-2em;
+ color:#FFF;
+ font-size:x-small;
+} \ No newline at end of file
diff --git a/beta_old1/app/deco.php b/beta_old1/app/deco.php
new file mode 100644
index 0000000..57a56bc
--- /dev/null
+++ b/beta_old1/app/deco.php
@@ -0,0 +1,36 @@
+<?php
+session_start();
+
+// Si vous voulez détruire complètement la session, effacez également le cookie de session.
+// Note : cela détruira la session et pas seulement les données de session !
+if (isset($_COOKIE[session_name()])) {
+setcookie(session_name(), '', time()-42000, '/');
+}
+
+require_once('include/ludo/html_elements.inc.php');
+generate_html_doctype_and_head("Déconnexion");
+?>
+<body>
+ <h1>Deconnexion</h1>
+ <div>
+ <?php
+ if ( isset($_SESSION['session_loginP']) )
+ {
+ // Détruit toutes les variables de session
+ $_SESSION = array();
+
+ // On a déjà détruit le cookie qui permet la ré-emission par le client du sessionid
+
+ // Finalement, on détruit la session.
+ session_destroy();
+ echo 'Vous avez bien été déconnecté' . "\n";
+ }
+ else
+ {
+ echo 'Deconnexion impossible : aucune session en cours' . "\n";
+ }
+ ?>
+ </div>
+<?php generate_html_div_back(); ?>
+</body>
+</html> \ No newline at end of file
diff --git a/beta_old1/app/details_reunion.php b/beta_old1/app/details_reunion.php
new file mode 100644
index 0000000..dc82c72
--- /dev/null
+++ b/beta_old1/app/details_reunion.php
@@ -0,0 +1,121 @@
+<?php
+require('include/ludo/session_verify.inc.php');
+require_once('include/connect.inc.php');
+require_once('include/ludo/html_elements.inc.php');
+require_once('include/ludo/fonctions.inc.php');
+
+require_once('include/je.inc.php');
+require_once('include/ju.inc.php');
+
+
+
+generate_html_doctype_and_head("Détail de la réunion");
+echo "<body>\n";
+
+// DEBUG
+//~ echo '<pre>';
+//~ print_r($_REQUEST);
+//~ echo '</pre>';
+
+generate_html_divs_menu();
+?>
+ <div id="sous_menu">
+ <p class="arbre">
+ &gt; <a href="index.php">Accueil</a>
+ &gt; <a href="index.php">R&eacute;unions</a>
+ &gt; D&eacute;tails d'une r&eacute;union
+ </p>
+ </div>
+<?php
+ if ( isset($_REQUEST['action']) )
+ {
+ switch ($_REQUEST['action'])
+ {
+ case 'creer_reunion':
+ $ret=traiter_formulaire_creer_reunion();
+ //~ echo "DEBUG : idR==$ret\n";
+ if ( is_string($ret) ) { $errmsg=$ret; } else { $idR=$ret;}
+ break;
+ case 'popfichier':
+ case 'maj_profil':
+ case 'valider_modif_personnes':
+ case 'valider_creneau':
+ case 'delete_list':
+ case 'commentaire':
+ case 'fixer_creneau':
+ case 'modif_detail_reunion':
+ $nom_func = 'traiter_formulaire_' . $_REQUEST['action'];
+ $errmsg = $nom_func();
+ break;
+ default:
+ $errmsg = 'Impossible de traiter la requete : type de formulaire non enregistré !'."\n";
+ }
+ }
+ // Connexion à la base et sélection de la database
+ require_once 'include/connect.inc.php';
+ if ( ! isset($idR) && ( ! isset($_REQUEST['idR'] ) || ! is_numeric($_REQUEST['idR']) ) || ! isset($_SESSION['session_idP']) )
+ {
+ $errmsg='Erreur de génération de la page : paramètres erronés ou manquant';
+ }
+ else
+ {
+ if ( ! isset($idR) ) { $idR=addslashes($_REQUEST['idR']); }
+ $idP=$_SESSION['session_idP'];
+
+ // Vérification que la réunion nous concerne bien
+ $query="SELECT * FROM Appartenir a WHERE a.idL=$idR, a.idP=$idP;";
+ if ( ( $result = @mysql_query($query) ) && ( mysql_num_rows($result) === 1 ) )
+ {
+ $errmsg='Vous n\'avez pas le droit de consulter cette page : cette réunion n\'existe pas ou ne vous concerne pas !';
+ }
+ }
+ if ( isset($errmsg) && is_string($errmsg) )
+ {
+ generate_html_div_errmsg($errmsg);
+ echo '</body></html>';
+ exit();
+ }
+ generate_html_div_help('help/details_reunion_admin.php.hlp');
+ echo '<div id="contenu">' . "\n";
+ echo '<div id="details_reunion">' . "\n";
+ generate_html_reunion_detail2($idR);
+ echo "</div>\n";
+ echo "<br />\n";
+ generate_html_array_personnes_crenaux($idR, $idP);
+ echo "<br />\n";
+ generate_html_reunion_commentaires($idR);
+ echo "<br />\n";
+ generate_html_reunion_fichiers($idR);
+?>
+</div>
+<div id="popcommentaire" class="popup_commentaire">
+<h2>Editer votre commentaire</h2>
+<div class="popup_contenu">
+<form id="formcommentaire" method="get" action="details_reunion_admin.php">
+Commentaire : <input name="txtCommentaire" type="text" id="txtCommentaire" />
+<br/><br/>
+<input type="submit" name="Submit" value="Enregistrer" /><input type="button" name="fermer" value="Fermer" alt="commentaire" />
+</form>
+</div>
+</div>
+
+<div id="popfichier" class="popup_fichier">
+<h2>Ajouter un fichier</h2>
+<div class="popup_contenu">
+<form id="formfichier" method="post" action="details_reunion.php?idR=<?php echo $idR; ?>" enctype="multipart/form-data">
+Fichier : <input name="fichier" type="file" id="fichier"/>
+<br/><br/>
+<input type="hidden" name="action" value="popfichier" />
+<input type="submit" name="Submit" value="Valider" onclick="popoff('popfichier');"/>
+<input type="button" value="fermer" onclick="popoff('popfichier');"/>
+</form>
+</div>
+</div>
+<?php generate_html_div_footer(); ?>
+<div class="popup" id="popfixer"></div>
+<div class="popup_creneau" id="popcreneau"></div>
+<div id="poppersonne" class="popup_personne"></div>
+<div id="masque"></div>
+<div id="msg"></div>
+</body>
+</html>
diff --git a/beta_old1/app/help/admin.php.hlp b/beta_old1/app/help/admin.php.hlp
new file mode 100644
index 0000000..3d669ec
--- /dev/null
+++ b/beta_old1/app/help/admin.php.hlp
@@ -0,0 +1,23 @@
+Cette page vous permet de visualiser les objets principaux de la base de données.<br />
+Vous pouvez depuis cette page purger la base, ainsi que les fichiers attachés qui sont stockés sur disque.<br />
+Lorsque vous supprimez par exemple une personne inscrite, tout les enregistrements relatifs à cette personne seront effacés :
+<ul>
+ <li>Les liens indicant que cette personne participe à des réunions</li>
+ <li>
+ Les réunions qu'elle à créée
+ <ul>
+ <li>Les réponses des participants à ses réunions pour chaque créneau</li>
+ <li>Les commentaires des réponses des participants</li>
+ <li>Les créneaux de ses réunions</li>
+ <li>
+ Les liens vers les fichiers attachés
+ <ul>
+ <li>Les fichiers physiquement écrits sur le disque</li>
+ </ul>
+ </li>
+ </ul>
+ </li>
+</ul>
+Ces cascades peuvent s'avérer dangereuses, mais permettent de garder la base dans un état consitant.<br />
+Il est vivement conseillé de sauvegarder la base de donnée et le répertoire des ficheirs attachés avant d'utiliser cet outil,
+l'erreur de manipulation est facile, et les bugs de programmation ne peuvent être totalement exclus... \ No newline at end of file
diff --git a/beta_old1/app/help/auth_dialog.php.hlp b/beta_old1/app/help/auth_dialog.php.hlp
new file mode 100644
index 0000000..b83937b
--- /dev/null
+++ b/beta_old1/app/help/auth_dialog.php.hlp
@@ -0,0 +1,2 @@
+Merci de vous identifier pour utiliser l'application.<br />
+Par défaut, vous pouvez vous logguer avec votre adresse email et le mot de passe qui y est associé. \ No newline at end of file
diff --git a/beta_old1/app/help/details_reunion.php.hlp b/beta_old1/app/help/details_reunion.php.hlp
new file mode 100644
index 0000000..5434937
--- /dev/null
+++ b/beta_old1/app/help/details_reunion.php.hlp
@@ -0,0 +1,4 @@
+Cette page vous permet de visualiser les d&eacute;tails d'une r&eacute;union. <br />
+Vous pouvez modifier votre disponibilit&eacute; en fonction des cr&eacute;neaux pr&eacute;vu par le createur de la r&eacute;union.<br />
+Il est possible &agrave; tout instant de se d&eacute;connecter en cliquant sur le bouton D&eacute;connexion situ&eacute; en haut &agrave; droite de l'&eacute;cran.<br />
+Astuce : gr&acirc;ce &agrave; AWOR, vous pouvez transferer vos r&eacute;unions sur votre agenda personnel.
diff --git a/beta_old1/app/help/details_reunion_admin.php.hlp b/beta_old1/app/help/details_reunion_admin.php.hlp
new file mode 100644
index 0000000..41047ab
--- /dev/null
+++ b/beta_old1/app/help/details_reunion_admin.php.hlp
@@ -0,0 +1,17 @@
+Cette page vous permet de visualiser les d&eacute;tails d'une r&eacute;union.<br />
+<br />
+Vous pouvez modifier votre disponibilit&eacute; en fonction des cr&eacute;neaux pr&eacute;vu par le createur de la r&eacute;union.<br />
+<br />
+Il est possible &agrave; tout instant de se d&eacute;connecter en cliquant sur le bouton D&eacute;connexion situ&eacute; en haut &agrave; droite de l'&eacute;cran.<br />
+<br />
+Ajouter ou Supprimer un cr&eacute;neau<br />
+en appuyant sur le bouton <img src="./images/editCreneau2.gif" alt="Ajouter une personne" title="Ajouter un creneau" width="22" height="21" /><br />
+<br />
+Fixer un Cr&eacute;neau, en cliquant dessus et confirmer l'action (aucune modification ne sera possible apr&egrave;s)<br />
+<br />
+Ajouter ou Supprimer un
+participant en appuyant sur le bouton <img src="images/addP.gif" alt="Ajouter une personne" title="Ajouter une personne" width="19" height="17"/><br />
+<br />
+Ajouter
+<br />
+Astuce : gr&acirc;ce &agrave; AWOR, vous pouvez transferer vos r&eacute;unions sur votre agenda personnel.
diff --git a/beta_old1/app/help/groupe.hlp b/beta_old1/app/help/groupe.hlp
new file mode 100644
index 0000000..0869bd5
--- /dev/null
+++ b/beta_old1/app/help/groupe.hlp
@@ -0,0 +1 @@
+Cette page vous permet de g&eacute;rer les diff&eacute;rentes listes de contacts \ No newline at end of file
diff --git a/beta_old1/app/help/index.php.hlp b/beta_old1/app/help/index.php.hlp
new file mode 100644
index 0000000..be1ef30
--- /dev/null
+++ b/beta_old1/app/help/index.php.hlp
@@ -0,0 +1,7 @@
+Cette page vous permet de visualiser les r&eacute;unions qui vous concernent.<br />
+Les &eacute;l&eacute;ments requi&egrave;rant votre attention sont en rouge.<br />
+Cliquer sur l'icone &agrave; droite pour afficher les d&eacute;tails d'une r&eacute;union.<br />
+
+Il est possible &agrave; tout instant de se d&eacute;connecter en cliquant sur le bouton D&eacute;connexion situ&eacute; en haut &agrave; droite de l'&eacute;cran.
+<br />
+Astuce : gr&acirc;ce &agrave; AWOR, vous pouvez transferer vos r&eacute;unions sur votre agenda personnel.
diff --git a/beta_old1/app/help/listes.php.hlp b/beta_old1/app/help/listes.php.hlp
new file mode 100644
index 0000000..c619e70
--- /dev/null
+++ b/beta_old1/app/help/listes.php.hlp
@@ -0,0 +1 @@
+Cette page vous permet de g&eacute;rer les diff&eacute;rentes listes de contacts.
diff --git a/beta_old1/app/help/modele_page.php.hlp b/beta_old1/app/help/modele_page.php.hlp
new file mode 100644
index 0000000..75a26d5
--- /dev/null
+++ b/beta_old1/app/help/modele_page.php.hlp
@@ -0,0 +1,17 @@
+ Cette page vous permet de visualiser les d&eacute;tails d'une r&eacute;union.<br />
+ <br />
+ Vous pouvez modifier votre disponibilit&eacute; en fonction des cr&eacute;neaux pr&eacute;vu par le createur de la r&eacute;union.<br />
+ <br />
+ Il est possible &agrave; tout instant de se d&eacute;connecter en cliquant sur le bouton D&eacute;connexion situ&eacute; en haut &agrave; droite de l'&eacute;cran.<br />
+ <br />
+ Ajouter ou Supprimer un cr&eacute;neau<br />
+ en appuyant sur le bouton <a href="#" onclick="loadpop('popcreneau.php?idR=2','popcreneau');popon('popcreneau');"><img src="./images/editCreneau2.gif" alt="Ajouter une personne" title="Ajouter un creneau" width="22" height="21" /></a><br />
+ <br />
+ Fixer un Cr&eacute;neau, en cliquant dessus et confirmer l'action (aucune modification ne sera possible apr&egrave;s)<br />
+ <br />
+ Ajouter ou Supprimer un
+ participant en appuyant sur le bouton <a href="#" onclick="popon('poppersonne');"><img src="images/addP.gif" alt="Ajouter une personne" title="Ajouter une personne" width="19" height="17"/></a><br />
+ <br />
+ Ajouter
+ <br />
+ Astuce : gr&acirc;ce &agrave; AWOR, vous pouvez transferer vos r&eacute;unions sur votre agenda personnel. \ No newline at end of file
diff --git a/beta_old1/app/help/organiser.php.hlp b/beta_old1/app/help/organiser.php.hlp
new file mode 100644
index 0000000..b24adaf
--- /dev/null
+++ b/beta_old1/app/help/organiser.php.hlp
@@ -0,0 +1,2 @@
+Depuis cette page, vous pouvez créer une nouvelle réunion :<br />
+renseignez les champs ci-contre puis validez. Vous pourrez ensuite associer une liste de personnes ainsi que des créneaux possibles. \ No newline at end of file
diff --git a/beta_old1/app/help/profil.php.hlp b/beta_old1/app/help/profil.php.hlp
new file mode 100644
index 0000000..9328ff5
--- /dev/null
+++ b/beta_old1/app/help/profil.php.hlp
@@ -0,0 +1,2 @@
+Vous pouvez renseigner votre nom et pr&eacute;nom. <br/>
+Vous avez la possibilit&eacute; de changer votre m&eacute;thode de d'identification. <br/>
diff --git a/beta_old1/app/help/sendmail.php.hlp b/beta_old1/app/help/sendmail.php.hlp
new file mode 100644
index 0000000..4a31a5b
--- /dev/null
+++ b/beta_old1/app/help/sendmail.php.hlp
@@ -0,0 +1,2 @@
+Ce formulaire vous permet d'envoyer un courriel de notification aux personnes sélectionnées.<br/>
+Vous pouvez charger un des modèles disponibles pour gagner du temps.
diff --git a/beta_old1/app/ical.php b/beta_old1/app/ical.php
new file mode 100644
index 0000000..f2aeb26
--- /dev/null
+++ b/beta_old1/app/ical.php
@@ -0,0 +1,36 @@
+<?php
+$_SESSION['session_idP'] = 1;
+//require_once('include/ludo/session_verify.inc.php');
+require_once('include/ical.inc.php');
+
+$res=ERR_ICAL_NO_DATA;
+if ( isset($_SESSION['session_idP']) )
+{
+ $res = generationIcal($_SESSION['session_idP'], $iCal_name, $iCal_content, $errmsg);
+
+ if ( $res === 0 )
+ {
+ header("Content-disposition: attachment; filename=$iCal_name");
+ header("Content-Type: application/force-download");
+ header("Content-Transfer-Encoding: text/calendar\n"); // Surtout ne pas enlever le \n
+ header("Content-Length: ". strlen($iCal_content) );
+ header("Pragma: no-cache");
+ header("Cache-Control: must-revalidate, post-check=0, pre-check=0, public");
+ header("Expires: 0");
+ /*
+ header("Accept-Ranges: bytes");
+ header("Content-Length: ". strlen($iCal_content) );
+ header("Content-Type: text/calendar");
+ */
+ echo $iCal_content;
+ exit();
+ }
+}
+require_once('include/ludo/html_elements.inc.php');
+generate_html_doctype_and_head("Génération iCal");
+echo "<body>\n";
+generate_html_div_errmsg($errmsg);
+?>
+</body>
+</html>
+
diff --git a/beta_old1/app/images/addP.gif b/beta_old1/app/images/addP.gif
new file mode 100644
index 0000000..aa77bef
--- /dev/null
+++ b/beta_old1/app/images/addP.gif
Binary files differ
diff --git a/beta_old1/app/images/button_del.png b/beta_old1/app/images/button_del.png
new file mode 100644
index 0000000..899b785
--- /dev/null
+++ b/beta_old1/app/images/button_del.png
Binary files differ
diff --git a/beta_old1/app/images/button_ok.png b/beta_old1/app/images/button_ok.png
new file mode 100644
index 0000000..229550e
--- /dev/null
+++ b/beta_old1/app/images/button_ok.png
Binary files differ
diff --git a/beta_old1/app/images/del.gif b/beta_old1/app/images/del.gif
new file mode 100644
index 0000000..cc89b0b
--- /dev/null
+++ b/beta_old1/app/images/del.gif
Binary files differ
diff --git a/beta_old1/app/images/details.png b/beta_old1/app/images/details.png
new file mode 100644
index 0000000..11982cc
--- /dev/null
+++ b/beta_old1/app/images/details.png
Binary files differ
diff --git a/beta_old1/app/images/editCreneau2.gif b/beta_old1/app/images/editCreneau2.gif
new file mode 100644
index 0000000..ba90a82
--- /dev/null
+++ b/beta_old1/app/images/editCreneau2.gif
Binary files differ
diff --git a/beta_old1/app/images/logo.png b/beta_old1/app/images/logo.png
new file mode 100644
index 0000000..a768d45
--- /dev/null
+++ b/beta_old1/app/images/logo.png
Binary files differ
diff --git a/beta_old1/app/images/masque.png b/beta_old1/app/images/masque.png
new file mode 100644
index 0000000..45a6027
--- /dev/null
+++ b/beta_old1/app/images/masque.png
Binary files differ
diff --git a/beta_old1/app/images/ok.gif b/beta_old1/app/images/ok.gif
new file mode 100644
index 0000000..1935a84
--- /dev/null
+++ b/beta_old1/app/images/ok.gif
Binary files differ
diff --git a/beta_old1/app/images/question.gif b/beta_old1/app/images/question.gif
new file mode 100644
index 0000000..d57516b
--- /dev/null
+++ b/beta_old1/app/images/question.gif
Binary files differ
diff --git a/beta_old1/app/images/supprimer.png b/beta_old1/app/images/supprimer.png
new file mode 100644
index 0000000..a87033a
--- /dev/null
+++ b/beta_old1/app/images/supprimer.png
Binary files differ
diff --git a/beta_old1/app/images/vcss.gif b/beta_old1/app/images/vcss.gif
new file mode 100644
index 0000000..020c75a
--- /dev/null
+++ b/beta_old1/app/images/vcss.gif
Binary files differ
diff --git a/beta_old1/app/images/vxhtml.gif b/beta_old1/app/images/vxhtml.gif
new file mode 100644
index 0000000..739585d
--- /dev/null
+++ b/beta_old1/app/images/vxhtml.gif
Binary files differ
diff --git a/beta_old1/app/images/wai.gif b/beta_old1/app/images/wai.gif
new file mode 100644
index 0000000..b82d6e7
--- /dev/null
+++ b/beta_old1/app/images/wai.gif
Binary files differ
diff --git a/beta_old1/app/include/connect.inc.php b/beta_old1/app/include/connect.inc.php
new file mode 100644
index 0000000..b985b10
--- /dev/null
+++ b/beta_old1/app/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/beta_old1/app/include/ical.inc.php b/beta_old1/app/include/ical.inc.php
new file mode 100644
index 0000000..e79570b
--- /dev/null
+++ b/beta_old1/app/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'
+ . ' AND C.dateHeure > NOW() ';
+ 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/beta_old1/app/include/je.inc.php b/beta_old1/app/include/je.inc.php
new file mode 100644
index 0000000..3c87753
--- /dev/null
+++ b/beta_old1/app/include/je.inc.php
@@ -0,0 +1,244 @@
+<?php
+require_once ('include/connect.inc.php');
+
+ function traiter_formulaire_valider_modif_personnes()
+ {
+ //Vérification a faire pour savoir si c'est bien le propriétaire ?!! $_SESSION['session_idP']
+ $tabParticipant = array();
+ if (isset($_GET['dataParticipants'])) $tabParticipant = $_GET['dataParticipants'];
+ $idL=-1;
+ if (!isset($_GET['idL']) && isset($_GET['listname']))
+ {
+ if (isset($_GET['isPrivate'])) $isPrivate = 'oui'; else $isPrivate = 'non';
+ $idL = list_new($_GET['listname'],$_GET['idP'],$isPrivate);
+ }
+ else {$idL = $_GET['idL'];}
+
+ if ($idL != -1) list_modif($idL,$tabParticipant);
+ }
+
+ function traiter_formulaire_delete_list()
+ {
+ //Vérification a faire pour savoir si c'est bien le propriétaire ?!! $_SESSION['session_idP']
+ if (isset($_GET['idL'])) list_delete($_GET['idL']);
+ }
+
+ function list_delete($idL)
+ {
+ $result = mysql_query("DELETE FROM Appartenir WHERE idL=$idL;");
+ $result = mysql_query("DELETE FROM Liste WHERE idL=$idL;");
+ }
+
+ function list_new($listname,$idP,$isPrivate)
+ {
+ $result = mysql_query("INSERT INTO Liste (libelleL,estPrivee,idP_Createur) VALUES ('$listname','$isPrivate',$idP)") or die (mysql_error());
+ if (mysql_affected_rows() > 0)
+ {
+ return (mysql_insert_id());
+ }
+ return (false);
+ }
+
+ function list_modif($idL,$tabParticipant)
+ {
+ $result = mysql_query("SELECT P.idP,P.courrielP FROM Appartenir A, Personne P WHERE P.idP = A.idP AND A.idL=$idL") or die (mysql_error());
+ if (mysql_num_rows($result)>=0)
+ {
+ //Fabrication des trois tableaux
+ $tabOldPers = array();
+ $tabOldPersMail = array();
+ $tabNewPers = array();
+ if (!empty($tabParticipant)) $tabNewPers = $tabParticipant;
+ 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 mettre a NULL les élements identiques aux deux tableaux
+ $i = 0;
+ while ($i < count($tabOldPers))
+ {
+ $exist=false;
+ for ($j=0;$j<count($tabNewPers);$j++)
+ {
+ if (($tabOldPers[$i] == $tabNewPers[$j]) or ($tabOldPersMail[$i] == $tabNewPers[$j]))
+ {
+ $exist = true;
+ $tabNewPers[$j]=NULL;
+ }
+ }
+ if ($exist)
+ {
+ $tabOldPers[$i]=NULL;
+ $tabOldPersMail[$i]=NULL;
+ }
+ $i++;
+ }
+ }
+
+ //Construction du tableau des participants a ajouter
+ $tabAdd = array();
+ foreach ($tabNewPers as $pers)
+ {
+ //Si c'est une adresse Mail : Inscription + Ajout Sinon Ajour simplement
+ if (!stristr($pers,'@')===false)
+ {
+ $tabAdd[] = new_pers($pers);
+ }
+ else
+ {
+ if ($pers != NULL) $tabAdd[] = $pers;
+ }
+ }
+ //Enleve les redondances d'idP
+ $tabAdd=array_unique($tabAdd);
+ //Envoie a la fonction d'ajout de personne
+ list_add_pers($tabAdd,$idL);
+
+ //Construction du tableau des participants a ajouter
+ $tabRemove = array();
+ foreach ($tabOldPers as $pers)
+ {
+ if ($pers != NULL) $tabRemove[] = $pers;
+ }
+ //Envoie a la fonction de suppression de personne
+ list_remove_pers($tabRemove,$idL);
+
+ }
+
+ function list_add_pers ($tabPers,$idL)
+ {
+ foreach ($tabPers as $pers)
+ {
+ $result=mysql_query("INSERT INTO Appartenir (idP,idL) VALUES ($pers,$idL);");
+ }
+
+ }
+
+ function list_remove_pers ($tabPers,$idL)
+ {
+
+ foreach ($tabPers as $pers)
+ {
+ $result = mysql_query("DELETE FROM Appartenir WHERE idP=$pers AND idL=$idL;");
+ }
+
+ }
+
+
+ //Fonction Inscription qui prends en parametre une adresse mail $persMail et qui retourne l'id de la perssonne (s'il elle existe)
+ // ou Insert une personne et retourne son identifiant
+ function new_pers ($persMail)
+ {
+ $result = mysql_query("SELECT idP,courrielP FROM Personne WHERE courrielP = '$persMail'");
+ if (mysql_num_rows($result)>0)
+ {
+ $row = mysql_fetch_array($result);
+ return ($row['idP']);
+ }
+ else
+ {
+ $result = mysql_query("INSERT INTO Personne (courrielP,loginP,nomP) VALUES ('$persMail','$persMail','$persMail')");
+ return (mysql_insert_id());
+ }
+
+ return (false);
+ }
+
+
+
+ //Fonction qui affiche toutes les liste public ainsi que les liste privée possédées par idP
+ function generate_html_array_list ($idP)
+ {
+ $result = mysql_query("SELECT idL,libelleL,estPrivee,idP_Createur FROM Liste WHERE idP_Createur=$idP OR estPrivee='non' ORDER BY estPrivee,libelleL");
+ echo "<table>\n<tr>\n<th>Supprimer</th>\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' || $row['idP_Createur']==$idP) echo "<a href=\"#\" onclick=\"loadid('popdeletelist.php?idL=".$row[0]."','popdeletelist',true);popon('popdeletelist')\"><img src=\"images/supprimer.png\" alt=\"Supprimer ".$row[1]."\" /></a></td>\n" ; else echo "</td>\n";
+ if ($row['estPrivee'] == 'oui') echo "<td>estPriv&eacute;e" ; else echo "<td>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></td>\n";
+ echo "</tr>\n";
+ }
+
+ }
+ echo "</table>\n";
+
+ }
+
+ function traiter_formulaire_commentaire()
+ {
+ if ($_GET['txtCommentaire'] != "")
+ {
+ require_once ('include/connect.inc.php');
+ if (isset($_GET['idR']))
+ {
+ $query="UPDATE Repondre SET commentaireReponse ='".$_GET['txtCommentaire']."' WHERE idR=".$_GET['idR']." AND idP=".$_SESSION['session_idP'];
+ $result = @mysql_query($query);
+ if ( ! $result || ( mysql_affected_rows() !== 1 ) )
+ {
+ $query="INSERT INTO Repondre(idR,idP,commentaireReponse) VALUES (".$_GET['idR'].", ".$_SESSION['session_idP'].", '".$_GET['txtCommentaire']."')";
+
+ $result = mysql_query($query);
+ if ( ! $result || ( mysql_affected_rows() !== 1 ))
+ {
+ echo $query;
+ echo "Erreur BD\n";
+ return;
+ }
+ }
+ }
+ }
+ else
+ {
+ $query="DELETE FROM Repondre WHERE idR=".$_GET['idR']." AND idP=".$_SESSION['session_idP'];
+ $result = mysql_query($query);
+ }
+ }
+
+ // Modifiée par Ludo pour les problèmes de vriables de session et pour d'autres détails :
+ // S'il n'y a pas de commentaire, on affiche le tableau vide
+ function generate_html_reunion_commentaires($idR)
+ {
+ $idP = $_SESSION['session_idP'];
+ echo '<table cellspacing="0" class="commentaires" summary="Liste des commentaires laissés pour les personnes conviées à cette réunion">';
+ echo '<thead>';
+ echo '<tr>';
+ echo "<th>Commentaires <a href=\"#\" onclick=\"loadid('popcommentaire.php?idR=".$idR."&amp;idP=".$idP."','popcommentaire',true);popon('popcommentaire');\">(Editer votre commentaire)</a></th>";
+ echo '</tr>';
+ echo '</thead>';
+ $requete = "SELECT P.nomP,P.prenomP,P.courrielP,R.commentaireReponse FROM Repondre R,Personne P WHERE P.idP = R.idP AND R.idR = '".$idR."'";
+ //echo "DEBUG : requete : $requete\n";
+ $resultat = mysql_query($requete);
+ if($resultat != false)
+ {
+ if(mysql_num_rows($resultat) > 0)
+ {
+ while($pers = mysql_fetch_array($resultat))
+ {
+ echo '<tr><td>';
+ if ($pers["nomP"] !== "" || $pers["prenomP"] !== "") echo $pers["nomP"] . " " . $pers["prenomP"]; else echo $row["courrielP"];
+ echo " : ".$pers["commentaireReponse"]."</td></tr>\n";
+
+ }
+ }
+ else
+ {
+ echo "<tr><td>Aucun commentaire pour le moment.</td></tr>\n";
+ }
+ }
+
+ echo '</table>';
+
+ }
+
+
+?> \ No newline at end of file
diff --git a/beta_old1/app/include/ju.inc.php b/beta_old1/app/include/ju.inc.php
new file mode 100644
index 0000000..49f0322
--- /dev/null
+++ b/beta_old1/app/include/ju.inc.php
@@ -0,0 +1,230 @@
+<?php
+function traiter_formulaire_popfichier()
+{
+ require("include/ludo/config.inc.php");
+ $file = "fichier";
+ if(isset($_FILES[$file]))
+ {
+ if($_FILES[$file]["error"] == 0)
+ {
+ //Récupération de l'extension
+ $ext = explode(".", $_FILES[$file]["name"]);
+ $ext = array_pop($ext);
+ if(is_numeric(array_search(strtolower($ext), $CONFIG["UPLOAD"]["accepted_files"])))
+ {
+ if(!file_exists($_SERVER['DOCUMENT_ROOT']."/fichiers/"."r".$_GET["idR"]."_".$_FILES[$file]["name"]))
+ {
+ if(move_uploaded_file($_FILES[$file]["tmp_name"], $_SERVER['DOCUMENT_ROOT']."/fichiers/"."r".$_GET["idR"]."_".$_FILES[$file]["name"]))
+ {
+ if(isset($debug)) echo "DEBUG :".$_SERVER['DOCUMENT_ROOT']."/fichiers/\n";
+ $requete = "INSERT INTO Fichier(nomFic, idR) VALUES ('"."r".$_GET["idR"]."_".$_FILES[$file]["name"]."', '".$_GET["idR"]."')";
+ if(mysql_query($requete) == false)
+ {
+ if(isset($debug)) echo "DEBUG : ".mysql_error()."<br/>\n";
+ if(isset($debug)) echo "DEBUG : ".$requete."<br/>\n";
+ return "Erreur : Une erreur MySQL est survenu.";
+ }
+ }
+ else
+ {
+ return "Erreur Uploader file";
+ }
+ }
+ else
+ {
+ return "Erreur : Un fichier de meme nom existe deja";
+ }
+ }
+ else
+ {
+ return "Erreur : Le fichier n'a pas ete uploader correctement.";
+ }
+ }
+ else
+ {
+ switch($_FILES[$file]["error"])
+ {
+ case 1 : return "Erreur : Le fichier a une taille trop importante."; break;
+ case 2 : return "Erreur : Le fichier a une taille trop importante."; break;
+ case 3 : return "Erreur : Le fichier n'a pas ete envoye en entier."; break;
+ case 4 : return "Erreur : Aucun fichier recu."; break;
+ }
+ echo $erreur;
+ }
+ }
+ else
+ {
+ return "isset";
+ }
+}
+
+
+function generate_html_reunion_fichiers($idR)
+{
+ $requete = "SELECT * FROM Fichier WHERE idR = '".$idR."'";
+ $resultat = mysql_query($requete);
+ if($resultat != false)
+ {
+ echo '<table cellspacing="0" class="fichiers" summary="Liste des fichiers postés par les participants de la réunion.">';
+ echo '<thead>';
+ echo '<tr>';
+ echo '<th>Fichiers attach&eacute;s <a href="#" onclick="popon(\'popfichier\')">(Ajouter un fichier)</a></th>';
+ echo '</tr>'."\n";
+ echo '</thead>';
+ if(mysql_num_rows($resultat) > 0)
+ {
+ while($fichier = mysql_fetch_array($resultat))
+ {
+ echo "<tr><td><a href=\"../fichiers/".$fichier["nomFic"]."\" target=\"_blank\" >".$fichier["nomFic"]."</a></td></tr>\n";
+ }
+ }
+ else
+ {
+ echo "<tr><td>Aucun fichier pour cette reunion.</td></tr>\n";
+ }
+ echo '</table>';
+ }
+}
+
+function traiter_formulaire_valider_creneau()
+{
+ $tabCreneau = array();
+ if(isset($_REQUEST["dataCreneaux"]))
+ {
+ //Pour chaque creneau poste, on verifie s'il existe, si non on le creer
+ foreach($_REQUEST['dataCreneaux'] as $creneau)
+ {
+ $tabCreneau = explode(".", $creneau);
+ $heureD = substr($tabCreneau[0], 0, 2);
+ $minD = substr($tabCreneau[0], 2, 2);
+ $heureA = substr($tabCreneau[1], 0, 2);
+ $minA = substr($tabCreneau[1], 2, 2);
+ $jourA = $tabCreneau[2];
+ $moisA = $tabCreneau[3];
+ $anneeA = $tabCreneau[4];
+ //Si un creneau n'existe pas on le creer
+ $idCreneau = creneauExiste($_REQUEST["idR"], $heureD, $minD, $heureA, $minA, $jourA, $moisA, $anneeA);
+ if($idCreneau == false)
+ {
+ $newIdC = ajouterCreneau($_REQUEST["idR"], $heureD, $minD, $heureA, $minA, $jourA, $moisA, $anneeA);
+ if($newIdC != false)
+ {
+ $tabNewCreneau[] = $newIdC;
+ }
+
+ }
+ else
+ {
+ $tabNewCreneau[] = $idCreneau;
+ }
+ }
+ // tabCreneau contient les tous les creneaux dont on a besoin pour la reunion, il faut maintenant supprimer de la base
+ // tous les creneaux de la reunion qui n'apparaissent pas dans cette liste
+ $listeCreneau = "(";
+ foreach($tabNewCreneau as $creneau)
+ {
+ $listeCreneau .= "'".$creneau."', ";
+ }
+ $listeCreneau .= "'XXX')";
+ if(isset($debug)) echo $listeCreneau;
+
+ //On recupere les creneaux ne faisant plus partie de la novuelle liste des creneaux
+ $requete = "SELECT * FROM Creneau WHERE idR='".$_REQUEST["idR"]."' AND idC NOT IN ".$listeCreneau;
+ echo $requete;
+ if($resultat = mysql_query($requete))
+ {
+ while($ligne = mysql_fetch_array($resultat))
+ {
+ supprimerCreneau($ligne["idC"]);
+ }
+ }
+ }
+}
+
+function traiter_formulaire_maj_profil()
+{
+ $requete = "UPDATE Personne SET courrielP = '".$_POST["courrielP"]."', loginP = '".$_POST["loginP"]."', nomP = '".$_POST["nomP"]."', prenomP = '".$_POST["prenomP"]."', methodeAuth = '".$_POST["methodeAuth"]."' WHERE idP = '".$_SESSION['session_idP']."'";
+ if(mysql_query($requete) == false) return "Une erreur MySQL est survenu : ".mysql_error();
+ $_SESSION['session_prenomP'] = $_POST["prenomP"];
+ $_SESSION['session_nomP'] = $_POST["nomP"];
+ //print_r($_POST);
+}
+
+function ajouterCreneau($idR, $heureD, $minD, $heureA, $minA, $jourA, $moisA, $anneeA)
+{
+ $dateD = mktime($heureD, $minD, 0, $moisA, $jourA, $anneeA);
+ $dateA = mktime($heureA, $minA, 0, $moisA, $jourA, $anneeA);
+ $duree = $dateA - $dateD;
+ $dateD = date("Y-m-d G:i:s", $dateD);
+ $duree = $duree / 60;
+ $requete = "INSERT INTO Creneau (dateHeure, duree, idR) VALUES ('".$dateD."', '".$duree."', '".$idR."')";
+ if(isset($debug)) echo $requete."<br/>";
+ if(mysql_query($requete)) { return mysql_insert_id(); } else { return false; }
+}
+
+function ajouterCreneau2($idR, $dateHeure, $duree)
+{
+ $requete = "INSERT INTO Creneau (dateHeure, duree, idR) VALUES ('".$dateHeure."', '".$duree."', '".$idR."')";
+ if(mysql_query($requete))
+ {
+ return mysql_insert_id();
+ }
+ else
+ {
+ return false;
+ }
+}
+
+function supprimerCreneau($idC)
+{
+ if(mysql_query("DELETE FROM Creneau WHERE idC='".$idC."'"))
+ {
+ if(mysql_query("DELETE FROM Choisir WHERE idC='".$idC."'"))
+ {
+ return true;
+ }
+ else
+ {
+ return false;
+ }
+ }
+ else
+ {
+ return false;
+ }
+}
+
+function creneauExiste($idR, $heureD, $minD, $heureA, $minA, $jourA, $moisA, $anneeA)
+{
+ $dateD = mktime($heureD, $minD, 0, $moisA, $jourA, $anneeA);
+ $dateA = mktime($heureA, $minA, 0, $moisA, $jourA, $anneeA);
+ $duree = $dateA - $dateD;
+ $dateD = date("Y-m-d G:i:s", $dateD);
+ $duree = $duree / 60;
+ $requete = "SELECT * FROM Creneau WHERE idR='".$idR."' AND dateHeure='".$dateD."' AND duree=".$duree."";
+ if($result = mysql_query($requete))
+ {
+ if(mysql_num_rows($result) > 0)
+ {
+ $ligne = mysql_fetch_array($result);
+ return $ligne["idC"];
+ }
+ else
+ {
+ return false;
+ }
+ }
+}
+
+function addslashes_if_needed($texte)
+{
+ if(get_magic_quotes_gpc() == 0)
+ {
+ return addslashes($texte);
+ }
+ else
+ {
+ return $texte;
+ }
+}
+?> \ No newline at end of file
diff --git a/beta_old1/app/include/ludo/TODO_list.txt b/beta_old1/app/include/ludo/TODO_list.txt
new file mode 100644
index 0000000..724c46c
--- /dev/null
+++ b/beta_old1/app/include/ludo/TODO_list.txt
@@ -0,0 +1,24 @@
+Accueil > _Listes_ (virer le lien)
+
+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/beta_old1/app/include/ludo/auth.inc.php b/beta_old1/app/include/ludo/auth.inc.php
new file mode 100644
index 0000000..18b339d
--- /dev/null
+++ b/beta_old1/app/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/beta_old1/app/include/ludo/config.inc.php b/beta_old1/app/include/ludo/config.inc.php
new file mode 100644
index 0000000..51d6d73
--- /dev/null
+++ b/beta_old1/app/include/ludo/config.inc.php
@@ -0,0 +1,73 @@
+<?php
+$CONFIG = array
+(
+ 'adminMail' => 'jmi@iut-blagnac.fr',
+ 'automatedMail' => 'no_reply@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',
+ 'Glace (ancien)' => 'ice_moche',
+ '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'
+ )
+ )
+ ),
+ 'SUPERUSERS' => array ('jeremie.denoyer', 'lpouzenc'),
+ 'UPLOAD' => array
+ (
+ 'accepted_files' => array
+ (
+ 'jpg', 'jpeg', 'gif', 'png', 'svg', 'pdf', 'ps', 'txt', 'rtf', 'csv', 'doc', 'docx', 'ppt', 'xls', 'sxw','sxp','sxd', 'odt', 'odg', 'odp', 'avi', 'mpg', 'mpeg', 'rm', 'flv', 'mp3', 'mp4', 'ogg','htm','html','zip', 'rar', 'tar', 'gz', 'bz2', 'ace'
+ )
+ )
+);
+?>
diff --git a/beta_old1/app/include/ludo/div_create_or_modif.php b/beta_old1/app/include/ludo/div_create_or_modif.php
new file mode 100644
index 0000000..5849180
--- /dev/null
+++ b/beta_old1/app/include/ludo/div_create_or_modif.php
@@ -0,0 +1,79 @@
+<?php
+$isModif=false;
+if ( isset ( $_GET['idR']) )
+{
+ if ( ! isset($_GET['objetR']) || ! isset($_GET['lieuR']) || ! isset($_GET['ordreJourR']) || ! isset($_GET['remarquesR']) )
+ {
+ $errmsg="Impossible de modifier la réunion : Paramètres incorrects\n";
+ return;
+ }
+ $idR=addslashes($_GET['idR']);
+ $objetR=addslashes($_GET['objetR']);
+ $lieuR=addslashes($_GET['lieuR']);
+ $ordreJourR=addslashes($_GET['ordreJourR']);
+ $remarquesR=addslashes($_GET['remarquesR']);
+
+ $isModif=true;
+}
+?>
+<form action="" method="post">
+ <input name="action" type="hidden" value="modif_detail_reunion" />
+<?php
+ echo ' <input name="idR" type="hidden" value="' . $idR . '" />'
+?>
+ <table class="detail_reunion" summary="Détail de la réunion que vous avez sélectionnée">
+ <thead>
+ <tr>
+ <th colspan="2">
+ <?php if ($isModif) { echo 'Modification des détails de la réunion'; } else { echo 'Création d\'une réunion'; } ?>
+ </th>
+ </tr>
+ </thead>
+ <tbody>
+ <tr>
+ <td><strong>Objet :</strong></td>
+ <td>
+ <input name="objetR" type="text" size="40" <?php if ($isModif) { echo 'value="' . $objetR .'"'; } ?>></input>
+ </td>
+ </tr>
+ <tr>
+ <td><strong>Lieu :</strong></td>
+ <td>
+ <input name="lieuR" type="text" size="40" <?php if ($isModif) { echo 'value="' . $lieuR .'"'; } ?>></input>
+ </td>
+ </tr>
+ <tr>
+ <td><strong>Ordre du jour :</strong></td>
+ <td>
+ <textarea name="ordreJourR" cols="40" rows="3"><?php if ($isModif) { echo $ordreJourR; } ?></textarea>
+ </td>
+ </tr>
+ <tr>
+ <td><strong>Remarques :</strong></td>
+ <td>
+ <textarea name="remarquesR" cols="40" rows="3"><?php if ($isModif) { echo $remarquesR; } ?></textarea>
+ </td>
+ </tr>
+ <tr>
+ <td><strong>Etat :</strong></td>
+ <td>
+ <input name="isCancelled" type="checkbox">Annulée</input>
+ <?php
+ // TODO : refléter l'état de la BD pour l'annulation !
+ ?>
+ </td>
+ </tr>
+ <tr>
+ <!--<td>&nbsp;</td>-->
+ <td colspan="2">
+ <input name="Valider" type="submit" value="Valider"></input>
+ <?php
+ // TODO : refléter l'état de la BD pour l'annulation !
+ //~ echo '<a href="#confirmAnnulation" onclick="loadid(\'include/ludo/popConfirmAnnulR.php?idR=';
+ //~ echo $idR . "','popfixer',true);popon('popfixer');\">Annuler</a>";
+ ?>
+ </td>
+ </tr>
+ </tbody>
+ </table>
+</form> \ No newline at end of file
diff --git a/beta_old1/app/include/ludo/fonctions.inc.php b/beta_old1/app/include/ludo/fonctions.inc.php
new file mode 100644
index 0000000..7411000
--- /dev/null
+++ b/beta_old1/app/include/ludo/fonctions.inc.php
@@ -0,0 +1,515 @@
+<?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=false, $class='')
+{
+ // Alignement html
+ require_once('html_elements.inc.php');
+ if ( ! $isEditable )
+ {
+ if ( $withTD ) { echo " <td $class>\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}\" $class>\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;'."\n ";
+ generate_html_dispo_dire_non($idR, $idC);
+ }else
+ {
+ // Non Disponible
+ generate_html_dispo_dire_oui($idR, $idC);
+ //~ echo ' &nbsp;&nbsp;'."\n ";
+ 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)
+{
+ 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";
+?>
+<form id="formmail" action="sendmail.php" method="post">
+ <table class="details" 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>' ."\n";
+ if ( $is_admin )
+ {
+ echo ' <a href="#poppersonne" onclick="loadid(\'poppersonne.php?idR=' . $idR;
+ echo '&amp;idL=' . $idL_interne . '&amp;idP_orga=' . $idP_orga . '\',\'poppersonne\',true);popon(\'poppersonne\');">' . "\n";
+ echo ' <img src="images/addP.gif" alt="Ajouter une personne" title="Ajouter une personne" height="17" width="19" />' . "\n";
+ echo ' </a>&nbsp;';
+ }
+ echo 'Personnes' . "\n";
+ echo ' </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;
+ if ( $idC != $idC_Fixe ) { echo ' <th>'; } else { echo ' <th class="selected">'; }
+ if ( $is_admin && ! $estFixee && ! $estAnnulee )
+ {
+ echo '<a href="#popfixer" onclick="loadid(\'popfixer.php?idC=' . $idC;
+ echo '&amp;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;
+ $dispo_max_id=-1;
+ $dispo_max_val=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>
+ <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=='non' ) { $dispos[$idC]['nbNonDispo']++; }
+ if ( $estDispo=='oui' )
+ {
+ $dispos[$idC]['nbDispo']++;
+ if ( $dispos[$idC]['nbDispo'] > $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 " <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";
+ 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 " <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?idR=' . $idR;
+ echo '&amp;idL=' . $idL_interne . '&amp;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>\n"; }
+ if ( $is_admin && ! $estFixee && ! $estAnnulee ) { echo " <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 )
+ {
+ if ( $c_id == $dispo_max_id )
+ {
+ echo ' <td><em>' . $dispos[$c_id]['nbDispo'] . "</em></td>\n";
+ }
+ else
+ {
+ 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 " </table>\n</form>\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'; }
+
+?>
+ <table class="detail_reunion" summary="Détail de la réunion que vous avez sélectionnée">
+ <thead>
+ <tr>
+ <th colspan="2">
+ Détails de la réunion
+<?php
+ //~ echo "DEBUG : SESSION['session_idP']==" . $_SESSION['session_idP'] . "\n" . "idP_Orga==" . $idP_Orga;
+ if ( isset($_SESSION['session_idP']) && ($_SESSION['session_idP'] == $idP_Orga ) )
+ {
+ echo ' ';
+ echo '<a href="#popfixer" onclick="loadid(\'include/ludo/div_create_or_modif.php?idR=';
+ echo $idR . '&amp;objetR=' . urlencode($objetR) . '&amp;lieuR=' . urlencode($lieuR) . '&amp;ordreJourR=';
+ echo urlencode($ordreJourR) . '&amp;remarquesR=' . urlencode($remarquesR);
+ echo "','details_reunion',false)\">(Editer)</a>\n";
+ }
+
+?>
+ </th>
+ </tr>
+ </thead>
+ <tbody>
+ <tr>
+ <td><strong>Objet :</strong></td>
+ <td>
+ <?php echo $objetR . "\n"; ?>
+ </td>
+ </tr>
+ <tr>
+ <td><strong>Organisateur :</strong></td>
+ <td>
+ <?php echo "$prenomP $nomP\n"; ?>
+ </td>
+ </tr>
+
+ <tr>
+ <td><strong>Lieu :</strong></td>
+ <td>
+ <?php echo $lieuR . "\n"; ?>
+ </td>
+ </tr>
+ <tr>
+ <td><strong>Ordre du jour :</strong></td>
+ <td>
+ <?php echo $ordreJourR . "\n"; ?>
+ </td>
+ </tr>
+ <tr>
+ <td><strong>Remarques :</strong></td>
+ <td>
+ <?php echo $remarquesR . "\n"; ?>
+ </td>
+ </tr>
+ <tr>
+ <td><strong>Etat :</strong></td>
+<?php
+ echo ' <td class="' . $etat .'">' ."\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'; }
+?>
+ </td>
+ </tr>
+ </tbody>
+ </table>
+<?php
+}
+
+?>
diff --git a/beta_old1/app/include/ludo/html_elements.inc.php b/beta_old1/app/include/ludo/html_elements.inc.php
new file mode 100644
index 0000000..41fd812
--- /dev/null
+++ b/beta_old1/app/include/ludo/html_elements.inc.php
@@ -0,0 +1,183 @@
+<?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
+ $cssfilemain='';
+ if ( isset($_COOKIE['awor']['custom_css'] ) )
+ {
+ $cssfilemain = $_COOKIE['awor']['custom_css'];
+ }
+ else
+ {
+ include 'config.inc.php';
+ $cssfilemain=$CONFIG['CSS']['CHOOSER_LIST']['standard'];
+ }
+ echo ' <link href="css/' . $cssfilemain . '.css" rel="stylesheet" type="text/css" />' . "\n";
+ echo ' <link href="css/' . $cssfilemain . '_nohelp.css" rel="stylesheet" type="text/css" title="nohelp" />' . "\n";
+
+ if ( isset($CONFIG['CSS']['CHOOSER_LIST']) )
+ {
+ foreach ( $CONFIG['CSS']['CHOOSER_LIST'] as $cssname => $cssfile )
+ {
+ if ( $cssfile != $cssfilemain )
+ {
+ echo ' <link href="css/' . $cssfile . '.css" rel="alternate stylesheet" type="text/css" title="'.$cssname.'"/>' . "\n";
+ echo ' <link href="css/' . $cssfile . '_nohelp.css" rel="alternate stylesheet" type="text/css" title="'.$cssname.'_nohelp"/>' . "\n";
+ }
+ }
+ }
+?>
+ <link href="css/print.css" rel="alternate stylesheet" type="text/css" title="print"/>
+ </head>
+<?php
+}
+
+function generate_html_divs_menu()
+{
+include 'config.inc.php';
+?>
+<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>
+<?php if ( isset($_SESSION['session_loginP']) && (is_integer(array_search($_SESSION['session_loginP'],$CONFIG['SUPERUSERS'],true))) )
+ { echo ' <li><a href="admin.php">Administration</a></li>' . "\n"; }
+?>
+ <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()
+{
+ @include 'include/ludo/config.inc.php';
+ @include 'config.inc.php';
+
+ if ( ! is_array($CONFIG['CSS']['CHOOSER_LIST']) ) { return false; }
+
+ if ( isset($_COOKIE['awor']['custom_css'] ) ) { $css_selected=$_COOKIE['awor']['custom_css']; }else{$css_selected='';};
+ echo '<div class="css_chooser">' . "\n";
+ echo ' <select id="switcherCSS" onchange="switchCSS();">' . "\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_footer()
+{
+?>
+<div id="footer">
+ <ul>
+ <li class="left">
+<?php generate_html_div_css_chooser(); ?>
+ </li>
+ <li class="center">
+ <a href="http://validator.w3.org/check/referer" target="_blank">
+ <img src="./images/vxhtml.gif" alt="Validate" border="0" height="31" width="88" />
+ </a>
+ <a href="http://jigsaw.w3.org/css-validator/check/referer" target="_blank">
+ <img src="./images/vcss.gif" alt="Validate" border="0" height="31" width="88" />
+ </a>
+ <a href="http://www.w3.org/WAI/WCAG1A-Conformance" title="Explanation of Level A Conformance" target="_blank">
+ <img src="./images/wai.gif" alt="W3C-WAI level A conformance icon" border="0" height="31" width="88" />
+ </a>
+ </li>
+ <li class="right">
+ <span class="discret">Application réalisée par Jérémie Dénoyer, Ludovic Pouzenc, Julien Séré et Andriana Semouchtchak</span>
+ </li>
+ </ul>
+</div>
+<?php
+}
+
+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 class="spacing" src="./images/question.gif" alt="Inconnu" height="15" width="15" />' . "\n";
+}
+
+function generate_html_dispo_oui($idP, $idC)
+{
+ echo '<img class="spacing" src="./images/ok.gif" alt="Disponible" height="16" width="16" />' . "\n";
+}
+
+function generate_html_dispo_non($idP, $idC)
+{
+ echo '<img class="spacing" 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&amp;idC=$idC&amp;estDispo=oui','dispo_idC${idC}',false);\">";
+ echo '<img class="spacing" 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&amp;idC=$idC&amp;estDispo=non','dispo_idC${idC}',false);\">";
+ echo '<img class="spacing" 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/beta_old1/app/include/ludo/mail_textarea.php b/beta_old1/app/include/ludo/mail_textarea.php
new file mode 100644
index 0000000..cf4b6d7
--- /dev/null
+++ b/beta_old1/app/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" cols="80" rows="15">
+<?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/beta_old1/app/include/ludo/majDispo.php b/beta_old1/app/include/ludo/majDispo.php
new file mode 100644
index 0000000..ab7c200
--- /dev/null
+++ b/beta_old1/app/include/ludo/majDispo.php
@@ -0,0 +1,41 @@
+<?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['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['session_idP'];
+
+
+ // TODO Traitement
+
+/* echo "DEBUG : query==UPDATE Choisir SET estDispo = '$estDispo' WHERE idC='$idC' AND idP='$idP'";
+ $query="UPDATE Choisir SET estDispo = '$estDispo' WHERE idC='$idC' AND idP='$idP'";
+ $result = @mysql_query($query);
+ if ( ! $result || ( mysql_num_rows($result) !== 1 ) )
+ {
+ $query="INSERT INTO Choisir(idC,idP,estDispo) VALUES ('$idC', '$idP', '$estDispo')";
+ $result = @mysql_query($query);
+ if ( ! $result || ( mysql_num_rows($result) !== 1 ) )
+ {
+ echo "Erreur BD\n";
+ return;
+ }
+ } */
+ generate_html_dispo_case($idR, $idP, $idC, true, $estDispo, false);
+}
+?> \ No newline at end of file
diff --git a/beta_old1/app/include/ludo/redir.inc.php b/beta_old1/app/include/ludo/redir.inc.php
new file mode 100644
index 0000000..6baf40d
--- /dev/null
+++ b/beta_old1/app/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/beta_old1/app/include/ludo/session_verify.inc.php b/beta_old1/app/include/ludo/session_verify.inc.php
new file mode 100644
index 0000000..f1cea8b
--- /dev/null
+++ b/beta_old1/app/include/ludo/session_verify.inc.php
@@ -0,0 +1,9 @@
+<?php
+session_start();
+if ( ! isset($_SESSION['session_loginP']) )
+{
+ require('redir.inc.php');
+ $dest='auth_dialog.php?retour=' . $_SERVER['PHP_SELF'];
+ html_redir($dest);
+}
+?> \ No newline at end of file
diff --git a/beta_old1/app/index.php b/beta_old1/app/index.php
new file mode 100644
index 0000000..eefb768
--- /dev/null
+++ b/beta_old1/app/index.php
@@ -0,0 +1,123 @@
+<?php
+require('include/ludo/session_verify.inc.php');
+require_once('include/ludo/html_elements.inc.php');
+generate_html_doctype_and_head("Réunions");
+echo "<body>\n";
+generate_html_divs_menu();
+?>
+ <div id="sous_menu">
+ <p class="arbre">
+ &gt; <a href="index.php">Accueil</a>
+ &gt; <a href="index.php">R&eacute;unions</a>
+ &gt; Liste des r&eacute;unions
+ </p>
+ </div>
+<?php
+generate_html_div_help();
+?>
+ <div id="contenu">
+<?php
+ $idP= $_SESSION['session_idP'];
+ if ( isset( $_SESSION['session_prenomP'] ) && isset( $_SESSION['session_prenomP'] ) )
+ { $nom=$_SESSION['session_prenomP'] . ' ' . $_SESSION['session_nomP']; }
+ else { $nom = $_SESSION['loginP']; }
+
+ echo "Bonjour $nom, nous sommes le " . date('d/m/Y') . ' et il est ' . date('H:i');
+ //~ echo "<pre>DEBUG : SESSION :\n";
+ //~ print_r($_SESSION);
+ //~ echo "\nDEBUG : REQUEST :\n";
+ //~ print_r($_REQUEST);
+ //~ echo "</pre>";
+?>
+ <br/><br/>
+ <a href="details_reunion.php?action=creer_reunion">Organiser une r&eacute;union</a>
+ <br/><br/>
+ <table class="listeReunions" summary="Liste des réunions vous concernant">
+ <tr>
+ <th>Objet</th>
+ <th>Organisateur</th>
+ <th>Date</th>
+ <th>Etat</th>
+ <th>D&eacute;tails</th>
+ </tr>
+<?php
+ // Connexion à la base et sélection de la database
+ require_once 'include/connect.inc.php';
+
+ function fill_array_liste_reunion($query)
+ {
+ if ( ! $result = @mysql_query($query) )
+ {
+ require_once('fonctions.inc.php');
+ $errmsg=mysql_generate_errmsg();
+ }
+ else
+ {
+ // On écrit ligne à ligne les personnes et les disponibilités
+ while ( list($idR, $objetR, $nomP, $prenomP, $idC_Fixe, $estAnnulee) = mysql_fetch_array($result) )
+ {
+ // Boucle sur chaque personne
+ echo " <tr>\n";
+ echo ' <td><a href="details_reunion.php?idR=' . $idR . '">' . "$objetR</a></td>\n";
+ echo " <td>$prenomP $nomP</td>\n";
+ if ( $estAnnulee=='oui' ) { $etat = 'reunion_annulee'; } elseif ( $idC_Fixe!=null) { $etat ='reunion_fixee'; } else { $etat = 'reunion_en_cours'; }
+
+ $dateStr='';
+ switch($etat)
+ {
+ case 'reunion_fixee':
+ echo ' <td>' . date('d/m/Y \à H:i', $idC_Fixe) . "</td>\n";
+ echo " <td class='$etat'>Fixée</td>\n";
+ break;
+ case 'reunion_en_cours':
+ echo " <td></td>\n";
+ echo " <td class='$etat'>En préparation</td>\n";
+ break;
+ case 'reunion_annulee':
+ echo " <td></td>\n";
+ echo " <td class='$etat'>Annulée</td>\n";
+ break;
+ }
+
+
+ echo ' <td>';
+ generate_html_reunion_detail_button($idR);
+ echo "</td>\n";
+ echo " </tr>\n";
+ }
+ }
+ }
+
+
+ // Réunions fixées et passées
+
+ $query = 'SELECT DISTINCT R.idR, R.objetR, P.nomP, P.prenomP, UNIX_TIMESTAMP(C.dateHeure), R.estAnnulee'
+ . ' 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 P.idP = R.idP_Orga AND R.idC_Fixe = C.idC'
+ . ' ORDER BY C.dateHeure DESC;';
+ fill_array_liste_reunion($query);
+
+ // Réunion en préparation
+ $query = 'SELECT DISTINCT R.idR, R.objetR, P.nomP, P.prenomP, NULL, R.estAnnulee'
+ . ' FROM Liste L,Reunion R,Appartenir A,Personne P' // Creneau C,
+ . " WHERE ((A.idP = $idP AND A.idL = L.idL) OR R.idP_Orga = $idP)"
+ . ' AND R.idL = L.idL AND P.idP = R.idP_Orga AND ISNULL(R.idC_Fixe);';
+ //echo "DEBUG : $query\n";
+ fill_array_liste_reunion($query);
+
+ //$query =
+ //echo "DEBUG : $query\n";
+?>
+ </table>
+ <br/>
+ <a href="details_reunion.php?action=creer_reunion">Organiser une r&eacute;union</a>
+ </div>
+<?php
+ if ( isset ($errmsg) ) { generate_html_div_errmsg($errmsg); }
+ generate_html_div_footer();
+?>
+<div id="msg"></div>
+</body>
+</html>
+
diff --git a/beta_old1/app/install/RAZbase.php b/beta_old1/app/install/RAZbase.php
new file mode 100644
index 0000000..9b9fa25
--- /dev/null
+++ b/beta_old1/app/install/RAZbase.php
@@ -0,0 +1,130 @@
+<?php
+function SQLConnect($mysql_host, $mysql_user, $mysql_pass, $mysql_base)
+{
+
+ if ( ! ($link = @mysql_connect($mysql_host,$mysql_user,$mysql_pass)) )
+ return('Erreur MySql : Impossible de se connecter : ' . mysql_error());
+ if ( ! @mysql_select_db($mysql_base))
+ return('Erreur Mysql : Impossible de sélectionner la database');
+}
+
+function SQLFileExec($filepath)
+{
+ // Chargement du fichier complet dans la variable $request...
+
+ // C'est une méthode barbare, mais il est compliqué de faire mieux
+ if ( ! ($fd=fopen($filepath,'r') ) )
+ {
+ echo '<div class="errmsg" style="color:#900">Impossible d\'ouvrir le fichier ' . $filepath . "</div>\n";
+ }
+ else
+ {
+ if ( ! feof( $fd ) ) { $script = fgets($fd,4096); }
+ $request = '';
+ while ( ! feof( $fd ) )
+ {
+ $request .= fgets($fd,4096);
+ }
+
+ // Explosion dans un tableau, requete par requete
+ $tabReq = explode(";", $request);
+
+ // Pour chaque requete
+ foreach ( $tabReq as $req )
+ {
+ $req=trim($req);
+ if ( $req !== "" )
+ {
+ // affichage de verification
+ echo '<div class="sqlcode" style="color:#009">' . str_replace("\n", '<br />', htmlspecialchars( $req) ) ."</div>\n";
+
+ // execution de la requete et affichage de l'erreur s'il y a lieu
+ if ( ! mysql_query($req) )
+ {
+ echo '<div class="sqlerr" style="color:#900">' . 'Erreur No ' . mysql_errno() . ' : ' . htmlspecialchars( mysql_error() ) . "</div>\n";
+ }
+ }
+ }
+ }
+}
+echo '<?xml version="1.0" encoding="ISO-8859-1"?>'
+?>
+<!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" xml:lang="en" lang="en">
+ <head>
+ <title>AWOR - RAZBase</title>
+ <style>
+body{
+ margin : 0 25%;
+ font:80% sans-serif;
+}
+h1 {
+ text-align:center;
+}
+*.errmsg {
+ color : red
+}
+*.sqlerr {
+ color : orange
+}
+*.sqlcode {
+ border: thin solid gray;
+ color : blue;
+ margin : 2em 0;
+}
+ </style>
+ </head>
+ <body>
+ <h1>Remise à zéro de la base de données</h1>
+ <form action='' method="post">
+<?php if ( ! isset($_POST['confirm']) ) { ?>
+ <p>
+ Ce script va détruire toutes les tables d'une précédente installation (si elles existent) et va les recréer, dépourvues de données.<br />
+ Vous devrez utiliser un compte SQL qui ait les droits nécessaires (DROP, CREATE TABLE...). Notez que ces droits sont superflus pour le fonctionnement normal de l'application.<br />
+ Etes-vous sûr de vouloir réinitialiser la base de données ?<br />
+ <label>Addresse du serveur SQL :&nbsp;</label><input name="SQLhost" type="text" value="localhost" /><br />
+ <label>Utilisateur SQL :&nbsp;</label><input name="SQLuser" type="text" /><br />
+ <label>Mot de passe SQL :&nbsp;</label><input name="SQLpwd" type="password" /><br />
+ <label>Database SQL :&nbsp;</label><input name="SQLdb" type="text" /><br />
+ <input type="hidden" name="confirm" value="1" />
+ <input type="submit" value="Confirmer" />
+ </p>
+ </form>
+<?php } ?>
+
+<?
+if (isset($_POST['confirm']) )
+{
+ echo ' <p>';
+ $errmsg = SQLConnect( addslashes($_POST['SQLhost']),addslashes($_POST['SQLuser']),addslashes($_POST['SQLpwd']),addslashes($_POST['SQLdb']) );
+ if ( $_POST['confirm'] === '1' )
+ {
+ if ( is_string($errmsg) ) { echo $errmsg; } else
+ {
+ SQLFileExec('base.sql');
+?>
+ </p>
+ <form action="" method="post">
+ <p>
+ Si vous le souhaitez, vous pouvez insérer un jeu d'essai pour tester l'application.<br />
+ Vous pouvez effectuer l'insertion de ce jeu d'essai avec le compte MySQL qui sera utilisé au fonctionnement de l'application, pour tester si les droits sont suffisants.
+ <label>Addresse du serveur SQL :&nbsp;</label><input name="SQLhost" type="text" value="localhost" /><br />
+ <label>Utilisateur SQL :&nbsp;</label><input name="SQLuser" type="text" /><br />
+ <label>Mot de passe SQL :&nbsp;</label><input name="SQLpwd" type="password" /><br />
+ <label>Database SQL :&nbsp;</label><input name="SQLdb" type="text" /><br />
+ <input type="hidden" name="confirm" value="2" />
+ <input type="submit" value="Insérer" />
+ </p>
+ </form>
+<?php
+ }
+ }
+ elseif ( $_POST['confirm'] === '2' )
+ {
+ SQLFileExec('jeu_essai.sql');
+ }
+}
+?>
+ <p><a href="../index.php">Retour à l'index</a></p>
+ </body>
+</html>
diff --git a/beta_old1/app/install/base.sql b/beta_old1/app/install/base.sql
new file mode 100644
index 0000000..6d1ba97
--- /dev/null
+++ b/beta_old1/app/install/base.sql
@@ -0,0 +1,123 @@
+--
+-- Structure de la table `AWOR_Appartenir`
+--
+
+DROP TABLE IF EXISTS `AWOR_Appartenir`;
+CREATE TABLE IF NOT EXISTS `AWOR_Appartenir` (
+ `idL` int(11) NOT NULL,
+ `idP` int(11) NOT NULL,
+ PRIMARY KEY (`idL`,`idP`)
+);
+
+-- --------------------------------------------------------
+
+--
+-- Structure de la table `Choisir`
+--
+
+DROP TABLE IF EXISTS `AWOR_Choisir`;
+CREATE TABLE IF NOT EXISTS `AWOR_Choisir` (
+ `idC` int(11) NOT NULL,
+ `idP` int(11) NOT NULL,
+ `estDispo` set('oui','non') NOT NULL,
+ PRIMARY KEY (`idC`,`idP`)
+);
+
+-- --------------------------------------------------------
+
+--
+-- Structure de la table `AWOR_Creneau`
+--
+
+DROP TABLE IF EXISTS `AWOR_Creneau`;
+CREATE TABLE IF NOT EXISTS `AWOR_Creneau` (
+ `idC` int(11) NOT NULL auto_increment,
+ `dateHeure` datetime NOT NULL,
+ `duree` int(11) NOT NULL,
+ `idR` int(11) NOT NULL,
+ PRIMARY KEY (`idC`)
+);
+
+-- --------------------------------------------------------
+
+--
+-- Structure de la table `AWOR_Fichier`
+--
+
+DROP TABLE IF EXISTS `AWOR_Fichier`;
+CREATE TABLE IF NOT EXISTS `AWOR_Fichier` (
+ `idFic` int(11) NOT NULL auto_increment,
+ `nomFic` varchar(256) NOT NULL,
+ `idR` int(11) NOT NULL,
+ PRIMARY KEY (`idFic`)
+);
+
+-- --------------------------------------------------------
+
+--
+-- Structure de la table `AWOR_Liste`
+--
+
+DROP TABLE IF EXISTS `AWOR_Liste`;
+CREATE TABLE IF NOT EXISTS `AWOR_Liste` (
+ `idL` int(11) NOT NULL auto_increment,
+ `libelleL` varchar(50) NOT NULL,
+ `estPrivee` set('oui','non') NOT NULL default 'oui',
+ `idP_Createur` int(11) default NULL,
+ PRIMARY KEY (`idL`)
+);
+
+-- --------------------------------------------------------
+
+--
+-- Structure de la table `AWOR_Personne`
+--
+
+DROP TABLE IF EXISTS `AWOR_Personne`;
+CREATE TABLE IF NOT EXISTS `AWOR_Personne` (
+ `idP` int(11) NOT NULL auto_increment,
+ `courrielP` varchar(50) NOT NULL,
+ `loginP` varchar(50) default NULL,
+ `nomP` varchar(50) NOT NULL,
+ `prenomP` varchar(50) NOT NULL,
+ `estAdmin` set('oui','non') NOT NULL default 'non',
+ `methodeAuth` set('pop','webetud','bypass') NOT NULL default 'pop',
+ PRIMARY KEY (`idP`),
+ UNIQUE KEY `loginP` (`loginP`),
+ UNIQUE KEY `courrielP` (`courrielP`)
+);
+
+-- --------------------------------------------------------
+
+--
+-- Structure de la table `AWOR_Repondre`
+--
+
+DROP TABLE IF EXISTS `AWOR_Repondre`;
+CREATE TABLE IF NOT EXISTS `AWOR_Repondre` (
+ `idR` int(11) NOT NULL,
+ `idP` int(11) NOT NULL,
+ `commentaireReponse` varchar(500) default NULL,
+ PRIMARY KEY (`idR`,`idP`)
+);
+
+-- --------------------------------------------------------
+
+--
+-- Structure de la table `Reunion`
+--
+
+DROP TABLE IF EXISTS `AWOR_Reunion`;
+CREATE TABLE IF NOT EXISTS `AWOR_Reunion` (
+ `idR` int(11) NOT NULL auto_increment,
+ `objetR` varchar(80) NOT NULL,
+ `ordreJourR` varchar(250),
+ `lieuR` varchar(50),
+ `remarquesR` varchar(500),
+ `montrerDispoR` set('oui','non') NOT NULL default 'non',
+ `estAnnulee` set('oui','non') NOT NULL default 'non',
+ `idP_Orga` int(11) NOT NULL,
+ `idC_Fixe` int(11) default NULL,
+ `idL` int(11) default NULL,
+ PRIMARY KEY (`idR`)
+);
diff --git a/beta_old1/app/install/jeu_essai.sql b/beta_old1/app/install/jeu_essai.sql
new file mode 100644
index 0000000..889d4f6
--- /dev/null
+++ b/beta_old1/app/install/jeu_essai.sql
@@ -0,0 +1,2 @@
+-- phpMyAdmin SQL Dump
+-- TODO !!
diff --git a/beta_old1/app/listes.php b/beta_old1/app/listes.php
new file mode 100644
index 0000000..8a6e40d
--- /dev/null
+++ b/beta_old1/app/listes.php
@@ -0,0 +1,48 @@
+<?php
+require('include/ludo/session_verify.inc.php');
+require_once('include/connect.inc.php');
+require_once('include/ludo/html_elements.inc.php');
+require_once('include/ludo/fonctions.inc.php');
+
+
+require_once('include/je.inc.php');
+require_once('include/ju.inc.php');
+
+if ( isset($_REQUEST['action']) )
+{
+ $nom_func = 'traiter_formulaire_' . $_REQUEST['action'];
+ $nom_func();
+}
+
+generate_html_doctype_and_head("Listes");
+
+echo "<body>\n";
+
+generate_html_divs_menu();
+?>
+ <div id="sous_menu">
+ <p class="arbre">
+ &gt; <a href="index.php">Accueil</a>
+ &gt; Listes
+ </p>
+ </div>
+<?php
+generate_html_div_help('help/groupe.hlp');
+?>
+
+<div id="contenu">
+<a href="#" onclick="loadid('poppersonne.php?idP_orga=<?php echo $_SESSION['session_idP']; ?>','poppersonne',true);popon('poppersonne')">Cr&eacute;er une liste</a>
+<br/><br/>
+<?php generate_html_array_list($_SESSION['session_idP']) ?>
+<br/>
+<a href="#" onclick="loadid('poppersonne.php?idP_orga=<?php echo $_SESSION['session_idP']; ?>','poppersonne',true);popon('poppersonne')">Cr&eacute;er une liste</a>
+
+</div>
+
+<div id="poppersonne" class="popup_personne"></div>
+<div id="popdeletelist" class="popup_deletelist"></div>
+<div id="masque"></div>
+<div id="msg"></div>
+<?php generate_html_div_footer() ?>
+</body>
+</html> \ No newline at end of file
diff --git a/beta_old1/app/modele_page.php b/beta_old1/app/modele_page.php
new file mode 100644
index 0000000..e7d555a
--- /dev/null
+++ b/beta_old1/app/modele_page.php
@@ -0,0 +1,56 @@
+<?php
+require('include/ludo/session_verify.inc.php');
+require_once('include/ludo/html_elements.inc.php');
+generate_html_doctype_and_head("Modèle");
+echo "<body>\n";
+generate_html_divs_menu();
+generate_html_div_help();
+?>
+ <div id="contenu">
+ <h1>Page modèle</h1>
+ <h2>Modele de formulaire</h2>
+ <?php echo '<form id="auth" method="post" action="' . $_SERVER['PHP_SELF'] . '">' . "\n"; ?>
+ <div class="aligned">
+ <div>
+ <span class="label">premier champ :</span>
+ <span class="field"><input name="champ1" type="text" size="20" tabindex="1" /></span>
+ </div>
+ <div>
+ <span class="label">deuxieme champ :</span>
+ <span class="field"><input name="champ2" type="text" size="20" tabindex="2" /></span>
+ </div>
+ <div>
+ <span class="label"><input type="reset" value="Vider" /></span>
+ <span class="field"><input type="submit" value="Valider" /></span>
+ </div>
+ </div>
+ <div>
+ <input type="hidden" name="envoi" value="1" />
+<?php if ( isset ($debug) ) { echo ' <input type="hidden" name="debug" value="true" />' . "\n"; } ?>
+ </div>
+ </form>
+ <h2>Appel de la fonction qui génère le tableau personne / créneaux</h2>
+<?php
+require_once('include/ludo/fonctions.inc.php');
+generate_html_array_personnes_crenaux(false);
+?>
+ <h2>Quelques éléments à mettre dans toutes les pages ou au moins certaines</h2>
+<?php
+ generate_html_div_deconnect();
+ generate_html_div_css_chooser();
+?>
+ <h2>Etat des tableaux globaux</h2>
+ <pre>
+<?php
+ echo "\n\$_GLOBAL == " ; print_r($_GLOBAL);
+ //echo "\n\$_SERVER == " ; print_r($_SERVER);
+ echo "\n\$_GET == " ; print_r($_GET);
+ echo "\n\$_POST == " ; print_r($_POST);
+ echo "\n\$_COOKIE == " ; print_r($_COOKIE);
+ echo "\n\$_SESSION == " ; print_r($_SESSION);
+?>
+ </pre>
+ </div>
+</body>
+</html>
+
diff --git a/beta_old1/app/organiser.php b/beta_old1/app/organiser.php
new file mode 100644
index 0000000..2afcbea
--- /dev/null
+++ b/beta_old1/app/organiser.php
@@ -0,0 +1,24 @@
+<?php
+require('include/ludo/session_verify.inc.php');
+require_once('include/ludo/html_elements.inc.php');
+require_once('include/connect.inc.php');
+generate_html_doctype_and_head("Modèle");
+echo "<body>\n";
+generate_html_divs_menu();
+?>
+ <div id="sous_menu">
+ &gt; <a href="index.php">Accueil</a>
+ &gt; <a href="index.php">Réunions</a>
+ &gt; Organiser une réunion
+ </div>
+<?php
+generate_html_div_help();
+echo "<div id=\"contenu\">\n";
+
+include('include/ludo/div_create_or_modif.php');
+?>
+
+</div>
+</body>
+</html>
+
diff --git a/beta_old1/app/popcommentaire.php b/beta_old1/app/popcommentaire.php
new file mode 100644
index 0000000..b585067
--- /dev/null
+++ b/beta_old1/app/popcommentaire.php
@@ -0,0 +1,23 @@
+<?php require_once ('include/connect.inc.php'); ?>
+<h2>Editer votre commentaire</h2>
+<div class="popup_contenu">
+<form id="formcommentaire" method="get" action="">
+<textarea name="txtCommentaire" rows="4" cols="40">
+<?php
+ $requete = "SELECT commentaireReponse FROM Repondre WHERE idP=".$_GET['idP']." AND idR=".$_GET['idR']."";
+ $result = mysql_query($requete);
+ if($result && mysql_num_rows($result) > 0)
+ {
+ $com = mysql_fetch_array($result);
+
+ echo $com['commentaireReponse'];
+ }
+
+?>
+</textarea>
+<br/><br/>
+<?php if (isset($_GET['idR'])) echo '<input type="hidden" name="idR" value="'.$_GET['idR'].'" />' ?>
+<input type="hidden" name="action" value="commentaire" />
+<input type="submit" value="Enregistrer" /><input type="button" value="Fermer" onclick="popoff('popcommentaire')" />
+</form>
+</div> \ No newline at end of file
diff --git a/beta_old1/app/popcreneau.php b/beta_old1/app/popcreneau.php
new file mode 100644
index 0000000..484594b
--- /dev/null
+++ b/beta_old1/app/popcreneau.php
@@ -0,0 +1,90 @@
+<?php
+function generate_html_div_popcreneau($idR)
+{
+ require_once ('include/connect.inc.php');
+ ?>
+ <h2>Cr&eacute;neaux de la r&eacute;union </h2>
+ <div class="popup_contenu">
+ <form id="formcreneau" method="get" action="" onsubmit="return dataListe('creneaux','dataCreneaux');">
+ <table>
+ <tr>
+ <td>Cr&eacute;er un cr&eacute;neau </td>
+ <td>&nbsp;</td>
+ <td>Cr&eacute;neaux</td>
+ </tr>
+ <tr>
+ <td>Date&nbsp;:&nbsp;
+ <select name="day">
+ <?php
+ for ($i=1;$i<=31;$i++) {$i = "0$i"; $i = substr($i,-2); echo "<option value=\"$i\">$i</option>"; }
+ ?>
+ </select>/
+ <select name="month">
+ <?php
+ for ($i=1;$i<=12;$i++) {$i = "0$i"; $i = substr($i,-2); echo "<option value=\"$i\">$i</option>"; }
+ ?>
+ </select>/
+ <select name="year">
+ <?php
+ for ($i=date('Y');$i<=((int)date('Y')+4);$i++) echo "<option value=\"$i\">$i</option>";
+ ?>
+ </select><br />D&eacute;but&nbsp;: &nbsp;
+ <select name="hourStart">
+ <?php
+ for ($i=0;$i<=23;$i++) {$i = "0$i"; $i = substr($i,-2); echo "<option value=\"$i\">$i</option>"; }
+ ?>
+ </select>:
+ <select name="minuteStart">
+ <?php
+ for ($i=0;$i<=59;$i++) {$i = "0$i"; $i = substr($i,-2); echo "<option value=\"$i\">$i</option>"; }
+ ?>
+ </select><br />Fin&nbsp;:&nbsp;
+ <select name="hourEnd">
+ <?php
+ for ($i=0;$i<=23;$i++) {$i = "0$i"; $i = substr($i,-2); echo "<option value=\"$i\">$i</option>"; }
+ ?>
+ </select>:
+ <select name="minuteEnd">
+ <?php
+ for ($i=0;$i<=59;$i++) {$i = "0$i"; $i = substr($i,-2); echo "<option value=\"$i\">$i</option>"; }
+ ?>
+ </select></td>
+ <td><input name="AjouterCreneau" type="button" value="Ajouter" onclick="addcreneau(this.form);"/><br/><br/>
+ <input name="supprimerCreneau" type="button" value="Retirer" onclick="removecreneau(this.form);"/></td>
+ <td><select name="creneaux" size="10" id="creneaux">
+ <?php
+ $result = mysql_query("SELECT UNIX_TIMESTAMP(dateHeure),duree FROM Creneau WHERE idR=".$idR);
+ if (mysql_num_rows($result)>0)
+ {
+ for($i=0;$i<mysql_num_rows($result);$i++)
+ {
+ $row = mysql_fetch_array($result);
+ $date_deb =$row[0];
+ $date_fin = $date_deb + 60 * $row[1];
+ echo '<option value="'.date('Hi',$date_deb).'.'.date('Hi',$date_fin).'.'.date('d.m.Y',$date_deb).'">' . date('H:i',$date_deb) . ' -&gt; ' . date('H:i',$date_fin) . ' ' . date('d/m/Y',$date_deb);
+ }
+ }
+ ?>
+ </select></td></tr></table><br/>
+ <input type="hidden" name="idR" value="<?php echo $idR;?>" />
+ <input type="hidden" name="action" value="valider_creneau" />
+ <input type="submit" value="Valider" /><input type="button" value="Fermer" onclick="popoff('popcreneau')"/>
+ </form>
+ </div>
+<?php
+}
+
+if (isset($_GET['idR']))
+{
+ generate_html_div_popcreneau($_GET['idR']);
+}
+else
+{
+ echo '<div class="popup_contenu">';
+ echo 'Erreur - pas d\'identifiant de r&eacute;union !';
+ echo '<form id="formcreneau" method="get" action="">';
+ echo '<input type="button" value="Fermer" onclick="popoff(\'popcreneau\')"/>';
+ echo '</form>';
+ echo '</div>';
+}
+?>
diff --git a/beta_old1/app/popdeletelist.php b/beta_old1/app/popdeletelist.php
new file mode 100644
index 0000000..4ccadc9
--- /dev/null
+++ b/beta_old1/app/popdeletelist.php
@@ -0,0 +1,20 @@
+<?php require_once('include/connect.inc.php'); ?>
+<h2>D&eacute;sirer vous supprimer cette liste ?</h2>
+<div class="popup_contenu">
+<?php
+ $result = mysql_query("SELECT libelleL FROM Liste WHERE idL=".$_GET['idL']);
+ if (mysql_num_rows($result)>0)
+ {
+ $row = mysql_fetch_array($result);
+ echo "Libell&eacute; : " . $row[0] . "<br/><br/>";
+ }
+ echo '<form id="formdelete" method="get" action="">';
+ echo '<input type="hidden" name="action" value="delete_list" />';
+ echo '<input type="hidden" name="idL" value="'.$_GET['idL'].'" />';
+ echo '<input type="submit" value="Supprimer"/>';
+ echo '<input type="button" value="Annuler" onclick="popoff(\'popdeletelist\')"/>';
+ echo '</form>';
+?>
+</div>
+
+
diff --git a/beta_old1/app/popfixer.php b/beta_old1/app/popfixer.php
new file mode 100644
index 0000000..a1232b0
--- /dev/null
+++ b/beta_old1/app/popfixer.php
@@ -0,0 +1,42 @@
+<?php
+ if (isset($_GET['idC']))
+ {
+ include ('include/connect.inc.php');
+ echo '<h2>D&eacute;sirez-vous fixer ce cr&eacute;neau ?</h2>';
+ echo '<div class="popup_contenu">';
+ $result = mysql_query("SELECT UNIX_TIMESTAMP(dateHeure),duree FROM Creneau WHERE idC=".$_GET['idC']);
+ if (mysql_num_rows($result)>0)
+ {
+ for($i=0;$i<mysql_num_rows($result);$i++)
+ {
+ $row = mysql_fetch_array($result);
+ $date_deb =$row[0];
+ $date_fin = $date_deb + 60 * $row[1];
+ echo 'Le ' . date('d/m/y', $date_deb) . ' de ' . date('H:i', $date_deb) . ' &agrave; ' . date('H:i', $date_fin);
+ }
+ }
+
+ echo '<br/>';
+ echo '<em>(Il vous sera impossible par la suite de modifier les informations concernant la r&eacute;union)</em>';
+ echo '<br/>';echo '<br/>';
+ //~ echo '<form id="formfixer" method="get" action="'.$_SERVER['PHP_SELF'].'">';
+ echo '<form id="formfixer" method="get" action="">';
+ echo '<input type="hidden" name="action" value="fixer_creneau" />';
+ echo '<input type="hidden" name="idR" value="'.$_GET['idR'].'" />';
+ echo '<input type="hidden" name="idC" value="'.$_GET['idC'].'" />';
+ echo '<input type="submit" value="Valider"/>';
+ echo '<input type="button" value="Annuler" onclick="popoff(\'popfixer\')"/>';
+ echo '</form>';
+ echo '</div>';
+ }
+ else
+ {
+ echo '<div class="popup_contenu">';
+ echo 'Erreur - pas d\'identifiant de cr&eaneau !';
+ echo '<form id="formfixer" method="get" action="">';
+ echo '<input type="button" value="Fermer" onclick="popoff(\'popfixer\')"/>';
+ echo '</form>';
+ echo '</div>';
+ }
+?>
+
diff --git a/beta_old1/app/popnewlist.php b/beta_old1/app/popnewlist.php
new file mode 100644
index 0000000..d8d1010
--- /dev/null
+++ b/beta_old1/app/popnewlist.php
@@ -0,0 +1,3 @@
+<!-- Sert a rien !! -->
+
+
diff --git a/beta_old1/app/poppersonne.php b/beta_old1/app/poppersonne.php
new file mode 100644
index 0000000..3335c6b
--- /dev/null
+++ b/beta_old1/app/poppersonne.php
@@ -0,0 +1,112 @@
+<?php require_once('include/connect.inc.php'); ?>
+<h2><?php
+//Pour le choix du Titre :
+if(isset($_GET['idR'])) echo "Participants de la r&eacute;union";
+ else
+ if (isset($_GET['idL'])) echo "Modification de la liste" ; else echo "Cr&eacute;ation d'une liste";
+?></h2>
+<div class="popup_contenu">
+
+<?php
+//Pour la création de la liste et initialisation du propriétaire
+echo "<form id=\"formpersonne\" action=\"\" method=\"get\" onsubmit=\"return (";
+$isOwner= false;
+
+if (!isset($_GET['idL']))
+{
+ echo "(true==(isNotEmpty('listname') & ";
+ echo "dataListe('participants','dataParticipants'))));\">";
+ echo "Nom de la liste : <input type=\"text\" name=\"listname\" id=\"listname\" />\n";
+ echo "&nbsp;est priv&eacute;e : <input type=\"checkbox\" name=\"isPrivate\" checked/><br/><br/>\n";
+ echo "<input type=\"hidden\" name=\"idP\" value=\"".$_GET['idP_orga']."\" />\n";
+ $isOwner = true;
+}
+else
+{
+ echo "dataListe('participants','dataParticipants'));\">";
+ if (isset($_GET['idR'])) $req = "SELECT * FROM Liste L,Reunion R WHERE (L.idP_Createur=".$_GET['idP_orga']." OR R.idP_Orga=".$_GET['idP_orga'].") AND R.idL=L.idL";
+ else $req = "SELECT * FROM Liste L,Reunion R WHERE L.idL=".$_GET['idL']." AND L.idP_Createur=".$_GET['idP_orga'];
+ $result = mysql_query($req);
+ if (mysql_num_rows($result)>0)
+ {
+ $isOwner = true;
+ }
+}
+
+?>
+<table>
+<tr>
+<td>Contacts disponibles </td>
+<td>&nbsp;</td>
+<td>Participants </td>
+</tr>
+<tr>
+<td>
+<select name="listeDispo" id="listeDispo" onChange="loadlist('poppersonneliste.php?idL=','listeDispo','divListe');" <?php if (!$isOwner) echo ' disabled' ;?>>
+<option value="None">Choisir ...</option>
+<option value="Tous">Tous</option>
+<?php
+ $req = "SELECT idL,libelleL,estPrivee FROM Liste WHERE (idP_Createur=".$_GET['idP_orga']." OR estPrivee='non')";
+ if (isset($_GET['idL'])) $req .= " AND idL <>".$_GET['idL'];
+ $req .= " ORDER BY estPrivee";
+ $result = mysql_query($req);
+ if (mysql_num_rows($result)>0)
+ {
+ for($i=0;$i<mysql_num_rows($result);$i++)
+ {
+ $row = mysql_fetch_array($result);
+ echo '<option value="'.$row[0].'">';
+ echo $row[1];
+ echo '</option>';
+ }
+ }
+?>
+</select>
+</td>
+<td>&nbsp;</td>
+<td>&nbsp;</td>
+</tr>
+<tr>
+<td>
+<div id="divListe">
+</div>
+</td>
+<td>
+<input name="AjouterParticipant" type="button" id="AjouterParticipant" value="Ajouter" onclick="addPers(this.form);" <?php if (!$isOwner) echo ' disabled' ;?>/><br/>
+<br/>
+<input name="AjouterTous" type="button" id="AjouterTous" value="Ajouter Tous" onclick="addAllPers(this.form);" <?php if (!$isOwner) echo ' disabled' ;?> /><br/>
+<br/>
+<input name="supprimerParticipant" type="button" id="supprimerParticipant" value="Retirer" onclick="removePers(this.form);" <?php if (!$isOwner) echo ' disabled' ;?>/>
+</td>
+<td>
+<select name="participants" size="10" id="participants">
+<?php
+ if (isset($_GET['idL']))
+ {
+ $req = "SELECT P.idP,P.courrielP,P.nomP,P.prenomP FROM Personne P,Appartenir A WHERE P.idP=A.idP AND A.idL=".$_GET['idL'];
+ $result = mysql_query($req);
+ if (mysql_num_rows($result)>0)
+ {
+ for($i=0;$i<mysql_num_rows($result);$i++)
+ {
+ $row = mysql_fetch_array($result);
+ echo '<option value="'.$row[0].'">';
+ if ($row[2] !== "" & $row[3] !== "") echo $row[2] . " " . $row[3]; else echo $row[1];
+ echo '</option>';
+ }
+ }
+ }
+?>
+</select>
+</td>
+</tr>
+</table>
+<br/>
+<input type="text" name="courriel" id="courriel" value="" size="30" <?php if (!$isOwner) echo ' disabled' ;?>/><input type="button" value="inscrire" onclick="newPers(this.form);" <?php if (!$isOwner) echo ' disabled' ;?>/>
+<br/><br/>
+<?php if (isset($_GET['idL'])) echo '<input type="hidden" name="idL" value="'.$_GET['idL'].'" />'; ?>
+<?php if (isset($_GET['idR'])) echo '<input type="hidden" name="idR" value="'.$_GET['idR'].'" />'; ?>
+<input type="hidden" name="action" value="valider_modif_personnes" />
+<input type="submit" name="Submit" value="Valider" /><input type="button" value="Fermer" onclick="popoff('poppersonne');" />
+</form>
+</div>
diff --git a/beta_old1/app/poppersonneliste.php b/beta_old1/app/poppersonneliste.php
new file mode 100644
index 0000000..6f684a7
--- /dev/null
+++ b/beta_old1/app/poppersonneliste.php
@@ -0,0 +1,27 @@
+<?php
+ require_once 'include/connect.inc.php';
+ if ($_GET['idL'] != "None")
+ {
+ $req = "SELECT P.idP , P.courrielP , P.nomP , P.prenomP FROM Personne P";
+ if ($_GET['idL'] != "Tous") {$req=$req.",Appartenir A WHERE P.idP=A.idP AND A.idL=".$_GET['idL'];}
+ $result = mysql_query($req) ;
+ echo '<select name="contactDispo" size="10" id="contactDispo">';
+
+ if (mysql_num_rows($result)>0)
+ {
+ for($i=0;$i<mysql_num_rows($result);$i++)
+ {
+ $row = mysql_fetch_array($result);
+ echo '<option value="'.$row[0].'" onDblClick="addPers(this.form);">';
+ if ($row[2] !== "" & $row[3] !== "") echo $row[2] . " " . $row[3]; else echo $row[1];
+ echo '</option>';
+ }
+ }
+ echo '</select>';
+ }
+ else
+ {
+ echo "&nbsp;";
+ }
+
+?>
diff --git a/beta_old1/app/profil.php b/beta_old1/app/profil.php
new file mode 100644
index 0000000..6277d50
--- /dev/null
+++ b/beta_old1/app/profil.php
@@ -0,0 +1,59 @@
+<?php
+require('include/ludo/session_verify.inc.php');
+require_once('include/ludo/html_elements.inc.php');
+require_once('include/connect.inc.php');
+require_once('include/ju.inc.php');
+if ( isset($_REQUEST['action']) )
+{
+ $nom_func = 'traiter_formulaire_' . $_REQUEST['action'];
+ $nom_func();
+}
+generate_html_doctype_and_head("Modèle");
+
+echo "<body>\n";
+generate_html_divs_menu();
+?>
+ <div id="sous_menu">
+ <p class="arbre">
+ &gt; <a href="index.php">Accueil</a>
+ &gt; Administration du profil
+ </p>
+ </div>
+<?php
+generate_html_div_help();
+echo "<div id=\"contenu\">\n";
+$idP = $_SESSION['session_idP'];
+if ( isset( $_SESSION['session_prenomP'] ) && isset( $_SESSION['session_prenomP'] ) )
+{
+ $nom=$_SESSION['session_prenomP'] . ' ' . $_SESSION['session_nomP'];
+}
+else
+{
+ $nom = $_SESSION['session_loginP'];
+}
+$resultat = mysql_query("SELECT * FROM Personne WHERE idP = '".$_SESSION['session_idP']."'");
+if($resultat != false)
+{
+ $p = mysql_fetch_array($resultat);
+ echo "<form method=\"post\" action=\"profil.php\" onSubmit=\"return verifProfil()\" >\n";
+ echo "<table>\n";
+ echo "<tr><td>Methode d'authentification : </td><td>\n<select name=\"methodeAuth\">\n";
+ if($p["methodeAuth"] == "webetud") echo "<option value=\"webetud\" selected=\"selected\">Webetud</option>\n"; else echo "<option value=\"webetud\">Webetud</option>\n";
+ if($p["methodeAuth"] == "pop") echo "<option value=\"pop\" selected=\"selected\">POP3</option>\n"; else echo "<option value=\"pop\">POP3</option>\n";
+ echo "</select></td></tr>\n";
+ echo "<tr><td>Votre login :</td><td><input type=\"text\" name=\"loginP\" id=\"loginP\" value=\"".$p["loginP"]."\"/></td></tr>\n";
+ echo "<tr><td>Votre adresse mail :</td><td><input type=\"text\" name=\"courrielP\" id=\"courrielP\" value=\"".$p["courrielP"]."\"/></td></tr>\n";
+ echo "<tr><td>Votre nom :</td><td><input type=\"text\" name=\"nomP\" id=\"nomP\" value=\"".$p["nomP"]."\"/></td></tr>\n";
+ echo "<tr><td>Votre prenom :</td><td><input type=\"text\" name=\"prenomP\" id=\"prenomP\" value=\"".$p["prenomP"]."\"/></td></tr>\n";
+ echo "<tr><td colspan=\"2\"><input type=\"submit\" /></td></tr>\n";
+ echo "</table>\n";
+ echo "<input type=\"hidden\" name=\"action\" value=\"maj_profil\" />\n";
+ echo "</form>\n";
+ echo "</div>\n";
+}
+if ( isset ($errmsg) ) generate_html_div_errmsg($errmsg);
+?>
+<div id="msg"></div>
+</body>
+</html>
+
diff --git a/beta_old1/app/script.js b/beta_old1/app/script.js
new file mode 100644
index 0000000..2c14563
--- /dev/null
+++ b/beta_old1/app/script.js
@@ -0,0 +1,341 @@
+function isNotEmpty (idInput)
+{
+ if (document.getElementById(idInput).value.length > 0) { return (true);} else {return (false);}
+}
+
+function addPers(form)
+{
+ if(form.contactDispo)
+ {
+ if(form.contactDispo.options.selectedIndex>=0)
+ {
+ var oValue = form.contactDispo.options[form.contactDispo.options.selectedIndex].value;
+
+ var exist = false;
+ var i = 0;
+ while (i<form.participants.options.length && !exist) { if (form.participants.options[i].value == oValue) exist = true; i=i+1;}
+
+ if (!exist)
+ {
+ var oText = form.contactDispo.options[form.contactDispo.options.selectedIndex].text;
+ var o = new Option(oText,oValue);
+ form.participants.options[form.participants.options.length]=o;
+ }
+ }
+ }
+}
+
+function switchCSS()
+{
+
+ alert ( "On change de CSS !");
+ var listCSS = document.getElementById('switcherCSS');
+ if (listCSS)
+ {
+ if (listCSS.options.selectedIndex>=0)
+ {
+ alert ( "On passe au css :" + listCSS.options[listCSS.options.selectedIndex].value);
+ setActiveStyleSheet(listCSS.options[listCSS.options.selectedIndex].value);
+ }
+ }
+
+}
+
+function addAllPers(form)
+{
+ if(form.contactDispo)
+ {
+ for (var j=0;j<form.contactDispo.options.length;j++)
+ {
+ var oValue = form.contactDispo.options[j].value;
+ var exist = false;
+ var i = 0;
+
+ while (i<form.participants.options.length && !exist) { if (form.participants.options[i].value == oValue) exist = true; i=i+1;}
+
+ if (!exist)
+ {
+ var oText = form.contactDispo.options[j].text;
+ var o = new Option(oText,oValue);
+ form.participants.options[form.participants.options.length]=o;
+ }
+ }
+ }
+}
+
+function newPers(form)
+{
+ if (verifMail(form.courriel.value))
+ {
+ var oValue = form.courriel.value;
+
+ var exist = false;
+ var i = 0;
+ while (i<form.participants.options.length && !exist) { if (form.participants.options[i].value == oValue) exist = true; i=i+1;}
+
+ if (!exist)
+ {
+ var oText = form.courriel.value;
+ var o = new Option(oText,oValue);
+ form.participants.options[form.participants.options.length]=o;
+ }
+ }
+ else
+ {
+ alert ("Mail invalide");
+ }
+}
+
+function verifMail(mail)
+{
+ if ((mail.indexOf("@")>=0)&&(mail.indexOf(".")>=0)) return true; else return false;
+}
+
+
+function removePers(form)
+{
+ if (form.participants.options.selectedIndex>=0)
+ {
+ var i = form.participants.options.selectedIndex;
+ form.participants.options[form.participants.options.selectedIndex]=null;
+ if (parseInt(i) > 0) {form.participants.options.selectedIndex=parseInt(i)-1;} else {form.participants.options.selectedIndex=0;}
+ }
+ else
+ {
+ alert("Suppression impossible : aucune ligne sélectionnée");
+ }
+}
+
+function loadid(url,id,isPop) {
+ if (isPop)
+ document.getElementById('msg').innerHTML = "<em>Chargement en cours ...<a href=\"#\" onclick=\"popoff('"+id+"')\" >Fermer</a></em>";
+ else
+ document.getElementById('msg').innerHTML = "<em>Chargement en cours ...</em>";
+
+ document.getElementById(id).innerHTML = "";
+ document.getElementById('msg').style.display='block';
+
+ var http_request = false;
+
+ if (window.XMLHttpRequest) { // Mozilla, Safari,...
+ http_request = new XMLHttpRequest();
+ if (http_request.overrideMimeType) {
+ http_request.overrideMimeType('text/xml');
+ }
+ } else if (window.ActiveXObject) { // IE
+ try {
+ http_request = new ActiveXObject("Msxml2.XMLHTTP");
+ } catch (e) {
+ try {
+ http_request = new ActiveXObject("Microsoft.XMLHTTP");
+ } catch (e) {}
+ }
+ }
+
+ if (!http_request) {
+ alert('Abandon : Impossible de créer une instance XMLHTTP');
+ return false;
+ }
+
+ http_request.onreadystatechange = function(){
+
+ if (http_request.readyState == 4) {
+ if (http_request.status == 200) {
+ document.getElementById(id).innerHTML = http_request.responseText;
+ document.getElementById('msg').style.display='none';
+ document.getElementById('msg').innerHTML = "";
+
+ } else {
+ if (isPop)
+ document.getElementById('msg').innerHTML = "<em>Un probl&egrave;me est survenu ...<a href=\"#\" onclick=\"loadid('"+url+"','"+id+"',true)\" >R&eacute;essayer</a> - <a href=\"#\" onclick=\"popoff('"+id+"')\" >Fermer</a></em>";
+ else
+ document.getElementById('msg').innerHTML = "<em>Un probl&egrave;me est survenu ...<a href=\"#\" onclick=\"loadid('"+url+"','"+id+"',false)\" >R&eacute;essayer</a></em>";
+ }
+ }
+ };
+
+ http_request.open('GET', url, true);
+ http_request.send(null);
+}
+
+function popon (id)
+{
+ var thisPopup = document.getElementById(id);
+ thisPopup.style.display='block';
+ //var thisMasque = document.getElementById('masque');
+ //thisMasque.style.display='block';
+}
+
+function popoff (id)
+{
+ var thisPopup = document.getElementById(id);
+ thisPopup.style.display='none';
+ //var thisMasque = document.getElementById('masque');
+ //thisMasque.style.display='none';
+}
+
+function addcreneau(form)
+{
+ if(form.day.options.selectedIndex>=0 && form.month.options.selectedIndex>=0 && form.year.options.selectedIndex>=0 && form.hourStart.options.selectedIndex>=0 && form.minuteStart.options.selectedIndex>=0 && form.hourEnd.options.selectedIndex>=0 && form.minuteEnd.options.selectedIndex>=0)
+ {
+ if (verifDate(form.day.options[form.day.options.selectedIndex].value,form.month.options[form.month.options.selectedIndex].value,form.year.options[form.year.options.selectedIndex].value))
+ {
+ //Création de la valeur
+ var oValue = form.hourStart.options[form.hourStart.options.selectedIndex].value + form.minuteStart.options[form.minuteStart.options.selectedIndex].value + "." + form.hourEnd.options[form.hourEnd.options.selectedIndex].value + form.minuteEnd.options[form.minuteEnd.options.selectedIndex].value;
+ oValue = oValue + "." + form.day.options[form.day.options.selectedIndex].value + "." + form.month.options[form.month.options.selectedIndex].value + "." + form.year.options[form.year.options.selectedIndex].value;
+
+ //Test si la valeur est déja dans la liste
+ var exist = false;
+ var i = 0;
+ while (i<form.creneaux.options.length && !exist) { if (form.creneaux.options[i].value == oValue) exist = true; i=i+1;}
+
+ //Création du texte et de l'option et insertion de l'option si la valeur n'a pas été trouvée
+ if (!exist)
+ {
+ var oText = form.hourStart.options[form.hourStart.options.selectedIndex].value + ":" + form.minuteStart.options[form.minuteStart.options.selectedIndex].value + " -> " + form.hourEnd.options[form.hourEnd.options.selectedIndex].value + ":" + form.minuteEnd.options[form.minuteEnd.options.selectedIndex].value;
+ oText = oText + " " + form.day.options[form.day.options.selectedIndex].value + "/" + form.month.options[form.month.options.selectedIndex].value + "/" + form.year.options[form.year.options.selectedIndex].value;
+ var o = new Option(oText,oValue);
+ form.creneaux.options[form.creneaux.options.length]=o;
+ }
+ }
+ }
+}
+
+function removecreneau(form)
+{
+ if (form.creneaux.options.selectedIndex>=0)
+ {
+ var i = form.creneaux.options.selectedIndex;
+ form.creneaux.options[form.creneaux.options.selectedIndex]=null;
+ if (parseInt(i) > 0) {form.creneaux.options.selectedIndex=parseInt(i)-1;} else {form.creneaux.options.selectedIndex=0;}
+ }
+ else
+ {
+ alert("Suppression impossible : aucune ligne sélectionnée");
+ }
+}
+
+function dataListe(idSelect,idInput)
+{
+ var liste = document.getElementById(idSelect);
+ if (liste)
+ {
+ for (var i=0;i<liste.options.length;i++)
+ {
+ var newInput = document.createElement("input");
+/* newInput.setAttribute("type", "hidden");
+ newInput.setAttribute("name", (idInput+"["+i+"]"));
+ newInput.setAttribute("value", liste.options[i].value);*/
+ newInput.type = "hidden";
+ newInput.name = idInput+"["+i+"]";
+ newInput.value = liste.options[i].value;
+ liste.form.appendChild(newInput);
+ }
+ return (true);
+ }
+ else
+ {
+ return (false);
+ }
+
+}
+function verifDate(day,month,year)
+{
+ var a= year;
+ var m= month;
+ var d= day;
+ var ok=true;
+
+ var date2=new Date(a,m-1,d);
+ d2=date2.getDate();
+ m2=date2.getMonth()+1;
+ a2=date2.getFullYear();
+ if (a2<=100) {a2=1900+a2} //Pour depasser 2000
+ if ( (d!=d2)||(m!=m2)||(a!=a2) )
+ {
+ alert("Cette date n'existe pas !");
+ ok=false;
+ }
+ return (ok);
+}
+function loadlist(url,id,idListe)
+{
+
+ if (document.getElementById(id))
+ {
+ loadid((url+document.getElementById(id).options[document.getElementById(id).options.selectedIndex].value),idListe,false);
+ }
+}
+//*************************************************************************//
+// Formulaire profil
+//*************************************************************************//
+function verifProfil()
+{
+ //return(true==(isNotEmpty('nomP')) && true==(isNotEmpty('prenomP')) && true==(isNotEmpty('loginP')) && true==(isNotEmpty('courrielP')));
+ if(false==isNotEmpty('nomP')) { alert("Saisissez votre nom avant de valider."); return false;}
+ if(false==isNotEmpty('prenomP')) { alert("Saisissez votre prenom avant de valider."); return false;}
+ if(false==isNotEmpty('courrielP')) { alert("Saisissez votre courriel avant de valider."); return false;}
+ if(false==isNotEmpty('loginP')) { alert("Saisissez votre login avant de valider."); return false;}
+ return true;
+}
+
+//*************************************************************************//
+// Switcher CSS
+//*************************************************************************//
+function setActiveStyleSheet(title) {
+ var i, a, main;
+ for(i=0; (a = document.getElementsByTagName("link")[i]); i++) {
+ if(a.getAttribute("rel").indexOf("style") != -1 && a.getAttribute("title")) {
+ a.disabled = true;
+ if(a.getAttribute("title") == title) a.disabled = false;
+ }
+ }
+}
+function getActiveStyleSheet() {
+ var i, a;
+ for(i=0; (a = document.getElementsByTagName("link")[i]); i++) {
+ if(a.getAttribute("rel").indexOf("style") != -1 && a.getAttribute("title") && !a.disabled) return a.getAttribute("title");
+ }
+ return null;
+}
+function getPreferredStyleSheet() {
+ var i, a;
+ for(i=0; (a = document.getElementsByTagName("link")[i]); i++) {
+ if(a.getAttribute("rel").indexOf("style") != -1
+ && a.getAttribute("rel").indexOf("alt") == -1
+ && a.getAttribute("title")
+ ) return a.getAttribute("title");
+ }
+ return null;
+}
+function createCookie(name,value,days) {
+ if (days) {
+ var date = new Date();
+ date.setTime(date.getTime()+(days*24*60*60*1000));
+ var expires = "; expires="+date.toGMTString();
+ }
+ else expires = "";
+ document.cookie = name+"="+value+expires+"; path=/";
+}
+function readCookie(name) {
+ var nameEQ = name + "=";
+ var ca = document.cookie.split(';');
+ for(var i=0;i < ca.length;i++) {
+ var c = ca[i];
+ while (c.charAt(0)==' ') c = c.substring(1,c.length);
+ if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
+ }
+ return null;
+}
+window.onload = function(e) {
+ var cookie = readCookie("aworcustom_css");
+ var title = cookie ? cookie : getPreferredStyleSheet();
+ setActiveStyleSheet(title);
+}
+window.onunload = function(e) {
+ var title = getActiveStyleSheet();
+ createCookie("aworcustom_css", title, 365);
+}
+var cookie = readCookie("aworcustom_css");
+var title = cookie ? cookie : getPreferredStyleSheet();
+setActiveStyleSheet(title); \ No newline at end of file
diff --git a/beta_old1/app/sendmail.php b/beta_old1/app/sendmail.php
new file mode 100644
index 0000000..e62a4a5
--- /dev/null
+++ b/beta_old1/app/sendmail.php
@@ -0,0 +1,196 @@
+<?php
+require('include/ludo/session_verify.inc.php');
+require_once('include/ludo/html_elements.inc.php');
+require_once('include/connect.inc.php');
+
+
+
+generate_html_doctype_and_head("Envoi de courriel");
+echo "<body>\n";
+generate_html_divs_menu();
+?>
+ <div id="sous_menu">
+ <p class="arbre">
+ &gt; <a href="index.php">Accueil</a>
+ &gt; <a href="index.php">R&eacute;unions</a>
+ &gt; Envoi de courriel
+ </p>
+ </div>
+<?php generate_html_div_help();
+if( isset($_POST['idR']) )
+{
+ $idR=addslashes($_POST['idR']);
+}
+else
+{
+?>
+ <div id="errmsg">
+ Erreur lors de l'émission de l'email : Paramètre manquant ou érroné
+ </div></body></html>
+<?php
+ exit();
+}
+
+if( isset($_POST['envoi']) )
+{
+ include 'include/ludo/config.inc.php';
+
+ if ( !isset($_POST['msgObject']) || !isset($_POST['msgText']) || !is_array($_POST['dataParticipants']) )
+ {
+ $errmsg = "Erreur lors de l'émission de l'email : Paramètre manquant ou érroné";
+ }
+ else
+ {
+ if ( !isset($CONFIG['automatedMail']) )
+ {
+ $errmsg = "Erreur lors de l'émission de l'email : Erreur de configuration par l'administrateur";
+ }
+ else
+ {
+ // Potentiellement dangereux...
+ $query='SELECT nomP, prenomP, courrielP FROM Personne WHERE idP=\'' . implode("' OR idP='", $_POST['dataParticipants']) . "'";
+ //~ echo " DEBUG : QUERY : $query\n";
+ $result = mysql_query($query);
+ if ( ! $result )
+ {
+ $errmsg = "Erreur lors de l'émission de l'email : Erreur de base de données";
+ }
+ else
+ {
+ $to=array();
+ while ( list($nomP, $prenomP, $courrielP) = mysql_fetch_row($result) )
+ {
+ $to[]="$nomP $prenomP <$courrielP>";
+ }
+ $to=implode(', ',$to);
+
+
+ if ( ! mail ( $to, urldecode($_POST['msgObject']), wordwrap(urldecode($_POST['msgText']),70), 'From: ' . $CONFIG['automatedMail'] . "\r\n" ) )
+ {
+ $errmsg = "Erreur lors de l'émission de l'email : Erreur inconnue";
+ }
+ }
+ }
+ }
+
+ if ( isset($errmsg) )
+ {
+ echo '<div id="errmsg">' . $errmsg .'</div></body></html>';
+ }
+ else
+ {
+ echo '<div id="contenu">Le courriel à bien été envoyé<br />';
+ echo '<a href="details_reunion.php?idR=' . $idR . '">Retour au détail de la réunion</a></div></body></html>';
+ }
+ exit();
+}
+
+
+$result = mysql_query("SELECT idL FROM Reunion WHERE idR='$idR'");
+if (mysql_num_rows($result)===1)
+{
+ list($idL) = mysql_fetch_array($result);
+}
+else
+{
+ $errmsg="";
+}
+
+
+ if ( isset($errmsg) )
+ {
+ echo '<div id="errmsg">' . $errmsg .'</div></body></html>';
+ exit();
+ }
+
+?>
+
+ <div id="contenu">
+ <form id="formmail" action="sendmail.php" method="post" onsubmit="return dataListe('participants','dataParticipants');">
+ <table>
+ <tbody>
+ <tr>
+ <td>Contacts disponibles</td>
+ <td>&nbsp;</td>
+ <td>Destinataires</td>
+ </tr>
+ <tr>
+ <td>
+ <select name="contactDispo" size="10" id="contactDispo">
+<?php
+ $personnes = array();
+ $req = 'SELECT P.idP , P.courrielP , P.nomP , P.prenomP FROM Personne P, Appartenir A WHERE P.idP=A.idP AND A.idL=' . $idL;
+ $result = mysql_query($req) ;
+
+ if (mysql_num_rows($result)>0)
+ {
+ for($i=0;$i<mysql_num_rows($result);$i++)
+ {
+ list($idP, $courrielP, $nomP, $prenomP) = mysql_fetch_array($result);
+ $personnes[$idP]=array($courrielP, $nomP, $prenomP);
+ echo '<option value="'.$idP.'" ondblclick="addPers(this.form);">';
+ echo $nomP . " " . $prenomP;
+ echo "</option>\n";
+ }
+ }
+
+?>
+ </select>
+ </td>
+ <td>
+ <input name="AjouterParticipant" id="AjouterParticipant" value="Ajouter" onclick="addPers(this.form);" type="button" />
+ <br />
+ <br />
+ <input name="supprimerParticipant" id="supprimerParticipant" value="Retirer" onclick="removePers(this.form);" type="button" />
+ </td>
+ <td>
+ <select name="participants" size="10" id="participants">
+<?php
+ foreach( $personnes as $idP=>$p)
+ {
+ if ( isset($_POST['mail_idP' . $idP] ) )
+ {
+ echo '<option value="'.$idP.'">';
+ echo $p[1] . " " . $p[2];
+ echo "</option>\n";
+ }
+ }
+?>
+ </select>
+ </td>
+ </tr>
+ </tbody>
+ </table>
+ <div>
+ Modèle :&nbsp;
+<?php
+ echo '<select name="modelsList" id="modelsList" onchange="loadlist(\'include/ludo/mail_textarea.php?idR=';
+ echo $idR . "&amp;model=','modelsList','divMsg');\">\n";
+?>
+ <option value="empty">Vierge</option>
+ <option value="cree">Nouvelle Réunion</option>
+ <option value="modif">Réunion modifiée</option>
+ <option value="annul">Réunion annulée</option>
+ <option value="fixee">Réunion fixée</option>
+ </select>
+ </div>
+ <div>
+ Objet :&nbsp;<input name="msgObject" type="text" size="40" value="AWOR : Courriel de notification" />
+ </div>
+ <div id='divMsg'>
+<?php include 'include/ludo/mail_textarea.php'; ?>
+ </div>
+ <div>
+ <?php
+ echo '<input name="idR" type="hidden" value="' . $idR . '" />' . "\n";
+ ?>
+ <input name="envoi" type="hidden" value="1" />
+ <input type="submit" value="Envoyer" />
+ </div>
+ </form>
+ </div>
+<?php generate_html_div_footer(); ?>
+ <div id="msg"></div>
+</body>
+</html>
+
diff --git a/beta_old1/app/templates/mail_annul.php b/beta_old1/app/templates/mail_annul.php
new file mode 100644
index 0000000..74e0d3d
--- /dev/null
+++ b/beta_old1/app/templates/mail_annul.php
@@ -0,0 +1,12 @@
+<?php
+// Vous pouvez utiliser les variables suivantes pour personnaliser le modèle
+// $objetR, $ordreJourR, $lieuR, $remarquesR
+?>
+Bonjour,
+Une réunion vient d'être annulée sur l'Application Web d'Organisation de Réunion et vous y étiez conviés.
+<?php
+echo "Objet de la réunion : $objetR\n";
+echo "Lieu de la réunion : $lieuR\n";
+echo "Ordre du jour : $ordreJourR\n";
+echo "Remarques : $remarquesR\n";
+?> \ No newline at end of file
diff --git a/beta_old1/app/templates/mail_cree.php b/beta_old1/app/templates/mail_cree.php
new file mode 100644
index 0000000..cd18c89
--- /dev/null
+++ b/beta_old1/app/templates/mail_cree.php
@@ -0,0 +1,13 @@
+<?php
+// Vous pouvez utiliser les variables suivantes pour personnaliser le modèle
+// $objetR, $ordreJourR, $lieuR, $remarquesR
+?>
+Bonjour,
+Une réunion vient d'être ajoutée sur l'Application Web d'Organisation de Réunion et vous y êtes conviés.
+Vous pouvez aller consulter le détail de la réunion sur le site, et merci de donner vos disponibilités au plus tôt.
+<?php
+echo "Objet de la réunion : $objetR\n";
+echo "Lieu de la réunion : $lieuR\n";
+echo "Ordre du jour : $ordreJourR\n";
+echo "Remarques : $remarquesR\n";
+?> \ No newline at end of file
diff --git a/beta_old1/app/templates/mail_fixee.php b/beta_old1/app/templates/mail_fixee.php
new file mode 100644
index 0000000..6259f9a
--- /dev/null
+++ b/beta_old1/app/templates/mail_fixee.php
@@ -0,0 +1,14 @@
+<?php
+// Vous pouvez utiliser les variables suivantes pour personnaliser le modèle
+// $objetR, $ordreJourR, $lieuR, $remarquesR
+?>
+Bonjour,
+Une réunion vient d'être fixée sur l'Application Web d'Organisation de Réunion et vous y êtes conviés.
+Vous pouvez aller consulter le détail de la réunion sur le site, noter le créneau retenu,
+et même télécharger le fichier iCal pour synchroniser votre logiciel de calendrier préféré.
+<?php
+echo "Objet de la réunion : $objetR\n";
+echo "Lieu de la réunion : $lieuR\n";
+echo "Ordre du jour : $ordreJourR\n";
+echo "Remarques : $remarquesR\n";
+?> \ No newline at end of file
diff --git a/beta_old1/app/templates/mail_modif.php b/beta_old1/app/templates/mail_modif.php
new file mode 100644
index 0000000..3cbb7b1
--- /dev/null
+++ b/beta_old1/app/templates/mail_modif.php
@@ -0,0 +1,13 @@
+<?php
+// Vous pouvez utiliser les variables suivantes pour personnaliser le modèle
+// $objetR, $ordreJourR, $lieuR, $remarquesR
+?>
+Bonjour,
+Une réunion vient d'être modifiée sur l'Application Web d'Organisation de Réunion et vous y êtes conviés.
+Vous pouvez aller consulter le détail de la réunion sur le site, et merci de donner vos disponibilités au plus tôt si ce n'et déjà fait.
+<?php
+echo "Objet de la réunion : $objetR\n";
+echo "Lieu de la réunion : $lieuR\n";
+echo "Ordre du jour : $ordreJourR\n";
+echo "Remarques : $remarquesR\n";
+?> \ No newline at end of file
diff --git a/beta_old1/app/test.php b/beta_old1/app/test.php
new file mode 100644
index 0000000..ea189ae
--- /dev/null
+++ b/beta_old1/app/test.php
@@ -0,0 +1,8 @@
+<html>
+<body>
+<?php
+include('include/ludo/html_elements.inc.php');
+generate_html_div_footer();
+?>
+</body>
+</html>
diff --git a/beta_old1/app/testGet.php b/beta_old1/app/testGet.php
new file mode 100644
index 0000000..03dc369
--- /dev/null
+++ b/beta_old1/app/testGet.php
@@ -0,0 +1,18 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<title>TestGEt</title>
+<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
+<script type="text/javascript" src="script.js"></script>
+</head>
+
+<body>
+<?php
+ include("include/connect.inc.php");
+ include("popcreneau.php");
+ include("poppersonne.php");
+?>
+<hr/>
+<pre><?php print_r($_GET); ?></pre>
+</body>
+</html>