Comment mettre un bouton dans le coin de l'écran ?

Bonjour à toute la communauté !

J’essaie d’apprendre à créer un plugin pour Discourse. Pour l’instant, je cherche à comprendre comment ajouter un bouton dans un coin de l’écran et comment gérer la requête lorsqu’il est cliqué. Comment puis-je faire ? C’est vraiment basique, mais je n’arrive pas à trouver la solution.

Par ailleurs, j’ai remarqué dans certains plugins des appels comme includePostAttributes et decorateWidget. Où puis-je consulter la liste complète de toutes les méthodes que Discourse autorise à utiliser ?

Pourriez-vous s’il vous plaît publier une capture d’écran montrant où vous souhaitez ajouter ce bouton et ce que vous souhaitez qu’il se passe lorsqu’il est cliqué ?

Je pense que vous faites référence à l’API des plugins. Vous pouvez trouver toutes les méthodes de cette API, avec quelques exemples, ici :

https://github.com/discourse/discourse/blob/master/app/assets/javascripts/discourse/app/lib/plugin-api.js

Vous pouvez également trouver des explications plus détaillées sur certaines des méthodes les plus populaires de cette API ici :

Merci, je vais examiner la liste des méthodes.
Le capture d’écran :

Comme vous pouvez le voir, j’ai ajouté un petit cercle dans le coin qui représente le bouton. Le bouton doit flotter dans les airs (c’est-à-dire que si je fais défiler vers le bas, il doit toujours rester dans le coin). La logique qui sera exécutée lors du clic, j’essaierai de l’ajouter moi-même, mais pour plus de clarté, actuellement j’essaie de comprendre comment cela ouvrira une boîte de dialogue d’alerte (juste pour s’entraîner).

Ce que vous recherchez s’appelle position: fixed et c’est une propriété CSS. Vous pouvez en savoir plus sur le positionnement CSS ici :

position: fixed permet à l’élément de rester à la même position (par rapport à la fenêtre d’affichage) même si vous faites défiler vers le bas.

Je ne suis pas vraiment sûr de ce que vous essayez d’accomplir ici, mais si vous voulez uniquement qu’une boîte d’alerte s’ouvre lors du clic sur un bouton, vous aurez besoin d’un écouteur d’événements. Vous pouvez en savoir plus à leur sujet ici :

Y a-t-il un problème spécifique que vous essayez de résoudre et sur lequel nous pouvons vous aider ?

Merci encore pour ces informations. Je connais déjà tout cela. Je pense que mon problème vient du fait que je ne sais pas où placer les fichiers CSS. J’ai des fichiers Ruby et des fichiers JS, mais où doivent se trouver les fichiers CSS/Sass ?

Super :+1:

Puisque tu as mentionné que tu as déjà des fichiers Ruby, je suppose que tu travailles sur un plugin, n’est-ce pas ?

Alors, pour répondre à ta question :

Je te recommande d’examiner la structure de dossiers de certains de nos plugins officiels existants, comme celui-ci :

ou celui-ci :

Si tu les observes, tu remarqueras que les feuilles de style SCSS sont toujours placées dans :

_ROOT_/assets/stylesheets/

c’est là que tes fichiers SCSS doivent être placés si tu crées un plugin.