Como exibir respostas e visualizações na seção de categorias? Com um rótulo dizendo ‘respostas’ e ‘visualizações’. Postado um print com a localização
Acho que ninguém ainda construiu isso, mas se você precisa que seja feito rapidamente, tente o Marketplace .
Existem recursos que podem me ajudar a construí-lo sozinho ou alguém que possa me orientar no processo? Não estou com pressa.
merefield
(Robert)
Novembro 5, 2020, 12:23pm
6
Você provavelmente conseguirá criar um Componente de Tema.
Parece que os dados já estão no Serializer:
if topics_filter == :latest
result.topic_list = TopicQuery.new(current_user, topic_options).list_latest
elsif topics_filter == :top
result.topic_list = TopicQuery.new(nil, topic_options).list_top_for(SiteSetting.top_page_default_timeframe.to_sym)
end
result.topic_list.draft = result.category_list.draft
result.topic_list.draft_key = result.category_list.draft_key
result.topic_list.draft_sequence = result.category_list.draft_sequence
render_serialized(result, CategoryAndTopicListsSerializer, root: false)
end
def required_param_keys
[:name]
end
def required_create_params
required_param_keys.each do |key|
params.require(key)
end
O serializer inclui um TopicListSerializer:
# frozen_string_literal: true
class CategoryAndTopicListsSerializer < ApplicationSerializer
has_one :category_list, serializer: CategoryListSerializer, embed: :objects
has_one :topic_list, serializer: TopicListSerializer, embed: :objects
has_many :users, serializer: BasicUserSerializer, embed: :objects
has_many :primary_groups, serializer: PrimaryGroupSerializer, embed: :objects
def users
users = object.topic_list.topics.map do |t|
t.posters.map { |poster| poster.try(:user) }
end
users.flatten!
users.compact!
users.uniq!(&:id)
users
end
def primary_groups
groups = object.topic_list.topics.map do |t|
This file has been truncated. show original
Portanto, os dados devem ser passados para o modelo Ember.
Você precisa examinar os templates.
Ao navegar por eles, chega-se a este:
Em seguida, a este:
E finalmente a este:
Este provavelmente é o que você precisa modificar.
Você pode consultar este para obter algumas ideias:
{{#if bulkSelectEnabled}}
<td class="bulk-select">
<input type="checkbox" class="bulk-select">
</td>
{{/if}}
{{!--
The `~` syntax strip spaces between the elements, making it produce
`<a class=topic-post-badges>Some text</a><span class=topic-post-badges>`,
with no space between them.
This causes the topic-post-badge to be considered the same word as "text"
at the end of the link, preventing it from line wrapping onto its own line.
--}}
<td class='main-link clearfix' colspan="1">
<span class='link-top-line'>
{{~raw-plugin-outlet name="topic-list-before-status"}}
{{~raw "topic-status" topic=topic}}
{{~topic-link topic class="raw-link raw-topic-link"}}
{{~#if topic.featured_link}}
{{~topic-featured-link topic}}
This file has been truncated. show original
Isso não é totalmente simples para quem não está acostumado, mas persista e você conseguirá fazer funcionar.
No entanto, considere dar passos pequenos. Pense em uma mudança mais simples primeiro para se acostumar a fazer isso.
Este trecho de código exibe as visualizações na aba mais recentes, e não na aba categorias. Existe alguma maneira fácil de fazê-lo funcionar também na aba categorias?
merefield
(Robert)
Novembro 5, 2020, 3:13pm
8
Suspeito que você só precise alterar um ou dois modelos: um para o cabeçalho e outro para cada item da lista de tópicos.
Você já tentou adicionar isso?:
<td class="num views {{topic.viewsHeat}}">{{number topic.views numberKey="views_long"}}</td>
Não posso garantir que funcione imediatamente, mas deve colocá-lo no caminho certo.
Certifique-se de entender os fundamentos de como o Ember funciona. Talvez seja bom ler, como mínimo, esta seção dos Guias: Templates are HTML - Components - Ember Guides