Show
Ignore:
Timestamp:
07/24/08 21:05:35 (6 months ago)
Author:
esj@…
Message:

Les LEFT JOIN c'est plus clair que le tableau fait pour le compilateur.

Files:
1 modified

Legend:

Unmodified
Added
Removed
  • spip/ecrire/balise/formulaire_ecrire_auteur.php

    r11947 r12187  
    2929 
    3030        // Pas d'id_auteur ni d'id_article ? Erreur de squelette 
    31         if (!$args[0] AND !$args[1]) 
     31        $id = intval($args[1]); 
     32        if (!$args[0] AND !$id) 
    3233                return erreur_squelette( 
    3334                        _T('zbug_champ_hors_motif', 
     
    3536                                        'motif' => 'AUTEURS/ARTICLES')), ''); 
    3637 
    37         // Si on est dans un contexte article, sortir tous les mails des auteurs 
    38         // de l'article 
    39         if (!$args[0] AND $args[1]) { 
    40                 unset ($args[2]); 
    41                 $s = sql_select('email', 
    42                                           array('auteurs' => 'spip_auteurs', 
    43                                                 'L' => 'spip_auteurs_articles'), 
    44                                           array('auteurs.id_auteur=L.id_auteur', 
    45                                                 'L.id_article='.intval($args[1]))); 
    46                 while ($row = sql_fetch($s)) { 
    47                         if ($row['email'] AND email_valide($row['email'])) 
    48                                 $args[2].= ','.$row['email']; 
     38        // Si on est dans un contexte article,  
     39        // sortir tous les mails des auteurs de l'article 
     40        if (!$args[0] AND $id) { 
     41                $r = ''; 
     42                $s = sql_allfetsel('email', 
     43                                   'spip_auteurs AS A LEFT JOIN spip_auteurs_articles AS L ON A.id_auteur=L.id_auteur', 
     44                                   "A.email != '' AND L.id_article=$id"); 
     45                foreach($s as $row) { 
     46                        if (email_valide($row['email'])) 
     47                                $r .= ','.$row['email']; 
    4948                } 
    50                 $args[2] = substr($args[2], 1); 
     49                $args[2] = substr($r, 1); 
    5150        } 
    5251