首页

通过OpenCms系统如何进行详情及列表页模板配置(图文)?

标签:实践,opencms,singleFile,contentload,opencms.uri,内容详情页,列表页模板,OpenCms,allInFolderDateReleasedDesc,内容管理系统,门户管理系统,portal,cms     发布时间:2015-12-29   

一、前言

通过OpenCms配置列表页和内容详情页模板,效果可以在小木人体验区进行登录操作预览,点击站点,切换为“/”的sites根站点节点下test目录,如下图所示,点击“test”(ArtTest.html单内容引用模板 - 点击预览,ArtListTest.jsp为发布list目录下内容列表页模板)

通过OpenCms系统如何进行详情及列表页模板配置(图文)?

二、配置步骤

一、 详情页配置

1. 在/sites站点下创建test节点,点击test,再点“新建”,选择“结构化内容”,如下图所示

通过OpenCms系统如何进行详情及列表页模板配置(图文)?

2.  选择“Article”,如下图,填下名称如“ArtTest.html”

通过OpenCms系统如何进行详情及列表页模板配置(图文)?

3. 新建详情页对应的模板页,切换到“系统管理视图”,新建“org.opencms.test”模块

通过OpenCms系统如何进行详情及列表页模板配置(图文)?

4. 如下图,在“org.opencms.test”的templates目录下,新建detailTmp.jsp文件

通过OpenCms系统如何进行详情及列表页模板配置(图文)?

5.  右击“detailTmp.jsp”编辑源代码,内容如下所示

<%@ taglib prefix="cms" uri="http://www.opencms.org/taglib/cms"%>@b@<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>@b@@b@<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">@b@<html xmlns:c="http://java.sun.com/jstl/core" xmlns:xalan="http://xml.apache.org/xslt">@b@<head>@b@    <meta content="text/html; charset=utf-8" http-equiv="content-type"/>@b@    <title>写个模板试下</title>@b@</head>@b@<body>@b@<cms:contentload collector="singleFile" param="%(opencms.uri)">@b@  标题:<cms:contentshow element="Title"/><br/>@b@  内容:<cms:contentshow element="Paragraph/Text"/><br/>@b@</cms:contentload>@b@</body>@b@</html>

6. 如上中contentshow标签的element原始对应Article的控制代码文件xsd小的命名约束规范(右击“ArtTest.html”,选择“高级”-“编辑控制代码”),如下图

QQ截图20151229141122.jpg

7. 右击“ArtTest.html”->  选择“属性”->     点击右下角“高级”按钮 ,在“高级”配置界面的template-elements绑定之前“detailTmp.jsp”模板,如下图所示

通过OpenCms系统如何进行详情及列表页模板配置(图文)?

8. 点击发布按钮,如直接点击内容(可直接预览效果)

通过OpenCms系统如何进行详情及列表页模板配置(图文)?

二、列表页配置

1.在test目录下,新增个list目录,并新建两个“artice”结构类型内容

QQ截图20151229142840.jpg

2. 新建个“ArtListTest.jsp”文件,代码如下所示

<%@ taglib prefix="cms" uri="http://www.opencms.org/taglib/cms"%>@b@<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> @b@<%@b@  String path=request.getParameter("catapath");@b@%>@b@<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">@b@<html xmlns:c="http://java.sun.com/jstl/core" xmlns:xalan="http://xml.apache.org/xslt">@b@<head>@b@    <meta content="text/html; charset=utf-8" http-equiv="content-type"/>@b@    <title>写个模板试下</title>@b@</head> @b@<body> @b@<cms:contentload collector="allInFolderDateReleasedDesc" param="/sites/test/list/art_%(number).html|v8article" editable="true"> @b@标题: @b@<a href="<cms:link><cms:contentshow element="%(opencms.filename)" /></cms:link>" target="_blank">@b@    <cms:contentshow element="Title"/>@b@</a> @b@内容:<cms:contentshow element="Paragraph/Text"/><br/> @b@</cms:contentload> @b@<cms:user property="name"/> @b@</body> @b@</html>

3. 保存发布,直接点击“ArtListTest.jsp”预览效果如下所示

QQ截图20151229143054.jpg

三、分页的列表

1.在test目录下新建一个“ArticleListPage.jsp”模板内容,复制下面内容贴进去

<%@ page session="false" import="java.text.SimpleDateFormat,java.util.Date"%>@b@<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>@b@<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>@b@<%@ taglib prefix="cms" uri="http://www.opencms.org/taglib/cms"%>@b@<html>@b@<head>@b@<title>测试待分页新闻列表页</title>@b@<cms:editable/>@b@</head>@b@<body>@b@ <!-- param="/test/news_%(number).html|testnews" 中的/test/是指定要显示信息所在的路径,根据实际情况修改,testnews是指定要显示信息的类型 -->@b@ <cms:contentload collector="allInFolderPriorityDateDesc" param="/sites/test/list/art_%(number).html|v8article"  preload="true">@b@ <!-- pageSize 即是每页要显示信息的数量 -->@b@ <cms:contentload  pageSize="3" pageIndex="%(param.pageIndex)" pageNavLength="10" editable="true">@b@ <cms:contentinfo var="contentInfo" scope="request" />@b@        <a href="<cms:link><cms:contentshow element="%(opencms.filename)" /></cms:link>" target="_blank"><cms:contentshow element="Title" /></a>@b@</cms:contentload>@b@<!-- 以下是分页开始 -->@b@<c:if test="${contentInfo.pageIndex>1}">@b@      <a href="<cms:link>${cms:getCmsObject(pageContext).requestContext.uri}</cms:link><c:out value="?pageIndex=${contentInfo.pageIndex-1}"/>">上一页</a>@b@</c:if>@b@<c:forEach var="i" begin="${contentInfo.pageNavStartIndex}" end="${contentInfo.pageNavEndIndex}">@b@  <c:choose>@b@      <c:when test="${contentInfo.pageIndex==i}">@b@                  &nbsp;<font color="red"><c:out value="${i}"/></font>@b@      </c:when>@b@      <c:otherwise>@b@                  &nbsp;<a href="<cms:link>${cms:getCmsObject(pageContext).requestContext.uri}</cms:link><c:out value="?pageIndex=${i}"/>"><c:out value="${i}"/></a>@b@      </c:otherwise>   @b@  </c:choose>@b@</c:forEach>@b@<c:if test="${contentInfo.pageIndex < contentInfo.pageCount}">@b@      &nbsp;<a href="<cms:link>${cms:getCmsObject(pageContext).requestContext.uri}</cms:link><c:out value="?pageIndex=${contentInfo.pageIndex+1}"/>">下一页</a>@b@</c:if>@b@</cms:contentload>@b@@b@</body>@b@</html>

2.点击“ArticleListPage.jsp”文件,预览效果,如下图所示

通过OpenCms系统如何进行详情及列表页模板配置(图文)?