# <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"title"
内容标题"subTitle"
内容副标题"summary"
内容简介"addDate"
内容添加时间"lastModifiedDate"
内容最后修改时间"imageUrl"
内容图片"videoUrl"
内容视频"fileUrl"
内容附件"author"
内容作者"source"
内容来源"body"
内容正文"pageContent"
能够翻页显示的内容正文"tags"
内容标签"images"
内容图片数量"videos"
内容视频数量"files"
内容附件数量"hits"
内容点击量"navigationUrl"
内容页面访问地址"userName"
内容添加人用户名"userDisplayName"
内容添加人姓名"itemIndex"
项次序数字"自定义字段"
显示自定义字段值
# 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}
# 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>
# navigationUrl - 内容页面访问地址
显示内容的页面访问地址。
<stl:content type="navigationUrl"></stl:content>
<!-- 或者 -->
{Content.NavigationUrl}
如果在内容模板中,使用:
<a href="{Content.NavigationUrl}">内容页链接</a>
最终效果与以下代码一致:
<stl:a>内容页链接</stl:a>
# userName - 内容添加人用户名
显示内容添加人的用户名。
<stl:content type="userName"></stl:content>
<!-- 或者 -->
{Content.UserName}
# userDisplayName - 内容添加人姓名
显示内容添加人的姓名。
<stl:content type="userDisplayName"></stl:content>
<!-- 或者 -->
{Content.UserDisplayName}
# 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