+++ /dev/null
-<?php
-require 'xnet.inc.php';
-
-new_groupadmin_page('xnet/groupe/listes-create.tpl');
-$page->assign('force_list_super', may_update());
-
-if (Post::has('submit')) {
- if (!Post::has('liste')) {
- $page->trig_run('champs «addresse souhaitée» vide');
- }
-
- $liste = Post::get('liste');
-
- if (!preg_match("/^[a-zA-Z0-9\-]*$/", $liste)) {
- $page->trig_run('le nom de la liste ne doit contenir que des lettres, chiffres et tirets');
- }
-
- $new = $liste.'@'.$globals->asso('mail_domain');
- $res = $globals->xdb->query('SELECT COUNT(*) FROM x4dat.virtual WHERE alias={?}', $new);
- $n = $res->fetchOneCell();
-
- if($n) {
- $page->trig_run('cet alias est déjà pris');
- }
- if(!Post::get('desc')) {
- $page->trig_run('le sujet est vide');
- }
-
- require_once('platal/xmlrpc-client.inc.php');
- require_once('lists.inc.php');
- $client =& lists_xmlrpc(Session::getInt('uid'), Session::get('password'), $globals->asso('mail_domain'));
- $ret = $client->create_list($liste, Post::get('desc'), Post::get('advertise'), Post::get('modlevel'), Post::get('inslevel'), array(Session::get('forlife')), array());
-
- $dom = strtolower($globals->asso("mail_domain"));
- $red = $dom.'_'.$liste;
-
- if($ret) {
- $globals->xdb->execute('INSERT INTO x4dat.virtual (alias,type) VALUES({?},{?})', $liste.'@'.$dom, 'list');
- $globals->xdb->execute('INSERT INTO x4dat.virtual_redirect (vid,redirect) VALUES ({?}, {?})', mysql_insert_id(), "$red+post@listes.polytechnique.org");
- $globals->xdb->execute('INSERT INTO x4dat.virtual (alias,type) VALUES({?},{?})', $liste.'-owner@'.$dom, 'list');
- $globals->xdb->execute('INSERT INTO x4dat.virtual_redirect (vid,redirect) VALUES ({?}, {?})', mysql_insert_id(), "$red+owner@listes.polytechnique.org");
- $globals->xdb->execute('INSERT INTO x4dat.virtual (alias,type) VALUES({?},{?})', $liste.'-admin@'.$dom, 'list');
- $globals->xdb->execute('INSERT INTO x4dat.virtual_redirect (vid,redirect) VALUES ({?}, {?})', mysql_insert_id(), "$red+admin@listes.polytechnique.org");
- $globals->xdb->execute('INSERT INTO x4dat.virtual (alias,type) VALUES({?},{?})', $liste.'-bounces@'.$dom, 'list');
- $globals->xdb->execute('INSERT INTO x4dat.virtual_redirect (vid,redirect) VALUES ({?}, {?})', mysql_insert_id(), "$red+bounces@listes.polytechnique.org");
- redirect("listes-admin.php?liste=$liste");
- } else {
- $page->kill("Un problème est survenu, contacter <a href='mailto:support@m4x.org'>support@m4x.org</a>");
- }
-}
-
-$page->run()
-
-?>
$sub['carte'] = "$dim/geoloc.php";
}
if ($globals->asso('mail_domain')) {
- $sub['listes de diffusion'] = "$dim/listes.php";
+ $sub['listes de diffusion'] = "$dim/lists";
}
$sub['événement'] = "$dim/evenements.php";
if (false) {
$sub['wiki'] = "$dim/Accueil";
if ($globals->asso('mail_domain')) {
$sub['envoyer un mail'] = "$dim/mail";
- $sub['créer une liste'] = "$dim/listes-create.php";
+ $sub['créer une liste'] = "$dim/lists/create";
$sub['créer un alias'] = "$dim/alias-create.php";
}
$menu['Administrer Groupe'] = $sub;
foreach (array('', '-owner', '-admin', '-bounces') as $app) {
$globals->xdb->execute("DELETE FROM aliases
WHERE type='liste' AND alias='{?}'",
- $ml.$app);
+ $liste.$app);
}
$page->assign('deleted', true);
} elseif (list($details,$options) = $this->client->get_owner_options($liste)) {
$page->assign('may_update', may_update());
}
+ function handler_create(&$page)
+ {
+ global $globals;
+
+ $this->prepare_client($page);
+
+ $page->changeTpl('xnet/groupe/listes-create.tpl');
+ $page->assign('force_list_super', may_update());
+
+ if (!Post::has('submit')) {
+ return;
+ }
+
+ if (!Post::has('liste')) {
+ $page->trig_run('champs «addresse souhaitée» vide');
+ }
+
+ $liste = Post::get('liste');
+
+ if (!preg_match("/^[a-zA-Z0-9\-]*$/", $liste)) {
+ $page->trig_run('le nom de la liste ne doit contenir que des lettres, chiffres et tirets');
+ }
+
+ $new = $liste.'@'.$globals->asso('mail_domain');
+ $res = $globals->xdb->query('SELECT COUNT(*) FROM x4dat.virtual WHERE alias={?}', $new);
+ $n = $res->fetchOneCell();
+
+ if($n) {
+ $page->trig_run('cet alias est déjà pris');
+ }
+ if(!Post::get('desc')) {
+ $page->trig_run('le sujet est vide');
+ }
+
+ require_once('platal/xmlrpc-client.inc.php');
+ require_once('lists.inc.php');
+ $ret = $this->client->create_list(
+ $liste, Post::get('desc'), Post::get('advertise'),
+ Post::get('modlevel'), Post::get('inslevel'),
+ array(Session::get('forlife')), array());
+
+ $dom = strtolower($globals->asso("mail_domain"));
+ $red = $dom.'_'.$liste;
+
+ if (!$ret) {
+ $page->kill("Un problème est survenu, contacter "
+ ."<a href='mailto:support@m4x.org'>support@m4x.org</a>");
+ return;
+ }
+ $globals->xdb->execute('INSERT INTO x4dat.virtual (alias,type)
+ VALUES({?},{?})', $liste.'@'.$dom, 'list');
+ $globals->xdb->execute('INSERT INTO x4dat.virtual_redirect (vid,redirect)
+ VALUES ({?}, {?})', mysql_insert_id(),
+ "$red+post@listes.polytechnique.org");
+ $globals->xdb->execute('INSERT INTO x4dat.virtual (alias,type)
+ VALUES({?},{?})', $liste.'-owner@'.$dom, 'list');
+ $globals->xdb->execute('INSERT INTO x4dat.virtual_redirect (vid,redirect)
+ VALUES ({?}, {?})', mysql_insert_id(),
+ "$red+owner@listes.polytechnique.org");
+ $globals->xdb->execute('INSERT INTO x4dat.virtual (alias,type)
+ VALUES({?},{?})', $liste.'-admin@'.$dom, 'list');
+ $globals->xdb->execute('INSERT INTO x4dat.virtual_redirect (vid,redirect)
+ VALUES ({?}, {?})', mysql_insert_id(),
+ "$red+admin@listes.polytechnique.org");
+ $globals->xdb->execute('INSERT INTO x4dat.virtual (alias,type)
+ VALUES({?},{?})', $liste.'-bounces@'.$dom, 'list');
+ $globals->xdb->execute('INSERT INTO x4dat.virtual_redirect (vid,redirect)
+ VALUES ({?}, {?})', mysql_insert_id(),
+ "$red+bounces@listes.polytechnique.org");
+
+ global $platal;
+ redirect(smarty_function_rel().'/'.$platal->ns.'lists/admin/'.$liste);
+ }
+
function handler_sync(&$page, $liste = null)
{
global $globals;
Si tu as besoin de cette fonctionnalité, il faut alors <strong>impérativement</strong> utiliser
<a href="alias-create.php">un alias</a> qui, lui, est capable de regrouper plusieurs listes.
</p>
-<form action='{$smarty.server.PHP_SELF}' method='post'>
+<form action='{rel}/{$platal->ns}lists/create' method='post'>
<table class="large">
<tr>
<th colspan='2'>Caractéristiques de la Liste</th>