Показывать лайки в списках тем и категориях — тема Redditish

Я использую тему в стиле Reddit. Есть ли способ отображать количество лайков для сообщения при просмотре тем на главной странице, в категориях и т. д.? Я попробовал это решение, но оно не работает.

Это сообщение было опубликовано довольно давно.

Возможно, вам нужен компонент темы Add Likes Column

Я использую Redditish https://www.carptalk-online.co.uk/, так что не уверен, то ли мне нужно

Скорее всего, нет, потому что эта тема переопределяет стандартный список тем. Если у вас уже есть что-то, отличающееся от стандартного, решения, подходящие для стандартной конфигурации, скорее всего, не сработают. Именно поэтому важно сообщать людям, когда вы просите о помощи.

Вам, вероятно, понадобится форк этой темы, который поддерживает данную функцию, или же стоит попросить автора добавить её (возможно, в качестве опциональной настройки, включаемой через параметр).

Спасибо, Moin. Я сделал форк темы и отредактировал файл javascripts/discourse/connectors/topic-list-item/item.gjs

Надеюсь, это кому-нибудь поможет.

  1. Я добавил это:
get likeCount() {
  return (
    this.args.outletArgs.topic.like_count ??
    this.args.outletArgs.topic.likeCount ??
    0
  );
}

Ниже этого:

@action
share(event) {
  event.stopPropagation();

  this.modal.show(ShareTopicModal, {
    model: { topic: this.args.outletArgs.topic },
  });
}

get likeCount() {
  return (
    this.args.outletArgs.topic.like_count ??
    this.args.outletArgs.topic.likeCount ??
    0
  );
}

<template>
  1. Затем я изменил это:
<div class="custom-topic-layout_bottom-bar">
  <span class="reply-count">
    {{icon "reply"}}
    {{@outletArgs.topic.replyCount}}
    {{i18n "replies"}}
  </span>

На это:

<div class="custom-topic-layout_bottom-bar">
  <span class="like-count">
    {{icon "heart"}}
    {{this.likeCount}}
    Лайки
  </span>

  <span class="reply-count">
    {{icon "reply"}}
    {{@outletArgs.topic.replyCount}}
    {{i18n "replies"}}
  </span>

может быть, даст нам скриншот, чтобы показать, как это выглядит?