J’utilise actuellement le widget suivant pour afficher une bannière/un lien après le premier message d’un fil. Cela fonctionne bien jusqu’à présent :
const { iconNode } = require("discourse-common/lib/icon-library");
api.decorateWidget("post:after", helper => {
const firstPost = helper.attrs.firstPost;
const h = helper.h;
if (firstPost) {
return h("div#support", [
h(
'a.icon', {
href:'link',
title: 'Support-Icon'
}, iconNode('heart')),
h(
'a.link', {
href: "link",
title: 'Support-Link'
}, 'some text',
),
]);
}
});
Cependant, j’aimerais intégrer la bannière/le lien à un autre endroit - à savoir avant le bouton de réponse. J’ai marqué la position en rouge ci-dessous :
Quelqu’un peut-il me donner un conseil sur la façon de réaliser cela ?
Je sais que la position/la tâche est définie par ceci. La question est de savoir comment trouver ce NOM:EMPLACEMENT :
api.decorateWidget("NOM:EMPLACEMENT", helper => {
Moin
Janvier 12, 2024, 8:17
2
OrkoGrayskull:
après le premier message
OrkoGrayskull:
La position que vous avez marquée sur l’image se situe après tous les messages du sujet. Ainsi, lorsqu’il y aura des réponses, votre bannière se trouvera en dessous de celles-ci et non directement sous le premier message.
piffy
Janvier 12, 2024, 8:17
3
Il y a une prise de plugin appelée topic-above-footer-buttons
Ceci vous aide à les voir :
(deprecated) Plugin outlet locations theme component
Ensuite, suivez ce guide :
Discourse inclut des centaines de Plugin Outlets qui peuvent être utilisés pour injecter de nouveaux contenus ou remplacer des contenus existants dans l’interface utilisateur de Discourse. Les « arguments de l’outlet » sont mis à disposition afin que le contenu puisse être personnalisé en fonction du contexte.
Choisir un outlet
Pour trouver le nom d’un plugin outlet, recherchez « <PluginOutlet » dans le code source de Discourse, ou utilisez le composant de thème Emplacements des plugin outlets .…
Merci. Ça a fonctionné.
Exemple de code pour Head :
<script type='text/x-handlebars' data-template-name='/connectors/topic-footer-main-buttons-before-create/team-support'>
<div id="support">
<a href="link" title="Support-Icon" class="icon">
<svg class="fa d-icon d-icon-heart svg-icon svg-node" aria-hidden="true"><use xlink:href="#heart"></use></svg>
</a>
<a href="link" title="Support-Link" class="link">texte</a>
</div>
</script>
Malheureusement, le bouton/la bannière ne s’affiche que lorsque l’utilisateur est connecté. Comment puis-je m’assurer que le bouton/la bannière s’affiche également pour les utilisateurs non enregistrés ?
J’utilise cette position de thème : topic-footer-main-buttons-before-create