il n’y a pas de fonction native dans spip pour obtenir cette liste.
il serait possible de la construire à partir de boucles imbriquées, mais je te propose une solution plus simple (à mon sens), à savoir, de te bâtir une fonction spécifique.
dans ton fichier mes_fonctions.php
, insère la fonction suivante :
// le filtre : [(#ID_RUBRIQUE|auteurs_rubrique)]
// retourne, sous forme de tableau, la liste des
// id_auteur des auteurs ayant au moins un article publié
// dans la rubrique concernée.
// attention : SEULE la rubrique donnée en paramètre
// du filtre est concernée ; PAS ses sous-rubriques.
function auteurs_rubrique($rub) {
$aut_rub = array();
$rub = intval($rub);
$req = spip_query("SELECT spip_auteurs_articles.id_auteur AS aut
FROM spip_auteurs_articles
INNER JOIN spip_articles
ON spip_auteurs_articles.id_article = spip_articles.id_article
WHERE spip_articles.statut = 'publie'
AND spip_articles.id_rubrique = '$rub'
GROUP BY spip_auteurs_articles.id_auteur
ORDER BY spip_auteurs_articles.id_auteur");
while ($res = spip_fetch_array($req)) {
$aut_rub[] = $res['aut'];
}
return (count($aut_rub) > 0) ? $aut_rub : '';
}
ce filtre s’utilise comme critère d’une boucle auteurs à l’intérieur d’une boucle rubriques :
<BOUCLE_rub(RUBRIQUES) {"<hr>"}>
les auteurs publiés dans la rubrique #TITRE :<br />
<BOUCLE_aut(AUTEURS) {id_auteur IN (#ID_RUBRIQUE|auteurs_rubrique)}>
#NOM<br />
</BOUCLE_aut>
</BOUCLE_rub>