SlideShare a Scribd company logo
1 of 26
Download to read offline
PLONE SYMPOSIUM EAST 2011




Plone Theming in a
     Nutshell
    Chrissy Wainwright
Create the Theme
                                          PLONE SYMPOSIUM EAST 2011




$ paster create -t plone3_theme


From the command line, use paster in
builtout/src to create the theme.

This template does work for Plone 4, specify
‘Sunburst Theme’ as the skinbase.
Install the Theme
                                            PLONE SYMPOSIUM EAST 2011




Add your new theme to buildout.cfg in the
[buildout] section under eggs, zcml, and develop.


Run buildout, start instance, and install theme in
ZMI > portal_quickinstaller.
Change the Logo
                                       PLONE SYMPOSIUM EAST 2011




The name of the logo image to be used can be
found and changed in
skins/styles/base_properties.props


Put your new logo in skins/images/ and make
sure the filename matches what is in
base_properties.
Apply Styles
                                            PLONE SYMPOSIUM EAST 2011




Put a file into your theme/skins/styles folder
called ploneCustom.css


Create new CSS files by adding them to the CSS
registry.

cssregistry.xml - Generic Setup - portal_css
Generic Setup
                                          PLONE SYMPOSIUM EAST 2011




Generic Setup is the connection between
content/changes in your site and the filesystem.

ZMI > portal_setup > Import/Export tab

theme/profiles/default/
Generic Setup
                                             PLONE SYMPOSIUM EAST 2011




* portal_actions : Action Providers : actions.xml
* portal_css : Stylesheet Registry : cssregistry.xml
* portal_javascripts : Javascript Registry :
  jsregistry.xml
* portal_types : Types Tool : types/[type].xml
* @@manage-viewlets : Viewlet Settings :
  viewlets.xml
Find Original Templates
                                         PLONE SYMPOSIUM EAST 2011




Using omelette, you can find the templates you
want to override.

Viewlets: plone/app/layout/viewlets

Portlets: plone/app/portlets/portlets


Other templates: Products/CMFPlone/skins/
Identify Plone Elements: Viewlets
                                    PLONE SYMPOSIUM EAST 2011
Override Viewlets
                                            PLONE SYMPOSIUM EAST 2011




From plone/app/layout/viewlets:
* viewlet-specific code in configure.zcml
* viewlet template
Override Viewlets
                                             PLONE SYMPOSIUM EAST 2011




Put overrides into theme/browser:
* configure.zcml
  - update relative paths (manager, class)
  - add template=”...
  - add layer=”.interfaces.IThemeSpecific”
* viewlet template
Override Viewlets: z3c.jbot
                                          PLONE SYMPOSIUM EAST 2011




Or use z3c.jbot!
In theme/browser/configure.zcml:

<include package=”z3c.jbot” file=”meta.zcml” />

<browser:templateOverrides
      directory=”template-overrides”
      layer=”.interfaces.IThemeSpecific” />
Override Viewlets: z3c.jbot
                                      PLONE SYMPOSIUM EAST 2011




Templates can now go into
theme/browser/template-overrides named by
referencing the dotted path to the file:


plone.app.layout.viewlets.footer.pt
Identify Plone Elements: Portlets
                                    PLONE SYMPOSIUM EAST 2011
Override Portlets
                                           PLONE SYMPOSIUM EAST 2011




In theme/browser/configure.zcml:

<include package=”plone.app.portlets” />

<plone:portletRenderer
    portlet=”plone.app.portlets.portlets.events.
             IEventsPortlet”
    template=”events.pt”
    layer=”interfaces.IThemeSpecific” />
Override Templates
                                       PLONE SYMPOSIUM EAST 2011




If the original template is found in skins:
 * put a copy in your theme/skins/ folder
 * use the exact same name
 * copy any associated .metadata files
 * ex: Products/CMFPlone/skins/plone_content/
    document_view.pt
Editing Actions
                                               PLONE SYMPOSIUM EAST 2011




Parts of the site that use actions:
* personal bar (login, preferences, etc)
* main navigation Home link
* document actions (print, send)
* site actions (contact, accessibility, etc)
Editing Actions
                                        PLONE SYMPOSIUM EAST 2011




* ZMI > portal_actions
* Export Action Providers
* remove extra code from actions.xml that you
  did not adjust
