SlideShare una empresa de Scribd logo
1 de 49
Descargar para leer sin conexión
Michael Emmerich, Alkacon Software
Workshop track
How to update smoothly
to OpenCms 9
30.09.2013
● Updating your OpenCms installation
● Building a multi-version template
● Show differences between different template technologies in
OpenCms 6,7,8 and 9
● How to make a template that can be used for all template
technologies
● Showcase: Modify a website build with
xmlpages and xmlcontents into containerpages
for OpenCms 9.
● Make a smooth transition from xmlpages and xmlxontents to
continerpages
● Use both technologies at the same time
● Adjust existing xmlcontents
2
Agenda
Updating your OpenCms
installation
3
Good news:
Your existing OpenCms 8.x webapp will
run in OpenCms 9 – without any changes

(Ok, at least if you do not use OpenCms 8.0…)
4
Updating from OpenCms 8 to 9
How to upgrade:
Use the OpenCms update wizard!
5
Updating from OpenCms 8 to 9
Good news:
Your existing OpenCms 7.x webapp will
run in OpenCms 9 – most likely without
any changes 
We will see this in the showcase later
6
Updating from OpenCms 7 to 9
How to upgrade:
Use the OpenCms update wizard!
Switch to Containerpage-technology.
7
Updating from OpenCms 7 to 9
Because of several API changes between
OpenCms 6 and newer versions, your
existing OpenCms 6.x webapp will require
some changes to run in OpenCms 9
8
Updating from OpenCms 6 to 9
How to upgrade:
Make a fresh OpenCms 9 installation and
import your modules and content
Switch to Containerpage-technology.
9
Updating from OpenCms 6 to 9
Building a multi-version
template
10
Different technologies in different OpenCms versions
require different templates:
● XML-Pages (OpenCms 6 and 7)
● XML-Contents (OpenCms 6 and 7)
● Containerpages (OpenCms 8 and 9)
Make a template that can be used for all those
technologies
Allows smooth transition between different
technologies
11
Multi version template
<html>
<head>
[…]
<cms:editable />
</head>
<body>
[…]
<cms:include element=„body“ editable=„true“>
[…]
</body>
</html>
12
Template for XML-pages
<cms:template element=„head“>
<html>
<head>
[…]
<cms:editable />
</head>
<body>
[…]
</cms:template>
<cms:template element=„foot“>
[…]
</body>
</html>
</cms:template>
13
Template for XML-contents
[…]
<cms:include property=„template“ element=„head“ />
[…]
// your JSTL/JSP code is here
[…]
<cms:include property =„template“ element=„foot“ />
[…]
14
Template for XML-contents
Usage in JSPs:
<cms:template element=„head“>
<html>
<head>
[…]
<cms:editable />
</head>
<body>
[…]
</cms:template>
<cms:template element=„body“>
<cms:include element=„body“ editable=„true“>
</cms:template>
<cms:template element=„foot“>
[…]
</body>
</html>
</cms:template>
15
Template for XML-contents/pages
<html>
<head>
[…]
<cms:enable-ade />
<cms:headincludes type="css" />
<cms:headincludes type="javascript" />
</head>
<body>
[…]
<cms:container name=„main“ type=„name“ … />
[…]
</body>
</html>
16
Template for Containerpages
● Provide a „Base-Template“ with HTML for a common
head and foot
● Individual template files for V6/7 and V8/9 include
componentes of the base template
● „Main content area“ defined individual in V6/7 and V8/9
template file
● Important: Different direct edit tags required for pre-
containerpage and containerpag template file
 Parallel usage of both version, smooth content
transition possible
17
Multi-version template (MVT)
18
MVT- Base
<cms:template element=„head“>
<html>
<head>
[…]
</head>
<body>
[…]
</cms:template>
<cms:template element=„foot“>
[…]
</body>
</html>
</cms:template>
19
MVT– OpenCms 6 and 7
<cms:template element=„head“>
<cms:include file=„[Path_to_Base_Template]“ element=„head“ >
</cms:template>
<cms:template element=„body“>
<cms:include element=„body“ editable=„true“>
</cms:template>
<cms:template element=„foot“>
<cms:include file=„[Path_to_Base_Template]“ element=„foot“>
</cms:template>
20
MVT – OpenCms 8 and 9
<cms:include file=„[Path_to_Base_Template]“ element=„head“ >
<cms:container name=„left“ type=„left“ … />
<cms:container name=„main“ type=„main“ … />
<cms:container name=„right“ type=„right“ … />
<cms:include file=„[Path_to_Base_Template]“ element=„foot“>
[…]
<cms:include file=„…“ element=„head“ >
<cms:param name=„version“ value=„7“ />
</cms:include>
[…]
21
MVT – Direct Edit Version Switch
[…]
<cms:include file=„…“ element=„head“ >
<cms:param name=„version“ value=„8“ />
</cms:include>
[…]
Usage in template files for containerpages
Usage in template files for xml-contents
[…]
<head>
[…]
<c:choose>
<c:when test=“${param.verison eq ‘8‘}“ >
<cms:enable-ade />
<cms:headincludes type="css" />
<cms:headincludes type="javascript" />
</c:when>
<c:otherwise>
<cms:editable />
</c:otherwise>
</c:choose>
</head>
[…]
22
MVT – Direct Edit Version Switch
Showcase:
Migrate a website to OpenCms 9
23
● Start with:
● OpenCms 6/7 Website, XML-pages & XML-contents,
running on OpenCms 9
● 6 Steps to do:
1. Build new multiversion template
2. Use new template with XML-pages & XML-contents
3. Enable OpenCms 8/9 sitemap, use new template
with container pages
4. Replace XML-pages with new XML-contents &
formatters in containerpages
5. Modifiy exisiting XML-contents
6. Content enhancements for OpenCms 9
24
Migrate a website to OpenCms 9
● Live Demo
25
Live Demo Template-Change
Demo
Demo Demo
Demo
デモ
Step 1:
Build multiversion template
26
● Live Demo
27
Live Demo Template
Demo
Demo Demo
Demo
デモ
28
Multiversion template - containers
Header (with navigation)
Footer
Branding
Main
News
Step 2:
Use new template with XML-pages
& XML-contents
29
● If the template was defined at the site folder:
● Change the template at the site folder
● If template was set on each page:
● Use the content-tool to change the template
property value
30
Changeing the template
● Live Demo
31
Live Demo Template-Change
Demo
Demo Demo
Demo
デモ
Step 3:
Enable OpenCms 8 & 9 sitemap,
use new template with
containerpages
32
● How to make our site Sitemap & ADE enabled
(Hen & egg problem):
● Change the site folder to a subsitemap
● Create a „sitemap content folder“ in the site, the name
MUST be „.content“
● Inside, create a folder named „.new“
● Inside, create a model page (containerpage)
● Set the template property of our model page to the
new template
● Configure the model page in the sitemap configuration
 DONE, we now can use the sitemap to create new
