Link personalizzati di navigazione superiore

:discourse2: Riepilogo Link personalizzati nella barra di navigazione superiore ti consente di aggiungere link alla barra di navigazione superiore di Discourse.
:eyeglasses: Anteprima Anteprima su Discourse Theme Creator
:hammer_and_wrench: Link al repository https://github.com/discourse/Discourse-nav-links-component
:open_book: Nuovo a Discourse Themes? Guida per principianti all’uso di Discourse Themes

Installa questo componente del tema

Funzionalità

Desktop

Mobile

Impostazioni:

Nome Descrizione
Link di navigazione Separati da punto e virgola in questo ordine: nome visualizzato;descrizione;URL
Nascondi menu a tendina Nasconde i menu a tendina delle categorie e dei tag
Nascondi link predefiniti Nasconde i link predefiniti sia su mobile che su desktop.
  • Link di navigazione — questi richiedono 3 parti:

    • Nome
    • Descrizione
    • Percorso o URL

    Il nome è il testo del link che appare nel menu. La descrizione appare quando passi il mouse sul nome, come in questo esempio:

    Il percorso/URL è la destinazione a cui vuoi che il link porti.

    Puoi aggiungere link come valori separati da punto e virgola nelle impostazioni del tema seguendo questo ordine

    nome;descrizione;URL

    L’URL può anche essere relativo, ad esempio:

    /c/staff, /t/232, /groups/plugin_authors, /about, /tags/official

  • Nascondi menu a tendina

    Nasconde i menu a tendina predefiniti per categorie e tag

    Screenshot 2023-05-11 at 3.10.55 PM

  • Nascondi link predefiniti

    Nasconde i link predefiniti in questa sezione

    Screenshot 2023-05-11 at 3.11.29 PM


:discourse2: Ospitato da noi? I componenti del tema sono disponibili per l’uso nei nostri piani Standard, Business e Enterprise.

64 Mi Piace
Categories in "top menu"?
Add /groups to top nav
How to make some categories like Bugs and Features here visible in top menu?
What about adding tags in the top menu?
How to add breadcrumb?
Simple Unread List
How can I add a menu item
Displaying all non-solved topics
Adding link to blog on main page
What is the proper way to extend categories route and filter topics?
Create a Tag filter like 'Make & Model' on community.cartalk.com
A playful approach to category moderation
Link to find all deleted posts by all users in a particular period
Reply reminder - Remind users to reply to new users topics with zero replies
How to add a topic in top nav in a specific category?
Following tags and top feed for followed tags
Show latest list sorted by creation date
Following tags and top feed for followed tags
Change Topic List home router - from Latest to Following
Missing category and tags breadcrumbs
A "Votes" option for the top menu in main page
Adding a chat link in the top navigation links?
Add a specific class for wikis (when first post) at the topic list level
How to add an icon in a navigation link?
Customizing your site with existing theme components
Show Latest topics, not by comment on home page
Custom Button For Discourse
Add Follow feed to top navigation
Improvements i want for my discourse for making it less overwhelming/noisy for newcomers
Sidebar link / top button to PM admin
Adding 'Upcoming Events' to top navigation
Can we add "Groups" to top menu?
Disclaimer section on the "about" page
Alternative component (plugin?) to categories navbar
Alternative component (plugin?) to categories navbar
FKB Pro - Social theme
2023: The Year in Review
Is it possible to have the Board view as the only view?
How to add Button in Section
Brave default Theme
Air Theme
Provide a way to access tracked/watched topics (outside search)
Discourse Solved
The first Custom Top Nav link inappropriately appears selected
Add another tab to menu bar
How can I remove the Category and tag filter?
How to Disable ALL User-to-User DMs/Chat without breaking Other Features?
Disable personal message between members
Add category in Top Menu?
Strange repetition in menu items
How can I add a link to the top menu area?
Why we can't add groups to top menu
How to add links on home page menu to other site?
Traditional multi level hierarchy vs flat discourse hierarchy
Ordering topics - how do the links work?
Knowledge Base
Automatically fill category with topics? "Best of" category?
How to add new button in different color
Adding "Category" as a topic list option within categories
Docs: Add link to top menu
New Theme: Tag-Pages Navigation
Custom nav bar options
Where can I see posts created by me?
Showing categories statically above most recent posts
Custom nav items no longer showing after recent update
Add /groups to top nav
Add topics-sorted-by-create-time to `top menu`
Categories Customization
Volunteer Activities - a simple setup for non-hierarchical collaboration
How to make the recommanded topics collection

