一级栏目 二级栏目
页面结构:首页————>一级页面————>二级页面——...>N级页面——>内容页面
1.cms的模板和资源路径
- 模板路径:\apache-tomcat-8.5.34\webapps\ROOT\WEB-INF\t\cms\www
- 资源路径:\apache-tomcat-8.5.34\webapps\ROOT\r\cms\www
用自己的代码编写工具打开更易操作
2.资源引用
-
${base} 网站首页
-
${resSys} ---- /r/cms 资源目录
-
/${res}/ ----/r/cms/www/default PC资源方案目录【电脑端模板引用资源】
-
/${mobileRes!} / ----/r/cms/www/mobile 移动端资源方案目录【移动端模板引用资源】
3.模板规则(加粗为最常用的模板)
- index为首页模板
- channel为栏目模板(通常作为二级页面)
- content为内容模板(通常作为三级页面)
- alone为栏目单页模板
- comment名的为评论模板
- common为前台通用模板
- csi为包含模板
- guestbook为留言模版
- include为包含模版(引入头部和尾部)
- member为会员中心模版
- message为会员中心短消息模版
- special为特殊(投票,搜索等)模版
- topic为专题模版
4.[#include "../include/header.html"]引用头部(或者尾部)
这是引入页面头部的默认路径,我们可以新创建一个文件夹,放入我们自己的头部代码,只需更改路径即可。
5.[@cms_channel_list]...[/@cms_channel_list]获取栏目列表
这个标签常用来做导航栏
或者一级页面或者更多级页面的访问
导航栏(获取顶级栏目的栏目列表,即根目录下的栏目):
[@cms_channel_list count="9"]
[#list tag_list as a]
<!--[#if a_index<9]-->
<li><a href="${a.url}" target="_self">${a.name}</a></li>
<!--[/#if]-->
[/#list]
[/@cms_channel_list]
- 属性值可以设置:count="5" 输出5个栏目列表中的栏目,通过 list 标签遍历出来(效果与if标签差不多)
- a.url对应的就是访问路径
- a.name对应的就是栏目名称
- a.title对应的就是meta标题
- a.description对应的就是meta描述
即下面这个页面上面的东西都可以在标签内用到,用中文联想英文或者去搜一下都可以搜到
一级页面或者多级页面:
[@cms_channel_list parentId = channel.id]
[#list tag_list as a]
<li><a href="${a.url}" target="_self"><img src="${a.titleImg!}" /></a>
<span><a href="${a.url}" target="_self">${a.name}</a></span>
</li>
[/#list]
[/@cms_channel_list]
这里要用到属性为 parentId 把 channel.id 的值赋给它,channel.id 的值会在点击一级栏目时自动获取也就是父级的栏目id
这样运用 list 标签遍历出来父级栏目的子栏目
6.[@cms_channel]标签,获取栏目对象
这个标签可以用来做这种栏目块的块头部分
[@cms_channel id='106']
<img src="${tag_bean.titleImg!}" />
<img src="${tag_bean.contentImg!}" />
<a href="${tag_bean.url}" >MORE</a>
[/@cms_channel]
给它一个栏目 id,就可以通过${tag_bean.xxx}来获取栏目对象中所具有的属性
比较常用的属性有栏目的名称、标题、标题图、内容图以及 url 链接
栏目名称:${channel.name!}
访问路径: ${channel. path!}
访问URL:${channel.url!}
手机版静态页面地址:${channel. mobileUrl!}
meta标题: ${channel. title!}
meta关键字:${channel. keywords!}
meta描述: ${channel. description!}
每页记录数:${channel. pageSize!}
标题图: ${channel. titleImg!}
内容图: ${channel. contentImg!}
内容: ${channel. txt!}
栏目所在深度: ${channel. deep!} 【第一层为0,第二层为1,以此类推】
顶层栏目名称: ${channel. topChannel.name!}
浏览总量: ${channel. viewTotal!}
日浏览量: ${channel. viewDayTotal!}
月浏览量: ${channel. viewMonthTotal!}
周浏览量: ${channel. viewWeekTotal!}
总内容发布量: ${channel. contentTotal!}
日内容发布量: ${channel. contentDay!}
月内容发布量: ${channel. contentMonth!}
周内容发布量: ${channel. contentWeek!}
年内容发布量: ${channel. contentYear!}
是否有标题图:
[#if channel. hasTitleImg??]
[#if channel. hasTitleImg]有[/#if]
[/#if]
是否有内容图:
[#if channel. hasContentImg??]
[#if channel. hasContentImg]有[/#if]
[/#if]
栏目名称:${channel.name!}
访问路径: ${channel. path!}
访问URL:${channel.url!}
手机版静态页面地址:${channel. mobileUrl!}
meta标题: ${channel. title!}
meta关键字:${channel. keywords!}
meta描述: ${channel. description!}
每页记录数:${channel. pageSize!}
标题图: ${channel. titleImg!}
内容图: ${channel. contentImg!}
内容: ${channel. txt!}
栏目所在深度: ${channel. deep!} 【第一层为0,第二层为1,以此类推】
顶层栏目名称: ${channel. topChannel.name!}
浏览总量: ${channel. viewTotal!}
日浏览量: ${channel. viewDayTotal!}
月浏览量: ${channel. viewMonthTotal!}
周浏览量: ${channel. viewWeekTotal!}
总内容发布量: ${channel. contentTotal!}
日内容发布量: ${channel. contentDay!}
月内容发布量: ${channel. contentMonth!}
周内容发布量: ${channel. contentWeek!}
年内容发布量: ${channel. contentYear!}
是否有标题图:
[#if channel. hasTitleImg??]
[#if channel. hasTitleImg]有[/#if]
[/#if]
是否有内容图:
[#if channel. hasContentImg??]
[#if channel. hasContentImg]有[/#if]
[/#if]
7.[@cms_content_list]标签,获取文章内容列表
下面这一以列表形式显示的内容就用到了这个标签,下面我们来说一下属性值
[@cms_content_list typeId='1' count='6' orderBy='4' channelId='106' channelOption='0'
dateFormat='MM-dd' titLen=15 append="..."]
[#list tag_list as a]
<li><a href="${a.url}" target="_self"><span class="radius"></span><span>
[@text_cut s=a.title len=titLen append=append/]</span>
<span class="clear">[${a.date?string(dateFormat)}]</span></a></li>
[/#list]
[/@cms_content_list]
- typeId='1':这个代表的是内容的内容类型的类型 ID,这个内容类型可以在配置中看到,我们这里是普通类型
我们可以在这里修改内容的类型,比如说是否有图,图片的宽高等
- channelId="106":这个是获取到栏目的 ID 用来确定输出的内容来自于哪一个栏目
- channelOption="0" 用于单栏目情况下。 0 :自身栏目 1 :包含子栏目 2: 包含副栏目
- orderBy="4" 比较常用的值是 4 ,以固定级别降序,按发布时间降序,剩下的值的作用可以查百度
- 其次剩下的就是定义的变量:dateFormat="yyyy-MM-dd",用来确定日期的格式
titLen=15,多余文字截取的长度
append="...",设置被截取的部分的内容 - [@text_cut /]标签,就是截取文字,s=a.title 截取标题,len=titLen,截取长度,append=append,截取后显示的内容,记得封口,像是html中的空元素标签一样
- ${a.date?string(dateFormat)},固定写法用来显示日期,格式为上面自己定义的格式
- a.url,这里的URL会链接到内容页面,内容页面的模板在栏目这里设置。
8.轮播图
在使用系统自带的轮播图时先引用下面的代码:
<script src="${resSys}/jquery.js" type="text/javascript"></script>
<script src="${resSys}/front.js" type="text/javascript"></script>
[@cms_content_list typeId='3' channelId='90' count='8' styleList='2-4' titLen='16'
rollLineHeight='400' rollSpan='1' rollSpeed='1' tpl='2'/]
- typeId='3'是焦点类型,只要是带图的应该都可以
- channelId='90',轮播图要设置为一个栏目
- styleList='2-4',控制的是轮播图的滚动形式
- titLen='16',控制的是标题的长度
- rollLineHeight='400',滚动区行高
- rollSpeed='1',轮播速度越小越快,1为最小值
注意记得封口!!!
9.[@cms_friendlink_list]标签,友情链接
[@cms_friendlink_list ctgId='1']
[#list tag_list as link]
<option value="${link.domain}"> <a href="${link.domain}"
onclick="$.get('${base}/friendlink_view.jspx?id=${link.id}')"
target="_blank">${link.name}</a></option>
[/#list]
[/@cms_friendlink_list]
上面代码中是下拉框形式的,如果只是a标签可以没有onclick方法
- ctgId='1',是友情链接类型ID
- ${link.domain},就是链接的URL
10.[#list channel.nodeList as n]标签,目录结构形式
最常用的就是这样链式的显示目录结构
当前位置: <a href="${base}/" target="_self">首页</a> >
[#list channel.nodeList as n]
<a href="${n.url}" target="_self">${n.name}</a>
[#if n_has_next] > [/#if]
[/#list]
- list channel.nodeList as n,标准写法,用来显示出目录结构
- [#if n_has_next],判断n是否还有下一级孩子,如果有则输出 “>” 没有就不输出所以才有了上述效果。
11.[@cms_content_page]标签,分页显示
这是两种默认的分页样式
[@cms_content_page recommend="0" count='6' titLen='40' channelId=channel.id orderBy='4'
channelOption='0' dateFormat='yyyy-MM-dd']
[#list tag_pagination.list as a]
<div>
<p><a href="${a.url}">[@text_cut s=a.title len=titLen append='...'/]</a></p>
<span>${a.date?string(dateFormat)}</span>
</div>
[/#list]
<div class="btns">
[@cms_pagination sysPage='1'/]
</div>
[/@cms_content_page]
- recommend='0',推荐的数据 去掉该属性则无论推荐与否
- channelId=channel.id,这个channel.id是你点击了这个栏目后会自动获取到这个id,然后把它给到channelId
- channelOption='0',显示的内容,‘0’仅本身,‘1’包含子栏,‘2’包含副栏目
- [@cms_pagination sysPage='1'/] ,这个就是分页按钮,默认两种样式‘0’和‘1’