Blocchi barra laterale destra

|:discourse2: | Riepilogo | Blocchi Barra Laterale Destra mostra una barra laterale a destra delle liste degli 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 a Discourse Themes?| Guida per principianti all’uso di Discourse Themes|

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 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) 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 tutte numeri separati da virgola popular-tags
id ID classifica numero minimal-gamification-leaderboard
tag quale tag visualizzare nome tag tag-topics
period periodo temporale dei top argomenti settimanale tutti, annuale, trimestrale, mensile, settimanale, giornaliero top-topics
title titolo del blocco varia stringa tag-topics, category-list, top-contributors
excludedGroupNames esclude gruppi specificati nomi gruppo top-contributors
order ordina i contributori Stringa (likes_received o likes_given) top-contributors
period periodo temporale per i top contributori annuale tutti, annuale, trimestrale, mensile, settimanale, giornaliero top-contributors
upcomingDays eventi iniziati prima del valore fornito 180 numero upcoming-events-list
timeFormat formato data/ora dell’evento LT formato momentjs upcoming-events-list

Impostazioni

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

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

Screenshot

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


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

63 Mi Piace
Discourse Gamification
Sidebar for Subcategories
Add User leaderboard in sidebar
FKB Pro - Social theme
Setup Continuous Integration using GitHub Actions
Blogroll (feature request)
Topic List Previews (TLP)
Discourse Bars :beers: :cocktail: (a sidebar framework)
How to include a YouTube video or video widget on the community home page?
How to extend the Discourse sidebar?
Alternate presentation of sub-categories which puts the _top_ category first?
Adding a recent comments widget
Top Posters Widget?
FKB Pro - Social theme
Looking for the perfect theme
Discourse Bars :beers: :cocktail: (a sidebar framework)
Discourse Bars :beers: :cocktail: (a sidebar framework)
Add right sidebar gamification mini-leaderboard
Add right sidebar gamification mini-leaderboard
Pyx's Modern Theme
Custom Components -- add button or text at any plugin outlet
Adding ‘hot topics’ to the Sidebar
FKB Pro - Social theme
Homepage Blocks
Topic List Excerpts
🏷️ Bars Tag List Component
Discourse Bars :beers: :cocktail: (a sidebar framework)
When to switch themes/plugins to `.gjs`?
FKB Pro - Social theme
Recent replies takes 2 seconds to display
Leaderboard in homepage
Creating and installing plugins?
Discourse Gamification Plugin in the Header
Customizing your site with existing theme components
Discourse Calendar updated to use fullcalendar 6
Creating and managing events
I'm getting errors when I switch categories too quickly
目前我感觉看到的最好看的Discourse主题,有没有谁能爱心奉献一个
FKB Pro - Social theme
Displaying tags along with categories
Discourse Sidebar Blocks
Tag Icons + Tag Banners + Right Sidebar Blocks
Sidebar for Subcategories
Connectors not rendering
Creating a Top 20 leaderboard for a specific date range
How do you force keep open the sidebar?
Add social media handles on home page

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