Changeset 947

Show
Ignore:
Timestamp:
03/31/06 22:29:25 (3 years ago)
Author:
nahuel
Message:

* Rajout d'un argument optionnel dans enum_doms_mails()
* Creation de la fonction enum_doms_mails_letters qui prend un nom de domaine en argument
Closes: #254

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • trunk/bureau/admin/mail_list.php

    r603 r947  
    3535include("head.php"); 
    3636 
    37 if(!$res=$mail->enum_doms_mails($domain,1)) { 
     37if(!$res=$mail->enum_doms_mails($domain,1,$letter)) { 
    3838  $error=$err->errstr(); 
    39  
    4039?> 
    4140</head> 
     
    4645  echo "<p class=\"error\">$error</p>"; 
    4746} 
    48 echo "<p><a href=\"mail_add.php?domain=$domain\">".sprintf(_("Add a mailbox on <b>%s</b>"),$domain)."</a><br /"; 
     47echo "<p><a href=\"mail_add.php?domain=$domain\">".sprintf(_("Add a mailbox on <b>%s</b>"),$domain)."</a><br />"; 
    4948echo "   <a href=\"mail_add.php?many=1&amp;domain=$domain\">".sprintf(_("Add many mailboxes on <b>%s</b>"),$domain)."</a></p>"; 
    5049?> 
     
    6564} 
    6665 
    67 echo "<p><a href=\"mail_add.php?domain=$domain\">".sprintf(_("Add a mailbox on <b>%s</b>"),$domain)."</a><br /"; 
     66echo "<p><a href=\"mail_add.php?domain=$domain\">".sprintf(_("Add a mailbox on <b>%s</b>"),$domain)."</a><br />"; 
    6867echo "   <a href=\"mail_add.php?many=1&amp;domain=$domain\">".sprintf(_("Add many mailboxes on <b>%s</b>"),$domain)."</a></p>"; 
     68 
     69if(!$letters=$mail->enum_doms_mails_letters($domain)) 
     70  $error=$err->errstr(); 
     71else{ 
     72  for($i=0;$i<count($letters);$i++){ 
     73    $val=$letters[$i]; 
     74    echo "   <a href=\"mail_list.php?domain=$domain&amp;letter=$val\">$val&nbsp;</a></p>"; 
     75  } 
     76  echo "   <a href=\"mail_list.php?domain=$domain\">".sprintf(_("All"))."</a></p>"; 
     77} 
     78 
     79 
    6980?> 
     81 
    7082 
    7183<form method="post" action="mail_dodel.php" id="main"> 
  • trunk/bureau/class/m_mail.php

    r913 r947  
    7474 
    7575  /* ----------------------------------------------------------------- */ 
    76   /** Retourne la liste des mails du domaine $dom 
     76  /** Retourne la liste des lettres pour lesquelles un domaine $dom a 
     77   * des e-mails 
     78   * Retourne un tableau indexé où se trouvent les lettres 
     79   * @param string $dom Domaine dont on veut les premières lettres des mails 
     80  * @return array Tableau de lettres ou FALSE si erreur 
     81   */ 
     82  function enum_doms_mails_letters($dom) { 
     83    global $err,$cuid,$db; 
     84    $err->log("mail","enum_doms_mails_letters",$dom); 
     85    $db->query("SELECT LEFT(mail,1) as letter FROM mail_domain where uid='$cuid' AND type=0 and mail like '%@".addslashes($dom)."' GROUP BY letter ORDER BY letter;"); 
     86    $res=array(); 
     87    while($db->next_record()) { 
     88      $res[]=$db->f("letter"); 
     89    } 
     90    return $res; 
     91  } 
     92 
     93  /* ----------------------------------------------------------------- */ 
     94  /** Retourne la liste des mails du domaine $dom et si une lettre est 
     95   * définie, cela retourne les mail qui commencent par celle ci 
    7796   * Retourne un tableau indexé de tableaux associatifs sous la forme : 
    7897   * $a["mail"]=Adresse email 
     
    84103   *  s'est produite 
    85104   */ 
    86   function enum_doms_mails($dom,$sort=0) { 
     105  function enum_doms_mails($dom,$sort=0,$letter="") { 
    87106    global $err,$cuid,$db; 
    88107    $err->log("mail","enum_doms_mails",$dom); 
    89     $db->query("SELECT mail,pop,alias FROM mail_domain WHERE mail LIKE '%@$dom' AND uid='$cuid' AND type=0;"); 
     108    $db->query("SELECT mail,pop,alias FROM mail_domain WHERE mail LIKE '".addslashes($letter)."%@".addslashes($dom)."' AND uid='$cuid' AND type=0;"); 
    90109    $res=array(); $i=0; 
    91110    while ($db->next_record()) {