Blöcke der rechten Seitenleiste

:discourse2: Zusammenfassung Right Sidebar Blocks zeigt eine Seitenleiste rechts neben den Themenlisten mit einer konfigurierbaren Liste von Blöcken an.
:eyeglasses: Vorschau Vorschau im Discourse Theme Creator
:hammer_and_wrench: Repository-Link https://github.com/discourse/discourse-right-sidebar-blocks
:open_book: Neu bei Discourse-Themes? Einsteiger-Leitfaden zur Verwendung von Discourse-Themes

Dieses Theme-Component installieren

Funktionen

Das Component enthält einige Blöcke, die du in der Seitenleiste anzeigen kannst:

  • popular-tags
  • top-contributors
  • recent-replies
  • category-topics
  • custom-html
  • category-list
  • subcategory-list
  • upcoming-events-list*
  • minimal-gamification-leaderboard**

:information_source: Das Benutzerverzeichnis muss aktiviert sein, damit die Liste der Top-Beitragenden gefüllt wird. Wenn deine Liste leer ist, suche in deinen Admin-Einstellungen nach enable user directory, um sicherzustellen, dass es aktiviert ist.

* Nur verfügbar, wenn mit dem Kalender-Plugin verwendet.
** Nur verfügbar, wenn mit dem Gamification-Plugin verwendet.

Du kannst auch andere Ember-Components als Blöcke verwenden, du musst nur den korrekten Namen verwenden. Zum Beispiel enthält der Core eine signup-cta Ember-Component, und du kannst diese unverändert in der Seitenleiste verwenden. Beachte, dass du keine Components verwenden kannst, die einen bestimmten Satz von Parametern erwarten, aber du kannst deine eigene Ember-Component in einem separaten Theme erstellen und sie einfach über ihren Namen in der blocks-Einstellung der Seitenleiste referenzieren.

Du kannst einige Funktionen für die bereitgestellten Blöcke über Parameter steuern.

name description default value available for
count begrenzt die Anzahl der Ergebnisse variiert Zahl alle außer custom-html
excerptLimit begrenzt die Länge jedes Antwort-Auszugs 150 Zahl recent-replies
id Kategorie-ID Kategorie-ID (category-list verwendet komma-getrennt) category-topics, category-list
content anzuzeigende Inhalte HTML custom-html
scopeToCategory zeigt nur in Kategorie oder Unterkategorie X an Kategorie-ID popular-tags
excludedTags Liste der ausgeschlossenen Tags Tag-Namen popular-tags
displayInSpecificCategories Liste der Kategorien, in denen das Widget angezeigt werden soll alle komma-getrennte Zahlen popular-tags
id Leaderboard-ID Zahl minimal-gamification-leaderboard
tag welcher Tag angezeigt werden soll Tag-Name tag-topics
period Zeitraum der Top-Themen wöchentlich all, yearly, quarterly, monthly, weekly, daily top-topics
title Titel des Blocks variiert String tag-topics, category-list, top-contributors
excludedGroupNames schließt bestimmte Gruppen aus Gruppen-Namen top-contributors
order sortiert die Beitragenden String (likes_received oder likes_given) top-contributors
period Zeitraum für Top-Beitragende jährlich all, yearly, quarterly, monthly, weekly, daily top-contributors
includeSubcategories schließt Unterkategorie-Events ein false false, true upcoming-events-list
upcomingDays Events, die vor dem angegebenen Wert gestartet sind 180 Zahl upcoming-events-list
timeFormat Format des Event-Datums / -Uhrzeit LT momentjs Format upcoming-events-list

Einstellungen

Name Beschreibung
blocks
show in routes Nur für fortgeschrittene Benutzer: Seitenleiste auf die ausgewählten Routen beschränken.
Beispiele: discovery.latest, discovery.unread, discovery.new, discovery.top, tag.show, “c/category-slug” (für Kategorien), “tag/sample-tag” (für Tags).
Wenn leer, wird die Seitenleiste auf allen Listen-Routen angezeigt.

blocks: Wähle die anzuzeigenden Blöcke aus und passe ihre Reihenfolge an

