# <stl:content> 获取内容值

<stl:content
  type="显示的类型"
  wordNum="显示字符的数目"
  startIndex="字符开始位置"
  length="指定字符长度"
  ellipsis="文字超出部分显示的文字"
  replace="需要被替换的文字"
  to="替换文字"
  isClearTags="清除标签"
  isReturnToBr="回车改为换行"
  isLower="转换为小写"
  isUpper="转换为大写"
  format="显示的格式"
  no="显示第几项"
  separator="显示多项时的分割字符串"
  isOriginal="获取所引用内容的值"
  leftText="显示在信息前的文字"
  rightText="显示在信息后的文字"
  isAutoIncrease="是否自增长"
>
</stl:content>

# 说明

通过 stl:content 标签在模板中显示指定内容的属性值。

<stl:content> 标签在内容模板中单独使用时,系统默认将显示当前内容的值。

如果 <stl:content> 标签嵌套在 <stl:contents>以及<stl:pageContents> 内容列表标签内,系统将获取内容列表项并解析为相应的值。

stl:content 标签只能放在内容模版中或者作为 <stl:contents>以及<stl:pageContents> 等内容列表标签的子标签。

type 属性用于明确需要显示内容的具体字段,如果未设置,系统将显示内容标题。

如果需要对返回的文字进行截字或者其他处理,请设置 解析文字 属性。

如果需要显示日期/时间类型的内容字段,可以通过 format 属性 格式化日期

如果希望将内容的属性值放到 HTML 元素或者 STL 元素的属性中使用,请使用{stl:content} 实体写法,如:<a title="{stl:content type=title}">

如果需要获取内容正文并翻页显示,请设置 type 属性为 pageContent,同时配合 stl:pageItem 标签实现翻页效果。

# 解析

如果使用 <stl:content> 元素,系统将根据内容字段的类型解析为不同的值(通常为字符串,如果字段类型为图片系统将解析为<img>标签)。

如果使用 {stl:content} 实体,系统将根据是否设置 type 属性,解析为不同的结果:

  • 设置了 type 属性,系统将实体解析为内容的具体字段值。
  • 未设置 type 属性,系统将实体解析为内容的 JSON 对象。

# 类型

显示内容属性的类型。根据后台内容表字段的不同 type 属性可以有不同的取值。详细字段请参考:内容表结构 (opens new window)

# id - 内容 Id

显示内容Id。

<stl:content type="id"></stl:content>
<!-- 或者 -->
{Content.Id}

# title - 内容标题

显示内容标题。

<stl:content type="title"></stl:content>
<!-- 或者 -->
{Content.Title}

# subTitle - 内容副标题

显示内容副标题。

<stl:content type="subTitle"></stl:content>
<!-- 或者 -->
{Content.SubTitle}

# summary - 内容简介

显示内容简介,系统默认将把后台内容简介中的回车替换为 <br /> 标签,如果不希望换行,可以将 isReturnToBr 属性设置为 false

<stl:content type="summary"></stl:content>
<!-- 或者 -->
{Content.Summary}

# addDate - 内容添加时间

显示内容的添加时间,可以通过 format 属性控制显示格式(默认格式为 yyyy-MM-dd)。

<stl:content type="addDate"></stl:content>
<!-- 或者 -->
{Content.AddDate}

# lastModifiedDate - 内容最后修改时间

显示内容的最后修改时间,可以通过 format 属性控制显示格式(默认格式为 yyyy-MM-dd)。

<stl:content type="lastModifiedDate"></stl:content>
<!-- 或者 -->
{Content.LastModifiedDate}

# userName - 内容添加人用户名

显示内容添加人的用户名。

<stl:content type="userName"></stl:content>
<!-- 或者 -->
{Content.UserName}

# userDisplayName - 内容添加人显示名称

显示内容添加人的显示名称。

<stl:content type="userDisplayName"></stl:content>
<!-- 或者 -->
{Content.UserDisplayName}

# imageUrl - 内容图片

显示内容图片,默认元素解析为 <img> 标签,实体解析为图片地址。

