Est-il possible de changer les noms des listes déroulantes ?

Salut la communauté :slight_smile:

Quelqu’un sait s’il existe une option pour changer les noms des listes déroulantes à l’intérieur d’une catégorie particulière ?

J’aimerais personnaliser les parties ‘all’ et ‘all tags’ :

Presque tout le texte est personnalisable :

Je suppose que vous devez modifier, par exemple :

2 « J'aime »

Mais cela ne changera pas pour des catégories spécifiques uniquement.

J’ai commencé à travailler sur une solution CSS très bancale, ce n’est pas parfait… Et je suis un peu réticent à partager quelque chose d’aussi bancal de toute façon. :confounded:

5 « J'aime »

Compris, merci pour votre aide ! @merefield @Canapin

3 « J'aime »

Oh désolé, lecture rapide !

Oui, ils sont mondiaux.

1 « J'aime »

Allez-y :wink: :wink:

Je pense que c’est trop complexe, surtout lorsque les sous-catégories ne sont pas définies comme telles dans le code HTML… J’ai quelque chose qui fonctionne à moitié, mais je pense que cela devrait être fait de la bonne manière, et l’API JavaScript de Discourse pourrait aider à cela. Malheureusement, je n’en sais pas grand-chose.

5 « J'aime »

Bonjour :wave:

J’ai créé un composant de thème pour y parvenir…

Il contient deux paramètres pour faciliter les choses.

category name
Première place : category slug
Deuxième place : category dropdown title

tag name
Première place : category slug
Deuxième place : tag dropdown title

Ce qui ressemblera à ceci.

Ajout du titre de la balise de sous-catégorie

J’espère que cela vous aidera :slightly_smiling_face:


Edit : J’ai corrigé la largeur du menu déroulant pour qu’elle corresponde correctement à la largeur du texte personnalisé. UX: fix the dropdown width to keep the custom content width · VaperinaDEV/category-breadcrumb-dropdown-title@faca71c · GitHub

8 « J'aime »

Bravo, excellent travail @Don - tu me stupéfies :exploding_head: :star_struck:

2 « J'aime »

Entendez !
:man_mage:

Des profondeurs des mystères SCSS et des subtilités de l’alchimie front-end, Sir Don s’est élevé. Maîtrisant les fonctions, perfectionnant les boucles et décryptant les listes, nous lui décernons fièrement l’illustre Médaille de Distinction Front-End :sports_medal::person_bowing:.

Et votre composant fonctionne sans une seule ligne de JS…

Happy James Corden GIF by The Late Late Show with James Corden

1 « J'aime »

Dites-moi que GPT4bot vous a aidé à écrire ça :laughing:

4 « J'aime »

100% oui, j’en ai bien peur.

2 « J'aime »

Ok, cette solution est impressionnante, mais tu peux faire ça @Don :

api
  .modifySelectKit("category-drop")
  .replaceContent((component, content) => {
    let newContent = [];
    content.forEach((item) => {
      if (
        component.category?.slug === "general" &&
        item.id === "all-categories"
      ) {
        item.name = "jojo";
      }

      newContent.push(item);
    });
    return newContent;
  });

https://github.com/discourse/discourse/blob/main/app/assets/javascripts/select-kit/addon/mixins/plugin-api.js liste toutes les actions que tu peux effectuer :

  • appendContent
  • prependContent
  • replaceContent
  • onChange

Fais-moi savoir si tu rencontres des difficultés à l’utiliser. La documentation devrait probablement être meilleure, mais je suis là si tu as des questions.

6 « J'aime »

@Don @j.jaffeux vous êtes absolument géniaux, les gars !! :fire:

3 « J'aime »