Quelqu’un sait s’il existe un guide ou un exemple quelque part, s’il vous plaît ?
Par exemple, si j’utilise un composant de thème pour créer une colonne latérale, comment puis-je afficher les 20 derniers sujets publics (ou, si c’est plus simple, ceux provenant des catégories que je spécifie dans la requête) dans cette colonne latérale ou ce composant de thème ?
Il existe plusieurs façons de procéder. La plus simple consiste à utiliser un appel Ajax vers le point de terminaison de l’API Rails qui fournit les données que vous souhaitez afficher. Si vous voulez les 20 derniers sujets, vous pourriez essayer /latest.json.
Le défi survient lorsque vous devez combiner des informations provenant de plusieurs points de terminaison : vous devez alors attendre que plusieurs appels se terminent, ce qui peut vraiment ralentir les performances du composant de thème.
Existe-t-il un moyen simple de réutiliser directement les flux/les données que Discourse fournit déjà ? (De sorte qu’ils respectent également les paramètres de l’utilisateur.)
Par exemple, dans une colonne latérale, nous pourrions afficher :
Les 10 derniers sujets (flux de la page « Derniers », mais respectant également les catégories muettes)
Les sujets les plus populaires cette semaine (de /top)
Les sujets les plus populaires ce mois-ci
Les sujets les plus populaires cette année
Les utilisateurs les plus actifs ce mois-ci (de /u?period=monthly)
C’est en fait assez facile à faire sur d’autres plateformes de forum et j’ai vraiment l’impression de manquer cette fonctionnalité avec Discourse
Pensez-vous que cela serait plus ou moins équivalent à interroger directement la base de données avec les requêtes que ces points de terminaison exécutent de toute façon ? (Ou cela consommerait-il significativement plus de ressources, car cela pourrait équivaloir à charger 5 pages supplémentaires – une pour chaque point de terminaison ?)
Quoi qu’il en soit, j’aimerais beaucoup expérimenter cela : existe-t-il des guides ou des tutoriels montrant comment récupérer des données depuis un point de terminaison dans un composant de thème ? (Ou serait-il préférable ou plus efficace de créer un plugin à la place ?)
Je sais comment créer un composant de thème et un plugin « factice », mais je n’ai trouvé aucun guide montrant comment récupérer des données depuis la base de données dans ceux-ci.