Composant des bannières de sujet

Ce composant vous permet d’afficher n’importe quel sujet sous forme de bannière sur des chemins d’URL personnalisés.

L’apparence par défaut est assez basique. La capture d’écran montre le sujet de bienvenue par défaut comme bannière sur la liste la plus récente :

Mais les bannières afficheront divers contenus pris en charge sur les sujets, par exemple des emojis, des animations, des liens vidéo… Vous pouvez donc l’utiliser (et en abuser) de nombreuses manières :see_no_evil:

Dans les paramètres, vous sélectionnez les vues par leur URL relative et les sujets par leur ID. Vous pouvez également positionner les bannières sur l’un des trois plugin-outlets différents et ne les afficher qu’à un groupe spécifique :

:+1: Crédits : Le code du widget pour ce composant est essentiellement une copie du composant Category Sidebars par @awesomerobot et, tel que je le comprends, @xrav3nz

|||
|-|-|-|
| :hammer_and_wrench:|Dépôt| GitHub - nolosb/discourse-topic-banners: A Discourse theme component. Renders any topic as a banner on custom url paths. |
| :question:|Guide d’installation|Comment installer un thème ou un composant de thème|

Installer le composant de thème

16 « J'aime »

Cela inclut-il les sondages (avec lesquels vous pouvez interagir) ? (c’est quelque chose qui nous a beaucoup manqué, de pouvoir mettre un sondage visible par tous au lieu de le cacher quelque part dans un message)

3 « J'aime »

Bonne question ! Mais non, je viens d’essayer :

Le sondage s’afficherait tel quel dans l’aperçu du compositeur. Vous ne pouvez pas interagir et il n’affiche pas non plus les résultats.

3 « J'aime »

J’ai trouvé un bug dans ce composant, lorsqu’il est activé et configuré pour afficher le sujet d’un groupe spécifique uniquement.

Si les invités ou les utilisateurs assistent au forum sans appartenir à ce groupe, la mise à jour des pages fonctionne mal, les autres sujets ne se chargent pas après le rafraîchissement de la page dans le navigateur.

Console :

Uncaught TypeError: Cannot read properties of null (reading 'groups')
    at n.html (68eb2e30e7629f8db22df6fed8efb777b0183d8d.js?__ws=mydomain.com:114:36)
    at n.value (application-8b970b30b88888346a1f4d53543a21332202376215babe59aa315ac2054a2627.js:sourcemap:1:3239172)
    at n.value (application-8b970b30b88888346a1f4d53543a21332202376215babe59aa315ac2054a2627.js:sourcemap:1:3235241)
    at s (_vendor-0cf07f050f530b08ccc553a048b7cccd4edb486adc39b865c07d6c6c1cc57fbf.js:90601:45)
    at t.exports (_vendor-0cf07f050f530b08ccc553a048b7cccd4edb486adc39b865c07d6c6c1cc57fbf.js:90584:21)
    at m (_vendor-0cf07f050f530b08ccc553a048b7cccd4edb486adc39b865c07d6c6c1cc57fbf.js:90988:17)
    at h (_vendor-0cf07f050f530b08ccc553a048b7cccd4edb486adc39b865c07d6c6c1cc57fbf.js:90856:9)
    at d (_vendor-0cf07f050f530b08ccc553a048b7cccd4edb486adc39b865c07d6c6c1cc57fbf.js:90843:5)
    at n.rerenderWidget (application-8b970b30b88888346a1f4d53543a21332202376215babe59aa315ac2054a2627.js:sourcemap:1:1455271)
    at t.invoke (_vendor-0cf07f050f530b08ccc553a048b7cccd4edb486adc39b865c07d6c6c1cc57fbf.js:66550:16)
    at e.t.flush (_vendor-0cf07f050f530b08ccc553a048b7cccd4edb486adc39b865c07d6c6c1cc57fbf.js:66442:13)
    at e.t.flush (_vendor-0cf07f050f530b08ccc553a048b7cccd4edb486adc39b865c07d6c6c1cc57fbf.js:66646:21)
    at e.n._end (_vendor-0cf07f050f530b08ccc553a048b7cccd4edb486adc39b865c07d6c6c1cc57fbf.js:67222:34)
    at e.n.end (_vendor-0cf07f050f530b08ccc553a048b7cccd4edb486adc39b865c07d6c6c1cc57fbf.js:66908:12)
    at e.n._run (_vendor-0cf07f050f530b08ccc553a048b7cccd4edb486adc39b865c07d6c6c1cc57fbf.js:67277:16)
    at e.n._join (_vendor-0cf07f050f530b08ccc553a048b7cccd4edb486adc39b865c07d6c6c1cc57fbf.js:67251:21)
    at e.n.join (_vendor-0cf07f050f530b08ccc553a048b7cccd4edb486adc39b865c07d6c6c1cc57fbf.js:66968:19)
    at h (_vendor-0cf07f050f530b08ccc553a048b7cccd4edb486adc39b865c07d6c6c1cc57fbf.js:53760:28)
    at HTMLDocument.<anonymous> (_vendor-0cf07f050f530b08ccc553a048b7cccd4edb486adc39b865c07d6c6c1cc57fbf.js:53864:19)
    at l (_vendor-0cf07f050f530b08ccc553a048b7cccd4edb486adc39b865c07d6c6c1cc57fbf.js:3776:29)
    at c (_vendor-0cf07f050f530b08ccc553a048b7cccd4edb486adc39b865c07d6c6c1cc57fbf.js:3844:12)
