migrate list creation.
authorx2000habouzit <x2000habouzit@839d8a87-29fc-0310-9880-83ba4fa771e5>
Sat, 15 Jul 2006 13:33:30 +0000 (13:33 +0000)
committerx2000habouzit <x2000habouzit@839d8a87-29fc-0310-9880-83ba4fa771e5>
Sat, 15 Jul 2006 13:33:30 +0000 (13:33 +0000)
fix problem with list deletion.

git-svn-id: svn+ssh://murphy/home/svn/platal/trunk@496 839d8a87-29fc-0310-9880-83ba4fa771e5

htdocs.net/groupe/listes-create.php [deleted file]
include/xnet/page.inc.php
modules/lists.php
modules/xnetlists.php
templates/xnet/groupe/listes-create.tpl

diff --git a/htdocs.net/groupe/listes-create.php b/htdocs.net/groupe/listes-create.php
deleted file mode 100644 (file)
index 7934c0b..0000000
+++ /dev/null
@@ -1,54 +0,0 @@
-<?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()
-
-?>
index ffcf56e..2939ebe 100644 (file)
@@ -79,7 +79,7 @@ class XnetPage extends PlatalPage
                     $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) {
@@ -97,7 +97,7 @@ class XnetPage extends PlatalPage
                 $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;
index 2f74ea6..6435b4d 100644 (file)
@@ -557,7 +557,7 @@ class ListsModule extends PLModule
             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)) {
index b07f7ef..97a74db 100644 (file)
@@ -106,6 +106,80 @@ class XnetListsModule extends ListsModule
         $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;
index 0ab584c..25aae99 100644 (file)
@@ -33,7 +33,7 @@ D'autre part, il est impossible d'inscrire une liste de diffusion 
 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>