show_in_routes: Entscheide, auf welchen Themenlisten-Routen die Seitenleiste angezeigt werden soll. Standardmäßig wird sie auf allen Discovery-Routen außer /categories angezeigt.

Übersetzung Standard
top_contributors.heading Top-Beitragende
top_contributors.view_all Alle anzeigen
popular_tags.heading Beliebte Tags
popular_tags.view_all Alle anzeigen
recent_replies.heading Letzte Antworten
subcategory_list.heading Unterkategorien
top_topics.heading Top-Themen
category_list.heading Kategorien

Screenshots

Beachte, dass das Component nur mit sehr grundlegendem Styling kommt; es wird angenommen, dass Admins, die das Component verwenden, ihr eigenes Styling in ihrem eigenen Theme hinzufügen.

Interaktionen

Wenn es in Verbindung mit dem Discourse Calendar-Plugin verwendet wird, kannst du einen Seitenleisten-Block für deine kommenden Events hinzufügen. Der Blockname ist upcoming-events-list, und das Datumsformat kann nach dieser Syntax angepasst werden (zum Beispiel MMMM D, YYYY). Du kannst auch konfigurieren, wie weit in die Zukunft geschaut werden soll und ob Unterkategorie-Events eingeschlossen sind (siehe Tabelle oben).


:discourse2: Von uns gehostet? Theme-Components sind für unsere Pro-, Business- und Enterprise-Pläne verfügbar.

64 „Gefällt mir“
Discourse Gamification
Sidebar for Subcategories
Add User leaderboard in sidebar
FKB Pro - Social theme
Setup Continuous Integration using GitHub Actions
Blogroll (feature request)
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?
Discourse Bars :beers: :cocktail: (a sidebar framework)
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
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
Discourse Gamification Plugin in the Header
Discourse Calendar updated to use fullcalendar 6
I'm getting errors when I switch categories too quickly
目前我感觉看到的最好看的Discourse主题,有没有谁能爱心奉献一个
Discourse Sidebar Blocks
Tag Icons + Tag Banners + Right Sidebar Blocks
Adding ‘hot topics’ to the Sidebar
Hide admin user from user-directory and top contributors
Feedback wanted: userscript to theme component/plugin, or possible core sidebar browsing idea?
Have the upcoming-events block respect the subcategory filter when in Category lists
Topic List Previews (TLP)
Custom Components -- add button or text at any plugin outlet
Top Posters Widget?
Creating a Top 20 leaderboard for a specific date range
Connectors not rendering
Sidebar for Subcategories
Displaying tags along with categories
FKB Pro - Social theme
Creating and managing events
Customizing your site with existing theme components
Creating and installing plugins?
FKB Pro - Social theme
Adding a recent comments widget
How do you force keep open the sidebar?
Add social media handles on home page

Was sollte ich im Parameter „name“ hinzufügen, wenn ich benutzerdefiniertes HTML verwende?

1 „Gefällt mir“

Großartig, das als #offizielle Theme-Komponente zu sehen! Es eröffnet sicherlich eine neue Welt der Anpassungen.

Ich habe 2 Fragen:

  1. Ich möchte in der Seitenleiste die /latest-Themenliste so anzeigen, wie category-topics sie anzeigt. Ist das möglich? recent-replies kommt dem schon ziemlich nahe (besonders wenn der Auszug ausgeblendet ist), aber ich möchte wirklich auch Themen ohne Antworten einbeziehen.

  2. Ist es möglich, die Seitenblöcke nur in bestimmten Kategorien anzuzeigen? Was ich meine ist, dass nur die Route angezeigt wird, die die Kategorie-Themenliste ist, und das nur für die von mir angegebenen Kategorien.

1 „Gefällt mir“

Entschuldigung, die Dokumentation hierfür ist mangelhaft (ich werde sie jetzt aktualisieren). Der Name des Parameters für custom-html ist content.

Wir haben nichts Fertiges für die vollständige /latest-Liste, aber Sie können Ihre eigene erstellen und sie mit ihrem Namen zur Konfiguration hinzufügen. Sie sollte der Kategorie-/Tag-Liste sehr ähnlich sein, nur ohne Filter.