pages
33
Enable the sitemap
● Live Demo
34
Live Demo Enable the sitemap
Demo
Demo Demo
Demo
デモ
Step 4:
Replace XML-pages with new XML-
contents & formatters in
containerpages
35
● Create new module with simple XSD as
replacement
● Title, Text, Image in our example
● Add resourcetype in opencms-modules.xml
● Write formatter
● Register the content in the Module-config
(„.config“ file)
new content can now be used
36
Replace XML-pages
[…]
<xsd:appinfo>
[…]
<mappings>
<mapping element="Title" mapto="property:Title" />
<mapping element="Title" mapto="urlName" />
</mappings>
[…]
<formatters>
<formatter type="main"
uri="/system/modules/org.opencms.mun.article/formatters/
main.jsp" searchcontent="true" />
</formatters>
</xsd:appinfo>
[…]
37
Replace XML-pages
● Live Demo
38
Live Demo Replace XML-pages
Demo
Demo Demo
Demo
デモ
Step 5:
Modify existing XML-contents
39
● Modify the existing XSD
● Formatter, Title and URL mapping
● Write formatter
● Use old detail.jsp for it
● Register the content in the Module-config
(„.config“ file)
Modified content can now be used
40
Modify XML-contents
41
Transformation into formatter
OpenCms 6 & 7 (Detail-JSP)
[…]
<cms:include property="template"
element="head" />
<cms:contentload
collector="singleFile"
param="%(opencms.uri)"
editable="true">
<cms:contentaccess var="content"
scope="page" />
[…]
${content.value.Title}
[…]
</cms:contentload>
<cms:include property="template"
element="foot" />
OpenCms 8 & 9(Formatter)
[…]
<!–- no template-include -->
<cms:formatter var="content"
val="value">
<!– no init of contentaccess -->
[…]
${content.value.Title}
[…]
</cms:formatter>
<!–- no template-include -->
● Typical example: News list
● Move existing news contents to new location under
„.content“
● Define Function Elements
● Can be inserted via Drag&Drop (Dynamic Functions)
● Reuse existing JSPs
● Optional: Make them configurable via settings
● Define Setting in Function Element
● Access setting in JSP
● Define Detailpages
42
Lists of XML contents
43
Configurable Dynamic Elements
[…]
<c:set var="newspath" value="/.content/news/" />
<c:if test="${not empty cms.element.settings.Path}">
<c:set var="newspath" value="${cms.element.settings.Path}" />
</c:if>
[…]
<cms:contentload collector="allInFolderDateAsc"
param="${newspath}news_%(number).html|news|150" editable="true" >
[…]
● Live Demo
44
Live Demo Modify XML-contents
Demo
Demo Demo
Demo
デモ
Step 6:
Content enhancements for
OpenCms 9
45
● New feature in OpenCms 9: Individual
Detailpages
● Add new container in template:
46
Individual Detailpages
[…]
<div id="contents">
<cms:container name="branding" type="branding" width="600" detailview="false"/>
<cms:container name="brandingDetail" type="branding" width="600" detailonly="true“
<div class="body clearfix">
<cms:container name="main" type="main" width="600" detailview="true"/>
</div>
</div>
[…]
● Add individual contents on detailpage
● Live Demo
47
Live Demo Individual Detailpages
Demo
Demo Demo
Demo
デモ
● Any Questions?
48
Any Questions?
Fragen?
Questions ?
Questiones?
¿Preguntas?質問
Michael Emmerich
Alkacon Software GmbH
http://www.alkacon.com
http://www.opencms.org
Thank you very much for your
attention!
49

Más contenido relacionado

La actualidad más candente

OpenCms Days 2016: Next generation content repository
OpenCms Days 2016: Next generation content repository OpenCms Days 2016: Next generation content repository
OpenCms Days 2016: Next generation content repository Alkacon Software GmbH & Co. KG
 
OpenCms Days 2014 - Responsive bootstrap templates reloaded
OpenCms Days 2014 - Responsive bootstrap templates reloadedOpenCms Days 2014 - Responsive bootstrap templates reloaded
OpenCms Days 2014 - Responsive bootstrap templates reloadedAlkacon Software GmbH & Co. KG
 
OpenCms Days 2015: Keynote - OpenCms 10 X marks the spot
OpenCms Days 2015: Keynote - OpenCms 10 X marks the spotOpenCms Days 2015: Keynote - OpenCms 10 X marks the spot
OpenCms Days 2015: Keynote - OpenCms 10 X marks the spotOpenCms
 
