SlideShare a Scribd company logo
Advanced Usage of Multi Site Functionality
                             by
                             by


                        Olli Aro
     Head of Technology & Products, Clicks and Links Ltd
     Head of Technology & Products, Clicks and Links Ltd
About Us…
 • Clicks and Links
    – UK based IT consultancy
    – Specialised in innovation (Second Life) and Open Source software
    – The oldest UK based OpenCms solution provider, since OpenCms version
      4
    – Released many OpenCms Open Source modules and fixes over the years
    – Contributions to OpenCms Wiki

 • Olli Aro
    – Involved in OpenCms project, since 2001
    – Active member of OpenCms community
    – Reviewer for all published OpenCms books
Why should we get excited…
… about Multi Site Functionality
•    Single platform to maintain
•    Single platform to backup
•    Reduced hardware
•    Possibility to share functionality between sites
•    Better for environment
•    Reduced project costs      more competitive pricing
Real Life Show Cases
Our Hosted OpenCms Platform
•   Hosted OpenCms platform for small to
    medium scale website projects

•   Option to choose between a generic
    configurable template or completely
    bespoken website functionality

•   Identical functionality available
    compared to dedicated OpenCms
    installations

•   More attractive project costs

•   More competitive hosting and support
    costs

•   Always up to date
OnCampus UK
•   Provides websites for
    over 300 student unions
    in the UK

•   Websites are free to the
    unions, hence the
    project and ongoing
    costs are critical

•   Same functionality,
    individual look and feel

•   Fast site roll out, 5 sites
    per day

•   Bespoken functionality
    and integration
Multi Site Infrastructure
Web Server
                             (Virtual Hosts)




                         Application Server
                          (OpenCms application)




