`archiveDetail`标签如何获取并显示单个文档的详细信息,包括其自定义字段?

📅 👁️ 84

在内容管理系统中,有效地展示单个文档的详细信息是核心需求之一。无论是新闻文章、产品介绍还是服务说明,用户总是希望能够直观、全面地了解每个项目的具体内容。安企CMS(AnQiCMS)为此提供了强大的 archiveDetail 标签,让您能够轻松地获取并显示单个文档的所有信息,甚至包括您自定义的专属字段。

获取文档核心信息:archiveDetail 的基本用法

archiveDetail 标签是安企CMS模板中用于精确提取单个文档详细数据的工具。它的基本语法是 {% archiveDetail 变量名称 with name="字段名称" id="文档ID" %}。这里,变量名称 是一个可选的别名,用于在后续模板代码中引用获取到的数据;name 参数指定您想要获取的具体文档字段;而 id 参数则让您可以指定获取某个特定 ID 的文档。当然,如果您正在文档详情页(例如 detail.htmlarchive/detail.html)中,通常不需要提供 id 参数,系统会默认获取当前页面的文档信息。此外,您也可以通过 token 参数来指定文档的 URL 别名以获取其详情。

这个标签能够帮您提取文档的多种内置字段,例如:

  • Id: 文档的唯一标识符。
  • Title: 文档的标题。
  • Link: 文档的访问链接。
  • Description: 文档的简短描述或摘要。
  • Views: 文档的浏览量。
  • Logo: 文档的封面主图。
  • Thumb: 文档的封面缩略图。
  • CategoryId: 文档所属分类的ID。

例如,要在详情页显示文档标题,您可以这样写: <h1>{% archiveDetail with name="Title" %}</h1>

如果您需要获取指定 ID 文档的链接,可以这样: <a href="{% archiveDetail with name="Link" id="10" %}">查看文档10</a>

特别值得一提的是 Content 字段。它承载着文档的主体内容,通常包含丰富的图文信息甚至 HTML 格式。当您需要展示这些内容时,请务必使用 |safe 过滤器,以确保 HTML 代码能够被正确解析,而不是作为纯文本显示: <div>{% archiveDetail content with name="Content" %}{{content|safe}}</div> 如果您的内容是 Markdown 格式,并且希望它在前端渲染成 HTML,可以在 Content 字段的 archiveDetail 标签中添加 render=true 参数: <div>{% archiveDetail content with name="Content" render=true %}{{content|safe}}</div> 另外,对于图片较多的内容,您还可以利用 lazy 参数指定图片懒加载的属性,例如 lazy="data-src",以便您的前端懒加载脚本能够正常工作。

对于日期时间字段,如 CreatedTime(创建时间)和 UpdatedTime(更新时间),archiveDetail 标签也提供了便捷的 format 参数来直接格式化输出,省去了手动使用 stampToDate 标签的步骤: <span>发布日期:{% archiveDetail with name="CreatedTime" format="2006年01月02日" %}</span>

拓展用法:自定义字段的灵活展示

安企CMS的强大之处在于其灵活的内容模型设计,允许您根据业务需求自定义文档字段。这些自定义字段也能通过 archiveDetail 标签轻松获取和展示。

假设您在内容模型中为产品定义了一个名为 price 的自定义字段。您可以直接通过 name 参数获取它的值: <span>产品价格:{% archiveDetail with name="price" %} 元</span>

如果您不确定文档有哪些自定义字段,或者希望动态地展示所有自定义字段,archiveParams 标签就派上用场了。它允许您遍历文档的所有附加参数。通常情况下,您会希望这些参数按照后台的设置顺序显示,这时可以利用 sorted=true 参数(这也是默认行为):

{% archiveParams params %}
<ul class="custom-fields">
    {% for item in params %}
    <li>
        <strong>{{item.Name}}:</strong>
        <span>{{item.Value}}</span>
    </li>
    {% endfor %}