Common Stumbling Blocks
                                        PLONE SYMPOSIUM EAST 2011




What to look for when your changes are not
showing up




                                          Flickr: gfpeck
Common Stumbling Blocks
                                      PLONE SYMPOSIUM EAST 2011




1. Make sure the theme is installed

ZMI > portal_quickinstaller
Common Stumbling Blocks
                           PLONE SYMPOSIUM EAST 2011




2. Restart your instance
* .zcml
* .py
* new z3c.jbot override
Common Stumbling Blocks
                              PLONE SYMPOSIUM EAST 2011




3. Turn on Development mode


ZMI > portal_css
ZMI > portal_javascripts
Common Stumbling Blocks
                                     PLONE SYMPOSIUM EAST 2011




4. Generic Setup - XML Files
* import changes in
   ZMI > portal_setup > import tab
Common Stumbling Blocks
                                       PLONE SYMPOSIUM EAST 2011




5. Check the custom folder


ZMI > portal_skins > custom
ZMI > portal_view_customizations > contents
Common Stumbling Blocks
                                      PLONE SYMPOSIUM EAST 2011




5. Skins Order

ZMI > portal_skins > properties tab
PLONE SYMPOSIUM EAST 2011




   eck out
Ch
           .com/ demos
six feetup

More Related Content

What's hot

What's hot (14)

Joomla : Akeeba backup and Amazon S3
Joomla : Akeeba backup and Amazon S3Joomla : Akeeba backup and Amazon S3
Joomla : Akeeba backup and Amazon S3
 
JD17NL Joomla! Overrides and alternate layouts
JD17NL Joomla! Overrides and alternate layoutsJD17NL Joomla! Overrides and alternate layouts
JD17NL Joomla! Overrides and alternate layouts
 
Develop advance joomla! MVC Component for version 3
Develop advance joomla! MVC Component for version 3Develop advance joomla! MVC Component for version 3
Develop advance joomla! MVC Component for version 3
 
Why ExpressionEngine is Great for Designers
Why ExpressionEngine is Great for DesignersWhy ExpressionEngine is Great for Designers
Why ExpressionEngine is Great for Designers
 
Developing a Joomla 3.x Component using RAD FOF- Part 2: Front-end + demo - J...
Developing a Joomla 3.x Component using RAD FOF- Part 2: Front-end + demo - J...Developing a Joomla 3.x Component using RAD FOF- Part 2: Front-end + demo - J...
Developing a Joomla 3.x Component using RAD FOF- Part 2: Front-end + demo - J...
 
WordPress Hardening
WordPress HardeningWordPress Hardening
WordPress Hardening
 
Building YAP Applications with YUI
Building YAP Applications with YUIBuilding YAP Applications with YUI
Building YAP Applications with YUI
 
Doing Things the WordPress Way
Doing Things the WordPress WayDoing Things the WordPress Way
Doing Things the WordPress Way
 
State of play for Joomla - Nov 2014
State of play for Joomla - Nov 2014State of play for Joomla - Nov 2014
State of play for Joomla - Nov 2014
 
Upgrading a Plone 3 Theme for Plone 4: Beyond the Basics
Upgrading a Plone 3 Theme for Plone 4: Beyond the BasicsUpgrading a Plone 3 Theme for Plone 4: Beyond the Basics
Upgrading a Plone 3 Theme for Plone 4: Beyond the Basics
 
Joomla! Day UK 2009 Basic Templates
Joomla! Day UK 2009 Basic TemplatesJoomla! Day UK 2009 Basic Templates
Joomla! Day UK 2009 Basic Templates
 
Joomla! Day UK 2009 Menus Presentation
Joomla! Day UK 2009 Menus PresentationJoomla! Day UK 2009 Menus Presentation
Joomla! Day UK 2009 Menus Presentation
 
WPtech: L'API Customizer pour les plugins
WPtech: L'API Customizer pour les pluginsWPtech: L'API Customizer pour les plugins
WPtech: L'API Customizer pour les plugins
 
Developing a Joomla 3.x Component using RAD/FOF - Joomladay UK 2014
Developing a Joomla 3.x Component using RAD/FOF - Joomladay UK 2014Developing a Joomla 3.x Component using RAD/FOF - Joomladay UK 2014
Developing a Joomla 3.x Component using RAD/FOF - Joomladay UK 2014
 

Similar to Plone Theming in a Nutshell

