--- /dev/null
+<?php
+require("auto.prepend.inc.php");
+require("validations.inc.php");
+
+new_skinned_page('alias.tpl', AUTH_MDP);
+
+//Si l'utilisateur vient de faire une damande
+if (isset($_REQUEST['alias']) and isset($_REQUEST['raison'])) {
+ $alias = $_REQUEST['alias'];
+ $raison = $_REQUEST['raison'];
+
+ $page->assign('r_alias', $alias);
+ $page->assign('r_raison', $raison);
+
+ //Quelques vérifications sur l'alias (caractères spéciaux)
+ if (!preg_match( "/^[a-zA-Z0-9\-.]{3,20}$/", $alias)) {
+ $page->assign('error', "L'adresse demandée n'est pas valide.
+ Vérifie qu'elle comporte entre 3 et 20 caractères
+ et qu'elle ne contient que des lettres non accentuées,
+ des chiffres ou les caractères - et .");
+ $page->display('error');
+ } else {
+ //vérifier que l'alias n'est pas déja pris
+ $result = mysql_query("SELECT 1 FROM groupex.aliases WHERE id=12 AND domain LIKE '$alias@melix.net'");
+ if (mysql_num_rows($result)>0) {
+ $page->assign('error', "L'alias $alias@melix.net a déja été attribué.
+ Tu ne peux donc pas l'obtenir.");
+ $page->display('error');
+ }
+
+ //vérifier que l'alias n'est pas déja en demande
+ $it = new ValidateIterator ();
+ while($req = $it->next()) {
+ if ($req->type == "alias" and $req->alias == $alias) {
+ $page->assign('error', "L'alias $alias@melix.net a déja été demandé.
+ Tu ne peux donc pas l'obtenir pour l'instant.");
+ $page->display('error');
+ }
+ }
+
+ //Insertion de la demande dans la base, écrase les requêtes précédente
+ $myalias = new AliasReq($_SESSION['uid'], $alias, $raison);
+ $myalias->submit();
+ $page->assign('success',$alias);
+ $page->display('succes');
+ }
+} else {
+ $page->assign('demande', AliasReq::get_unique_request($_SESSION['uid']));
+
+ //Récupération des alias éventuellement existants
+ $sql = "SELECT domain from groupex.aliases WHERE id=12 AND email like '".$_SESSION['username']."'";
+ if($result = mysql_query($sql)) {
+ list($aliases) = mysql_fetch_row($result);
+ mysql_free_result($result);
+ $page->assign('actuel',$aliases);
+ }
+ $page->display();
+}
+
+?>
width: 98%;
margin-left: 1%;
}
-table.bicol tr.impair {}
-table.bicol tr.pair {
+table.tinybicol {
+ background-color: #eeeeee;
+ color: inherit;
+ border: 1px solid #336699;
+ border-collapse: collapse;
+ width: 70%;
+ margin-left: 15%;
+}
+table.tinybicol tr.impair, table.bicol tr.impair {}
+table.tinybicol tr.pair, table.bicol tr.pair {
background-color: #eeeed0;
color: inherit;
}
-table.bicol th {
+table.tinybicol th, table.bicol th {
background-color: #336699;
color: #FFFFFF;
font-weight: bold;
text-align: center;
vertical-align: middle;
}
-table.bicol td {
+table.tinybicol td, table.bicol td {
color: #000000;
background-color: inherit;
}
-table.bicolrech td {font-weight: bold;}
-table.bicol td.bicoltitre,span.bicoltitre {
- color: #000000;
- background-color: inherit;
- font-weight: bold;
-}
-table.bicol td.bouton { text-align: right; }
/*******************************************
* CHOIX SKINS *
--- /dev/null
+<?php
+
+class AliasReq extends Validate {
+ var $alias;
+ var $raison;
+
+ var $username;
+ var $prenom;
+ var $nom;
+ var $old;
+
+ function AliasReq ($_uid, $_alias, $_raison, $_stamp=0) {
+ $this->Validate($_uid, true, 'alias', $_stamp);
+ $this->alias = $_alias;
+ $this->raison = $_raison;
+
+ $sql = mysql_query("SELECT username,prenom,nom,domain FROM auth_user_md5 as u "
+ . "LEFT JOIN groupex.aliases as a ON (a.email = u.username and a.id = 12) "
+ . "WHERE user_id='".$this->uid."'");
+ list($this->username,$this->prenom,$this->nom,$this->old) = mysql_fetch_row($sql);
+ mysql_free_result($sql);
+ }
+
+ function get_unique_request($uid) {
+ return parent::get_unique_request($uid,'alias');
+ }
+
+ function echo_formu() {
+ require_once("popwin.inc.php");
+?>
+ <form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="POST">
+ <input type="hidden" name="uid" value="<?php echo $this->uid ?>">
+ <input type="hidden" name="type" value="<?php echo $this->type ?>">
+ <input type="hidden" name="stamp" value="<?php echo $this->stamp ?>">
+ <table class="bicol" align="center" cellpadding="4" summary="Demande d'alias">
+ <tr>
+ <td>Demandeur :
+ </td>
+ <td><a href="javascript:x()" onclick="popWin('/x.php?x=<?php echo $this->username; ?>')"><?php
+ echo $this->prenom." ".$this->nom;?></a>
+ <?php if(isset($this->old)) echo "({$this->old})";?>
+ </td>
+ </tr>
+ <tr>
+ <td>Nouvel alias :</td>
+ <td><?php echo $this->alias;?>@melix.net</td>
+ </tr>
+ <tr>
+ <td>Motif :</td>
+ <td style="border: 1px dotted inherit">
+ <?php echo nl2br($this->raison);?>
+ </td>
+ </tr>
+ <tr>
+ <td align="center" valign="middle">
+ <input type="submit" name="submit" value="Accepter">
+ <br /><br />
+ <input type="submit" name="submit" value="Refuser">
+ </td>
+ <td>
+ <p>Raison du refus:</p>
+ <textarea rows="5" cols="74" name=motif></textarea>
+ </td>
+ </tr>
+ </table>
+ </form>
+<?php
+ }
+
+ function handle_formu () {
+ global $no_update_bd;
+ if($no_update_bd) return false;
+
+ if(empty($_REQUEST['submit'])
+ || ($_REQUEST['submit']!="Accepter" && $_REQUEST['submit']!="Refuser"))
+ return false;
+
+ require_once("mailer.inc.php");
+ $mxnet = $this->alias."@melix.net";
+ $mxorg = $this->alias."@melix.org";
+
+ $mymail = new mailer('Equipe Polytechnique.org <validation+melix@polytechnique.org>',
+ $this->username."@polytechnique.org",
+ "[Polytechnique.org/MELIX] Demande de l'alias $mxnet par ".$this->username,
+ false, "validation+melix@m4x.org");
+
+ $message =
+ "Cher(e) camarade,\n".
+ "\n";
+
+ if($_REQUEST['submit']=="Accepter") {
+ $this->commit();
+ $message .=
+ " Les adresses e-mail $mxnet et $mxorg que tu avais demandées viennent".
+ " d'être créées, tu peux désormais les utiliser à ta convenance.\n";
+ } else {
+ $message .=
+ "La demande que tu avais faite pour les alias $mxnet et $mxorg a été refusée.\n";
+ if (!empty($_REQUEST["motif"]))
+ $message .= "\nLa raison de ce refus est : \n".
+ stripslashes($_REQUEST["motif"])."\n";
+ }
+
+ $message .=
+ "\n".
+ "Cordialement,\n".
+ "L'équipe X.org";
+ $message = wordwrap($message,78);
+ $mymail->setBody($message);
+ $mymail->send();
+ echo "<br />Mail envoyé";
+ //Suppression de la demande
+ $this->clean();
+ }
+
+ function commit () {
+ global $no_update_bd;
+ if($no_update_bd) return false;
+
+ mysql_query("DELETE FROM groupex.aliases WHERE id=12 AND email='{$this->username}'");
+ mysql_query("INSERT INTO groupex.aliases SET email='{$this->username}',domain='"
+ .$this->alias."@melix.net',id=12");
+ }
+}
+
+?>
--- /dev/null
+<?php
+
+class EmploiReq extends Validate {
+ var $entreprise;
+ var $titre;
+ var $mail;
+ var $text;
+
+ function EmploiReq($_entreprise,$_titre,$_mail,$_text,$_stamp=0) {
+ $this->Validate(0, false, 'emploi', $_stamp);
+ $this->entreprise = $_entreprise;
+ $this->titre = $_titre;
+ $this->mail = $_mail;
+ $this->text = wordwrap($_text,78);
+ }
+
+ function get_unique_request($uid) {
+ return false; // non unique
+ }
+
+ function echo_formu() {
+?>
+<form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="POST">
+ <input type="hidden" name="uid" value="<?php echo $this->uid; ?>" />
+ <input type="hidden" name="type" value="<?php echo $this->type; ?>" />
+ <input type="hidden" name="stamp" value="<?php echo $this->stamp; ?>" />
+ <table class="bicol" align="center" cellpadding="4" summary="Annonce emploi">
+ <thead>
+ <tr>
+ <th colspan="2">
+ Offre d'emploi
+ </th>
+ </tr>
+ </thead>
+ <tbody>
+ <tr>
+ <td>
+ Demandeur
+ </td>
+ <td>
+ <?php echo htmlentities($this->entreprise).
+ " (".htmlentities($this->mail).")";?>
+ </td>
+ </tr>
+ <tr>
+ <td>
+ Titre du post
+ </td>
+ <td>
+ <?php echo htmlentities($this->titre);?>
+ </td>
+ </tr>
+ <tr>
+ <td colspan="2">
+ <pre><?php echo $this->text;?></pre>
+ </td>
+ </tr>
+ <tr>
+ <td class="bouton" colspan="2">
+ <input type="submit" name="submit" value="Accepter" />
+ <input type="submit" name="submit" value="Refuser" />
+ </td>
+ </tr>
+ </tbody>
+ </table>
+</form>
+<?php
+ }
+
+ function handle_formu() {
+ if (isset($_POST['submit'])) {
+ require("mailer.inc.php");
+ $mymail = new mailer('Equipe Polytechnique.org '
+ .'<validation+recrutement@polytechnique.org>',
+ $this->mail,
+ "[Polytechnique.org/EMPLOI] Annonce emploi : ".$this->entreprise,
+ false, "validation+recrutement@m4x.org");
+
+ $message =
+ "Bonjour,\n".
+ "\n";
+
+ if($_REQUEST['submit']=="Accepter") {
+ require("nntp.inc.php");
+ require("poster.inc.php");
+ $post = new poster(
+ "Annonces recrutement <recrutement@polytechnique.org>",
+ "xorg.pa.emploi",
+ "[OFFRE PUBLIQUE] {$this->entreprise} : {$this->titre}");
+# Ca c'est pour faire les tests (xorg.test)
+# $post = new poster(
+# "Tests annonces recrutement <support@polytechnique.org>",
+# "xorg.test",
+# "[TEST PUBLIC] {$this->entreprise} : {$this->titre}");
+ $post->setbody($this->text
+ ."\n\n\n"
+ ."#############################################################################\n"
+ ." Ce forum n'est pas accessible à l'entreprise qui a proposé cette annonce.\n"
+ ." Pour y répondre, utilise les coordonnées mentionnées dans l'annonce\n"
+ ." elle-même.\n"
+ ."#############################################################################\n"
+ );
+ $post->post();
+ $message .=
+ " L'annonce << {$this->titre} >> ".
+ "a été acceptée par les modérateurs. Elle apparaîtra ".
+ "dans le forum emploi du site\n\n".
+ "Nous vous remercions d'avoir proposé cette annonce.";
+ } else {
+ $message .=
+ " L'annonce << {$this->titre} >> ".
+ "a été refusée par les modérateurs.\n\n";
+ }
+
+ $message .=
+ "\n".
+ "Cordialement,\n".
+ "L'équipe X.org";
+ $message = wordwrap($message,78);
+ $mymail->setBody($message);
+ $mymail->send();
+ $this->clean();
+ }
+ }
+
+ function commit() {
+ }
+}
+
+?>
--- /dev/null
+<?php
+
+class EpouseReq extends Validate {
+ var $epouse;
+ var $alias;
+ var $username;
+
+ var $oldepouse;
+ var $oldalias;
+ var $prenom;
+ var $nom;
+
+ var $homonyme;
+
+ function EpouseReq ($_uid, $_username, $_epouse, $_stamp=0) {
+ $this->Validate($_uid, true, 'epouse', $_stamp);
+ $this->epouse = $_epouse;
+ $this->username = $_username;
+
+ list($prenom) = explode('.',$_username);
+ $this->alias = make_username($prenom,$this->epouse);
+ if(empty($_epouse))
+ $this->alias = "<span class=\"erreur\">suppression</a>";
+
+ $sql = mysql_query("select u1.alias, u1.epouse, u1.prenom, u1.nom"
+ .", IFNULL(u2.username,u3.username)"
+ ." FROM auth_user_md5 as u1"
+ ." LEFT JOIN auth_user_md5 as u2"
+ ." ON(u2.username = '{$this->alias}' and u2.user_id != u1.user_id)"
+ ." LEFT JOIN auth_user_md5 as u3"
+ ." ON(u3.alias = '{$this->alias}' and u3.user_id != u1.user_id)"
+ ." WHERE u1.user_id = ".$this->uid);
+ list($this->oldalias, $this->oldepouse, $this->prenom, $this->nom, $this->homonyme) = mysql_fetch_row($sql);
+ mysql_free_result($sql);
+ }
+
+ function get_unique_request($uid) {
+ return parent::get_unique_request($uid,'epouse');
+ }
+
+ function echo_formu() {
+ require_once("popwin.inc.php");
+?>
+ <form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="POST">
+ <input type="hidden" name="uid" value="<?php echo $this->uid ?>">
+ <input type="hidden" name="type" value="<?php echo $this->type ?>">
+ <input type="hidden" name="stamp" value="<?php echo $this->stamp ?>">
+ <table class="bicol" align="center" cellpadding="4" summary="Demande d'alias d'épouse">
+ <tr>
+ <td>Demandeur :</td>
+ <td><a href="javascript:x()" onclick="popWin('/x.php?x=<?php echo $this->username; ?>')">
+ <?php echo $this->prenom." ".$this->nom;?>
+ </a>
+ <?php if($this->oldepouse) echo "({$this->oldepouse} - {$this->oldalias})";?>
+ </td>
+ </tr>
+ <tr>
+ <td>Épouse :</td>
+ <td><?php echo $this->epouse;?></td>
+ </tr>
+ <tr>
+ <td>Nouvel alias :</td>
+ <td><?php echo $this->alias;?></td>
+ </tr>
+<?php
+ if (!empty($this->homonyme)) {
+?>
+ <tr>
+ <td colspan="2">
+ <span class="erreur">Probleme d'homonymie !
+ <a href="javascript:x()" onclick="popWin('/x.php?x=<?php echo $this->homonyme; ?>')">
+ <?php echo $this->homonyme;?>
+ </a>
+ </span>
+ </td>
+ </tr>
+<?php
+ }
+?>
+ <tr>
+ <td align="center" valign="middle">
+ <input type="submit" name="submit" value="Accepter">
+ <br /><br />
+ <input type="submit" name="submit" value="Refuser">
+ </td>
+ <td>
+ <p>Raison du refus:</p>
+ <textarea rows="5" cols="74" name=motif></textarea>
+ </td>
+ </tr>
+ </table>
+ </form>
+<?php
+ }
+
+ function handle_formu () {
+ global $no_update_bd;
+ if($no_update_bd) return false;
+
+ if(empty($_REQUEST['submit'])
+ || ($_REQUEST['submit']!="Accepter" && $_REQUEST['submit']!="Refuser"))
+ return false;
+
+ $message = "Chère camarade,\n\n";
+
+ if($_REQUEST['submit']=="Accepter") {
+ $message .=
+ " La demande de changement de nom de mariage que tu as demandée vient".
+ " d'être effectuée.\n\n";
+
+ if ($this->oldepouse) {
+ $message .=
+ " Les alias {$this->oldalias}@polytechnique.org et ".
+ "{$this->oldalias}@m4x.org ont été supprimés.\n\n";
+ }
+
+ if ($this->epouse) {
+ $message .=
+ " De plus, les alias ".$this->alias."@polytechnique.org et ".
+ $this->alias."@m4x.org ont été créés.\n\n";
+ }
+ $this->commit();
+ } else { // c'était donc Refuser
+ $message .=
+ "La demande de changement de nom de mariage que tu avais faite a été refusée.\n";
+ if ($_REQUEST["motif"] != "" )
+ $message .= "\nLa raison de ce refus est : \n".
+ stripslashes($_REQUEST["motif"])."\n\n";
+ }
+
+ $message .=
+ "Cordialement,\n".
+ "L'équipe X.org";
+
+ $message = wordwrap($message,78);
+ require_once("mailer.inc.php");
+ $mymail = new mailer('Equipe Polytechnique.org <validation+epouse@polytechnique.org>',
+ $this->username."@polytechnique.org",
+ "[Polytechnique.org/EPOUSE] Changement de nom de mariage de ".$this->username,
+ false, "validation+epouse@m4x.org");
+ $mymail->setBody($message);
+ $mymail->send();
+
+ echo "<br />Mail envoyé";
+ $this->clean();
+ }
+
+ function commit () {
+ global $no_update_bd;
+ if($no_update_bd) return false;
+
+ $alias = ($this->epouse ? $this->alias : "");
+ mysql_query("UPDATE auth_user_md5 set epouse='".$this->epouse."',epouse_soundex='".soundex_fr($this->epouse)."',alias='".$this->alias."' WHERE user_id=".$this->uid);
+ }
+}
+
+?>
--- /dev/null
+<?php
+
+class EvtReq extends Validate {
+ var $evtid;
+ var $titre;
+ var $texte;
+ var $pmin;
+ var $pmax;
+ var $peremption;
+ var $comment;
+
+ var $username;
+ var $promo;
+ var $nom;
+ var $prenom;
+
+ function EvtReq($_evtid,$_titre,$_texte,$_pmin,$_pmax,$_peremption,
+ $_comment,$_uid,$_stamp=0) {
+ $this->Validate($_uid, false, 'evts', $_stamp);
+ $this->evtid = $_evtid;
+ $this->titre = $_titre;
+ $this->texte = $_texte;
+ $this->pmin = $_pmin;
+ $this->pmax = $_pmax;
+ $this->peremption = $_peremption;
+ $this->comment = $_comment;
+ $req = mysql_query("SELECT username,promo,nom,prenom FROM "
+ ."auth_user_md5 WHERE user_id='$_uid'");
+ list($this->username,$this->promo,$this->nom,$this->prenom)
+ = mysql_fetch_row($req);
+ mysql_free_result($req);
+ }
+
+ function get_unique_request($uid) {
+ return false; //non unique
+ }
+
+ function echo_formu() {
+ require("popwin.inc.php");
+?>
+<form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="POST" name="modif">
+ <input type="hidden" name="uid" value="<?php echo $this->uid; ?>" />
+ <input type="hidden" name="type" value="<?php echo $this->type; ?>" />
+ <input type="hidden" name="stamp" value="<?php echo $this->stamp; ?>" />
+ <table class="bicol" width="98%">
+ <thead>
+ <tr>
+ <th colspan="2">
+ Événement
+ </th>
+ </tr>
+ </thead>
+ <tbody>
+ <tr>
+ <td>
+ Posté par <?php echo "<a href=\"javascript:x()\" "
+ ."onclick=\"popWin('../x.php?x={$this->username}')\">"
+ ."{$this->prenom} {$this->nom} (X{$this->promo})</a> "
+ ."[<a href=\"mailto:{$this->username}@polytechnique.org\">lui "
+ ."écrire</a>]"; ?>
+ </td>
+ </tr>
+ <tr>
+ <td class="bicoltitre">
+ Titre
+ </td>
+ <td>
+ <?php echo $this->titre; ?>
+ </td>
+ </tr>
+ <tr>
+ <td class="bicoltitre">
+ Texte
+ </td>
+ <td>
+ <?php echo $this->texte; ?>
+ </td>
+ </tr>
+ <tr>
+ <td class="bicoltitre">
+ Péremption
+ </td>
+ <td>
+ <?php echo $this->peremption ?>
+ </td>
+ </tr>
+ <tr>
+ <td class="bicoltitre">
+ Promos
+ </td>
+ <td>
+ <?php echo $this->pmin; ?> - <?php echo $this->pmax; ?>
+ </td>
+ </tr>
+ <tr>
+ <td class="bicoltitre">
+ Commentaire
+ </td>
+ <td>
+ <?php echo $this->comment; ?>
+ </td>
+ </tr>
+ <tr>
+ <td class="bouton" colspan="2">
+ <input type="submit" name="action" value="Valider" />
+ <input type="submit" name="action" value="Invalider" />
+ <input type="submit" name="action" value="Supprimer" />
+ </td>
+ </tr>
+ </tbody>
+ </table>
+</form>
+<?php
+ }
+
+ function handle_formu() {
+ if (isset($_POST['action'])) {
+ require("mailer.inc.php");
+ $mymail = new mailer('Equipe Polytechnique.org '
+ .'<validation+recrutement@polytechnique.org>',
+ $this->username."@polytechnique.org",
+ "[Polytechnique.org/EVENEMENTS] Proposition d'événement",
+ false, "validation+evts@m4x.org");
+
+ $message = "Cher(e) camarade,\n\n";
+
+ if($_REQUEST['action']=="Valider") {
+ $req="UPDATE evenements SET creation_date = "
+ ."creation_date, validation_user_id =".$_SESSION['uid']
+ .", validation_date = NULL, flags = CONCAT(flags,"
+ ."',valide') WHERE id='{$this->evtid}' LIMIT 1";
+ $result = mysql_query ($req);
+ $message .= "L'annonce que tu avais proposée ("
+ .strip_tags($this->titre).") vient d'être validée.";
+ }
+ if($_REQUEST['action']=="Invalider") {
+ $req="UPDATE evenements SET creation_date = "
+ ."creation_date, validation_user_id =".$_SESSION['uid']
+ .", validation_date = NULL, flags = REPLACE(flags,"
+ ."'valide','') WHERE id='{$this->evtid}' LIMIT 1";
+ $result = mysql_query ($req);
+ $message .= "L'annonce que tu avais proposée ("
+ .strip_tags($this->titre).") a été refusée.";
+ }
+ if($_REQUEST['action']=="Supprimer") {
+ $req="DELETE from evenements WHERE id='{$this->evtid}'"
+ ." LIMIT 1";
+ $result = mysql_query ($req);
+ }
+ $message .=
+ "\n".
+ "Cordialement,\n".
+ "L'équipe X.org";
+ $message = wordwrap($message,78);
+ $mymail->setBody($message);
+ if ($_POST['action']!="Supprimer")
+ $mymail->send();
+ $this->clean();
+ }
+ }
+
+ function commit() {
+ }
+}
+
+?>
--- /dev/null
+<?php
+
+class MListReq extends Validate {
+ var $alias;
+ var $topic;
+ var $publique;
+ var $libre;
+ var $archive;
+ var $freeins;
+ var $comment;
+ var $moderos;
+ var $membres;
+
+ var $username;
+ var $prenom;
+ var $nom;
+
+ function MListReq ($_uid, $_alias, $_topic, $_publique, $_libre, $_archive, $_freeins,
+ $_comment, $_moderos, $_membres, $_stamp=0) {
+ $this->Validate($_uid, false, 'ml', $_stamp);
+ $this->alias = $_alias;
+ $this->topic = $_topic;
+ $this->publique = $_publique;
+ $this->libre = $_libre;
+ $this->archive = $_archive;
+ $this->freeins = $_freeins;
+ $this->comment = $_comment;
+ $this->moderos = $_moderos;
+ $this->membres = $_membres;
+
+ $sql = mysql_query("SELECT username,prenom,nom FROM auth_user_md5 WHERE user_id=".$this->uid);
+ list($this->username,$this->prenom,$this->nom) = mysql_fetch_row($sql);
+ mysql_free_result($sql);
+ }
+
+ function get_unique_request($uid) {
+ return false; // ben oui, c pas un objet unique !!!
+ }
+
+ function echo_formu() {
+ require_once("popwin.inc.php");
+?>
+ <form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="POST">
+ <input type="hidden" name="uid" value="<?php echo $this->uid ?>">
+ <input type="hidden" name="type" value="<?php echo $this->type ?>">
+ <input type="hidden" name="stamp" value="<?php echo $this->stamp ?>">
+ <table class="bicol" align="center">
+ <tr>
+ <td>Demandeur :</td>
+ <td><a href="javascript:x()" onclick="popWin('/x.php?x=<?php echo $this->username; ?>')">
+ <?php echo $this->prenom." ".$this->nom;?>
+ </a>
+ </td>
+ </tr>
+ <tr>
+ <td>Motif :</td>
+ <td><?php echo nl2br($this->comment);?>
+ </td>
+ </tr>
+ <tr>
+ <td style="border-top:1px dotted inherit">
+ Alias :
+ </td>
+ <td style="border-top:1px dotted inherit">
+ <input type="text" name="alias" value="<?php echo $this->alias ?>" />@polytechnique.org
+ </td>
+ </tr>
+ <tr>
+ <td>Topic :</td>
+ <td><input type="text" name="topic" size="60" value="<?php echo $this->topic ?>" />
+ </td>
+ </tr>
+ <tr>
+ <td>Propriétés :</td>
+ <td>
+ <input type="checkbox" name="publique" <?php
+ echo($this->publique?"checked=\"checked\"":"")
+ ?>/>Publique
+ <input type="checkbox" name="libre" <?php
+ echo($this->libre?"checked=\"checked\"":"")
+ ?>/>Libre
+ <input type="checkbox" name="freeins" <?php
+ echo($this->freeins?"checked=\"checked\"":"")
+ ?>/>Freeins
+ <input type="checkbox" name="archive" <?php
+ echo($this->archive?"checked=\"checked\"":"")
+ ?>/>Archive
+ </td>
+ </tr>
+ <tr>
+ <td style="border-top:1px dotted inherit">
+ Modéros :
+ </td>
+ <td style="border-top:1px dotted inherit">
+<?php
+ $sql = mysql_query("SELECT username FROM auth_user_md5"
+ ." WHERE user_id IN ({$this->moderos})"
+ ." ORDER BY nom, prenom");
+ $tab = array();
+ while(list($username) = mysql_fetch_row($sql))
+ $tab[] = $username;
+ echo implode(', ', $tab);
+ mysql_free_result($sql);
+?>
+ </td>
+ </tr>
+ <tr>
+ <td>Membres :</td>
+ <td><?php
+ $sql = mysql_query("SELECT username FROM auth_user_md5"
+ ." WHERE user_id IN ({$this->membres})"
+ ." ORDER BY nom, prenom");
+ $tab = array();
+ while(list($username) = mysql_fetch_row($sql))
+ $tab[] = $username;
+ echo implode(', ', $tab);
+ mysql_free_result($sql);
+ ?>
+ </td>
+ </tr>
+ <tr>
+ <td align="center" valign="middle" style="border-top:1px dotted inherit">
+ <input type="submit" name="submit" value="Accepter">
+ <br /><br />
+ <input type="submit" name="submit" value="Refuser">
+ </td>
+ <td style="border-top:1px dotted inherit">
+ <p>Explication complémentaire (refus ou changement de config, ...)</p>
+ <textarea rows="5" cols="74" name=motif></textarea>
+ </td>
+ </tr>
+ </table>
+ </form>
+<?php
+ }
+
+ function handle_formu () {
+ global $no_update_bd;
+ if($no_update_bd) return false;
+
+ if(empty($_REQUEST['submit']) || ($_REQUEST['submit']!="Accepter"
+ && $_REQUEST['submit']!="Refuser"))
+ return false;
+
+ $this->alias = $_REQUEST['alias'];
+ $this->topic = $_REQUEST['topic'];
+ $this->publique = isset($_REQUEST['publique']) && $_REQUEST['publique'];
+ $this->libre = isset($_REQUEST['libre']) && $_REQUEST['libre'];
+ $this->archive = isset($_REQUEST['archive']) && $_REQUEST['archive'];
+ $this->freeins = isset($_REQUEST['freeins']) && $_REQUEST['freeins'];
+
+ $this->clean();
+ $this->submit();
+
+ require_once("mailer.inc.php");
+
+ $mymail = new mailer('Equipe Polytechnique.org <validation+listes@polytechnique.org>',
+ $this->username."@polytechnique.org",
+ "[Polytechnique.org/LISTES] Demande de la liste {$this->alias} par ".$this->username,
+ false, "validation+listes@m4x.org");
+
+ $message =
+ "Cher(e) camarade,\n".
+ "\n";
+
+ if($_REQUEST['submit']=="Accepter") {
+ if($this->commit()) {
+ $message .=
+ " La mailing list {$this->alias} que tu avais demandée vient".
+ " d'être créée\n";
+ if (!empty($_REQUEST["motif"]))
+ $message .= "\nInformations complémentaires :\n".
+ stripslashes($_REQUEST["motif"])."\n";
+ } else {
+ echo "<p class=\"erreur\">Aucun mail envoyé, erreur !</p>\n";
+ return false;
+ }
+ } else {
+ $message .=
+ "La demande que tu avais faite pour la mailing list ".
+ $this->alias." a été refusée.\n";
+ if (!empty($_REQUEST["motif"]))
+ $message .= "\nLa raison de ce refus est : \n".
+ stripslashes($_REQUEST["motif"])."\n";
+ $this->clean();
+ }
+
+ $message .=
+ "\n".
+ "Cordialement,\n".
+ "L'équipe X.org";
+ $message = wordwrap($message,78);
+ $mymail->setBody($message);
+ $mymail->send();
+ echo "<p class=\"normal\">Mail envoyé</p>";
+ return true;
+ }
+
+ function commit () {
+ global $no_update_bd;
+ if($no_update_bd) return false;
+
+ require_once("flagset.inc.php");
+ $type = new flagset();
+ if ($this->libre) $type->addflag('libre');
+ if ($this->publique) $type->addflag('publique');
+ if ($this->archive) $type->addflag('archive');
+ if ($this->freeins) $type->addflag('freeins');
+
+ mysql_query("INSERT INTO listes_def SET type='".$type->value."', topic='{$this->topic}'");
+ echo "<p class=\"normal\">Liste {$this->alias} créée</p>\n";
+
+ if(!mysql_errno()) {
+ $id = mysql_insert_id();
+ if ($this->archive)
+ mysql_query("replace into listes_ins set idl=$id, idu=0");
+ mysql_query("INSERT INTO aliases (alias,type,id) VALUES".
+ "('{$this->alias}','liste',$id)".
+ ",('owner-{$this->alias}','liste-owner',$id)".
+ ",('sm-{$this->alias}','liste-sans-moderation',$id)".
+ ",('{$this->alias}-request','liste-request',$id)");
+
+ if (!mysql_errno()) {
+ echo "<p class=\"normal\">Liste {$this->alias} ajoutée aux alias</p>\n";
+ if (isset($this->moderos)) {
+ $tokens = explode(',',$this->moderos);
+ $values = array();
+ foreach ($tokens as $tok) {
+ $values[] = "($id,$tok)";
+ }
+ $values = implode(',', $values);
+ mysql_query("INSERT INTO listes_mod (idl, idu) VALUES $values");
+ }
+
+ // ajout des membres si précisés
+ if (isset($this->membres)) {
+ $tokens = explode(',',$this->membres);
+ $values = array();
+ foreach ($tokens as $tok) {
+ $values[] = "($id,$tok)";
+ }
+ $values = implode(',', $values);
+ mysql_query("INSERT INTO listes_ins (idl, idu) VALUES $values");
+ }
+
+ $this->clean();
+ return true;
+ } else { // alias déjà existant ?
+ mysql_query("DELETE FROM aliases WHERE id='$id'");
+ mysql_query("DELETE FROM listes_ins WHERE id='$id'");
+ mysql_query("DELETE FROM listes_def WHERE id='$id'");
+ echo "<p class=\"erreur\">Nom déjà utilisé (owner-{$this->alias} ou {$this->alias}-request)</p>\n";
+ return false;
+ } // if mysql_errno == 0 pour insert dans aliases
+ } else {
+ echo "<p class=\"erreur\">Nom déjà utilisé</p>\n";
+ return false;
+ } // if mysql_errno == 0 pour insert dans liste_def
+
+ return true;
+ }
+}
+
+?>
--- /dev/null
+<?php
+
+class PhotoReq extends Validate {
+ var $mimetype;
+ var $data;
+ var $x;
+ var $y;
+
+ var $username;
+ var $prenom;
+ var $nom;
+
+ function PhotoReq ($_uid, $_file, $_stamp=0) {
+ global $erreur;
+
+ $this->Validate($_uid, true, 'photo', $_stamp);
+ $sql = mysql_query("SELECT username, prenom, nom FROM auth_user_md5 WHERE user_id=".$this->uid);
+ list($this->username,$this->prenom,$this->nom) = mysql_fetch_row($sql);
+ mysql_free_result($sql);
+
+ if(!file_exists($_file)) {
+ $erreur = "Fichier inexistant";
+ return false;
+ }
+ // calcul de la taille de l'image
+ $image_infos = getimagesize($_file);
+ if(empty($image_infos)) {
+ $erreur = "Image invalide";
+ return false;
+ }
+ list($this->x, $this->y, $this->mimetype) = $image_infos;
+ // récupération du type de l'image
+ switch($this->mimetype) {
+ case 1: $this->mimetype = "gif"; break;
+ case 2: $this->mimetype = "jpeg"; break;
+ case 3: $this->mimetype = "png"; break;
+ default: $erreur = "Type d'image invalide"; return false;
+ }
+ // lecture du fichier
+ if(!($size = filesize($_file)) or $size > SIZE_MAX) {
+ $erreur = "Image trop grande (max 30ko)";
+ return false;
+ }
+ $fd = fopen($_file, 'r');
+ if (!$fd) return false;
+ $this->data = fread($fd, SIZE_MAX);
+ fclose($fd);
+
+ unset($erreur);
+ }
+
+ function get_unique_request($uid) {
+ return parent::get_unique_request($uid,'photo');
+ }
+
+ function echo_formu() {
+ require_once("popwin.inc.php");
+?>
+ <form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="POST">
+ <input type="hidden" name="uid" value="<?php echo $this->uid ?>">
+ <input type="hidden" name="type" value="<?php echo $this->type ?>">
+ <input type="hidden" name="stamp" value="<?php echo $this->stamp ?>">
+ <table class="bicol" align="center" summary="Demande d'alias">
+ <tr>
+ <td>Demandeur :</td>
+ <td><a href="javascript:x()" onclick="popWin('/x.php?x=<?php echo $this->username; ?>')">
+ <?php echo $this->prenom." ".$this->nom;?>
+ </a>
+ </td>
+ </tr>
+ <tr>
+ <td align="center" valign="middle" colspan="2">
+ <img src="<?php echo "../getphoto.php?x=".$this->uid.
+ (isset($_COOKIE[session_name()]) ? "" : "&".SID);?>" width=110 alt=" [ PHOTO ] " />
+ <img src="<?php echo "../getphoto.php?x=".$this->uid."&req=true".
+ (isset($_COOKIE[session_name()]) ? "" : "&".SID);?>" width=110 alt=" [ PHOTO ] " />
+ </td>
+ </tr>
+ <tr>
+ <td align="center" valign="middle">
+ <input type="submit" name="submit" value="Accepter">
+ <br /><br />
+ <input type="submit" name="submit" value="Refuser">
+ </td>
+ <td>
+ <p>Raison du refus:</p>
+ <textarea rows="5" cols="74" name="motif"></textarea>
+ </td>
+ </tr>
+ </table>
+ </form>
+<?php
+ }
+
+ function handle_formu () {
+ global $no_update_bd;
+ if($no_update_bd) return false;
+
+ if(empty($_REQUEST['submit'])
+ || ($_REQUEST['submit']!="Accepter" && $_REQUEST['submit']!="Refuser"))
+ return false;
+
+ $message = "Cher(e) camarade,\n\n";
+
+ if($_REQUEST['submit']=="Accepter") {
+ $sql = mysql_query("SELECT alias FROM auth_user_md5 WHERE user_id=".$this->uid);
+ list($old) = mysql_fetch_row($sql);
+ mysql_free_result($sql);
+
+ $message .=
+ " La demande de changement de photo que tu as "
+ ."demandée vient d'être effectuée.\n\n";
+
+ $this->commit();
+ } else { // c'était donc Refuser
+ $message .=
+ "La demande de changement de photo que tu avais faite a été refusée.\n";
+ if ($_REQUEST["motif"] != "" )
+ $message .= "\nLa raison de ce refus est : \n".
+ stripslashes($_REQUEST["motif"])."\n\n";
+ }
+
+ $message .=
+ "Cordialement,\n".
+ "L'équipe X.org";
+
+ $message = wordwrap($message,78);
+ require_once("mailer.inc.php");
+ $mymail = new mailer('Equipe Polytechnique.org <validation+trombino@polytechnique.org>',
+ $this->username."@polytechnique.org",
+ "[Polytechnique.org/PHOTO] Changement de photo de ".$this->username,
+ false, "validation+trombino@m4x.org");
+ $mymail->setBody($message);
+ $mymail->send();
+
+ echo "<br />Mail envoyé";
+ $this->clean();
+ }
+
+ function commit () {
+ global $no_update_bd;
+ if($no_update_bd) return false;
+
+ mysql_query("REPLACE INTO photo set uid='".$this->uid."', attachmime = '".$this->mimetype."', attach='"
+ .addslashes($this->data)."', x='".$this->x."', y='".$this->y."'");
+ }
+}
+
+?>
--- /dev/null
+<?php
+
+class SondageReq extends Validate {
+ var $sid;
+ var $titre;
+ var $alias;
+
+ var $username;
+ var $prenom;
+ var $nom;
+
+ function SondageReq ($_uid, $_sid, $_stamp) {
+ $this->Validate($_uid, false, 'sondage', $_stamp);
+ $this->sid = $_sid;
+
+ $sql = mysql_query("SELECT username,prenom,nom FROM auth_user_md5 "
+ . "WHERE user_id='".$this->uid."'");
+ list($this->username,$this->prenom,$this->nom) = mysql_fetch_row($sql);
+ mysql_free_result($sql);
+ $sql = mysql_query("SELECT titre FROM sondage.description_generale "
+ . "WHERE ids='".$this->sid."'");
+ list($this->titre) = mysql_fetch_row($sql);
+ mysql_free_result($sql);
+ $this->alias = substr($this->titre,0,min(15,strlen($this->titre)));
+ }
+
+ function get_request($uid,$stamp) {
+ return parent::get_request($uid,'sondage',$stamp);
+ }
+
+ function echo_formu() {
+ require_once("popwin.inc.php");
+?>
+ <form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="POST">
+ <input type="hidden" name="uid" value="<?php echo $this->uid ?>">
+ <input type="hidden" name="type" value="<?php echo $this->type ?>">
+ <input type="hidden" name="stamp" value="<?php echo $this->stamp ?>">
+ <table class="bicol" align="center" cellpadding="4" summary="Sondage">
+ <tr>
+ <td>Demandeur :
+ </td>
+ <td><a href="javascript:x()" onclick="popWin('/x.php?x=<?php echo $this->username; ?>')"><?php
+ echo $this->prenom." ".$this->nom;?></a>
+ <?php if(isset($this->old)) echo "({$this->old})";?>
+ </td>
+ </tr>
+ <tr>
+ <td>Titre du sondage :</td>
+ <td><?php echo $this->titre;?></td>
+ </tr>
+ <tr>
+ <td>Prévisualisation du sondage :</td>
+ <td><a href = <?php
+ global $baseurl;
+ echo "\"$baseurl/sondage/questionnaire.php?SID=".$this->sid.'"';
+ echo ' target = "_blank">'.$this->titre;
+ ?>
+ </a></td>
+ </tr>
+ <tr>
+ <td>Alias du sondage :</td>
+ <td><input type="text" name="alias" value="<?php echo $this->alias;?>"> (ne doit
+ pas contenir le caractère ')</td>
+ </tr>
+ <tr>
+ <td align="center" valign="middle">
+ <input type="submit" name="submit" value="Accepter">
+ <br /><br />
+ <input type="submit" name="submit" value="Refuser">
+ </td>
+ <td>
+ <p>Raison du refus:</p>
+ <textarea rows="5" cols="74" name=motif></textarea>
+ </td>
+ </tr>
+ </table>
+ </form>
+<?php
+ }
+
+ function handle_formu () {
+ global $no_update_bd,$baseurl;
+ if($no_update_bd) return false;
+
+ if(empty($_REQUEST['submit'])
+ || ($_REQUEST['submit']!="Accepter" && $_REQUEST['submit']!="Refuser"))
+ return false;
+
+ if ($_REQUEST['submit']!="Refuser") {
+ $alias = stripslashes($_REQUEST['alias']);
+ if ($alias=="") {
+ echo "<br>Il faut entrer un alias pour valider ce sondage.";
+ return false;
+ }
+ else {
+ if (strlen($alias)>15) {
+ echo "<br>L'alias est trop long.";
+ return false;
+ }
+ else if (strpos($alias,"'")) {
+ echo "<br>L'alias ne doit pas contenir le caractère '";
+ return false;
+ }
+ else {//on vérifie que l'alias n'existe pas déjà
+ $resultat = mysql_query("select alias from sondage.description_generale ".
+ "where alias='$alias'");
+ if (mysql_num_rows($resultat)>0) {
+ echo "<br>Cet alias est déjà utilisé.";
+ return false;
+ }
+ }
+ }
+ $this->alias=$alias;
+ }
+
+ require_once("mailer.inc.php");
+
+ $lien = "$baseurl/sondage/questionnaire.php?alias=".urlencode($this->alias);
+ $titre = '"'.str_replace(''',"'",$this->titre).'"';
+
+ $mymail = new mailer('Equipe Polytechnique.org <validation+sondage@polytechnique.org>',
+ $this->username."@polytechnique.org",
+ "[Polytechnique.org/SONDAGE] Demande de validation du sondage $titre par ".$this->username,
+ false, "validation+sondage@m4x.org");
+
+ $message =
+ "Cher(e) camarade,\n".
+ "\n";
+
+ if($_REQUEST['submit']=="Accepter") {
+ $this->commit();
+ $message .=
+ " Le sondage $titre que tu as composé vient d'être validé.\n".
+ "Il ne te reste plus qu'à transmettre aux sondés l'adresse".
+ " où ils pourront voter. Cette adresse est : $lien.\n";
+ } else {
+ $message .=
+ "Le sondage $titre que tu avais proposé a été refusé.\n";
+ if (!empty($_REQUEST["motif"]))
+ $message .= "\nLa raison de ce refus est : \n".
+ stripslashes($_REQUEST["motif"])."\n";
+ }
+
+ $message .=
+ "\n".
+ "Cordialement,\n".
+ "L'équipe X.org";
+ $message = wordwrap($message,78);
+ $mymail->setBody($message);
+ $mymail->send();
+ echo "<br />Mail envoyé";
+ //Suppression de la demande
+ $this->clean();
+ }
+
+ function commit () {
+ global $no_update_bd;
+ require_once("sondage.requetes.inc.php");
+ if($no_update_bd) return false;
+
+ passer_en_prod($this->sid,$this->alias);
+ }
+}
+
+?>
--- /dev/null
+<?php
+/* vim: set expandtab shiftwidth=4 tabstop=4 softtabstop=4 textwidth=100:
+ * $Id: validations.inc.php,v 1.1 2004-01-26 22:29:02 x2000habouzit Exp $
+ *
+ */
+
+define('SIZE_MAX', 32768);
+
+/** classe listant les objets dans la bd */
+class ValidateIterator {
+ /** variable interne qui conserve l'état en cours de la requête */
+ var $sql;
+
+ /** constructeur */
+ function ValidateIterator () {
+ $this->sql = mysql_query("SELECT data,stamp FROM requests ORDER BY stamp");
+ }
+
+ /** renvoie l'objet suivant, ou false */
+ function next () {
+ if(list($result,$stamp) = mysql_fetch_row($this->sql)) {
+ $result = unserialize($result);
+ $result->stamp = $stamp;
+ return($result);
+ } else {
+ mysql_free_result($this->sql);
+ return(false);
+ }
+ }
+}
+
+/** classe "virtuelle" à dériver pour chaque nouvelle implémentation
+ * XXX attention, dans l'implémentation de la classe, il ne faut jamais faire confiance au timestamp
+ * de l'objet qui sort du BLOB de la BD, on met donc systématiquement le champt $this->stamp depuis
+ * le TIMESTAMP de la BD
+ * Par contre, à la sortie de toute fonction il faut que le stamp soit valide !!! XXX
+ */
+class Validate {
+ /** l'uid de la personne faisant la requête */
+ var $uid;
+ /** le time stamp de la requête */
+ var $stamp;
+ /** indique si la donnée est unique pour un utilisateur donné */
+ var $unique;
+ /** donne le type de l'objet (certes redonant, mais plus pratique) */
+ var $type;
+
+ /** fonction statique qui renvoie la requête dans le cas d'un objet unique de l'utilisateur d'id $uid
+ * @param $uid l'id de l'utilisateur concerné
+ * @param $type le type de la requête
+ *
+ * XXX fonction "statique" XXX
+ * XXX à dériver XXX
+ * à utiliser uniquement pour récupérer un objet <br>unique</br>
+ */
+ function get_unique_request($uid,$type) {
+ $sql = mysql_query("SELECT data,stamp FROM requests WHERE user_id='$uid' and type='$type'");
+ if(list($result,$stamp) = mysql_fetch_row($sql)) {
+ $result = unserialize($result);
+ // on ne fait <b>jamais</b> confiance au timestamp de l'objet,
+ $result->stamp = $stamp;
+ if(!$result->unique) // on vérifie que c'est tout de même bien un objet unique
+ $result = false;
+ } else
+ $result = false;
+
+ mysql_free_result($sql);
+ return $result;
+ }
+
+ /** fonction statique qui renvoie la requête de l'utilisateur d'id $uidau timestamp $t
+ * @param $uid l'id de l'utilisateur concerné
+ * @param $type le type de la requête
+ * @param $stamp le timestamp de la requête
+ *
+ * XXX fonction "statique" XXX
+ * à utiliser uniquement pour récupérer un objet dans la BD avec Validate::get_request(...)
+ */
+ function get_request($uid, $type, $stamp) {
+ $sql = mysql_query("SELECT data,stamp"
+ ." FROM requests"
+ ." WHERE user_id='$uid' and type = '$type' and stamp='$stamp'");
+ if(list($result,$stamp) = mysql_fetch_row($sql)) {
+ $result = unserialize($result);
+ // on ne fait <b>jamais</b> confiance au timestamp de l'objet,
+ $result->stamp = $stamp;
+ } else
+ $result = false;
+
+ mysql_free_result($sql);
+ return($result);
+ }
+
+ /** constructeur
+ * @param $_uid user id
+ * @param $_unique requête pouvant être multiple ou non
+ * @param $_type type de la donnée comme dans le champ type de x4dat.requests
+ * @param $_stamp stamp de création, 0 si c'estun nouvel objet
+ */
+ function Validate($_uid, $_unique, $_type, $_stamp=0) {
+ $this->uid = $_uid;
+ $this->stamp = $_stamp;
+ $this->unique = $_unique;
+ $this->type = $_type;
+ }
+
+ /** fonction à utiliser pour envoyer les données à la modération
+ * cette fonction supprimme les doublons sur un couple ($user,$type) si $this->unique est vrai
+ */
+ function submit () {
+ global $no_update_bd;
+ if($no_update_bd) return false;
+ mysql_query("LOCK requests"); // le lock est obligatoire pour récupérer le dernier stamp !
+
+ if($this->unique)
+ mysql_query("DELETE FROM requests WHERE user_id='".$this->uid
+ . "' AND type='".$this->type."'");
+
+ mysql_query("INSERT INTO requests SET user_id='".$this->uid."', type='".$this->type
+ . "', data='".addslashes(serialize($this))."'");
+
+ // au cas où l'objet est réutilisé après un commit, il faut mettre son stamp à jour
+ $sql = mysql_query("SELECT MAX(stamp) FROM requests "
+ . "WHERE user_id='".$this->uid."' AND type='".$this->type."'");
+ list($this->stamp) = mysql_fetch_row($sql);
+ mysql_free_result($sql);
+
+ mysql_query("UNLOCK requests");
+ return true;
+ }
+
+ /** fonction à utiliser pour nettoyer l'entrée de la requête dans la table requests
+ * attention, tout est supprimé si c'est un unique
+ */
+ function clean () {
+ global $no_update_bd;
+ if($no_update_bd) return false;
+ return mysql_query("DELETE FROM requests WHERE user_id='".$this->uid."' AND type='".$this->type."'"
+ .($this->unique ? "" : " AND stamp='".$this->stamp."'"));
+ }
+
+ /** doit afficher le fomulaire de validation de la donnée
+ * XXX la fonction est "virtuelle" XXX
+ * XXX doit définir les variables $uid et $stamp en hidden XXX
+ */
+ function echo_formu() { }
+ /** fonction à réaliser en cas de valistion du formulaire
+ * XXX la fonction est "virtuelle" XXX
+ */
+ function handle_formu () { }
+ /** fonction à utiliser pour insérer les données dans x4dat
+ * XXX la fonction est "virtuelle" XXX
+ */
+ function commit () { }
+}
+
+//***************************************************************************************
+//
+// IMPLEMENTATIONS
+//
+//***************************************************************************************
+
+require("valid_aliases.inc.php");
+require("valid_epouses.inc.php");
+require("valid_photos.inc.php");
+require("valid_ml.inc.php");
+require("valid_sondages.inc.php");
+require("valid_emploi.inc.php");
+require("valid_evts.inc.php");
+
+?>
return $content;
}
-function function_dyn($params) { return implode(' ',$params); }
+function function_dyn($params) { return stripslashes(htmlentities(implode(' ',$params))); }
class XorgPage extends DiogenesCorePage {
var $_page_type;
parent::display('skin/'.$_SESSION['skin_popup'], $id);
else
parent::display('skin/'.$_SESSION['skin'], $id);
+ exit;
}
function make_id() {
--- /dev/null
+{* $Id: alias.tpl,v 1.1 2004-01-26 22:29:02 x2000habouzit Exp $ *}
+
+{if $success}
+<p class="normal">
+ a demande de création des alias <b>{dyn s=$success}@melix.net</b> et
+ <b>{dyn s=$success}@melix.org</b> a bien été enregistrée. Après
+ vérification, tu recevras un mail te signalant l'ouverture de ces adresses.
+</p>
+<p class="normal">
+ Encore merci de nous faire confiance pour tes e-mails !
+</p>
+{else}
+{if $error}
+<p class="normal">{dyn s=$error}</p>
+{/if}
+
+<div class="rubrique">
+ Adresses e-mail personnalisées
+</div>
+
+<p class="normal">
+ Pour plus de <b>convivialité</b> dans l'utilisation de tes mails, tu peux choisir une adresse
+ e-mail discrète et personnalisée. Ce nouvel e-mail peut par exemple correspondre à ton surnom.
+</p>
+<p>
+ Pour de plus amples informations sur ce service, nous t'invitons à consulter
+ <a href="{"docs/doc_melix.php"|url}">cette documentation</a> qui répondra
+ sans doute à toutes tes questions
+</p>
+
+{dynamic on="0$actuel"}
+<p class='normal'>
+<b>Note : tu as déjà l'alias {$actuel}, or tu ne peux avoir qu'un seul alias à la fois.
+ Si tu effectues une nouvelle demande l'ancien alias sera effacé.</b>
+</p>
+{/dynamic}
+
+{dynamic on="0$demande"}
+<p class='normal'>
+<b>Note : tu as déjà effectué une demande pour {$demande->alias}, dont le traitement est
+ en cours. Si tu souhaites modifier ceci refais une demande, sinon ce n'est pas la peine.</b>
+</p>
+{/dynamic}
+
+<br />
+<form action="{$smarty.server.PHP_SELF}" method="POST" name="alias_dem">
+ <table class="tinybicol" align="center" cellpadding="4" summary="Demande d'alias">
+ <tr>
+ <th colspan="2">Demande d'alias</th>
+ </tr>
+ <tr align="left">
+ <td>Alias demandé :</td>
+ </tr>
+ <tr align="center">
+ <td><input type="text" name="alias" value="{dyn s=$r_alias}">@melix.net et @melix.org</td>
+ </tr>
+ <tr align="left">
+ <td>Brève explication :</td>
+ </tr>
+ <tr align="center">
+ <td><textarea rows="5" cols="50" name="raison">{dyn s=$r_raison}</textarea></td>
+ </tr>
+ <tr align="right">
+ <td><input type="submit" name="submit"
+ value="Envoyer"></td>
+ </tr>
+ </table>
+</form>
+
+{/if}
+
+{* vim:set et sw=2 sts=2 sws=2: *}