OpenCms Days 2014 - OpenCms Module Development and Deployment with IntelliJ, ...
OpenCms Days 2014 - OpenCms Module Development and Deployment with IntelliJ, ...OpenCms Days 2014 - OpenCms Module Development and Deployment with IntelliJ, ...
OpenCms Days 2014 - OpenCms Module Development and Deployment with IntelliJ, ...Alkacon Software GmbH & Co. KG
 
OpenCms Days 2014 - Enhancing OpenCms front end development with Sass and Grunt
OpenCms Days 2014 - Enhancing OpenCms front end development with Sass and GruntOpenCms Days 2014 - Enhancing OpenCms front end development with Sass and Grunt
OpenCms Days 2014 - Enhancing OpenCms front end development with Sass and GruntAlkacon Software GmbH & Co. KG
 
OpenCmsDays 2013 - Using OpenCms 9 folders as a network drive
OpenCmsDays 2013 - Using OpenCms 9 folders as a network driveOpenCmsDays 2013 - Using OpenCms 9 folders as a network drive
OpenCmsDays 2013 - Using OpenCms 9 folders as a network driveAlkacon Software GmbH & Co. KG
 
OpenCms Days 2015 Modern templates with nested containers
OpenCms Days 2015 Modern templates with nested containersOpenCms Days 2015 Modern templates with nested containers
OpenCms Days 2015 Modern templates with nested containersAlkacon Software GmbH & Co. KG
 
Improving build solutions dependency management with webpack
Improving build solutions  dependency management with webpackImproving build solutions  dependency management with webpack
Improving build solutions dependency management with webpackNodeXperts
 
Drupal 8 improvements for developer productivity php symfony and more
Drupal 8 improvements for developer productivity  php symfony and moreDrupal 8 improvements for developer productivity  php symfony and more
Drupal 8 improvements for developer productivity php symfony and moreAcquia
 
Front-end build tools - Webpack
Front-end build tools - WebpackFront-end build tools - Webpack
Front-end build tools - WebpackRazvan Rosu
 
Webpack Introduction
Webpack IntroductionWebpack Introduction
Webpack IntroductionAnjali Chawla
 
Extending JBoss EPP and Site Publisher your way
Extending JBoss EPP and Site Publisher your wayExtending JBoss EPP and Site Publisher your way
Extending JBoss EPP and Site Publisher your wayrafaelliu
 
OpenCms Days 2013 - Details of the OpenCms 9 detail pages
OpenCms Days 2013 - Details of the OpenCms 9 detail pagesOpenCms Days 2013 - Details of the OpenCms 9 detail pages
OpenCms Days 2013 - Details of the OpenCms 9 detail pagesAlkacon Software GmbH & Co. KG
 
Drupal + composer = new love !?
Drupal + composer = new love !?Drupal + composer = new love !?
Drupal + composer = new love !?nuppla
 
Bundle your modules with Webpack
Bundle your modules with WebpackBundle your modules with Webpack
Bundle your modules with WebpackJake Peyser
 

La actualidad más candente (20)

OpenCms Days 2016: Next generation content repository
OpenCms Days 2016: Next generation content repository OpenCms Days 2016: Next generation content repository
OpenCms Days 2016: Next generation content repository
 
OpenCms Days 2014 - Responsive bootstrap templates reloaded
OpenCms Days 2014 - Responsive bootstrap templates reloadedOpenCms Days 2014 - Responsive bootstrap templates reloaded
OpenCms Days 2014 - Responsive bootstrap templates reloaded
 
OpenCms Days 2016: Keynote - Introducing OpenCms 10.5
OpenCms Days 2016:   Keynote - Introducing OpenCms 10.5OpenCms Days 2016:   Keynote - Introducing OpenCms 10.5
OpenCms Days 2016: Keynote - Introducing OpenCms 10.5
 
OpenCms Days 2015: Keynote - OpenCms 10 X marks the spot
OpenCms Days 2015: Keynote - OpenCms 10 X marks the spotOpenCms Days 2015: Keynote - OpenCms 10 X marks the spot
OpenCms Days 2015: Keynote - OpenCms 10 X marks the spot
 
OpenCms Days 2014 - Nested containers in action
OpenCms Days 2014 - Nested containers in actionOpenCms Days 2014 - Nested containers in action
OpenCms Days 2014 - Nested containers in action
 
OpenCms Days 2014 - OpenCms Module Development and Deployment with IntelliJ, ...
OpenCms Days 2014 - OpenCms Module Development and Deployment with IntelliJ, ...OpenCms Days 2014 - OpenCms Module Development and Deployment with IntelliJ, ...
OpenCms Days 2014 - OpenCms Module Development and Deployment with IntelliJ, ...
 
OpenCms Days 2014 - Enhancing OpenCms front end development with Sass and Grunt
OpenCms Days 2014 - Enhancing OpenCms front end development with Sass and GruntOpenCms Days 2014 - Enhancing OpenCms front end development with Sass and Grunt
OpenCms Days 2014 - Enhancing OpenCms front end development with Sass and Grunt
 
OpenCms Days 2015 Next generation repository
OpenCms Days 2015  Next generation repositoryOpenCms Days 2015  Next generation repository
OpenCms Days 2015 Next generation repository
 
OpenCms Days 2015 How do you develop for OpenCms?
OpenCms Days 2015 How do you develop for OpenCms?OpenCms Days 2015 How do you develop for OpenCms?
OpenCms Days 2015 How do you develop for OpenCms?
 