Ciao

Uso questo componente del tema. Uno degli elementi del menu punta a una categoria e vorrei mostrare il numero di argomenti non letti per questa categoria.

Invece di “Agora”, vorrei vedere “Agora (3)” per un utente che ha tre argomenti non letti in questa categoria (stesso comportamento del link standard “Non letti”).

Qualche idea?

Grazie in anticipo.

Qualcuno sa come potrei aggiungere un link a un tag che sia effettivamente relativo al percorso corrente? Vorrei usare un tag Informazioni e offrirlo come link principale a un argomento Informazioni relativo alla categoria in cui si trova un utente.

Ad esempio, l’utente si trova nella categoria /c/feedback/7. Scegliendo Informazioni si verrà indirizzati a /tags/c/feedback/7/about.

2 Mi Piace

Vorrei utilizzare il componente su un’istanza ma vari comportamenti non funzionano:

  • Quando si utilizza “nascondi link predefiniti”, nasconde i primi due elementi figli (Ultimi e Categorie). Ma quando si naviga in una categoria, il link predefinito “Categorie” non viene già mostrato nel menu. Quindi questa impostazione nasconde un elemento di navigazione aggiuntivo, altrimenti il terzo in linea.

Screenshot from 2022-05-10 18-29-05

  • Ho aggiunto una voce di menu per un link di categoria diretto (/c/game-talk). Quando ci navigo, non ottiene una classe attiva e non viene evidenziato. Invece, il link “Ultimi” è evidenziato e ha una classe attiva. Questo non è il link predefinito “Ultimi”, ma uno che ho aggiunto tramite il componente (collegandosi solo a /latest)

Screenshot from 2022-05-10 18-25-39

  • In realtà, il link “Ultimi” non ottiene nemmeno una classe attiva quando non si chiama “Ultimi”. Quindi la classe attiva sul percorso corrente non sembra funzionare affatto a causa del componente. Questa è la visualizzazione su /latest ma con un nome diverso per il link Ultimi:

Screenshot from 2022-05-10 18-39-15

2 Mi Piace

Domanda veloce-
Sto cercando di creare questo e fare in modo che l’URL sia ?order=created in modo che gli utenti possano sfogliare gli argomenti recenti.

Questo funziona perfettamente sul desktop, ma fallisce sul cellulare: la barra di navigazione si ricarica e non mostra il menu a discesa.

Ho la stessa domanda… È una soluzione? :face_with_monocle:

Penso di sapere perché è successo…
il componente ha la riga seguente:

if (window.location.pathname.match(sec2)) {
          $(navHeader).html(filter + markd);
        }

A causa dell’espressione regolare… il ? stesso viene utilizzato come segno speciale dell’espressione regolare, e il parametro dovrebbe essere confrontato con window.location.search.
Ho forzato il componente, l’ho cambiato nel codice seguente e funziona.

if (sec[2].indexOf("?") === -1) {
        if (window.location.pathname.match(sec[2])) {
          $(navHeader).html(filter + markd);
        }
      } else {
        // reg ?->/?
        sec[2] = sec[2].replace(/\?/g, "/?");
        const pathWithSearch = window.location.pathname + window.location.search;
        if (pathWithSearch.match(sec[2])) {
          $(navHeader).html(filter + markd);
        }
      }
1 Mi Piace

Ottimo, complimenti :clap:

Dove hai inserito questo pezzo di codice?

Discourse-nav-links-component/mobile/head_tag.html ,sostituisci il codice corrispondente. :face_with_peeking_eye:

1 Mi Piace

Perché non fare una PR in modo che tutti possano trarne beneficio?

