Blocchi della barra laterale destra

|||
-|-|-|
:discourse2: | Riepilogo | Blocchi della barra laterale destra mostra una barra laterale a destra degli elenchi di argomenti con un elenco configurabile di blocchi.
| :eyeglasses: | Anteprima | Anteprima su Discourse Theme Creator
:hammer_and_wrench: | Link al repository | https://github.com/discourse/discourse-right-sidebar-blocks
:open_book:|Nuovo per i temi di Discourse?| Guida per principianti all’uso dei temi di Discourse

Installa questo componente del tema

Funzionalità

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**

:information_source: 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) category-topics, category-list
content contenuti da visualizzare html custom-html
scopeToCategory mostra solo nella categoria o sottocategoria X id categoria popular-tags
excludedTags elenco di tag esclusi nomi tag popular-tags
displayInSpecificCategories elenco di categorie in cui mostrare il widget tutti numeri separati da virgole popular-tags
id id classifica numero minimal-gamification-leaderboard
tag quale tag visualizzare id tag tag-topics
period periodo di tempo per i migliori argomenti weekly all, yearly, quarterly, monthly, weekly, daily top-topics
title titolo del blocco varia stringa tag-topics, category-list, top-contributors
excludedGroupNames Esclude i gruppi specificati Nomi di gruppo top-contributors
order Ordina i contributori Stringa (likes_received o likes_given) top-contributors
period Periodo di tempo per i migliori contributori yearly all, yearly, quarterly, monthly, weekly, daily top-contributors
upcomingDays Eventi iniziati prima del valore fornito 180 numero upcoming-events-list
timeFormat Formato della data/ora dell’evento LT formato momentjs upcoming-events-list

Impostazioni

Nome Descrizione
blocks
show in routes 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.

Traduzione Predefinito
top_contributors.heading Migliori contributori
top_contributors.view_all Visualizza tutto
popular_tags.heading Tag popolari
popular_tags.view_all Visualizza tutto
recent_replies.heading Risposte recenti
subcategory_list.heading Sottocategorie
top_topics.heading Migliori argomenti
category_list.heading Categorie

Screenshot

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).

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

60 Mi Piace

Cosa devo aggiungere nel parametro “name” se uso custom-html?

1 Mi Piace

Ottimo vedere questo come un #ThemeComponent #ufficiale! Apre sicuramente un nuovo mondo di personalizzazioni.

Ho 2 domande:

  1. 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.

  2. È 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.

1 Mi Piace

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).

3 Mi Piace

Grazie, è possibile includere la barra laterale anche in ogni argomento?

4 Mi Piace

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

2 Mi Piace

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).

4 Mi Piace

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?

2 Mi Piace

E per quanto riguarda il blocco top-contributors: c’è un modo per recuperare i risultati per un periodo di una settimana?

2 Mi Piace

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.

3 Mi Piace

@pmusaraj puoi aggiungere

padding: 3px 4px 3px 4px

per i tag popolari?

Grazie.

1 Mi Piace

Ciao @pmusaraj, grazie mille per la tua risposta!

Il nostro sviluppatore ha condiviso le PR qui, dai un’occhiata: Implement the `displayInCategories` parameter which allows to specify a list of categories where the `subcategories-list` block is displayed by d521bb85 · Pull Request #10 · discourse/discourse-right-sidebar-blocks · GitHub

La seconda variante sarebbe perfetta! Dobbiamo visualizzare l’elenco dei principali contributori dell’ultima settimana. Grazie mille!

4 Mi Piace

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).

3 Mi Piace

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)

Sarebbe fantastico averlo in tutti i blocchi!

2 Mi Piace

@pmusaraj Fantastico! Grazie mille per il tuo aiuto, non vedo l’ora di usare il blocco dei migliori contributori :slight_smile:

1 Mi Piace

Ciao! Non sono sicuro se questo componente stia causando errori. Ma una volta disabilitato, non si vedono più errori. :thinking: 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.

// riga 96-103 di d6ca234baf8d2d5e65f414f31e198fe956d9a939.js?__ws=www.bfsu.cafe
      const filter = "c/" + categoryId;
      this.category = _category.default.findById(categoryId);
      this.store.findFiltered("topicList", {
        filter
      }).then(result => {
        const results = result.topic_list.topics;
        results.forEach(topic => {
          topic.url = "".concat((0, _getUrl.default)("/t/")).concat(topic.slug, "/").concat(topic.id);
1 Mi Piace

Ah, sì, mi scuso per l’inconveniente. Dovrebbe essere risolto ora, devi solo scaricare l’ultima versione del componente del tema.

3 Mi Piace

Grazie! Ora funziona alla grande.

3 Mi Piace

Ciao @pmusaraj, scusa se sembro insistente, volevo solo sapere se c’è una ETA per questa implementazione.

Sarebbe un’aggiunta fantastica :slight_smile:

Grazie mille!

3 Mi Piace

Grazie per questo fantastico componente!

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.

2 Mi Piace