Comment ajouter un extrait de sujet à tous mes sujets

Bonjour à la communauté,

En bidouillant un peu Discourse, je me rends compte que seuls les sujets épinglés affichent l’attribut excerpt. Bien que je puisse mettre à jour le sérialiseur du sujet pour inclure cet attribut, je souhaite éviter de modifier le backend, car cela rend la maintenance plus complexe que de simplement ajuster le client.

Ma question est donc la suivante :
Qu’est-ce qui différencie les sujets épinglés des sujets standards, au point que seuls les épinglés puissent afficher l’extrait ?

Une image vaut mille mots. Voici mon environnement local sur la dernière page : comme vous pouvez le voir, seul le sujet épinglé affiche l’extrait. Pourquoi ? Et comment puis-je modifier cela en utilisant un thème Discourse ?

Il me semble improbable que ce ne soit pas possible, puisque ces extraits sont activés lorsque nous épinglons un sujet. Je suppose que ce dont j’ai besoin, c’est de modifier la requête effectuée par la page de découverte des sujets afin qu’elle demande toujours l’extrait… mais honnêtement, même après avoir déjà un peu bidouillé Discourse, j’ai encore du mal à comprendre comment circulent les données.

Des documents expliquant le flux de données dans Discourse seraient également les bienvenus.

Merci beaucoup !!

Un thème peut désormais opter pour les extraits ! Il s’agit d’un changement très récent et je ne pense pas que nous l’ayons encore documenté dans les guides.

Consultez cet exemple :

Très bien, @Falco

J’allais justement répondre à Alexis, mais j’ai vu que vous étiez en train de taper.

Pour répondre un peu à sa question générale, l’inclusion des données est souvent déterminée par le sérialiseur en vigueur.

En vérifiant pour cet exemple, j’ai trouvé : discourse/app/serializers/listable_topic_serializer.rb at 094ddb1c1ffcd305e841dfa1efd6981507519054 · discourse/discourse · GitHub

et plus précisément :

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

Ce qui trahit un peu la réponse :slight_smile:

Je m’excuse profondément d’arriver si tard dans la conversation pour dire merci ! hahaha. Mais bon, merci beaucoup d’être intervenus si rapidement. J’ai lu votre message dès que vous l’avez publié, mais j’étais sur mon téléphone et je n’ai pas pu me connecter à la plateforme. Merci ! :blush:

Pour ceux qui trouvent ce sujet via une recherche, vous pouvez maintenant utiliser : Topic List Excerpts