<stl:content type="imageUrl"></stl:content>
<!-- 或者 -->
<stl:image></stl:image>
<!-- 或者 -->
<img src="{Content.ImageUrl}" />

# videoUrl - 内容视频

显示内容视频,默认元素解析为 <video> 标签,实体解析为视频地址。

<stl:content type="videoUrl"></stl:content>
<!-- 或者 -->
<stl:video></stl:video>
<!-- 或者 -->
<img src="{Content.VideoUrl}" />

# fileUrl - 内容附件

显示内容附件下载链接,默认元素解析为 <a> 标签,实体解析为附件地址。

<stl:content type="fileUrl">点击下载</stl:content>
<!-- 或者 -->
<stl:file></stl:file>
<!-- 或者 -->
<a href="{Content.FileUrl}">点击下载</a>

# author - 内容作者

显示内容作者。

<stl:content type="author"></stl:content>
<!-- 或者 -->
{Content.Author}

# source - 内容来源

显示内容来源。

<stl:content type="source"></stl:content>
<!-- 或者 -->
{Content.Source}

# body - 内容正文

显示内容正文,body 也可以写作 content

<stl:content type="body"></stl:content>
<!-- 或者 -->
{Content.Body}

默认我们将内容编辑器中的HTML代码输出,如果只希望输出文字,可以将 isClearTags 属性设置为 false

<stl:content type="Body" isClearTags="true" wordNum="100"></stl:content>

# pageContent - 能够翻页显示的内容正文

显示带翻页功能的内容正文。

<stl:content type="pageContent"></stl:content>
<!-- 或者 -->
{Content.PageContent}

<stl:pageItems>
  <div class="pagination">
    <ul>
      <li><a href="{PageItem.PreviousPage}">上一页</a></li>
      <stl:pageItem type="PageNavigation">
        <stl:yes>
          <li><a href="{Current.Url}">{Current.Num}</a></li>
        </stl:yes>
        <stl:no>
          <li class="active"><span>{Current.Num}</span></li>
        </stl:no>
      </stl:pageItem>
      <li><a href="{PageItem.NextPage}">下一页</a></li>
    </ul>
  </div>
</stl:pageItems>

带翻页功能的内容正文需要在内容正文编辑器中插入分页(或者在 设置管理 -> 内容设置 中将 内容编辑器分页方式 设置为 按指定字数自动分页),并在内容模板中添加 <stl:pageItem> 等翻页控件才能起作用。

# tags - 内容标签

显示内容标签,tags 也可以写作 tagNames

<stl:content type="tags"></stl:content>
<!-- 或者 -->
{Content.Tags}

# images - 内容图片数量

显示内容的图片数量。

<stl:content type="images"></stl:content>
<!-- 或者 -->
{Content.Images}

# videos - 内容视频数量

显示内容的视频数量。

<stl:content type="videos"></stl:content>
<!-- 或者 -->
{Content.Videos}

# files - 内容附件数量

显示内容的附件数量。

<stl:content type="files"></stl:content>
<!-- 或者 -->
{Content.Files}

# hits - 内容点击量

显示内容的点击量,默认为动态显示(页面在每次刷新时将动态增加点击量数字),如果我们不希望刷新页面增加点击量,可以将 isAutoIncrease 属性设置为 false

<stl:content type="hits"></stl:content>
<!-- 或者 -->
{Content.Hits}
<!-- 非自增长 -->
<stl:content type="hits" isAutoIncrease="false"></stl:content>

# itemIndex - 项次序数字

显示内容在列表中的次序,通常使用在 <stl:contents> 循环中。

<stl:contents>
  这是第
  <stl:content type="itemIndex"></stl:content>
  <!-- 或者 -->
  {Content.ItemIndex}
  项
</stl:contents>

我们也可以对itemIndex进行加减操作:

<!-- 加 -->
<stl:content type="itemIndex+2"></stl:content>
<!-- 或者 -->
{Content.ItemIndex+2}
<!-- 减 -->
<stl:content type="itemIndex-5"></stl:content>
<!-- 或者 -->
{Content.ItemIndex-5}

