Personnalisez le texte du bouton 'Nouveau sujet'

:discourse2: Résumé Personnalisez le bouton « Nouveau sujet » par catégorie ou par étiquette
:eyeglasses: Aperçu Aperçu sur le créateur de thèmes Discourse
:hammer_and_wrench: Dépôt \u003chttps://github.com/discourse/discourse-customize-new-topic-button-text\u003e
:question: Guide d’installation Comment installer un thème ou un composant de thème
:open_book: Nouveau aux thèmes Discourse ? Guide pour débutants sur l’utilisation des thèmes Discourse

Installer ce composant de thème

Fonctionnalités

Ce composant de thème vous permet de personnaliser le bouton « Nouveau sujet » sur la liste des sujets d’une catégorie ou d’une étiquette, ainsi que le nom de l’action et le bouton dans le compositeur (surligné ci-dessous). Si vous avez une catégorie Bug, par exemple, vous pouvez modifier ces textes pour dire « Signaler un bug » :

(Certaines icônes peuvent devoir être ajoutées à votre paramètre d’administration svg icon subset)

Vous pouvez également personnaliser le texte du bouton de réponse, cela remplacera le texte reply dans le compositeur et dans les sujets :

Paramètres

Nom Description
custom new topic text C’est ici que vous entrez les détails pour chaque bouton personnalisé
inherit parent category Lorsqu’il est désactivé, les sous-catégories n’hériteront pas automatiquement du texte de la catégorie parente

Il existe deux paramètres, le principal étant custom new topic text :

Ce paramètre vous permet de définir le filtre (nom de l’étiquette ou de la catégorie), l’icône du bouton « Nouveau sujet » (cela ne change pas les icônes dans le compositeur), ainsi que le nom de l’action en haut du compositeur et le bouton « Créer un sujet » du compositeur.

Il existe un paramètre supplémentaire, activé par défaut, appelé inherit parent category. Lorsqu’il est activé, toutes les catégories enfants verront également leur texte modifié (sauf indication contraire dans les paramètres).

\u003e:information_source: Notez que si vous configurez une étiquette, elle remplacera la catégorie sélectionnée.

:bulb: Idées pour de futures améliorations

  • Texte localisable pour différentes langues
  • Prise en charge des combinaisons de catégories et d’étiquettes, et de plusieurs étiquettes

\u003cbr\u003e

\u003e:discourse2: Hébergé par nous ? Les composants de thème sont disponibles pour utilisation sur nos plans Standard, Business et Enterprise.

27 « J'aime »

C’est vraiment bien, merci beaucoup :heart:

Aujourd’hui, je travaillais sur une version beaucoup plus simple de cela en utilisant api.customizeComposerText() :sweat_smile:

C’est une bien meilleure solution. Merci @awesomerobot !

Dans mes expériences, je n’ai jamais pu remplacer l’étiquette du bouton du compositeur pour les catégories en utilisant le plugin discourse-post-voting. Cela devient un problème plus important lorsque plusieurs catégories sont activées pour le vote de messages.

