skip to navigation
skip to content

Not Logged In

collective.skinny 0.6

Plone theming for mortals: A simple example to get you started quickly with your own public skin


What is Skinny?

It's a package to help you get started quickly with developing a seperate, public-facing skin for your Plone site. It's been described as being vastly easier than skinning Plone the conventional way. But it also has a few drawbacks; one being that you can't use it for community sites where people other than your site editors log in and modify content.

If you're struggling with skinning your Plone site, do try it out and give feedback. The package comes with an example skin that shows you how it works.

Skinny has been discussed here:


Look at the package's configure.zcml file for instructions on how to activate the public skin to actually see it.

This package is both an example and a library. The easiest way to start using it is to just copy the package and modify.

The better way is to use it as a library and extend it with your own package. When doing so, you'll probably want to start out by subclassing and overriding through ZCML the main view, which lives in main.Main. Look at the configure.zcml file for pointers.

To get started, look at the templates/ directory. The template is where everything is wired together. You can render other templates in the same directory by saying view/render_spam, which will render the template.

Writing views for content objects works similarly. Look at templates/content/ to see how this can work. This template is found and used because it corresponds to the portal_type of the content object you're displaying. Thus, you can make your own view for Smart Folders by putting a template into the same directory, to give an example. If no content view is found, we'll try and display Plone's default view for you.

All of Plone's views such as @@plone_context_state and friends are available as usual in templates. In addition, there's a handy shortcut for looking up tools: Using view/portal_spam will return the portal_spam tool from your Plone site. (Try view/portal_url for a working example ;-).


The example in this package looks something like this:


We'd like to make this package work as easy as possible for you. Let us know if you have any comments or questions by using the Plone User Interface & Design or the Plone Add-on Product developers list.


The following people helped with support, code, patches, etc:

  • Martin Aspeli
  • Pelle Krogholt
  • Shane Graber
  • Sylvain Viollon


0.6 - 2010-11-20

  • In collective.skinny.content.Content, add allow_fallback_to_plone_views variable to control whether or not we should allow fallback to the default Plone views. If you set this to False, you can control the types that'll be visible in your public skin.

  • In collective.skinny.main.Main, render media content inline.

  • Add language method for getting current language's code to Main view.

  • Add instance in the call to ViewPageTemplateFile instance. This makes skinny incompatible with Zope 2.11 and lower, and fixes this problem with more recent versions of Zope:

    Module collective.skinny.base, line 27, in render_template
    TypeError: __call__() takes at least 2 arguments (1 given)

0.5 - 2009-04-20

  • Allow any non-HTML resources from Plone to be served. The previous "no leak" fix turned out to be a bit too strict, e.g. it wouldn't allow images from content to be served in the public skin.
  • Patch site_properties to return the empty list for typesUseViewActionInListings so that images and files don't get a /view at the end when looking at the public skin, and thus can be skinned with Skinny. To make you own view for images, add a templates/content/

0.4 - 2009-04-16

  • Don't leak Plone views like folder_listing anymore in the public skin.

0.3 - 2009-01-26

  • No longer require python: statements for rendering parts; use view/render_$part.
  • Make portal tools available through view/portal_url and the like.
  • Add a render_viewlet convenience function to that allows the reuse of Plone's viewlets in the public skin. Look at main.MyNavigation for a usage example.

0.2 - 2009-01-22

  • Instead of displaying the login form when an Unauthorized error is raised, display a 404 page in the public skin. This will make pages like /edit invisible.

0.1 - 2009-01-22

  • Initial release
File Type Py Version Uploaded on Size
collective.skinny-0.6.tar.gz (md5) Source 2010-11-20 22KB
  • Downloads (All Versions):
  • 40 downloads in the last day
  • 237 downloads in the last week
  • 869 downloads in the last month