¿Cambiar vistas a crear fecha?

/latest (y todo lo demás) se ve algo así:

Replies (Respuestas) indica cuán activo es un tema y Activity (Actividad) cuándo ocurrió algo por última vez. Son datos útiles. Pero Views (Vistas)… puede ser un valor interesante para administradores y el OP, pero no aporta ningún valor a un usuario normal — no lo miran y piensan “bueno, no puede ser un tema interesante porque pocos lo han abierto” (o viceversa).

Pero si pudiéramos tener allí el día de creación/inicio, nos diría de inmediato si un tema es antiguo o completamente nuevo.

Tomé esa captura de pantalla porque respondí a ese tema. Podría haberlo dejado pasar si hubiera sabido que era un tema bastante antiguo; así que, para la discusión, mostrar esa fecha puede ser un arma de doble filo, lo sé.

Se puede cambiar con un componente de tema, supongo. Pero, ¿qué tan difícil es?

Y con difícil me refiero a… ¿Hay alguien que quiera hacerlo pro bono :wink: No sé programar. Soy doctor en copiar y pegar, nada más. Y definitivamente no tengo presupuesto.

Pero también me gustaría saber si soy el único que piensa que mostrar la cantidad de vistas se hace principalmente por curiosidad del administrador (podemos obtener registros y vistas mejor a través de SQL, por ejemplo) y para llenar espacio vacío, y que por eso podríamos usar el mismo espacio de una manera un poco más… ¡más productiva! :wink:

3 Me gusta

Hola Jakke,

¡No estoy seguro de si todavía lo necesitas, pero aquí tienes!
Puedes reemplazar la columna de vistas sobrescribiendo las plantillas relacionadas (topic-list-header y topic-list-item).

Desafortunadamente, tiene la advertencia de que debes copiar y pegar mucho del código original, lo que puede no funcionar correctamente dependiendo de tu tema/plugins/componentes. Además, es posible que debas actualizarlo si Discourse actualiza esas partes.

Aquí tienes el código que puedes copiar y pegar en un componente:

Head

