È possibile cambiare i nomi dei menu a tendina?

Ciao community :slight_smile:

Qualcuno sa per caso se c’è un’opzione per cambiare i nomi dei menu a discesa all’interno di una particolare categoria?

Mi piacerebbe personalizzare le parti “tutto” e “tutti i tag”:

Praticamente tutto il testo può essere personalizzato:

Immagino che tu debba modificare, ad esempio:

2 Mi Piace

Ma non cambierà solo per categorie specifiche.

Ho iniziato a lavorare su una soluzione CSS molto “hacky”, non è perfetta… E sono un po’ riluttante a condividere qualcosa di così “hacky” comunque. :confounded:

5 Mi Piace

Ricevuto, grazie per il tuo aiuto! @merefield @Canapin

3 Mi Piace

Oh scusa, ho letto velocemente!

Sì, sono globali.

1 Mi Piace

Dai, dai :wink: :wink:

Penso che sia eccessivamente complesso, soprattutto quando le sottocategorie non sono definite come tali nel codice HTML… Ho una cosa funzionante a metà, ma penso che dovrebbe essere fatta nel modo giusto, e l’API JS di Discourse potrebbe aiutare in questo. Sfortunatamente, non ne so molto.

5 Mi Piace

Ciao :wave:

Ho creato un componente a tema per ottenere questo…

Contiene due impostazioni per renderlo più semplice.

nome categoria
Primo posto: slug categoria
Secondo posto: titolo dropdown categoria

nome tag
Primo posto: slug categoria
Secondo posto: titolo dropdown tag

Che apparirà così.

Aggiunta del titolo del tag della sottocategoria

Spero sia d’aiuto :slightly_smiling_face:


Modifica: Ho corretto la larghezza del dropdown per allinearla correttamente alla larghezza del testo personalizzato. UX: fix the dropdown width to keep the custom content width · VaperinaDEV/category-breadcrumb-dropdown-title@faca71c · GitHub

8 Mi Piace

wow, ottimo lavoro @Don - mi stupisci :exploding_head: :star_struck:

2 Mi Piace

Udite, udite!
:man_mage:

Dalle profondità dei misteri SCSS e dalle complessità dell’alchimia front-end, Sir Don è emerso. Conquistando funzioni, padroneggiando cicli e decifrando liste, gli conferiamo con orgoglio l’illustre Medaglia di Distinzione Front-End :sports_medal::person_bowing:.

E il tuo componente funziona senza una singola riga di JS…

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

1 Mi Piace

Per favore, dimmi che GPT4bot ti ha aiutato a scriverlo :laughing:

4 Mi Piace

100% sì, temo.

2 Mi Piace

Ok, questa soluzione è impressionante, ma puoi farlo @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 elenca tutte le azioni che puoi eseguire:

  • appendContent
  • prependContent
  • replaceContent
  • onChange

Fammi sapere se hai problemi ad usarlo. Probabilmente dovrebbe essere documentato meglio, ma sono qui se hai domande.

6 Mi Piace

@Don @j.jaffeux siete assolutamente fantastici, ragazzi!! :fire:

3 Mi Piace