cms/article

Trang chi tiết một bài viết.

Ngoài những biến dưới đây, slot này còn nhận toàn bộ biến toàn cục.

Biến của trang

Biến Kiểu Mô tả Từ phiên bản
article Article Bài viết đang xem, kèm phần thân HTML. 1.0
article_categories ArticleCategory[] Chuyên mục của bài viết. 1.0
related_articles Article[] Bài viết liên quan (cùng chuyên mục). 1.0
tags string[] Thẻ của bài viết. 1.0
reviews Review[] Đánh giá đã duyệt của bài viết. 1.0
view_count integer Tổng lượt xem của bài viết, cộng dồn từ bảng thống kê theo tháng. 1.2
recent_articles Article[] Bài viết mới nhất, dùng cho cột bên "Tin mới nhất". 1.2
page_title string Tiêu đề SEO của trang. 1.0
page_description string Mô tả SEO của trang. 1.0

Mã đầy đủ

Toàn bộ tệp cms/article.html của bộ giao diện mặc định. Chép về templates/<bộ giao diện của bạn>/cms/article.html rồi sửa theo ý muốn.

<div class="container page-content">
  <nav class="breadcrumb">
    <a href="/">Trang chủ</a> /
    <a href="/bai-viet">Bài viết</a> /
    {% if article_categories.size > 0 %}
      <a href="/bai-viet?danh-muc={{ article_categories[0].slug }}">{{ article_categories[0].title }}</a> /
    {% endif %}
    <span>{{ article.title }}</span>
  </nav>

  <article class="article-detail">
    <header class="article-detail__header">
      <h1 class="article-detail__title">{{ article.title }}</h1>
      <div class="article-detail__meta">
        {% if article.author_name %}
          <span class="article-detail__author">{{ article.author_name }}</span>
        {% endif %}
        {% if article.published_at %}
          <time class="article-detail__date">{{ article.published_at | slice: 0, 10 }}</time>
        {% endif %}
        {% if article_categories.size > 0 %}
          <span class="article-detail__cats">
            {% for cat in article_categories %}
              <a href="/bai-viet?danh-muc={{ cat.slug }}">{{ cat.title }}</a>{% unless forloop.last %}, {% endunless %}
            {% endfor %}
          </span>
        {% endif %}
      </div>
      {% if article.thumbnail_url %}
        <img src="{{ article.thumbnail_url }}" alt="{{ article.title }}"
             class="article-detail__cover" loading="lazy">
      {% endif %}
    </header>

    {% if article.body %}
    <div class="rich-text article-detail__body">{{ article.body }}</div>
    {% endif %}

    {% if tags.size > 0 %}
    <div class="article-detail__tags">
      <strong>Tags:</strong>
      {% for tag in tags %}
        <span class="tag">{{ tag }}</span>
      {% endfor %}
    </div>
    {% endif %}
  </article>

  {% if reviews.size > 0 %}
  <section class="pdp-reviews">
    <h2 class="section__title">Bình luận ({{ reviews.size }})</h2>
    {% for review in reviews %}
    <div class="review-item">
      <div class="review-item__header">
        <strong>{{ review.reviewer_name | default: 'Ẩn danh' }}</strong>
        <time>{{ review.created_at | slice: 0, 10 }}</time>
      </div>
      {% if review.title %}<p class="review-item__title">{{ review.title }}</p>{% endif %}
      {% if review.body %}<p class="review-item__body">{{ review.body }}</p>{% endif %}
    </div>
    {% endfor %}
  </section>
  {% endif %}

  {% if related_articles.size > 0 %}
  <section class="section section--related">
    <h2 class="section__title">Bài viết liên quan</h2>
    <div class="article-grid article-grid--small">
      {% for art in related_articles %}
      {% if art.url %}<a href="{{ art.url }}" class="article-card article-card--sm">{% else %}<span class="article-card article-card--sm">{% endif %}
        {% if art.thumbnail_url %}
          <img src="{{ art.thumbnail_url }}" alt="{{ art.title }}"
               class="article-card__img" loading="lazy">
        {% endif %}
        <div class="article-card__body">
          <h3 class="article-card__title">{{ art.title }}</h3>
          <time class="article-card__date">{{ art.published_at | slice: 0, 10 }}</time>
        </div>
      {% if art.url %}</a>{% else %}</span>{% endif %}
      {% endfor %}
    </div>
  </section>
  {% endif %}
</div>