Database Server                                    File System
(Dynamic data storage)                            (Static data storage)
Web Server Configuration
Virtual Host Configuration
  <VirtualHost *:80>
       ServerName www.site1.com
       ServerAdmin systemadmin@clicksandlinks.com
       ErrorLog /usr/local/apache/logs/www.site1.com-error_log
       CustomLog /usr/local/apache/logs/www.site1.com-access_log combined

      JkMount /opencms/* ajp13w

  </VirtualHost>
Rewrite Rules & Static Content
   <VirtualHost *:80>
        ServerName www.site1.com
        ServerAdmin systemadmin@clicksandlinks.com
        ErrorLog logs/www.site1.com-error_log
        CustomLog logs/www.site1.com-access_log combined

       RewriteEngine on
       RewriteLog logs/www.site1.com-rewrite_log
       RewriteLogLevel 0

       Alias /static_files quot;/usr/local/tomcat/webapps/opencms/export“
       RewriteRule ^/download/(.*)$ /static_files/download/$1 [PT]
       RewriteRule ^/pics/(.*)$ /static_files/pics/$1 [PT]

        JkMount /opencms/* ajp13w

   </VirtualHost>
OpenCms Configuration
Application Configurations
• opencms-system.xml
   …
   <sites>
       <workplace-server>http://opencms.clicksandlinks.com</workplace-server>
       <default-uri>/sites/default/</default-uri>
       <site server=quot;http://opencms.clicksandlinks.comquot; uri=quot;/sites/default/quot;/>
       <site server=quot;http://www.site1.comquot; uri=quot;/sites/site1/quot;/>
       <site server=quot;http://www.site2.comquot; uri=quot;/sites/site2/quot;/>
      <site server=quot;http://www.site3.comquot; uri=quot;/sites/site3/quot;/>
      <site server=quot;http://www.site4.comquot; uri=quot;/sites/site4/quot;/>
      …
   </sites>
   …
User Management & Access
Permissions
•   Site specific organisation unit

•   Remove default Users group permissions from /sites folder
    (excluding read permission)

•   Give permissions for each /sites/site1 folder for the Users group in
    that organisational unit

•   Remove default Users group permissions from /system/galleries
    folder

•   Give permissions for each /system/galleries/… folder for the User
    group in that organisation unit
Search Management

• Create a dedicated search index for each site

• Make sure that your search page utilises the correct index
Template Configuration
Single Master Template Approach
• Template drop down is confusing    Risk of users selecting
  a wrong template  a support ticket

• Using single master template allows you to revise your
  template structure in future without need to rename
  template properties for pages

• Difficult to get content types working between different sites
  without single master template

• Ways to implement:-
   – Select the sub template dynamically e.g. based on URL
     pattern
   – Configurable template based on XML configuration file
Dynamic Master Template

  …
  if (DOMAIN_NAME.equals(“www.site1.com”)
      cms.include(“/system/modules/site1/templates/contenttemplate.jsp”);
  else if (DOMAIN_NAME.equals(“www.site2.com”)
      cms.include(“/system/modules/site2/templates/contenttemplate.jsp”);
  else if (DOMAIN_NAME.equals(“www.site3.com”)
      cms.include(“/system/modules/site3/templates/contenttemplate.jsp”);
  …
Configurable Master Template
Content Types & JSP Injection
Opencms-modules.xml
  …
  <type class=quot;org.opencms.file.types.CmsResourceTypeXmlContentquot; name=quot;rsspagequot; id=quot;151quot;>
              <properties>
                <property>
                   <name>template-elements</name>
                   <value type=quot;sharedquot;><![CDATA[/system/modules/com.clicksandlinks.opencms.rss/pages/
                                rsspage_empty.jsp]]></value>
                </property>
                <property>
                   <name>template</name>
                   <value type=quot;sharedquot;><![CDATA[/system/modules/com.clicksandlinks.opencms.sites.generic/
                                templates/contentTemplate.jsp]]></value>
                </property>
                <property>
                   <name>body-template</name>
                   <value type=quot;sharedquot;><![CDATA[/system/modules/com.clicksandlinks.opencms.rss/
                                pages/rsspage.jsp]]></value>
                </property>
              </properties>
              <param name=quot;schemaquot;>/system/modules/com.clicksandlinks.opencms.rss/schema/rsspage.xsd</param>
           </type>
  …
rsspage_empty.jsp
  <%@ taglib prefix=quot;cmsquot; uri=quot;http://www.opencms.org/taglib/cmsquot; %>
  <%@ taglib prefix=quot;cquot; uri=quot;http://java.sun.com/jsp/jstl/corequot; %>
  <c:set var=quot;temp_templatequot;><cms:property name=quot;templatequot;/></c:set>
  <c:if test=quot;${!empty temp_template}quot;>
     <cms:include><c:out value=quot;${temp_template}quot; /></cms:include>
  </c:if>




pagebody.jsp
  <%@ taglib prefix=quot;cmsquot; uri=quot;http://www.opencms.org/taglib/cmsquot; %>
  <%@ taglib prefix=quot;cquot; uri=quot;http://java.sun.com/jsp/jstl/corequot; %>
  <c:set var=quot;temp_body_templatequot;><cms:property name=quot;body-templatequot;/></c:set>
  <c:if test=quot;${!empty temp_body_template}quot;>
     <cms:include><c:out value=quot;${temp_body_template}quot; /></cms:include>
  </c:if>
  <c:if test=quot;${empty temp_body_template}quot;>
     <cms:include element=quot;bodyquot; editable=quot;truequot; />
  </c:if>
Questions?

        Thank you

olli.aro@clicksandlinks.com

More Related Content

What's hot

Building and managing java projects with maven part-III
Building and managing java projects with maven part-IIIBuilding and managing java projects with maven part-III
Building and managing java projects with maven part-III
princeirfancivil
 
S314011 - Developing Composite Applications for the Cloud with Apache Tuscany
S314011 - Developing Composite Applications for the Cloud with Apache TuscanyS314011 - Developing Composite Applications for the Cloud with Apache Tuscany
S314011 - Developing Composite Applications for the Cloud with Apache Tuscany
Luciano Resende
 
Streamlining Your Applications with Web Frameworks
Streamlining Your Applications with Web FrameworksStreamlining Your Applications with Web Frameworks
Streamlining Your Applications with Web Frameworks
guestf7bc30
 
Optaros Surf Code Camp Dispatcher
Optaros Surf Code Camp DispatcherOptaros Surf Code Camp Dispatcher
Optaros Surf Code Camp Dispatcher
Jeff Potts
 
Building and Managing Projects with Maven
Building and Managing Projects with MavenBuilding and Managing Projects with Maven
Building and Managing Projects with Maven
Khan625
 
Metarefresh
MetarefreshMetarefresh
Metarefresh
Aakash Bapna
 
11 page-directive
11 page-directive11 page-directive
11 page-directive
snopteck
 
OSGi, Scripting and REST, Building Webapps With Apache Sling
OSGi, Scripting and REST, Building Webapps With Apache SlingOSGi, Scripting and REST, Building Webapps With Apache Sling
OSGi, Scripting and REST, Building Webapps With Apache Sling
Carsten Ziegeler
 
EasyEngine - Command-Line tool to manage WordPress Sites on Nginx
EasyEngine - Command-Line tool to manage WordPress Sites on NginxEasyEngine - Command-Line tool to manage WordPress Sites on Nginx
EasyEngine - Command-Line tool to manage WordPress Sites on Nginx
rtCamp
 
Effective Web Application Development with Apache Sling
Effective Web Application Development with Apache SlingEffective Web Application Development with Apache Sling
Effective Web Application Development with Apache Sling
Robert Munteanu
 
RESTful web apps with Apache Sling - 2013 version
RESTful web apps with Apache Sling - 2013 versionRESTful web apps with Apache Sling - 2013 version
RESTful web apps with Apache Sling - 2013 version
Bertrand Delacretaz
 
Optaros Surf Code Camp Lab 2
Optaros Surf Code Camp Lab 2Optaros Surf Code Camp Lab 2
Optaros Surf Code Camp Lab 2
Jeff Potts
 
Flash And Dom
Flash And DomFlash And Dom
Flash And Dom
Mike Wilcox
 
WordPress as the Backbone(.js)
WordPress as the Backbone(.js)WordPress as the Backbone(.js)
WordPress as the Backbone(.js)
Beau Lebens
 
Rest and Sling Resolution
Rest and Sling ResolutionRest and Sling Resolution
Rest and Sling Resolution
DEEPAK KHETAWAT
 
HTL(Sightly) - All you need to know
HTL(Sightly) - All you need to knowHTL(Sightly) - All you need to know
HTL(Sightly) - All you need to know
Prabhdeep Singh
 
REST Introduction (PHP London)
REST Introduction (PHP London)REST Introduction (PHP London)
REST Introduction (PHP London)
Paul James
 
WordPress Development Tools and Best Practices
WordPress Development Tools and Best PracticesWordPress Development Tools and Best Practices
WordPress Development Tools and Best Practices
Danilo Ercoli
 
Improve WordPress performance with caching and deferred execution of code
Improve WordPress performance with caching and deferred execution of codeImprove WordPress performance with caching and deferred execution of code
Improve WordPress performance with caching and deferred execution of code
Danilo Ercoli
 
Aspnet2 Overview
Aspnet2 OverviewAspnet2 Overview
Aspnet2 Overview
ajitbergi
 

What's hot (20)

Building and managing java projects with maven part-III
Building and managing java projects with maven part-IIIBuilding and managing java projects with maven part-III
Building and managing java projects with maven part-III
 
S314011 - Developing Composite Applications for the Cloud with Apache Tuscany
S314011 - Developing Composite Applications for the Cloud with Apache TuscanyS314011 - Developing Composite Applications for the Cloud with Apache Tuscany
S314011 - Developing Composite Applications for the Cloud with Apache Tuscany
 
Streamlining Your Applications with Web Frameworks
Streamlining Your Applications with Web FrameworksStreamlining Your Applications with Web Frameworks
Streamlining Your Applications with Web Frameworks
 
Optaros Surf Code Camp Dispatcher
Optaros Surf Code Camp DispatcherOptaros Surf Code Camp Dispatcher
Optaros Surf Code Camp Dispatcher
 
Building and Managing Projects with Maven
Building and Managing Projects with MavenBuilding and Managing Projects with Maven
Building and Managing Projects with Maven
 
Metarefresh
MetarefreshMetarefresh
Metarefresh
 
11 page-directive
11 page-directive11 page-directive
11 page-directive
 
OSGi, Scripting and REST, Building Webapps With Apache Sling
OSGi, Scripting and REST, Building Webapps With Apache SlingOSGi, Scripting and REST, Building Webapps With Apache Sling
OSGi, Scripting and REST, Building Webapps With Apache Sling
 
EasyEngine - Command-Line tool to manage WordPress Sites on Nginx
EasyEngine - Command-Line tool to manage WordPress Sites on NginxEasyEngine - Command-Line tool to manage WordPress Sites on Nginx
EasyEngine - Command-Line tool to manage WordPress Sites on Nginx
 
Effective Web Application Development with Apache Sling
Effective Web Application Development with Apache SlingEffective Web Application Development with Apache Sling
Effective Web Application Development with Apache Sling
 
RESTful web apps with Apache Sling - 2013 version
RESTful web apps with Apache Sling - 2013 versionRESTful web apps with Apache Sling - 2013 version
RESTful web apps with Apache Sling - 2013 version
 
Optaros Surf Code Camp Lab 2
Optaros Surf Code Camp Lab 2Optaros Surf Code Camp Lab 2
Optaros Surf Code Camp Lab 2
 
Flash And Dom
Flash And DomFlash And Dom
Flash And Dom
 
WordPress as the Backbone(.js)
WordPress as the Backbone(.js)WordPress as the Backbone(.js)
WordPress as the Backbone(.js)
 
Rest and Sling Resolution
Rest and Sling ResolutionRest and Sling Resolution
Rest and Sling Resolution
 
HTL(Sightly) - All you need to know
HTL(Sightly) - All you need to knowHTL(Sightly) - All you need to know
HTL(Sightly) - All you need to know
 
REST Introduction (PHP London)
REST Introduction (PHP London)REST Introduction (PHP London)
REST Introduction (PHP London)
 
WordPress Development Tools and Best Practices
WordPress Development Tools and Best PracticesWordPress Development Tools and Best Practices
WordPress Development Tools and Best Practices
 
Improve WordPress performance with caching and deferred execution of code
Improve WordPress performance with caching and deferred execution of codeImprove WordPress performance with caching and deferred execution of code
Improve WordPress performance with caching and deferred execution of code
 
Aspnet2 Overview
Aspnet2 OverviewAspnet2 Overview
Aspnet2 Overview
 

Viewers also liked

Favorite android apps
Favorite android appsFavorite android apps
Favorite android appsdudarev
 
Archivo Pdf
Archivo PdfArchivo Pdf
Archivo Pdf
maestrodept
 
Chicazine
ChicazineChicazine
Chicazine
Paul Was
 
Whooping Cranes At Gridley
Whooping Cranes At GridleyWhooping Cranes At Gridley
Whooping Cranes At Gridley
gracem
 
GeoTree - библиотека для гео-данных в Google App Engine
GeoTree - библиотека для гео-данных в Google App Engine GeoTree - библиотека для гео-данных в Google App Engine
GeoTree - библиотека для гео-данных в Google App Engine dudarev
 
C:\documents and settings\pt\escritorio\prueba1
C:\documents and settings\pt\escritorio\prueba1C:\documents and settings\pt\escritorio\prueba1
C:\documents and settings\pt\escritorio\prueba1
maestrodept
 
Django with Mongo using Mongoengine
Django with Mongo using MongoengineDjango with Mongo using Mongoengine
Django with Mongo using Mongoengine
dudarev
 

Viewers also liked (7)

Favorite android apps
Favorite android appsFavorite android apps
Favorite android apps
 
Archivo Pdf
Archivo PdfArchivo Pdf
Archivo Pdf
 
Chicazine
ChicazineChicazine
Chicazine
 
Whooping Cranes At Gridley
Whooping Cranes At GridleyWhooping Cranes At Gridley
Whooping Cranes At Gridley
 
GeoTree - библиотека для гео-данных в Google App Engine
GeoTree - библиотека для гео-данных в Google App Engine GeoTree - библиотека для гео-данных в Google App Engine
GeoTree - библиотека для гео-данных в Google App Engine
 
C:\documents and settings\pt\escritorio\prueba1
C:\documents and settings\pt\escritorio\prueba1C:\documents and settings\pt\escritorio\prueba1
C:\documents and settings\pt\escritorio\prueba1
 
Django with Mongo using Mongoengine
Django with Mongo using MongoengineDjango with Mongo using Mongoengine
Django with Mongo using Mongoengine
 

Similar to T5 Oli Aro

Internet Explorer 8 for Developers by Christian Thilmany
Internet Explorer 8 for Developers by Christian ThilmanyInternet Explorer 8 for Developers by Christian Thilmany
Internet Explorer 8 for Developers by Christian Thilmany
Christian Thilmany
 
Orbitz and Spring Webflow Case Study
Orbitz and Spring Webflow Case StudyOrbitz and Spring Webflow Case Study
Orbitz and Spring Webflow Case Study
Mark Meeker
 
WordPress APIs
WordPress APIsWordPress APIs
WordPress APIs
Joseph Scott
 
Service Oriented Integration With ServiceMix
Service Oriented Integration With ServiceMixService Oriented Integration With ServiceMix
Service Oriented Integration With ServiceMix
Bruce Snyder
 
The Django Web Application Framework 2
The Django Web Application Framework 2The Django Web Application Framework 2
The Django Web Application Framework 2
fishwarter
 
The Django Web Application Framework 2
The Django Web Application Framework 2The Django Web Application Framework 2
The Django Web Application Framework 2
fishwarter
 
The Django Web Application Framework 2
The Django Web Application Framework 2The Django Web Application Framework 2
The Django Web Application Framework 2
fishwarter
 
The Django Web Application Framework 2
The Django Web Application Framework 2The Django Web Application Framework 2
The Django Web Application Framework 2
fishwarter
 
JavaScripts & jQuery
JavaScripts & jQueryJavaScripts & jQuery
JavaScripts & jQuery
Asanka Indrajith
 
Front End Website Optimization
Front End Website OptimizationFront End Website Optimization
Front End Website Optimization
Gerard Sychay
 
(WEB301) Operational Web Log Analysis | AWS re:Invent 2014
(WEB301) Operational Web Log Analysis | AWS re:Invent 2014(WEB301) Operational Web Log Analysis | AWS re:Invent 2014
(WEB301) Operational Web Log Analysis | AWS re:Invent 2014
Amazon Web Services
 
腾讯大讲堂09 如何建设高性能网站
腾讯大讲堂09 如何建设高性能网站腾讯大讲堂09 如何建设高性能网站
腾讯大讲堂09 如何建设高性能网站
areyouok
 
腾讯大讲堂09 如何建设高性能网站
腾讯大讲堂09 如何建设高性能网站腾讯大讲堂09 如何建设高性能网站
腾讯大讲堂09 如何建设高性能网站
topgeek
 
Strut2-Spring-Hibernate
Strut2-Spring-HibernateStrut2-Spring-Hibernate
Strut2-Spring-Hibernate
Jay Shah
 
More Secrets of JavaScript Libraries
More Secrets of JavaScript LibrariesMore Secrets of JavaScript Libraries
More Secrets of JavaScript Libraries
jeresig
 
Servlet., tomcat server, implicit jsp object
Servlet., tomcat server, implicit jsp objectServlet., tomcat server, implicit jsp object
Servlet., tomcat server, implicit jsp object
ADITYADIXIT974283
 
Apache Roller, Acegi Security and Single Sign-on
Apache Roller, Acegi Security and Single Sign-onApache Roller, Acegi Security and Single Sign-on
Apache Roller, Acegi Security and Single Sign-on
Matt Raible
 
Introduction to JavaScript
Introduction to JavaScriptIntroduction to JavaScript
Introduction to JavaScript
Jussi Pohjolainen
 
Ajax to the Moon
Ajax to the MoonAjax to the Moon
Ajax to the Moon
davejohnson
 
Systems Automation with Puppet
Systems Automation with PuppetSystems Automation with Puppet
Systems Automation with Puppet
elliando dias
 

Similar to T5 Oli Aro (20)

Internet Explorer 8 for Developers by Christian Thilmany
Internet Explorer 8 for Developers by Christian ThilmanyInternet Explorer 8 for Developers by Christian Thilmany
Internet Explorer 8 for Developers by Christian Thilmany
 
Orbitz and Spring Webflow Case Study
Orbitz and Spring Webflow Case StudyOrbitz and Spring Webflow Case Study
Orbitz and Spring Webflow Case Study
 
WordPress APIs
WordPress APIsWordPress APIs
WordPress APIs
 
Service Oriented Integration With ServiceMix
Service Oriented Integration With ServiceMixService Oriented Integration With ServiceMix
Service Oriented Integration With ServiceMix
 
The Django Web Application Framework 2
The Django Web Application Framework 2The Django Web Application Framework 2
The Django Web Application Framework 2
 
The Django Web Application Framework 2
The Django Web Application Framework 2The Django Web Application Framework 2
The Django Web Application Framework 2
 
The Django Web Application Framework 2
The Django Web Application Framework 2The Django Web Application Framework 2
The Django Web Application Framework 2
 
The Django Web Application Framework 2
The Django Web Application Framework 2The Django Web Application Framework 2
The Django Web Application Framework 2
 
JavaScripts & jQuery
JavaScripts & jQueryJavaScripts & jQuery
JavaScripts & jQuery
 
Front End Website Optimization
Front End Website OptimizationFront End Website Optimization
Front End Website Optimization
 
(WEB301) Operational Web Log Analysis | AWS re:Invent 2014
(WEB301) Operational Web Log Analysis | AWS re:Invent 2014(WEB301) Operational Web Log Analysis | AWS re:Invent 2014
(WEB301) Operational Web Log Analysis | AWS re:Invent 2014
 
腾讯大讲堂09 如何建设高性能网站
腾讯大讲堂09 如何建设高性能网站腾讯大讲堂09 如何建设高性能网站
腾讯大讲堂09 如何建设高性能网站
 
腾讯大讲堂09 如何建设高性能网站
腾讯大讲堂09 如何建设高性能网站腾讯大讲堂09 如何建设高性能网站
腾讯大讲堂09 如何建设高性能网站
 
Strut2-Spring-Hibernate
Strut2-Spring-HibernateStrut2-Spring-Hibernate
Strut2-Spring-Hibernate
 
More Secrets of JavaScript Libraries
More Secrets of JavaScript LibrariesMore Secrets of JavaScript Libraries
More Secrets of JavaScript Libraries
 
Servlet., tomcat server, implicit jsp object
Servlet., tomcat server, implicit jsp objectServlet., tomcat server, implicit jsp object
Servlet., tomcat server, implicit jsp object
 
Apache Roller, Acegi Security and Single Sign-on
Apache Roller, Acegi Security and Single Sign-onApache Roller, Acegi Security and Single Sign-on
Apache Roller, Acegi Security and Single Sign-on
 
Introduction to JavaScript
Introduction to JavaScriptIntroduction to JavaScript
Introduction to JavaScript
 
Ajax to the Moon
Ajax to the MoonAjax to the Moon
Ajax to the Moon
 
Systems Automation with Puppet
Systems Automation with PuppetSystems Automation with Puppet
Systems Automation with Puppet
 

Recently uploaded

The Evolution and Impact of Tom Cruise Long Hair
The Evolution and Impact of Tom Cruise Long HairThe Evolution and Impact of Tom Cruise Long Hair
The Evolution and Impact of Tom Cruise Long Hair
greendigital
 
Abraham Laboriel Records ‘The Bass Walk’ at Evergreen Stage
Abraham Laboriel Records ‘The Bass Walk’ at Evergreen StageAbraham Laboriel Records ‘The Bass Walk’ at Evergreen Stage
Abraham Laboriel Records ‘The Bass Walk’ at Evergreen Stage
DiaDan Holdings Ltd
 
Sara Saffari: Turning Underweight into Fitness Success at 23
Sara Saffari: Turning Underweight into Fitness Success at 23Sara Saffari: Turning Underweight into Fitness Success at 23
Sara Saffari: Turning Underweight into Fitness Success at 23
get joys
 
Sunny and Rishi 3 Written by Basak Serin
Sunny and Rishi 3 Written by Basak SerinSunny and Rishi 3 Written by Basak Serin
Sunny and Rishi 3 Written by Basak Serin
Basak24
 
Anasuya Sengupta Cannes 2024 Award Winner
Anasuya Sengupta Cannes 2024 Award WinnerAnasuya Sengupta Cannes 2024 Award Winner
Anasuya Sengupta Cannes 2024 Award Winner
Diwitya Bajwa
 
Leonardo DiCaprio House: A Journey Through His Extravagant Real Estate Portfolio
Leonardo DiCaprio House: A Journey Through His Extravagant Real Estate PortfolioLeonardo DiCaprio House: A Journey Through His Extravagant Real Estate Portfolio
Leonardo DiCaprio House: A Journey Through His Extravagant Real Estate Portfolio
greendigital
 
The Future of Independent Filmmaking Trends and Job Opportunities
The Future of Independent Filmmaking Trends and Job OpportunitiesThe Future of Independent Filmmaking Trends and Job Opportunities
The Future of Independent Filmmaking Trends and Job Opportunities
LetsFAME
 
HD Video Player All Format - 4k & live stream
HD Video Player All Format - 4k & live streamHD Video Player All Format - 4k & live stream
HD Video Player All Format - 4k & live stream
HD Video Player
 
The Enigmatic Portrait, In the heart of a sleepy town
The Enigmatic Portrait, In the heart of a sleepy townThe Enigmatic Portrait, In the heart of a sleepy town
The Enigmatic Portrait, In the heart of a sleepy town
John Emmett
 
Taylor Swift: Conquering Fame, Feuds, and Unmatched Success | CIO Women Magazine
Taylor Swift: Conquering Fame, Feuds, and Unmatched Success | CIO Women MagazineTaylor Swift: Conquering Fame, Feuds, and Unmatched Success | CIO Women Magazine
Taylor Swift: Conquering Fame, Feuds, and Unmatched Success | CIO Women Magazine
CIOWomenMagazine
 
The Gallery of Shadows, In the heart of a bustling city
The Gallery of Shadows, In the heart of a bustling cityThe Gallery of Shadows, In the heart of a bustling city
The Gallery of Shadows, In the heart of a bustling city
John Emmett
 
定制(mu毕业证书)美国迈阿密大学牛津分校毕业证学历证书原版一模一样
定制(mu毕业证书)美国迈阿密大学牛津分校毕业证学历证书原版一模一样定制(mu毕业证书)美国迈阿密大学牛津分校毕业证学历证书原版一模一样
定制(mu毕业证书)美国迈阿密大学牛津分校毕业证学历证书原版一模一样
x0l4b5ho
 
欧洲杯赌球-欧洲杯赌球竞猜官网-欧洲杯赌球竞猜网站|【​网址​🎉ac10.net🎉​】
欧洲杯赌球-欧洲杯赌球竞猜官网-欧洲杯赌球竞猜网站|【​网址​🎉ac10.net🎉​】欧洲杯赌球-欧洲杯赌球竞猜官网-欧洲杯赌球竞猜网站|【​网址​🎉ac10.net🎉​】
欧洲杯赌球-欧洲杯赌球竞猜官网-欧洲杯赌球竞猜网站|【​网址​🎉ac10.net🎉​】
juliancopeman444
 
University of Western Sydney degree offer diploma Transcript
University of Western Sydney degree offer diploma TranscriptUniversity of Western Sydney degree offer diploma Transcript
University of Western Sydney degree offer diploma Transcript
soxrziqu
 
原版制作(MUN毕业证书)纽芬兰纪念大学毕业证PDF成绩单一模一样
原版制作(MUN毕业证书)纽芬兰纪念大学毕业证PDF成绩单一模一样原版制作(MUN毕业证书)纽芬兰纪念大学毕业证PDF成绩单一模一样
原版制作(MUN毕业证书)纽芬兰纪念大学毕业证PDF成绩单一模一样
sh8tjqt6
 
Brian Peck Leonardo DiCaprio: A Unique Intersection of Lives and Legacies
Brian Peck Leonardo DiCaprio: A Unique Intersection of Lives and LegaciesBrian Peck Leonardo DiCaprio: A Unique Intersection of Lives and Legacies
Brian Peck Leonardo DiCaprio: A Unique Intersection of Lives and Legacies
greendigital
 
一比一原版(UCSF毕业证)旧金山分校毕业证如何办理
一比一原版(UCSF毕业证)旧金山分校毕业证如何办理一比一原版(UCSF毕业证)旧金山分校毕业证如何办理
一比一原版(UCSF毕业证)旧金山分校毕业证如何办理
ytunuq
 
一比一原版(AUT毕业证)奥克兰理工大学毕业证如何办理
一比一原版(AUT毕业证)奥克兰理工大学毕业证如何办理一比一原版(AUT毕业证)奥克兰理工大学毕业证如何办理
一比一原版(AUT毕业证)奥克兰理工大学毕业证如何办理
etycev
 
Tom Cruise Daughter: An Insight into the Life of Suri Cruise
Tom Cruise Daughter: An Insight into the Life of Suri CruiseTom Cruise Daughter: An Insight into the Life of Suri Cruise
Tom Cruise Daughter: An Insight into the Life of Suri Cruise
greendigital
 
The Enigma of the Midnight Canvas, In the heart of Paris
The Enigma of the Midnight Canvas, In the heart of ParisThe Enigma of the Midnight Canvas, In the heart of Paris
The Enigma of the Midnight Canvas, In the heart of Paris
John Emmett
 

Recently uploaded (20)

The Evolution and Impact of Tom Cruise Long Hair
The Evolution and Impact of Tom Cruise Long HairThe Evolution and Impact of Tom Cruise Long Hair
The Evolution and Impact of Tom Cruise Long Hair
 
Abraham Laboriel Records ‘The Bass Walk’ at Evergreen Stage
Abraham Laboriel Records ‘The Bass Walk’ at Evergreen StageAbraham Laboriel Records ‘The Bass Walk’ at Evergreen Stage
Abraham Laboriel Records ‘The Bass Walk’ at Evergreen Stage
 
Sara Saffari: Turning Underweight into Fitness Success at 23
Sara Saffari: Turning Underweight into Fitness Success at 23Sara Saffari: Turning Underweight into Fitness Success at 23
Sara Saffari: Turning Underweight into Fitness Success at 23
 
Sunny and Rishi 3 Written by Basak Serin
Sunny and Rishi 3 Written by Basak SerinSunny and Rishi 3 Written by Basak Serin
Sunny and Rishi 3 Written by Basak Serin
 
Anasuya Sengupta Cannes 2024 Award Winner
Anasuya Sengupta Cannes 2024 Award WinnerAnasuya Sengupta Cannes 2024 Award Winner
Anasuya Sengupta Cannes 2024 Award Winner
 
Leonardo DiCaprio House: A Journey Through His Extravagant Real Estate Portfolio
Leonardo DiCaprio House: A Journey Through His Extravagant Real Estate PortfolioLeonardo DiCaprio House: A Journey Through His Extravagant Real Estate Portfolio
Leonardo DiCaprio House: A Journey Through His Extravagant Real Estate Portfolio
 
The Future of Independent Filmmaking Trends and Job Opportunities
The Future of Independent Filmmaking Trends and Job OpportunitiesThe Future of Independent Filmmaking Trends and Job Opportunities
The Future of Independent Filmmaking Trends and Job Opportunities
 
HD Video Player All Format - 4k & live stream
HD Video Player All Format - 4k & live streamHD Video Player All Format - 4k & live stream
HD Video Player All Format - 4k & live stream
 
The Enigmatic Portrait, In the heart of a sleepy town
The Enigmatic Portrait, In the heart of a sleepy townThe Enigmatic Portrait, In the heart of a sleepy town
The Enigmatic Portrait, In the heart of a sleepy town
 
Taylor Swift: Conquering Fame, Feuds, and Unmatched Success | CIO Women Magazine
Taylor Swift: Conquering Fame, Feuds, and Unmatched Success | CIO Women MagazineTaylor Swift: Conquering Fame, Feuds, and Unmatched Success | CIO Women Magazine
Taylor Swift: Conquering Fame, Feuds, and Unmatched Success | CIO Women Magazine
 
The Gallery of Shadows, In the heart of a bustling city
The Gallery of Shadows, In the heart of a bustling cityThe Gallery of Shadows, In the heart of a bustling city
The Gallery of Shadows, In the heart of a bustling city
 
定制(mu毕业证书)美国迈阿密大学牛津分校毕业证学历证书原版一模一样
定制(mu毕业证书)美国迈阿密大学牛津分校毕业证学历证书原版一模一样定制(mu毕业证书)美国迈阿密大学牛津分校毕业证学历证书原版一模一样
定制(mu毕业证书)美国迈阿密大学牛津分校毕业证学历证书原版一模一样
 
欧洲杯赌球-欧洲杯赌球竞猜官网-欧洲杯赌球竞猜网站|【​网址​🎉ac10.net🎉​】
欧洲杯赌球-欧洲杯赌球竞猜官网-欧洲杯赌球竞猜网站|【​网址​🎉ac10.net🎉​】欧洲杯赌球-欧洲杯赌球竞猜官网-欧洲杯赌球竞猜网站|【​网址​🎉ac10.net🎉​】
欧洲杯赌球-欧洲杯赌球竞猜官网-欧洲杯赌球竞猜网站|【​网址​🎉ac10.net🎉​】
 
University of Western Sydney degree offer diploma Transcript
University of Western Sydney degree offer diploma TranscriptUniversity of Western Sydney degree offer diploma Transcript
University of Western Sydney degree offer diploma Transcript
 
原版制作(MUN毕业证书)纽芬兰纪念大学毕业证PDF成绩单一模一样
原版制作(MUN毕业证书)纽芬兰纪念大学毕业证PDF成绩单一模一样原版制作(MUN毕业证书)纽芬兰纪念大学毕业证PDF成绩单一模一样
原版制作(MUN毕业证书)纽芬兰纪念大学毕业证PDF成绩单一模一样
 
Brian Peck Leonardo DiCaprio: A Unique Intersection of Lives and Legacies
Brian Peck Leonardo DiCaprio: A Unique Intersection of Lives and LegaciesBrian Peck Leonardo DiCaprio: A Unique Intersection of Lives and Legacies
Brian Peck Leonardo DiCaprio: A Unique Intersection of Lives and Legacies
 
一比一原版(UCSF毕业证)旧金山分校毕业证如何办理
一比一原版(UCSF毕业证)旧金山分校毕业证如何办理一比一原版(UCSF毕业证)旧金山分校毕业证如何办理
一比一原版(UCSF毕业证)旧金山分校毕业证如何办理
 
一比一原版(AUT毕业证)奥克兰理工大学毕业证如何办理
一比一原版(AUT毕业证)奥克兰理工大学毕业证如何办理一比一原版(AUT毕业证)奥克兰理工大学毕业证如何办理
一比一原版(AUT毕业证)奥克兰理工大学毕业证如何办理
 
Tom Cruise Daughter: An Insight into the Life of Suri Cruise
Tom Cruise Daughter: An Insight into the Life of Suri CruiseTom Cruise Daughter: An Insight into the Life of Suri Cruise
Tom Cruise Daughter: An Insight into the Life of Suri Cruise
 
The Enigma of the Midnight Canvas, In the heart of Paris
The Enigma of the Midnight Canvas, In the heart of ParisThe Enigma of the Midnight Canvas, In the heart of Paris
The Enigma of the Midnight Canvas, In the heart of Paris
 

T5 Oli Aro

  • 1. Advanced Usage of Multi Site Functionality by by Olli Aro Head of Technology & Products, Clicks and Links Ltd Head of Technology & Products, Clicks and Links Ltd
  • 2. About Us… • Clicks and Links – UK based IT consultancy – Specialised in innovation (Second Life) and Open Source software – The oldest UK based OpenCms solution provider, since OpenCms version 4 – Released many OpenCms Open Source modules and fixes over the years – Contributions to OpenCms Wiki • Olli Aro – Involved in OpenCms project, since 2001 – Active member of OpenCms community – Reviewer for all published OpenCms books
  • 3. Why should we get excited…
  • 4. … about Multi Site Functionality • Single platform to maintain • Single platform to backup • Reduced hardware • Possibility to share functionality between sites • Better for environment • Reduced project costs more competitive pricing
  • 6. Our Hosted OpenCms Platform • Hosted OpenCms platform for small to medium scale website projects • Option to choose between a generic configurable template or completely bespoken website functionality • Identical functionality available compared to dedicated OpenCms installations • More attractive project costs • More competitive hosting and support costs • Always up to date
  • 7. OnCampus UK • Provides websites for over 300 student unions in the UK • Websites are free to the unions, hence the project and ongoing costs are critical • Same functionality, individual look and feel • Fast site roll out, 5 sites per day • Bespoken functionality and integration
  • 9. Web Server (Virtual Hosts) Application Server (OpenCms application) Database Server File System (Dynamic data storage) (Static data storage)
  • 11. Virtual Host Configuration <VirtualHost *:80> ServerName www.site1.com ServerAdmin systemadmin@clicksandlinks.com ErrorLog /usr/local/apache/logs/www.site1.com-error_log CustomLog /usr/local/apache/logs/www.site1.com-access_log combined JkMount /opencms/* ajp13w </VirtualHost>
  • 12. Rewrite Rules & Static Content <VirtualHost *:80> ServerName www.site1.com ServerAdmin systemadmin@clicksandlinks.com ErrorLog logs/www.site1.com-error_log CustomLog logs/www.site1.com-access_log combined RewriteEngine on RewriteLog logs/www.site1.com-rewrite_log RewriteLogLevel 0 Alias /static_files quot;/usr/local/tomcat/webapps/opencms/export“ RewriteRule ^/download/(.*)$ /static_files/download/$1 [PT] RewriteRule ^/pics/(.*)$ /static_files/pics/$1 [PT] JkMount /opencms/* ajp13w </VirtualHost>
  • 14. Application Configurations • opencms-system.xml … <sites> <workplace-server>http://opencms.clicksandlinks.com</workplace-server> <default-uri>/sites/default/</default-uri> <site server=quot;http://opencms.clicksandlinks.comquot; uri=quot;/sites/default/quot;/> <site server=quot;http://www.site1.comquot; uri=quot;/sites/site1/quot;/> <site server=quot;http://www.site2.comquot; uri=quot;/sites/site2/quot;/> <site server=quot;http://www.site3.comquot; uri=quot;/sites/site3/quot;/> <site server=quot;http://www.site4.comquot; uri=quot;/sites/site4/quot;/> … </sites> …
  • 15. User Management & Access Permissions • Site specific organisation unit • Remove default Users group permissions from /sites folder (excluding read permission) • Give permissions for each /sites/site1 folder for the Users group in that organisational unit • Remove default Users group permissions from /system/galleries folder • Give permissions for each /system/galleries/… folder for the User group in that organisation unit
  • 16. Search Management • Create a dedicated search index for each site • Make sure that your search page utilises the correct index
  • 18. Single Master Template Approach • Template drop down is confusing Risk of users selecting a wrong template a support ticket • Using single master template allows you to revise your template structure in future without need to rename template properties for pages • Difficult to get content types working between different sites without single master template • Ways to implement:- – Select the sub template dynamically e.g. based on URL pattern – Configurable template based on XML configuration file
  • 19. Dynamic Master Template … if (DOMAIN_NAME.equals(“www.site1.com”) cms.include(“/system/modules/site1/templates/contenttemplate.jsp”); else if (DOMAIN_NAME.equals(“www.site2.com”) cms.include(“/system/modules/site2/templates/contenttemplate.jsp”); else if (DOMAIN_NAME.equals(“www.site3.com”) cms.include(“/system/modules/site3/templates/contenttemplate.jsp”); …
  • 21. Content Types & JSP Injection
  • 22. Opencms-modules.xml … <type class=quot;org.opencms.file.types.CmsResourceTypeXmlContentquot; name=quot;rsspagequot; id=quot;151quot;> <properties> <property> <name>template-elements</name> <value type=quot;sharedquot;><![CDATA[/system/modules/com.clicksandlinks.opencms.rss/pages/ rsspage_empty.jsp]]></value> </property> <property> <name>template</name> <value type=quot;sharedquot;><![CDATA[/system/modules/com.clicksandlinks.opencms.sites.generic/ templates/contentTemplate.jsp]]></value> </property> <property> <name>body-template</name> <value type=quot;sharedquot;><![CDATA[/system/modules/com.clicksandlinks.opencms.rss/ pages/rsspage.jsp]]></value> </property> </properties> <param name=quot;schemaquot;>/system/modules/com.clicksandlinks.opencms.rss/schema/rsspage.xsd</param> </type> …
  • 23. rsspage_empty.jsp <%@ taglib prefix=quot;cmsquot; uri=quot;http://www.opencms.org/taglib/cmsquot; %> <%@ taglib prefix=quot;cquot; uri=quot;http://java.sun.com/jsp/jstl/corequot; %> <c:set var=quot;temp_templatequot;><cms:property name=quot;templatequot;/></c:set> <c:if test=quot;${!empty temp_template}quot;> <cms:include><c:out value=quot;${temp_template}quot; /></cms:include> </c:if> pagebody.jsp <%@ taglib prefix=quot;cmsquot; uri=quot;http://www.opencms.org/taglib/cmsquot; %> <%@ taglib prefix=quot;cquot; uri=quot;http://java.sun.com/jsp/jstl/corequot; %> <c:set var=quot;temp_body_templatequot;><cms:property name=quot;body-templatequot;/></c:set> <c:if test=quot;${!empty temp_body_template}quot;> <cms:include><c:out value=quot;${temp_body_template}quot; /></cms:include> </c:if> <c:if test=quot;${empty temp_body_template}quot;> <cms:include element=quot;bodyquot; editable=quot;truequot; /> </c:if>
  • 24. Questions? Thank you olli.aro@clicksandlinks.com