Nov 04, 2010

  • Category: Buildout, Plone
  • comment(s)

Recent Posts

Categories

Archives

A Report On Plonetheme.*

Plone Theme Buildout

By now, most of us are familiar with XDV and how awesome it is for theming Plone (or any website). You should also be aware that XDV has been renamed to Diazo, and collective.xdv is now called plone.app.theming. But let us not forget the humble “old style” theme just yet! Sometimes they come in very handy, and may even be preferable in some cases depending on what you are trying to accomplish. I just gave plonetheme.* a quick spin and thought I’d share the process and results with anyone that might find it useful.

Step 1

Get a list of all the plonetheme packages on PyPI:

$ pip search plonetheme

Step 2

Create a buildout:

$ virtualenv plone-theme-test
$ bin/easy_install zc.buildout
$ bin/buildout init

Step 3

Edit your buildout.cfg to include the following:

[buildout]
extends = http://dist.aclark.net/buildout/plone/4.0.x/buildout.cfg
parts =
 plone[plone]
eggs +=
 ${theme:eggs}zcml +=
 ${theme:eggs}[theme]
eggs =# Deps that the themes should have added
 collective.contentleadimage
 collective.flowplayer
 z3c.jbot#    Products.categorynavigator
#
# XXX Products.categorynavigator is a dep of plonetheme.mvob but it
# has a NameError
# ZopeXMLConfigurationError: File "/Users/aclark/Developer/packages…
# NameError: name 'ImportException' is not defined# themes
 plonetheme.notredame
 plonetheme.fui
 plonetheme.sunburst
 plonetheme.colorcontext
 plonetheme.twinapex
#    plonetheme.mvob
 plonetheme.peerstheme
 plonetheme.nautica05
 plonetheme.stylized
 plonetheme.labs
 plonetheme.sait2009
 plonetheme.cultureCab
 plonetheme.xtheme
 plonetheme.mimbo
 plonetheme.python
 plonetheme.terrafirma
 plonetheme.solemnity
 plonetheme.level2
 plonetheme.tidyblog
 plonetheme.andreas01
 plonetheme.blueblog
 plonetheme.delicious2
#    plonetheme.hamnavoe
 plonetheme.greencommunity
 plonetheme.subordinate
 plonetheme.bluegray
 plonetheme.p2
 plonetheme.aclark_twitter
 plonetheme.relic
 plonetheme.classic
#    plonetheme.simplicity
 plonetheme.netsightintranet
 plonetheme.keepitsimple
 plonetheme.andreas02
 plonetheme.essay
 plonetheme.ReOrg
#    plonetheme.Bangalore
 plonetheme.nonzero
 plonetheme.cleantheme
 plonetheme.minimalist
 plonetheme.inbusiness
#    plonetheme.corporatemale
 plonetheme.portaltwodotoh
 plonetheme.rcom
 plonetheme.equipoteih
 plonetheme.pyar
 plonetheme.basic# XXX plonetheme.GreenEarthTheme3_0 has zope.configuration.config…
# error
#    plonetheme.GreenEarthTheme3_0
#zope.configuration.config.ConfigurationExecutionError: <type …
#  in:
#  File "/Users/aclark/Developer/packages/plonetheme.GreenEarthTheme…
#     <cmf:registerDirectory
#         name="GreenEarthTheme3_0_templates"/> plonetheme.criticas
 plonetheme.gemstone
#    plonetheme.bronzecube
 plonetheme.lithium
 plonetheme.overlappedtabs

Step 4

Run buildout; start Plone; play around!

Conclusion

The whole effort (including writing the blog post) took only an hour or two, for whatever that is worth (not including the actual theme review, unfortunately!). I find the results interesting and I thought you might too.

Process

Dependencies

You’ll notice in the [theme] section, comments about various packages that were not included with all of the various themes.

As far as I can tell, it is in the best interest of “old style” theme developers to specify these packages in their setup.py files with the install_requires parameter!

OK, it’s actually in my best interest because then I have to do less work, but you get the idea.

Broken or missing packages

The plonetheme.* packages that are just commented out (without an XXX note) did not make it past the bin/buildout step (for whatever reason, usually a broken package).

Themes

My favorite theme (right after plonetheme.aclark_twitter, that is) is… nevermind! I wanted to report on that but I still have to go through all the themes! (By installing each one at a time, testing, then uninstalling before moving to the next one.)

Packaging

Just my opinion, but if you are adding functionality to Plone, it’s probably not (just) a theme. So I would separate that functionality from your plonetheme.* code.

Problems

jbot modifies default Plone theme?

I’ve noticed this before in both Plone Classic and now Sunburst when jbot is installed. No idea what the actual cause is:

Disclaimer

Designed for Plone 4?

Before you say it (I know you are thinking it), I know not all of these themes are designed to work with Plone 4. I dont’ have a good answer about how to approach that problem (I just know that when looking for themes, I don’t really care. I just “want it to work”.)

Bug report please?

I know, I know. I should open a ticket for the jbot thing.

And now off to play!

P.S. I will report on the install process in the comments.

So far, Andreas installed, worked, and looked nice while Bluegray Theme 1.0.0b2 required a ZMI undo ;-)

Comments

comments powered by Disqus