<script type='text/x-handlebars' data-template-name='topic-list-header.raw'>
    {{raw-plugin-outlet name="topic-list-header-before"}}
    {{#if bulkSelectEnabled}}
      <th class="bulk-select topic-list-data">
        {{#if canBulkSelect}}
          {{raw "flat-button" class="bulk-select" icon="list" title="topics.bulk.toggle"}}
        {{/if}}
      </th>
    {{/if}}
    {{raw "topic-list-header-column" order='default' name=listTitle bulkSelectEnabled=bulkSelectEnabled showBulkToggle=toggleInTitle canBulkSelect=canBulkSelect canDoBulkActions=canDoBulkActions}}
    {{raw-plugin-outlet name="topic-list-header-after-main-link"}}
    {{#if showPosters}}
      {{raw "topic-list-header-column" order='posters' ariaLabel=(i18n "category.sort_options.posters")}}
    {{/if}}
    {{raw "topic-list-header-column" sortable=sortable number='true' order='posts' name='replies' ariaLabel=(i18n "sr_replies")}}
    {{#if showLikes}}
      {{raw "topic-list-header-column" sortable=sortable number='true' order='likes' name='likes' ariaLabel=(i18n "sr_likes")}}
    {{/if}}
    {{#if showOpLikes}}
      {{raw "topic-list-header-column" sortable=sortable number='true' order='op_likes' name='likes' ariaLabel=(i18n "sr_op_likes")}}
    {{/if}}
    {{raw "topic-list-header-column" sortable=sortable number='true' order='created' name='created' ariaLabel=(i18n "sr_created")}}
    {{raw "topic-list-header-column" sortable=sortable number='true' order='activity' name='activity' ariaLabel=(i18n "sr_activity")}}
    {{raw-plugin-outlet name="topic-list-header-after"}}
</script>

<script type='text/x-handlebars' data-template-name='list/topic-list-item.raw'>
    {{raw-plugin-outlet name="topic-list-before-columns"}}
    
    {{#if bulkSelectEnabled}}
      <td class="bulk-select topic-list-data">
        <label for="bulk-select-{{topic.id}}">
          <input type="checkbox" class="bulk-select" id="bulk-select-{{topic.id}}">
        </label>
      </td>
    {{/if}}
    
    {{!--
      The `~` syntax strip spaces between the elements, making it produce
      `<a class=topic-post-badges>Some text</a><span>`
      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 topic-list-data' colspan="1">
      {{raw-plugin-outlet name="topic-list-before-link"}}
      <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}}
        {{/if}}
        {{raw-plugin-outlet name="topic-list-after-title"}}
        {{raw "list/unread-indicator" includeUnreadIndicator=includeUnreadIndicator
                                       topicId=topic.id
                                       unreadClass=unreadClass}}
        {{#if showTopicPostBadges}}
          {{raw "topic-post-badges" unreadPosts=topic.unread_posts unseen=topic.unseen url=topic.lastUnreadUrl newDotText=newDotText}}
        {{/if}}
      </span>
      <div class="link-bottom-line">
        {{#unless hideCategory}}
          {{#unless topic.isPinnedUncategorized}}
            {{raw-plugin-outlet name="topic-list-before-category"}}
            {{category-link topic.category}}
          {{/unless}}
        {{/unless}}
        {{discourse-tags topic mode="list" tagsForUser=tagsForUser}}
        {{raw "list/action-list" topic=topic postNumbers=topic.liked_post_numbers className="likes" icon="heart"}}
      </div>
      {{#if expandPinned}}
        {{raw "list/topic-excerpt" topic=topic}}
      {{/if}}
    
      {{raw-plugin-outlet name="topic-list-main-link-bottom"}}
    </td>
    
    {{raw-plugin-outlet name="topic-list-after-main-link"}}
    
    {{#if showPosters}}
      {{raw "list/posters-column" posters=topic.featuredUsers}}
    {{/if}}
    
    {{raw "list/posts-count-column" topic=topic}}
    
    {{#if showLikes}}
      <td class="num likes topic-list-data">
        {{#if hasLikes}}
          <a href='{{topic.summaryUrl}}'>
            {{number topic.like_count}} {{d-icon "heart"}}
          </a>
        {{/if}}
      </td>
    {{/if}}
    
    {{#if showOpLikes}}
      <td class="num likes">
        {{#if hasOpLikes}}
          <a href='{{topic.summaryUrl}}'>
            {{number topic.op_like_count}} {{d-icon "heart"}}
          </a>
        {{/if}}
      </td>
    {{/if}}

    <td class="num topic-list-data {{cold-age-class topic.createdAt startDate=topic.bumpedAt class=""}} activity" title="{{html-safe topic.bumpedAtTitle}}">
      <a class="post-activity" href="{{topic.url}}">
        {{raw-plugin-outlet name="topic-list-before-relative-date"}}
        {{format-date topic.createdAt format="tiny" noTitle="true"}}
      </a>
    </td>

    {{raw "list/activity-column" topic=topic class="num topic-list-data" tagName="td"}}
</script>

Nota: Tiene el mismo título al pasar el ratón que Actividad, y al hacer clic en la fecha se redirige al inicio del tema.

1 me gusta

¡Gracias!

Funciona perfectamente.

Pequeña advertencia, sin embargo

Desactiva el plugin Topic List Preview.

  • Primero: ese código fue un gesto muy amable y hace lo esperado. Es mucho más de lo que esperaba.
  • Segundo: dependiendo de cómo un foro muestre fechas largas (uso dd.mm.aa), no hay mucho espacio libre si este y TLP están activados al mismo tiempo. Es una situación de esto o aquello, pero no de ambos.
  • Tercero: Topic List Preview es un plugin realmente complejo, supongo. Los conflictos con él son muy fáciles de crear y obtener. De nuevo: cuestión de elección.
1 me gusta

¡Gracias por probar!

Si usas Topic List Previews (TLP) (la versión del plugin está obsoleta), puedes copiar y pegar lo siguiente usando topic-list-item code del repositorio.

Encabezado
<script type='text/x-handlebars' data-template-name='topic-list-header.raw'>
    {{#raw-plugin-outlet name="topic-list-header-before"}}
    {{#if bulkSelectEnabled}}
      <th class="bulk-select topic-list-data">
        {{#if canBulkSelect}}
          {{raw "flat-button" class="bulk-select" icon="list" title="topics.bulk.toggle"}}
        {{/if}}
      </th>
    {{/if}}
    {{raw "topic-list-header-column" order='default' name=listTitle bulkSelectEnabled=bulkSelectEnabled showBulkToggle=toggleInTitle canBulkSelect=canBulkSelect canDoBulkActions=canDoBulkActions}}
    {{raw-plugin-outlet name="topic-list-header-after-main-link"}}
    {{#if showPosters}}
      {{raw "topic-list-header-column" order='posters' ariaLabel=(i18n "category.sort_options.posters")}}
    {{/if}}
    {{raw "topic-list-header-column" sortable=sortable number='true' order='posts' name='replies' ariaLabel=(i18n "sr_replies")}}
    {{#if showLikes}}
      {{raw "topic-list-header-column" sortable=sortable number='true' order='likes' name='likes' ariaLabel=(i18n "sr_likes")}}
    {{/if}}
    {{#if showOpLikes}}
      {{raw "topic-list-header-column" sortable=sortable number='true' order='op_likes' name='likes' ariaLabel=(i18n "sr_op_likes")}}
    {{/if}}
    {{raw "topic-list-header-column" sortable=sortable number='true' order='created' name='created' ariaLabel=(i18n "sr_created")}}
    {{raw "topic-list-header-column" sortable=sortable number='true' order='activity' name='activity' ariaLabel=(i18n "sr_activity")}}
    {{#raw-plugin-outlet name="topic-list-header-after}}
</script>

<script type='text/x-handlebars' data-template-name='list/topic-list-item.raw'>
    {{#if bulkSelectEnabled}}
      <td class='star'>
        <input type="checkbox" class="bulk-select">
      </td>
    {{/if}}
    
    {{#if tilesStyle}}
      <div class="tiles-grid-item-content main-link">
        <div class="image">
          {{#if hasThumbnail}}
            {{raw "list/topic-thumbnail" topic=topic thumbnails=thumbnails currentUser=currentUser site=site category=category opts=thumbnailOpts}}
          {{/if}}
          <a href='{{topic.url}}'>
            <div class="image-mask" style="{{backgroundGradient}}"></div>
          </a>
        </div>
        <div class="topic-details">
          <div class="topic-header-grid">
            {{raw "list/topic-list-title" topic=topic tilesStyle=tilesStyle showTopicPostBadges=showTopicPostBadges}}
            <div class="topic-category">
              {{#if showCategoryBadge}}
                {{category-link topic.category}}
              {{/if}}
              {{#if topic.tags}}
                {{discourse-tags topic mode="list"}}
              {{/if}}
            </div>
          </div>
          {{#if showExcerpt}}
            <a href='{{topic.url}}'>
              {{raw "list/topic-excerpt" topic=topic}}
            </a>
          {{/if}}
          <div class="topic-footer">
            {{raw 'list/topic-meta' likesHeat=likesHeat title=view.title topic=topic}}
            {{raw "list/topic-users" tilesStyle=tilesStyle abbreviatePosters=abbreviatePosters posters=abbreviatedPosters posterNames=posterNames}}
            {{#if showActions}}
              {{raw "list/topic-actions" likeCount=likeCount topicActions=topicActions topic=topic}}
            {{/if}}
          </div>
        </div>
      </div>
    {{else}}
      {{~raw-plugin-outlet name="topic-list-before-columns"}}
      {{!--
        The `~` syntax strip spaces between the elements, making it produce
        `<a>Some text</a><span>`
        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 topic-list-data' colspan="1">
        {{#if hasThumbnail}}
          {{raw "list/topic-thumbnail" topic=topic thumbnails=thumbnails category=category opts=thumbnailOpts}}
        {{/if}}
        {{~raw-plugin-outlet name="topic-list-before-link"}}
        <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}}
          {{~/if}}
          {{~raw-plugin-outlet name="topic-list-after-title"}}
          {{~raw "list/unread-indicator" includeUnreadIndicator=includeUnreadIndicator
                                        topicId=topic.id
                                        unreadClass=unreadClass}}
          {{~#if showTopicPostBadges}}
            {{~raw "topic-post-badges" unreadPosts=topic.unread_posts unseen=topic.unseen url=topic.lastUnreadUrl newDotText=newDotText}}
          {{~/if}}
        </span>
        <div class="link-bottom-line">
          {{#unless hideCategory}}
            {{#unless topic.isPinnedUncategorized}}
              {{~raw-plugin-outlet name="topic-list-before-category"}}
              {{category-link topic.category}}
            {{/unless}}
          {{/unless}}
          {{discourse-tags topic mode="list" tagsForUser=tagsForUser}}
          {{#if expandPinned}}
            {{raw "list/topic-excerpt" topic=topic}}
          {{/if}}
          {{#if showActions}}
            {{raw "list/topic-actions" likeCount=likeCount topicActions=topicActions}}
          {{/if}}
          {{raw "list/action-list" topic=topic postNumbers=topic.liked_post_numbers className="likes" icon="heart"}}
        </div>
      </td>
    
      {{#if showPosters}}
        {{raw "list/posters-column" posters=topic.featuredUsers}}
      {{/if}}
    
      {{raw "list/posts-count-column" topic=topic}}
    
      {{#if showLikes}}
        <td class="num likes topic-list-data">
          {{#if hasLikes}}
            <a href='{{topic.summaryUrl}}'>
              {{number topic.like_count}} {{d-icon "heart"}}
            </a>
          {{/if}}
        </td>
      {{/if}}
    
      {{#if showOpLikes}}
        <td class="num likes">
          {{#if hasOpLikes}}
            <a href='{{topic.summaryUrl}}'>
              {{number topic.op_like_count}} {{d-icon "heart"}}
            </a>
          {{/if}}
        </td>
      {{/if}}
    
        <td class="num topic-list-data {{cold-age-class topic.createdAt startDate=topic.bumpedAt class=""}} activity" title="{{html-safe topic.bumpedAtTitle}}">
          <a class="post-activity" href="{{topic.url}}">
            {{~raw-plugin-outlet name="topic-list-before-relative-date"~}}
            {{~format-date topic.createdAt format="tiny" noTitle="true"~}}
          </a>
        </td>
    
      {{raw "list/activity-column" topic=topic class="num topic-list-data" tagName="td"}}
    {{/if}}
</script>

Avísame si esto te funciona. :slight_smile:

Ambos. El plugin sidecar no está obsoleto, ¿verdad?

Pero le daré una oportunidad un poco más tarde esta noche. Son casi las 5 de la tarde aquí y eso significa que tengo que empezar a calentar la sauna :wink: Así que, las cosas más importantes primero :rofl:

(Y para los mods y administradores: esto NO es off topic, sino experiencia de usuario en el mundo real…)

Sí, el plugin Sidecar complementa el componente del tema, no hay problema aquí.

1 me gusta