Unknown plone
Unknown ploneUnknown plone
Unknown plone
cdw9
 
Custom theme creation for Websphere Portal 8
Custom theme creation for Websphere Portal 8Custom theme creation for Websphere Portal 8
Custom theme creation for Websphere Portal 8
michele buccarello
 
ZopeSkel & Buildout packages
ZopeSkel & Buildout packagesZopeSkel & Buildout packages
ZopeSkel & Buildout packages
Quintagroup
 

Similar to Plone Theming in a Nutshell (20)

Unknown plone
Unknown ploneUnknown plone
Unknown plone
 
Building Volto Addons, Plone Conf 2020
Building Volto Addons, Plone Conf 2020Building Volto Addons, Plone Conf 2020
Building Volto Addons, Plone Conf 2020
 
Martin Aspeli Extending And Customising Plone 3
Martin Aspeli   Extending And Customising Plone 3Martin Aspeli   Extending And Customising Plone 3
Martin Aspeli Extending And Customising Plone 3
 
Building Content Types with Dexterity
Building Content Types with DexterityBuilding Content Types with Dexterity
Building Content Types with Dexterity
 
Introduction to Plone (PyCon Ireland 2010)
Introduction to Plone (PyCon Ireland 2010)Introduction to Plone (PyCon Ireland 2010)
Introduction to Plone (PyCon Ireland 2010)
 
Symfony quick tour_2.3
Symfony quick tour_2.3Symfony quick tour_2.3
Symfony quick tour_2.3
 
BP501 - Building and deploying custom IBM sametime connect client installatio...
BP501 - Building and deploying custom IBM sametime connect client installatio...BP501 - Building and deploying custom IBM sametime connect client installatio...
BP501 - Building and deploying custom IBM sametime connect client installatio...
 
World Plone Day 2012 Taipei
World Plone Day 2012 TaipeiWorld Plone Day 2012 Taipei
World Plone Day 2012 Taipei
 
Custom theme creation for Websphere Portal 8
Custom theme creation for Websphere Portal 8Custom theme creation for Websphere Portal 8
Custom theme creation for Websphere Portal 8
 
Spring Framework -I
Spring Framework -ISpring Framework -I
Spring Framework -I
 
ZopeSkel & Buildout packages
ZopeSkel & Buildout packagesZopeSkel & Buildout packages
ZopeSkel & Buildout packages
 
Pyramid Lighter/Faster/Better web apps
Pyramid Lighter/Faster/Better web appsPyramid Lighter/Faster/Better web apps
Pyramid Lighter/Faster/Better web apps
 
How to Build a Module in Odoo 15 Scaffold Method
How to Build a Module in Odoo 15 Scaffold MethodHow to Build a Module in Odoo 15 Scaffold Method
How to Build a Module in Odoo 15 Scaffold Method
 
Plugins And Making Your Own
Plugins And Making Your OwnPlugins And Making Your Own
Plugins And Making Your Own
 
The Future of the Web
The Future of the WebThe Future of the Web
The Future of the Web
 
Cocoon Blocks ApacheCon US 2005
Cocoon Blocks ApacheCon US 2005Cocoon Blocks ApacheCon US 2005
Cocoon Blocks ApacheCon US 2005
 
Yobi d2 naver(create)
Yobi d2 naver(create)Yobi d2 naver(create)
Yobi d2 naver(create)
 
Creating CentOS Template For CloudStack
Creating CentOS Template For CloudStackCreating CentOS Template For CloudStack
Creating CentOS Template For CloudStack
 
MacSysAdmin Tools Smörgåsbord
MacSysAdmin Tools SmörgåsbordMacSysAdmin Tools Smörgåsbord
MacSysAdmin Tools Smörgåsbord
 
Odoo Material Backend Theme
Odoo Material Backend ThemeOdoo Material Backend Theme
Odoo Material Backend Theme
 

More from cdw9

More from cdw9 (8)

Debugging Your Plone Site
Debugging Your Plone SiteDebugging Your Plone Site
Debugging Your Plone Site
 
Crafting an Impactful Home Page That Your Editors Will Love
Crafting an Impactful Home Page That Your Editors Will LoveCrafting an Impactful Home Page That Your Editors Will Love
Crafting an Impactful Home Page That Your Editors Will Love
 
