Subversion Repositories Applications.projet

Compare Revisions

Ignore whitespace Rev 392 → Rev 393

/trunk/classes/ezmlm-php-2.0/ezmlm-listinfo.php
15,7 → 15,7
}
function display() {
if (!is_dir($this->listdir.'/archive/0')) { // On teste si il y a au moins un message, cad le r�pertoire 0
if (!is_dir($this->listdir.'/archive/0')) { // On teste si il y a au moins un message, cad le répertoire 0
echo $this->listdir.'/archive/0' ;
return false ;
46,7 → 46,7
}
 
 
function show_recentmsgs($title = "Messages r�cents") {
function show_recentmsgs($title = "Messages récents") {
if (!is_dir($this->listdir.'/archive/0')) return false;
130,7 → 130,7
$class = array ('ligne_paire', 'ligne_impaire') ;
 
if(count($numeros_mails_mois) > 0) {
$repertoire_premier_mail = (int) ($numeros_mails_mois[0] / 100) ;
$repertoire_premier_mail = (int) (reset($numeros_mails_mois) / 100) ;
}
foreach ($numeros_mails_mois as $num_message) {
175,8 → 175,9
$html .= "</tr>\n";
$ctc++;
if ($ctc == 2) { $ctc = 0; }
}
}
}
 
$html .= '</table>'."\n";
 
return $html;
184,67 → 185,51
 
private function calculerNumMessagesDansMois($mois) {
 
/* Pour le calcul du nombre de message par mois
* 1 => ouvrir fichier /archive/threads/yyyymm qui contient les sujets abordés dans le mois
* 2 => pour chaque ligne:
* a => extraire l'id du du premier message (1er nombre de la ligne)
* b => extraire l'id du sujet et ouvrir le fichier concerné dans /archive/subjects/
* b1 => pour chaque ligne du fichier des sujets extraire les id des messages concernés
* s'ils sont dans le mois demandé
*/
 
// étape 1
$fd = file_get_contents($this->listdir . '/archive/threads/'.$mois, 'r');
$fd = file_get_contents($this->listdir . '/archive/threads/'.$mois, 'r');
$fichier = explode ("\n", $fd) ;
 
$premiere_ligne = $fichier[0] ;
 
$nb_lignes_fichier = count($fichier);
$nb_lignes_fichier = count($fichier);
 
$lignes_messages = array();
$lignes_messages = array();
preg_match ('/[0-9]+/', $premiere_ligne, $match) ;
$numero_premier_mail = $match[0] ;
 
$lignes_messages[$numero_premier_mail] = $numero_premier_mail;
$lignes_messages[$numero_premier_mail] = $numero_premier_mail;
 
// étape 2
foreach($fichier as $ligne) {
if(trim($ligne == '')) { continue ;}
// Une ligne du fichier mois se présente comme ceci
//numero_premier_message_sujet:md5_sujet [nb_messages_sujet] titre_sujet
// étape 2 a
$ligne_tableau = explode(' ', $ligne);
$num_mail_sujet = explode(':',$ligne_tableau[0]);
$num_sujet = $num_mail_sujet[1];
// étape 2 b
$fd_sujet = file_get_contents($this->listdir.'/archive/subjects/'.substr($num_sujet,0,2).'/'.substr($num_sujet,2,strlen($num_sujet) - 1), 'r');
$premiere_ligne = true;
$fichier_sujet = explode ("\n", $fd_sujet) ;
// La première ligne d'un fichier de sujet se présente ainsi
// md5_sujet titre_sujet
// Les lignes suivante sont de la forme :
// id_message:yyyymm:id_message_fichier_index nom_expediteur
foreach($fichier_sujet as $ligne_sujet) {
if($premiere_ligne || trim($ligne_sujet) == '') {$premiere_ligne = false; continue; }
// étape 2 b b1
$ligne_tableau_sujet = explode(':', $ligne_sujet);
$num_mail = $ligne_tableau_sujet[0];
$mois_ligne = $ligne_tableau_sujet[1];
if($mois_ligne == $mois) {
$lignes_messages[$num_mail] = $num_mail;
}
}
}
foreach($fichier as $ligne) {
 
// Tri sur les id de message pour les avoir par ordre d'arrivée
asort($lignes_messages);
return $lignes_messages;
if(trim($ligne == '')) { continue ;}
 
$ligne_tableau = explode(' ', $ligne);
$num_mail_sujet = explode(':',$ligne_tableau[0]);
$num_sujet = $num_mail_sujet[1];
 
$fd_sujet = file_get_contents($this->listdir.'/archive/subjects/'.substr($num_sujet,0,2).'/'.substr($num_sujet,2,strlen($num_sujet) - 1), 'r');
$premiere_ligne = true;
 
$fichier_sujet = explode ("\n", $fd_sujet) ;
foreach($fichier_sujet as $ligne_sujet) {
 
if($premiere_ligne || trim($ligne_sujet) == '') {$premiere_ligne = false; continue; }
$ligne_tableau_sujet = explode(':', $ligne_sujet);
$num_mail = $ligne_tableau_sujet[0];
$mois_ligne = $ligne_tableau_sujet[1];
if($mois_ligne == $mois) {
if(is_numeric($num_mail)) {
$lignes_messages[$num_mail] = $num_mail;
} else {
$num_mail = preg_replace('/[^0-9]+/','', $num_mail) ;
$lignes_messages[$num_mail] = $num_mail;
}
}
}
}
 
asort($lignes_messages);
return $lignes_messages;
}
}
?>