Plone multitheme

Following on from: Theme gallery for (Plone 5 themes)

I'm creating a new topic for discussing Plone Multitheme

My hit list right now for tiles, with references, would be:

It is quite easy to make 'these things'.

The problem is that I have not managed to add related items / images / files, so I need to use URL (which might change).
Also: I have not figured out a way to use custom widgets with the fragments (for example the icon picker or color picker widget)

Of course, it is possible to make them with 'normal tiles', but since my idea is this, I do not want to do that:

  1. Add as many fragment-tiles as possible (almost everything you can 'think of')
  2. Make a lot of layouts for each tile, so you can choose.
  3. When the developer have found what he/she needs, he customizes the theme and deletes all the other options he/she does not need.
  4. The developer removes the links to the CSS-files and copies the CSS to the theme's CSS.

Adding 'tiles for everything would clutter the UI'

I'm all for keeping the UI clean and usable... see:

I've implemented a video tile

I borrowed some ideas from @vangheem to implement a way to toggle fullwidth on tiles.

If you have not already, take a look at the Mosaic UI that castle.cms uses.

In case you want a quick look at the multitheme project (in plone), I added a site
ploner / themer2017

So this link shows the castle.cms UI? is Plone, not Castle

It didn't look different to me.

This is basically finished (spent ages getting the selection widget to work), ... just a litt css is missing

I am putting the new fragments here as I make them.

What is the use case of Dimissable alert ?

About fullpage-tile: I have already made a Plone 5 full page theme :
I can not see the use case for a full page tile, in my opinion, what is needed is just a new navigation menu and a javascript to scroll to every section ( where section is a tile).

About the video gallery: this will require a custom content type (?), so to me it makes more sense to make a browser view.

You could put a notice on a site.
Something like the privacy reminder that you sometimes see on the bottom of the Google home page:

But ins't that something or is made for?

Looks so. How do I not know about these things :slight_smile: ?

very nice.
It's very helpful if you put up the tile configuration page like you have done on

I know (it was the plan to do it for all), it is just that this is taking so much time already....

The theme is (more or less) made up of 3 parts.

  1. (Demo) content and a control panel (so you need to install the theme from the add-on control panel)
  2. Different layouts that can be chosen from the control panel
  3. Fragments ( html snippets with corresponding .py and .xml files (and js & css if needed) )

If you add a new tile or modify the xml or .py file, you will have to disable/enable the theme in the theming control panel (or restart Plone)

##To do
We need more fragments, more layouts and some diazo rules to have different 'navigations'.
The best way to start is probably to make some tiles with layout.

Look at the tile:

Currently, it has no special layout, and no settings.
What we want for this fragment is to be able to change the text (Create awesome etc) , PRE MADE BLOCKS, butten text and link.

This is done by making a info_block.xml file. In the info_block.xml file you add the settings we want (open the other xml files and look at the code and copy)
Then we want to make as many layouts as possible for this fragment, for example

If possible, we try to not have color definitions in the CSS files, but instead add CSS classes, taken from the settings.

The syntax of the settings is:


for the user entered data




def get_something(self):
     return 'something'

in a py file

To use the variables in the file, do something like:

You can also choose which css file to load (but try to use CSS classes and put everything in same CSSfile if possible)

The syntax would be:

<link rel="stylesheet" href="++theme++multitheme/css}/${view/data/css_file}.css">

For layouts: you find plenty inspiration at

PS: I can make another demo site if you want to work / show you work TTW

(a) How to integrate collective.multitheme in Plone?
(b)I understood that we need to make fragments/blocks with different functionalities (eg. parallax, accordian, etc.). For that we will make different xml files. How to make those xml files?

a) It would be nice if you manage to 'fork' the GitHub repo (which is probably something you need to do sooner or later.

Anyway: you can do you changes etc and send me the files for now. Do it like this:

  1. Go to: and click the "download" button.

  2. Place the unzipped folder (which will be named collective.multitheme) in /path/to/your/plone/src. (there will be a README.txt file in that folder with: 'Packages in eggs that you develop should go in this directory'

  3. In you buildout.cfg make sure it contains

    eggs =

(and some more lines, Pillow etc)

Longer down add one line to the develop section, so it reads:

develop =

Now, run bin/buildout and (re)start plone.