تغيير طرق العرض إلى إنشاء تاريخ؟

/latest (وكل شيء آخر) يبدو كالتالي:

الردود تخبرنا بمدى نشاط الموضوع، والنشاط متى حدث شيء ما آخر مرة. هذه قطع مفيدة من البيانات. لكن المشاهدات… يمكن أن تكون قيمة مثيرة للاهتمام للمسؤولين والمستخدم الأصلي، لكنها لا تعطي أي قيمة للمستخدم العادي — فهم لا ينظرون إليها ويفكرون “حسنًا، لا يمكن أن يكون موضوعًا مثيرًا للاهتمام لأنه لم يفتحه سوى قليل” (أو العكس).

ولكن إذا كان بإمكاننا الحصول على يوم الإنشاء/البدء هناك، فسوف يخبرنا على الفور ما إذا كان الموضوع قديمًا جدًا أم جديدًا تمامًا.

التقطت تلك لقطة الشاشة لأنني أجبت على هذا الموضوع. كان بإمكاني تركه إذا كنت أعرف أنه موضوع قديم إلى حد ما — لذا، بالنسبة للمناقشة، فإن عرض هذا التاريخ يمكن أن يكون سيفًا ذا حدين، أعرف ذلك.

يمكن تغييره بمكون سمة، أظن. ولكن ما مدى صعوبة المهمة؟

وبـصعوبة أعني… هل هناك شخص يريد القيام بذلك مجانًا :wink: لا أستطيع البرمجة. أنا دكتوراه في النسخ واللصق، لا شيء آخر. وبالتأكيد ليس لدي ميزانية.

ولكن أود أن أعرف أيضًا ما إذا كنت الوحيد الذي يعتقد أن عرض أعداد المشاهدات يتم في الغالب لفضول المسؤولين (يمكننا الحصول على السجلات والمشاهدات بشكل أفضل عبر SQL، على سبيل المثال) وملء المساحة الفارغة، ولهذا السبب يمكننا استخدام نفس المساحة بشكل أكثر… بطريقة أكثر إنتاجية :wink:

3 إعجابات

مرحباً جاكي،

لست متأكدًا مما إذا كنت لا تزال بحاجة إلى هذا، ولكن إليك!
يمكنك استبدال عمود المشاهدات عن طريق الكتابة فوق القوالب ذات الصلة (topic-list-header و topic-list-item).

للأسف، يأتي مع تحذير أنه يجب عليك نسخ ولصق الكثير من التعليمات البرمجية الأصلية، والتي قد لا تعمل بشكل صحيح اعتمادًا على السمة/المكونات الإضافية/المكونات الخاصة بك. أيضًا، قد تحتاج إلى تحديثها إذا قامت Discourse بتحديث تلك الأجزاء.

إليك التعليمات البرمجية التي يمكنك نسخها ولصقها في مكون:

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>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>

ملاحظة: له نفس العنوان عند التحويم مثل النشاط، والنقر على التاريخ يعيد التوجيه إلى بداية الموضوع.

إعجاب واحد (1)

شكرًا!

يعمل بشكل جيد.

تحذير بسيط، مع ذلك

إنه يعطل إلى حد ما إضافة معاينة قائمة الموضوعات.

  • أولاً - كان هذا الرمز لفتة لطيفة حقًا ويفعل ما هو متوقع. هذا في الواقع أكثر مما كنت آمله.
  • ثانيًا - اعتمادًا على كيفية عرض المنتدى للتواريخ الأطول (أستخدم dd.mm.yy)، لا يوجد الكثير من المساحة الخالية إذا كان هذا وهذا و TLP قيد التشغيل في نفس الوقت. في أي حال من الأحوال هو وضع هذا أو ذاك، ولكن ليس كلاهما.
  • ثالثًا - معاينة قائمة الموضوعات هي إضافة معقدة حقًا، على ما أعتقد. الصراعات معها سهلة الإنشاء والحصول عليها. مرة أخرى: مسألة اختيار.
إعجاب واحد (1)

شكراً على الاختبار!

إذا كنت تستخدم Topic List Previews (TLP) (إصدار المكون الإضافي مهمل)، يمكنك نسخ ولصق ما يلي باستخدام topic-list-item code من المستودع.

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'>
    {{#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>

أخبرني إذا كان هذا يعمل لديك. :slight_smile:

كلاهما. المكون الإضافي الجانبي ليس مهملًا، أليس كذلك؟

لكن سأجرب ذلك لاحقًا الليلة. إنها تقريبًا الساعة 5 مساءً هنا وهذا يعني أنني يجب أن أبدأ في تسخين الساونا :wink: لذا، أهم الأشياء أولاً :rofl:

(وللمشرفين والإداريين: هذا ليس خارج الموضوع، بل تجربة مستخدم في العالم الحقيقي…)

نعم، المكون الإضافي Sidecar يكمل مكون السمة، لا توجد مشكلة هنا.

إعجاب واحد (1)