Bienvenue Bannière Link

Je fais des tests (depuis des mois… ne demandez pas).

En y revenant, il semble que depuis une mise à jour, la barre de bienvenue n’apparaît plus que lorsque l’utilisateur est déconnecté.

Y a-t-il un moyen de faire apparaître la barre pour tout le monde, quel que soit le statut de connexion ?

Merci

Martyn

1 « J'aime »

Je viens de tester un peu et je ne vois pas ce problème. Est-il possible que vous ayez fermé la bannière en cliquant sur le x dans le coin ? Si c’est le cas, vous devrez vider le localStorage de votre navigateur pour la voir à nouveau.

3 « J'aime »

Bonne idée - je vais y jeter un œil
Merci

J’ai essayé de vider le stockage local - j’ai essayé de vider les données du navigateur - j’ai essayé sur Edge (je vais essayer de me nettoyer pendant des semaines !) … toujours pas de succès :frowning:

Comment avez-vous configuré les paramètres max trust level et hide for staff ?
Avez-vous essayé avec un nouvel utilisateur créé pour les tests ?

3 « J'aime »

Je voudrais rendre différentes bannières visibles pour les utilisateurs enregistrés et non enregistrés, ou bien que tous les liens de la bannière ne soient pas visibles pour les utilisateurs non enregistrés. Est-ce possible ?

1 « J'aime »

@Aurora

Une façon serait de créer des liens pour les utilisateurs connectés et de suivre les liens pour les utilisateurs déconnectés (dans l’ordre, vous avez donc deux groupes de liens).

Ensuite, avec un peu de CSS, vous cachez un groupe ou un autre.
Il y a une classe CSS anon que vous pourriez utiliser.

Par exemple, disons que vous avez deux liens pour les utilisateurs connectés et 3 pour les utilisateurs déconnectés :

  • lien connecté 1
  • lien connecté 2
  • lien déconnecté 1
  • lien déconnecté 2
  • lien déconnecté 3

En CSS, vous pouvez faire :

/* Utilisateurs déconnectés : masque les deux premiers liens */
html.anon .featured-banner-link > div:nth-child(-n+2) {
    display: none !important;
}

/* Utilisateurs connectés : masque les trois derniers liens */
html:not(.anon) .featured-banner-link > div:nth-last-child(-n+3) {
    display: none !important;
}

Est-ce que cela fonctionnerait pour vous ?

5 « J'aime »

Oui ! Merci beaucoup ! C’est très utile !

3 « J'aime »

Dans la zone des liens, sur le champ icône, ne serait-il pas possible de le rendre automatique pour faciliter la recherche de l’icône souhaitée ?

Sinon, au moins inclure un lien direct vers le site Web de FontAwesome rendrait plus évident qu’il s’agit du fournisseur d’icônes, tout en dirigeant la personne directement vers la source.

Par exemple, j’ai téléchargé le composant et l’ai installé, puis lorsque je créais le lien, j’ai dû revenir à ce sujet pour le lire à nouveau afin de savoir qu’il s’agissait de FontAwesome. Juste une suggestion pour ajouter des icônes plus rapidement et plus facilement.

EDIT : J’ai utilisé le nom sur leur site Web, mais cela n’ajoute pas les icônes :

Par exemple celle-ci :

image

qui semble être gratuite :

Alors, lesquelles sommes-nous censés utiliser ?

J’ai également remarqué un problème avec le résumé ici sur ce sujet. Il est indiqué Welcome Link Banner est une bannière simple qui vous permet d'ajouter du texte personnalisé et 1 à 4 liens, mais il me permet en fait d’ajouter plus de liens. J’ai pu en ajouter 6 (et si je continue à cliquer, cela continue d’ajouter des liens).

Si 4 est bien l’objectif, alors je pense qu’il serait préférable qu’après avoir ajouté le 4ème lien, le + lien bannière disparaisse ou soit grisé.

1 « J'aime »

Je suis d’accord que ce serait pratique. Ce n’est cependant pas spécifique à ce TC. Certains types d’entrées ne sont pas disponibles dans TC par rapport au cœur/plugins.

Je vais voir si je peux faire une PR pour améliorer la description.

Vous devrez peut-être également ajouter des icônes qui ne sont pas incluses par défaut dans Discourse au paramètre svg_icons

C’est là que devrait se trouver votre problème.

Oui, vous pouvez en ajouter autant que vous voulez. Il n’y a pas de limite.
Cela implique qu’il est conçu pour fonctionner au mieux avec 1 à 4 liens.

2 « J'aime »

Merci

Oh, je ne savais pas qu’il ne chargeait pas toutes les icônes disponibles. Je pensais qu’il lisait directement sur le site FA. J’ai ajouté une icône qui ne se chargeait pas et elle est maintenant visible. Merci beaucoup.
Comment puis-je voir lesquelles sont disponibles ? Y a-t-il une liste ou est-ce comme en ajouter une, voir si elle ne s’affiche pas, puis l’ajouter ?

Je vois. Je pense que c’est la formulation alors. Peut-être quelque chose comme
La bannière de lien de bienvenue est une bannière simple qui vous permet d'ajouter du texte et des liens personnalisés (recommandé : jusqu'à 4 liens). ou quelque chose comme ça.

Merci beaucoup pour votre aide. Je suis content que les icônes soient maintenant visibles ! :slight_smile:

2 « J'aime »

Oui, ce serait la façon la plus simple.

2 « J'aime »

La mise à jour du thème « Welcome Link Banner » a provoqué une erreur de compilation SCSS et un crash du site

Bonjour,

