* Refactor code to make use of an XOrgError class.
* track every place in the code that uses errors and make use of the new policy.
git-archimport-id: opensource@polytechnique.org--2005/platal--mainline--0.9--patch-64
--- /dev/null
+<?php
+
+ini_set("include_path", "../../:/home/x2000habouzit/simpletest/");
+define('PATH', dirname(__FILE__));
+
+require_once('unit_tester.php');
+require_once('reporter.php');
+
+?>
--- /dev/null
+<?php
+require_once("__init__.php");
+
+require_once('shell_tester.php');
+require_once('mock_objects.php');
+
+class AllTests extends GroupTest {
+ function AllTests() {
+ $this->GroupTest('All tests');
+ foreach (glob(PATH.'/*_*.php') as $tfile) {
+ $this->addTestFile($tfile);
+ }
+ }
+}
+
+$test = &new AllTests();
+
+if (SimpleReporter::inCli())
+{
+ exit ($test->run(new TextReporter()) ? 0 : 1);
+}
+$test->run(new HtmlReporter());
+
+?>
--- /dev/null
+<?php
+require_once("__init__.php");
+require_once('include/xorg/errors.inc.php');
+
+class TestOfXOrgErrors extends UnitTestCase {
+ function TestOfXOrgErrors() {
+ $this->UnitTestCase('XOrgErrors Test');
+ }
+
+ function testCreatingXOrgErrors() {
+ $errors = new XOrgErrors();
+ $this->assertIdentical($errors->errs, Array());
+ $this->assertIdentical($errors->failure, false);
+ }
+
+ function testTrigger() {
+ $errors = new XOrgErrors();
+ $errors->trigger("Foo error");
+ $this->assertIdentical($errors->errs, Array("Foo error"));
+ $this->assertIdentical($errors->failure, false);
+ }
+
+ function testFail() {
+ $errors = new XOrgErrors();
+ $errors->fail("Foo error");
+ $this->assertIdentical($errors->errs, Array("Foo error"));
+ $this->assertIdentical($errors->failure, true);
+ }
+}
+
+$test = &new TestOfXOrgErrors();
+$test->run(new HtmlReporter());
+?>
require_once("emails.inc.php");
/*
+ * Already in SUID ?
+ */
+
+if (isset($_SESSION['suid'])) {
+ $page->kill("déjà en SUID !!!");
+}
+
+/*
* LOGS de l'utilisateur
*/
* LE RESTE
*/
-$errors = Array();
-
if (!empty($_REQUEST['login'])) {
$needle = strtolower($_REQUEST['login']);
if (list($redir) = mysql_fetch_row($res)) {
list($login) = split('@', $redir);
} else {
- $errors[] = "il n'y a pas d'utilisateur avec cet alias melix";
+ $page->trigger("il n'y a pas d'utilisateur avec cet alias melix");
}
mysql_free_result($res);
} else {
if ($i) {
$aliases = Array();
while (list($a) = mysql_fetch_row($res)) $aliases[] = $a;
- $errors[] = "Il y a $i utilisateurs avec cette adresse mail : ".join(', ', $aliases) ;
+ $page->trigger("Il y a $i utilisateurs avec cette adresse mail : ".join(', ', $aliases));
} else {
- $errors[] = "il n'y a pas d'utilisateur avec cette adresse mail";
+ $page->trigger("il n'y a pas d'utilisateur avec cette adresse mail");
}
} else {
list($login) = mysql_fetch_row($res);
if ($tmp = mysql_fetch_assoc($r)) {
$mr =& $tmp;
} else {
- $errors[] = "il n'y a pas d'utilisateur avec ce login (ou alors il a des homonymes)";
+ $page->trigger("il n'y a pas d'utilisateur avec ce login (ou alors il a des homonymes)");
}
mysql_free_result($r);
}
case "add_fwd":
$email = $_REQUEST['email'];
if (!isvalid_email_redirection($email)) {
- $errors[] = "invalid email $email";
+ $page->trigger("invalid email $email");
break;
}
$redirect->add_email(trim($email));
- $errors[] = "Ajout de $email effectué";
+ $page->trigger("Ajout de $email effectué");
break;
case "del_fwd":
$globals->db->query("DELETE FROM aliases WHERE id='{$_REQUEST['user_id']}' AND alias='$val'
AND type!='a_vie' AND type!='homonyme'");
fix_bestalias($_REQUEST['user_id']);
- $errors[] = $val." a été supprimé";
+ $page->trigger($val." a été supprimé");
break;
case "add_alias":
fputs($f,"1");
fclose($f);
- $errors[] = "updaté correctement.";
+ $page->trigger("updaté correctement.");
// envoi du mail au webmaster
require_once("diogenes.hermes.inc.php");
$mailer = new HermesMailer();
case "u_kill":
require_once("user.func.inc.php");
user_clear_all_subs($_REQUEST['user_id']);
- $errors[] = "'{$_REQUEST['user_id']}' a été désinscrit !";
+ $page->trigger("'{$_REQUEST['user_id']}' a été désinscrit !");
require_once("diogenes.hermes.inc.php");
$mailer = new HermesMailer();
$mailer->setFrom("webmaster@polytechnique.org");
$page->assign('emails',$redirect->emails);
}
-$page->assign('errors',$errors);
$page->run();
?>
//Si l'utilisateur vient de faire une damande
if (isset($_REQUEST['alias']) and isset($_REQUEST['raison'])) {
- $alias = $_REQUEST['alias'];
+ $alias = $_REQUEST['alias'];
$raison = $_REQUEST['raison'];
$page->assign('r_alias', $alias);
//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->trigger("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->run('error');
} else {
//vérifier que l'alias n'est pas déja pris
$result = $globals->db->query("SELECT 1 FROM virtual WHERE alias='$alias@{$globals->mail->alias_dom}'");
if (mysql_num_rows($result)>0) {
- $page->assign('error', "L'alias $alias@{$globals->mail->alias_dom} a déja été attribué.
- Tu ne peux donc pas l'obtenir.");
+ $page->trigger("L'alias $alias@{$globals->mail->alias_dom} a déja été attribué.
+ Tu ne peux donc pas l'obtenir.");
$page->run('error');
}
$it = new ValidateIterator ();
while($req = $it->next()) {
if ($req->type == "alias" and $req->alias == $alias) {
- $page->assign('error', "L'alias $alias@{$globals->mail->alias_dom} a déja été demandé.
- Tu ne peux donc pas l'obtenir pour l'instant.");
+ $page->trigger("L'alias $alias@{$globals->mail->alias_dom} a déja été demandé.
+ Tu ne peux donc pas l'obtenir pour l'instant.");
$page->run('error');
}
}
if($_REQUEST['action']=='retirer') {
$user = $_REQUEST['user'];
if (preg_match('/^\d+$/', $user)) {
- if ($globals->db->query("DELETE FROM contacts WHERE uid = '{$_SESSION['uid']}' AND contact='{$user}'"))
- $page->assign('erreur', "Contact retiré !\n");
+ if ($globals->db->query("DELETE FROM contacts WHERE uid = '{$_SESSION['uid']}' AND contact='{$user}'")) {
+ $page->trigger("Contact retiré !");
+ }
} else {
if ($globals->db->query(
"DELETE FROM contacts
USING contacts AS c
INNER JOIN aliases AS a ON (c.contact=a.id and a.type!='homonyme')
WHERE c.uid = '{$_SESSION['uid']}' AND a.alias='$user'"
- ))
- $page->assign('erreur', "Contact retiré !\n");
+ )) {
+ $page->trigger("Contact retiré !");
+ }
}
// si l'utilisateur demande l'ajout de qqun à sa liste
if (($res = $globals->db->query("SELECT id FROM aliases WHERE alias='{$_REQUEST['user']}' AND type!='homonyme'")) && mysql_num_rows($res)==1) {
list($cont_user_id) = mysql_fetch_row($res);
if ($globals->db->query("INSERT INTO contacts set uid = '{$_SESSION['uid']}', contact = '$cont_user_id'")) {
- $page->assign('erreur', 'Contact ajouté !');
+ $page->trigger('Contact ajouté !');
} else
- $page->assign('erreur', 'Contact déjà dans la liste !');
+ $page->trigger('Contact déjà dans la liste !');
} else {
- $page->assign('erreur', 'Utilisateur inexistant ou non inscrit !');
+ $page->trigger('Utilisateur inexistant ou non inscrit !');
}
}
}
$watch = new Watch($_SESSION['uid']);
-$err = Array();
-
if(isset($_REQUEST['promo'])) {
if(preg_match('!^ *(\d{4}) *$!', $_REQUEST['promo'], $matches)) {
$p = intval($matches[1]);
if($p<1900 || $p>2100) {
- $err[] = 'la promo entrée est invalide';
+ $page->trigger("la promo entrée est invalide");
} else {
if(isset($_REQUEST['add_promo'])) $watch->_promos->add($p);
if(isset($_REQUEST['del_promo'])) $watch->_promos->del($p);
$p1 = intval($matches[1]);
$p2 = intval($matches[2]);
if($p1<1900 || $p1>2100) {
- $err[] = 'la première promo de la plage entrée est invalide';
+ $page->trigger('la première promo de la plage entrée est invalide');
} elseif($p2<1900 || $p2>2100) {
- $err[] = 'la seconde promo de la plage entrée est invalide';
+ $page->trigger('la seconde promo de la plage entrée est invalide');
} else {
if(isset($_REQUEST['add_promo'])) $watch->_promos->addRange($p1,$p2);
if(isset($_REQUEST['del_promo'])) $watch->_promos->delRange($p1,$p2);
}
} else {
- $err[] = "La promo (ou la plage de promo) entrée est dans un format incorrect.";
+ $page->trigger("La promo (ou la plage de promo) entrée est dans un format incorrect.");
}
}
}
$page->assign_by_ref('watch', $watch);
-$page->assign_by_ref('err', $err);
-
$page->run();
-
?>
text-align: justify;
}
-p.error, span.error, p.erreur, span.erreur {
+.erreur {
font-weight: bold;
color: #ff0000;
background: inherit;
text-align: justify;
}
-p.error, span.error, p.erreur, span.erreur {
+.erreur {
font-weight: bold;
color: #ff0000;
background: inherit;
$mail->setSubject("Une de tes adresse de redirection Polytechnique.org ne marche plus !!");
$mail->setTxtBody($message);
$mail->send();
- $page->assign('erreur', "Mail envoyé ! :o)");
+ $page->trigger("Mail envoyé ! :o)");
}
} elseif (array_key_exists('email', $_POST)) {
$email = valide_email($_POST['email']);
}
if ($_REQUEST['to'] == '' and $_REQUEST['cc'] == '' and $autre_to == '') {
- $page->assign('error',"Indique au moins un destinataire.");
+ $page->trigger("Indique au moins un destinataire.");
} else {
require_once("diogenes.hermes.inc.php");
//$_REQUEST['contenu'] = chunk_split($_REQUEST['contenu'], 76, "\n"); // pas bon, ne tient pas compte des mots
if (!empty($_REQUEST['bcc'])) $mymail->addBcc($_REQUEST['bcc']);
$mymail->setTxtBody(wordwrap($_REQUEST['contenu'],72,"\n"));
if ($mymail->send()) {
- $page->assign('error',"Ton mail a bien été envoyé.");
+ $page->trigger("Ton mail a bien été envoyé.");
$_REQUEST = array();
} else {
- $page->assign('error',"Erreur lors de l'envoi du courriel, réessaye.\n");
+ $page->trigger("Erreur lors de l'envoi du courriel, réessaye.");
}
} // ! if ($_REQUEST['to'] == '' and $_REQUEST['cc'] == '')
}
***************************************************************************/
require_once("xorg.inc.php");
+new_skinned_page('inscription/step3.tpl', AUTH_PUBLIC);
+require_once("identification.inc.php");
-$erreur = Array();
+$page->assign('mailorg', $mailorg);
+$page->assign('forlife', $forlife);
-require_once("identification.inc.php");
+if(!isvalid_email($_REQUEST["email"])) {
+ $page->trigger("Le champ 'E-mail' n'est pas valide.");
+}
-if(!isvalid_email($_REQUEST["email"]))
- $erreur[] = "Le champ 'E-mail' n'est pas valide.";
-if (!isvalid_email_redirection($_REQUEST["email"]))
- $erreur[] = "\"$forlife@polytechnique.org\" doit renvoyer vers un email existant valide. En particulier, il ne peut pas être renvoyé vers lui-même.";
-if (!ereg("[0-3][0-9][0-1][0-9][1][9]([0-9]{2})", $_REQUEST["naissance"]))
- $erreur[] = "La 'Date de naissance' n'est pas correcte. Elle est obligatoire pour continuer mais ne sera jamais visible sur le site par la suite.";
+if (!isvalid_email_redirection($_REQUEST["email"])) {
+ $page->trigger("\"$forlife@polytechnique.org\" doit renvoyer vers un email existant valide.
+ En particulier, il ne peut pas être renvoyé vers lui-même.");
+}
+
+if (!ereg("[0-3][0-9][0-1][0-9][1][9]([0-9]{2})", $_REQUEST["naissance"])) {
+ $page->trigger("La 'Date de naissance' n'est pas correcte.
+ Elle est obligatoire pour continuer mais ne sera jamais visible sur le site par la suite.");
+}
-if(!empty($erreur)) {
- new_skinned_page('inscription/step2.tpl', AUTH_PUBLIC);
+if($page->nb_errs()) {
+ $page->changeTpl('inscription/step2.tpl');
require_once("applis.func.inc.php");
$page->assign('homonyme', $homonyme);
$page->assign('loginbis', isset($loginbis) ? $loginbis : '');
- $page->assign('mailorg', $mailorg);
$page->assign('prenom', $prenom);
$page->assign('nom', $nom);
- $page->assign('erreur', join("\n",$erreur));
$page->run();
}
$mymail->assign('subj',$forlife."@polytechnique.org");
$mymail->send();
-new_skinned_page('inscription/step3.tpl', AUTH_PUBLIC);
-$page->assign('mailorg', $mailorg);
-$page->assign('forlife', $forlife);
$page->run();
?>
require_once("user.func.inc.php");
require_once('xorg.mailer.inc.php');
-define("ERROR_REF", 1);
-define("ERROR_ALREADY_SUBSCRIBED", 2);
-define("ERROR_DB", 3);
-
if (!empty($_REQUEST['ref'])) {
$sql = "SELECT username,loginbis,matricule,promo,password".
",nom,prenom,nationalite,email,naissance,date".
",appli_id1,appli_type1,appli_id2,appli_type2".
" FROM en_cours WHERE ins_id='".$_REQUEST["ref"]."'";
$res = $globals->db->query($sql);
- //vérifions que la référence de l'utilisateur est
- if (!list($forlife, $alias, $matricule, $promo, $password, $nom, $prenom,$nationalite,
- $email, $naissance,$date,$appli_id1,$appli_type1,$appli_id2,$appli_type2) = mysql_fetch_row($res)) {
- $page->assign('error',ERROR_REF);
- $page->run();
- }
- $page->assign('forlife',$forlife);
-
- // vérifions qu'il n'y a pas déjà une inscription dans le passé
- // ce qui est courant car les double-clic...
- $res = $globals->db->query("SELECT alias FROM aliases WHERE alias='$forlife'");
- if ( mysql_num_rows($res) != 0) {
- $page->assign('error',ERROR_ALREADY_SUBSCRIBED);
- $page->run();
- }
-
- $nom = stripslashes($nom);
- $prenom = stripslashes($prenom);
- $sql = "UPDATE auth_user_md5 SET password='$password', nationalite=$nationalite, perms='user',
- date='$date', naissance='$naissance', date_ins = NULL WHERE matricule='$matricule'";
- $globals->db->query($sql);
- $sql = "REPLACE INTO auth_user_quick (user_id)
- SELECT user_id
- FROM auth_user_md5
- WHERE matricule='$matricule'";
- $globals->db->query($sql);
-
- // on vérifie qu'il n'y a pas eu d'erreur
- if ($globals->db->err()) {
- $page->assign('error',ERROR_DB);
- $page->assign('error_db',$globals->db->error());
- $page->run();
- }
- // ok, pas d'erreur, on continue
- $resbis=$globals->db->query("SELECT user_id FROM auth_user_md5 WHERE matricule='$matricule'");
- if ((list($uid) = mysql_fetch_row($resbis)) === false) {
- $page->assign('error',ERROR_DB);
- $page->assign('error_db',$globals->db->error());
- $page->run();
- }
-
- $globals->db->query("INSERT INTO aliases (id,alias,type) VALUES ($uid,'$forlife','a_vie')");
- if($alias) {
- $p2 = sprintf("%02u",($promo%100));
- $globals->db->query("INSERT INTO aliases (id,alias,type) VALUES ($uid,'$alias','alias')");
- $globals->db->query("INSERT INTO aliases (id,alias,type) VALUES ($uid,'$alias.$p2','alias')");
- }
-
- // on cree un objet logger et on log l'
- $logger = new DiogenesCoreLogger($uid);
- $logger->log("inscription",$email);
-
- /****************** insertion de l'email dans la table emails + bogofilter ***/
- require_once("emails.inc.php");
- $redirect = new Redirect($uid);
- $redirect->add_email($email);
- fix_bestalias($uid);
- /****************** ajout des formations ****************/
- if (($appli_id1>0)&&($appli_type1))
- $globals->db->query("insert into applis_ins set uid=$uid,aid=$appli_id1,type='$appli_type1',ordre=0");
- if (($appli_id2>0)&&($appli_type2))
- $globals->db->query("insert into applis_ins set uid=$uid,aid=$appli_id2,type='$appli_type2',ordre=1");
- /****************** envoi d'un mail au démarcheur ***************/
- /* si la personne a été marketingnisée, alors on prévient son démarcheur */
- $res = $globals->db->query("SELECT DISTINCT a.alias,e.date_envoi
- FROM envoidirect AS e
- INNER JOIN aliases AS a ON ( a.id = e.sender AND a.type='a_vie' )
- WHERE e.matricule = '$matricule'");
- while (list($sender_usern, $sender_date) = mysql_fetch_row($res)) {
- $mymail = new XOrgMailer('marketing.thanks.tpl');
- $mymail->assign('to', $sender_usern);
- $mymail->assign('prenom', $prenom);
- $mymail->assign('nom',$nom);
- $mymail->assign('promo',$promo);
- $mymail->send();
- }
-
- // effacer la pré-inscription devenue
- $globals->db->query("update en_cours set loginbis='INSCRIT' WHERE username='$forlife'");
-
- // insérer l'inscription dans la table des notifications
- require_once('notifs.inc.php');
- register_watch_op($uid,WATCH_INSCR);
- inscription_notifs_base($uid);
-
- // insérer une ligne dans user_changes pour que les coordonnées complètes
- // soient envoyées a l'AX
- $globals->db->query("insert into user_changes ($uid)");
-
- // envoi du mail à l'inscrit
- $mymail = new XOrgMailer('inscription.reussie.tpl');
- $mymail->assign('forlife', $forlife);
+}
+
+//vérifions que la référence de l'utilisateur est
+if (empty($_REQUEST['ref'] ||
+ !list( $forlife, $alias, $matricule, $promo, $password, $nom, $prenom,$nationalite,
+ $email, $naissance,$date,$appli_id1,$appli_type1,$appli_id2,$appli_type2) = mysql_fetch_row($res))
+{
+ $page->kill("<p>Cette adresse n'existe pas, ou plus, sur le serveur.</p>
+ <p>Causes probables :</p>
+ <ol>
+ <li>Vérifie que tu visites l'adresse du dernier e-mail reçu s'il y en a eu plusieurs.</li>
+ <li>Tu as peut-être mal copié l'adresse reçue par mail, vérifie-la à la main.</li>
+ <li>
+ Tu as peut-être attendu trop longtemps pour confirmer. Les
+ pré-inscriptions sont annulées tous les 30 jours.
+ </li>
+ </ol>");
+}
+
+$page->assign('forlife',$forlife);
+
+// vérifions qu'il n'y a pas déjà une inscription dans le passé
+// ce qui est courant car les double-clic...
+$res = $globals->db->query("SELECT alias FROM aliases WHERE alias='$forlife'");
+if (mysql_num_rows($res)) {
+ $page->kill("Tu es déjà inscrit à polytechnique.org. Tu as sûrement cliqué deux fois sur le même lien de
+ référence ou effectué un double clic. Consultes tes mails pour obtenir ton identifiant et ton
+ mot de passe.");
+}
+
+$nom = stripslashes($nom);
+$prenom = stripslashes($prenom);
+$sql = "UPDATE auth_user_md5 SET password='$password', nationalite=$nationalite, perms='user',
+ date='$date', naissance='$naissance', date_ins = NULL WHERE matricule='$matricule'";
+$globals->db->query($sql);
+$sql = "REPLACE INTO auth_user_quick (user_id)
+ SELECT user_id
+ FROM auth_user_md5
+ WHERE matricule='$matricule'";
+$globals->db->query($sql);
+
+// on vérifie qu'il n'y a pas eu d'erreur
+if ($globals->db->err()) {
+ $page->kill($globals->db->error() . '<br />
+ Une erreur s\'est produite lors de la mise en place définitive de ton inscription,
+ essaie à nouveau, si cela ne fonctionne toujours pas, envoie un mail à
+ <a href="mailto:webmestre@polytechnique.org">webmaster@polytechnique.org</a>');
+}
+// ok, pas d'erreur, on continue
+$resbis=$globals->db->query("SELECT user_id FROM auth_user_md5 WHERE matricule='$matricule'");
+if ((list($uid) = mysql_fetch_row($resbis)) === false) {
+ $page->kill($globals->db->error() . '<br />
+ Une erreur s\'est produite lors de la mise en place définitive de ton inscription,
+ essaie à nouveau, si cela ne fonctionne toujours pas, envoie un mail à
+ <a href="mailto:webmestre@polytechnique.org">webmaster@polytechnique.org</a>');
+}
+
+$globals->db->query("INSERT INTO aliases (id,alias,type) VALUES ($uid,'$forlife','a_vie')");
+if($alias) {
+ $p2 = sprintf("%02u",($promo%100));
+ $globals->db->query("INSERT INTO aliases (id,alias,type) VALUES ($uid,'$alias','alias')");
+ $globals->db->query("INSERT INTO aliases (id,alias,type) VALUES ($uid,'$alias.$p2','alias')");
+}
+
+// on cree un objet logger et on log l'
+$logger = new DiogenesCoreLogger($uid);
+$logger->log("inscription",$email);
+
+/****************** insertion de l'email dans la table emails + bogofilter ***/
+require_once("emails.inc.php");
+$redirect = new Redirect($uid);
+$redirect->add_email($email);
+fix_bestalias($uid);
+/****************** ajout des formations ****************/
+if (($appli_id1>0)&&($appli_type1))
+ $globals->db->query("insert into applis_ins set uid=$uid,aid=$appli_id1,type='$appli_type1',ordre=0");
+if (($appli_id2>0)&&($appli_type2))
+ $globals->db->query("insert into applis_ins set uid=$uid,aid=$appli_id2,type='$appli_type2',ordre=1");
+/****************** envoi d'un mail au démarcheur ***************/
+/* si la personne a été marketingnisée, alors on prévient son démarcheur */
+$res = $globals->db->query("SELECT DISTINCT a.alias,e.date_envoi
+ FROM envoidirect AS e
+ INNER JOIN aliases AS a ON ( a.id = e.sender AND a.type='a_vie' )
+ WHERE e.matricule = '$matricule'");
+while (list($sender_usern, $sender_date) = mysql_fetch_row($res)) {
+ $mymail = new XOrgMailer('marketing.thanks.tpl');
+ $mymail->assign('to', $sender_usern);
$mymail->assign('prenom', $prenom);
+ $mymail->assign('nom',$nom);
+ $mymail->assign('promo',$promo);
$mymail->send();
+}
+
+// effacer la pré-inscription devenue
+$globals->db->query("update en_cours set loginbis='INSCRIT' WHERE username='$forlife'");
+
+// insérer l'inscription dans la table des notifications
+require_once('notifs.inc.php');
+register_watch_op($uid,WATCH_INSCR);
+inscription_notifs_base($uid);
+
+// insérer une ligne dans user_changes pour que les coordonnées complètes
+// soient envoyées a l'AX
+$globals->db->query("insert into user_changes ($uid)");
+
+// envoi du mail à l'inscrit
+$mymail = new XOrgMailer('inscription.reussie.tpl');
+$mymail->assign('forlife', $forlife);
+$mymail->assign('prenom', $prenom);
+$mymail->send();
- // s'il est dans la table envoidirect, on le marque comme inscrit
- $globals->db->query("update envoidirect set date_succes=NOW() where matricule = $matricule");
+// s'il est dans la table envoidirect, on le marque comme inscrit
+$globals->db->query("update envoidirect set date_succes=NOW() where matricule = $matricule");
- require_once("xorg.hook.inc.php");
- $hook = new XOrgHook('core');
- $hook->subscribe($forlife, $uid, $promo, $password, true);
-
- start_connexion($uid,false);
-} else
- $page->assign('error',ERROR_REF);
+require_once("xorg.hook.inc.php");
+$hook = new XOrgHook('core');
+$hook->subscribe($forlife, $uid, $promo, $password, true);
-$page->assign('dev',$globals->debug);
+start_connexion($uid,false);
$page->run();
?>
new_skinned_page('listes/admin.tpl', AUTH_MDP);
require_once('lists.inc.php');
-$err = Array();
$client =& lists_xmlrpc($_SESSION['uid'], $_SESSION['password']);
if(isset($_REQUEST['add_member'])) {
$arr = $client->mass_subscribe($liste, Array($_REQUEST['add_member']));
if(is_array($arr)) {
- foreach($arr as $addr) $err[] = "{$addr[0]} inscrit.";
+ foreach($arr as $addr) {
+ $page->trigger("{$addr[0]} inscrit.");
}
}
}
if(isset($_REQUEST['add_owner'])) {
- if($client->add_owner($liste, $_REQUEST['add_owner']))
- $err = $_REQUEST['add_owner']." ajouté aux modérateurs.";
+ if($client->add_owner($liste, $_REQUEST['add_owner'])) {
+ $page->trigger($_REQUEST['add_owner']." ajouté aux modérateurs.");
+ }
}
if(isset($_REQUEST['del_owner'])) {
} else
$page->assign('no_list',true);
-$page->assign('err', $err);
$page->run();
?>
ksort($members); array_unique($members);
if(isset($_POST['submit'])) {
- $err = Array();
- if(empty($_POST['liste'])) $err[] = 'champs «addresse souhaitée» vide';
- if(!preg_match("/^[a-zA-Z0-9\-]*$/", $_POST['liste']))
- $err = 'le nom de la liste ne doit contenir que des lettres, chiffres et tirets';
+ if(empty($_POST['liste'])) {
+ $page->trigger('champs «addresse souhaitée» vide');
+ }
+ if(!preg_match("/^[a-zA-Z0-9\-]*$/", $_POST['liste'])) {
+ $page->trigger('le nom de la liste ne doit contenir que des lettres, chiffres et tirets');
+ }
$res = $globals->db->query("SELECT COUNT(*) FROM aliases WHERE alias='{$_POST['liste']}'");
list($n) = mysql_fetch_row($res);
mysql_free_result($res);
- if($n) $err[] = 'cet alias est déjà pris';
- if(empty($_POST['desc'])) $err[] = 'le sujet est vide';
- if(!count($owners)) $err[] = 'pas de gestionnaire';
- if(count($members)<4) $err[] = 'pas assez de membres';
+ if($n) {
+ $page->trigger('cet alias est déjà pris');
+ }
+
+ if(empty($_POST['desc'])) {
+ $page->trigger('le sujet est vide');
+ }
+
+ if(!count($owners)) {
+ $page->trigger('pas de gestionnaire');
+ }
+
+ if(count($members)<4) {
+ $page->trigger('pas assez de membres');
+ }
- if(!count($err)) {
+ if (!$page->nb_errs()) {
$page->assign('created', true);
require_once('validations.inc.php');
$req = new ListeReq($_SESSION['uid'], $_POST['liste'], $_POST['desc'],
$_POST['advertise'], $_POST['modlevel'], $_POST['inslevel'],
$owners, $members);
$req->submit();
- } else {
- $page->assign('err', $err);
}
}
require_once("xorg.inc.php");
new_admin_page('marketing/volontaire.tpl');
-$errors = Array();
-
// traitement des paramètres éventuels
if (!empty($_GET["del"])) {
$globals->db->query("DELETE FROM marketing WHERE id ='{$_GET['del']}'");
- $errors[] = "Entrée effacée";
+ $page->trigger("Entrée effacée");
}
if (!empty($_GET["done"])) {
$globals->db->query("UPDATE marketing SET flags = CONCAT(flags,',envoye') WHERE id ='{$_GET['done']}'");
- $errors[] = "Entrée mise à jour";
+ $page->trigger("Entrée mise à jour");
}
-$page->assign_by_ref('errors', $errors);
-
$sql = "SELECT m.id, m.expe, m.dest, m.email,
i.promo, i.nom, i.prenom, i.last_known_email,
u.promo AS spromo, u.nom AS snom, u.prenom AS sprenom, a.alias AS forlife,
// initialisation
$op = isset($_REQUEST['op']) ? $_REQUEST['op'] : 'select';
-$erreur = Array();
$meth = new PayMethod(isset($_REQUEST['methode']) ? $_REQUEST['methode'] : -1);
$pay = new Payment(isset($_REQUEST['ref']) ? $_REQUEST['ref'] : -1);
if($pay->flags->hasflag('old')){
- $erreur[] = "La transaction selectionnée est périmée.";
+ $page->trigger("La transaction selectionnée est périmée.");
$pay = new Payment();
}
$val = (($op=="submit") && isset($_REQUEST['montant'])) ? $_REQUEST['montant'] : $pay->montant_def;
if (($e = $pay->check($val)) !== true) {
- $erreur[] = $e;
+ $page->trigger($e);
}
if ($op=='submit') {
$pay->init($val, $meth);
}
-$page->assign('erreur', $erreur);
$page->assign('montant',$val);
$page->assign('meth', $meth);
if (isset($_REQUEST['birth'])) {
//en cas d'erreur :
if (!ereg("[0-3][0-9][0-1][0-9][1][9]([0-9]{2})", $_REQUEST['birth'])) {
- $page->assign('etat_naissance','erreur');
+ $page->trigger("Date de naissance incorrecte ou incohérente.");
+ $page->assign('etat_naissance','query');
$page->run();//on reaffiche le formulaire
}
$page->run();//on affiche le formulaire pour naissance
}
-$errs=Array();
-
//doit-on faire un update ?
if (isset($_REQUEST['modifier']) || isset($_REQUEST['suivant'])) {
require_once("profil/get_{$opened_tab}.inc.php");
require_once("profil/verif_{$opened_tab}.inc.php");
- if(!empty($errs)) {
+ if($page->nb_errs()) {
require_once("profil/assign_{$opened_tab}.inc.php");
- $page->assign("errs", $errs);
$page->assign('onglet',$opened_tab);
$page->assign('onglet_last',get_last_tab());
$page->assign('onglet_tpl',"profil/$opened_tab.tpl");
require_once("profil/verif_{$new_tab}.inc.php");
require_once("profil/assign_{$new_tab}.inc.php");
-$page->assign("errs", $errs);
$page->assign('onglet',$new_tab);
$page->assign('onglet_last',get_last_tab());
$page->assign('onglet_tpl',"profil/$new_tab.tpl");
require_once("xorg.inc.php");
new_skinned_page('recovery.tpl', AUTH_PUBLIC);
-$errors = Array();
-
if (isset($_REQUEST['login']) and isset($_REQUEST['birth'])) {
if (!ereg("[0-3][0-9][0-1][0-9][1][9]([0-9]{2})", $_REQUEST['birth'])) {
- $page->assign('error', "Date de naissance incorrecte ou incohérente");
+ $page->trigger("Date de naissance incorrecte ou incohérente");
$page->run();
}
$birth = sprintf("%s-%s-%s", substr($_REQUEST["birth"],4,4), substr($_REQUEST["birth"],2,2), substr($_REQUEST["birth"],0,2));
$logger = $_SESSION['log'] = (isset($logger) ? $logger : new DiogenesCoreLogger($uid));
$logger->log("recovery",$emails);
} else {
- $page->assign('error', "Pas de résultat correspondant aux champs entrés dans notre base de données.");
+ $page->trigger("Pas de résultat correspondant aux champs entrés dans notre base de données.");
}
}
$globals->db->query($sql);
new_skinned_page('tmpPWD.success.tpl', AUTH_PUBLIC);
$page->run();
- }
- else {
+ } else {
new_skinned_page('motdepassemd5.tpl', AUTH_PUBLIC, 'motdepassemd5.head.tpl');
$page->run();
}
-}
-else {
- new_skinned_page('tmpPWD.failure.tpl', AUTH_PUBLIC);
- $page->run();
+} else {
+ new_skinned_page('index.tpl', AUTH_PUBLIC);
+ $page->kill("Cette adresse n'existe pas ou n'existe plus sur le serveur.");
}
?>
require_once("validations.inc.php");
if (isset($_REQUEST["ordi"]) and
- isset($_FILES["userfile"]) and isset($_FILES["userfile"]["tmp_name"])) {
+ isset($_FILES["userfile"]) and isset($_FILES["userfile"]["tmp_name"])) {
//Fichier en local
$myphoto = new PhotoReq($_SESSION['uid'], $_FILES["userfile"]["tmp_name"]);
- if(!isset($erreur))
- $myphoto->submit();
+ $myphoto->submit();
} elseif (isset($_REQUEST["web"]) and isset($_REQUEST["photo"])) {
// net
$fp = fopen($_REQUEST["photo"], 'r');
if (!$fp) {
- $erreur = "Fichier inexistant";
+ $page->trigger("Fichier inexistant");
} else {
$attach = fread($fp, 35000);
fclose($fp);
fwrite($fp, $attach);
fclose($fp);
- $myphoto = new PhotoReq($_SESSION['uid'], $file);
- if(!isset($erreur))
+ $myphoto = new PhotoReq($_SESSION['uid'], $file);
$myphoto->submit();
}
} elseif (isset($_REQUEST["trombi"])) {
$file = "/home/web/trombino/photos".$_SESSION["promo"]."/".$_SESSION["forlife"].".jpg";
$myphoto = new PhotoReq($_SESSION['uid'], $file);
if($myphoto){// There was no errors, we can go on
- $myphoto->commit();
- $myphoto->clean();
+ $myphoto->commit();
+ $myphoto->clean();
}
} elseif (isset($_REQUEST["suppr"])) {
// effacement de la photo
$globals->db->query("DELETE FROM requests WHERE user_id = ".$_SESSION["uid"]." AND type='photo'");
}
-// Si une requête a été faite et qu'une erreur est signalée, on affiche l'erreur
-if(isset($erreur)) $page->assign('erreur', $erreur);
-
$sql = $globals->db->query("SELECT * FROM requests WHERE user_id='{$_SESSION['uid']}' AND type='photo'");
$page->assign('submited', mysql_num_rows($sql) > 0);
$xpromo = intval($_REQUEST['xpromo']);
if ( $xpromo<1900 || $xpromo>date('Y') || ($xpromo == -1 && $_SESSION['perms']!="admin") ) {
- $page->assign('erreur', "Promotion incorrecte (saisir au format YYYY). Recommence.");
+ $page->trigger("Promotion incorrecte (saisir au format YYYY). Recommence.");
+ $page->assign('error', true);
} else {
$trombi = new Trombi('getList');
$trombi->hidePromo();
$globals->db->query("update auth_user_quick set redirecturl = '{$_REQUEST['url']}' where user_id = '{$_SESSION['uid']}'");
if (mysql_errno() == 0) {
$_SESSION['log']->log("carva_add","http://".$_REQUEST['url']);
- $page->assign('message',"<p class='normal'>Redirection activée vers <a href='http://"
- .$_REQUEST['url']."'>{$_REQUEST['url']}</a></p>\n");
+ $page->trigger("Redirection activée vers <a href='http://{$_REQUEST['url']}'>{$_REQUEST['url']}</a>");
} else {
- $page->assign('message',"<p class='erreur'>Erreur de mise à jour</p>\n");
+ $page->trigger('Erreur de mise à jour');
}
} elseif (isset($_REQUEST['submit']) and $_REQUEST['submit'] == "Supprimer") {
// on supprime la redirection
if (mysql_errno() == 0) {
$_SESSION['log']->log("carva_del",$_REQUEST['url']);
$_POST['url'] = '';
- $page->assign('message',"<p class='normal'>Redirection supprimée</p>");
+ $page->trigger('Redirection supprimée');
} else {
- $page->assign('message',"<p class='erreur'>Erreur de suppression</p>\n");
+ $page->trigger('Erreur de suppression');
}
}
function sortie_id($err) {
global $page;
new_skinned_page('inscription/step1.tpl', AUTH_PUBLIC);
- $page->assign('erreur', $err);
+ $page->trigger($err);
$page->run();
}
// validité du mobile
if (strlen(strtok($mobile,"<>{}@&#~\/:;?,!§*_`[]|%$^=")) < strlen($mobile)) {
- $errs[] = "Le champ 'Téléphone mobile' contient un caractère interdit.";
+ $page->trigger("Le champ 'Téléphone mobile' contient un caractère interdit.");
}
// correction du champ web si vide
$web='';
} elseif (!preg_match("{^(https?|ftp)://[a-zA-Z0-9._%#+/?=&~-]+$}i", $web)) {
// validité de l'url donnée dans web
- $errs[] = "URL incorrecte dans le champ 'Page web perso', une url doit commencer par http:// ou https:// ou ftp:// et ne pas contenir de caractères interdits";
+ $page->trigger("URL incorrecte dans le champ 'Page web perso', une url doit commencer par
+ http:// ou https:// ou ftp:// et ne pas contenir de caractères interdits");
} else {
$web = str_replace('&', '&', $web);
}
//validité du champ libre
if (strlen(strtok($libre,"<>")) < strlen($libre))
{
- $errs[] = "Le champ 'Complément libre' contient un caractère interdit.";
+ $page->trigger("Le champ 'Complément libre' contient un caractère interdit.");
}
?>
$mentor_expertise = stripslashes($_POST['mentor_expertise']);
if(!empty($mentor_expertise)){
if (strlen(strtok($mentor_expertise,"<>{}~§`|%$^")) < strlen($mentor_expertise)){//TODO: affiner la liste
- $errs[] = "L'expertise contient un caractère interdit.";
+ $page->trigger("L'expertise contient un caractère interdit.");
}
}
}
function ThrowError($explain)
{
global $page;
- $page->assign('error','Erreur : '.$explain);
+ $page->trigger('Erreur : '.$explain);
$page->run();
}
}
$this->raiseError("In the Hook « {$this->_name} » the function « $function » expects at least 1 argument");
}
foreach ($this->_mods as $mod) {
- echo $mod.'_'.$function;
if (!function_exists($mod.'_'.$function)) continue;
$arguments[$i] =& call_user_func_array($mod.'_'.$function,$arguments);
}
var $_page_type;
var $_tpl;
+ var $_errors;
// }}}
// {{{ function XorgPage()
}
$this->_page_type = $type;
- $this->_tpl = $tpl;
+ $this->_tpl = $tpl;
+ require_once('xorg/errors.inc.php');
+ $this->_errors = new XOrgErrors;
$this->DiogenesCorePage();
require_once('xorg/smarty.plugins.inc.php');
function run($append_to_id="")
{
global $globals, $TIME_BEGIN;
+ $this->assign_by_ref("xorg_error", $this->_errors);
+
if ($this->_page_type == NO_SKIN) {
$this->display($this->_tpl);
} else {
}
// }}}
- // {{{ function failure()
+ // {{{ function trigger()
+
+ function trigger($msg)
+ {
+ $this->_errors->trigger($msg);
+ }
+
+ // }}}
+ // {{{ function nb_errs()
+
+ function nb_errs()
+ {
+ return count($this->_errors->errs);
+ }
+
+ // }}}
+ // {{{ function fail()
+
+ function fail($msg)
+ {
+ $this->caching = false;
+ $this->_errors->fail($msg);
+ }
+
+ // }}}
+ // {{{ function kill()
- function failure()
+ function kill($msg)
{
- $this->_page_type = SKINNED;
- $this->_tpl = 'failure.tpl';
- $this->assign('xorg_tpl', 'failure.tpl');
- $this->caching=0;
+ $this->fail($msg);
$this->run();
}
-{***************************************************************************
+<?php
+/***************************************************************************
* Copyright (C) 2003-2004 Polytechnique.org *
* http://opensource.polytechnique.org/ *
* *
* along with this program; if not, write to the Free Software *
* Foundation, Inc., *
* 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA *
- ***************************************************************************}
+ ***************************************************************************/
-<h1>OOOooups !</h1>
-<p>
- Cette adresse n'existe pas ou n'existe plus sur le serveur.
-</p>
-{* vim:set et sw=2 sts=2 sws=2: *}
+// {{{ class XOrgErrors
+
+class XOrgErrors
+{
+ // {{{ properties
+
+ var $errs = Array();
+ var $failure = false;
+
+ // }}}
+ // {{{ constructor
+
+ function XOrgErrors()
+ { }
+
+ // }}}
+ // {{{ function trigger
+
+ function trigger($text) {
+ $this->errs[] = $text;
+ }
+
+ // }}}
+ // {{{
+
+ function fail($text) {
+ $this->trigger($text);
+ $this->failure = true;
+ }
+
+ // }}}
+}
+
+// }}}
+
+// vim:set et sw=4 sts=4 sws=4 foldmethod=marker:
+?>
if (!has_perms()) {
require_once("diogenes.core.logger.inc.php");
$_SESSION['log']->log("noperms",$_SERVER['PHP_SELF']);
- $page->failure();
+ $page->die("Tu n'as pas les permissions nécessaires pour accéder à cette page.");
}
}
{dynamic}
-{foreach from=$errors item=e}
-<p class="erreur">{$e}</p>
-{/foreach}
-
{if $smarty.post.u_kill_conf}
<form method="post" action="{$smarty.server.PHP_SELF}">
<div class="center">
Encore merci de nous faire confiance pour tes e-mails !
</p>
{else}
- {if $error}
- <p class="erreur">{dyn s=$error}</p>
- {/if}
-
<h1>
Adresses e-mail personnalisées
</h1>
{dynamic}
-<p class="erreur">{$erreur}</p>
<h1>
Ma liste personnelle de contacts
{dynamic}
-{foreach from=$err item=e}
-<p class='erreur'>{$e}</p>
-{/foreach}
-
<h1>Notifications automatiques</h1>
<p>Les mails sont hebdomadaires (pour éviter une trop grosse charge du serveur de mails et de ta boite mail).
{dynamic}
-{if $erreur}
-<p class="erreur">{$erreur}</p>
-{/if}
-
<h1>Vérifier une patte cassée</h1>
{if $x && $x.nb_mails}
{dynamic}
-<p class="erreur">{$error}</p>
-
<h1>
Envoyer un mail
</h1>
***************************************************************************}
{dynamic}
-<p class='erreur'>{$erreur|smarty:nodefaults|nl2br}</p>
-
+
<form action="{"inscription/step2.php"|url}" method="post" id='idf'>
<h1>
Identification
{dynamic}
-<p class="erreur">{$erreur|smarty:nodefaults|nl2br}</p>
-
<form action="{"inscription/step3.php"|url}" method="post">
{if $homonyme}
<p>
***************************************************************************}
{dynamic}
-{if !$error}
- <h1>
- Dernière étape
- </h1>
- <p>
- Tu as maintenant accès au site en utilisant les paramètres reçus par mail.
- Ton adresse électronique à vie <strong>{$forlife}@polytechnique.org</strong>
- est déjà ouverte, essaie-la !
- </p>
- <p>
- Remarque: m4x.org est un domaine "discret" qui veut dire "mail for X" et
- qui comporte exactement les mêmes adresses que le domaine polytechnique.org.
- </p>
- <p>
- <strong><a href="{if $dev eq 0}https://www.polytechnique.org/motdepassemd5.php{else}{"motdepassemd5.php"|url}{/if}">Clique ici pour changer ton mot de passe.</a></strong>
- </p>
- <p>
- N'oublie pas : si tu perds ton mot de passe, nous n'avons aucun engagement, en
- particulier en termes de rapidité, mais pas seulement, à te redonner accès au
- site. Cela peut prendre plusieurs semaines, les pertes de mot de passe sont
- traitées avec la priorité minimale.
- </p>
-{elseif $error eq $smarty.const.ERROR_DB}
- {$error_db}
-
- <p>
- Une erreur s'est produite lors de la mise en place définitive de ton inscription,
- essaie à nouveau, si cela ne fonctionne toujours pas, envoie un mail à
- <a href="mailto:webmestre@polytechnique.org">webmaster@polytechnique.org</a>
- </p>
-{elseif $error eq $smarty.const.ERROR_ALREADY_SUBSCRIBED}
- <p>
- Tu es déjà inscrit à polytechnique.org. Tu as sûrement cliqué deux fois sur le même lien de
- référence ou effectué un double clic. Consultes tes mails pour obtenir ton identifiant et ton
- mot de passe.
- </p>
-{elseif $error eq $smarty.const.ERROR_REF}
- <h1>
- OOOooups !
- </h1>
- <p>
- Cette adresse n'existe pas, ou plus, sur le serveur.
- </p>
- <p>
- Causes probables :
- </p>
- <ol>
- <li>
- Vérifie que tu visites l'adresse du dernier e-mail reçu s'il y en a eu plusieurs.
- </li>
- <li>
- Tu as peut-être mal copié l'adresse reçue par mail, vérifie-la à la main.
- </li>
- <li>
- Tu as peut-être attendu trop longtemps pour confirmer. Les
- pré-inscriptions sont annulées tous les 30 jours.
- </li>
- </ol>
-{/if}
+<h1>Dernière étape</h1>
+<p>
+ Tu as maintenant accès au site en utilisant les paramètres reçus par mail.
+ Ton adresse électronique à vie <strong>{$forlife}@polytechnique.org</strong>
+ est déjà ouverte, essaie-la !
+</p>
+<p>
+ Remarque: m4x.org est un domaine "discret" qui veut dire "mail for X" et
+ qui comporte exactement les mêmes adresses que le domaine polytechnique.org.
+</p>
+<p>
+<strong><a href="{#globals.baseurl#}/motdepassemd5.php">Clique ici pour changer ton mot de passe.</a></strong>
+</p>
+<p>
+ N'oublie pas : si tu perds ton mot de passe, nous n'avons aucun engagement, en
+ particulier en termes de rapidité, mais pas seulement, à te redonner accès au
+ site. Cela peut prendre plusieurs semaines, les pertes de mot de passe sont
+ traitées avec la priorité minimale.
+</p>
{/dynamic}
+
{* vim:set et sw=2 sts=2 sws=2: *}
qui y était abonné.
</p>
-{foreach from=$err item=e}
-<p class='error'>{$e}</p>
-{/foreach}
-
<h1>
modérateurs de la liste
</h1>
{dynamic}
-{foreach from=$err item=e}
-<p class='erreur'>{$e}</p>
-{/foreach}
-
<h1>
Création d'une liste de diffusion
</h1>
{if $created}
+
<p class='erreur'>Demande de création envoyée !</p>
{else}
{dynamic}
-{foreach from=$errros item=err}
-<p class="erreur">{$err}</p>
-{/foreach}
-
<h1>
Marketing volontaire
</h1>
<h1>Micropaiments</h1>
{dynamic}
-{if $smarty.request.op eq "submit" and !$erreur|count}
+{if $smarty.request.op eq "submit" and !$xorg_error->errs|count}
{$pay->form($montant)|smarty:nodefaults}
{else}
-{foreach from=$erreur item=e}
-<p class="erreur">{$e}</p>
-{/foreach}
-
<form method="post" action="{$smarty.server.PHP_SELF}">
<p> Si tu ne souhaites pas utiliser notre interface de
télépaiement, tu peux virer directement la somme de ton choix sur notre compte
</script>
{else}
-{if $etat_naissance == 'erreur'}
-<p class="erreur">
-Date de naissance incorrecte ou incohérente.
-Exemple: 1er février 1990 se rentre 01021990.
-</p>
-{/if}
-
<h1>Date de naissance</h1>
<form action="profil.php" method="post">
***************************************************************************}
-<h1>
- Perte du mot de passe
-</h1>
+<h1>Perte du mot de passe</h1>
{dynamic}
-<div class="erreur">{$error}</div>
-
{if $ok}
<p>
<h1>Recherche avancée</h1>
-{if $error}
-<p class="error">{$error}</p>
-{/if}
-
<p>[<a href="search.php">Recherche simple</a>]</p>
<form id="recherche" action="{$smarty.server.PHP_SELF}" method="get">
* 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA *
***************************************************************************}
- {if $do_title}<h1>Recherche avancée</h1>{/if}
-
-{if $error}
-<p class="error">{$error}</p>
-{/if}
+{if $do_title}<h1>Recherche avancée</h1>{/if}
<ul>
{if !$with_soundex && ($smarty.request.firstname || $smarty.request.name)}
<h1>Recherche simple dans l'annuaire</h1>
-{if $error}<p class="error">{$error}</p>{/if}
-
<form action="{"search.php"|url}" method="get">
<table class="bicol" cellspacing="0" cellpadding="4">
<tr>
{dynamic}
-{if $formulaire==0 and !$error}
+{if $formulaire==0 and !$xorg_error->errs|count}
{if !$advanced}
{include file='search.quick.form.tpl'}
{else}
{if $offset!=$smarty.section.offset.index*$perpage}
<a href="{$smarty.server.PHP_SELF}?{$url_args}&offset={$smarty.section.offset.index*$perpage}">{$smarty.section.offset.index+1}</a>
{else}
- <span class="error">{$smarty.section.offset.index+1}</span>
+ <span class="erreur">{$smarty.section.offset.index+1}</span>
{/if}
{/section}
* 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA *
***************************************************************************}
+{dynamic}
+{foreach from=$xorg_error->errs|smarty:nodefaults item=err}
+<div class="erreur">{$err|smarty:nodefaults}</div>
+{/foreach}
+{/dynamic}
-<div class=\"erreur\">
-Tu n'as pas les permissions nécessaires pour accéder à cette page.
-</div>
+{if !$xorg_error->failure}{include file=$xorg_tpl}{/if}
{* vim:set et sw=2 sts=2 sws=2: *}
{if $simple}
<div id="content">
- {include file=$xorg_tpl}
+ {include file="skin/common.content.tpl"}
</div>
{else}
{/perms}
</td>
<td id="content">
- {include file=$xorg_tpl}
+ {include file="skin/common.content.tpl"}
</td>
</tr>
<tr>
{if $simple}
<div id="content">
- {include file=$xorg_tpl}
+ {include file="skin/common.content.tpl"}
</div>
{else}
{/perms}
</td>
<td id="content">
- {include file=$xorg_tpl}
+ {include file="skin/common.content.tpl"}
</td>
</tr>
<tr>
{if $simple}
<div id="content">
- {include file=$xorg_tpl}
+ {include file="skin/common.content.tpl"}
</div>
{else}
{/perms}
</td>
<td id="content">
- {include file=$xorg_tpl}
+ {include file="skin/common.content.tpl"}
</td>
</tr>
<tr>
{if $simple}
<div id="content">
- {include file=$xorg_tpl}
+ {include file="skin/common.content.tpl"}
</div>
{else}
{/perms}
</td>
<td id="content">
- {include file=$xorg_tpl}
+ {include file="skin/common.content.tpl"}
</td>
</tr>
<tr>
{if $simple}
<div id="content">
- {include file=$xorg_tpl}
+ {include file="skin/common.content.tpl"}
</div>
{else}
{/perms}
</td>
<td id="content">
- {include file=$xorg_tpl}
+ {include file="skin/common.content.tpl"}
</td>
</tr>
<tr>
{if $simple}
<div id="content">
- {include file=$xorg_tpl}
+ {include file="skin/common.content.tpl"}
</div>
{else}
{/perms}
</td>
<td id="content">
- {include file=$xorg_tpl}
+ {include file="skin/common.content.tpl"}
</td>
</tr>
<tr>
{if $simple}
<div id="content">
- {include file=$xorg_tpl}
+ {include file="skin/common.content.tpl"}
</div>
{else}
{/perms}
</td>
<td id="content">
- {include file=$xorg_tpl}
+ {include file="skin/common.content.tpl"}
</td>
</tr>
<tr>
{if $simple}
<div id="content">
- {include file=$xorg_tpl}
+ {include file="skin/common.content.tpl"}
</div>
{else}
{/perms}
</td>
<td id="content">
- {include file=$xorg_tpl}
+ {include file="skin/common.content.tpl"}
</td>
</tr>
<tr>
{if $simple}
- <div id="body">
- {include file=$xorg_tpl}
- </div>
+ <div id="body">
+ {include file="skin/common.content.tpl"}
+ </div>
{else}
</td>
<td>
<div id="content">
- {include file=$xorg_tpl}
+ {include file="skin/common.content.tpl"}
</div>
</td>
</tr>
{if $simple}
<div id="content">
- {include file=$xorg_tpl}
+ {include file="skin/common.content.tpl"}
</div>
{else}
{/perms}
</td>
<td id="content">
- {include file=$xorg_tpl}
+ {include file="skin/common.content.tpl"}
</td>
</tr>
<tr>
{if $simple}
<div id="content">
- {include file=$xorg_tpl}
+ {include file="skin/common.content.tpl"}
</div>
{else}
{/perms}
</td>
<td id="content">
- {include file=$xorg_tpl}
+ {include file="skin/common.content.tpl"}
</td>
</tr>
<tr>
{if $simple}
<div id="content">
- {include file=$xorg_tpl}
+ {include file="skin/common.content.tpl"}
</div>
{else}
{/perms}
</td>
<td id="content">
- {include file=$xorg_tpl}
+ {include file="skin/common.content.tpl"}
</td>
</tr>
<tr>
{foreach item=nb from=$nb10}
<td class="center">
{if $nb && $nb.promo eq $smarty.request.promo}
- <span class='error'>{$nb.nb}</span>
+ <span class='erreur'>{$nb.nb}</span>
{elseif $nb}
<a href="?promo={$nb.promo}">{$nb.nb}</a>
{else}
{dynamic}
-{if !$smarty.request.xpromo || $erreur}
+{if !$smarty.request.xpromo || $error}
<h1>
Trombinoscope promo
</h1>
idée de la taille, chaque photo est limitée à 30 ko, et
chaque page affiche au plus {$limit} photos.
</p>
-{if $erreur}<p>{$erreur}</p>{/if}
<form action="{$smarty.server.PHP_SELF}" method="get">
<table class="tinybicol" cellpadding="3" summary="Saisie promo" style="width: 30%; margin-left:35%">
***************************************************************************}
-{dynamic on="0$message"}
-<h1>Mise à jour de la redirection</h1>
-{$message|smarty:nodefaults}
-{/dynamic}
-
<h1>Redirection de page WEB</h1>
<h2>Pourquoi une redirection de page WEB ?</h2>