2 « J'aime »

Merci d’avoir posté ceci ! Je n’ai pu reproduire une erreur que lorsqu’aucun utilisateur n’est connecté et j’ai ajouté un correctif pour cela. Pourriez-vous mettre à jour le composant et réessayer ?

3 « J'aime »

Oui, ça marche maintenant ! Merci ! :heart:

2 « J'aime »

Ohh, c’est génial ! Super composant thématique car il permet une belle individualisation de chaque catégorie, ce qui semble bien supérieur au composant thématique de bannière de catégorie de l’officiel - mais je pourrais me tromper.

En ce sens, il pourrait être bon d’ajouter la bannière de catégorie au titre du message.

De plus, ce composant peut même servir la page d’accueil.

2 « J'aime »

Salut, merci de partager !

Il n’est pas prévu d’ajouter un bouton de fermeture sur les bannières ?

1 « J'aime »

Je ne suis pas sûr que le composant soit un bon remplacement pour les bannières de catégorie. Quelques mises en garde :

  • il se chargera beaucoup plus lentement
  • il ne contiendra pas de contenu dynamique. Par exemple, lorsque vous modifiez le nom de la catégorie, il ne sera pas mis à jour sur le composant
  • il est également plus compliqué à configurer

Cela dit, je serais curieux de voir comment vous l’utilisez de cette façon :slight_smile:

Je n’ai qu’un seul cas d’utilisation pour ce composant moi-même en ce moment, qui consiste à servir un sujet d’introduction élargi dans une communauté. Pas de projets d’ajout au composant pour le moment.

@manuel Je déterre celui-ci, je teste actuellement sur la version 3.1.4.
Mais le réglage « afficher au groupe » ne fonctionne pas lorsque j’ajoute un groupe spécifique. J’ai essayé avec la casse sensible, mais le sujet de la bannière ne s’affiche pas. Lorsque le réglage est vide, cela fonctionne. Une idée ?

1 « J'aime »

Oui, le composant nécessitera un peu de refactoring. Il y a pas mal de code et je n’ai même plus d’exemple d’utilisation moi-même. Pourrions-nous le marquer comme non maintenu ?

@jrgong Je ne sais pas ce que vous essayez de mettre en place, mais vous pourriez probablement essayer ce composant Barre d’annonce ? Il est stylisé par défaut pour une disposition en barre, mais avec un peu de CSS et en le plaçant dans la sortie above-main-container, il peut être très similaire. Nécessite du HTML au lieu du Markdown. Pas de fonctionnalités de groupe non plus, mais le grand avantage est qu’il est jetable.

3 « J'aime »

@manuel merci pour le tuyau. Nous allons l’examiner une fois que la version stable 3.2 sera disponible. Le composant de la barre d’annonce n’est pas compatible avec la version 3.1.

1 « J'aime »

J’ai appliqué le tag :+1:

3 « J'aime »