Merci à Stéphane d'avoir écrit ce code.
Ci-dessous la contrib postée hier sur spip-contrib.
Cordialement,
BS
Objectif
*Il s’agit de classer les articles par nombre de commentaires.*
Cette contribution peut donner un plus à tous les sites qui font appel à la participation des internautes via les forums des articles et veulent mettre en valeur celle-ci.
Vous allez copier deux fonctions dans votre fichier mes_fonctions.php et utiliser une boucle avec le critère /compteur_forum/.
Code
Code à copier dans le fichier mes_fonctions.php
function critere_compteur($idb, &$boucles, $crit){
$op='';
$boucle = &$boucles[$idb];
$params = $crit->param;
$type = array_shift($params);
$type = $type[0]->texte;
if(preg_match(',^(\w+)([<>=])([0-9]+)$,',$type,$r)){
$type=$r[1];
$op=$r[2];
$op_val=$r[3];
}
$type_id = 'compt.id_'.$type;
$type_requete = $boucle->type_requete;
$id_table = $boucle->id_table . '.' . $boucle->primary;
$boucle->select= 'COUNT('.$type_id.') AS compteur_'.$type;
$boucle->from['compt']="spip_".$type;
$boucle->where= array("'='", "'".$id_table."'", "'compt.".$boucle->primary."'");
$boucle->where= array("'='", "'compt.statut'" , "'\"publie\"'");
$boucle->group=$id_table;
if ($op)
$boucle->having= array("'".$op."'", "'compteur_".$type."'",$op_val);
} |