Ajoute un bouton de lien ou du texte arbitraire à n’importe quelle sortie de plugin. (Ignorez les filigranes dans les images–j’ai pris ces captures d’écran sur un site de staging/test.)
Pour voir où se trouvent les sorties de plugin, utilisez Introducing Discourse developer toolbar pour les trouver. Si vous ne savez pas ce qu’est une sortie de plugin, vous pouvez consulter Using Plugin Outlet Connectors from a Theme or Plugin, mais ce composant vous permet, avec quelques restrictions, d’insérer du texte dans n’importe quelle sortie de plugin sans faire de programmation ou sans vraiment comprendre ce qu’est une sortie de plugin.
J’ai commencé à développer ce plugin pour quelqu’un qui voulait afficher un bouton « cliquez sur ce bouton pour vous abonner afin de pouvoir envoyer des MP » sur les profils d’utilisateurs et les cartes d’utilisateur. Il voulait que le bouton s’affiche si l’utilisateur ne pouvait pas envoyer de MP. Comme je ne suis pas toujours aussi intelligent que je le pense, j’ai écrit le composant en utilisant des groupes pour déterminer si le bouton était affiché. Un problème avec cette approche était que les membres du personnel n’étaient pas dans le groupe d’abonnés, ils voyaient donc le bouton « vous devez vous abonner » même s’ils pouvaient envoyer des MP. De plus, le groupe était masqué, il était donc impossible de l’utiliser dans un composant de thème de toute façon. J’ai réécrit ce composant de thème pour utiliser currentUser.can_send_private_messages afin de déterminer s’il fallait afficher le bouton.
À qui s’adresse ceci ?
Si vous souhaitez placer un bouton avec un lien dedans, ou du texte arbitraire affiché ou masqué pour certains groupes, cela vous permettra de les insérer à n’importe quelle sortie de plugin. Vous voulez ajouter un lien « Vous devez vous abonner » entre chaque message, sauf pour ceux qui ne sont pas membres ? Ceci le fera. Vous voulez coller du HTML arbitraire à une sortie de plugin, juste pour voir à quoi cela ressemblera ? Ceci le fera.
Comment cela aide les développeurs
Ce thème contient quelques exemples simples sur la façon de :
utiliser api.renderInOutlet (comme décrit ici pour coller un composant Glimmer à une sortie contrôlée par un paramètre plutôt que de créer un fichier dans le répertoire connectors
Afficher du HTML arbitraire à partir d’un paramètre de thème, libre des contraintes de Markdown – Oui, peut-être
mais si vous essayez de le faire à l’intérieur d’un <template> à l’intérieur d’un fichier .gjs, cela fonctionne un peu différemment (comme {{htmlSafe component.text}})
Serait-il possible d’ajouter des espaces réservés aux URL des boutons, par exemple pour que l’URL contienne l’ID du sujet dans lequel l’utilisateur se trouve ?
Nous voulons ajouter un ensemble de boutons à chaque sujet pour les membres de notre groupe d’utilisateurs de compte professionnel.
Le bouton déclencherait alors la création d’un nouveau MP qui inclurait l’URL actuelle sur laquelle l’utilisateur se trouve.
De cette façon, nos clients professionnels peuvent nous envoyer des demandes pour épingler, mettre en évidence ou « parrainer » des sujets spécifiques.
Comme vous le savez, vous pouvez créer une URL qui ouvrira un nouveau compositeur de sujet. Vous pourriez faire en sorte que ce soit le lien ajouté par le composant de thème.
Je ne pense pas qu’il soit possible de le faire sans ajouter de code au composant de thème (mais peut-être que si ?). Peut-être que quelqu’un a une idée à ce sujet et proposera cette solution ici (ou sur l’autre sujet). Sinon, vous pouvez me contacter ou poster dans Marketplace avec la description de ce dont vous avez besoin et un budget.
Bonjour, cela ne fonctionne pas. De plus, même si les Groupes de blocs de texte sont définis sur Tout le monde, le bloc de texte n’apparaît pas pour les invités.