better "trombino" with limited number of people listed
authorx2000habouzit <x2000habouzit>
Wed, 22 Sep 2004 08:42:25 +0000 (08:42 +0000)
committerx2000habouzit <x2000habouzit>
Wed, 22 Sep 2004 08:42:25 +0000 (08:42 +0000)
htdocs/listes/trombi.php
scripts/mailman/mailman-rpc.py
templates/listes/moderate.tpl
templates/listes/trombi.tpl

index 38ee27d..81f4cdd 100644 (file)
  *  Foundation, Inc.,                                                      *
  *  59 Temple Place, Suite 330, Boston, MA  02111-1307  USA                *
  ***************************************************************************
-        $Id: trombi.php,v 1.2 2004-09-21 15:40:35 x2000habouzit Exp $
+        $Id: trombi.php,v 1.3 2004-09-22 08:42:25 x2000habouzit Exp $
  ***************************************************************************/
 
 if(empty($_REQUEST['liste'])) header('Location: index.php');
 $liste = strtolower($_REQUEST['liste']);
+$npage = isset($_REQUEST['npage']) ? $_REQUEST['npage'] : 1;
 
 require("auto.prepend.inc.php");
 new_skinned_page('listes/trombi.tpl', AUTH_COOKIE, true);
@@ -33,7 +34,7 @@ list($pass) = mysql_fetch_row($res);
 mysql_free_result($res);
 
 $client = new xmlrpc_client("http://{$_SESSION['uid']}:$pass@localhost:4949");
-$members = $client->get_members($liste);
+$members = $client->get_members_limit($liste,$npage,30);
 
 if(is_array($members)) {
     $membres = Array();
@@ -65,6 +66,15 @@ if(is_array($members)) {
     $page->assign_by_ref('details', $members[0]);
     $page->assign_by_ref('members', $membres);
     $page->assign_by_ref('owners',  $moderos);
+    $links = Array();
+    if($npage>1)
+       $links[] = Array('i'=>$npage - 1, 'text' => 'Précédent');
+    for($i=1; $i<=$members[3]; $i++)
+       $links[] = Array('i'=>$i, 'text' => $i);
+    if($npage<$members[3])
+       $links[] = Array('i'=>$npage + 1, 'text' => 'Suivant');
+    $page->assign('links', $links);
+    $page->assign('npage', $npage);
 
 } else
     $page->assign('no_list',true);
index 51bccad..d295843 100755 (executable)
@@ -18,7 +18,7 @@
 #*  Foundation, Inc.,                                                      *
 #*  59 Temple Place, Suite 330, Boston, MA  02111-1307  USA                *
 #***************************************************************************
-#       $Id: mailman-rpc.py,v 1.23 2004-09-21 16:16:04 x2000habouzit Exp $
+#       $Id: mailman-rpc.py,v 1.24 2004-09-22 08:42:25 x2000habouzit Exp $
 #***************************************************************************
 
 import base64, MySQLdb, os
@@ -162,6 +162,14 @@ def get_members((userdesc,perms),listname):
         return (details,members,mlist.owner)
     return 0
 
+def get_members_limit((userdesc,perms),listname,page,nb_per_page):
+    try:
+        details,members,owners = get_members((userdesc,perms),listname)
+    except:
+        return 0
+    i = (int(page)-1) * int(nb_per_page)
+    return (details,members[i:i+int(nb_per_page)],owners,(len(members)-1)/int(nb_per_page)+1)
+
 def subscribe((userdesc,perms),listname):
     try:
         mlist = MailList.MailList(listname)
@@ -405,6 +413,7 @@ server = FastXMLRPCServer(("localhost", 4949), BasicAuthXMLRPCRequestHandler)
 
 server.register_function(get_lists)
 server.register_function(get_members)
+server.register_function(get_members_limit)
 server.register_function(subscribe)
 server.register_function(unsubscribe)
 
index b1f2be5..fe1b1b8 100644 (file)
@@ -17,7 +17,7 @@
  *  Foundation, Inc.,                                                      *
  *  59 Temple Place, Suite 330, Boston, MA  02111-1307  USA                *
  ***************************************************************************
-        $Id: moderate.tpl,v 1.3 2004-09-21 15:40:36 x2000habouzit Exp $
+        $Id: moderate.tpl,v 1.4 2004-09-22 08:42:26 x2000habouzit Exp $
  ***************************************************************************}
 
 {dynamic}
 
 {else}
 
+<p>
+[<a href='admin.php?liste={$smarty.request.liste}'>page de la liste</a>]
+[<a href='index.php'>retour</a>]
+</p>
+
 <div class='rubrique'>
   Inscriptions en attente de modération
 </div>
 <p>pas d'inscriptions en attente de modération</p>
 {/if}
 
-{if $mails|@count}
 <div class='rubrique'>
   Mails en attente de modération
 </div>
 
+{if $mails|@count}
 <table class='bicol' cellpadding='0' cellspacing='0'>
   <tr>
     <th>émetteur</th>
index 2cd0e71..b911c3f 100644 (file)
@@ -17,7 +17,7 @@
  *  Foundation, Inc.,                                                      *
  *  59 Temple Place, Suite 330, Boston, MA  02111-1307  USA                *
  ***************************************************************************
-        $Id: trombi.tpl,v 1.2 2004-09-21 16:14:35 x2000habouzit Exp $
+        $Id: trombi.tpl,v 1.3 2004-09-22 08:42:26 x2000habouzit Exp $
  ***************************************************************************}
 
 {dynamic}
     {/foreach}
   {/foreach}
   {if $loop eq "1"}<td></td><td></td></tr>{elseif $loop eq "2"}<td></td></tr>{/if}
+  <tr>
+    <td colspan='3' class='center'>
+      {foreach from=$links item=l}
+      {if $l.i eq $npage}
+      <span class='erreur'>{$l.text}</span>
+      {else}
+      <a href='?liste={$smarty.request.liste}&amp;npage={$l.i}'>{$l.text}</a>
+      {/if}
+      {/foreach}
+    </td>
+  </tr>
 </table>
 
 {/if}