,---------------------.
| NB Etats : |
| -> rien de fait |
-| x -> en cours |
+| x -> à tester |
| xx -> en templates |
| xxx -> anonyme |
+| !!! -> postponned |
| --- -> supprimée |
+| @@@ -> non modifiée |
`---------------------'
# PS pour trier : V<down><down>...<down>:!sort<enter>
------+-------------------------------------------+----------------
Etat | Ancien nom | Nouveau nom
-------+-------------------------------------------+----------------
- | acces_wap.php |
+------+-[ admin ]---------------------------------+----------------
+ | admin/FormatePrenomNOM.php |
+ | admin/FormatePrenomNOM2.php |
| admin/admin_faqs.php |
| admin/admin_trombino.php |
- | admin/ax-xorg.php |
| admin/comptesPOP.php |
| admin/correction_adr.php |
- | admin/deces_promo.php |
| admin/envoidirect.php |
| admin/evenements.php |
- | admin/FormatePrenomNOM2.php |
- | admin/FormatePrenomNOM.php |
- | admin/gerer_applis.php |
- | admin/gerer_auth-groupex.php |
- | admin/gerer_binets.php |
- | admin/gerer_coupure.php |
- | admin/gerer_groupesx.php |
- | admin/gerer_listes.php |
- | admin/gerer_paiement.php |
- | admin/gerer_skins.php |
- | admin/gerer_sondages.php |
- | admin/graph_promo.php |
| admin/homonymes.php |
- | admin/index.php |
| admin/ins_confirmees.php |
- | admin/logger_actions.php |
- | admin/logger_events.php |
- | admin/logger.php |
- | admin/logger_user.php |
| admin/marketing.php |
| admin/marketing_promo.php |
| admin/marketing_volontaire.php |
| admin/newsletter_pattecassee.php |
| admin/newsletter_prep.php |
| admin/pg.php |
- | admin/postfix_blacklist.php |
- | admin/postfix_perm.php |
- | admin/postfix_retardes.php |
| admin/relance.php |
- | admin/stats_promo.php |
- | admin/statut_antispam.php |
+ | admin/utilisateurs.php |
| admin/utilisateurs_identification.php |
| admin/utilisateurs_marketing.php |
- | admin/utilisateurs.php |
- | confbanana.php |
- | coupure.php | stats/coupure.php
+------+-[ docs ]----------------------------------+----------------
| docs/FROM.php | docs/from.php
- | domaineperso.php |
- | domaine.php |
- | dons.php |
- | emails.php |
- | emploi.php |
- | emploi_public.php |
| en-cours.php | docs/en-cours.php
- | epouse.php |
- | evenements.php |
- | groupex/donne-chall.php |
- | groupex/export-econfiance.php |
- | groupex.php |
- | index.coupure.php |
- | info-groupesx.php |
- | inscrire.php |
+ | info-groupesx.php | docs/info-groupesx.php
+ | plan.php | ? docs/plan.php
+ | services.php | docs/services.php
+------+-[ stats ]---------------------------------+----------------
+ | parselogD.php | stats/...
+ | parselogN.php | stats/...
+ | parselogR.php | stats/...
+ | stats.php | stats/index.php
+------+-[ listes ]--------------------------------+----------------
| listes/creation.php |
| listes/gere_listes.php |
| listes/gere_msg.php |
| listes/liste.php |
| listes/mailtoins.inc.php |
| listes/trombiliste.php |
- | maj.php |
- | marketing.php |
- | mescontacts_pdf.php |
- | mescontacts.php |
- | news/abonnements.php |
- | news/article.php |
- | news/attachment.php |
- | news/config.news.inc.php |
- | news/faq_admin.php |
- | news/index.php |
- | newsletter.php |
- | newsletter_req.php |
- | news/newsportal.php |
- | news/offreemploi.php |
- | news/post.php |
- | news/thread.php |
+------+-[ paiement ]------------------------------+----------------
| paiement/cyberpaiement.inc.php |
| paiement/cyberpaiement_retour.php |
| paiement/index.php |
- | parselogD.php | stats/...
- | parselogN.php | stats/...
- | parselog.php | stats/...
- | parselogR.php | stats/...
- | pattecassee.php |
- | pg.confirm.php |
- | pg.php |
- | plan.php | ? docs/plan.php
- | profil2.php |
- | profil.php |
- | recherche.php |
- | recovery.php |
- | redirect/error.php |
- | redirect/redirect.php |
- | routage-mail.php |
- | rss.php |
- | sendmail.php |
- | services.php | docs/services.php
+------+-[ sondages ]------------------------------+----------------
| sondage/accueil.php |
| sondage/bloc.php |
| sondage/droits.php |
| sondage/exemples.php |
| sondage/modifie.php |
- | sondage/questionnaire.php |
| sondage/question.php |
+ | sondage/questionnaire.php |
| sondage/reponse.php |
| sondage/resultats.php |
| sondage/titre.php |
| sondage/validation.php |
- | stats.php | stats/index.php
- | step4.php |
- | tmpPWD.php |
- | trackers/index.php |
- | trackers/tracker_admin.php |
- | trackers/tracker_delete.php |
- | trackers/tracker_show.php |
- | trackers/tracker_show_rq.php |
+------+-[ trezo ]---------------------------------+----------------
| trezo/gere_operations.php |
| trezo/index.php |
| trezo/trezo.inc.php |
+------+-[ emails ... ]----------------------------+----------------
+ | emails.php |
+ | routage-mail.php |
+------+-[ inscription + mdp ]---------------------+----------------
+ | inscrire.php |
+ | maj.php |
+ | recovery.php |
+ | step4.php |
+ | tmpPWD.php |
+------+-[ bordel ]--------------------------------+----------------
+ | domaine.php |
+ | emploi.php |
+ | emploi_public.php |
+ | evenements.php |
+ | index.coupure.php |
+ | marketing.php |
+ | mescontacts.php |
+ | mescontacts_pdf.php |
+ | newsletter.php |
+ | newsletter_req.php |
+ | pg.confirm.php |
+ | pg.php |
+ | profil.php |
+ | profil2.php |
+ | recherche.php |
+ | redirect/error.php |
+ | redirect/redirect.php |
| trombino.php |
| trombipromo.php |
| x.php |
+------+-[ admin ]---------------------------------+----------------
+!!! | admin/gerer_applis.php | \
+!!! | admin/gerer_auth-groupex.php | |
+!!! | admin/gerer_binets.php | |
+!!! | admin/gerer_coupure.php | |
+!!! | admin/gerer_groupesx.php | > utiliser les classes Diogènes, j'ai pas diogènes hors ligne :/
+!!! | admin/gerer_listes.php | |
+!!! | admin/gerer_paiement.php | |
+!!! | admin/gerer_skins.php | |---> mef la table a changé
+!!! | admin/gerer_sondages.php | /
+!!! | admin/logger.php | \
+!!! | admin/logger_actions.php | \ Utiliser les classes de Jeremy, donc pour plus tard
+!!! | admin/logger_events.php | /
+!!! | admin/logger_user.php | /
+------+-[ news ]----------------------------------+----------------
+!!! | news/abonnements.php | \
+!!! | news/article.php | |
+!!! | news/attachment.php | |
+!!! | news/config.news.inc.php | |
+!!! | news/faq_admin.php | \ s'en débarasser ?
+!!! | news/index.php | /
+!!! | news/newsportal.php | |
+!!! | news/offreemploi.php | |
+!!! | news/post.php | |
+!!! | news/thread.php | /
+!!! | confbanana.php | -> dépend de banana, à passer plus tard ...
+------+-[ trackers ]------------------------------+----------------
+ x | trackers/tracker_show.php | -
+ x | trackers/tracker_show_rq.php | -
------+-------------------------------------------+----------------
+@@@ | groupex/donne-chall.php | -
+@@@ | groupex/export-econfiance.php | -
+x | acces_wap.php | -
+x | admin/ax-xorg.php | -
+x | admin/deces_promo.php | -
+x | admin/graph_promo.php | stats/graph_promo.php
+x | admin/index.php | -
+x | admin/postfix_blacklist.php | -
+x | admin/postfix_perm.php | -
+x | admin/postfix_retardes.php | -
+x | admin/stats_promo.php | stats/stats_promo.php
+x | coupure.php | stats/coupure.php
+x | domaineperso.php | -
+x | dons.php | -
+x | epouse.php | -
+x | groupex.php | groupex/index.php
+x | nbpromo2.php | stats/nb_by_promo.php
+x | parselog.php | stats/...
+x | pattecassee.php | -
+x | rss.php | -
+x | sendmail.php | -
+x | trackers/index.php | -
+x | trackers/tracker_admin.php | -
xx | AccesPermanentOff.php | cookie_off.php
xx | AccesPermanentOn.php | cookie_on.php
xx | acces_redirect.php | carva_redirect.php
xx | index.php | -
xx | login.php | -
xx | motdepassemd5.php | -
-xx | nbpromo2.php | stats/nb_by_promo.php
xx | preferences.php | -
xx | secu.php | docs/secu.php
xx | skins.php | -
xx | vcard.php | -
------+-------------------------------------------+----------------
---- | aide.php |
---- | auth-wiki.php |
+--- | trackers/tracker_delete.php | -
+--- | admin/statut_antispam.php | inutilisée et même pas en var superglobales ...
+--- | aide.php | --> faq.php
+--- | auth-wiki.php | obsolete
------+-------------------------------------------+----------------
--- /dev/null
+CSS :
+ - éviter autant que possible les hook en head inutiles pour des css
+ - récupérer la classe css qui vous convient le mieux dans les existantes,
+ et sinon, créer une classe la plus générale possible (factorisation de la css -> plus rapide à parser, à dl, etc ...)
+ - ajouter *qqs* ID bien particuliers : #skin (fait), #x (pour x.php), #profil (pour le profil) ...
+
+XHTML :
+ - b, u, i, center, font, ... sont à proscrire (utiliser em, strong ou des css)
+ - (v)align=, border=, ... sont à proscrire (utiliser les css qvb ou un style=)
+ - les attributs/balises sont en minuscule
+ - les balises ferment toutes (attention, à cause de certains browsers, <br/> est à éviter, utiliser <br /> etc ...)
+
+Code :
+ - passer les validations en templates correctement
+ - optimiser le cache (y'a surement des erreurs de cache d'ailleurs)
+ - utiliser XOrgPage::mysql_assign(...) au lieu de :
+ ,-------------------------------------------------
+ | $res = mysql_query(...);
+ | $truc = array();
+ | while($truc[] = mysql_fetch_assoc($res));
+ | array_pop($truc);
+ | mysql_free_result($res);
+ `-------------------------------------------------
+
+TODO:
+ - revérifier tous les liens du site une fois basculé (utiliser tjs {"..."|url} et mettre à jour les liens)
+ - regarder du coté de $default_modifiers pour éviter de l'injection de code (genre array('escape:"html"'))
+ - compile_check à false pour le site de prod ...
+ - affiner le cache :
+ pour les pages dont la modification est controlée, faire détuire le cache et utiliser is_cached
+ (exemple : liste des trackers ... liste des domaines ... etc)
--- /dev/null
+<?php
+require("auto.prepend.inc.php");
+
+new_skinned_page('access_wap.tpl', AUTH_MDP);
+
+if (isset($_REQUEST['op']) && $_REQUEST['op'] == "valid") {
+ // on enregistre les modifications des parametres
+ $sql="update wap set flags='";
+ if (isset($_REQUEST['actif'])) $sql.="actif,";
+ if (isset($_REQUEST['useimage'])) $sql.="useimage,";
+ if (isset($_REQUEST['ccfrom'])) $sql.="ccfrom,";
+ if (isset($_REQUEST['IMAPssl'])) $sql.="IMAPssl";
+ $sql.="'";
+ if (isset($_REQUEST['screenwidth'])&&is_integer($_REQUEST['screenwidth'])) $sql.=",screenwidth = {$_REQUEST['screenwidth']}";
+ if (isset($_REQUEST['screenheight'])&&is_integer($_REQUEST['screenheight'])) $sql.=",screenheight = {$_REQUEST['screenheight']}";
+ if (isset($_REQUEST['fromaddr'])&&in_array($_REQUEST['fromaddr'],array("m4x","polytechnique","autre"))) $sql.=",fromaddr = '{$_REQUEST['fromaddr']}'";
+ if (isset($_REQUEST['otheraddr'])) $sql.=",otheraddr = '".addslashes($_REQUEST['otheraddr'])."'";
+ if (isset($_REQUEST['IMAPserver'])) $sql.=",IMAPserver = '".addslashes($_REQUEST['IMAPserver'])."'";
+ if (isset($_REQUEST['IMAPport'])&&is_integer($_REQUEST['IMAPport'])) $sql.=",IMAPport = {$_REQUEST['IMAPport']}";
+ if (isset($_REQUEST['IMAPdir'])) $sql.=",IMAPdir = '".addslashes($_REQUEST['IMAPdir'])."'";
+ $sql.=" where uid = ".$_SESSION['uid'];
+ mysql_query($sql);
+
+ $page->assign('OK',true);
+ $page->display('OK');
+} else { // pas de formulaire soumis
+ $sql = "SELECT FIND_IN_SET('actif',flags) AS actif,
+ FIND_IN_SET('useimage',flags) AS useimage,
+ screenwidth,screenheight,fromaddr,otheraddr,
+ FIND_IN_SET('ccfrom',flags) AS ccfrom,
+ IMAPserver,IMAPport,IMAPdir,
+ FIND_IN_SET('IMAPssl',flags) AS IMAPssl
+ FROM wap WHERE uid = ".$_SESSION['uid'];
+ $result = mysql_query($sql);
+
+ if (mysql_num_rows($result)==0) {
+ //l'utilisateur n'a pas de profil WAP => on le crée
+ mysql_query("INSERT INTO wap (uid) VALUES (".$_SESSION['uid'].")");
+ $result = mysql_query($sql);
+ }
+
+ $page->assign('wap', mysql_fetch_assoc($result));
+ mysql_free_result($result);
+}
+?>
--- /dev/null
+<?php
+require('auto.prepend.inc.php');
+new_admin_page('admin/ax-xorg.tpl');
+
+// liste des différences
+$sql = "SELECT i.promo,i.nom AS nom,i.prenom AS prenom,ia.nom AS nomax,ia.prenom AS prenomax,i.matricule AS mat,ia.matricule_ax AS matax
+ FROM identification AS i
+ INNER JOIN identification_ax AS ia ON i.matricule_ax = ia.matricule_ax
+ WHERE (SOUNDEX(i.nom) != SOUNDEX(ia.nom) AND SOUNDEX(CONCAT(ia.particule,i.nom)) != SOUNDEX(ia.nom)
+ AND SOUNDEX(i.nom) != SOUNDEX(ia.nom_patro) AND SOUNDEX(CONCAT(ia.particule,i.nom)) != SOUNDEX(ia.nom_patro))
+ OR i.prenom != ia.prenom
+ OR (i.promo != ia.promo AND i.promo != ia.promo+1 AND i.promo != ia.promo-1)
+ ORDER BY i.promo,i.nom,i.prenom";
+$page->mysql_assign($sql,'diffs','nb_diffs');
+
+// gens à l'ax mais pas chez nous
+$sql = "SELECT ia.promo,ia.nom,ia.nom_patro,ia.prenom
+ FROM identification_ax as ia
+ LEFT JOIN identification AS i ON i.matricule_ax = ia.matricule_ax
+ WHERE i.nom IS NULL";
+$page->mysql_assign($sql,'mank','nb_mank');
+
+// gens chez nous et pas à l'ax
+$sql = "SELECT promo,nom,prenom FROM identification WHERE matricule_ax IS NULL";
+$page->mysql_assign($sql,'plus','nb_plus');
+
+
+$page->display();
+?>
--- /dev/null
+<?php
+require("auto.prepend.inc.php");
+new_admin_page('admin/deces_promo.tpl');
+
+$promo = ( isset($_REQUEST["promo"]) ? $_REQUEST["promo"] : 0 );
+if(isset($_REQUEST['sub10'])) $promo -= 10;
+if(isset($_REQUEST['sub01'])) $promo --;
+if(isset($_REQUEST['add01'])) $promo ++;
+if(isset($_REQUEST['add10'])) $promo += 10;
+
+$page->assign('promo',$promo);
+
+if (isset($_REQUEST["valider"]) && $_REQUEST["valider"] == "Valider") {
+ $res = mysql_query("SELECT matricule FROM identification WHERE promo = $promo");
+ while (list($mat) = mysql_fetch_row($res)) {
+ mysql_query("UPDATE identification SET deces='".$_REQUEST[$mat]."' WHERE matricule = '".$mat."'");
+ }
+}
+
+$sql = "SELECT matricule, nom, prenom, deces FROM identification WHERE promo = $promo ORDER BY nom,prenom";
+$page->mysql_assign($sql, 'decedes');
+
+$page->display();
+?>
--- /dev/null
+<?php
+require("auto.prepend.inc.php");
+new_admin_page('admin/index.tpl');
+
+$page->display();
+?>
--- /dev/null
+<?php
+require("auto.prepend.inc.php");
+new_admin_page('admin/postfix.common.tpl');
+
+if(isset($_REQUEST['nomligne'])) {
+ $nomligne = $_REQUEST['nomligne'];
+
+ if (!empty($_REQUEST['del'])) {
+ exec("/home/web/spam/effacerBlacklist $nomligne {$_SESSION['username']}");
+ $page->assign('erreur', "Action: DEL($nomligne)");
+ } else if (!empty($_REQUEST['add'])) {
+ exec("/home/web/spam/ajouterBlacklist ".$nomligne);
+ $page->assign('erreur', "Action: ADD($nomligne)");
+ }
+}
+
+$blacklist = Array();
+$fd = fopen ("/etc/postfix/spamaccess", "r");
+while (!feof ($fd)) {
+ $buffer = fgets($fd, 4096);
+ if ($buffer[0]!='#' && (strlen($buffer)>1) { # FIXME $string[i] is deprecated
+ $blacklist[] = $buffer;
+ }
+}
+fclose($fd);
+
+$page->assign_by_ref('list',$blacklist);
+$page->assign('title','Bannis de polytechnique.org');
+$page->assign('expl','Ne mettre dans les cases que des emails (aucun espace ni commentaire supplémentaire)');
+$page->display();
+?>
--- /dev/null
+<?php
+require("auto.append.inc.php");
+new_admin_page('admin/postfix.common.tpl');
+
+if(isset($_REQUEST['nomligne'])) {
+ $nomligne = $_REQUEST['nomligne'];
+
+ if (!empty($_REQUEST['del'])) {
+ exec("/home/web/spam/effacerPermissions $nomligne {$_SESSION['username']}");
+ $page->assign('erreur', "Action: DEL($nomligne)");
+ } else if (!empty($_REQUEST['add'])) {
+ exec("/home/web/spam/ajouterPermissions '".$nomligne."'");
+ $page->assign('erreur', "Action: ADD($nomligne)");
+ }
+}
+
+$permis = Array();
+$fd = fopen ("/etc/postfix/spampermis", "r");
+while (!feof ($fd)) {
+ $buffer = fgets($fd, 4096);
+ if ($buffer[0]!='#' && (strlen($buffer)>1) { # FIXME $string[i] is deprecated
+ $permis[] = $buffer;
+ }
+}
+fclose($fd);
+
+$page->assign_by_ref('list',$blacklist);
+$page->assign('title','Permissions de polytechnique.org');
+$page->assign('expl','On peut placer dans les cases les emails de personnes pouvant diffuser sans restriction.');
+$page->display();
+?>
--- /dev/null
+<?php
+require("auto.append.inc.php");
+new_admin_page('admin/postfix.common.tpl');
+
+if (isset($_REQUEST["del"]) && !empty($_REQUEST["del"])) {
+ exec("/home/web/spam/effacerRetardes ".$_REQUEST["nomligne"]);
+ $page->assign('erreur', "Action: DEL({$_REQUEST['nomligne']})");
+}
+
+$retard = Array();
+$fd = fopen ("/etc/postfix/spamdefer", "r");
+
+while (!feof ($fd)) {
+ $buffer = fgets($fd, 4096);
+ if ($buffer[0]!='#' && (strlen($buffer)>1) { # FIXME $string[i] is deprecated
+ $retard[] = $buffer;
+ }
+}
+fclose($fd);
+
+$page->assign_by_ref('list',$blacklist);
+$page->assign('title','Mails retardés de polytechnique.org');
+$page->assign('expl','Les envoyeurs ici présents verront leurs mails retardés toutes les heures jusqu\'au délai de 5j (bounce). Placer ici uniquement des emails (pas de commentaires).');
+$page->display();
+?>
--- /dev/null
+<?php
+require("auto.prepend.inc.php");
+require("domaine.inc.php");
+
+new_skinned_page('domaineperso.tpl', AUTH_MDP);
+
+if (isset($_REQUEST['dnom']))
+ $page->assign('result', add_domain($_REQUEST['dnom']));
+
+$domaines = liste_domaines():
+
+$page->assign('nb_dom',count($domaines));
+$page->assign_by_ref('domaines',$domaines);
+
+$page->display();
+?>
--- /dev/null
+<?php
+require("auto.prepend.inc.php");
+new_skinned_page('dons.tpl', AUTH_COOKIE);
+$page->display();
+?>
--- /dev/null
+<?php
+require("auto.prepend.inc.php");
+require("validations.inc.php");
+
+new_skinned_page('epouse.tpl', AUTH_MDP);
+
+$res = mysql_query("select u.nom,u.epouse,i.flags from auth_user_md5 as u
+ left join identification as i using(matricule)
+ where user_id=".$_SESSION['uid']);
+list($nom,$epouse_old,$flags) = mysql_fetch_row($res);
+$flags=new flagset($flags);
+$page->assign('not_femme',!$flags->hasflag("femme"));
+
+$epouse = replace_accent(trim(clean_request('epouse')));
+$epouse = strtoupper($epouse);
+$page->assign('epouse_req',$epouse);
+
+if (!empty($_REQUEST['submit']) && ($epouse != $epouse_old)) {
+ // on vient de recevoir une requete, differente de l'ancien nom de mariage
+ if ($epouse == $nom) {
+ $page->assign('same',true);
+ } else { // le nom de mariage est distinct du nom à l'X
+ // on calcule l'alias pour l'afficher
+ $myepouse = new EpouseReq($_SESSION['uid'], $_SESSION['username'], $epouse);
+ list($prenom_username,) = explode('.',$_SESSION['username']);
+ $alias_old=make_username($prenom_username,$epouse_old);
+ $myepouse->submit();
+
+ $page->assign('epouse_old',$epouse_old);
+ $page->assign('alias_old',$alias_old);
+ $page->assign('myepouse',$myepouse);
+ }
+}
+
+$page->display($flags->hasflag("femme") ? '' : 'not_femme');
+?>
--- /dev/null
+<?php
+
+/* Ce script donne un challenge et un numéro de session afin de permettre l'extraction de données pour eConfiance tout en procédant à une identification préalable... */
+
+session_start();
+session_register("chall");
+$_SESSION["chall"] = uniqid(rand(), 1);
+echo $_SESSION["chall"] . "\n" . session_id();
+
+?>
--- /dev/null
+<?php
+
+/* Script permettant l'export de la liste des membres de la mailing list eConfiance, pour intégration par J-P Figer dans la liste des membres de X-Informatique */
+
+session_start();
+
+$cle = "186357043dcbe666ba6cb8.04581835";
+
+if (isset($_SESSION["chall"]) && $_SESSION["chall"] != "" && $_GET["PASS"] == md5($_SESSION["chall"].$cle)) {
+
+require("db_connect.inc.php");
+
+$all = mysql_query("SELECT prenom,nom,username FROM auth_user_md5 as u,listes_ins as i WHERE i.idu=u.user_id AND i.idl=174 AND i.idu != 0 ORDER BY nom");
+
+$res = "<?xml version=\"1.0\" encoding=\"ISO-8859-1\"?>\n\n<membres>\n\n";
+
+while (list ($prenom1,$nom1,$email1) = mysql_fetch_row($all)) {
+ $res .= "<membre>\n";
+ $res .= "\t<nom>".$nom1."</nom>\n";
+ $res .= "\t<prenom>".$prenom1."</prenom>\n";
+ $res .= "\t<email>".$email1."</email>\n";
+ $res .= "</membre>\n\n";
+}
+mysql_free_result($all);
+
+$res .= "</membres>\n\n";
+
+echo $res;
+
+}
+
+?>
--- /dev/null
+<?php
+require("auto.prepend.inc.php");
+require("domaine.inc.php");
+
+new_skinned_page('groupex/index.tpl');
+
+$domaines = liste_domaines():
+
+$page->assign('nb_dom',count($domaines));
+$page->assign_by_ref('domaines',$domaines);
+
+$page->display();
+?>
// affichage des evenements
// annonces promos triées par présence d'une limite sur les promos
// puis par dates croissantes d'expiration
-$res = mysql_query(
- "SELECT e.id,e.titre,e.texte,a.username,a.nom,a.prenom,a.promo
+$sql = "SELECT e.id,e.titre,e.texte,a.username,a.nom,a.prenom,a.promo
FROM evenements AS e INNER JOIN auth_user_md5 AS a
ON e.user_id=a.user_id
WHERE FIND_IN_SET(flags, 'valide') AND peremption >= NOW()
AND (e.promo_min = 0 || e.promo_min <= {$_SESSION['promo']})
AND (e.promo_max = 0 || e.promo_max >= {$_SESSION['promo']})
- ORDER BY (e.promo_min != 0 AND e.promo_max != 0) DESC, e.peremption");
-$evenement = Array();
-while($evenement[] = mysql_fetch_assoc($res));
-@array_pop($evenement);
-mysql_free_result($res);
-$page->assign_by_ref('evenement', $evenement);
+ ORDER BY (e.promo_min != 0 AND e.promo_max != 0) DESC, e.peremption";
+$page->mysql_assign($sql, 'evenement');
+
$page->display();
?>
--- /dev/null
+<?php
+require("auto.prepend.inc.php");
+new_skinned_page('pattecassee.tpl',AUTH_COOKIE);
+
+function valide_email($str) {
+
+ $em = trim(rtrim($str));
+ $em = str_replace("<", "", $em);
+ $em = str_replace(">", "", $em);
+ list($ident, $dom) = explode("@", $em);
+ if ($dom == "m4x.org" or $dom == "polytechnique.org") {
+ list($ident1) = explode("_", $ident);
+ list($ident) = explode("+", $ident1);
+ }
+ return $ident . "@" . $dom;
+}
+
+if (array_key_exists('email', $_GET) && array_key_exists('action', $_GET)) {
+ $email = valide_email($_GET['email']);
+ // vérifications d'usage
+ $sel = mysql_query(
+ "SELECT e.uid, a.username
+ FROM emails AS e
+ INNER JOIN auth_user_md5 AS a ON e.uid = a.user_id
+ WHERE e.email='$email'");
+ if (list($uid, $dest) = mysql_fetch_row($sel)) {
+ // envoi du mail
+ $message = "Bonjour !
+
+Ce mail a été généré automatiquement par le service de patte cassée de
+Polytechnique.org car un autre utilisateur, "
+.$_SESSION["prenom"]." ".$_SESSION["nom"].",
+nous a signalé qu'en t'envoyant un mail, il avait reçu un message d'erreur
+indiquant que ton adresse de redirection " . $email . "
+ne fonctionnait plus !
+
+Nous te suggérons de vérifier cette adresse, et le cas échéant de mettre
+à jour sur le site <https://www.polytechnique.org/emails.php> tes adresses
+de redirection...
+
+Pour plus de rensignements sur le service de patte cassée, n'hésites pas à
+consulter la page <https://www.polytechnique.org/pattecassee.php>.
+
+
+A bientôt sur Polytechnique.org !
+L'équipe d'administration <support@polytechnique.org>";
+
+ $mail = new DiogenesMailer('Polytechnique.org <support@polytechnique.org>', $dest, "Une de tes adresse de redirection Polytechnique.org ne marche plus !!", false);
+ $mail->setBody($message);
+ $mail->send();
+ $page->assign('erreur', "Mail envoyé ! :o)");
+ }
+} else if (array_key_exists('email', $_POST)) {
+ $email = valide_email($_POST['email']);
+ $page->assign('email',$email);
+ $sel = mysql_query("SELECT e1.uid, e1.panne != 0 AS panne, count(e2.uid) AS nb_mails, u.nom, u.prenom, u.promo"
+ ." FROM emails as e1"
+ ." LEFT JOIN emails as e2 ON(e1.uid = e2.uid AND FIND_IN_SET('active', e2.flags) AND e1.num != e2.num)"
+ ." INNER JOIN auth_user_md5 as u ON(e1.uid = u.user_id)"
+ ." WHERE e1.email ='$email'"
+ ." GROUP BY e1.uid");
+ if ($x = mysql_fetch_assoc($sel)) {
+ // on écrit dans la base que l'adresse est cassée
+ if (!$x['panne'])
+ mysql_query("UPDATE emails SET panne='".date("Y-m-d")."' WHERE email = '".$email."'");
+ $page->assign_by_ref('x',$x);
+ }
+}
+
+$page->display();
+?>
--- /dev/null
+<?php
+require("nonhtml.inc.php");
+
+$requete="SELECT e.id,e.titre,e.texte FROM evenements AS e WHERE FIND_IN_SET(flags, 'valide') AND peremption >= NOW()";
+
+if (isset($_REQUEST["promo"])) {
+ $requete.=" AND (e.promo_min = 0 || e.promo_min <= {$_REQUEST['promo']}) AND (e.promo_max = 0 || e.promo_max >= {$_REQUEST['promo']})";
+ $page->assign('promo',$_REQUEST["promo"]);
+}
+
+$requete.=" ORDER BY (e.promo_min != 0 AND e.promo_max != 0) DESC, e.peremption";
+$page->msyql_assign($requete,'rss');
+
+header("Content-Type: text/xml");
+$page->display('rss.tpl');
+?>
--- /dev/null
+<?php
+require("auto.prepend.inc.php");
+new_skinned_page('sendmail.tpl',AUTH_MDP,true);
+
+// action si on recoit un formulaire
+if (isset($_REQUEST['submit']) and $_REQUEST['submit'] == 'Envoyer'
+ and isset($_REQUEST['to']) and isset($_REQUEST['sujet'])
+ and isset($_REQUEST['contenu']) and isset($_REQUEST['cc'])
+ and isset($_REQUEST['bcc'])) {
+ $autre_to = (isset($_REQUEST['contacts']) ? join(', ',$_REQUEST['contacts']) : '');
+
+ if ($_REQUEST['to'] == '' and $_REQUEST['cc'] == '' and $autre_to == '') {
+ echo "<p class=\"erreur\">\n Indique au moins un destinataire.\n</p>\n";
+ } else {
+ if (get_magic_quotes_gpc()) {
+ $_REQUEST['contenu'] = str_replace('\r', '', stripslashes($_REQUEST['contenu']));
+ $_REQUEST['to'] = stripslashes($_REQUEST['to']);
+ $_REQUEST['sujet'] = stripslashes($_REQUEST['sujet']);
+ $_REQUEST['from'] = stripslashes($_REQUEST['from']);
+ $_REQUEST['cc'] = stripslashes($_REQUEST['cc']);
+ $_REQUEST['bcc'] = stripslashes($_REQUEST['bcc']);
+ $autre_to = stripslashes($autre_to);
+ }
+ require("mailer.inc.php");
+ $FROM = "From: {$_REQUEST['from']}";
+ //$_REQUEST['contenu'] = chunk_split($_REQUEST['contenu'], 76, "\n"); // pas bon, ne tient pas compte des mots
+ $dest = $_REQUEST['to'].', '.$autre_to;
+ $mymail = new mailer($_SESSION['username'], $dest, $_REQUEST['sujet'], false, $_REQUEST['cc'], $_REQUEST['bcc']);
+ $mymail->addHeader($FROM);
+ $mymail->setBody(wordwrap($_REQUEST['contenu'],72,"\n"));
+ if ($mymail->send()) {
+ $page->assign('error',"Ton mail a bien été envoyé.");
+ $_REQUEST = array();
+ } else {
+ $page->assign('error',"Erreur lors de l'envoi du courriel, réessaye.\n");
+ }
+ } // ! if ($_REQUEST['to'] == '' and $_REQUEST['cc'] == '')
+}
+
+$sql = "SELECT u.prenom, u.nom, u.promo, u.username
+ FROM auth_user_md5 as u, contacts as c
+ WHERE u.user_id = c.contact AND c.uid = {$_SESSION['uid']}
+ ORDER BY u.nom, u.prenom";
+$page->mysql_assoc($sql, 'contacts','nb_contacts');
+
+$page->display();
+?>
set_skin();
}
-$res = mysql_query("SELECT id,skin_tpl,skin_popup,snapshot,name,s.date,comment,auteur,count(*) AS nb FROM skins AS s
- LEFT JOIN auth_user_md5 AS a ON s.id=a.skin
- WHERE !FIND_IN_SET('cachee',type) AND skin_tpl != ''
- GROUP BY id ORDER BY s.date DESC");
-echo mysql_error();
-$skins = Array();
-while($skins[] = mysql_fetch_assoc($res));
-mysql_free_result($res);
-array_pop($skins);
-
-$page->assign_by_ref('skins',$skins);
+$sql = "SELECT id,skin_tpl,skin_popup,snapshot,name,s.date,comment,auteur,count(*) AS nb FROM skins AS s
+ LEFT JOIN auth_user_md5 AS a ON s.id=a.skin
+ WHERE !FIND_IN_SET('cachee',type) AND skin_tpl != ''
+ GROUP BY id ORDER BY s.date DESC";
+$page->mysql_assign($sql, 'skins');
$page->assign('stochaskin',SKIN_STOCHASKIN_ID);
$page->display();
--- /dev/null
+<?php
+require("auto.prepend.inc.php");
+new_skinned_page('stats/coupure.tpl',
+
+if (isset($_REQUEST['cp_id']))
+ $res=mysql_query("select UNIX_TIMESTAMP(debut) AS debut, TIME_FORMAT(duree,'%kh%i') AS duree, resume, description, services from coupures where id='{$_REQUEST['cp_id']}'");
+else
+ $res="";
+
+if(($res)&&($cp == mysql_fetch_assoc($res))) {
+ $page->assign_by_ref('cp',$cp);
+} else {
+ $beginning_date = date("Ymd", time() - 3600*24*21) . "000000";
+ $sql = "select id, UNIX_TIMESTAMP(debut) as debut, resume, services from coupures where debut > '" . $beginning_date
+ . "' order by debut desc";
+ $page->mysql_assign($sql, 'coupures');
+}
+
+$page->display();
+?>
--- /dev/null
+<?php
+require("auto.prepend.inc.php");
+new_skinned_page('index.tpl',AUTH_COOKIE);
+
+
+// genere le graph de l'evolution du nombre d'inscrits dans une promotion
+
+$promo = (isset($_REQUEST['promo']) ? intval($_REQUEST["promo"]) : $_SESSION["promo"]);
+
+//nombre de jours sur le graph
+$JOURS=364;
+define('DUREEJOUR',24*3600);
+
+//recupere le nombre d'inscriptions par jour sur la plage concernée
+$donnees=mysql_query("SELECT if(date_ins>DATE_SUB(NOW(),INTERVAL $JOURS DAY), TO_DAYS(date_ins)-TO_DAYS(NOW()), ".(-($JOURS+1)).") AS jour,
+ count(username) AS nb
+ FROM auth_user_md5 WHERE promo = $promo GROUP BY jour");
+
+//genere des donnees compatibles avec GNUPLOT
+$inscrits='';
+
+// la première ligne contient le total des inscrits avant la date de départ (J - $JOURS)
+list(,$init_nb)=mysql_fetch_row($donnees);
+$total = $init_nb;
+
+list($numjour, $nb) = mysql_fetch_row($donnees);
+for ($i=-$JOURS;$i<=0;$i++) {
+ if ($numjour<$i) {
+ if(!list($numjour, $nb) = mysql_fetch_row($donnees)) {
+ $numjour = 0;
+ $nb = 0;
+ }
+ }
+ if ($numjour==$i) $total+=$nb;
+ $inscrits .= date('d/m/y',$i*DUREEJOUR+time())." ".$total."\n";
+}
+
+//Genere le graphique à la volée avec GNUPLOT
+header( "Content-type: image/png");
+
+$gnuplot="gnuplot <<EOF\n";
+$param1="set term png small color\nset size 640/480\nset xdata time\nset timefmt \"%d/%m/%y\"\n";
+$param2="set format x \"%m/%y\"\nset yr [".round($init_nb*0.90,0).":]\n";
+$title="set title \"Nombre d'inscrits de la promotion ".$promo."\"\n";
+$plot="plot \"-\" using 1:2 title 'inscrits' with lines;\n".$inscrits."e\nEOF\n";
+$plot_command=$gnuplot.$param1.$param2.$title.$plot;
+
+passthru($plot_command);
+?>
while(list($promo,$nb)=mysql_fetch_row($result)) {
$promo=intval($promo);
if(!isset($nbpromo[$promo/10]))
- $nbpromo[$promo/10] = Array('','', '','', '','', '','', '','');
- $nbpromo[$promo/10][$promo%10]=$nb;
+ $nbpromo[$promo/10] = Array('','','','','','','','','',''); // tableau de 10 cases vides
+ $nbpromo[$promo/10][$promo%10]=Array('promo' => $promo, 'nb' => $nb);
}
$page->assign_by_ref('nbs', $nbpromo);
--- /dev/null
+<?php
+require("auto.prepend.inc.php");
+new_skinned_page("stats/parselog.tpl");
+
+$page->display();
+?>
--- /dev/null
+<?php
+require("auto.prepend.inc.php");
+new_skinned_page("stats/stats_promo.tpl", AUTH_COOKIE);
+
+$promo = isset($_REQUEST["promo"]) ? intval($_REQUEST["promo"]) : $_SESSION["promo"];
+$page->assign('promo',$promo);
+$page->display();
+?>
<?php
-require("auto.prepend.inc.php");
-require("Smarty.class.php");
+require("nonhtml.inc.php");
function quoted_printable_encode($input, $line_max = 76) {
$hex = array('0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F');
return quoted_printable_encode($res);
}
-
-$page = new smarty();
-$page->template_dir = $globals->spoolroot . "/templates/";
-$page->compile_dir = $globals->spoolroot . "/templates_c/";
-$page->plugins_dir[]= $globals->spoolroot . "/plugins/";
-$page->cache_dir = $globals->spoolroot . "/cache/";
-$page->compile_check = true;
-$page->caching = false;
-
$page->register_modifier('qp_enc', 'quoted_printable_encode');
$page->register_function('format_adr', 'format_adr');
--- /dev/null
+<?php
+/** liste les domaines présents dans le result mysql donné
+* @see domaineperso.php
+* @see groupex.php
+* @return Array
+*/
+function liste_domaines() {
+
+ // on récupère la liste des domaines gérables par l'utilisateur
+ $sql = "SELECT domain FROM groupex.aliases as d ".
+ ($_SESSION['perms'] == 'admin'?'':', groupex.gestionnaires as g').
+ " WHERE domain NOT LIKE '%@%'".
+ ($_SESSION['perms'] == 'admin'?'':" AND g.did = d.id AND g.uid = {$_SESSION['uid']}").
+ " ORDER BY domain";
+
+ $result = mysql_query($sql);
+
+ $ret = Array();
+ while (list($domaine) = mysql_fetch_row($result)) {
+ $ret[] = $domaine;
+ }
+ mysql_free_result($result);
+
+ return $ret;
+}
+
+/** ajoute domaine
+* @param $domaine nom du domaine
+* @return string message indiquant le succes ou l'echec de l'ajout de domaine
+* @see domaineperso.php
+*/
+function add_domain($domaine) {
+ if ($_SESSION['perms'] == 'admin') {
+ $ok = true;
+ } else { // si pas admin, on verifie qu'il n'a pas deja de domaine
+ $sql = "SELECT 1 FROM groupex.aliases AS a, groupex.gestionnaires AS g
+ WHERE g.uid = {$_SESSION['uid']} AND a.id = g.did AND a.domain NOT LIKE '%@%'
+ AND a.domain NOT LIKE '%polytechnique.org'";
+ $result = mysql_query($sql);
+ $ok = (mysql_num_rows($result) < 1);
+ }
+ if ($ok) {
+ // ok, ajout du domaine et des droits d'utilisation (sauf si admin)
+ if(mysql_query("insert into groupex.aliases set domain = '$domaine'")) {;
+ $did = mysql_insert_id();
+ if ($_SESSION['perms'] != 'admin')
+ if(mysql_query("INSERT INTO groupex.gestionnaires SET did = $did, uid = {$_SESSION['uid']}"))
+ return "<p class='erreur'>Félicitations, ton domaine a été ajouté aux domaines gérés par Polytechnique.org.\n"
+ . "Clique sur le lien ci-dessous pour lui ajouter des alias</p>\n";
+ } else
+ return "<p class='erreur'>Erreur : ".mysql_error()."</p>\n";
+ } else {
+ return "<p class=\"erreur\">Tu as déjà un nom de domaine perso, tu ne peux pas en avoir plusieurs.</p>\n";
+ }
+}
+
+?>
--- /dev/null
+<?php
+
+function smarty_insert_serv_to_str($params, &$smarty) {
+ $flags = explode(',',implode(',',$params));
+ $ret = Array();
+ foreach($flags as $flag)
+ switch($flag) {
+ case "web":
+ $ret[] = "site web";
+ break;
+ case "mail":
+ $ret[] = "redirection mail";
+ break;
+ case "smtp":
+ $ret[] = "serveur sécurisé d'envoi de mails";
+ break;
+ case "nntp":
+ $ret[] = "serveur des forums de discussion";
+ break;
+ }
+ return implode(', ',$ret);
+}
+
+?>
--- /dev/null
+<?php
+ini_set('include_path', ".:..:/home/x2000habouzit/dev/public/include:/home/x2000habouzit/dev/diogenes/lib/:/home/x2000habouzit/dev/smarty/");
+require("xorg.globals.inc.php");
+require("Smarty.class.php");
+
+$page = new Smarty();
+
+$page->template_dir = $globals->spoolroot . "/templates/";
+$page->compile_dir = $globals->spoolroot . "/templates_c/";
+$page->plugins_dir[]= $globals->spoolroot . "/plugins/";
+$page->cache_dir = $globals->spoolroot . "/cache/";
+
+$page->config_overwrite=false;
+$page->compile_check=true;
+$page->caching=false;
+?>
<td colspan="2"><pre>{$texte}</pre></td>
</tr>
<tr>
- <td class="bouton" colspan="2">
+ <td class="center" colspan="2">
<input type="submit" name="submit" value="Accepter" />
<input type="submit" name="submit" value="Refuser" />
</td>
<td>{$this->comment}</td>
</tr>
<tr>
- <td class="bouton" colspan="2">
+ <td class="center" colspan="2">
<input type="submit" name="action" value="Valider" />
<input type="submit" name="action" value="Invalider" />
<input type="submit" name="action" value="Supprimer" />
global $no_update_bd;
if($no_update_bd) return false;
- require_once("flagset.inc.php");
- $type = new flagset();
+ $type = new DiogenesFlagset();
if ($this->libre) $type->addflag('libre');
if ($this->publique) $type->addflag('publique');
if ($this->archive) $type->addflag('archive');
</tr>
<tr>
<td style="vertical-align: middle;" colspan="2">
- <img src="../getphoto.php?x={$this->uid}$url_app" width=110 alt=" [ PHOTO ] " />
- <img src="../getphoto.php?x={$this->uid}&req=true$url_app" width=110 alt=" [ PHOTO ] " />
+ <img src="../getphoto.php?x={$this->uid}$url_app" style="width:110px;" alt=" [ PHOTO ] " />
+ <img src="../getphoto.php?x={$this->uid}&req=true$url_app" style="width:110px;" alt=" [ PHOTO ] " />
</td>
</tr>
<tr>
}
function make_id($append_to_id="") {
- $ret = str_replace('/','|',$this->_tpl);
+ $ret = $this->_tpl;
if($append_to_id)
$ret.="|$append_to_id";
function doAuth() { }
+ function mysql_assign($sql_query,$var_name,$var_nb_name='') {
+ $sql = mysql_query($sql_query);
+ if(mysql_errno($sql))
+ return(mysql_error($sql));
+
+ $array = Array();
+ while($array[] = mysql_fetch_assoc($sql));
+ array_pop($array);
+ mysql_free_result($sql);
+
+ $this->assign_by_ref($var_name,$array);
+ if(!empty($var_nb_name))
+ $this->assign($var_nb_name, count($array));
+ return 0;
+ }
+
}
# tag interdits en xhtml
print STDERR "${red}XHTML error: ${yel}<$1> ${blu}($file)${gra}\n"
- if($tag =~ /^(b|i|u|center)( |$)/);
+ if($tag =~ /^(b|i|u|big|small|font|center)( |$)/);
print STDERR "${red}XHTML error: ${yel}<$1> sans '/' ${blu}($file)${gra}\n"
if($tag =~ /^(br|hr|img|link|input)( [^\/]*)?$/);
+
+ print STDERR "${red}XHTML error: ${yel}attribut $1 ${blu}($file)${gra}\n"
+ if($tag =~ / (align|width|border|color|valign)=/);
# récupération des classes utilisées ...
if($tag =~ /^(\w+).* class=('{[^}]*}'|"{[^}]*}"|'[^{}']*'|"[^{}"]*")/) {
-{* $Id: acces_smtp.tpl,v 1.2 2004-02-02 11:48:35 x2000habouzit Exp $ *}
+{* $Id: acces_smtp.tpl,v 1.3 2004-02-04 19:47:47 x2000habouzit Exp $ *}
{dynamic on="0$message"}
<p class="erreur">
{/if}
</p>
<form action="{$smarty.server.REQUEST_URI}" method="POST" name="smtppass_form" id="smtppass_form">
- <table class="tinybicol" cellpadding="3" border="0" summary="Définition du mot de passe">
+ <table class="tinybicol" cellpadding="3" summary="Définition du mot de passe">
<tr>
<th colspan="2">
Définition du mot de passe
--- /dev/null
+{* $Id: acces_wap.tpl,v 1.1 2004-02-04 19:47:47 x2000habouzit Exp $ *}
+
+{if $OK}
+<p class="erreur">
+ Configuration du site WAP enregistrée.
+</p>
+{else}
+<div class="rubrique">Paramètre du site WAP</div>
+
+<p class="normal">
+ Tu peux utiliser certaines fonctionnalités du site Polytechnique.org sur un terminal WAP.<br />
+ (téléphone portable, PDA, ...)<br />
+ Il est disponible à l'adresse https://wap.polytechnique.org (# TODO # adresse de devel: http://wap.m4x.org/?u=prenom.nom&p=passsmtp)<br />
+ <a href="docs/doc_wap.php">Pourquoi et comment</a> utiliser le site WAP de Polytechnique.org. (##TODO## à ecrire)<br />
+</p>
+<p class="normal">
+ Pour utiliser le site WAP, il faut que tu l'actives explicitement en cochant la case ci dessous.
+</p>
+{dynamic}
+<form action="{$smarty.server.REQUEST_URI}" method="POST" name="wap_form">
+ <table class="bicol" cellpadding="3" summary="Paramètres généraux du site WAP">
+ <tr>
+ <th colspan="2">
+ Paramètres généraux du site WAP
+ </th>
+ </tr>
+ <tr>
+ <td class="titre">
+ Activer l'accès WAP:
+ </td>
+ <td>
+ <input type="checkbox" name="actif" {if $wap.actif}checked="checked"{/if} />
+ </td>
+ </tr>
+ <tr>
+ <td class="titre">
+ Terminal affichant les images:
+ </td>
+ <td>
+ <input type="checkbox" name="useimage" {if $wap.useimage}checked="checked"{/if} />
+ </td>
+ </tr>
+ <tr>
+ <td class="titre">
+ Largeur de l'écran (pixels):
+ </td>
+ <td>
+ <input type="text" name="screenwidth" size="4" value="{$wap.screenwidth}" />
+ </td>
+ </tr>
+ <tr>
+ <td class="titre">
+ Hauteur de l'écran (pixels):
+ </td>
+ <td>
+ <input type="text" name="screenwidth" size="4" value="{$wap.screenheight}" />
+ </td>
+ </tr>
+ </table>
+
+ <p class="normal">
+ La largeur et la hauteur de l'écran sont juste utilisé à titre <strong>indicatif</strong> pour améliorer l'affichage des photos.
+ Si vous ne les connaissez pas, vous pouvez les laisser à la valeur par défaut ou faire des essais successifs.<br />
+ </p>
+ <br />
+ <table class="bicol" cellpadding="3" summary="Envoi de mail">
+ <tr>
+ <th colspan="2">
+ Paramètres pour l'envoi de mail
+ </th>
+ </tr>
+ <tr>
+ <td class="titre">
+ Adresse de l'expéditeur:
+ </td>
+ <td>
+ <select name="fromaddr">
+ <option value="m4x" {if $wap.fromaddr eq "m4x"}selected="selected"{/if}>
+ {$smarty.session.username}@m4x.org
+ </option>
+ <option value="polytechnique" {if $wap.fromaddr eq "polytechnique"}selected="selected"{/if}>
+ {$smarty.session.username}@polytechnique.org
+ </option>
+ <option value="autre" {if $wap.fromaddr eq "autre"}selected="selected"{/if}>
+ Autre...
+ </option>
+ </select>
+ </td>
+ </tr>
+ <tr>
+ <td class="titre">
+ (si autre)
+ </td>
+ <td>
+ <input type="text" name="otheraddr" size="60" value="{$wap.otheraddr}" />
+ </td>
+ </tr>
+ <tr>
+ <td class="titre">
+ Mettre mon adresse en CC:
+ </td>
+ <td>
+ <input type="checkbox" name="ccfrom" {if $wap.ccfrom}checked="checked"{/if} />
+ </td>
+ </tr>
+ </table>
+ <p class="normal">
+ <br/>
+ Si votre boite mail est sur un serveur <strong>IMAP</strong>, vous pouvez activer la lecture de vos mails depuis le site WAP.
+ </p>
+ <table class="bicol" cellpadding="3" summary="Lecture des mails">
+ <tr>
+ <th colspan="2">
+ Paramètres pour la lecture des mails
+ </th>
+ </tr>
+ <tr>
+ <td class="titre">
+ Serveur IMAP:
+ </td>
+ <td>
+ <input type="text" name="IMAPserver" size="40" value="{$wap.IMAPserver}" />
+ </td>
+ </tr>
+ <tr>
+ <td class="titre">
+ Utiliser le SSL:
+ </td>
+ <td>
+ <input type="checkbox" name="IMAPssl" {if $wap.IMAPssl}checked="checked"{if} />
+ </td>
+ </tr>
+ <tr>
+ <td class="titre">
+ Port:
+ </td>
+ <td>
+ <input type="text" name="IMAPport" size="10" value="{$wap.IMAPport}" />
+ </td>
+ </tr>
+ <tr>
+ <td class="titre">
+ Répertoire à lire:
+ </td>
+ <td>
+ <input type="text" name="IMAPdir" size="40" value="{$wap.IMAPdir}" />
+ </td>
+ </tr>
+ </table>
+ <br />
+ <div class="center">
+ <input type="hidden" name="op" value="valid" />
+ <input type="submit" value="Valider" />
+ </div>
+</form>
+{/dynamic}
+{/if}
+
+{* vim:set et sw=2 sts=2 sws=2: *}
--- /dev/null
+{* $Id: ax-xorg.tpl,v 1.1 2004-02-04 19:47:47 x2000habouzit Exp $ *}
+
+<div class="rubrique">
+ Vérifier notre table de correspondance entre l'annuaire de l'AX et le nôtre
+</div>
+
+<div class="ssrubrique">
+ Liste des camarades qui n'apparaissent pas sous le même nom dans les deux annuaires
+</div>
+
+{dynamic}
+<table class="bicol" summary="liste des absents de notre annuaire">
+ <tr>
+ <th>Promo</th>
+ <th>Nom X.org</th> <th>Prénom X.org</th> <th>Mat X.org</th>
+ <th>Nom AX</th> <th>Prénom AX</th> <th>Mat AX</th>
+ </tr>
+{foreach item=x from=$diff}
+ <tr class="{cycle values="impair,pair"}">
+ <td>{$x.promo}</td>
+ <td>{$x.nom}</td> <td>{$x.prenom}</td> <td>{$x.mat}</td>
+ <td>{$x.nomax}</td> <td>{$x.prenomax}</td> <td>{$x.matax}</td>
+ </tr>
+{/foreach}
+</table>
+
+<p class="normal">
+ <strong>{$nb_diffs} camarades ont un état civil différent dans les 2 annuaires.</strong>
+</p>
+{/dynamic}
+
+<br />
+<br />
+
+<div class="ssrubrique">
+ Liste des camarades de l'annuaire de l'AX qui manquent à notre annuaire
+</div>
+
+{dynamic}
+<table class="bicol" summary="liste des absents de notre annuaire">;
+ <tr>
+ <th>Promo</th> <th>Nom</th> <th>Prénom</th>
+ </tr>
+{foreach item=x from=$mank}
+ <tr class="{cycle values="impair,pair"}">
+ <td>{$x.promo}</td>
+ <td>{$x.nom} {if $x.nom_patro neq $x.nom}({$c.nom_patro}){/if}</td>
+ <td>{$x.prenom}</td>
+ </tr>
+{/foreach}
+</table>
+<p class="normal">
+ <strong>{$nb_mank} camarades sont absents de notre annuaire.</strong>
+</p>
+{/dynamic}
+
+<br />
+<br />
+
+<div class="ssrubrique">
+ Liste des camarades de notre annuaire qui ne sont pas dans l'annuaire de l'AX
+</div>
+
+{dynamic}
+<table class="bicol" summary="liste des absents de l'AX">
+ <tr>
+ <th>Promo</th> <th>Nom</th> <th>Prénom</th>
+ </tr>
+{foreach item=x from=$plus}
+ <tr class="{cycle values="impair,pair"}">
+ <td>{$x.promo}</td> <td>{$x.nom}</td> <td>{$x.prenom}</td>
+ </tr>
+{/foreach}
+</table>
+
+<p class="normal">
+ <strong>{$nb_plus} camarades sont absents de notre annuaire.</strong>
+</p>
+{/dynamic}
+
+{* vim:set et sw=2 sts=2 sws=2: *}
--- /dev/null
+{* $Id: deces_promo.tpl,v 1.1 2004-02-04 19:47:47 x2000habouzit Exp $ *}
+
+<form action="{$smarty.server.PHP_SELF}" method="post">
+<table class="bicol">
+ <tr>
+ <td><input type="submit" value="<<" name="sub10" /></td>
+ <td><input type="submit" value="<" name="sub01" /></td>
+ <td>
+ Promotion :
+{dynamic}
+ <input type="text" name="promo" value="{$promo}" size="4" maxlength="4" />
+{/dynamic}
+ <input type="submit" value="GO" />
+ </td>
+ <td><input type="submit" value=">" name="add01" /></td>
+ <td><input type="submit" value=">>" name="add10" /></td>
+ </tr>
+</table>
+</form>
+
+<form action="{$smarty.server.PHP_SELF}" method="post">
+<input type="hidden" name="promo" value="{$promo}" />
+<table class="bicol" summary="liste des dates de décès">
+ <tr>
+ <th>Nom</th>
+ <th>Date de décès</th>
+ </tr>
+{dynamic}
+{foreach item=x from=$decedes}
+ <tr class="{cycle values="impair,pair"}">
+ <td>{$x.nom} {$x.prenom}</td>
+ <td class="center">
+ <input type="text" name="{$x.matricule}" value="{$x.deces}" size="10" maxlength="10">
+ </td>
+ </tr>
+{/foreach}
+{/dynamic}
+ <tr>
+ <td class="center">
+ <input type="submit" name="valider" value="Valider" />
+ </td>
+ </tr>
+</table>
+</form>
+
+{* vim:set et sw=2 sts=2 sws=2: *}
--- /dev/null
+{* $Id: index.tpl,v 1.1 2004-02-04 19:47:47 x2000habouzit Exp $ *}
+
+<div class="rubrique">Administration Polytechnique.org</div>
+
+<table class="bicol" cellpadding="3" summary="Système">
+<tr><th>Système</th></tr>
+<tr class="impair"><td>
+ <strong>Postfix : </strong>
+ <a href="postfix_blacklist.php">Blacklist</a> |
+ <a href="postfix_perm.php">Permissions</a> |
+ <a href="postfix_retardes.php">Retards</a>
+</td></tr>
+<tr class="pair"><td>
+ <strong>Statistiques : </strong>
+ <a href="../stats/admin.html">Système</a> |
+ <a href="../parselog.php">Logs Postfix</a> |
+ <a href="../webalizer/">Webalizer</a>
+</td></tr>
+<tr class="impair"><td>
+ <strong>Sécurité : </strong>
+ <a href="logger.php">Logs des sessions</a> |
+ <a href="logger_user.php">Logs utilisateur</a> |
+ <a href="logger_actions.php">Actions</a>
+</td></tr>
+</table>
+
+<br />
+<table class="bicol" cellpadding="3" summary="Système">
+<tr><th>Contenu du site</th></tr>
+<tr class="impair"><td>
+ <strong>Utilisateurs : </strong>
+ <a href="utilisateurs.php">Gestion/SU</a> |
+ <a href="utilisateurs_identification.php">Identification</a> |
+ <a href="homonymes.php">Homonymes</a> |
+ <a href="marketing.php">Marketing</a> |
+ <a href="ax-xorg.php">AX/X.org</a> |
+ <a href="deces_promo.php">Décès</a> |
+ <a href="comptesPOP.php">Comptes POP</a>
+</td></tr>
+<tr class="pair"><td>
+ <strong>Infos dynamiques : </strong>
+ <a href="gerer_coupure.php">Coupures</a> |
+ <a href="evenements.php">Événements</a> |
+ <a href="http://www.polytechnique.net/admin/">X.net</a> |
+ <a href="pg.php">Point Gamma</a>
+</td></tr>
+<tr class="impair"><td>
+ <strong>Champs profil : </strong>
+ <a href="gerer_applis.php">Formations</a> |
+ <a href="gerer_binets.php">Binets</a> |
+ <a href="gerer_groupesx.php">Groupes X</a> |
+ <a href="gerer_skins.php">Skins</a>
+</td></tr>
+<tr class="pair"><td>
+ <strong>Newsletter : </strong>
+ <a href="newsletter_prep.php">Préparation</a> |
+ <a href="newsletter_archi.php">Archives</a> |
+ <a href="newsletter_pattecassee.php">Adresses en panne</a>
+</td></tr>
+<tr class="impair"><td>
+ <strong>Administrer : </strong>
+ <a href="gerer_auth-groupex.php">Auth Groupes X</a> |
+ <a href="../listes/gere_listes.php">Listes</a>
+</td></tr>
+<tr class="pair"><td>
+ <strong>Valider demandes : </strong>
+ <a href="valider.php">Valider</a>
+ |
+ <a href="evenements.php">Événements</a>
+</td></tr>
+<tr class="impair"><td>
+ <strong>Forums : </strong>
+ <a href="admin_faqs.php">FAQs</a>
+</td></tr>
+<tr class="pair"><td>
+ <strong>Trésorerie : </strong>
+ <a href="../trezo/gere_operations.php">Comptes</a>
+ |
+ <a href="gerer_paiement.php">Paiements</a>
+</td></tr>
+</table>
+
+<br />
+<table class="bicol" cellpadding="3" summary="Système">
+<tr><th>Développement</th></tr>
+<tr class="impair">
+ <td style="width:4em;"><strong>Trackers : </strong>
+ <a href="../trackers/tracker_show.php?tr_id=2">BugList</a>
+ |
+ <a href="../trackers/tracker_show.php?tr_id=1">TodoList</a>
+ </td>
+</tr>
+<tr class="pair">
+ <td><strong>CVS : </strong>
+ <a href="http://dev.m4x.org/cvs/">ViewCVS</a> |
+ <a href="http://dev.m4x.org/depview/">DepView</a>
+ </td>
+</tr>
+</table>
+
+<br />
+<table class="bicol" cellpadding="3" summary="Système">
+<tr><th>Gestion et entretien</th></tr>
+<tr class="impair"><td>
+ <strong>Reformatage Prenom NOM : </strong>
+ <a href="FormatePrenomNOM.php">Table
+ auth_user_md5</a> |
+ <a href="FormatePrenomNOM2.php">Table identification</a>
+</td></tr>
+</table>
+
+{* vim:set et sw=2 sts=2 sws=2: *}
--- /dev/null
+{* $Id: postfix.common.tpl,v 1.1 2004-02-04 19:47:47 x2000habouzit Exp $ *}
+
+{dynamic}
+<p class="erreur">{$erreur}</p>
+
+<div class="rubrique">
+{$title}
+</div>
+
+<a href="{""|url}">page d'admin</a> |
+<a href="{"postfix_blacklist.php"|url}">blacklist</a> |
+<a href="{"postfix_perm.php"|url}">permissions</a> |
+<a href="{"postfix_retardes.php"|url}">mails retardés</a>
+
+<p class="normal">
+{$expl}
+</p>
+
+<form method="post" action="{$smarty.server.PHP_SELF}">
+ <input type="text" name="nomligne" size="100" />
+ <input type="submit" name="add" value="Add" />
+</form>
+
+{foreach item=line from=$list}
+<form method="post" action="{$smarty.server.PHP_SELF}">
+ <input type="text" name="nomligne" value="{$line}" size="100">
+ <input type="submit" name="del" value="Del">
+</form>
+{/foreach}
+{/dynamic}
+
+{* vim:set et sw=2 sts=2 sws=2: *}
-{* $Id: antispam.tpl,v 1.2 2004-02-02 11:48:35 x2000habouzit Exp $ *}
+{* $Id: antispam.tpl,v 1.3 2004-02-04 19:47:47 x2000habouzit Exp $ *}
<div class="rubrique">
Ton filtre anti-spam
</ul>
</p>
<form action="{$smarty.server.PHP_SELF}" method="POST" name="filtre">
- <table class="tinybicol" width="90%" summary="filtre anti-spam">
+ <table class="tinybicol" summary="filtre anti-spam">
<tr>
<td>
<strong>Choisis ton propre réglage :</strong><br />
--- /dev/null
+{* $Id: domaineperso.tpl,v 1.1 2004-02-04 19:47:47 x2000habouzit Exp $ *}
+
+{include file='include/liste_domaines.tpl' result=$result nb_dom=$nbdom domaines=$domaines}
+
+<div class="rubrique">
+ Gère les emails de ton domaine perso
+</div>
+
+<p class="normal">
+ Polytechnique.org te propose de gérer les emails de ton domaine personnel.
+</p>
+<p class="normal">
+ Effet, si tu disposes d'un domaine personnel comme ton-nom.org, tu dois utiliser un hébergeur pour ta
+ DNS, pour tes adresses emails et pour ton espace web. En général, c'est le même pour
+ les trois éléments, mais tu peux aussi utiliser des hébergeurs différents. Il en
+ existe certains qui sont gratuits (comme <a href="http://www.mydomain.com/">
+ Mydomain</a>), mais pas toujours très performants. Polytechnique.org te propose de
+ s'occuper de tes emails dans un premier temps.
+</p>
+<p class="normal">
+ Pour que ton domaine soit géré par Polytechnique.org, active d'abord le domaine dans
+ le formulaire ci-dessous. Le domaine apparaît alors en haut de cette page, places-y
+ les alias que tu désires.
+</p>
+<p class="normal">
+ Ensuite, configure ton serveur DNS pour que le champ MX de ton domaine soit
+ a.mx.polytechnique.org (ou a.mx.m4x.org pour être plus discret
+ mais pas les deux, c'est la même machine).
+</p>
+<p class="normal">
+ Laisse le temps à la DNS de se mettre à jour (24 à 48h), et le tour est joué.
+</p>
+<p class="normal">
+ Pour toute question, n'hesite pas à {mailto address'info@polytechnique.org' text='envoyer un mail' encode='javascript'}
+</p>
+<div class="ssrubrique">
+ Indique le domaine que tu souhaites gérer :
+</div>
+<form action="{$smarty.server.REQUEST_URI}" method="post">
+ <table class="bicol" cellpadding="3" summary="Saisie du domaine à gérer">
+ <tr>
+ <th colspan="2">
+ Nom de domaine à gérer
+ </th>
+ </tr>
+ <tr>
+ <td class="titre">
+ Nom :
+ </td>
+ <td>
+ <input type="text" name="dnom" value="" />
+ </td>
+ </tr>
+ <tr>
+ <td colspan="2" class="center">
+ <input type="submit" name="submit" value="Envoyer" />
+ </td>
+ </tr>
+ </table>
+</form>
+{* vim:set et sw=2 sts=2 sws=2: *}
--- /dev/null
+{* $Id: dons.tpl,v 1.1 2004-02-04 19:47:47 x2000habouzit Exp $ *}
+
+<div class="rubrique">
+Dons au profit de l'association Polytechnique.org
+</div>
+
+<p class="normal">
+Comme tu le sais sans doute, le site Polytechnique.org est géré par
+l'<a href="http://x-org.polytechnique.org/">association</a> loi 1901 du même
+nom. Le travail effectué sur le site est entièrement bénévole et les outils
+que nous utilisons sont des <a href="http://www.fsf.org/philosophy/free-sw.fr.html">logiciels libres</a>
+donc nos frais de fonctionnement restent très modérés,
+mais ils n'en existent pas moins. Parmis ces frais on peut citer l'achat des
+différents noms de domaines du site et l'achat de matériel informatique pour
+suivre la progression rapide du nombre d'inscrits au site.
+</p>
+
+<p class="normal">
+Nous mettons à ta disposition les informations concernant nos comptes <a
+href="trezo/">ici</a>.
+</p>
+
+<p class="normal">
+Si tu le souhaites, tu peux nous aider à maintenir et à développer la qualité
+de nos services à la communauté polytechnicienne en <a href="paiement/?ref=0">effectuant un don</a>
+du montant de ton choix à l'association.
+Nous te remercions par avance de ta générosité!
+</p>
+
+{* vim:set et sw=2 sts=2 sws=2: *}
--- /dev/null
+{* $Id: epouse.tpl,v 1.1 2004-02-04 19:47:47 x2000habouzit Exp $ *}
+
+<div class="rubrique">
+ Nom de mariage
+</div>
+
+{if $not_femme}
+
+<p class="erreur">
+ Tu n'es pas autorisé à avoir accès à cette page !
+</p>
+
+{else}
+
+ {dynamic}
+ {if $same}
+ <p class="erreur">
+ Si ton nom de mariage est identique à ton nom à l'X, il n'est pas
+ nécessaire de le saisir ici!
+ </p>
+ {else}
+ {if $epouse_old}
+ <p class="normal">
+ Ta demande de suppression de ton nom de mariage ainsi que de tes
+ alias {$alias_old}@polytechnique.org et
+ {$alias_old}@m4x.org a bien été enregistrée.
+ </p>
+ {/if}
+
+ {if $epouse_req}
+ <p class="normal">
+ Ta demande d'ajout de ton nom de mariage a bien été enregistrée. Sa
+ validation engendrera la création des alias
+ <strong>{$myepouse->alias}@polytechnique.org</strong> et
+ <strong>{$myepouse->alias}@m4x.org</strong>.
+ </p>
+ {/if}
+
+ <p class="normal">
+ Tu recevras un mail dès que les changements demandés auront été effectués.
+ Encore merci de nous faire confiance pour tes e-mails !
+ </p>
+ {/if}
+ {/dynamic}
+
+{/if}
+
+<p class="normal">
+Afin d'être joignable à la fois sous ton nom à l'X et sous ton nom de mariage, tu peux
+saisir ici ce dernier. Il apparaîtra alors dans l'annuaire et tu disposeras
+des adresses correspondantes @m4x.org et @polytechnique.org, en plus de
+celles que tu possèdes déjà.
+</p>
+
+<br />
+
+<form action="{$smarty.server.PHP_SELF}" method="POST" name="epouse_dem">
+<table class="bicol" cellpadding="4" summary="Nom d'epouse">
+ <tr>
+ <th>Nom de mariage</th>
+ </tr>
+ <tr>
+ <td class="center"><input type="text" name="epouse" value="{$epouse_old}" /></td>
+ </tr>
+ <tr>
+ <td class="center"><input type="submit" name="submit" value="Envoyer" /></td>
+ </tr>
+</table>
+</form>
+
+{* vim:set et sw=2 sts=2 sws=2: *}
-{* $Id: form_naissance.tpl,v 1.3 2004-02-02 11:48:35 x2000habouzit Exp $ *}
+{* $Id: form_naissance.tpl,v 1.4 2004-02-04 19:47:47 x2000habouzit Exp $ *}
<div class="rubrique">
Date de naissance
</div>
à cela. Elle n'est jamais visible ou lisible.
</p>
<br />
- <table class="bicol" border="0" cellpadding="4" cellspacing="0"
- summary="Formulaire de naissance" width="60%">
+ <table class="tinybicol" cellpadding="4" cellspacing="0" summary="Formulaire de naissance">
<tr>
<th colspan="2">
Date de naissance
--- /dev/null
+{* $Id: index.tpl,v 1.1 2004-02-04 19:47:47 x2000habouzit Exp $ *}
+
+<div class="rubrique">Que sont les groupes X ?</div>
+<p class="normal">
+ Les groupes X sont des associations, formées de Polytechniciens, anciens ou élèves. Parfois, ils intègrent aussi
+ des personnes originaires d'autres grandes écoles.<br>
+ Un site est dédié aux activités associatives. Il contient en particulier une liste de tous les groupes X. Tu le
+ trouveras à l'adresse <a href="http://www.polytechnique.net/">http://www.polytechnique.net/</a>.
+</p>
+
+{include file='include/liste_domaines.tpl' nb_dom=$nbdom domaines=$domaines}
+
+<div class="rubrique">Services aux Groupes X</div>
+<p class="normal">
+ Polytechnique.org a le plaisir d'offrir plusieurs services intéressants aux groupes X.
+</p>
+<p class="normal">
+ D'abord, chaque groupe X peut avoir un nom de domaine sur le modèle nomdugroupe.polytechnique.org.
+ Sur ce domaine, nous te donnons la possibilité d'avoir un site web et des emails. Pour obtenir un domaine,
+ {mailto address="info@polytechnique.org" text="écris-nous" subject="Domaine de groupeX" encode="javascript"}.
+</p>
+<p class="normal">
+ Pour le site web, ce peut être soit une simple redirection vers un site que tu héberges
+ toi-même, soit un site complètement hébergé par nos soins. <b>Dans le premier cas</b>, il te suffit
+ de nous donner l'adresse web de ton site, http://nomdugroupe.polytechnique.org/ devient alors
+ son équivalent. Il faut donc avoir un hébergeur de site web comme il en existe de nombreux gratuits
+ (comme <a href="http://www.free.fr/">free.fr</a> ou <a href="http://www.freesurf.fr/">freesurf.fr</a>...)
+ <b>Dans le second cas</b>, l'hébergement se fait grâce à notre logiciel Diogenes. Plusieurs groupes ont déjà
+ opté pour cette solution, comme tu pourras le constater à l'adresse suivante :
+ <a href="http://diogenes.polytechnique.org/">http://diogenes.polytechnique.org/</a>.
+</p>
+<p class="normal">
+ Pour les emails, tu pourras mettre en place tous les adresses souhaitées dans le domaine
+ nomdugroupe.polytechnique.org, comme par exemple membres@nomdugroupe.polytechnique.org ou
+ bureau@nomdugroupe.polytechnique.org. Ces alias peuvent être redirigés vers une liste de diffusion
+ déjà existante sur polytechnique.org, vers des utilisateurs de polytechnique.org, mais aussi
+ vers des personnes extérieures (non Polytechniciens par exemple).
+</p>
+<p class="normal">
+ Dans tous les cas, pour la mise en place du domaine de ton groupe X ou pour des
+ questions sur les services aux groupes X,
+ {mailto address="info@polytechnique.org" text="écris-nous" subject="Domaine de groupeX" encode="javascript"}.
+</p>
+
+{* vim:set et sw=2 sts=2 sws=2: *}
--- /dev/null
+{* $Id: liste_domaines.tpl,v 1.1 2004-02-04 19:47:47 x2000habouzit Exp $ *}
+
+{dynamic}
+{$result}
+
+{if $nb_dom}
+<div class="rubrique">
+Administrer le routage email sur ton(tes) domaine(s)
+</div>
+
+<p class="normal">
+ Voici le(s) domaine(s) dont tu es administrateur.
+ Pour administrer un domaine, il te suffit à l'heure actuelle de cliquer sur son nom.
+ Cependant, prends bien note que cette administration se fera bientôt depuis le site www.polytechnique.net.
+</p>
+
+<p style="text-align: right;">
+{foreach item=dom from=$domaines}
+ <a href="{"domaine.php?domaine=$dom"|escape:"url"|url}">{$dom}</a>
+ <br />
+{/foreach}
+</p>
+{/if}
+
+{/dynamic}
+
+{* vim:set et sw=2 sts=2 sws=2: *}
-{* $Id: password_prompt.tpl,v 1.9 2004-02-02 11:48:35 x2000habouzit Exp $ *}
+{* $Id: password_prompt.tpl,v 1.10 2004-02-04 19:47:47 x2000habouzit Exp $ *}
<noscript>
<span class="erreur">
Ton navigateur n'accepte pas le javaScript !!
<img src="{"images/pi.png"|url}" alt=" [ ? ] " />
<a href="{"recovery.php"|url}">J'ai perdu mon mot de passe</a>
</td>
- <td align=right>
+ <td style="text-align:right;">
<input type="submit" name="submitbtn" value="Envoyer" />
</td>
</tr>
-{* $Id: password_prompt_logged.tpl,v 1.7 2004-02-02 11:48:35 x2000habouzit Exp $ *}
+{* $Id: password_prompt_logged.tpl,v 1.8 2004-02-04 19:47:47 x2000habouzit Exp $ *}
<div class="center">
- <table width="90%" summary="Accès sécurisé">
+ <table summary="Accès sécurisé" style="width: 90%;">
<tr>
<td>
<img src="{"images/cadenas_rouge.png"|url}" alt=" [ CADENAS ROUGE ] ">
<img src="{"images/pi.png"|url}" alt=" [ ? ] ">
<a href="{"recovery.php"|url}">J'ai perdu mon mot de passe</a>
</td>
- <td style="text-align:right">
+ <td style="text-align:right;">
<input type="submit" name="submitbtn" value="Envoyer" />
</td>
</tr>
--- /dev/null
+{* $Id: pattecassee.tpl,v 1.1 2004-02-04 19:47:47 x2000habouzit Exp $ *}
+
+{dynamic on="0$erreur"}
+<p class="erreur">{$erreur}</p>
+{/dynamic}
+
+<div class="rubrique">
+ Vérifier une patte cassée
+</div>
+
+{dynamic}
+{if $x && $x.nb_emails}
+ <p class="erreur">
+ Ton correspondant a à l'heure actuelle {$x.nb_emails} adresse(s) email(s) de redirection active(s)
+ en dehors de celle que tu nous as communiquée. Cela ne veut pas forcément dire qu'il les avait
+ déjà activées lorsque tu as envoyé ton email, mais c'est fort probable.
+ </p>
+ <p class="erreur">
+ Nous pensons qu'il serait une bonne idée de le prévenir que cette adresse email ne fonctionne plus.
+ Si tu veux que nous lui envoyions un mail automatique de ta part pour le prévenir,
+ <a href="{$smarty.server.PHP_SELF}?email={$email}&action=mail">clique sur ce lien</a>.
+ </p>
+{elseif $x}
+ <p class="erreur">
+ Désolé, mais ton correspondant, {$x.prenom} {$x.nom} (X{$x.promo}),
+ n'a actuellement aucune adresse email de redirection active autre que celle que tu viens de rentrer.
+ Nous t'invitons à prendre contact avec lui autrement que par email,
+ l'idéal étant de l'informer si possible que sa patte Polytechnique.org est cassée...!
+ </p>
+{else}
+<p class="erreur">
+ Désolé mais plus personne n'utilise l'adresse {$email} comme adresse de redirection.
+ Nous ne pouvons donc malheureusement te fournir aucune information...
+</p>
+{/if}
+{/dynamic}
+
+<p class="normal">
+ <strong>Qu'est-ce qu'une patte cassée ?</strong>
+</p>
+<p class="normal">
+ Cette page sert à <strong>analyser les messages d'erreur</strong> que tu reçois
+ lorsque tu envoies un mail à des utilisateurs de Polytechnique.org. Plus
+ précisément, si après avoir rédigé un email, tu reçois en retour un message
+ t'indiquant que l'un des destinataires n'a pas eu ton message sur l'une de
+ ses adresses de redirections, nous allons pouvoir te dire s'il a reçu ton
+ email sur une autre adresse de redirection...!
+</p>
+<p>
+ Pour plus d'explications concernant cette page, nous t'invitons à consulter
+ la <a href="{"docs/doc_patte_cassee.php"|url}">documentation suivante</a>
+</p>
+<p class="normal">
+ Rentre dans la zone de saisie ci-dessous l'adresse email à laquelle ton
+ courrier n'a pas été distribué puis valide. Nous te dirons si le
+ destinataire possède d'autres adresses de redirection grâce auxquelles il a
+ tout de même eu ton message.
+</p>
+<br />
+<div class="center">
+ <form action="{$smarty.server.PHP_SELF}" method="post">
+ <table class="bicol" cellpadding="3" summary="Saisie email en panne">
+ <tr>
+ <th colspan="2">Adresse email défectueuse</th>
+ </tr>
+ <tr>
+ <td><input type="text" name="email" size="50" maxlength="50" /></td>
+ </tr>
+ <tr>
+ <td colspan="2" class="center"><input type="submit" value="Ok" /></td>
+ </tr>
+ </table>
+ </form>
+</div>
+
+{* vim:set et sw=2 sts=2 sws=2: *}
-{* $Id: preferences.tpl,v 1.4 2004-02-02 11:48:35 x2000habouzit Exp $ *}
+{* $Id: preferences.tpl,v 1.5 2004-02-04 19:47:47 x2000habouzit Exp $ *}
<div class="rubrique">
Préférences
</div>
<br />
-<table class="bicol" summary="Préférences: mdp" width="95%" cellpadding="3">
+<table class="bicol" summary="Préférences: mdp" cellpadding="3">
<tr>
<th>Mots de passe et accès au site</th>
</tr>
--- /dev/null
+{* $Id: rss.tpl,v 1.1 2004-02-04 19:47:47 x2000habouzit Exp $ *}
+<?xml version="1.0" encoding="ISO-8859-1"?>
+
+<!DOCTYPE rss PUBLIC "-//Netscape Communications//DTD RSS 0.91//EN"
+ "http://my.netscape.com/publish/formats/rss-0.91.dtd">
+
+<rss version="0.91">
+
+<channel>
+<title>Polytechnique.org :: News</title>
+<link>http://{$smarty.server.SERVER_NAME}/</link>
+<description>L'actualité polytechnicienne...{if $promo} Promotion {$promo}{/if}</description>
+<language>fr</language>
+
+{foreach item=line from=$rss}
+<item>
+<title>{$line.titre|strip_tags}</title>
+<link>http://{$smarty.server.SERVER_NAME}/login.php#newsid{$line.id}</link>
+</item>
+{/foreach}
+
+</channel>
+</rss>
+{* vim:set et sw=2 sts=2 sws=2 syntax=xml: *}
--- /dev/null
+{* $Id: sendmail.tpl,v 1.1 2004-02-04 19:47:47 x2000habouzit Exp $ *}
+
+{dynamic}
+
+{$error}
+
+<div class="rubrique">
+ Envoyer un mail
+</div>
+
+<ul>
+ <li>
+ Les destinataires sont simplement séparés par des espaces ou des virgules
+ </li>
+ <li>
+ Pour les destinataires en polytechnique.org, le domaine n'est pas nécessaire
+ </li>
+ <li>
+ Pense à te mettre en copie cachée du mail sinon tu n'auras aucun moyen de retrouver
+ le mail que tu envoies par cette page
+ </li>
+</ul>
+
+<form action="{$smarty.server.REQUEST_URI}" method="POST">
+ <input type='hidden' name='signature' value='1' />
+ <table class="bicol" cellpadding="2" cellspacing="0" summary="En-têtes du message">
+ <tr>
+ <th colspan="2">en-têtes</th>
+ </tr>
+ <tr>
+ <td class="titre">de :</td>
+ <td>
+ <input type='text' name='from' size=45 value="{if $smarty.request.from}
+{$smarty.request.from|escape:"html"}
+{else}
+{"\"`$smarty.session.prenom` `$smarty.session.nom`\" <`$smarty.session.username`@polytechnique.org>"|escape:"html"}
+{/if}" />
+ </td>
+ </tr>
+ <tr>
+ <td class="titre">à :</td>
+ <td>
+ <input type='text' name='to' size=45 value="{$smarty.request.to|escape:"html"}" />
+ </td>
+ </tr>
+ <tr>
+ <td class="titre">copie :</td>
+ <td>
+ <input type='text' name='cc' size=45 value="{$smarty.request.cc|escape:"html"}" />
+ </td>
+ </tr>
+ <tr>
+ <td class="titre">copie cachée :</td>
+ <td>
+ <input type='text' name='bcc' size=45 value="{$smarty.request.bcc|escape:"html"}" />
+ </td>
+ </tr>
+ <tr>
+ <td class="titre">sujet :</td>
+ <td>
+ <input type='text' name='sujet' size=45 value="{$smarty.request.sujet|escape:"html"}" />
+ </td>
+ </tr>
+ </table>
+
+{if $nb_contacts}
+ <ul>
+ <li>
+ <p class="normal">
+ Tu peux également ajouter certains de tes contacts aux destinataires :
+ </p>
+ </li>
+ </ul>
+
+ <table class="bicol" cellpadding="2" cellspacing="0" summary="Destinataires parmi les contacts">
+{foreach key=key item=contact from=$contacts}
+{if $key is even}
+ <tr class="{cycle values="impair,pair"}">
+{/if}
+ <td>
+ <input type="checkbox" name="contacts[{$contact.username}]" value="{"`$contact.prenom` `$contact.nom` <`$contact.username`@polytechnique.org>"|escape:"html"}"
+ {if $smarty.request.contacts && $smarty.request.contacts.username}checked="checked"{/if} />
+ <a href="javascript:x()" onclick="popWin('x.php?x={$contact.username}')">{$contact.prenom} {$contact.nom}</a> (X{$contact.promo})
+ </td>
+{if $key is odd}
+ </tr>
+{/if}
+{/foreach}
+ </table>
+{/if}
+
+ <ul>
+ <li>
+ Ne mets que du texte dans le contenu, pas de tags HTML
+ </li>
+ <li>
+ Il n'est pas possible d'envoyer un fichier en attachement
+ </li>
+ </ul>
+
+ <table class="bicol" cellspacing="0" cellpadding="2" summary="Corps du message">
+ <tr>
+ <th>
+ contenu
+ </th>
+ </tr>
+ <tr>
+ <td class="center">
+ <textarea name='contenu' rows="30" cols="75">
+{$smarty.request.contenu}
+{if $smarty.request.signature}
+
+--
+{$smarty.session.prenom} {$smarty.session.nom}
+{/if}</textarea>
+ </td>
+ </tr>
+ <tr>
+ <td class="center">
+ <input type="submit" name="submit" value="Envoyer" />
+ </td>
+ </tr>
+ </table>
+</form>
+
+{/dynamic}
+
+{* vim:set et sw=2 sts=2 sws=2: *}
-{* $Id: skins.tpl,v 1.3 2004-02-02 11:48:35 x2000habouzit Exp $ *}
+{* $Id: skins.tpl,v 1.4 2004-02-04 19:47:47 x2000habouzit Exp $ *}
<div class="rubrique">
Skins Polytechnique.org
</p>
<form action="{$smarty.server.REQUEST_URI}" method="POST">
- <div style="text-align:center; margin: 1em;">
+ <div class="center">
<input type="submit" value="Enregistrer" name="submit" />
</div>
+ <br />
<table id="skin" cellpadding="0" cellspacing="0" summary="Choix de skins">
{dynamic}
{foreach item=skin from=$skins}
Utilisée par <strong>{$skin.nb}</strong> inscrit{if $skin.nb>1}s{/if}
</td>
<td class="skidroite">
- <img src="images/{$skin.snapshot}" width=171 height=162 alt=" [ CAPTURE D'ECRAN ] ">
+ <img src="images/{$skin.snapshot}" style="width:171px; height:162px;" alt=" [ CAPTURE D'ECRAN ] ">
</td>
</tr>
{/foreach}
{/dynamic}
</table>
- <div style="text-align:center; margin: 1em;">
+ <br />
+ <div class="center">
<input type="submit" value="Enregistrer" name="submit" />
</div>
--- /dev/null
+{* $Id: coupure.tpl,v 1.1 2004-02-04 19:47:48 x2000habouzit Exp $ *}
+
+{dynamic}
+
+{if $cp}
+
+<table class="bicol" summary="Ruptures de service">
+ <tr>
+ <th colspan="2">détails de l'interruption de service<th>
+ </tr>
+ <tr>
+ <td class="titre">début</td>
+ <td>{$cp.debut|date_forma:"%d/%m/%Y, %Hh%M"}</td>
+ </tr>
+ <tr>
+ <td class="titre">durée</td>
+ <td>{$cp.duree}</td>
+ </tr>
+ <tr>
+ <td class="titre">résumé</td>
+ <td>{$cp.resume}</td>
+ </tr>
+ <tr>
+ <td class="titre">services</td>
+ <td>
+ {insert name="serv_to_str" arg=$cp.services script="insert.pattecassee.inc.php"}
+ </td>
+ </tr>
+ <tr>
+ <td class="titre">description </td>
+ <td>{$cp.description}</td>
+ </tr>
+</table>
+
+<p class="center">
+<a href="{$smarty.server.PHP_SELF}">retour à la liste</a>
+</p>
+
+{else}
+
+<p class="normal">
+ Tu trouveras ici les interruptions de service de Polytechnique.org qui ont été
+ constatées <b>durant les trois dernières semaines</b>, ou qui sont prévues dans le futur.
+ Il est à noter qu'à ce jour la quasi-totalité des coupures proviennent
+ de défaillances du réseau de l'Ecole, où nos serveurs sont hébergés (rupture de la
+ connexion internet de l'Ecole, problème électrique, etc...).
+</p>
+<p class="normal">
+ Pour avoir les détails d'une interruption particulière il te suffit de cliquer dessus.
+</p>
+
+<table class="bicol" align="center" summary="Détail de la coupure">
+ <tr>
+ <th>date</th>
+ <th>résumé</th>
+ <th>services affectés</th>
+ </tr>
+{foreach item=cp from=$coupures}
+ <tr class="{cycle values="pair,impair"}">
+ <td>
+ <span class="smaller">
+ {$cp.debut|date_format:"%d/%m/%Y"}
+ </span>
+ </td>
+ <td>
+ <span class="smaller">
+ <a href="{$smarty.server.PHP_SELF}?cp_id={$cp.id}">{$cp.resume}</a>
+ </span>
+ </td>
+ <td>
+ <span class="smaller">
+ {$cp.services}
+ </span>
+ </td>
+ </tr>
+{/foreach}
+</table>
+
+{/dynamic}
+
+{* vim:set et sw=2 sts=2 sws=2: *}
-{* $Id: nb_by_promo.tpl,v 1.1 2004-01-27 21:17:43 x2000habouzit Exp $ *}
+{* $Id: nb_by_promo.tpl,v 1.2 2004-02-04 19:47:48 x2000habouzit Exp $ *}
<div class="rubrique">
Inscrits par promo
Voici le nombre d'inscrits par promo :
</p>
-{dynamic}
<table class="bicol" cellpadding="3" cellspacing="0" summary="Statistiques">
<tr>
<th></th>
<th>0</th><th>1</th><th>2</th><th>3</th><th>4</th>
<th>5</th><th>6</th><th>7</th><th>8</th><th>9</th>
</tr>
+{dynamic}
{foreach item=nb10 key=lustre from=$nbs}
<tr>
<th>{$lustre}-</th>
{foreach item=nb from=$nb10}
- <td class="center">{$nb|default:"-"}</td>
+ <td class="center">
+ {if $nb}
+ <a href="{"stats/stats_promo.php?promo=`$nb.promo`"|url}">{$nb.nb}</a>
+ {else}
+ -
+ {/if}
+ </td>
{/foreach}
</tr>
{/foreach}
-</table>
{/dynamic}
+</table>
<div class="rubrique">
Inscrits par promo en (%)
--- /dev/null
+{* $Id: parselog.tpl,v 1.1 2004-02-04 19:47:48 x2000habouzit Exp $ *}
+
+<div class="rubrique">
+ Logs de polytechnique.org
+</div>
+
+<p class="normal">
+{dynamic}
+{fetch file="/home/web/public/lastParselog" assign=bob}
+{$bob|replace:" ":" "|nl2br}
+{/dynamic}
+</p>
+
+{* vim:set et sw=2 sts=2 sws=2: *}
--- /dev/null
+{* $Id: stats_promo.tpl,v 1.1 2004-02-04 19:47:48 x2000habouzit Exp $ *}
+
+{dynamic}
+<div class="rubrique">
+ Statistiques de la promotion {$promo}
+</div>
+
+<div class="ssrubrique">
+ Nombre d'inscrits de la promotion {$promo}
+</div>
+
+<div class="center">
+ <img src="{"stats/graph_promo.php?promo=$promo"|url}" alt=" [ INSCRITS ] " width="640" height="480">
+</div>
+{/dynamic}
+
+{* vim:set et sw=2 sts=2 sws=2: *}