Contributing to Open Source (Lightning Talk version)
Contributing to Open Source (Lightning Talk version)Contributing to Open Source (Lightning Talk version)
Contributing to Open Source (Lightning Talk version)
 
Debugging with PDB
Debugging with PDBDebugging with PDB
Debugging with PDB
 
Introduction to Transmogrifier
Introduction to TransmogrifierIntroduction to Transmogrifier
Introduction to Transmogrifier
 
Contributing to Open Source
Contributing to Open SourceContributing to Open Source
Contributing to Open Source
 
The Future of [Plone] Theming
The Future of [Plone] ThemingThe Future of [Plone] Theming
The Future of [Plone] Theming
 
Making CSS and Firebug Your New Friends
Making CSS and Firebug Your New FriendsMaking CSS and Firebug Your New Friends
Making CSS and Firebug Your New Friends
 

Recently uploaded

Breaking Down the Flutterwave Scandal What You Need to Know.pdf
Breaking Down the Flutterwave Scandal What You Need to Know.pdfBreaking Down the Flutterwave Scandal What You Need to Know.pdf
Breaking Down the Flutterwave Scandal What You Need to Know.pdf
UK Journal
 
Tales from a Passkey Provider Progress from Awareness to Implementation.pptx
Tales from a Passkey Provider  Progress from Awareness to Implementation.pptxTales from a Passkey Provider  Progress from Awareness to Implementation.pptx
Tales from a Passkey Provider Progress from Awareness to Implementation.pptx
FIDO Alliance
 
Easier, Faster, and More Powerful – Alles Neu macht der Mai -Wir durchleuchte...
Easier, Faster, and More Powerful – Alles Neu macht der Mai -Wir durchleuchte...Easier, Faster, and More Powerful – Alles Neu macht der Mai -Wir durchleuchte...
Easier, Faster, and More Powerful – Alles Neu macht der Mai -Wir durchleuchte...
panagenda
 

Recently uploaded (20)

1111 ChatGPT Prompts PDF Free Download - Prompts for ChatGPT
1111 ChatGPT Prompts PDF Free Download - Prompts for ChatGPT1111 ChatGPT Prompts PDF Free Download - Prompts for ChatGPT
1111 ChatGPT Prompts PDF Free Download - Prompts for ChatGPT
 
Breaking Down the Flutterwave Scandal What You Need to Know.pdf
Breaking Down the Flutterwave Scandal What You Need to Know.pdfBreaking Down the Flutterwave Scandal What You Need to Know.pdf
Breaking Down the Flutterwave Scandal What You Need to Know.pdf
 
Tales from a Passkey Provider Progress from Awareness to Implementation.pptx
Tales from a Passkey Provider  Progress from Awareness to Implementation.pptxTales from a Passkey Provider  Progress from Awareness to Implementation.pptx
Tales from a Passkey Provider Progress from Awareness to Implementation.pptx
 
The Metaverse: Are We There Yet?
The  Metaverse:    Are   We  There  Yet?The  Metaverse:    Are   We  There  Yet?
The Metaverse: Are We There Yet?
 
Introduction to FIDO Authentication and Passkeys.pptx
Introduction to FIDO Authentication and Passkeys.pptxIntroduction to FIDO Authentication and Passkeys.pptx
Introduction to FIDO Authentication and Passkeys.pptx
 
Continuing Bonds Through AI: A Hermeneutic Reflection on Thanabots
Continuing Bonds Through AI: A Hermeneutic Reflection on ThanabotsContinuing Bonds Through AI: A Hermeneutic Reflection on Thanabots
Continuing Bonds Through AI: A Hermeneutic Reflection on Thanabots
 
Event-Driven Architecture Masterclass: Engineering a Robust, High-performance...
Event-Driven Architecture Masterclass: Engineering a Robust, High-performance...Event-Driven Architecture Masterclass: Engineering a Robust, High-performance...
Event-Driven Architecture Masterclass: Engineering a Robust, High-performance...
 
Easier, Faster, and More Powerful – Notes Document Properties Reimagined
Easier, Faster, and More Powerful – Notes Document Properties ReimaginedEasier, Faster, and More Powerful – Notes Document Properties Reimagined
Easier, Faster, and More Powerful – Notes Document Properties Reimagined
 
