So fügen Sie ein Themen-Exzerpt zu allen Ihren Themen hinzu

Hallo Community,

Ich habe ein wenig am Discourse-System herumgehackt und festgestellt, dass nur die angepinnten Themen das Attribut excerpt bereitstellen. Zwar könnte ich den Serialisierer für Themen anpassen, um dieses Attribut einzufügen, aber ich möchte Backend-Eingriffe vermeiden, da diese schwerer zu warten sind als reine Client-Anpassungen.

Die Frage lautet:
Was unterscheidet angepinnte Themen von normalen Themen, sodass nur bei den angepinnten Themen das Excerpt angezeigt wird?

Ein Bild sagt mehr als tausend Worte. Dies ist meine lokale Umgebung auf der neuesten Seite. Wie Sie sehen können, zeigt nur das angepinnte Thema das Excerpt. Warum? Und wie kann ich das mit einem Discourse-Theme ändern?

Es erscheint mir falsch anzunehmen, dass dies nicht möglich ist, da diese Excerpts ja gerade dann aktiviert werden, wenn ein Thema angepinnt wird. Ich vermute, ich muss die Abfrage der Entdeckungsseite für Themen anpassen, damit sie immer das Excerpt abfragt. Ehrlich gesagt fällt es mir jedoch auch nach einiger Erfahrung beim Hacking von Discourse noch schwer, den Datenfluss innerhalb von Discourse vollständig zu verstehen.

Eine Dokumentation zum Datenfluss in Discourse wäre ebenfalls hilfreich.

Vielen Dank!!

Ein Theme kann sich jetzt für Auszüge entscheiden! Dies ist eine sehr aktuelle Änderung, und ich glaube nicht, dass sie bereits in den Anleitungen dokumentiert ist.

Hier findest du ein Beispiel:

Sehr gut, @Falco

Ich wollte gerade Alexis antworten, habe aber gesehen, dass ihr beide schreibt.

Um seine allgemeine Frage kurz zu beantworten: Die Einbeziehung von Daten wird oft vom verwendeten Serializer bestimmt.

Als ich für dieses Beispiel nachgeschaut habe, habe ich Folgendes gefunden: discourse/app/serializers/listable_topic_serializer.rb at 094ddb1c1ffcd305e841dfa1efd6981507519054 · discourse/discourse · GitHub

Und zwar speziell:

  def include_excerpt?
    pinned || SiteSetting.always_include_topic_excerpts || ThemeModifierHelper.new(request: scope.request).serialize_topic_excerpts
  end

Das verrät es schon so ziemlich :slight_smile:

Ich möchte mich aufrichtig dafür entschuldigen, dass ich so spät in das Gespräch komme, um Danke zu sagen! Hahaha. Aber gut, vielen Dank, dass ihr so schnell eingestiegen seid. Ich habe es sofort gelesen, als ihr es gepostet habt, aber ich war auf meinem Handy und konnte mich nicht bei der Plattform anmelden. Danke! :blush:

Für alle, die dieses Thema über eine Suche finden, können Sie jetzt Folgendes verwenden: Topic List Excerpts