</ul>
{% endarchiveParams %}

通过这种方式,您可以构建一个通用模板,自动适应不同内容模型下的自定义字段展示。

实际场景应用:文章与产品详情页的构建

将上述标签组合起来,您可以轻松构建出功能完善的文档详情页面。

文章详情页示例: 在一个典型的文章详情页中,您可能需要显示标题、分类、发布时间、标签和文章内容。

<article>
    <h1>{% archiveDetail with name="Title" %}</h1>
    <div class="meta-info">
        <span>分类:<a href="{% categoryDetail with name='Link' id=archive.CategoryId %}">{% categoryDetail with name='Title' id=archive.CategoryId %}</a></span>
        <span>发布于:{% archiveDetail with name="CreatedTime" format="2006-01-02" %}</span>
        <span>阅读量:{% archiveDetail with name="Views" %}</span>
        <div class="tags">标签:
            {% tagList tags with itemId=archive.Id limit="5" %}
            {% for tag in tags %}
                <a href="{{tag.Link}}">{{tag.Title}}</a>
            {% endfor %}
            {% endtagList %}
        </div>
    </div>
    <div class="article-content">
        {% archiveDetail content with name="Content" render=true %}{{content|safe}}</div>
</article>

产品详情页示例: 对于产品详情页,展示图片、名称、自定义参数(如品牌、型号)和详细描述是常见的布局。

