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 migliori contributori venga popolato. Se il tuo elenco è vuoto, cerca enable user directory nelle impostazioni di amministrazione per assicurarti che sia abilitato.
Disponibile solo se utilizzato con il plugin Calendar.
** Disponibile solo se utilizzato con il plugin Gamification.
Puoi anche utilizzare altri componenti Ember come blocchi, devi solo usare il nome corretto. Ad esempio, il core include un componente Ember signup-cta, e puoi usarlo nella barra laterale così com’è. Tieni presente che non puoi utilizzare componenti che si aspettano un set di parametri, ma puoi creare il tuo componente Ember in un tema separato e fare riferimento ad esso solo con il suo nome nell’impostazione blocks della barra laterale.
Puoi controllare alcune funzionalità per i blocchi forniti tramite parametri.
nome
descrizione
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 separato da virgole)
Solo per utenti esperti: limita la barra laterale ai percorsi selezionati. Esempi: discovery.latest, discovery.unread, discovery.new, discovery.top, tag.show, “c/category-slug” (per categorie), “tag/sample-tag” (per tag). Se vuoto, la barra laterale viene mostrata su tutti i percorsi di elenco.
blocks: scegli i blocchi da visualizzare e regola il loro ordinamento
show_in_routes: decidi su quali percorsi di elenco di argomenti mostrare la barra laterale. Per impostazione predefinita, verrà mostrata su tutti i percorsi di scoperta tranne /categories.
Nota che il componente viene fornito solo con uno stile molto basilare, si presume che gli amministratori che utilizzano il componente aggiungeranno il proprio stile nel proprio tema.
Interazioni
Se utilizzato in combinazione con il 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.