在使用安企CMS管理网站内容时,无论是发布新文章、更新产品详情,还是构建列表页面,核心任务之一就是准确且高效地展示内容的标题、正文、缩略图和发布时间。安企CMS提供了简洁而强大的模板标签,让这些操作变得直观易懂。本文将详细介绍如何在您的网站页面上,灵活地获取并呈现这些关键信息,确保内容展示既美观又实用。
核心内容获取:单个文章或产品页面的展示
当您需要展示一篇独立文章或一个产品详情时,安企CMS的archiveDetail标签是您的首选工具。这个标签专门用于从数据库中提取特定内容的详细数据。
标题与正文的展示
获取内容的标题和正文是基本需求。在您的模板文件(例如{模型table}/detail.html)中,您可以使用archiveDetail标签来直接获取。例如,文章标题可以通过{% archiveDetail with name="Title" %}来显示。如果想将获取到的标题赋值给一个变量,以便在页面其他地方重复使用,可以写作{% archiveDetail articleTitle with name="Title" %}{{articleTitle}}。正文内容的获取方式类似,使用{% archiveDetail with name="Content" %}即可。由于正文通常包含HTML标签,为了确保浏览器正确解析,您可能需要配合|safe过滤器,例如{{archiveContent|safe}}。如果您的正文是Markdown格式,还可利用render=true参数进行转换,例如{% archiveDetail articleContent with name="Content" render=true %}{{articleContent|safe}}。
缩略图与图像的灵活运用
缩略图在内容展示中扮演着重要的角色。安企CMS提供了Thumb和Logo字段来表示内容的缩略图。Thumb通常是系统自动生成的缩略图,而Logo则可能代表内容的封面图或第一张图片。您可以通过{% archiveDetail with name="Thumb" %}或{% archiveDetail with name="Logo" %}来获取它们的图片地址。如果内容中包含图片集合,Images字段则会返回一个图片URL数组,您可以通过{% archiveDetail articleImages with name="Images" %}将图片数组赋值给一个变量,然后使用for循环来展示所有图片。例如,{% for img in articleImages %}<img src="{{img}}" alt=""/>{% endfor %}。
发布时间的精确呈现
发布时间(CreatedTime)是内容时效性的重要标识。安企CMS存储的时间是一个Unix时间戳,为了在页面上以人类可读的格式显示,我们需要使用stampToDate函数。这个函数非常灵活,允许您按照Go语言的时间格式化规则来定义输出格式。比如,要显示为“2023年01月01日”,可以写成{{stampToDate(archive.CreatedTime, "2006年01月02日")}};若要显示时分秒,则可设置为"2006-01-02 15:04:05"。
列表页面的内容呈现:高效批量获取
在展示文章列表、产品列表或搜索结果页时,我们通常需要批量获取多条内容的标题、正文摘要、缩略图和发布时间。安企CMS的archiveList标签能够满足这一需求。
循环遍历与数据访问
archiveList标签可以根据您的条件(如分类ID、模型ID、限制数量等)提取多条内容。它返回一个数组对象,您需要使用for循环来遍历每一项内容。在循环内部,每个内容项(例如命名为item)的标题、描述、缩略图和发布时间都可以通过{{item.Title}}、{{item.Description}}、{{item.Thumb}}和{{item.CreatedTime}}等方式轻松访问。
日期格式与图片处理
与单个内容页类似,在列表页中,item.CreatedTime同样需要通过stampToDate函数进行格式化,以确保日期显示清晰易读。对于缩略图,您可以通过{% if item.Thumb %}<img src="{{item.Thumb}}" alt="{{item.Title}}">{% endif %}来判断缩略图是否存在并显示。列表页的描述(Description)通常是正文的摘要,如果直接输出可能过长,此时可以考虑使用truncatechars或truncatewords等过滤器对其进行截断,例如{{item.Description|truncatechars:100}},以保持页面布局整洁。
小结
安企CMS在内容获取和展示方面提供了极大的灵活性和便利性。无论是处理单个文章或产品详情页,还是构建内容丰富的列表页,通过archiveDetail和archiveList这两个核心标签,结合字段名称、时间格式化函数以及实用的过滤器,您可以轻松驾驭内容的各种呈现需求。掌握这些标签的使用,将使您的网站内容管理与前端展示更加高效和专业。
常见问题 (FAQ)
1. 为什么我的文章正文内容显示时带有很多HTML标签,而不是排版好的文本?
这通常是因为您在显示正文内容时,没有使用|safe过滤器。安企CMS模板引擎出于安全考虑,默认会对所有输出内容进行HTML转义。在显示从数据库中直接获取的包含HTML格式的正文时,请务必在变量后添加|safe过滤器,例如{{archiveContent|safe}},这样浏览器才能正确解析并渲染HTML。
2. 如何设置文章列表页的缩略图在没有手动上传时,自动从正文中提取第一张图片?
安企CMS内置了这项智能功能。在您编辑文章或产品时,如果在“文档图片”字段中没有上传缩略图,但文章正文(Content字段)中包含图片,系统会自动尝试提取正文中的第一张图片作为缩略图。您只需在模板中使用{{item.Thumb}}或{{archive.Thumb}}来调用即可,系统会自动处理优先级,优先使用手动上传的缩略图,如果没有,再尝试提取正文图片。
3. 我想显示文章的发布时间,但它显示的是一串数字(时间戳),如何让它显示为日期格式?
安企CMS内部存储的发布时间(例如CreatedTime)是Unix时间戳。要在前端页面上显示为可读的日期格式,您需要使用stampToDate函数进行转换。例如,`{{stampToDate(item.CreatedTime, “2006-0