Derzeit nicht, Sie können sie nicht nur in bestimmten Kategorien anzeigen. Sie können jedoch discovery.category in der Einstellung show in routes verwenden, die die Seitenleiste nur auf Kategorie-Routen anzeigt (aber auf allen, nicht auf einer Teilmenge).

3 „Gefällt mir“

Vielen Dank, ist es möglich, die Seitenleiste auch in jedem Thema einzuschließen?

4 „Gefällt mir“

Ich habe gerade eine Einschränkung der Komponente festgestellt, insbesondere bei den Blöcken category-topics und subcategory-list, und zwar, dass das Hinzufügen mehrerer Blöcke dieser Typen mit unterschiedlichen id immer dazu führte, dass sie die Themen/Unterkategorien des obersten Blocks im Launch-Editor (vermutlich) anzeigen.

Ein Fehler, den ich gerade habe, ist, dass nach dem Herumspielen mit dem subcategory-list-Block etwa 10-12 Mal, er auf unserer Staging-Website überhaupt nicht mehr angezeigt wird (siehe Video unten).

2 „Gefällt mir“

Der Block subcategory-list nimmt überhaupt keinen Parameter entgegen. Wenn er verwendet wird, zeigt er die Unterkategorien der aktuellen Kategorie an, basierend darauf, zu welcher aktuellen Kategorie Sie navigiert sind … daher macht es keinen Sinn, diesen Block mehr als einmal zu verwenden.

Deshalb wird die subcategory-list in Ihrem Video auch nicht angezeigt. Wenn Sie sich auf einer Nicht-Kategorie-Route befinden, wird dieser Block nicht angezeigt.

Für category-topics sehe ich in Ihrem Video dieselbe ID zweimal verwendet: 7. Ich habe einen lokalen Test durchgeführt und mit verschiedenen IDs werden unterschiedliche Themen angezeigt (d. h. ich kann den gemeldeten Fehler nicht reproduzieren).

4 „Gefällt mir“

Hallo, vielen Dank für dieses großartige Plugin!

Ich habe eine Frage zur subcategory-list Seitenleiste: Gibt es eine Option, sie nur für eine bestimmte Kategorie anzuzeigen?

Unsere Entwickler haben sich das angesehen, und es scheint keine Parameter-ID-Unterstützung für subcategory-list zu geben. Könnten Sie das bitte hinzufügen?

2 „Gefällt mir“

Und bezüglich des top-contributors-Blocks: Gibt es eine Möglichkeit, die Ergebnisse für einen Zeitraum von einer Woche abzurufen?

2 „Gefällt mir“

Derzeit nein, diese Option gibt es nicht. Es wäre sinnvoll, sie hinzuzufügen, obwohl ich mir vorstellen könnte, dass sie mehrere IDs unterstützen sollte, damit Sie den Block für eine Liste von Kategorien (z. B. A, B und C) anzeigen können. Ich bin gerne bereit, PRs im Repo zu überprüfen. Wenn Ihre Entwickler der Meinung sind, dass sie dies hinzufügen können, wäre das großartig. (Andernfalls kann ich es zu einer Liste von “nice-to-haves” in der Theme-Komponente hinzufügen.)

Meinen Sie a) die Ergebnisse abzurufen und für eine Woche zu cachen oder b) die Top-Beitragenden der letzten Woche bei jeder Ladung abzurufen? Letzteres sollte einfach hinzuzufügen sein, Caching ist etwas kniffliger.

3 „Gefällt mir“

@pmusaraj können Sie\n\n> padding: 3px 4px 3px 4px\n\nfür die beliebten Tags hinzufügen?\n\nDanke.

1 „Gefällt mir“

Hallo @pmusaraj, vielen Dank für deine Antwort!

Unser Entwickler hat die PRs hier geteilt, bitte schau sie dir an: 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

Die zweite Variante wäre perfekt! Wir müssen tatsächlich die Liste der Top-Beitragenden der letzten Woche anzeigen. Vielen Dank!