OpenCmsDays 2013 - Using OpenCms 9 folders as a network drive
OpenCmsDays 2013 - Using OpenCms 9 folders as a network driveOpenCmsDays 2013 - Using OpenCms 9 folders as a network drive
OpenCmsDays 2013 - Using OpenCms 9 folders as a network drive
 
OpenCms Days 2015 Modern templates with nested containers
OpenCms Days 2015 Modern templates with nested containersOpenCms Days 2015 Modern templates with nested containers
OpenCms Days 2015 Modern templates with nested containers
 
Improving build solutions dependency management with webpack
Improving build solutions  dependency management with webpackImproving build solutions  dependency management with webpack
Improving build solutions dependency management with webpack
 
OpenCms Days 2015 Advanced Solr Searching
OpenCms Days 2015 Advanced Solr SearchingOpenCms Days 2015 Advanced Solr Searching
OpenCms Days 2015 Advanced Solr Searching
 
Drupal 8 improvements for developer productivity php symfony and more
Drupal 8 improvements for developer productivity  php symfony and moreDrupal 8 improvements for developer productivity  php symfony and more
Drupal 8 improvements for developer productivity php symfony and more
 
Front-end build tools - Webpack
Front-end build tools - WebpackFront-end build tools - Webpack
Front-end build tools - Webpack
 
Webpack Introduction
Webpack IntroductionWebpack Introduction
Webpack Introduction
 
Extending JBoss EPP and Site Publisher your way
Extending JBoss EPP and Site Publisher your wayExtending JBoss EPP and Site Publisher your way
Extending JBoss EPP and Site Publisher your way
 
OpenCms Days 2013 - Details of the OpenCms 9 detail pages
OpenCms Days 2013 - Details of the OpenCms 9 detail pagesOpenCms Days 2013 - Details of the OpenCms 9 detail pages
OpenCms Days 2013 - Details of the OpenCms 9 detail pages
 
Drupal + composer = new love !?
Drupal + composer = new love !?Drupal + composer = new love !?
Drupal + composer = new love !?
 
Bundle your modules with Webpack
Bundle your modules with WebpackBundle your modules with Webpack
Bundle your modules with Webpack
 

Destacado

OpenCms Days 2012 - The Dispatch - Running OpenCms 8 on Amazon cloud services
OpenCms Days 2012 - The Dispatch - Running OpenCms 8 on Amazon cloud servicesOpenCms Days 2012 - The Dispatch - Running OpenCms 8 on Amazon cloud services
OpenCms Days 2012 - The Dispatch - Running OpenCms 8 on Amazon cloud servicesAlkacon Software GmbH & Co. KG
 
OpenCms Days 2013 - Gradle based OpenCms build automated setup
OpenCms Days 2013 - Gradle based OpenCms build automated setupOpenCms Days 2013 - Gradle based OpenCms build automated setup
OpenCms Days 2013 - Gradle based OpenCms build automated setupAlkacon Software GmbH & Co. KG
 
OpenCms Days 2012 - OpenCms 8.5: Accessing the VFS repository using CMIS
OpenCms Days 2012 - OpenCms 8.5: Accessing the VFS repository using CMISOpenCms Days 2012 - OpenCms 8.5: Accessing the VFS repository using CMIS
OpenCms Days 2012 - OpenCms 8.5: Accessing the VFS repository using CMISAlkacon Software GmbH & Co. KG
 
OpenCms Days 2013 - Outsourcing OpenCms Template Design
OpenCms Days 2013 - Outsourcing OpenCms Template DesignOpenCms Days 2013 - Outsourcing OpenCms Template Design
OpenCms Days 2013 - Outsourcing OpenCms Template DesignAlkacon Software GmbH & Co. KG
 
OpenCms Days 2012 - How Software AG is optimizing workflows with OpenCms 8 an...
OpenCms Days 2012 - How Software AG is optimizing workflows with OpenCms 8 an...OpenCms Days 2012 - How Software AG is optimizing workflows with OpenCms 8 an...
OpenCms Days 2012 - How Software AG is optimizing workflows with OpenCms 8 an...Alkacon Software GmbH & Co. KG
 
OpenCms Days 2014 - Introducing the 9.5 OpenCms documentation
OpenCms Days 2014 - Introducing the 9.5 OpenCms documentationOpenCms Days 2014 - Introducing the 9.5 OpenCms documentation
OpenCms Days 2014 - Introducing the 9.5 OpenCms documentationAlkacon Software GmbH & Co. KG
 
Internal and external business environment
Internal and external business environmentInternal and external business environment
Internal and external business environmentAashish Sahi
 

Destacado (12)

OpenCms Days 2012 - OpenCms on open clouds
OpenCms Days 2012 - OpenCms on open cloudsOpenCms Days 2012 - OpenCms on open clouds
OpenCms Days 2012 - OpenCms on open clouds
 
OpenCms Days 2012 - The Dispatch - Running OpenCms 8 on Amazon cloud services
OpenCms Days 2012 - The Dispatch - Running OpenCms 8 on Amazon cloud servicesOpenCms Days 2012 - The Dispatch - Running OpenCms 8 on Amazon cloud services
OpenCms Days 2012 - The Dispatch - Running OpenCms 8 on Amazon cloud services
 
OpenCms Days 2012 - Developing OpenCms with Gradle
OpenCms Days 2012 - Developing OpenCms with GradleOpenCms Days 2012 - Developing OpenCms with Gradle
OpenCms Days 2012 - Developing OpenCms with Gradle
 
OpenCms Days 2013 - Gradle based OpenCms build automated setup
OpenCms Days 2013 - Gradle based OpenCms build automated setupOpenCms Days 2013 - Gradle based OpenCms build automated setup
OpenCms Days 2013 - Gradle based OpenCms build automated setup
 
