Panoramica
Un componente tema che ti consente di disporre i componenti[1] nelle barre superiore e laterale.
- Specifica un set di “widget” distinti per Percorso e Posizione.
- Supporta configurazioni per ciascuno di: discovery[2], topic, tag[3], category[3:1], categories[3:2] o tags-intersection[4]
- Le “Barre” possono essere: superiore, sinistra, destra o posizione destra alternativa.
- Ogni barra può essere compressa o chiusa (aggiorna il browser per reimpostare la chiusura). Possono essere ridotte al minimo per impostazione predefinita.
- Gestisce la barra laterale ufficiale, ma se intendi utilizzare una barra laterale sinistra, si consiglia la modalità a discesa della barra laterale ufficiale.
- Viene fornito con impostazioni di esempio esistenti che mostrano alcune lettere maiuscole, in parte come demo e in parte in modo che tu possa vedere le impostazioni di esempio. Eliminale e sostituiscile con i nomi dei tuoi componenti.
- Fornisce un componente:
bars-custom-html(vedi impostazioni di esempio precompilate) - ma i componenti di molti componenti tema e plugin esistenti sono compatibili. - Il supporto mobile non è ancora implementato.
Link rapidi
https://github.com/merefield/discourse-tc-bars |
|
| GitHub - merefield/discourse-tc-bars: A Theme Component that allows you to lay out Components ("widgets") on top and side bars | |
| Installing a theme or theme component |
Ti piace questo componente tema? Per favore, metti
su GitHub ! ![]()
Esempio gratuito:
Al primo caricamento:
Alcune cose importanti da notare su questo TC!
-
Questo componente tema è principalmente destinato a sviluppatori e amministratori che hanno una certa comprensione tecnica dello sviluppo di temi. Se non sei sufficientemente tecnico e hai bisogno di aiuto per implementare barre laterali utilizzando le barre, puoi assumere me o uno sviluppatore in Marketplace
-
Questo componente tema è destinato a fornire un framework per il supporto delle barre laterali. Non fornisce e non è destinato a fornire una finitura visiva finale che dovrai aggiungere nel tuo tema con CSS aggiuntivo. Tuttavia, fa molto lavoro per te e ti dà meno cose a cui pensare e forse anche la capacità di fare cose che non potevi fare prima …

Considerazioni sui componenti
-
Devi specificare un nome di componente. Il nome del componente è infatti lo stesso del nome del file nella directory del tema, tc o plugin
componentsenza il suffisso.- il nome del componente non è il nome del componente tema (che potrebbe contenere molti componenti Glimmer Ember), è il nome del file del componente Ember effettivo
, quindi, ad esempio:
quindi
layouts-tag-list - il nome del componente non è il nome del componente tema (che potrebbe contenere molti componenti Glimmer Ember), è il nome del file del componente Ember effettivo
-
Possono provenire da un componente tema o plugin esistente. I componenti esistenti potrebbero funzionare. Gli esempi sono:
- 🏷️ Bars Tag List Component
- Render a component within a Widget. (Using select-kit components within plugin code) - #31 by merefield
- Discourse AI Topic Summary 🤖 … e forse anche:
- Il widget Classifica: https://github.com/discourse/discourse-gamification/blob/main/assets/javascripts/discourse/components/minimal-gamification-leaderboard.js (fammi sapere se lo provi qui sotto!)
-
Richiede una certa competenza per creare componenti
- Ma prova a creare il tuo componente in un altro componente tema e assicurati che entrambi siano attivi nello stesso tema.
-
I componenti devono recuperare i propri dati (non possono utilizzare i modelli di passaggio dei plugin outlet purtroppo a causa degli specifici plugin outlet richiesti per disporre le cose in questo modo)
- Pronto all’uso, puoi utilizzare solo i dati JSON API esistenti da, ad esempio, Discourse core o quelli forniti da un plugin esistente. Se hai bisogno di dati personalizzati che non puoi recuperare dalle API correnti, puoi assumere me o qualcuno in Marketplace per aiutarti.
-
Potrebbe essere necessario personalizzare la barra laterale e i confini dei componenti a proprio piacimento. (di nuovo, se hai bisogno di aiuto, considera di assumere uno sviluppatore).
- L’uso strategico di ombreggiature e bordi può rendere le cose molto belle - sii artistico!
Perché
-
Con l’aggiornamento di Discourse core a Ember 5, il trucco utilizzato dal plugin Layouts di Pavilion per fornire un eccellente modo per manipolare il layout di Discourse ha smesso di funzionare. Non c’era più un modo semplice per mostrare una barra laterale su un percorso di argomento tramite un’interfaccia utente relativamente semplice per l’utente finale.
-
Inoltre, Ember ha introdotto i componenti Glimmer che erano molto più piacevoli da usare. (Layouts utilizzava l’API Widgets che è deprecata a favore dei componenti Glimmer).
-
Infine, il team principale di Discourse ha fornito un nuovo editor JSON per le impostazioni dei componenti tema, che ha reso possibile la distribuzione di impostazioni più complesse

-
Piuttosto che correggere il plugin Layouts (i TC non esistevano ai tempi di Layouts), aveva senso ricostruire come componente tema, perché possiamo ottenere la maggior parte delle cose di cui abbiamo bisogno solo nel front-end.
-
Entra in “Bars”
Saluti!!
Problemi noti
- La barra superiore non rimane fissa (potrei rimuovere l’impostazione corrispondente se non riesco a risolverla).
Crediti
- Successore spirituale del Plugin Layouts ora rotto, costruito da @angus (Saluti!) che ci è servito bene per molti anni.
- Utilizza il sistema di parametri di Right Side Blocks (grazie @pmusaraj!)
il termine ‘discovery’ (percorso) si riferisce alle pagine principali dell’elenco degli argomenti (ad esempio, “Ultimi”, “Nuovi”) che consentono di sfogliare gli argomenti disponibili prima di fare clic e approfondire uno specifico. ↩︎
tecnicamente anche un percorso “discovery”, ma li stiamo separando in nomi distinti in modo che tu possa trattarli in modo diverso se lo desideri. ↩︎
Vedi qui per maggiori dettagli. Affinché ciò rimanga opzionale (non tutti gli installatori di Bars vorranno una homepage personalizzata), Bars non aggiunge il modificatore richiesto in
about.json, quindi devi aggiungerlo nel tema padre o in un altro TC per attivarlo. ↩︎ ↩︎ ↩︎Vedi il Plugin Tag Intersection ↩︎