4 Mi Piace

Posso farlo? Penso sempre che il mio livello di codice sia troppo scarso… e mi sento un po’ imbarazzato a farlo. Grazie per il consiglio!!! Lo rivedrò e farò una PR!

1 Mi Piace

Penso lo stesso dei miei tentativi di contributo!!

Tuttavia, il @team (e i loro strumenti automatizzati) sembrano essere piuttosto bravi a riordinare il codice.

Una volta che l’hai reso un PR, puoi pubblicare il link del PR qui in Meta e visualizzerà un fantastico aggiornamento live incorporato dello stato del PR.

5 Mi Piace

Sei mai riuscito a risolvere questo problema? Sto riscontrando un problema simile

Non posso dire di aver trovato una soluzione ideale, ma ho capito qual era il problema per me.

Il problema si trova qui
https://github.com/discourse/Discourse-nav-links-component/blob/main/desktop/head_tag.html

Nello specifico, questa parte:

    api.modifyClass("component:navigation-item", {
      pluginId: "discourse-nav-links-component",
      active: Ember.computed("contentFilterMode", "filterMode", function() {
        let contentFilterMode = this.get("content").get("filterMode");

        if (window.location.pathname === location) {
          return contentFilterMode === filter;
        } else {
          return this._super(contentFilterMode, this.get("filterMode"));
        }
      })
    });

Sembra che questo imposti lo stato “attivo” su ogni link di navigazione. Francamente, la logica di come decide e cosa siano tutte queste variabili mi è piuttosto oscura. Ma il problema è qui:

        if (window.location.pathname === location) {
          return contentFilterMode === filter;
        } else {
          return this._super(contentFilterMode, this.get("filterMode"));
        }

Per me, questo controlla se l’URL della pagina è uguale alla posizione dell’URL della barra di navigazione e, in tal caso, restituisce il risultato di contentFilterMode === filter, entrambe le variabili sono un po’ poco chiare per me. Se la condizione fallisce, sembra che esegua semplicemente la logica normale per determinare se qualcosa debba essere contrassegnato come attivo (motivo per cui i miei link non personalizzati sembrano funzionare correttamente). Il problema è che, sebbene questo codice venga eseguito correttamente una volta per ogni link di navigazione, la variabile location sembra essere sempre “categories”, quindi l’istruzione if è sempre falsa per i link personalizzati. Inoltre, anche se correggo la variabile “location” sostituendola con this.get("content").href, anche il valore restituito è sempre falso perché la variabile filter è anch’essa sempre impostata su “categories”.

Normalmente farei una PR per risolvere questo problema, ma il problema principale mi sfugge ancora. Ho trovato una soluzione alternativa che funziona per me ma altera leggermente la funzionalità documentata di questo componente, quindi preferirei non fare una PR. Penso che ci saranno casi limite in cui non funzionerà, ad esempio se la tua homepage è impostata su /latest

    api.modifyClass("component:navigation-item", {
      pluginId: "discourse-nav-links-component",
      active: Ember.computed("contentFilterMode", "filterMode", function() {
        return window.location.pathname.includes(this.get("content").href);
      })
    });

In pratica, controlla solo se l’URL corrente include l’URL della barra di navigazione come sottostringa. Se sì, lo evidenzia.

4 Mi Piace

4 post sono stati divisi in un nuovo argomento: Filtro tag relativo personalizzato sulla barra di navigazione

Ciao. Sto scorrendo questo post. C’è un modo per indicare gli argomenti non letti per favore? Grazie.

Ciao,
Come impostiamo l’apertura di un URL in una nuova scheda?
Grazie!

Questo potrebbe essere un componente davvero utile, ma sembra che alcuni bug di base (ma al di là delle mie capacità di correzione) ne stiano impedendo un uso più ampio. Verranno corretti?

Puoi essere più specifico riguardo a quali bug ti impediscono di utilizzare il componente?

Sì, scusa, quello principale che ho riscontrato è questo:

Presumo che abbia solo bisogno di un CSS più mirato, ma potrei sbagliarmi!

1 Mi Piace