站点
站点,即通俗意义上的网站。在SiteServer CMS中,一个站点就是一个网站,包括网站栏目、网站内容、网站模板、CSS样式、JS脚本以及最终生成的网站所有页面。
MySql+SSCMS系统(V6版本)
SSCMS管理系统(版本 v7)
栏目
栏目是存放网站内容的地方,在后台添加网站内容时候,必须添加在某个具体的栏目下。通过栏目,可以将一个网站的内容进行分类,所以栏目还可以叫做站点内容的分类。对于前台网页来说,栏目也可以叫做网站的频道或者菜单。
如果把一个网站比作一颗枝繁叶茂的大树的话,网站的栏目就是大树的枝干,网站的内容就是枝干上的树叶。网站栏目可以分成父栏目、子栏目,如果有需要的话,还可以一级一级的往下分,每个栏目都可以建自己的下级栏目。在SiteServer CMS中,“首页”是最高级别的栏目,可以在“首页”栏目下面建立无限级数的栏目。可见,网站的栏目就是网站骨架,我们通常把整个网站的所有栏目称为“栏目架构”。如下图所示:
内容
CMS中“内容”的概念通常来说指的就是网站文章(新闻)。SiteServer CMS 后台管理的“内容”是一切可结构化的数据,包括网站LOGO、新闻、图片、视频、投票、广告、招聘、评论等等,都可以被称为“内容”。
页面
所谓页面,就是把CMS后台管理的内容展示到前台给用户访问的网页。页面一般分成网站首页、栏目页、内容页以及功能页,比如搜索、登录、问卷调查、表单提交等都属于功能页,也叫单页。
首页
我们打开一个网站的时候,看到的第一个页面就是首页
栏目页
当点击某个具体的栏目,进入的就是栏目页
内容页
当点击某个具体的内容,进入的就是内容页
单页(功能页)
除了首页、栏目页、内容页之外,SiteServer CMS 中还有一个特殊的页面概念,叫“单页”,这种页面通常是为了实现某一个具体的功能,比如搜索、问卷调查、表单提交、用户登录和注册等,所以又称之为功能页。这些页面和任何一个具体栏目都没有关系。下图展示的一个用户注册页面就是一个典型的单页(或功能页)
模板
模板,就是负责把CMS后台管理的内容按一定的表现形式组织起来形成前台页面的一种技术。按一定的表现形式组织起来,这就是模板的内容,模板决定后台内容显示到前台页面后的效果。既然页面一般分成网站首页、栏目页、内容页以及单页,同理模板也就对应分别有首页模板、栏目模板、内容模板以及单页模板。
模板的主要作用主要有:
以内容模板为例,假设后台一个栏目下有两篇内容,如下图所示:
这两篇内容使用了一个相同的内容模板,最后产生的两个前台页面分别如下两图:
以上两个前台内容页面,除了文章的标题和文章内容不同之外,其他信息都是一样的。这就是模板的作用,把后台的内容以一定的表现形式组织起来从而形成前台页面。
嵌套好的模板
嵌套好的模板和静态页面(Html)并无差别,就是在Html中夹杂着STL标签语言。如下图所示:
STL 语言全称称为 SiteServer 模版语言(SiteServer Template Language),是一种您可以用来创建显示模版的服务器端语言。STL 通过标记符号(元素及实体)来标记要调取并显示的各种网站数据及功能,通过SiteServer 解析引擎将对应标记转换为HTML 语言并在服务器中生成对应的静态页面文件。
SiteServer CMS 系统的核心由内容管理与内容解析两部分组成,STL语言作为 内容管理 与 内容解析 的桥梁,将后台管理的各种动态数据最终解析为用户能访问的静态页面(html标签组成的页面)。
应用:实现功能互动、动态显示、数据统计、数据库解析等一系列功能
插件:各类插件也拥有自己的STL标签,用以实现不同的功能。
标签不区分大小写:
属性值区分大小写:
结束标记可以省略:在没有子标签的情况下,STL 可以省略结束标记,功能一致
标签可以嵌套标签:
概述
STL标签由元素及实体组成,元素以尖括号 <>
作为标记,实体以大括号 {}
作为标记。它们两个最大区别在于元素能够嵌套子标签而实体无法嵌套子标签。
STL标签最终会被解析为 html 结构;实体标签最终会被解析为文本字符串
呈现的方式:如显示内容标题
//采用STL 元素
//采用STL 实体
{stl:content type="title"}
//内容实体的简写
{content.title}
属性值处理
STL标签的属性值使用英文双引号标识
STL实体的属性值可以使用英文双引号、英文单引号或者无标识
应用场景
通常情况下在独立使用时采用STL元素,在嵌入标签属性时采用STL实体
//独立使用时
//嵌入标签属性
type | 显示的类型 |
---|---|
channelIndex | 栏目索引,具有唯一性 |
channelName | 栏目名称 |
formatString | 对显示的日期进行格式化 |
注:===================
上下文解析原则:
默认情况下,根据 STL 标签所处环境进行解析,如下:
{content.Title}
新闻快讯/
说明:
其内部嵌套的子元素只要是获取当前栏目所属内容,就不需要再重新指定栏目索引channelIndex等属性信息。
嵌入的
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-KZNIVaLK-1689557477147)(STL语言.assets/image-20200915092503657.png)]
不难发现,解析后超链接指向本栏下内容列表的不同列表项(内容列表项使用同一个内容模板)
STL标签
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-5ybJt3F2-1689557477153)(STL语言.assets/image-20200915093207874.png)]
channelIndex:栏目索引是一个站点中栏目的标识,具有唯一性;如果设置了 channelIndex 属性,系统将寻找对应索引的栏目并将上下文切换到此栏目。
type:显示栏目属性的类型。根据后台栏目字段的不同 type 属性可以有不同的取值。详细字段请参考
formatString:对显示的日期进行格式化
如下解析内容的添加时间,并按照"yyyy-MM-dd"格式解析
解析后的 HTML 代码
2020-09-15
格式模式 | 说明 |
---|---|
dd | 月中的某一天。一位数的日期有一个前导零。 |
MM | 月份数字。一位数的月份有一个前导零。 |
yyyy | 包括纪元的四位数的年份 |
HH | 24小时制的小时。一位数的小时数有前导零 |
mm | 分钟,一位数的分钟数有一个前导零 |
ss | 秒,一位数的秒数有一个前导零 |
STL 元素 | 说明 |
---|---|
stl:channel 获取栏目值 | 通过 stl:channel 标签在模板中显示指定栏目的属性值 |
stl:channels 栏目列表 | 通过 stl:channels 标签在模板中显示栏目列表 |
stl:pageChannels 翻页栏目列表 | 通过 stl:pageChannels 标签在模板中显示翻页栏目列表 |
stl:channel 标签单独使用时,系统默认将显示当前栏目的值,如果希望显示指定栏目的值,请设置 上下文切换属性(如:channelIndex指定栏目索引)
常用属性
属性 | 说明 |
---|---|
type | 显示的类型 |
stl:channel 标签嵌套在 stl:channels以及stl:pageChannels 栏目列表标签内,系统将获取栏目列表项并通过 type 属性解析为相应的值(通常为字符串,如果字段类型为图片系统将解析为标签)
type 属性用于明确需要显示栏目的具体字段,如果未设置,系统将显示栏目名称。type类型如下:
"title" 显示栏目的名称。此值是默认的,如果没有指定属性的话
"id" 栏目 Id
"channelIndex" 栏目索引
"content" 内容 Content
"pageContent" 能够翻页显示的栏目正文
"addDate" 显示栏目添加日期
"imageUrl" 显示栏目图片
"itemIndex" 项次序数字
"countOfChannels" 子栏目数
"countOfContents" 内容数
"countOfImageContents" 图片内容数
"keywords" 关键字
"description" 页面描述
"自定义字段" 在后台栏目字段管理中自定义的字段名称
stl:channels 元素默认显示当前栏目的下级栏目列表,如果希望显示指定栏目的子栏目,请设置 上下文切换 属性
如果使用 stl:channels 元素,系统将对嵌套的标签进行解析并返回嵌套标签的循环列表。
如果使用 {stl:channels} 实体,系统将实体解析为栏目列表的JSON对象数组
常用属性
属性 | 说明 |
---|---|
channelIndex | 栏目索引 |
channelName | 栏目名称 |
startNum | 从第几条信息开始显示 |
totalNum | 显示信息总数 |
**注:**如果希望显示所有的下级栏目(包括子栏目和子子栏目),请设置属性 isAllChildren为 true
通过 stl:pageChannels 标签在模板中显示翻页栏目列表
stl:pageChannels 标签需要和 STL 标签 stl:pageItems 及 stl:pageItem 配合使用,通常将它们两个置于 stl:pageChannels 标签的下方,代表翻页按钮
stl:pageChannels 只能在栏目模版中使用,如果需要在其他类型的模版中使用必须将上面三个相互配合的标签放到 stl:dynamic 动态标签中,否则将无法被正确解析。
常用属性
属性 | 说明 |
---|---|
channelIndex | 栏目索引 |
channelName | 栏目名称 |
startNum | 从第几条信息开始显示 |
totalNum | 显示信息总数 |
pageNum | 每页显示的栏目数目 |
指定栏目 home 的子栏目名称列表
STL代码:
解析后的 HTML 代码:
新闻
人才招聘
互动交流
信息公开
显示上级栏目的所有子栏目名称列表,并在名称后显示对应的内容数
显示当前栏目下的所有子栏目的列表,每 10 个栏目翻一页,列表下方显示翻页导航
|
|
|
stl:pageItems 翻页项容器
stl:pageItem 翻页项
stl:pageItem 标签需要在标签 stl:pageItems 内使用
通过 stl:pageItem 标签在模板中显示翻页项(上一页、下一页、当前页、页跳转、页导航等)
stl:pageItem 标签内可以嵌入代码,通过 子标签 stl:yes 和 stl:no 控制当前页是否显示不同的样式
子标签 | 说明 |
---|---|
stl:yes | 能够转到对应页面时的显示模板(非当前页),可以省略 |
stl:no | 不能转到对应页面时的显示模板(当前页),可以省略 |
常用属性:
所有属于HTML 标签 的属性均适用于 stl:pageItem 标签
属性 | 说明 |
---|---|
type | 翻页类型 |
text | 显示的文字 |
type翻页类型:
"CurrentPageIndex"
当前页索引"FirstPage"
首页"LastPage"
末页"NextPage"
下一页"PageNavigation"
页导航"PageSelect"
页跳转"PreviousPage"
上一页"TotalNum"
总内容数"TotalPageNum"
总页数翻页项根据是否当前页显示不同的风格
- Prev
- {Current.Num}
- {Current.Num}
- Next
注:stl:yes 和 stl:no 通常包含 链接,其中可以包含 {Current.Url} 以及 {Current.Num} 实体,分别代表翻页链接地址及当前页页码。
显示包含 CSS 样式的组合翻页标签(上一页、数字导航及下一页)
STL 元素结构:
STL 元素 | 说明 |
---|---|
stl:content 获取内容值 | 通过 stl:content 标签在模板中显示指定内容的属性值 |
stl:contents 内容列表 | 通过 stl:contents 标签在模板中显示内容列表 |
stl:pageContents 翻页内容列表 | 通过 stl:pageContents 标签在模板中显示翻页内容列表 |
stl:content 标签在内容模板中单独使用时,系统默认将显示当前内容的值
常用属性
属性 | 说明 |
---|---|
type | 显示的类型 |
no | 显示第几项 |
如果 stl:content 标签嵌套在 stl:contents以及stl:pageContents 内容列表标签内,系统将根据内容字段的类型解析为不同的值(通常为字符串,如果字段类型为图片系统将解析为标签)
type 属性用于明确需要显示内容的具体字段,如果未设置,系统将显示内容标题。type属性值如下:
"title"
内容标题"id"
内容 Id"addUserName"
内容添加者"addDate"
内容添加时间"lastEditUserName"
最后修改内容的用户名"lastEditDate"
内容的最后修改时间"subTitle"
内容副标题"summary"
内容简介"imageUrl"
内容图片"linkUrl"
内容链接"fileUrl"
内容附件"author"
内容作者"source"
内容来源"content"
内容正文"pageContent"
能够翻页显示的内容正文"tags"
内容标签"hits"
内容总点击量"hitsByDay"
日点击量"hitsByWeek"
周点击量"hitsByMonth"
月点击量"lastHitsDate"
最后一次点击时间"itemIndex"
项次序数字"自定义字段"
在后台内容字段管理中自定义的字段名称stl:contents 元素默认显示当前栏目的内容列表,如果希望显示指定栏目的内容列表,请设置 上下文切换 属性。
如果使用 stl:contents 元素,系统将对嵌套的标签进行解析并返回嵌套标签的循环列表。
如果使用 {stl:contents} 实体,系统将实体解析为内容列表的JSON对象数组。
常用属性
所有属于 HTML 标签 table 的成员均适用于 stl:contents 标签
属性 | 说明 |
---|---|
channelIndex | 栏目索引 |
channelName | 栏目名称 |
totalNum | 显示信息总数。默认值为 0,代表显示所有信息 |
startNum | 从第几条信息开始显示。默认值为 1,代表从第一条信息开始显示 |
order | 排序 |
isTop | 仅显示置顶内容 |
isRecommend | 仅显示推荐内容 |
isHot | 仅显示热点内容 |
isColor | 仅显示醒目内容 |
属性说明
order - 排序
内容列表排序方式。此属性只可属于以下可能的取值的一种:
"default"
默认排序,即内容管理界面中的排序"back"
默认排序的相反方向"addDate"
按添加时间排序"addDateBack"
按添加时间的相反方向排序"lastEditDate"
按最后更改时间排序"lastEditDateBack"
按最后更改时间的相反方向排序"hits"
按点击量排序"hitsByDay"
按日点击量排序"hitsByWeek"
按周点击量排序"hitsByMonth"
按月点击量排序"random"
随机显示内容is 开头的属性
属性值有两个:true 和 false
如:isHot 属性值为 true,仅显示热点的内容;属性值为 false,仅显示非热点的内容
其它几个类似…
通过 stl:pageContents 标签在模板中显示翻页内容列表
stl:pageContents 标签需要和 STL 标签 stl:pageItems 及 stl:pageItem 配合使用
通常将 STL 标签 stl:pageItems 及 stl:pageItem 置于 stl:pageContents 标签的下方,代表翻页按钮。
stl:pageContents 只能在栏目模版中使用,如果需要在其他类型的模版中使用必须将 stl:pageContents 标签和对应的 stl:pageItems 翻页标签放到 stl:dynamic 动态标签中,否则 stl:pageContents 标签将无法解析。
属性
所有属于 STL 标签 stl:contents 的成员均适用于 stl:pageContents 标签,所有属于 HTML 标签
的成员均适用于 stl:pageContents标签。属性 | 说明 |
---|---|
pageNum | 每页显示的内容数目 |
maxPage | 最多生成静态页面数目 |
其它属性 同 stl:contents 标签属性
翻页容器和翻页项标签,详见 stl:pageChannels 标签栏目分页描述,使用方法一致
显示"新闻"栏目下的带图片的内容列表
STL 代码:
解析后 HTML 代码:
显示栏目索引为"starting"的栏目下的所有内容的前 7 篇列表
STL 代码:
解析后 HTML 代码:
STL 语言
STL 标签与 STL 实体
STL 模板语言规则
STL 实体说明
STL 翻页标签与实现
STL 地址通配符
显示当前栏目下的所有内容的列表,列表下方显示翻页导航
|
|
|
导航标签包含所有与页面导航相关的标签,包括链接、当前位置、导航、以及下拉菜单等
STL 元素 | 说明 |
---|---|
stl:a 获取链接 | 通过 stl:a 标签在模板中创建链接,系统将根据所处上下文计算链接地址 |
stl:location 当前位置 | 通过 stl:location 标签在模板中插入页面的当前位置 |
stl:navigation 显示导航 | 通过 stl:navigation 标签在模板中显示链接导航 |
stl:tree 树状导航 | 通过 stl:tree 标签在模板中显示树状导航 |
stl:a 元素可以创建一个到其他站点、栏目以及内容页或任何其他URL地址的超链接
标签 stl:a 在栏目模版中默认显示此栏目的链接,在内容模版中默认显示此内容的链接,如果希望显示指定栏目的链接,请设置 上下文切换 属性。
如果标签嵌入在列表标签内,则默认链接地址当前列表项的链接:
可以把任何 STL 标签或者 HTML 标签嵌套在 stl:a 元素内,如果stl:a 元素内没有嵌套任何标签,系统将把对应的栏目或者内容的名称作为嵌套文本显示出来。
如果使用 stl:a 元素,系统将解析元素为 HTML 元素。
如果使用 {stl:a} 实体,系统将解析实体为 URL地址字符串。
属性:
所有属于HTML 标签 的属性均适用于stl:a标签
属性 | 说明 |
---|---|
context | 所处上下文 |
通常如果标签被嵌套在列表元素中时,系统会设置上下文为当前的列表类型,同时对标签进行解析时也将根据列表类型进行判断。
如果希望 stl:a 标签无论在内容列表还是栏目列表下,都只显示指定链接,通过 context 属性设置,如下:
"default"
默认,即当前所处上下文。"content"
内容上下文。"channel"
栏目上下文。"sqlContent"
Sql 内容上下文。"site"
站点上下文。
栏目:
内容:
显示当前栏目的内容列表,内容链接为内容标题
STL代码:
解析后的 HTML 代码:
stl:a 标签用法
stl:a 标签示例(单独使用)
stl:a 标签示例(嵌套使用)
显示当前栏目的内容列表,内容链接为内容标题
STL代码:
解析后的 HTML 代码:
起 步
STL标签
STL实体
单独使用,显示指定索引的栏目链接
STL代码:
解析后的 HTML 代码:
首 页
STL 元素 | 说明 |
---|---|
stl:image 显示图片 | 通过 stl:image 标签在模板中显示栏目或内容的图片 |
stl:file 文件下载链接 | 通过 stl:file 标签在模板中显示文件下载链接 |
stl:video 播放视频 | 通过 stl:video 标签在模板中显示视频播放器 |
stl:audio 播放音频 | 通过 stl:audio 标签在模板中显示并播放音频文件 |
stl:flash 显示 Flash | 通过 stl:flash 标签在模板中获取并显示栏目或内容的 Flash |
stl:player 播放视频 | 通过 stl:player 标签在模板中播放视频 |
stl:focusViewer 滚动焦点图 | 通过 stl:focusViewer 标签在模板中显示滚动焦点图 |
显示栏目索引为"新闻"的栏目的内容图片列表,点击图片后新窗口打开内容页
STL代码:
解析后的 HTML 代码:
显示指定的文件图片
STL代码:
解析后的 HTML 代码:
显示当前栏目的图片,如果栏目没有图片显示,则不显示任何信息
STL代码:
解析后的 HTML 代码:
站点标签包含获取网站列表以及网站属性相关的标签。
STL 元素 | 说明 |
---|---|
stl:value 获取值 | 通过 stl:value 标签在模板中获取值 |
stl:sites 站点列表 | 通过 stl:sites 标签在模板中显示站点列表 |
stl:site 获取站点值 | 通过 stl:site 标签在模板中显示站点值 |
stl:value 获取值
type 属性可以是指定的字符串,代表"自定义模板语言"中定义的标签名称,系统将解析对应的自定义模板标签
type属性值如下:
"siteName"
站点名称"siteUrl"
站点的域名地址"date"
当前日期(不支持 isDynamic 属性)"dateOfTraditional"
带农历的当前日期(不支持 isDynamic 属性)示例:显示站点名称
附录:其它标签详见官网API https://sscms.com/docs/v6/stl/guide/elements.html#%E5%85%B6%E4%BB%96%E6%A0%87%E7%AD%BE
STL实体包裹在开始和结束大括号 {} 中,属性用空格隔开,无法包含其他标签作为子标签
// 单独使用 解析为对应的标签
{stl:a channelIndex="home"} //解析为指向 home 栏目的超链接 a 标签
// HTML属性中使用
// STL属性中使用
//JS 代码处理的对象主要是不带格式的纯数据,所以使用STL实体返回纯文本或者JSON对象非常关键
解析后的代码:
列表标签可以通过设置属性来控制所有列表项的显示方式
totalNum 设置列表一共显示多少条信息,默认值为 0,代表显示所有信息
startNum 设置列表从第几条信息开始显示,默认值为 1,代表从第一条信息开始显示
pageNum 设置翻页列表每一页显示的列表项数目,默认值为 25
此属性仅针对翻页列表标签起作用: stl:pageContents、stl:pageChannels 及 stl:pageSqlContents
maxPage 设置翻页列表最多显示多少页,默认值为 0,代表不控制显示页数
此属性在列表翻页特别多的时候可以用来控制总页数,比如只列出前10页的内容,从而提高生成页面速度
此属性仅针对翻页列表标签起作用
如下:内容列表 采用 不同的颜色交替显示(斑马线效果)