SlideShare una empresa de Scribd logo
1 de 24
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

Más contenido relacionado

La actualidad más candente

11 page-directive
11 page-directive11 page-directive
11 page-directive
snopteck
 
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
 
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
 
Aspnet2 Overview
Aspnet2 OverviewAspnet2 Overview
Aspnet2 Overview
ajitbergi
 

La actualidad más candente (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
 

Destacado

Favorite android apps
Favorite android appsFavorite android apps
Favorite android apps
dudarev
 
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
 

Destacado (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 a T5 Oli Aro

腾讯大讲堂09 如何建设高性能网站
腾讯大讲堂09 如何建设高性能网站腾讯大讲堂09 如何建设高性能网站
腾讯大讲堂09 如何建设高性能网站
areyouok
 
Strut2-Spring-Hibernate
Strut2-Spring-HibernateStrut2-Spring-Hibernate
Strut2-Spring-Hibernate
Jay Shah
 
Servlet., tomcat server, implicit jsp object
Servlet., tomcat server, implicit jsp objectServlet., tomcat server, implicit jsp object
Servlet., tomcat server, implicit jsp object
ADITYADIXIT974283
 
Systems Automation with Puppet
Systems Automation with PuppetSystems Automation with Puppet
Systems Automation with Puppet
elliando dias
 

Similar a 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
 

Último

Low Rate Young Call Girls in Surajpur Greater Noida ✔️☆9289244007✔️☆ Female E...
Low Rate Young Call Girls in Surajpur Greater Noida ✔️☆9289244007✔️☆ Female E...Low Rate Young Call Girls in Surajpur Greater Noida ✔️☆9289244007✔️☆ Female E...
Low Rate Young Call Girls in Surajpur Greater Noida ✔️☆9289244007✔️☆ Female E...
SofiyaSharma5
 
Goa Call "Girls Service 9316020077 Call "Girls in Goa
Goa Call "Girls  Service   9316020077 Call "Girls in GoaGoa Call "Girls  Service   9316020077 Call "Girls in Goa
Goa Call "Girls Service 9316020077 Call "Girls in Goa
sexy call girls service in goa
 
Russian Escorts Agency In Goa 💚 9316020077 💚 Russian Call Girl Goa
Russian Escorts Agency In Goa  💚 9316020077 💚 Russian Call Girl GoaRussian Escorts Agency In Goa  💚 9316020077 💚 Russian Call Girl Goa
Russian Escorts Agency In Goa 💚 9316020077 💚 Russian Call Girl Goa
sexy call girls service in goa
 
Goa Call Girls 9316020077 Call Girls In Goa By Russian Call Girl in goa
Goa Call Girls 9316020077 Call Girls  In Goa By Russian Call Girl in goaGoa Call Girls 9316020077 Call Girls  In Goa By Russian Call Girl in goa
Goa Call Girls 9316020077 Call Girls In Goa By Russian Call Girl in goa
russian goa call girl and escorts service
 
Call Girls New Ashok Nagar Delhi WhatsApp Number 9711199171
Call Girls New Ashok Nagar Delhi WhatsApp Number 9711199171Call Girls New Ashok Nagar Delhi WhatsApp Number 9711199171
Call Girls New Ashok Nagar Delhi WhatsApp Number 9711199171
Delhi Call Girls 📞9899900591 ✔️ High Profile Service 100% Safe
 
Call Girls Chirag Delhi Delhi WhatsApp Number 9711199171
Call Girls Chirag Delhi Delhi WhatsApp Number 9711199171Call Girls Chirag Delhi Delhi WhatsApp Number 9711199171
Call Girls Chirag Delhi Delhi WhatsApp Number 9711199171
Delhi Call Girls 📞9899900591 ✔️ High Profile Service 100% Safe
 
Beautiful 😋 Call girls in Lahore 03210033448
Beautiful 😋 Call girls in Lahore 03210033448Beautiful 😋 Call girls in Lahore 03210033448
Beautiful 😋 Call girls in Lahore 03210033448
ont65320
 
Call Girls South Avenue Delhi WhatsApp Number 9711199171
Call Girls South Avenue Delhi WhatsApp Number 9711199171Call Girls South Avenue Delhi WhatsApp Number 9711199171
Call Girls South Avenue Delhi WhatsApp Number 9711199171
Delhi Call Girls 📞9899900591 ✔️ High Profile Service 100% Safe
 

Último (20)

Independent Sonagachi Escorts ✔ 9332606886✔ Full Night With Room Online Booki...
Independent Sonagachi Escorts ✔ 9332606886✔ Full Night With Room Online Booki...Independent Sonagachi Escorts ✔ 9332606886✔ Full Night With Room Online Booki...
Independent Sonagachi Escorts ✔ 9332606886✔ Full Night With Room Online Booki...
 
Low Rate Young Call Girls in Surajpur Greater Noida ✔️☆9289244007✔️☆ Female E...
Low Rate Young Call Girls in Surajpur Greater Noida ✔️☆9289244007✔️☆ Female E...Low Rate Young Call Girls in Surajpur Greater Noida ✔️☆9289244007✔️☆ Female E...
Low Rate Young Call Girls in Surajpur Greater Noida ✔️☆9289244007✔️☆ Female E...
 
Goa Call "Girls Service 9316020077 Call "Girls in Goa
Goa Call "Girls  Service   9316020077 Call "Girls in GoaGoa Call "Girls  Service   9316020077 Call "Girls in Goa
Goa Call "Girls Service 9316020077 Call "Girls in Goa
 
Science City Kolkata ( Call Girls ) Kolkata ✔ 6297143586 ✔ Hot Model With Sex...
Science City Kolkata ( Call Girls ) Kolkata ✔ 6297143586 ✔ Hot Model With Sex...Science City Kolkata ( Call Girls ) Kolkata ✔ 6297143586 ✔ Hot Model With Sex...
Science City Kolkata ( Call Girls ) Kolkata ✔ 6297143586 ✔ Hot Model With Sex...
 
College Call Girls New Alipore - For 7001035870 Cheap & Best with original Ph...
College Call Girls New Alipore - For 7001035870 Cheap & Best with original Ph...College Call Girls New Alipore - For 7001035870 Cheap & Best with original Ph...
College Call Girls New Alipore - For 7001035870 Cheap & Best with original Ph...
 
↑Top Model (Kolkata) Call Girls Howrah ⟟ 8250192130 ⟟ High Class Call Girl In...
↑Top Model (Kolkata) Call Girls Howrah ⟟ 8250192130 ⟟ High Class Call Girl In...↑Top Model (Kolkata) Call Girls Howrah ⟟ 8250192130 ⟟ High Class Call Girl In...
↑Top Model (Kolkata) Call Girls Howrah ⟟ 8250192130 ⟟ High Class Call Girl In...
 
Russian Escorts Agency In Goa 💚 9316020077 💚 Russian Call Girl Goa
Russian Escorts Agency In Goa  💚 9316020077 💚 Russian Call Girl GoaRussian Escorts Agency In Goa  💚 9316020077 💚 Russian Call Girl Goa
Russian Escorts Agency In Goa 💚 9316020077 💚 Russian Call Girl Goa
 
Almora call girls 📞 8617697112 At Low Cost Cash Payment Booking
Almora call girls 📞 8617697112 At Low Cost Cash Payment BookingAlmora call girls 📞 8617697112 At Low Cost Cash Payment Booking
Almora call girls 📞 8617697112 At Low Cost Cash Payment Booking
 
👙 Kolkata Call Girls Park Circus 💫💫7001035870 Model escorts Service
👙  Kolkata Call Girls Park Circus 💫💫7001035870 Model escorts Service👙  Kolkata Call Girls Park Circus 💫💫7001035870 Model escorts Service
👙 Kolkata Call Girls Park Circus 💫💫7001035870 Model escorts Service
 
👙 Kolkata Call Girls Shyam Bazar 💫💫7001035870 Model escorts Service
👙  Kolkata Call Girls Shyam Bazar 💫💫7001035870 Model escorts Service👙  Kolkata Call Girls Shyam Bazar 💫💫7001035870 Model escorts Service
👙 Kolkata Call Girls Shyam Bazar 💫💫7001035870 Model escorts Service
 
Goa Call Girls 9316020077 Call Girls In Goa By Russian Call Girl in goa
Goa Call Girls 9316020077 Call Girls  In Goa By Russian Call Girl in goaGoa Call Girls 9316020077 Call Girls  In Goa By Russian Call Girl in goa
Goa Call Girls 9316020077 Call Girls In Goa By Russian Call Girl in goa
 
Call Girls New Ashok Nagar Delhi WhatsApp Number 9711199171
Call Girls New Ashok Nagar Delhi WhatsApp Number 9711199171Call Girls New Ashok Nagar Delhi WhatsApp Number 9711199171
Call Girls New Ashok Nagar Delhi WhatsApp Number 9711199171
 
Call Girls Nashik Gayatri 7001305949 Independent Escort Service Nashik
Call Girls Nashik Gayatri 7001305949 Independent Escort Service NashikCall Girls Nashik Gayatri 7001305949 Independent Escort Service Nashik
Call Girls Nashik Gayatri 7001305949 Independent Escort Service Nashik
 
Dakshineswar Call Girls ✔ 8005736733 ✔ Hot Model With Sexy Bhabi Ready For Se...
Dakshineswar Call Girls ✔ 8005736733 ✔ Hot Model With Sexy Bhabi Ready For Se...Dakshineswar Call Girls ✔ 8005736733 ✔ Hot Model With Sexy Bhabi Ready For Se...
Dakshineswar Call Girls ✔ 8005736733 ✔ Hot Model With Sexy Bhabi Ready For Se...
 
Independent Hatiara Escorts ✔ 9332606886✔ Full Night With Room Online Booking...
Independent Hatiara Escorts ✔ 9332606886✔ Full Night With Room Online Booking...Independent Hatiara Escorts ✔ 9332606886✔ Full Night With Room Online Booking...
Independent Hatiara Escorts ✔ 9332606886✔ Full Night With Room Online Booking...
 
5* Hotels Call Girls In Goa {{07028418221}} Call Girls In North Goa Escort Se...
5* Hotels Call Girls In Goa {{07028418221}} Call Girls In North Goa Escort Se...5* Hotels Call Girls In Goa {{07028418221}} Call Girls In North Goa Escort Se...
5* Hotels Call Girls In Goa {{07028418221}} Call Girls In North Goa Escort Se...
 
Call Girls Chirag Delhi Delhi WhatsApp Number 9711199171
Call Girls Chirag Delhi Delhi WhatsApp Number 9711199171Call Girls Chirag Delhi Delhi WhatsApp Number 9711199171
Call Girls Chirag Delhi Delhi WhatsApp Number 9711199171
 
Beautiful 😋 Call girls in Lahore 03210033448
Beautiful 😋 Call girls in Lahore 03210033448Beautiful 😋 Call girls in Lahore 03210033448
Beautiful 😋 Call girls in Lahore 03210033448
 
Call Girls South Avenue Delhi WhatsApp Number 9711199171
Call Girls South Avenue Delhi WhatsApp Number 9711199171Call Girls South Avenue Delhi WhatsApp Number 9711199171
Call Girls South Avenue Delhi WhatsApp Number 9711199171
 
𓀤Call On 6297143586 𓀤 Ultadanga Call Girls In All Kolkata 24/7 Provide Call W...
𓀤Call On 6297143586 𓀤 Ultadanga Call Girls In All Kolkata 24/7 Provide Call W...𓀤Call On 6297143586 𓀤 Ultadanga Call Girls In All Kolkata 24/7 Provide Call W...
𓀤Call On 6297143586 𓀤 Ultadanga Call Girls In All Kolkata 24/7 Provide Call W...
 

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