I guess best behaviour would be to start the composer with empty category if the user does not have the permission to create new topic in the current one? Potentially with a modal and a notice about such.
Je voulais aussi avoir cette fonctionnalité, j’ai donc forké le dépôt et j’ai fait en sorte que le bouton « Nouveau sujet » s’affiche pour les utilisateurs anonymes ainsi que pour les utilisateurs connectés. Si un utilisateur anonyme clique sur le bouton, il est redirigé vers la fenêtre modale de connexion/inscription.
Il y a des noms de classes obsolètes, donc les styles ne s’affichent pas comme prévu. Ajout d’une PR pour les mettre à jour : FIX: update declarations by nolosb · Pull Request #6 · discourse/discourse-new-topic-button-theme-component · GitHub
Est-il possible de mettre à jour ce plugin vers la nouvelle version ?
J’ai juste fusionné un refactoring de ce composant pour qu’il fonctionne avec ces mises à jour : Upcoming Header Changes - Preparing Themes and Plugins
Le composant devrait fonctionner comme avant, avec quelques petites améliorations (il reflétera l’état de brouillon et réagira aux permissions actuelles de catégorie et de tag). Si vous remarquez de nouveaux problèmes, veuillez nous en informer.
Je voulais aussi cette fonctionnalité, j’ai donc forké le dépôt et fait en sorte que le bouton « Nouveau sujet » s’affiche aussi bien pour les utilisateurs anonymes que pour les utilisateurs connectés. Si un utilisateur anonyme clique sur le bouton, il est redirigé vers la fenêtre modale de connexion/inscription.
Je viens d’ajouter un nouveau paramètre show_to_anon (désactivé par défaut) qui fera cela.
Dans quelle mesure serait-il “faisable” d’ajouter un menu déroulant similaire au composant nolo’s dropdown wizard ?
Étant donné que nous utilisons l’assistant personnalisé pour créer de nouveaux sujets dans des catégories spécifiques, nous aimerions essentiellement les lier dans les menus déroulants. De plus, nous aimerions également ajouter des liens réservés au personnel (tels que “Nouvelle catégorie” et “Nouveau groupe”) au bouton.
Bonjour, je n’ai pas pu utiliser l’icône gratuite "pencil" de fontawesome dans ce composant, même après l’avoir ajoutée à la configuration "svg icon subset". Avez-vous une idée ?
Icône gratuite « pencil » de Font Awesome
Je ne pense pas qu’il existe d’icône gratuite pencil dans la version 5
We’re not on Font Awesome 6 yet, so you’ll need to search the version 5 set for available icons here: Find the Perfect Icon for Your Project in Font Awesome 5 | Font Awesome It looks like that icon was renamed shop in version 6, but it did exist in version 5 with a different name: store-alt. So if you update additional icons and custom tab icon to use store-alt it should work!
Je pense que c’est la même chose pour pencil en v5, c’est pencil-alt
Je pense que c’est la même chose pour pencil dans la v5, c’est
pencil-alt
Merci ! Ça marche !
Un message a été divisé dans un nouveau sujet : Pas de bouton Nouveau sujet
Demande : ajouter une option pour définir les couleurs du bouton (arrière-plan, texte + icône) pour un thème clair et un thème sombre. Comme les nouveaux sujets contribuent à la croissance d’une communauté, un bouton coloré a plus d’impact.
Merci
C’est assez facile à faire avec CSS :
Use this code, changing the color obviously. #new-create-topic { background-color: red; }
(vous pouvez cibler les thèmes clairs et foncés avec CSS)
edit : ajout d’un exemple approprié
#new-create-topic {
background-color: light-dark(red,green);
}
Définira la couleur du bouton sur rouge dans un thème clair et sur vert dans un thème foncé.
Je ne suis toujours pas familiarisé avec le CSS dans Discourse. Je connais le CSS, mais je n’ai pas encore commencé à l’explorer dans Discourse.
Comment/où dois-je l’ajouter ?
Je pense toujours que cela pourrait être une fonctionnalité pour éviter d’ajouter plus de complexité et pour les personnes qui ne connaissent pas du tout le CSS, cela rend simplement le composant plus facile à personnaliser.
Comment/où dois-je ajouter cela ?
Soit sur votre/vos thème(s) soit sur un nouveau composant de thème — qui doit ensuite être inclus dans votre/vos thème(s) :
J’ai ajouté le code CSS dans mon message ci-dessus.
J’ai également testé :hover et cela fonctionne pour le bouton et le texte, mais pas pour l’icône, sauf si je survole l’icône elle-même. Savez-vous comment cibler l’icône au survol du bouton, même si la souris n’est pas sur l’icône ?
#new-create-topic:hover {
background-color: light-dark(red,red);
color: light-dark(red,white);
}
#new-create-topic .d-icon:hover {
color: light-dark(red,white);
}
Votre 2ème règle signifie que vous ciblez l’icône lorsque vous survolez l’icône, pas le bouton.
En utilisant la syntaxe SCSS, qui
#new-create-topic:hover {
background-color: light-dark(red,red);
color: light-dark(red,white);
}
#new-create-topic:hover .d-icon {
color: light-dark(red,white);
}
(il n’y a pas non plus besoin de light-dark(red,red); si vous utilisez la même couleur pour le clair et le foncé)
Je recommanderais SCSS car il est plus facile de ranger notre joli code, mais c'est quelque chose de nouveau à apprendre 😄
#new-create-topic:hover {
background-color: light-dark(red,red);
.d-icon, & {
color: light-dark(red,white);
}
}
Votre 2ème règle signifie que vous ciblez l’icône lorsque vous survolez l’icône, pas le bouton.
Tu as raison. C’est ma faute… Merci !
De plus, il n’est pas nécessaire d’utiliser
light-dark(red,red);si vous utilisez la même couleur pour le clair et le foncé.
Ce ne sont que des tests. J’utilise actuellement le thème par défaut et je ne sais pas si ce thème a les deux options ?
Concernant SCSS, je l’ai appris il y a quelques années, mais c’était quelque chose que je n’ai jamais vraiment utilisé car je ne suis pas développeur. J’utilise HTML et CSS assez souvent, donc je suis un peu plus familier avec ces 2.
J’ai trouvé ce code pour apporter cette modification, mais je ne suis pas sûr que ce soit la meilleure façon de procéder :
<script type="text/discourse-plugin" version="0.8">
api.onPageChange(() => {
const newTopicButton = document.querySelector('.header-create-topic');
const draftsButton = document.querySelector('.topic-drafts-menu-trigger');
if (newTopicButton && draftsButton && !document.querySelector('.fk-header-buttons')) {
const wrapper = document.createElement('div');
wrapper.className = 'fk-header-buttons';
const parent = newTopicButton.parentNode;
parent.insertBefore(wrapper, newTopicButton);
wrapper.appendChild(newTopicButton);
wrapper.appendChild(draftsButton);
}
});
</script>