J’ai récemment rencontré un problème critique lors de la mise à jour du thème « Welcome Link Banner » sur mon forum Discourse.

:stop_sign: Résumé du problème :

  • Après la mise à jour du thème, le site a immédiatement planté.
  • Le mode sans échec (/safe-mode) était également inaccessible.
  • L’erreur enregistrée était :
CssSyntaxError: Missed semicolon in common.scss (MiniRacer::RuntimeError)
  • Cette erreur SCSS a empêché Discourse de compiler les assets, provoquant une défaillance complète du frontend.

:magnifying_glass_tilted_left: Cause racine :

  • Le fichier common.scss mis à jour dans le thème « Welcome Link Banner » contenait une erreur de syntaxe (point-virgule manquant ;).
  • Par conséquent, la compilation des assets a échoué, et Discourse n’a pas pu servir même l’interface utilisateur de base.

:hammer_and_wrench: Comment j’ai résolu le problème :

Comme je ne pouvais pas accéder à l’interface web (même en mode sans échec), j’ai dû le résoudre manuellement :

  1. Connexion SSH au serveur.

  2. Entrer dans le conteneur de l’application :

    ./launcher enter app
    
  3. Ouvrir la console Rails :

    RAILS_ENV=production rails c
    
  4. Désactiver le thème défectueux :

    Theme.where(name: "Welcome Link Banner").update_all(enabled: false)
    
  5. Quitter la console Rails.

  6. Nettoyer tous les assets compilés :

    RAILS_ENV=production rake assets:clobber
    
  7. Reconstruire l’application :

    ./launcher rebuild app
    

Après ces étapes, le forum était de nouveau en ligne.


:light_bulb: Suggestion :

  • Peut-être ajouter une vérification supplémentaire de la syntaxe SCSS lors du téléchargement/de la mise à jour d’un thème, avant de l’appliquer aux sites de production.
  • Cela pourrait aider à éviter les plantages complets du site causés par de petites erreurs CSS.
1 « J'aime »

C’est étrange. Il n’y a pas de point-virgule manquant dans le CSS de ce composant.
Je ne vois pas non plus de changement dans l’historique. :thinking:

Soit dit en passant, si /safe-mode ne fonctionne pas, vous pouvez essayer d’ajouter directement ?safe_mode=no_themes à l’URL.

3 « J'aime »

Hmm, j’ai également vérifié et je ne vois pas ce problème. Le composant a-t-il été personnalisé ? Ou peut-être que quelque chose s’est mal passé lors du processus de mise à jour ?

1 « J'aime »

Peut entrer en conflit avec un autre composant que je développe

2 « J'aime »

1 - J’ai masqué la bannière, mais je souhaite tester certaines choses et j’ai donc besoin de la faire réapparaître. Comment faire ?
2 - J’ai remarqué qu’au moins sur mobile, lorsque je suis sur la page des chaînes, la bannière perturbe complètement la mise en page :

3 - Est-il possible d’exclure la bannière de certaines pages, autre que par CSS ? Je suis conscient qu’il existe un menu déroulant avec homepage,discovery,all, mais c’est trop limité.

Je pense que vider le cache peut aider, car il est stocké dans localStorage :

Je l’ai fait :

mais ça n’a pas fonctionné. J’utilise Cloudflare et j’ai eu des problèmes avec leur cache. Dois-je attendre un peu plus longtemps, ou comme c’est du localStorage, ce n’est pas lié ?

Je ne suis pas un expert en la matière. Je suppose…

Y a-t-il un moyen de supprimer cela via la fenêtre des outils de développement ? Je me souviens avoir supprimé certaines choses là-bas à un moment donné lorsque je travaillais sur un site Web sur lequel je travaillais.

Mise à jour : J’ai demandé à ChatGPT de m’aider selon votre réponse et j’ai obtenu ceci :

Vider le cache du navigateur n’affecte pas localStorage, qui est l’endroit où l’état de rejet est stocké. Vous devez supprimer manuellement l’élément de localStorage.

Faites ceci :

  1. Ouvrez le site Discourse.

  2. Appuyez sur F12 ou faites un clic droit → Inspecter pour ouvrir les Outils de développement.

  3. Allez dans l’onglet Console.

  4. Collez ceci et appuyez sur Entrée :

    localStorage.removeItem("discourse_dismissedWelcomeLinkBanner");
    
  5. Rafraîchissez la page.

Cela réinitialisera l’état de rejet, et la bannière de bienvenue du lien devrait réapparaître.


Ensuite, j’ai demandé si je pouvais aussi le faire manuellement, et oui, je peux, en allant dans l’onglet Application, puis dans la barre latérale en allant dans Stockage > Localstorage et en supprimant l’“entrée” :

image


Permettez-moi de vous remercier de m’avoir montré la bonne direction !

Ma question est donc : si c’est ainsi que je procède sur mon ordinateur de bureau, comment puis-je le faire sur mobile ? ChatGPT a dit que je pouvais ajouter ceci à la barre d’adresse et l’“exécuter”, mais cela n’a pas aidé :

javascript:localStorage.removeItem("discourse_dismissedWelcomeLinkBanner");

EDIT : ça a marché ! Je faisais mal. ChatGPT a précisé maintenant que je devais ouvrir le forum, puis dans cet onglet, exécuter javascript:localStorage.removeItem("discourse_dismissedWelcomeLinkBanner");, pas dans un nouvel onglet, ce que je faisais.

Encore une fois, merci pour votre réponse, car elle a certainement aidé à affiner les choses. :raising_hands:

1 « J'aime »