Ajouter un bouton supplémentaire au menu des publications

Salut.
Je suis assez nouveau dans la création de plugins Discourse, mais je me demandais si quelqu’un pouvait m’aider à expliquer comment ajouter un bouton supplémentaire au menu des publications. D’après ce que je vois, cela devrait être géré via un plugin personnalisé.
Par exemple, un bouton « Ça t’a fait rire » qui se comporterait de manière similaire au bouton J’aime, en stockant le nombre de personnes ayant cliqué dessus sur une publication ou un commentaire.
Je connais le plugin Retort, mais il ne résoudra pas mon problème, car je suis surtout intéressé par la compréhension de la façon d’ajouter ce bouton.

Bonjour,

C’est un cas un peu délicat. D’après mon expérience, cela devrait passer par un plugin. Vous devrez ajouter un bouton supplémentaire au widget post-menu et créer une migration de base de données pour stocker vos réactions du type « ça m’a fait rire ».

Vous pouvez vous inspirer du plugin Discourse Solved :

Ce plugin ajoute également un bouton supplémentaire au menu des messages et intègre des fonctionnalités stockées en base de données.

Assurez-vous de consulter le guide de développement pour créer des plugins :

Bonne chance.

3 « J'aime »

Merci beaucoup, @zcuric. J’ai essayé de comprendre ce plugin, ainsi que Retort, mais sans succès pour l’instant. Je continuerai cependant dans cette direction.

Pourriez-vous également m’indiquer comment Discourse gère l’affichage du bouton J’aime ? Plus précisément, comment cache-t-il le bouton J’aime sur vos propres publications ? Cela me permettrait de faire de même pour mon bouton personnalisé.

@marek Je vous en prie. Vous avez un peu lu le code, en commençant ici :

https://github.com/discourse/discourse/blob/master/app/assets/javascripts/discourse/app/widgets/post-menu.js#L122

Concernant le backend, il s’agit à 99 % d’une requête API. Je ne suis pas allé très loin là-dedans. Probablement un point de terminaison. Mon hypothèse est que, lors de la création d’un plugin, vous devrez mettre en place des routes d’API REST avec des points de terminaison GET, POST et DELETE qui rempliront les données de votre champ dans la base de données, champ que vous aurez ajouté via une migration de base de données, le tout étant réalisé avec Rails. Du moins, c’est ainsi que j’aborderais la situation.

3 « J'aime »