Classer les articles par nombre de commentaires - commentairesClasser les articles par nombre de commentaires2019-03-03T19:44:02Zhttps://contrib.spip.net/Classer-les-articles-par-nombre-de-commentaires#comment5002412019-03-03T19:44:02Z<p>Certes, le compteur intégré au plugin Bonux est utile lorsqu'on veut connaître la totalité des articles, tous statuts confondus - ce qui en pratique, est -relativement - peu usité. On souhaite plutôt connaître, en l'occurrence pour les articles, le nombre d'articles en fonction de leur statut. Un chiffre global simple n'a que peu d'intérêt et serait facilement récupérable en faisant la somme (via le filtre |plus<i>...</i>) tandis que l'inverse est impossible. Si vous pouviez améliorer la méthode de génération du compteur Bonus ce serait super - sinon, il nous faut bidouiller avec les fonctions. Je comprends que le compteur dépend de la rubrique (lorsqu'il est associé à une boucle RUBRIQUES), qui acquiert le statut « publie » dès le premier article est publié. L'amélioration du compteur nécessite sans doute beaucoup de temps de développement, je n'en doute pas.</p>Classer les articles par nombre de commentaires2014-07-19T08:09:54Zhttps://contrib.spip.net/Classer-les-articles-par-nombre-de-commentaires#comment4762512014-07-19T08:09:54Z<p>pour infos, le plugin <a href='https://contrib.spip.net/SPIP-Bonux' class="spip_in" rel='nofollow'>SPIP Bonux</a> intègre maintenant le critère <i>compteur</i>. (disponible pour SPIP 2 et 3).</p>
<p>Inutile d'avoir à ajouter des choses dans le mes_fonctions.php</p>Classer les articles par nombre de commentaires2011-11-01T09:41:02Zhttps://contrib.spip.net/Classer-les-articles-par-nombre-de-commentaires#comment4514022011-11-01T09:41:02Z<p>Bonjour</p>
<p>Je viens d'essayer ce script (celui proposé dans le commentaire par Cédric) qui fonctionne parfaitement avec un Spip 2 mais qui ne retourne aucun résultat en Spip3</p>
<p>Une subtilité de Spip3 que je n'aurais pas capté<small class="fine d-inline"> </small>?</p>Classer les articles par nombre de commentaires2010-04-21T10:56:05Zhttps://contrib.spip.net/Classer-les-articles-par-nombre-de-commentaires#comment4296252010-04-21T10:56:05Z<p>Bonjour<br class="autobr">
Souhaitant classer les auteurs en fonction du nombre d'article j'ai voulu reprendre ta fonction Cedric, mais elle ne fonctionne pas de mon côté<small class="fine d-inline"> </small>!<br class="autobr">
Ça me renvoie une erreur concernant la ligne</p>
<div class="precode"><pre class="spip_code spip_code_block language-spip" dir="ltr" style="text-align:left;" data-language="spip"><code> $type = objet_type($table);</code></pre></div>
<p>Pour info il s'agit d'une installation sur une version spip 1.9.1 (pas mise à jour à cause de beaucoup de modifs et pas mal de fainéantise surtout)</p>Classer les articles par nombre de commentaires2010-02-11T00:18:34Zhttps://contrib.spip.net/Classer-les-articles-par-nombre-de-commentaires#comment4262872010-02-11T00:18:34Z<p>Très bon boulot<small class="fine d-inline"> </small>!<br class="manualbr">Cependant, attention aux jointures forcées (<a href="http://programmer.spip.org/Forcer-des-jointures" class="spip_out" rel='nofollow external'>cf. doc</a>)<small class="fine d-inline"> </small>; il faut bien spécifier la table du champ de calcul, sinon, (sauf erreur de ma part) ça supprime une des tables défini.<br class="manualbr">Par exemple, faire un équivalent SPIP de cette simple requête SQL (requête comptant le nombre d'article associés à chaque mot clé, trié par ce comptage décroissant) :</p>
<div class="precode"><pre class="spip_code spip_code_block" dir="ltr" style="text-align:left;"><code>SELECT titre, count(id_article) as nombre_articles
FROM spip_mots_articles NATURAL JOIN spip_mots
GROUP BY titre
ORDER BY nombre_articles DESC</code></pre></div>
<p>SPIP :</p>
<div class="precode"><pre class="spip_code spip_code_block" dir="ltr" style="text-align:left;"><code><BOUCLE_test(MOTS_ARTICLES mots){fusion titre}{!par nombre_articles}> #TITRE : [(#EXPRESSION{COUNT(mots_articles.id_article), nombre_articles})]<br/>
</BOUCLE_test></code></pre></div>
<p>Si on code COUNT(id_article) au lieu de COUNT(<strong>mots_articles.</strong>id_article) , la requête fini avec <i>FROM spip_mots</i> sans jointure avec l'autre table définie.<br class="manualbr">Du coup, SPIP retourne une erreur indiquant que <strong>id_article</strong> est un champ inconnu.</p>Classer les articles par nombre de commentaires2008-10-14T19:45:15Zhttps://contrib.spip.net/Classer-les-articles-par-nombre-de-commentaires#comment4092102008-10-14T19:45:15Z<p>Sur contrib, pour la page auteurs, j'ai generalise la fonction :</p>
<div class="precode"><pre class="spip_code spip_code_block" dir="ltr" style="text-align:left;"><code>function critere_compteur($idb, &$boucles, $crit){ $boucle = &$boucles[$idb]; $params = $crit->param; $table = array_shift($params); $table = $table[0]->texte; if(preg_match(',^(\w+)([<>=])([0-9]+)$,',$table,$r)){ $table=$r[1]; $op=$r[2]; $op_val=$r[3]; } $type = objet_type($table); $type_id = id_table_objet($type); $table_sql = table_objet_sql($type); $trouver_table = charger_fonction('trouver_table','base'); $arrivee = array($table, $trouver_table($table, $boucle->sql_serveur)); $depart = array($boucle->id_table,$trouver_table($boucle->id_table, $boucle->sql_serveur)); if ($compt = calculer_jointure($boucle,$depart,$arrivee)){ $boucle->select[]= "COUNT($compt.$type_id) AS compteur_$table"; if ($op) $boucle->having[]= array("'".$op."'", "'compteur_".$table."'",$op_val); }
} function balise_COMPTEUR_dist($p) { $p->code = ''; if (isset($p->param[0][1][0]) AND $champ = ($p->param[0][1][0]->texte)) return rindex_pile($p, "compteur_$champ", 'compteur'); return $p;
}</code></pre></div>
<p>Ce qui permet d'ecrire simplement la boucle</p>
<div class="precode"><pre class="spip_code spip_code_block" dir="ltr" style="text-align:left;"><code><BOUCLE_auteurs(AUTEURS){compteur articles}{0,20}{par compteur_articles}{articles.statut=publie}>
#NOM : #ID_AUTEUR : #COMPTEUR{articles} <br />
</BOUCLE_auteurs></code></pre></div>Classer les articles par nombre de commentaires2008-07-04T01:59:43Zhttps://contrib.spip.net/Classer-les-articles-par-nombre-de-commentaires#comment4072692008-07-04T01:59:43Z<p>Félicitations, voilà une contrib extrêmement utile qui comble ce qui était jusqu'à présent une lacune de SPIP. Un tout grand merci.</p>
<p>(soit dit en passant, je pense que ça vaudrait la peine de suggérer l'intégration des critères et balises définis ici dans la distribution officielle de SPIP)</p>Classer les articles par nombre de commentaires2008-07-03T11:29:25Zhttps://contrib.spip.net/Classer-les-articles-par-nombre-de-commentaires#comment4072462008-07-03T11:29:25Z<p>Ah ben non, pas du tout, pour ca c'est le critère frequence du plugin nuage (+ voir article de James sur le sujet)</p>
<p>Il faudrait sans doute expliquer un peu mieux la différence relation 1 <-> n / relation n <-> n</p>
<p>@++</p>Classer les articles par nombre de commentaires2008-07-03T03:09:52Zhttps://contrib.spip.net/Classer-les-articles-par-nombre-de-commentaires#comment4072312008-07-03T03:09:52Z<p>Merci pour ce script très brillant. J'en voit de multiples applications. Cependant quelques petits commentaires sur le code pour un spipeur débutant auraient été bienvennues.</p>
<p>Je vais essayer de l'utiliser pour faire un tri par nombre d'occurences d'un mot-clé.</p>
<p>Merci encore <br class="autobr">
Laurent</p>