需要注意的是,加减操作符前后不能有空格。

# 自定义字段 - 显示自定义字段值

除了显示以上系统默认内容字段,我们还可以在后台内容字段管理中新增自定义的字段,通过 type="自定义字段名称" 显示在前台页面:

<stl:content type="自定义字段名称"></stl:content>
<!-- 或者 -->
{Content.自定义字段名称}

# 属性

属性 说明
type 显示的类型
wordNum 显示字符的数目
startIndex 字符开始位置
length 指定字符长度
ellipsis 文字超出部分显示的文字
replace 需要被替换的文字
to 替换文字
isClearTags 清除标签
isReturnToBr 回车改为换行
isLower 转换为小写
isUpper 转换为大写
format 显示的格式
no 显示第几项
separator 显示多项时的分割字符串
isOriginal 获取所引用内容的值
leftText 显示在信息前的文字
rightText 显示在信息后的文字
isAutoIncrease 是否自增长

# type - 显示的类型

参考 内容类型

# wordNum - 显示字符的数目

设置显示文字的字数,超出部分将用 ellipsis 属性设置的值替代。

TIP

wordNum 区分中英文,中文汉字算作一个字符,两个英文字母才算作一个字符。 由于在 Web 页面中,两个英文字母的宽度等于一个汉字,所以我们通常使用 wordNum 属性来设置文本的显示数量。

<stl:content wordNum="50"></stl:content>

# startIndex - 字符开始位置

设置文字开始显示的位置,默认值为 0,代表从头显示。

TIP

startIndex 不区分中英文,汉字、英文字母、空格及符号均认为是一个字符。

<stl:content startIndex="10"></stl:content>

# length - 指定字符长度

设置显示文字的字数,超出部分将用 ellipsis 属性设置的值替代。

TIP

length 不区分中英文,汉字、英文字母、空格及符号均认为是一个字符。

<stl:content length="100"></stl:content>

# ellipsis - 文字超出部分显示的文字

设置了 wordNum 属性或者 length 属性时,当文字超出了指定的字数后,超出部分将用 ellipsis 属性设置的值来替代。

ellipsis 的默认值为 ...,你也可以设置空值(ellipsis="")来让超出部分不使用符号替换。

<stl:content wordNum="100" ellipsis=" -- end --"></stl:content>

# replace - 需要被替换的文字

如果需要将文字中的一部分替换为另一部分,可以使用 replace 属性和 to 属性。

replace 代表需要替换的文字,支持纯文本、列表和正则表达式三种写法。

# 使用纯文本替换

纯文本替换直接输入替换前文字和替换后文字即可:

<stl:content replace="" to=""></stl:content>

# 使用列表替换

列表替换适合多个文本替换的情况,将需要替换的文字用英文逗号(,)隔开:

<stl:content replace="他,她" to="he,she"></stl:content>

如果多个文本都替换为一个文本,to 属性可以不使用逗号隔开:

<stl:content replace="他,她" to="who"></stl:content>

# 使用正则表达式替换

正则表达式替换需要将 replace 前后添加“/”符号,“/”符号之间的文字为替换需要使用的正则表达式:

<stl:content replace="/(Mr\\.? |Mrs\\.? |Miss |Ms\\.? )/" to=""></stl:content>

# to - 替换文字

to 代表替换后的文字。

# isClearTags - 清除标签

设置是否清除 HTML 标签,仅显示纯文本。

在后台内容编辑器中录入的数据通常会带有大量的 HTML 标签,如果我们只希望显示文字本身,需要使用 isClearTags 属性。

  • "true" 清除 HTML 标签。
  • "false" 不清除 HTML 标签。此值是默认的,如果没有指定属性的话。
<stl:content type="content" isClearTags="true"></stl:content>

# isReturnToBr - 回车改为换行

设置是否将回车换行符号替换为 HTML <br>换行标签。

由于 HTML 中的换行在页面中显示为空格,所以如果需要显示后台 TextArea 文本框录入的换行时,需要使用 isReturnToBr 属性。

  • "true" 替换回车符。
  • "false" 不替换回车符。此值是默认的,如果没有指定属性的话。