Si je puis me permettre ; activer la prise en charge du remplacement des étiquettes de discourse-post-voting serait une excellente amélioration. ( :

1 « J'aime »

Ceci est un excellent composant de thème ! Une idée pour aller plus loin pourrait être la suivante :

Si vous renommez le bouton parce que vous souhaitez effectivement changer le type de sujet, alors vous devriez changer la dénomination dans toute la *catégorie.

Par exemple :
Vous avez une catégorie appelée Événements. Vous changeriez effectivement le mot « sujet » dans toute la catégorie en « événements ». Ce n’est pas « Nouveau Sujet », c’est « Nouvel Événement », au lieu d’une liste de Sujets, vous auriez une liste d’Événements, etc.

Vous voyez cela dans d’autres outils où vous changez l’utilisation principale de quelque chose. Voici ce que fait AirTable lorsque vous créez une nouvelle table. Les tables, par défaut, ont des « enregistrements ».

Mais disons que je veux créer une table appelée « Utilisateurs », alors je peux changer chaque enregistrement pour qu’il s’appelle Utilisateurs :

Traiter le composant de thème de cette manière nous permettrait de renommer facilement et efficacement une catégorie en une entité plus spécifique. Demandes de support, Événements, etc.

J’ai trouvé ce composant de thème en cherchant, car je voulais changer ce mot pour « Sujet » en « Événements » :

3 « J'aime »

@awesomerobot ce composant de thème est vraiment incroyable, merci beaucoup pour ça !

Je remarque que ce composant de thème semble causer un comportement étrange avec le CSS du bouton Nouveau sujet.

Composant de thème désactivé :

Composant de thème activé :


J’ai également remarqué que, bien qu’il modifie le bouton “Créer un sujet” dans l’éditeur, ce qui est génial…

Il modifie également le texte du bouton Répondre avec la même chaîne, ce qui est moins idéal car il ne s’agit pas de créer un autre rapport de bug, c’est une réponse :slight_smile:

Quelles sont les chances qu’un autre champ puisse être ajouté à l’éditeur pour modifier le texte du bouton de réponse (ou le laisser vide pour le laisser tel quel Répondre) ?

4 « J'aime »

Désolé, une dernière chose : cela ne semble pas non plus respecter le cas où deux sous-catégories (chacune d’un parent différent) ont le même slug. par exemple :

  • parent1
    • sous1
  • parent2
    • sous1

Dans ce cas, je ne peux pas obtenir le composant de thème pour différencier les deux sous-catégories, et elles partagent toutes deux la même configuration de l’éditeur.

3 « J'aime »

Merci pour vos commentaires, j’ai apporté quelques mises à jour ! FIX: action, switch category to ID, ignore replies by awesomerobot · Pull Request #5 · discourse/discourse-customize-new-topic-button-text · GitHub

J’avais complètement oublié le bouton de réponse ! Pour l’instant, je l’ai juste laissé tel quel (reply), mais un réglage séparé pour changer son texte serait logique.

Bon point, il semble que l’utilisation de l’ID de catégorie plutôt que du nom de catégorie dans les paramètres serait la meilleure façon d’éviter cela. Cela signifie donc que tous les paramètres existants que vous avez mis en place devront être mis à jour.

3 « J'aime »

Il semble qu’il y ait un nouveau bug. Lorsque ce plugin est activé, il crée deux boutons de sujet :

2 « J'aime »

Oui, merci de l’avoir signalé, certains connecteurs ont changé dans Discourse — cela devrait être corrigé maintenant si vous mettez à jour :

2 « J'aime »

Est-il possible de corriger la différence de taille des boutons ? (ancienne capture d’écran, votre dernière mise à jour a corrigé le problème des doubles boutons)

1 « J'aime »

Oui, ce bouton devrait maintenant avoir la bonne hauteur

1 « J'aime »
Hmm, j'essaie d'utiliser ce composant sans succès et je vois beaucoup d'avertissements dans mes logs comme celui-ci.

Message (4 copies signalées)

[DiscourseJsProcessor] DÉPRÉCATION : L’utilisation de {{attrs}} pour référencer des arguments nommés est dépréciée. {{attrs.canCreateTopic}} devrait être mis à jour en {{@canCreateTopic}}. (‘discourse/components/custom-new-topic-button.hbs’ @ L2:C8) [deprecation id: attrs-arg-access] Voir Ember.js - Deprecations pour plus de détails.
at theme-transpiler.js:3164:26752
at j.computed (theme-transpiler.js:3168:1693)
at j.computed (theme-transpiler.js:3168:161)
at j.computed (theme-transpiler.js:3168:1693)
at D (theme-transpiler.js:3168:1754)
at te (theme-transpiler.js:3168:1318)
at PathExpression (theme-transpiler.js:3198:21763)
at yo (theme-transpiler.js:3187:2776)
at Al (theme-transpiler.js:3187:3513)
at Ml (theme-transpiler.js:3187:3309)
at yo (theme-transpiler.js:3187:3013)
at Al (theme-transpiler.js:3187:3513)
at Ml (theme-transpiler.js:3187:3309)
at yo (theme-transpiler.js:3187:3013)
at Ml (theme-transpiler.js:3187:3350)
at yo (theme-transpiler.js:3187:3013)
at Al (theme-transpiler.js:3187:3513)
at Ml (theme-transpiler.js:3187:3309)
at yo (theme-transpiler.js:3187:3013)
at Bi (theme-transpiler.js:3187:3879)
at PA (theme-transpiler.js:3190:3002)
at Cf (theme-transpiler.js:3190:9856)
at Al (theme-transpiler.js:3176:35353)
at gf (theme-transpiler.js:3176:35600)
at D (theme-transpiler.js:3198:42250)
at Sft.o.precompile (theme-transpiler.js:3281:3078)
at dDe (theme-transpiler.js:3161:1003)
at e.CallExpression (theme-transpiler.js:3159:33796)
at h (theme-transpiler.js:10:111797)
at e.uPe [as _call] (theme-transpiler.js:59:16906)
at e.oPe [as call] (theme-transpiler.js:59:16726)
at e.lPe [as visit] (theme-transpiler.js:59:17700)
at t.visitQueue (theme-transpiler.js:59:40645)
at t.visitSingle (theme-tr…

Trace

/var/www/discourse/lib/discourse_js_processor.rb:133:in block in create_new_context' mini_racer-0.8.0/lib/mini_racer.rb:273:in block in attach’
mini_racer-0.8.0/lib/mini_racer.rb:242:in call_unsafe' mini_racer-0.8.0/lib/mini_racer.rb:242:in block (2 levels) in call’
mini_racer-0.8.0/lib/mini_racer.rb:369:in timeout' mini_racer-0.8.0/lib/mini_racer.rb:241:in block in call’
mini_racer-0.8.0/lib/mini_racer.rb:240:in synchronize' mini_racer-0.8.0/lib/mini_racer.rb:240:in call’
/var/www/discourse/lib/discourse_js_processor.rb:168:in block in v8_call' /var/www/discourse/lib/discourse_js_processor.rb:167:in synchronize’

1 « J'aime »

Hmm étrange, je l’ai testé sur la dernière version de Discourse et tout fonctionne bien — je viens de fusionner une mise à jour du composant qui résoudra ce problème de dépréciation, pouvez-vous mettre à jour et réessayer ?

1 « J'aime »

Même ici, il ne s’affiche pas après plusieurs tentatives.

Malheureusement, ce merveilleux composant de thème ne semble pas bien fonctionner avec Custom Wizard Plugin 🧙

Le plugin Wizard est capable de se connecter au bouton de catégorie via les paramètres de catégorie :

Lorsque vous utilisez votre composant, le bouton change de nom, mais appuyer dessus ne lance plus le Wizard sélectionné dans les paramètres de catégorie. Nous serions heureux d’utiliser votre composant sur un grand site de production, mais nous ne le pouvons pas pour le moment. J’espère que cela pourra être résolu. Aucune pression :slight_smile:

Je ne vois pas cela, j’ai la même configuration et mes boutons fonctionnent. Vous devrez peut-être examiner d’autres plugins ou TC. Je suis sur les dernières versions pour information.

1 « J'aime »

C’est un joli petit composant qui peut ajouter une touche de finition soignée à un site.

1 « J'aime »

Bonjour

Je pense avoir un bug.

Le texte du bouton « Nouveau sujet » ne peut plus être modifié.
La modification est effective pour les autres boutons.

Version : 3.2.0.beta4-dev([4886c1fddc]

Merci pour votre aide (et pour ces fonctions !)

2 « J'aime »

Merci pour le rapport !

Il semble qu’il y ait une régression du dernier PR :

Il convertit de la syntaxe this.args.<param>. à @<param>, cependant, le premier est requis car nous sommes à l’intérieur d’un plugin outlet.

EDIT : J’ai fait un PR :+1:

1 « J'aime »

Merci pour la PR @Arkshine ! cela devrait être corrigé lors de la mise à jour

Ceci sera également inclus lors de la mise à jour : FEATURE: add ability to customize "Reply" text by 3-w-c · Pull Request #7 · discourse/discourse-customize-new-topic-button-text · GitHub

Ainsi, l’option de personnaliser également le texte du bouton de réponse dans le compositeur et sur les messages (toujours basé sur la balise et la catégorie) sera incluse.

1 « J'aime »