<div class="product-detail">
    <div class="product-gallery">
        <img src="{% archiveDetail with name='Logo' %}" alt="{% archiveDetail with name='Title' %}" />
        {# 如果有自定义的图片组字段 'product_images' #}
        {% archiveDetail productImages with name="product_images" %}
        <div class="thumbnail-list">
          {% for img in productImages %}
          <img src="{{img}}" alt="产品图" />
          {% endfor %}
        </div>
        {% endarchiveDetail %}
    </div>
    <div class="product-info">
        <h1>{% archiveDetail with name="Title" %}</h1>
        <p class="description">{% archiveDetail with name="Description" %}</p>
        <div class="product-params">
            {% archiveParams params %}
            {% for item in params %}
            <p><strong>{{item.Name}}:</strong> {{item.Value}}</p>
            {% endfor %}
            {% endarchiveParams %}
        </div>
        <a href="tel:{% contact with name='Cellphone' %}" class="contact-btn">立即咨询:{% contact with name="Cellphone" %}</a>
    </div>
    <div class="product-full-content">
        <h2>产品详情</h2>
        {% archiveDetail content with name="Content" render=true %}{{content|safe}}
    </div>
</div>

小贴士

在模板开发中,当您确定当前页面上下文已经是一个文档对象时(例如在 detail.htmlarchive/detail.html 中),除了使用 {% archiveDetail with name="字段名称" %} 标签外,您还可以直接通过 {{archive.字段名}} 的方式来获取文档的字段,这通常更为简洁方便。例如,<h1>{{archive.Title}}</h1> 就能直接显示文档标题。

总之,archiveDetail 标签为您提供了灵活、强大的方式来在安企CMS中展示单个文档的详细信息,包括所有自定义字段,

相关文章

`archiveList`标签如何控制文档列表的显示数量、排序方式和分页逻辑?

在安企CMS中,`archiveList`标签无疑是内容展示的核心利器,它为网站的内容列表提供了极大的灵活性和控制力。无论是想在首页展示最新文章,还是在分类页实现复杂的筛选分页,`archiveList`都能通过其丰富的参数配置,帮助我们精准地呈现内容。接下来,我们就一起深入探讨如何利用这个标签来控制文档列表的显示数量、排序方式以及实现精妙的分页逻辑。 ### 掌控文档显示数量

2025-11-08

AnQiCMS内置的各类标签,如何用于获取并显示网站的系统信息、内容列表和详情?

在构建和管理网站时,如何高效地展示各类信息是决定用户体验和运营效率的关键。AnQiCMS 凭借其灵活强大的模板标签体系,让内容创作者和网站运营者无需深厚的编程背景,也能轻松驾驭网站内容的获取、展示和个性化定制。本文将深入探讨 AnQiCMS 内置的丰富标签,带你了解如何巧妙地运用它们来获取并显示网站的系统信息、内容列表以及详情页面的多样化内容。 ### 理解 AnQiCMS

2025-11-08

如何为“关于我们”等单页面自定义独立的显示模板,以满足特定展示需求?

在安企CMS中,为了让“关于我们”、“联系我们”等单页面拥有独一无二的展示效果,而非沿用网站统一的页面布局,我们完全可以为它们量身定制独立的显示模板。这种定制化能力是安企CMS灵活性的体现,能帮助我们更好地塑造品牌形象,或为特定内容提供更合适的展示形式。 ### 安企CMS模板机制概述 安企CMS的模板系统设计得非常直观且强大,它基于类似Django模板引擎的语法,让内容的呈现与逻辑控制分离

2025-11-08

AnQiCMS的扁平化文件组织模式如何简化模板管理并优化内容显示流程?

在网站运营中,模板管理是效率与体验并重的关键环节。一套设计合理、易于维护的模板系统,能极大提升网站内容的发布速度和页面更新的灵活性。AnQiCMS在这一领域提供了独到的解决方案,特别是其“扁平化文件组织模式”,为用户简化模板管理、优化内容显示流程带来了实实在在的便利。 ### 告别层层嵌套:AnQiCMS扁平化文件组织的魅力 在许多传统的内容管理系统中,模板文件往往被深埋在多级目录结构中

2025-11-08

`categoryList`和`categoryDetail`标签如何用于构建和显示网站的分类层级结构?

在安企CMS中,网站的分类层级结构是内容组织的核心,它不仅影响用户浏览体验,更是搜索引擎优化的重要环节。为了有效地构建和展示这些分类结构,我们主要依赖两个强大的模板标签:`categoryList` 和 `categoryDetail`。它们协同工作,让您能够灵活地在网站前端呈现出清晰、有条理的内容分类。 ### 构建分类列表:`categoryList` 标签 `categoryList`

2025-11-08

`pageList`和`pageDetail`标签如何管理和显示独立的单页面内容?

在网站运营中,除了动态更新的文章或商品列表,我们常常需要展示一些相对固定、独立的内容页面,例如“关于我们”、“联系方式”、“隐私政策”或“服务介绍”等。这些页面通常被称为“单页面内容”。AnQiCMS为我们管理和展示这些页面提供了强大而灵活的工具,特别是`pageList`和`pageDetail`这两个核心标签。 ### 单页面内容:网站的基石 单页面内容是网站不可或缺的一部分

2025-11-08

`tagList`和`tagDetail`标签如何实现基于标签的内容聚合和专题显示?

在内容管理与网站运营中,如何高效地组织和展示内容是提升用户体验与SEO表现的关键。安企CMS(AnQiCMS)提供了强大的标签功能,通过 `tagList` 和 `tagDetail` 这两个模板标签,可以轻松实现基于标签的内容聚合和专题显示,为网站带来更灵活的分类和更丰富的导航体验。 ### 标签在内容聚合中的作用 标签(Tag)是内容管理系统中的一种重要内容组织方式

2025-11-08

`pagination`标签如何生成和控制网站内容的翻页显示效果?

在网站运营中,当内容数量庞大时,如何高效、美观地展示这些内容,同时确保用户能方便地浏览,是提升用户体验的关键。如果一股脑地将所有内容堆砌在同一页面,不仅加载缓慢,更会让访问者望而却步。此时,内容分页就显得尤为重要。它将海量信息拆分成若干小块,既减轻了页面加载负担,又让用户能够按照自己的节奏,一步步探索感兴趣的内容。AnQiCMS 提供了一个强大且灵活的 `pagination` 标签

2025-11-08