4 „Gefällt mir“

Die Komponente hat absichtlich sehr wenig Styling, damit die Benutzer ihre eigenen Stile in ihren eigenen Themes/Theme-Komponenten hinzufügen können.

Danke, diese PR ist großartig und wurde jetzt zusammengeführt! Ich werde auch bald daran arbeiten, die Konfigurierbarkeit für den Top-Contributors-Block hinzuzufügen (oder wenn jemand anderes schneller ist, freue ich mich über eine PR).

3 „Gefällt mir“

Ich bin mir nicht sicher, wo ich den Code dafür finden kann – könnten Sie mich bitte dorthin leiten? Ich würde gerne die Kategorie-Themen modifizieren, sodass das Fehlen einer ID alle Kategorien ergibt (und somit effektiv die /latest-Liste).

Das wäre großartig, wenn das in allen Blöcken vorhanden wäre!

2 „Gefällt mir“

@pmusaraj Großartig! Vielen Dank für deine Hilfe, ich freue mich darauf, den Top-Beitrags-Block zu verwenden :slight_smile:

1 „Gefällt mir“

Hallo! Ich bin mir nicht sicher, ob diese Komponente Fehler verursacht. Aber sobald sie deaktiviert ist, werden keine weiteren Fehler mehr angezeigt. :thinking: Könnte sich das jemand ansehen, um mir bei der Fehlersuche zu helfen? Ich wäre Ihnen sehr dankbar.

Wenn sie aktiviert ist, würde mich beim Besuch eines bestimmten Themas auf dem Desktop das Klicken auf das Website-Logo in der oberen Leiste, um zur Homepage zurückzukehren, zu einem nie verschwindenden Ladebildschirm führen und Fehler in der Browserkonsole auslösen (wie unten). Keine zugehörigen Fehlerprotokolle im Pfad mysite/logs zu sehen.

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
(anonym) @ 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
(anonym) @ 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 (asynchron)
n @ backburner.js:28
flush @ index.js:46
_scheduleAutorun @ backburner.js:1218
_end @ backburner.js:1009
_boundAutorunEnd @ backburner.js:648
Promise.then (asynchron)
n @ backburner.js:28
flush @ index.js:46
_scheduleAutorun @ backburner.js:1218
_end @ backburner.js:1009
_boundAutorunEnd @ backburner.js:648
Promise.then (asynchron)
n @ backburner.js:28
flush @ index.js:46
_scheduleAutorun @ backburner.js:1218
_end @ backburner.js:1009
_boundAutorunEnd @ backburner.js:648
Promise.then (asynchron)
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
(anonym) @ hooks.js:247
dispatch @ jquery.js:5430
_.handle @ jquery.js:5234
frame:251 Sie haben das Flag abgelehnt, aber Drittanbieter-Cookies sind in Ihrem Browser deaktiviert, sodass das Flag beim nächsten Besuch der Seite wieder angezeigt wird.

Ich sehe Informationen über diese Komponente in der JS-Datei, die in der ersten Zeile des obigen Fehlerprotokolls erwähnt wird.

// Zeile 96-103 von 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 „Gefällt mir“

Ah, ja, Entschuldigung dafür. Es sollte jetzt behoben sein, Sie müssen nur das neueste Update der Theme-Komponente abrufen.

3 „Gefällt mir“

Danke! Funktioniert jetzt super.

3 „Gefällt mir“

Hallo @pmusaraj, entschuldige, wenn ich aufdringlich wirke – ich wollte nur wissen, ob es einen Zeitplan für diese Implementierung gibt.

Es wäre eine großartige Ergänzung :slight_smile:

Vielen Dank!

3 „Gefällt mir“

Vielen Dank für diese großartige Komponente!

Mir ist aufgefallen, dass meine gesamte Kopf- und Fußzeile global verschwindet, wenn ich diese aktiviert habe (alles in meiner header.html und footer.html). War das beabsichtigt? Aber um dies zu umgehen, muss ich die PluginAPI verwenden, um manuell eine Kopf- und Fußzeile hinzuzufügen.

2 „Gefällt mir“