`
fxd10001
  • 浏览: 10583 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
最近访客 更多访客>>
社区版块
存档分类
最新评论

opencms templatetwo学习

阅读更多
             modulestwo中的main.jsp的构建过程
第一步构建头部区域
     <head>
<title><cms:property name="Title" file="search" /></title>
<meta name="description" content="<cms:property name="Description" file="search" />" >
<meta name="keywords" content="<cms:property name="Keywords" file="search" />" >
<meta http-equiv="Content-Type" content="text/html; charset=<cms:property name="content-encoding" file="search" default="<%= OpenCms.getSystemInfo().getDefaultEncoding() %>"/>" >
<meta name="robots" content="index, follow" >
<meta name="revisit-after" content="7 days" >

<!-- insert stylesheets needed for the template -->
<c:forEach items="${cms.stylesheets}" var="cssFile">
<link href="<cms:link>${cssFile}</cms:link>" rel="stylesheet" type="text/css">
</c:forEach>

<link href="<cms:link>../resources/css/style.css?preset=${cms.presetPath}&amp;style=${cms.stylePath}</cms:link>" rel="stylesheet" type="text/css">
<!--[if lte IE 6]>
<link href="<cms:link>%(link.weak:/system/modules/com.bestsoft/resources/css/patch_ie.css:8ffaafcc-e131-11dc-bbcd-3bdd2ea0b1ac)</cms:link>" rel="stylesheet" type="text/css">
    <![endif]-->

<!-- insert individual stylesheet -->
<c:set var="stylesheet"><cms:property name="stylesheet" file="search"/></c:set>
<c:if test="${!empty stylesheet}">
<link href="<cms:link>${stylesheet}</cms:link>" rel="stylesheet" type="text/css">
</c:if>

<cms:editable/>
</head>
   主要是用CmsTemplateLayout类去读取样式表和基本框架的内容
第二步构件body区
   1)头部导航区域
      <div id="topnav">
    <a href="#content" class="skip">Skip to Main Content</a>
    <c:if test="${!cms.options.value['TopNav'].isEmptyOrWhitespaceOnly}">
    <c:out value="${cms.options.value['TopNav']}" escapeXml="false" />
    </c:if>
    </div>
    <c:if test="${!cms.options.value['Header'].isEmptyOrWhitespaceOnly}">
    <c:out value="${cms.options.value['Header'].resolveMacros}" escapeXml="false" />
    </c:if>
</div>
<!-- end: header -->

<!-- begin: main navigation -->
<c:choose>
<c:when test="${!empty cms.styleValue['nav.main']}">
<cms:include file="${cms.styleValue['nav.main']}"/>
</c:when>
<c:otherwise>
<!-- <cms:include file="%(link.weak:/system/modules/com.bestsoft/elements/menu/nav_style2.jsp:ee5498d9-dbe4-11dc-b087-3bdd2ea0b1ac)"/> -->
</c:otherwise>
</c:choose>
<!-- end: main navigation -->

<!-- begin: breadcrumb -->
<div id="breadcrumb">
<cms:include file="%(link.weak:/system/modules/com.bestsoft/elements/breadcrumb.jsp:e72c6f1c-dbb3-11dc-af66-3bdd2ea0b1ac)" />
</div>
<!-- end: breadcrumb -->
  读区站点config文件中的option设置,主要内容有头部导航和头部图片和底部的logo;
  用resources中的nav_style.jsp与breadstrumb.jsp去动态导航;
第三步构建左部区域
    <div id="col1">
<div id="col1_content" class="clearfix">
<c:if test="${cms.presetValue['column.left.visible'] == 'true'}">
<!-- include the left navigation menu -->
<c:if test="${cms.presetValue['nav.left.visible'] == 'true'}">
<cms:include file="%(link.weak:/system/modules/com.bestsoft/elements/menu/nav_left.jsp:ee1ea4f4-d97c-11dc-bc65-3bdd2ea0b1ac)" />
</c:if>

<!-- include the boxes on the left side -->
<cms:include file="%(link.weak:/system/modules/com.bestsoft/elements/boxes.jsp:622548e8-d886-11dc-8ec1-3bdd2ea0b1ac)">
<cms:param name="orientation" value="left" />
<cms:param name="config" value="${cms.configPath}" />
</cms:include>
</c:if>
</div>
</div>
读取框架文件,由nav_left.jsp去动态创建左边的内容
第四步,构建右部区域
<div id="col3">
<div id="col3_content" class="clearfix">
<c:catch>
<c:set var="page" value="${cms:vfs(pageContext).readXml[cms:vfs(pageContext).context.uri]}" />
</c:catch>

<!-- include the boxes on the right side -->
<c:if test="${cms.presetValue['column.right.visible'] == 'true'}">
<cms:include file="%(link.weak:/system/modules/com.bestsoft/elements/boxes.jsp:622548e8-d886-11dc-8ec1-3bdd2ea0b1ac)">
<cms:param name="orientation" value="right" />
<cms:param name="config" value="${cms.configPath}" />
</cms:include>
</c:if>
               </div>
            </div>
同样由preset指定,由boxes.jsp来创建内容
第五步,构建中间和底部区域
   <div id="col2">
<div id="col2_content" class="clearfix">
<!-- anchor for accessible link to main content -->
<a id="content" name="content"></a>
</cms:template>
<cms:template element="body">
<cms:include element="body" editable="true"/>
</cms:template>
<cms:template element="foot">
<!-- include the second body from an xml page, if available -->
<c:if test="${page.hasValue['body2']}">
<cms:include element="body2" editable="true"/>
</c:if>
<!-- include the boxes in the center -->
                <cms:include file="%(link.weak:/system/modules/com.bestsoft/elements/boxes.jsp:622548e8-d886-11dc-8ec1-3bdd2ea0b1ac)">
                <cms:param name="orientation" value="center" />
<cms:param name="config" value="${cms.configPath}" />
</cms:include>
</div>
<div class="clear">&nbsp;</div>
</div>
<!-- end: center column -->
</div>
<!-- end: content area -->

<!-- begin: #footer -->
<div id="footer">
<c:if test="${!cms.options.value['Footer'].isEmptyOrWhitespaceOnly}">
    <c:out value="${cms.options.value['Footer'].resolveMacros}" escapeXml="false" />
    </c:if>
</div>
<!-- end: #footer -->

</div>
    中间是可编辑区域,最后读取option文件来配置底部框架
1
0
分享到:
评论
4 楼 stef5205 2008-09-25  
我用templatetwo模板后 main navigation 这部分始终显示不出来,不知道具体需要配置那些文件。请指教
3 楼 englisher 2008-08-27  
想向你学习一下,msn,qq方便么?
2 楼 azhoujun 2008-06-11  
看了一圈,终于明白了
原来是在 index.jsp 中设置的
1 楼 azhoujun 2008-06-11  
第一步在 <!-- insert individual stylesheet --> 的时候,使用了
<c:set var="stylesheet"><cms:property name="stylesheet" file="search"/></c:set>
我查看源代码,发现生成的结果如下:
<link href="/opencms/opencms/system/modules/org.opencms.welcome/resources/css/welcome.css" rel="stylesheet" type="text/css">
有些不明白<cms:property name="stylesheet" file="search"/>为什么会得到welcome.css的结果?API中对file="search"属性的说明是:
Look up the property by also checking all parent folders for the property, starting with the file with uri requested by the user and going "upward" if the property was not found there

按说不应该找到welcome.css文件啊?

相关推荐

    opencms9.0.1开发学习笔记资料

    本开发学习笔记旨在记录在使用该版本时遇到的问题及其解决方案,帮助开发者更好地理解和掌握 Opencms 的核心功能。 1. **Opencms 介绍和环境搭建** - **简介**:Opencms 是一个基于 Java 技术的 CMS 平台,它提供...

    OpenCms 7 Development(最好的OpenCms二次开发资料)

    3. **模块开发**:学习如何扩展OpenCms的功能,开发自定义模块。这包括理解和使用OpenCms的API,创建新的内容类型,以及构建可复用的服务和组件。 4. **集成与扩展**:书中会涵盖OpenCms与其他系统的集成,如CRM、...

    opencms二次开发

    4. **OpenCMS API**:学习和掌握OpenCMS提供的API,例如内容服务、用户管理、权限控制等,这将帮助你实现自定义功能。例如,`org.opencms.file.CmsObject`是核心接口,用于与OpenCMS系统交互。 5. **模块开发**:...

    opencms

    《OpenCms开发指南》:深入理解与定制OpenCms OpenCms是一款开源的内容管理系统,旨在为企业级网站提供高效、...通过本书的学习,读者将掌握OpenCms的核心功能和开发技巧,为构建高质量的企业级网站打下坚实的基础。

    OpenCMS

    本书不仅体现了作者深厚的理论功底,还融入了其丰富的实践经验,对于想要学习OpenCMS的读者来说是一本不可多得的好书。 #### 六、总结 OpenCMS作为一款成熟且功能丰富的开源CMS系统,在构建和管理网站方面展现出了...

    OpenCms “傻瓜建站”之 templateTwo 模块

    【OpenCms "傻瓜建站"之 templateTwo 模块】 OpenCms 是一个流行的开源内容管理系统,从7.0.4版本开始引入了templateTwo模块,它在7.0.5版本中进一步完善,成为了templateOne的升级替代方案。templateTwo的主要特点...

    opencms9 java api

    OpenCMS 是一个开源的内容管理系统(CMS),主要由Java语言开发,专为构建企业级网站提供了一个强大而灵活的平台。其Java API 提供了丰富的功能,使得开发者可以通过编程方式与OpenCMS系统进行交互,实现内容的创建...

    OpenCms中文文档完整版

    OpenCms是一款强大的开源内容管理系统(CMS),专为构建和管理网站而设计。这款系统以其易用性、灵活性和可扩展性赢得了用户的喜爱。本文将深入解析OpenCms的中文文档,帮助用户快速掌握该系统的各项功能和操作。 ...

    opencms_8.0.3入门指南.docx

    最新版本的opencms创建网站指南,是对官网上的OpenCms 8 beginner's guide to template creation.PDF英文的翻译,并对一些步骤做了详细的补充,是初学者入门创建网站详细指导

    OpenCms创建网站过程图解——献给OpenCms的初学者们

    ### OpenCms创建网站过程详解 #### 一、OpenCms简介及背景 ...需要注意的是,这只是OpenCms功能的冰山一角,要完全掌握并灵活运用OpenCms的强大功能,还需深入学习和实践。希望本文能为初学者提供一定的帮助。

    opencms配置去掉2个opencms总结

    但根据以上分析,如果你正面临类似的需求,可以尝试按照这些步骤进行操作,并结合博客文章的指导进行深入学习。记住,对任何系统的修改都需要谨慎,确保充分备份,以免造成不可逆的数据丢失或系统故障。

    OpenCms 内容类型模块

    在学习和使用 OpenCms 内容类型模块时,开发者需要了解如何创建和配置内容类型,包括定义字段、设置权限、建立关联关系以及编写对应的模板。同时,掌握 XML 和 Java 编程也是必要的,因为 OpenCms 的许多定制化工作...

    opencms7.53源代码

    OpenCms是一个开源的内容管理系统(CMS),用于构建和管理企业级的网站。...尽管新版本的OpenCms可能包含更多改进和特性,但对于学习CMS系统设计和Java Web开发基础,7.5.3版本的源代码仍然是宝贵的资源。

    OpenCMS内容管理入门指南

    源代码文件“poencms内容管理入门指南(源代码)”可能是包含了一些示例代码或演示项目,供学习者实践和理解OpenCMS的API调用、模板编写以及其他开发相关的内容。这将帮助开发者更深入地理解OpenCMS的工作原理,并能...

    opencms去掉两个tomcat

    在OpenCms系统中,有时会遇到需要在一个服务器上运行多个OpenCms实例的情况,这通常涉及到使用Apache作为前端反向代理服务器与Tomcat作为应用服务器的集成配置。然而,当不再需要这样的多实例设置时,可以按照以下...

    OpenCms7Development+src

    OpenCms7Development+src是关于OpenCms 7版本的深度学习和二次开发资源集合。OpenCms(Open Content Management System)是一个开源的内容管理系统,它允许用户通过Web界面管理网站内容,支持多种编程语言和数据库,...

    opencms 9.0.1 汉化包

    OpenCMS 是一个开源的内容管理系统(CMS),用于构建和管理企业级的网站。版本 9.0.1 是 OpenCMS 的一...同时,对于开发者而言,这也是一次学习如何定制和扩展CMS的好机会,可以深入研究汉化过程,为其他项目提供参考。

    opencms入门指南与配置源代码

    OpenCMS(Open Content Management System)是一款开源的内容管理系统,它提供了丰富的功能,帮助企业或组织构建、管理和维护网站。本文将深入探讨OpenCMS的入门知识、配置方法以及如何利用源代码进行开发。 一、...

    opencms 内容管理入门指南

    **OpenCMS内容管理入门指南** OpenCMS是一款开源的内容管理系统(CMS),它提供了强大的网站内容创建、管理和发布的功能。...通过深入学习和实践,你可以利用OpenCMS提供的功能创建出高效、易用的在线平台。

    opencms路径去掉两个opencms的方法总结

    在IT行业中,OpenCMS是一个开源的内容管理系统,用于构建和管理企业级的网站。当我们部署或使用OpenCMS时,可能会遇到URL路径中包含“opencms”两次的情况,这可能对网站的用户体验和SEO(搜索引擎优化)产生不利...

Global site tag (gtag.js) - Google Analytics