Event-Driven Architecture Masterclass: Integrating Distributed Data Stores Ac...
Event-Driven Architecture Masterclass: Integrating Distributed Data Stores Ac...Event-Driven Architecture Masterclass: Integrating Distributed Data Stores Ac...
Event-Driven Architecture Masterclass: Integrating Distributed Data Stores Ac...
 
Intro to Passkeys and the State of Passwordless.pptx
Intro to Passkeys and the State of Passwordless.pptxIntro to Passkeys and the State of Passwordless.pptx
Intro to Passkeys and the State of Passwordless.pptx
 
Easier, Faster, and More Powerful – Alles Neu macht der Mai -Wir durchleuchte...
Easier, Faster, and More Powerful – Alles Neu macht der Mai -Wir durchleuchte...Easier, Faster, and More Powerful – Alles Neu macht der Mai -Wir durchleuchte...
Easier, Faster, and More Powerful – Alles Neu macht der Mai -Wir durchleuchte...
 
ERP Contender Series: Acumatica vs. Sage Intacct
ERP Contender Series: Acumatica vs. Sage IntacctERP Contender Series: Acumatica vs. Sage Intacct
ERP Contender Series: Acumatica vs. Sage Intacct
 
State of the Smart Building Startup Landscape 2024!
State of the Smart Building Startup Landscape 2024!State of the Smart Building Startup Landscape 2024!
State of the Smart Building Startup Landscape 2024!
 
Long journey of Ruby Standard library at RubyKaigi 2024
Long journey of Ruby Standard library at RubyKaigi 2024Long journey of Ruby Standard library at RubyKaigi 2024
Long journey of Ruby Standard library at RubyKaigi 2024
 
Your enemies use GenAI too - staying ahead of fraud with Neo4j
Your enemies use GenAI too - staying ahead of fraud with Neo4jYour enemies use GenAI too - staying ahead of fraud with Neo4j
Your enemies use GenAI too - staying ahead of fraud with Neo4j
 
How Red Hat Uses FDO in Device Lifecycle _ Costin and Vitaliy at Red Hat.pdf
How Red Hat Uses FDO in Device Lifecycle _ Costin and Vitaliy at Red Hat.pdfHow Red Hat Uses FDO in Device Lifecycle _ Costin and Vitaliy at Red Hat.pdf
How Red Hat Uses FDO in Device Lifecycle _ Costin and Vitaliy at Red Hat.pdf
 
TEST BANK For, Information Technology Project Management 9th Edition Kathy Sc...
TEST BANK For, Information Technology Project Management 9th Edition Kathy Sc...TEST BANK For, Information Technology Project Management 9th Edition Kathy Sc...
TEST BANK For, Information Technology Project Management 9th Edition Kathy Sc...
 
(Explainable) Data-Centric AI: what are you explaininhg, and to whom?
(Explainable) Data-Centric AI: what are you explaininhg, and to whom?(Explainable) Data-Centric AI: what are you explaininhg, and to whom?
(Explainable) Data-Centric AI: what are you explaininhg, and to whom?
 
AI mind or machine power point presentation
AI mind or machine power point presentationAI mind or machine power point presentation
AI mind or machine power point presentation
 
Oauth 2.0 Introduction and Flows with MuleSoft
Oauth 2.0 Introduction and Flows with MuleSoftOauth 2.0 Introduction and Flows with MuleSoft
Oauth 2.0 Introduction and Flows with MuleSoft
 

