Il componente include alcuni blocchi che puoi visualizzare nella barra laterale:
popular-tags
top-contributors
recent-replies
category-topics
custom-html
category-list
subcategory-list
upcoming-events-list*
minimal-gamification-leaderboard**
La directory degli utenti deve essere abilitata affinché l’elenco dei Top Contributor venga popolato. Se la tua lista è vuota, cerca enable user directory nelle tue impostazioni di amministrazione per assicurarti che sia abilitata.
* Disponibile solo se utilizzato con il plugin Calendar.
** Disponibile solo se utilizzato con il plugin Gamification.
Puoi utilizzare anche altri componenti Ember come blocchi; devi solo usare il nome corretto. Ad esempio, il core include un componente Ember signup-cta, che puoi utilizzare nella barra laterale così com’è. Nota che non puoi utilizzare componenti che richiedono un insieme di parametri, ma puoi costruire il tuo componente Ember in un tema separato e referenziarlo semplicemente con il suo nome nell’impostazione blocks della barra laterale.
Puoi controllare alcune funzionalità dei blocchi forniti tramite parametri.
nome
descrizione
valore predefinito
valore
disponibile per
count
limita il numero di risultati
varia
numero
tutti tranne custom-html
excerptLimit
limita la lunghezza di ogni estratto di risposta
150
numero
recent-replies
id
ID categoria
ID categoria (category-list usa valori separati da virgola)
Solo per utenti avanzati: limita la barra laterale alle rotte selezionate. Esempi: discovery.latest, discovery.unread, discovery.new, discovery.top, tag.show, “c/category-slug” (per le categorie), “tag/sample-tag” (per i tag). Quando vuoto, la barra laterale viene mostrata su tutte le rotte delle liste.
blocks: scegli i blocchi da visualizzare e modifica il loro ordine
show_in_routes: decidi su quali rotte delle liste degli argomenti mostrare la barra laterale. Di default, verrà mostrata su tutte le rotte di discovery tranne /categories.
Nota che il componente include solo uno stile molto basilare; si presume che gli amministratori che utilizzano il componente aggiungeranno il proprio stile nel loro tema.
Interazioni
Se utilizzato insieme al plugin Discourse Calendar, puoi aggiungere un blocco nella barra laterale per i tuoi eventi imminenti. Il nome del blocco è upcoming-events-list e il formato della data può essere personalizzato seguendo questa sintassi (ad esempio, MMMM D, YYYY).
Ottimo vedere questo come un #ThemeComponent#ufficiale! Apre sicuramente un nuovo mondo di personalizzazioni.
Ho 2 domande:
Nella barra laterale, voglio visualizzare l’elenco degli argomenti /latest in modo simile a come li visualizza category-topics. È possibile? recent-replies ci va quasi (soprattutto se l’estratto è nascosto), ma voglio davvero includere argomenti senza risposte.
È possibile visualizzare i blocchi laterali solo in determinate categorie? Quello che intendo è che venga visualizzato solo l’elenco degli argomenti della categoria, e solo per le categorie che specifico.
Mi scuso, la documentazione per questo è carente (la aggiornerò ora). Il nome del parametro per custom-html è content.
Non abbiamo nulla di pronto per l’elenco completo di /latest, ma puoi costruirne uno tuo e aggiungerlo alla configurazione usando il suo nome. Dovrebbe essere molto simile agli elenchi di categorie/tag, solo senza un filtro.
Attualmente, no, non puoi mostrarlo solo su categorie specifiche. Puoi tuttavia usare discovery.category nell’impostazione show in routes, che mostrerà la barra laterale solo sulle rotte delle categorie (ma su tutte, non su un sottoinsieme).
Ho appena notato una limitazione del componente, specialmente per quanto riguarda i blocchi category-topics e subcategory-list, e cioè che l’aggiunta di più blocchi di uno di questi tipi con id diversi ha sempre comportato la visualizzazione di argomenti/sottocategorie del blocco più in alto nell’editor di lancio (presumo).\n\nUn bug che sto riscontrando al momento è che, dopo aver giocato con il blocco subcategory-list per circa 10-12 volte, ha smesso di essere visualizzato del tutto sul nostro sito di staging (vedi video qui sotto).\n\n
Il blocco subcategory-list non accetta alcun parametro. Quando utilizzato, mostrerà le sottocategorie della categoria corrente in base a quale categoria corrente hai navigato… quindi non ha senso utilizzare quel blocco più di una volta.
È anche per questo che subcategory-list non viene visualizzato nel tuo video. Se ti trovi su un percorso non di categoria, quel blocco non viene visualizzato.
Per category-topics, nel tuo video vedo lo stesso ID utilizzato due volte: 7. Ho eseguito un test locale e con ID diversi ottengo argomenti diversi visualizzati (cioè, non riesco a riprodurre il bug segnalato).
Ciao, un enorme grazie per questo fantastico plugin!
Ho una domanda sulla barra laterale subcategory-list: c’è un’opzione per visualizzarla solo per una particolare categoria?
I nostri sviluppatori hanno dato un’occhiata e sembra che non ci sia supporto per l’ID del parametro per subcategory-list, è qualcosa che potresti aggiungere, per favore?
Attualmente no, questa opzione non esiste. Ha senso aggiungerla, anche se immagino che dovrebbe supportare più ID in modo da poter mostrare il blocco per un elenco di categorie (A, B e C, ad esempio). Sono felice di rivedere le PR sul repository, se i vostri sviluppatori pensano di poter aggiungere questo, sarebbe fantastico. (Altrimenti, posso aggiungerlo a un elenco di “nice-to-haves” nel componente del tema.)
Intendi a) recuperare i risultati e memorizzarli nella cache per una settimana o b) recuperare i principali contributori dell’ultima settimana ad ogni caricamento? Quest’ultimo dovrebbe essere facile da aggiungere, la memorizzazione nella cache è un po’ più complicata.
Il componente ha intenzionalmente pochissimo stile in modo che i consumatori possano aggiungere i propri stili nei propri temi/componenti tema.
Grazie, quella PR è ottima ed è ora unita!
Lavorerò anche a breve per aggiungere la configurabilità al blocco dei migliori contributori (o se qualcun altro è più veloce, sarò felice di rivedere una PR).
Non sono sicuro di dove trovare il codice per questo: potresti indicarmi la direzione? Vorrei esaminare la modifica di category-topics in modo che non avere un ID ti dia tutte le categorie (e quindi effettivamente l’elenco /latest)
Ciao! Non sono sicuro se questo componente stia causando errori. Ma una volta disabilitato, non si vedono più errori. Qualcuno potrebbe dare un’occhiata per aiutarmi a capire il problema? Lo apprezzerei molto.
Con esso abilitato, visitando un certo argomento sul desktop, facendo clic sul logo del sito nella barra in alto nel tentativo di tornare alla homepage, mi portava a una schermata di caricamento che non scompariva mai e generava errori nella console del browser (come di seguito). Nessun log di errore correlato visibile nel percorso mysite/logs.
d6ca234baf8d2d5e65f414f31e198fe956d9a939.js?__ws=www.bfsu.cafe:98 Uncaught (in promise) TypeError: Cannot read properties of undefined (reading 'findFiltered')
at new CategoryTopics (d6ca234baf8d2d5e65f414f31e198fe956d9a939.js?__ws=www.bfsu.cafe:98:18)
at h.createComponent (base-component-manager.js:37:1)
at h.createComponent (ember-component-manager.js:54:1)
at C.create (manager.js:558:1)
at Object.evaluate (runtime.js:3301:1)
at Object.evaluate (runtime.js:1312:1)
at Dt.evaluateSyscall (runtime.js:5232:1)
at Dt.evaluateInner (runtime.js:5188:1)
at Dt.evaluateOuter (runtime.js:5180:1)
at Wt.next (runtime.js:6191:1)
at Wt._execute (runtime.js:6175:1)
at Wt.execute (runtime.js:6166:1)
at qt.handleException (runtime.js:5369:1)
at Kt.handleException (runtime.js:5605:1)
at Lt.throw (runtime.js:5302:1)
at Be.evaluate (runtime.js:2580:1)
at Lt._execute (runtime.js:5285:1)
at Lt.execute (runtime.js:5266:1)
at Ht.rerender (runtime.js:5634:1)
at Er.render (index.js:7578:1)
at index.js:7896:1
at It (runtime.js:5074:1)
at Rr._renderRoots (index.js:7876:1)
at Rr._renderRootsTransaction (index.js:7928:1)
at Rr._revalidate (index.js:7970:1)
at invoke (backburner.js:351:1)
at p.flush (backburner.js:241:1)
at h.flush (backburner.js:447:1)
at q._end (backburner.js:999:1)
at _boundAutorunEnd (backburner.js:648:1)
CategoryTopics @ d6ca234baf8d2d5e65f414f31e198fe956d9a939.js?__ws=www.bfsu.cafe:98
createComponent @ base-component-manager.js:37
createComponent @ ember-component-manager.js:54
create @ manager.js:558
(anonimo) @ runtime.js:3301
evaluate @ runtime.js:1312
evaluateSyscall @ runtime.js:5232
evaluateInner @ runtime.js:5188
evaluateOuter @ runtime.js:5180
next @ runtime.js:6191
_execute @ runtime.js:6175
execute @ runtime.js:6166
handleException @ runtime.js:5369
handleException @ runtime.js:5605
throw @ runtime.js:5302
evaluate @ runtime.js:2580
_execute @ runtime.js:5285
execute @ runtime.js:5266
rerender @ runtime.js:5634
render @ index.js:7578
(anonimo) @ index.js:7896
It @ runtime.js:5074
_renderRoots @ index.js:7876
_renderRootsTransaction @ index.js:7928
_revalidate @ index.js:7970
invoke @ backburner.js:351
flush @ backburner.js:241
flush @ backburner.js:447
_end @ backburner.js:999
_boundAutorunEnd @ backburner.js:648
Promise.then (asincrono)
n @ backburner.js:28
flush @ index.js:46
_scheduleAutorun @ backburner.js:1218
_end @ backburner.js:1009
_boundAutorunEnd @ backburner.js:648
Promise.then (asincrono)
n @ backburner.js:28
flush @ index.js:46
_scheduleAutorun @ backburner.js:1218
_end @ backburner.js:1009
_boundAutorunEnd @ backburner.js:648
Promise.then (asincrono)
n @ backburner.js:28
flush @ index.js:46
_scheduleAutorun @ backburner.js:1218
_end @ backburner.js:1009
_boundAutorunEnd @ backburner.js:648
Promise.then (asincrono)
n @ backburner.js:28
flush @ index.js:46
_scheduleAutorun @ backburner.js:1218
_ensureInstance @ backburner.js:1206
scheduleOnce @ backburner.js:845
k @ index.js:522
queueRerender @ mount-widget.js:124
scheduleRerender @ widget.js:319
rerenderResult @ widget.js:365
F @ hooks.js:207
(anonimo) @ hooks.js:247
dispatch @ jquery.js:5430
_.handle @ jquery.js:5234
frame:251 Hai chiuso il flag, ma i cookie di terze parti sono disabilitati nel tuo browser, quindi il flag tornerà la prossima volta che visiterai la pagina.
Vedo informazioni su questo componente nel file js menzionato nella prima riga del log di errore sopra.
Ho notato che l’intero header e footer scompaiono a livello globale quando questo è abilitato (tutto nel mio header.html e footer.html). Era intenzionale? Per aggirare questo problema, devo usare il PluginAPI per aggiungere manualmente un header/footer.