<stl:content type="summary" isReturnToBr="true"></stl:content>

# isLower - 转换为小写

设置是否将文本中的所有英文字母转换为小写字母。

  • "true" 转换为小写。
  • "false" 不转换为小写。此值是默认的,如果没有指定属性的话。
<stl:content type="title" isLower="true"></stl:content>

# isUpper - 转换为大写

设置是否将文本中的所有英文字母转换为大写字母。

  • "true" 转换为大写。
  • "false" 不转换为大写。此值是默认的,如果没有指定属性的话。
<stl:content type="title" isUpper="true"></stl:content>

# format - 显示的格式

当需要显示日期型的字段值时,可以通过 format 属性来设置日期格式。

<stl:content type="AddDate" format="yyyy-MM-dd HH:mm:ss"></stl:content>

我们也可以通过 format 属性来设置数字格式:

<stl:content type="ItemIndex" format="D2"></stl:content>

以上示例将用前导零填充数值,如数值为1,格式化后将显示为01。

# no - 显示第几项

显示第几项。

# separator - 显示多项时的分割字符串

显示多项时的分割字符串。

# isOriginal - 获取所引用内容的值

如果是引用内容,是否获取所引用内容的值。

  • "true" 显示所引用内容的值。
  • "false" 不显示所引用内容的值。此值是默认的,如果没有指定属性的话。

# leftText - 显示在信息前的文字

显示在文字之前的文字,系统会判断文字是否为空,如果文字为空,文字前缀也将不显示。

<stl:content leftText="标题:" type="title"></stl:content>

# rightText - 显示在信息后的文字

显示在文字之后的文字,系统会判断文字是否为空,如果文字为空,文字后缀也将不显示。

<stl:content leftText="" rightText="" type="title"></stl:content>

# isAutoIncrease - 是否自增长

设置每次刷新页面后点击量是否自动加 1,不设置内容模板默认为 "true",栏目模板默认为 "false"

  • "true" 自增长。
  • "false" 只显示,不自增长。
<stl:content type="Hits" isAutoIncrease="true"></stl:content>

# 示例

# 在内容列表中显示内容链接

下面的例子显示栏目索引为"新闻"的栏目的内容列表前五条,内容链接的提示为内容标题全称。

<stl:contents channelIndex="新闻" totalNum="5" width="80%" border="0">
  <stl:a title="{Content.FullTitle}" target="_blank">
    <stl:content type="Title"></stl:content><br />
  </stl:a>
</stl:contents>

解析后的 HTML 代码:

<a href="/news/4.html" title="我是带图片的内容" target="_blank">
  我是带图片的内容<br />
</a>
<a href="/news/3.html" title="我也是带图片的内容" target="_blank">
  我也是带图片的内容<br />
</a>
<a href="/news/2.html" title="我也是带图片的内容" target="_blank">
  我也是带图片的内容<br />
</a>
<a href="/news/1.html" title="我是带图片的内容" target="_blank">
  我是带图片的内容<br />
</a>

# 显示内容的副标题

下面的例子在页面中显示内容的副标题。

<stl:content type="SubTitle"></stl:content>

解析后的 HTML 代码:

内容副标题

# 显示内容点击量

下面的例子在页面中显示内容点击量。

阅读量:<stl:content type="Hits"></stl:content>

可以通过属性 isAutoIncrease 控制每次刷新页面点击量是否动态增长(如果不设置 isAutoIncrease 属性,内容模板默认自动增长,栏目模板默认只显示不增长)。

阅读量:<stl:content type="Hits" isAutoIncrease="true"></stl:content>

# 显示内容的添加时间

下面的例子在页面中显示内容的添加时间,并按照"yyyy-MM-dd hh:mm:ss"格式显示。

<stl:content type="AddDate" format="yyyy-MM-dd hh:mm:ss"></stl:content>

解析后的 HTML 代码:

2013-06-03 12:23:18
上次更新: 2023/10/26 上午9:33:23