OpenCms Days 2013 - OpenCms Partner Program
OpenCms Days 2013 - OpenCms Partner ProgramOpenCms Days 2013 - OpenCms Partner Program
OpenCms Days 2013 - OpenCms Partner Program
 
OpenCms Days 2013 - Social Connect for OpenCms Portal
OpenCms Days 2013 - Social Connect for OpenCms PortalOpenCms Days 2013 - Social Connect for OpenCms Portal
OpenCms Days 2013 - Social Connect for OpenCms Portal
 
OpenCms Days 2012 - OpenCms 8.5: Accessing the VFS repository using CMIS
OpenCms Days 2012 - OpenCms 8.5: Accessing the VFS repository using CMISOpenCms Days 2012 - OpenCms 8.5: Accessing the VFS repository using CMIS
OpenCms Days 2012 - OpenCms 8.5: Accessing the VFS repository using CMIS
 
OpenCms Days 2013 - Outsourcing OpenCms Template Design
OpenCms Days 2013 - Outsourcing OpenCms Template DesignOpenCms Days 2013 - Outsourcing OpenCms Template Design
OpenCms Days 2013 - Outsourcing OpenCms Template Design
 
OpenCms Days 2012 - How Software AG is optimizing workflows with OpenCms 8 an...
OpenCms Days 2012 - How Software AG is optimizing workflows with OpenCms 8 an...OpenCms Days 2012 - How Software AG is optimizing workflows with OpenCms 8 an...
OpenCms Days 2012 - How Software AG is optimizing workflows with OpenCms 8 an...
 
OpenCms Days 2015 OpenGovernment
OpenCms Days 2015 OpenGovernmentOpenCms Days 2015 OpenGovernment
OpenCms Days 2015 OpenGovernment
 
OpenCms Days 2014 - Introducing the 9.5 OpenCms documentation
OpenCms Days 2014 - Introducing the 9.5 OpenCms documentationOpenCms Days 2014 - Introducing the 9.5 OpenCms documentation
OpenCms Days 2014 - Introducing the 9.5 OpenCms documentation
 
Internal and external business environment
Internal and external business environmentInternal and external business environment
Internal and external business environment
 

Similar a OpenCms Days 2013 - How to update smoothly to OpenCms 9ms 9

OrchardCMS module development
OrchardCMS module developmentOrchardCMS module development
OrchardCMS module developmentJay Harris
 
Артем Сильчук - Respond in 60ms. Extremal optimization with reinventing a wheel
Артем Сильчук - Respond in 60ms. Extremal optimization with reinventing a wheelАртем Сильчук - Respond in 60ms. Extremal optimization with reinventing a wheel
Артем Сильчук - Respond in 60ms. Extremal optimization with reinventing a wheelLEDC 2016
 
Drupal training-by-ruchiwebsolutions
Drupal training-by-ruchiwebsolutionsDrupal training-by-ruchiwebsolutions
Drupal training-by-ruchiwebsolutionsphp2ranjan
 
Build and deploy Python Django project
Build and deploy Python Django projectBuild and deploy Python Django project
Build and deploy Python Django projectXiaoqi Zhao
 
Adobe Experience Manager Core Components
Adobe Experience Manager Core ComponentsAdobe Experience Manager Core Components
Adobe Experience Manager Core ComponentsGabriel Walt
 
AngularJS: an introduction
AngularJS: an introductionAngularJS: an introduction
AngularJS: an introductionLuigi De Russis
 
Designing for magento
Designing for magentoDesigning for magento
Designing for magentohainutemicute
 
Stencil the time for vanilla web components has arrived
Stencil the time for vanilla web components has arrivedStencil the time for vanilla web components has arrived
Stencil the time for vanilla web components has arrivedGil Fink
 
OpenCms Days 2014 - OpenCms content editor and pdf extensions
OpenCms Days 2014 - OpenCms content editor and pdf extensionsOpenCms Days 2014 - OpenCms content editor and pdf extensions
OpenCms Days 2014 - OpenCms content editor and pdf extensionsAlkacon Software GmbH & Co. KG
 
Odoo - Create themes for website
Odoo - Create themes for websiteOdoo - Create themes for website
Odoo - Create themes for websiteOdoo
 
Java script Advance
Java script   AdvanceJava script   Advance
Java script AdvanceJaya Kumari
 
Servlets Java Slides & Presentation
Servlets Java Slides & Presentation Servlets Java Slides & Presentation
Servlets Java Slides & Presentation Anas Sa
 
EECI2009 - From Design to Dynamic - Rapid ExpressionEngine Development
EECI2009 - From Design to Dynamic - Rapid ExpressionEngine DevelopmentEECI2009 - From Design to Dynamic - Rapid ExpressionEngine Development
EECI2009 - From Design to Dynamic - Rapid ExpressionEngine DevelopmentFortySeven Media
 
Thinking in Components
Thinking in ComponentsThinking in Components
Thinking in ComponentsAnton Ivanov
 

Similar a OpenCms Days 2013 - How to update smoothly to OpenCms 9ms 9 (20)

Django
DjangoDjango
Django
 
OpenCms Days 2015 OpenCms X marks the spot
OpenCms Days 2015 OpenCms X marks the spotOpenCms Days 2015 OpenCms X marks the spot
OpenCms Days 2015 OpenCms X marks the spot
 
OrchardCMS module development
OrchardCMS module developmentOrchardCMS module development
OrchardCMS module development
 
Артем Сильчук - Respond in 60ms. Extremal optimization with reinventing a wheel
Артем Сильчук - Respond in 60ms. Extremal optimization with reinventing a wheelАртем Сильчук - Respond in 60ms. Extremal optimization with reinventing a wheel
Артем Сильчук - Respond in 60ms. Extremal optimization with reinventing a wheel
 
