¿Cómo mostrar las respuestas y las vistas en la sección de categorías? Con una etiqueta que diga ‘respuestas’ y ‘vistas’. Se adjunta una captura de pantalla con la ubicación.
No creo que nadie haya construido esto todavía, pero si necesitas que se haga rápido, prueba el Marketplace .
¿Hay algún recurso que pueda ayudarme a construirlo yo mismo o alguien que pueda guiarme? No tengo prisa.
Probablemente te saldrá bien creando un Componente de Tema.
Parece que los datos ya están en el 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
El serializer incluye un 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
Así que los datos deberían pasarse al modelo de Ember.
Necesitas revisar las plantillas.
Al adentrarte en ellas, llegarás a esto:
Luego, más abajo, a esto:
Y finalmente a esto:
Probablemente esta sea la que necesites modificar.
Podrías consultar esto para obtener algunas ideas:
{{#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
Esto no es del todo sencillo para alguien que no esté acostumbrado, pero persevera y lograrás que funcione.
Sin embargo, considera dar pasos pequeños. Piensa en hacer un cambio más simple primero para acostumbrarte a hacerlo.
Este fragmento de código muestra las vistas en la pestaña más reciente, no en la pestaña de categorías. ¿Hay alguna forma sencilla de que también funcione en la pestaña de categorías?
Sospecho que solo necesitas cambiar una o dos plantillas: una para el encabezado y otra para cada elemento de la lista de temas.
¿Has probado agregar esto?:
<td class="num views {{topic.viewsHeat}}">{{number topic.views numberKey="views_long"}}</td>
No puedo garantizar que funcione sin ajustes, pero debería ponerte en el camino correcto.
Asegúrate de entender los conceptos básicos de cómo funciona Ember. Al menos, lee esta sección de las Guías: Templates are HTML - Components - Ember Guides