系统采用FreeMarker作为模版生成静态页面,在后台模版管理里,设计的模版须符合FreeMarker语法。学习设计J2CMS模版的最好方式是参考J2CMS自带的模版,特别是官方模版,以下是对官方模版的几点整理:
系统全局变量,对应于 常规管理->基本设置 里的各值,可在任意处调用
- 系统简称:
${C.name}
- 全称:
${C.fullName}
- 关键字:
${C.keywords}
- 描述:
${C.description}
- 负责人:
${C.ceo}
- 邮箱:
${C.email}
- QQ :
${C.qq}
- 电话:
${C.tel}
- 手机:
${C.mobile}
- 公司名称:
${C.company}
- 公司地址:
${C.address}
- 版权信息:
${C.copyright}
- 备案号:
${C.recordCode}
- 物理目录:
${C.realPath}
- 程序目录:
${C.ctp}
- 模版文件夹:
${C.templateFolder}
- 模版:
${C.template}
- 站长统计:
${C.statistics}
- 网站简介:
${C.introduce}
- 网站IP:
${C.ip}
- 程序版本:
${C.version}
首页(包括head.html,index.html)可以调用的变量
- 调用在首页显示的导航栏,这些栏目的后台栏目管理里有设置为在导航栏显示。数据存放在channelsDisplay里,channelsDisplay是一个ArrayList<Channel>,调用方式示例如下:
<ul>
<li><a href="${C.ctp}/">首页</a></li>
<#if channelsDisplay??>
<#list channelsDisplay as channel>
<#if channel.type == "link">
<li><a href="${channel.link}" target="_blank">${channel.name}</a></li>
<#else>
<#if channel.path == "/">
<li><a href="${C.ctp}/${channel.id}.html">${channel.name}</a></li>
<#else>
<li><a href="${C.ctp}${channel.path}index.html">${channel.name}</a></li>
</#if>
</#if>
</#list>
</#if>
</ul>
- 调用Flash广告或者新闻,即后台常规管理->广告图片 里的数据。数据存放在flashs和caseFlashs里。flashs是ArrayList<Flash>。每个Flash里主要用到${flash.imageURL},${flash.linkURL},${flash.name}这三个值。调用方式示例如下:
<#if flashs??>
<#list flashs as flash>
xml=xml+"<p u='${flash.imageURL}' a='${flash.linkURL}' n='${flash.name}'/>";
</#list>
</#if>
<#list caseFlashs as flash>
<li><a href="${flash.linkURL}" target="_blank" class="pic">
<img src="${flash.imageURL}" alt="${flash.name}"/></a>
<a href="${flash.linkURL}" class="title">${flash.name}</a>
</li>
</#list>
- 首页中显示的栏目内容,在栏目管理中设定的在首页中显示的栏目内容。所用到的值在java中的定义
List<Map<?,?>> channelArticleMaps = new ArrayList<Map<?,?>>();
Map <String,ArrayList<Article>> channelArticleMap = new HashMap<String,ArrayList<Article>>();
调用方式示例如下:
<#if channelArticleMaps??>
<#list channelArticleMaps as channelArticleMap>
<div class="channel">
<#list channelArticleMap?keys as channelName >
<div class="channelName"> ${channelName}</div>
<div>
<ul>
<#assign articles=channelArticleMap[channelName] >
<#if articles??>
<#list articles as articleBean>
<li><a href="${C.ctp}${articleBean.channel.contentPath}${articleBean.id?c}.html"
title='${articleBean.name!""}' target="_blank">${articleBean.name!""}</a>
<span>[${articleBean.releaseDate!""}]</span></li>
</#list>
</#if>
</ul>
</div>
</#list>
</div>
</#list>
</#if>
列表栏目参考channel.html
单面栏目参考single.html
文章栏目参考article.html