Je voudrais savoir quels messages de mon forum ont reçu le plus de « j’aime » depuis que nous avons commencé à utiliser Discourse (il y a près de 4 ans).
J’ai cherché ici et j’ai trouvé ceci, qui semble être la même question, mais le sujet est fermé donc je ne peux pas y ajouter de commentaires :
Les solutions données dans cet autre sujet par @dax ne donnent pas réellement ce que je (ou cet autre demandeur) recherche :
discourse.example.com/?order=likes (likes donne dans tous les sujets)
ou discourse.example.com/search tapez in:likes et triez les résultats par « le plus aimé »
Le premier ne fonctionne pas du tout (et retourne simplement à la page d’accueil de mon forum).
Le second ne renvoie que les résultats des messages les plus aimés que j’ai moi-même aimés. Voir ici :
Lorsque je tape in:likes dans le champ de recherche, il coche automatiquement la case « J’ai aimé ». Si je décoche ensuite cette case, le texte in:likes dans le champ de recherche est effacé en même temps. Je ne peux pas avoir in:likes dans le champ de recherche et une case « J’ai aimé » décochée.
Donc, cela ne me donne pas ce que je veux savoir. Y a-t-il un moyen de l’obtenir ?
Je viens de créer cette requête Data Explorer avec l’aide de Gemini. Elle donne les 10 publications les plus aimées, de tous les temps.
-- Interroge les 10 publications les plus aimées de tous les temps (pour les versions modernes de Discourse)
SELECT
p.id AS post_id,
p.like_count,
CONCAT('/t/', t.slug, '/', t.id, '/', p.post_number) AS url,
t.title AS topic_title,
p.user_id,
u.username
FROM posts AS p
JOIN topics AS t ON t.id = p.topic_id
JOIN users AS u ON u.id = p.user_id
WHERE p.deleted_at IS NULL
AND t.deleted_at IS NULL
AND p.post_type = 1 -- 1 pour les publications normales
ORDER BY p.like_count DESC
LIMIT 10