Plone Theming in a Nutshell

  • 1. PLONE SYMPOSIUM EAST 2011 Plone Theming in a Nutshell Chrissy Wainwright
  • 2. Create the Theme PLONE SYMPOSIUM EAST 2011 $ paster create -t plone3_theme From the command line, use paster in builtout/src to create the theme. This template does work for Plone 4, specify ‘Sunburst Theme’ as the skinbase.
  • 3. Install the Theme PLONE SYMPOSIUM EAST 2011 Add your new theme to buildout.cfg in the [buildout] section under eggs, zcml, and develop. Run buildout, start instance, and install theme in ZMI > portal_quickinstaller.
  • 4. Change the Logo PLONE SYMPOSIUM EAST 2011 The name of the logo image to be used can be found and changed in skins/styles/base_properties.props Put your new logo in skins/images/ and make sure the filename matches what is in base_properties.
  • 5. Apply Styles PLONE SYMPOSIUM EAST 2011 Put a file into your theme/skins/styles folder called ploneCustom.css Create new CSS files by adding them to the CSS registry. cssregistry.xml - Generic Setup - portal_css
  • 6. Generic Setup PLONE SYMPOSIUM EAST 2011 Generic Setup is the connection between content/changes in your site and the filesystem. ZMI > portal_setup > Import/Export tab theme/profiles/default/
  • 7. Generic Setup PLONE SYMPOSIUM EAST 2011 * portal_actions : Action Providers : actions.xml * portal_css : Stylesheet Registry : cssregistry.xml * portal_javascripts : Javascript Registry : jsregistry.xml * portal_types : Types Tool : types/[type].xml * @@manage-viewlets : Viewlet Settings : viewlets.xml
  • 8. Find Original Templates PLONE SYMPOSIUM EAST 2011 Using omelette, you can find the templates you want to override. Viewlets: plone/app/layout/viewlets Portlets: plone/app/portlets/portlets Other templates: Products/CMFPlone/skins/
  • 9. Identify Plone Elements: Viewlets PLONE SYMPOSIUM EAST 2011
  • 10. Override Viewlets PLONE SYMPOSIUM EAST 2011 From plone/app/layout/viewlets: * viewlet-specific code in configure.zcml * viewlet template
  • 11. Override Viewlets PLONE SYMPOSIUM EAST 2011 Put overrides into theme/browser: * configure.zcml - update relative paths (manager, class) - add template=”... - add layer=”.interfaces.IThemeSpecific” * viewlet template
  • 12. Override Viewlets: z3c.jbot PLONE SYMPOSIUM EAST 2011 Or use z3c.jbot! In theme/browser/configure.zcml: <include package=”z3c.jbot” file=”meta.zcml” /> <browser:templateOverrides directory=”template-overrides” layer=”.interfaces.IThemeSpecific” />
  • 13. Override Viewlets: z3c.jbot PLONE SYMPOSIUM EAST 2011 Templates can now go into theme/browser/template-overrides named by referencing the dotted path to the file: plone.app.layout.viewlets.footer.pt
  • 14. Identify Plone Elements: Portlets PLONE SYMPOSIUM EAST 2011
  • 15. Override Portlets PLONE SYMPOSIUM EAST 2011 In theme/browser/configure.zcml: <include package=”plone.app.portlets” /> <plone:portletRenderer portlet=”plone.app.portlets.portlets.events. IEventsPortlet” template=”events.pt” layer=”interfaces.IThemeSpecific” />
  • 16. Override Templates PLONE SYMPOSIUM EAST 2011 If the original template is found in skins: * put a copy in your theme/skins/ folder * use the exact same name * copy any associated .metadata files * ex: Products/CMFPlone/skins/plone_content/ document_view.pt
  • 17. Editing Actions PLONE SYMPOSIUM EAST 2011 Parts of the site that use actions: * personal bar (login, preferences, etc) * main navigation Home link * document actions (print, send) * site actions (contact, accessibility, etc)
  • 18. Editing Actions PLONE SYMPOSIUM EAST 2011 * ZMI > portal_actions * Export Action Providers * remove extra code from actions.xml that you did not adjust
  • 19. Common Stumbling Blocks PLONE SYMPOSIUM EAST 2011 What to look for when your changes are not showing up Flickr: gfpeck
  • 20. Common Stumbling Blocks PLONE SYMPOSIUM EAST 2011 1. Make sure the theme is installed ZMI > portal_quickinstaller
  • 21. Common Stumbling Blocks PLONE SYMPOSIUM EAST 2011 2. Restart your instance * .zcml * .py * new z3c.jbot override
  • 22. Common Stumbling Blocks PLONE SYMPOSIUM EAST 2011 3. Turn on Development mode ZMI > portal_css ZMI > portal_javascripts
  • 23. Common Stumbling Blocks PLONE SYMPOSIUM EAST 2011 4. Generic Setup - XML Files * import changes in ZMI > portal_setup > import tab
  • 24. Common Stumbling Blocks PLONE SYMPOSIUM EAST 2011 5. Check the custom folder ZMI > portal_skins > custom ZMI > portal_view_customizations > contents
  • 25. Common Stumbling Blocks PLONE SYMPOSIUM EAST 2011 5. Skins Order ZMI > portal_skins > properties tab
  • 26. PLONE SYMPOSIUM EAST 2011 eck out Ch .com/ demos six feetup