migrate xnet list index.
authorx2000habouzit <x2000habouzit@839d8a87-29fc-0310-9880-83ba4fa771e5>
Sat, 15 Jul 2006 13:19:15 +0000 (13:19 +0000)
committerx2000habouzit <x2000habouzit@839d8a87-29fc-0310-9880-83ba4fa771e5>
Sat, 15 Jul 2006 13:19:15 +0000 (13:19 +0000)
migrate xnet list sync module

also remove 'trombi' trigger for xnet

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

htdocs.net/groupe/listes-sync.php [deleted file]
htdocs.net/groupe/listes.php [deleted file]
modules/xnetlists.php
templates/skin/common.bandeau.tpl
templates/xnet/groupe/listes-sync.tpl
templates/xnet/groupe/listes.tpl

diff --git a/htdocs.net/groupe/listes-sync.php b/htdocs.net/groupe/listes-sync.php
deleted file mode 100644 (file)
index 9c97ed7..0000000
+++ /dev/null
@@ -1,51 +0,0 @@
-<?php
-
-require_once 'xnet.inc.php';
-require_once 'lists.inc.php';
-require_once 'xnet/mail.inc.php';
-
-if (!Env::has('liste')) {
-    redirect('admin/annuaire');
-}
-$liste = Env::get('liste');
-
-new_groupadmin_page('xnet/groupe/listes-sync.tpl');
-
-$client =& lists_xmlrpc(Session::getInt('uid'), Session::get('password'), $globals->asso('mail_domain'));
-
-if (Env::has('add')) {
-    $client->mass_subscribe($liste, array_keys(Env::getMixed('add')));
-}
-
-list(,$members) = $client->get_members($liste);
-$mails = array_map(create_function('$arr', 'return $arr[1];'), $members);
-$subscribers = array_unique(array_merge($subscribers, $mails));
-
-$not_in_group_x = array();
-$not_in_group_ext = array();
-
-$ann = $globals->xdb->iterator(
-          "SELECT  IF(m.origine='X',IF(u.nom_usage<>'', u.nom_usage, u.nom) ,m.nom) AS nom,
-                   IF(m.origine='X',u.prenom,m.prenom) AS prenom,
-                   IF(m.origine='X',u.promo,'extérieur') AS promo,
-                   IF(m.origine='X',CONCAT(a.alias, '@polytechnique.org'),m.email) AS email,
-                   IF(m.origine='X',FIND_IN_SET('femme', u.flags),0) AS femme,
-                   m.perms='admin' AS admin,
-                   m.origine='X' AS x
-             FROM  groupex.membres AS m
-        LEFT JOIN  auth_user_md5   AS u ON ( u.user_id = m.uid )
-        LEFT JOIN  aliases         AS a ON ( a.id = m.uid AND a.type='a_vie' )
-            WHERE  m.asso_id = {?}", $globals->asso('id'));
-
-$not_in_list = array();
-
-while ($tmp = $ann->next()) {
-    if (!in_array($tmp['email'], $subscribers)) {
-        $not_in_list[] = $tmp;
-    }
-}
-
-$page->assign('not_in_list', $not_in_list);
-$page->run();
-
-?>
diff --git a/htdocs.net/groupe/listes.php b/htdocs.net/groupe/listes.php
deleted file mode 100644 (file)
index 9c61c83..0000000
+++ /dev/null
@@ -1,55 +0,0 @@
-<?php
-
-require_once 'xnet.inc.php';
-
-new_group_page('xnet/groupe/listes.tpl');
-
-require_once('lists.inc.php');
-$client =& lists_xmlrpc(Session::getInt('uid'), Session::get('password'), $globals->asso('mail_domain'));
-
-
-if(Get::has('del')) {
-    $client->unsubscribe(Get::get('del'));
-    redirect('listes.php');
-}
-if(Get::has('add')) {
-    $client->subscribe(Get::get('add'));
-    redirect('listes.php');
-}
-if(Post::has('promo_add')) {
-    $promo = Post::getInt('promo_add');
-    if ($promo>=1900 and $promo<2100) {
-        $client->subscribe("promo$promo");
-    } else {
-        $page->trig("promo incorrecte, il faut une promo sur 4 chiffres.");
-    }
-}
-
-
-if (Post::has('del_alias') && may_update()) {
-    $alias = Post::get('del_alias');
-    // prevent group admin from erasing aliases from other groups
-    $alias = substr($alias, 0, strpos($alias, '@')).'@'.$globals->asso('mail_domain');
-    $globals->xdb->query(
-            'DELETE FROM  x4dat.virtual_redirect, x4dat.virtual
-                   USING  x4dat.virtual AS v
-              LEFT JOIN  x4dat.virtual_redirect USING(vid)
-                  WHERE  v.alias={?}', $alias);
-    $page->trig(Post::get('del_alias')." supprimé !");
-}
-
-$listes = $client->get_lists();
-$page->assign('listes',$listes);
-
-$alias  = $globals->xdb->iterator(
-        'SELECT  alias,type
-           FROM  x4dat.virtual
-          WHERE  alias
-           LIKE  {?} AND type="user"
-       ORDER BY  alias', '%@'.$globals->asso('mail_domain'));
-$page->assign('alias', $alias);
-
-$page->assign('may_update', may_update());
-
-$page->run();
-?>
index 08a0aee..a539774 100644 (file)
@@ -32,7 +32,6 @@ class XnetListsModule extends ListsModule
             'grp/lists/create'    => $this->make_hook('create',    AUTH_MDP),
 
             'grp/lists/members'   => $this->make_hook('members',   AUTH_COOKIE),
-            'grp/lists/trombi'    => $this->make_hook('trombi',    AUTH_COOKIE),
             'grp/lists/archives'  => $this->make_hook('archives',  AUTH_COOKIE),
 
             'grp/lists/moderate'  => $this->make_hook('moderate',  AUTH_MDP),
@@ -42,6 +41,7 @@ class XnetListsModule extends ListsModule
 
             'grp/lists/soptions'  => $this->make_hook('soptions',  AUTH_MDP),
             'grp/lists/check'     => $this->make_hook('check',     AUTH_MDP),
+            'grp/lists/sync'      => $this->make_hook('sync',      AUTH_MDP),
 
             /* hack: lists uses that */
             'profile' => $this->make_hook('profile', AUTH_PUBLIC),
@@ -63,6 +63,92 @@ class XnetListsModule extends ListsModule
         $page->setType($globals->asso('cat'));
     }
 
+    function handler_lists(&$page)
+    {
+        global $globals;
+
+        $this->prepare_client($page);
+
+        $page->changeTpl('xnet/groupe/listes.tpl');
+
+        if (Get::has('del')) {
+            $this->client->unsubscribe(Get::get('del'));
+            redirect('lists');
+        }
+        if (Get::has('add')) {
+            $this->client->subscribe(Get::get('add'));
+            redirect('lists');
+        }
+
+        if (Post::has('del_alias') && may_update()) {
+            $alias = Post::get('del_alias');
+            // prevent group admin from erasing aliases from other groups
+            $alias = substr($alias, 0, strpos($alias, '@')).'@'.$globals->asso('mail_domain');
+            $globals->xdb->query(
+                    'DELETE FROM  x4dat.virtual_redirect, x4dat.virtual
+                           USING  x4dat.virtual AS v
+                       LEFT JOIN  x4dat.virtual_redirect USING(vid)
+                           WHERE  v.alias={?}', $alias);
+            $page->trig(Post::get('del_alias')." supprimé !");
+        }
+
+        $listes = $this->client->get_lists();
+        $page->assign('listes',$listes);
+
+        $alias  = $globals->xdb->iterator(
+                'SELECT  alias,type
+                   FROM  x4dat.virtual
+                  WHERE  alias
+                   LIKE  {?} AND type="user"
+               ORDER BY  alias', '%@'.$globals->asso('mail_domain'));
+        $page->assign('alias', $alias);
+
+        $page->assign('may_update', may_update());
+    }
+
+    function handler_sync(&$page, $liste = null)
+    {
+        global $globals;
+
+        $this->prepare_client($page);
+
+        $page->changeTpl('xnet/groupe/listes-sync.tpl');
+
+        if (Env::has('add')) {
+            $this->client->mass_subscribe($liste, array_keys(Env::getMixed('add')));
+        }
+
+        list(,$members) = $this->client->get_members($liste);
+        $mails = array_map(create_function('$arr', 'return $arr[1];'), $members);
+        $subscribers = array_unique(array_merge($subscribers, $mails));
+
+        $not_in_group_x = array();
+        $not_in_group_ext = array();
+
+        $ann = $globals->xdb->iterator(
+                  "SELECT  IF(m.origine='X',IF(u.nom_usage<>'', u.nom_usage, u.nom) ,m.nom) AS nom,
+                           IF(m.origine='X',u.prenom,m.prenom) AS prenom,
+                           IF(m.origine='X',u.promo,'extérieur') AS promo,
+                           IF(m.origine='X',CONCAT(a.alias, '@polytechnique.org'),m.email) AS email,
+                           IF(m.origine='X',FIND_IN_SET('femme', u.flags),0) AS femme,
+                           m.perms='admin' AS admin,
+                           m.origine='X' AS x
+                     FROM  groupex.membres AS m
+                LEFT JOIN  auth_user_md5   AS u ON ( u.user_id = m.uid )
+                LEFT JOIN  aliases         AS a ON ( a.id = m.uid AND a.type='a_vie' )
+                    WHERE  m.asso_id = {?}", $globals->asso('id'));
+
+        $not_in_list = array();
+
+        while ($tmp = $ann->next()) {
+            if (!in_array($tmp['email'], $subscribers)) {
+                $not_in_list[] = $tmp;
+            }
+        }
+
+        $page->assign('not_in_list', $not_in_list);
+    }
+
     function handler_profile(&$page, $user = null)
     {
         redirect('https://www.polytechnique.org/profile/'.$user);
index 2269bb5..165460a 100644 (file)
@@ -26,7 +26,7 @@
     <!-- ligne grise de 1px -->
     <table class="ligne" cellspacing="0" cellpadding="0" style="width:100%; border:none;" summary=""><tr><td class="ligne"></td></tr></table>
 
-    <table cellspacing="0" cellpadding="1" style="width:100%; border:none;" summary=""><tr><td class="xdx"><img alt="" src="/images/x.png" />&nbsp;&nbsp;<a class="xdx" href="http://www.polytechnique.fr/">L'&Eacute;cole</a>&nbsp;&middot;&nbsp;<a class="xdx" href="http://www.polytechnique.edu/">Institutional site</a>&nbsp;&nbsp;~~&nbsp;&nbsp;<a class="xdx" href="http://www.fondationx.org/">FX</a>&nbsp;&middot;&nbsp;<a class="xdx" href="http://www.polytechniciens.com/">AX</a>&nbsp;&nbsp;~~&nbsp;&nbsp;<a class="xdx" href="http://www.polytechnique.org/">Polytechnique.org</a>&nbsp;&middot;&nbsp;<a class="xdx" href="http://www.polytechnique.net/">Associations polytechniciennes</a>&nbsp;&middot;&nbsp;<a class="xdx" href="http://www.polytechnique.fr/eleves/">&Eacute;l&egrave;ves</a>&nbsp;&middot;&nbsp;<a class="xdx" href="http://www.manageurs.com/">Manageurs</a></td></tr></table>
+    <table cellspacing="0" cellpadding="1" style="width:100%; border:none;" summary=""><tr><td class="xdx"><img alt="" src="{rel}/images/x.png" />&nbsp;&nbsp;<a class="xdx" href="http://www.polytechnique.fr/">L'&Eacute;cole</a>&nbsp;&middot;&nbsp;<a class="xdx" href="http://www.polytechnique.edu/">Institutional site</a>&nbsp;&nbsp;~~&nbsp;&nbsp;<a class="xdx" href="http://www.fondationx.org/">FX</a>&nbsp;&middot;&nbsp;<a class="xdx" href="http://www.polytechniciens.com/">AX</a>&nbsp;&nbsp;~~&nbsp;&nbsp;<a class="xdx" href="http://www.polytechnique.org/">Polytechnique.org</a>&nbsp;&middot;&nbsp;<a class="xdx" href="http://www.polytechnique.net/">Associations polytechniciennes</a>&nbsp;&middot;&nbsp;<a class="xdx" href="http://www.polytechnique.fr/eleves/">&Eacute;l&egrave;ves</a>&nbsp;&middot;&nbsp;<a class="xdx" href="http://www.manageurs.com/">Manageurs</a></td></tr></table>
     <!-- ligne grise de 1px -->
     <table class="ligne" cellspacing="0" cellpadding="0" style="width:100%; border:none;" summary=""><tr><td class="ligne"></td></tr></table>
 
index 17e69ce..8244a22 100644 (file)
@@ -21,9 +21,9 @@
 {**************************************************************************}
 
 {include file='listes/header_listes.tpl' on='sync'}
-<h1>Non abonnés à la liste {$smarty.request.liste}@{$asso.mail_domain}</h1>
+<h1>Non abonnés à la liste {$platal->argv[1]}@{$asso.mail_domain}</h1>
 
-<form action="{$smarty.server.REQUEST_URI}" method="post">
+<form action="{rel}/{$platal->ns}lists/sync/{$platal->argv[1]}" method="post">
 
   <table cellspacing="2" cellpadding="0" class="tiny">
     <tr>
index 91fdfac..e4c6870 100644 (file)
 {if $smarty.get.del_alias}
 
 <p class="error">Est tu sur de supprimer l'alias {$smarty.get.del_alias} ?</p>
-<form action='{$smarty.server.PHP_SELF}' method="post">
+<form action='{rel}/{$platal->ns}lists' method="post">
   <div class="center">
     <input type='submit' value="Oui, je suis sur" />
     <input type='hidden' name='del_alias' value="{$smarty.get.del_alias}" />
   </div>
 </form>
-<p>[<a href='listes.php'>retour à la page des listes</a>]</p>
+<p>[<a href='{rel}/{$platal->ns}lists'>retour à la page des listes</a>]</p>
 
 {else}
 
@@ -62,7 +62,7 @@ croix verte te permet de t'inscrire, apr
   <tr>
     <td>
       <a href="mailto:{$l.list}@{$asso.mail_domain}"><img src="{rel}/images/mail.png" alt='[mail]' /></a>
-      <a href='listes-members.php?liste={$l.list}'>{$l.list} {if $l.priv}<sup>#</sup>{/if}{if $l.own}<sup>o</sup>{/if}</a>
+      <a href='{rel}/{$platal->ns}lists/members/{$l.list}'>{$l.list} {if $l.priv}<sup>#</sup>{/if}{if $l.own}<sup>o</sup>{/if}</a>
     </td>
     <td>{$l.desc}</td>
     <td class='center'>
@@ -72,11 +72,11 @@ croix verte te permet de t'inscrire, apr
     <td align='right'>{$l.nbsub}</td>
     <td align='right'>
       {if $l.sub eq 2}
-      <a href="?del={$l.list}"><img src="{rel}/images/del.png" alt="[désinscrire]" title="me désinscrire" /></a>
+      <a href="{rel}/{$platal->ns}lists?del={$l.list}"><img src="{rel}/images/del.png" alt="[désinscrire]" title="me désinscrire" /></a>
       {elseif $l.sub eq 1}
       <img src="{rel}/images/flag.png" alt="[en attente]" title="en attente de modération" />
       {else}
-      <a href="?add={$l.list}"><img src="{rel}/images/ajouter.gif" alt="[m'inscrire]" title="m'inscrire" /></a>
+      <a href="{rel}/{$platal->ns}lists?add={$l.list}"><img src="{rel}/images/ajouter.gif" alt="[m'inscrire]" title="m'inscrire" /></a>
       {/if}
     </td>
   </tr>
@@ -103,7 +103,7 @@ t'emp
     {if $may_update}
     <td class="center"><a href='mailto:{$a.alias}'><img src='{rel}/images/mail.png' alt='[mail]' /></a></td>
     <td><a href="alias-admin.php?liste={$a.alias}">{$a.alias}</a></td>
-    <td class="center"><a href="?del_alias={$a.alias}"><img src='{rel}/images/del.png' alt='[supprimer]' /></a></td>
+    <td class="center"><a href="{rel}/{$platal->ns}lists?del_alias={$a.alias}"><img src='{rel}/images/del.png' alt='[supprimer]' /></a></td>
     {else}
     <td><a href='mailto:{$a.alias}'><img src='{rel}/images/mail.png' alt='[mail]' /> {$a.alias}</a></td>
     {/if}