Drupal training-by-ruchiwebsolutions
Drupal training-by-ruchiwebsolutionsDrupal training-by-ruchiwebsolutions
Drupal training-by-ruchiwebsolutions
 
OpenCms Days 2014 Keynote - Step up to OpenCms 9.5
OpenCms Days 2014 Keynote - Step up to OpenCms 9.5OpenCms Days 2014 Keynote - Step up to OpenCms 9.5
OpenCms Days 2014 Keynote - Step up to OpenCms 9.5
 
Build and deploy Python Django project
Build and deploy Python Django projectBuild and deploy Python Django project
Build and deploy Python Django project
 
Adobe Experience Manager Core Components
Adobe Experience Manager Core ComponentsAdobe Experience Manager Core Components
Adobe Experience Manager Core Components
 
AngularJS: an introduction
AngularJS: an introductionAngularJS: an introduction
AngularJS: an introduction
 
Designing for magento
Designing for magentoDesigning for magento
Designing for magento
 
Moving to Drupal
Moving to DrupalMoving to Drupal
Moving to Drupal
 
Stencil the time for vanilla web components has arrived
Stencil the time for vanilla web components has arrivedStencil the time for vanilla web components has arrived
Stencil the time for vanilla web components has arrived
 
OpenCms Days 2014 - OpenCms content editor and pdf extensions
OpenCms Days 2014 - OpenCms content editor and pdf extensionsOpenCms Days 2014 - OpenCms content editor and pdf extensions
OpenCms Days 2014 - OpenCms content editor and pdf extensions
 
Odoo - Create themes for website
Odoo - Create themes for websiteOdoo - Create themes for website
Odoo - Create themes for website
 
JavaScripts & jQuery
JavaScripts & jQueryJavaScripts & jQuery
JavaScripts & jQuery
 
Java script Advance
Java script   AdvanceJava script   Advance
Java script Advance
 
Servlets
ServletsServlets
Servlets
 
Servlets Java Slides & Presentation
Servlets Java Slides & Presentation Servlets Java Slides & Presentation
Servlets Java Slides & Presentation
 
EECI2009 - From Design to Dynamic - Rapid ExpressionEngine Development
EECI2009 - From Design to Dynamic - Rapid ExpressionEngine DevelopmentEECI2009 - From Design to Dynamic - Rapid ExpressionEngine Development
EECI2009 - From Design to Dynamic - Rapid ExpressionEngine Development
 
Thinking in Components
Thinking in ComponentsThinking in Components
Thinking in Components
 

Más de Alkacon Software GmbH & Co. KG

Más de Alkacon Software GmbH & Co. KG (10)

OpenCms Days 2016: Participation and transparency portals with OpenCms
OpenCms Days 2016: Participation and transparency portals with OpenCmsOpenCms Days 2016: Participation and transparency portals with OpenCms
OpenCms Days 2016: Participation and transparency portals with OpenCms
 
OpenCms Days 2016: OpenCms at the swiss seismological service
OpenCms Days 2016: OpenCms at the swiss seismological serviceOpenCms Days 2016: OpenCms at the swiss seismological service
OpenCms Days 2016: OpenCms at the swiss seismological service
 
OpenCms Days 2015 OCEE explained
OpenCms Days 2015 OCEE explainedOpenCms Days 2015 OCEE explained
OpenCms Days 2015 OCEE explained
 
OpenCms Days 2015 OpenCms at erarta
OpenCms Days 2015 OpenCms at erarta OpenCms Days 2015 OpenCms at erarta
OpenCms Days 2015 OpenCms at erarta
 
OpenCms Days 2015 Arkema, a leading chemicals company
OpenCms Days 2015 Arkema, a leading chemicals companyOpenCms Days 2015 Arkema, a leading chemicals company
OpenCms Days 2015 Arkema, a leading chemicals company
 
OpenCms Days 2014 - How Techem handles international customer portals
OpenCms Days 2014 - How Techem handles international customer portalsOpenCms Days 2014 - How Techem handles international customer portals
OpenCms Days 2014 - How Techem handles international customer portals
 
OpenCms Days 2014 - OpenCms cloud setup with the FI-TS
OpenCms Days 2014 - OpenCms cloud setup with the FI-TSOpenCms Days 2014 - OpenCms cloud setup with the FI-TS
OpenCms Days 2014 - OpenCms cloud setup with the FI-TS
 
OpenCms Days 2014 - OpenCms 9 - A video tube?
OpenCms Days 2014 - OpenCms 9 - A video tube?OpenCms Days 2014 - OpenCms 9 - A video tube?
OpenCms Days 2014 - OpenCms 9 - A video tube?
 
OpenCms Days 2014 - User Generated Content in OpenCms 9.5
OpenCms Days 2014 - User Generated Content in OpenCms 9.5OpenCms Days 2014 - User Generated Content in OpenCms 9.5
OpenCms Days 2014 - User Generated Content in OpenCms 9.5
 
OpenCms Days 2014 - Using the SOLR collector
OpenCms Days 2014 - Using the SOLR collectorOpenCms Days 2014 - Using the SOLR collector
OpenCms Days 2014 - Using the SOLR collector
 

Último

08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking MenDelhi Call girls
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)Gabriella Davis
 
Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Paola De la Torre
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonetsnaman860154
 
SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024Scott Keck-Warren
 
SIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge GraphSIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge GraphNeo4j
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Allon Mureinik
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitecturePixlogix Infotech
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationSafe Software
 
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024BookNet Canada
 
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | DelhiFULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhisoniya singh
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationRidwan Fadjar
 
Key Features Of Token Development (1).pptx
Key  Features Of Token  Development (1).pptxKey  Features Of Token  Development (1).pptx
Key Features Of Token Development (1).pptxLBM Solutions
 
Pigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions
 
Maximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxMaximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxOnBoard
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxKatpro Technologies
 
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024BookNet Canada
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationRadu Cotescu
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptxHampshireHUG
 
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Alan Dix
 

Último (20)

08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024
 
SIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge GraphSIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge Graph
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC Architecture
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
 
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
 
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | DelhiFULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
FULL ENJOY 🔝 8264348440 🔝 Call Girls in Diplomatic Enclave | Delhi
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 Presentation
 
Key Features Of Token Development (1).pptx
Key  Features Of Token  Development (1).pptxKey  Features Of Token  Development (1).pptx
Key Features Of Token Development (1).pptx
 
Pigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food Manufacturing
 
Maximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxMaximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptx
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
 
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...Swan(sea) Song – personal research during my six years at Swansea ... and bey...
Swan(sea) Song – personal research during my six years at Swansea ... and bey...
 

OpenCms Days 2013 - How to update smoothly to OpenCms 9ms 9

  • 1. Michael Emmerich, Alkacon Software Workshop track How to update smoothly to OpenCms 9 30.09.2013
  • 2. ● Updating your OpenCms installation ● Building a multi-version template ● Show differences between different template technologies in OpenCms 6,7,8 and 9 ● How to make a template that can be used for all template technologies ● Showcase: Modify a website build with xmlpages and xmlcontents into containerpages for OpenCms 9. ● Make a smooth transition from xmlpages and xmlxontents to continerpages ● Use both technologies at the same time ● Adjust existing xmlcontents 2 Agenda
  • 4. Good news: Your existing OpenCms 8.x webapp will run in OpenCms 9 – without any changes  (Ok, at least if you do not use OpenCms 8.0…) 4 Updating from OpenCms 8 to 9
  • 5. How to upgrade: Use the OpenCms update wizard! 5 Updating from OpenCms 8 to 9
  • 6. Good news: Your existing OpenCms 7.x webapp will run in OpenCms 9 – most likely without any changes  We will see this in the showcase later 6 Updating from OpenCms 7 to 9
  • 7. How to upgrade: Use the OpenCms update wizard! Switch to Containerpage-technology. 7 Updating from OpenCms 7 to 9
  • 8. Because of several API changes between OpenCms 6 and newer versions, your existing OpenCms 6.x webapp will require some changes to run in OpenCms 9 8 Updating from OpenCms 6 to 9
  • 9. How to upgrade: Make a fresh OpenCms 9 installation and import your modules and content Switch to Containerpage-technology. 9 Updating from OpenCms 6 to 9
  • 11. Different technologies in different OpenCms versions require different templates: ● XML-Pages (OpenCms 6 and 7) ● XML-Contents (OpenCms 6 and 7) ● Containerpages (OpenCms 8 and 9) Make a template that can be used for all those technologies Allows smooth transition between different technologies 11 Multi version template
  • 12. <html> <head> […] <cms:editable /> </head> <body> […] <cms:include element=„body“ editable=„true“> […] </body> </html> 12 Template for XML-pages
  • 13. <cms:template element=„head“> <html> <head> […] <cms:editable /> </head> <body> […] </cms:template> <cms:template element=„foot“> […] </body> </html> </cms:template> 13 Template for XML-contents
  • 14. […] <cms:include property=„template“ element=„head“ /> […] // your JSTL/JSP code is here […] <cms:include property =„template“ element=„foot“ /> […] 14 Template for XML-contents Usage in JSPs:
  • 15. <cms:template element=„head“> <html> <head> […] <cms:editable /> </head> <body> […] </cms:template> <cms:template element=„body“> <cms:include element=„body“ editable=„true“> </cms:template> <cms:template element=„foot“> […] </body> </html> </cms:template> 15 Template for XML-contents/pages
  • 16. <html> <head> […] <cms:enable-ade /> <cms:headincludes type="css" /> <cms:headincludes type="javascript" /> </head> <body> […] <cms:container name=„main“ type=„name“ … /> […] </body> </html> 16 Template for Containerpages
  • 17. ● Provide a „Base-Template“ with HTML for a common head and foot ● Individual template files for V6/7 and V8/9 include componentes of the base template ● „Main content area“ defined individual in V6/7 and V8/9 template file ● Important: Different direct edit tags required for pre- containerpage and containerpag template file  Parallel usage of both version, smooth content transition possible 17 Multi-version template (MVT)
  • 19. 19 MVT– OpenCms 6 and 7 <cms:template element=„head“> <cms:include file=„[Path_to_Base_Template]“ element=„head“ > </cms:template> <cms:template element=„body“> <cms:include element=„body“ editable=„true“> </cms:template> <cms:template element=„foot“> <cms:include file=„[Path_to_Base_Template]“ element=„foot“> </cms:template>
  • 20. 20 MVT – OpenCms 8 and 9 <cms:include file=„[Path_to_Base_Template]“ element=„head“ > <cms:container name=„left“ type=„left“ … /> <cms:container name=„main“ type=„main“ … /> <cms:container name=„right“ type=„right“ … /> <cms:include file=„[Path_to_Base_Template]“ element=„foot“>
  • 21. […] <cms:include file=„…“ element=„head“ > <cms:param name=„version“ value=„7“ /> </cms:include> […] 21 MVT – Direct Edit Version Switch […] <cms:include file=„…“ element=„head“ > <cms:param name=„version“ value=„8“ /> </cms:include> […] Usage in template files for containerpages Usage in template files for xml-contents
  • 22. […] <head> […] <c:choose> <c:when test=“${param.verison eq ‘8‘}“ > <cms:enable-ade /> <cms:headincludes type="css" /> <cms:headincludes type="javascript" /> </c:when> <c:otherwise> <cms:editable /> </c:otherwise> </c:choose> </head> […] 22 MVT – Direct Edit Version Switch
  • 23. Showcase: Migrate a website to OpenCms 9 23
  • 24. ● Start with: ● OpenCms 6/7 Website, XML-pages & XML-contents, running on OpenCms 9 ● 6 Steps to do: 1. Build new multiversion template 2. Use new template with XML-pages & XML-contents 3. Enable OpenCms 8/9 sitemap, use new template with container pages 4. Replace XML-pages with new XML-contents & formatters in containerpages 5. Modifiy exisiting XML-contents 6. Content enhancements for OpenCms 9 24 Migrate a website to OpenCms 9
  • 25. ● Live Demo 25 Live Demo Template-Change Demo Demo Demo Demo デモ
  • 27. ● Live Demo 27 Live Demo Template Demo Demo Demo Demo デモ
  • 28. 28 Multiversion template - containers Header (with navigation) Footer Branding Main News
  • 29. Step 2: Use new template with XML-pages & XML-contents 29
  • 30. ● If the template was defined at the site folder: ● Change the template at the site folder ● If template was set on each page: ● Use the content-tool to change the template property value 30 Changeing the template
  • 31. ● Live Demo 31 Live Demo Template-Change Demo Demo Demo Demo デモ
  • 32. Step 3: Enable OpenCms 8 & 9 sitemap, use new template with containerpages 32
  • 33. ● How to make our site Sitemap & ADE enabled (Hen & egg problem): ● Change the site folder to a subsitemap ● Create a „sitemap content folder“ in the site, the name MUST be „.content“ ● Inside, create a folder named „.new“ ● Inside, create a model page (containerpage) ● Set the template property of our model page to the new template ● Configure the model page in the sitemap configuration  DONE, we now can use the sitemap to create new pages 33 Enable the sitemap
  • 34. ● Live Demo 34 Live Demo Enable the sitemap Demo Demo Demo Demo デモ
  • 35. Step 4: Replace XML-pages with new XML- contents & formatters in containerpages 35
  • 36. ● Create new module with simple XSD as replacement ● Title, Text, Image in our example ● Add resourcetype in opencms-modules.xml ● Write formatter ● Register the content in the Module-config („.config“ file) new content can now be used 36 Replace XML-pages
  • 37. […] <xsd:appinfo> […] <mappings> <mapping element="Title" mapto="property:Title" /> <mapping element="Title" mapto="urlName" /> </mappings> […] <formatters> <formatter type="main" uri="/system/modules/org.opencms.mun.article/formatters/ main.jsp" searchcontent="true" /> </formatters> </xsd:appinfo> […] 37 Replace XML-pages
  • 38. ● Live Demo 38 Live Demo Replace XML-pages Demo Demo Demo Demo デモ
  • 39. Step 5: Modify existing XML-contents 39
  • 40. ● Modify the existing XSD ● Formatter, Title and URL mapping ● Write formatter ● Use old detail.jsp for it ● Register the content in the Module-config („.config“ file) Modified content can now be used 40 Modify XML-contents
  • 41. 41 Transformation into formatter OpenCms 6 & 7 (Detail-JSP) […] <cms:include property="template" element="head" /> <cms:contentload collector="singleFile" param="%(opencms.uri)" editable="true"> <cms:contentaccess var="content" scope="page" /> […] ${content.value.Title} […] </cms:contentload> <cms:include property="template" element="foot" /> OpenCms 8 & 9(Formatter) […] <!–- no template-include --> <cms:formatter var="content" val="value"> <!– no init of contentaccess --> […] ${content.value.Title} […] </cms:formatter> <!–- no template-include -->
  • 42. ● Typical example: News list ● Move existing news contents to new location under „.content“ ● Define Function Elements ● Can be inserted via Drag&Drop (Dynamic Functions) ● Reuse existing JSPs ● Optional: Make them configurable via settings ● Define Setting in Function Element ● Access setting in JSP ● Define Detailpages 42 Lists of XML contents
  • 43. 43 Configurable Dynamic Elements […] <c:set var="newspath" value="/.content/news/" /> <c:if test="${not empty cms.element.settings.Path}"> <c:set var="newspath" value="${cms.element.settings.Path}" /> </c:if> […] <cms:contentload collector="allInFolderDateAsc" param="${newspath}news_%(number).html|news|150" editable="true" > […]
  • 44. ● Live Demo 44 Live Demo Modify XML-contents Demo Demo Demo Demo デモ
  • 45. Step 6: Content enhancements for OpenCms 9 45
  • 46. ● New feature in OpenCms 9: Individual Detailpages ● Add new container in template: 46 Individual Detailpages […] <div id="contents"> <cms:container name="branding" type="branding" width="600" detailview="false"/> <cms:container name="brandingDetail" type="branding" width="600" detailonly="true“ <div class="body clearfix"> <cms:container name="main" type="main" width="600" detailview="true"/> </div> </div> […] ● Add individual contents on detailpage
  • 47. ● Live Demo 47 Live Demo Individual Detailpages Demo Demo Demo Demo デモ
  • 48. ● Any Questions? 48 Any Questions? Fragen? Questions ? Questiones? ¿Preguntas?質問
  • 49. Michael Emmerich Alkacon Software GmbH http://www.alkacon.com http://www.opencms.org Thank you very much for your attention! 49