Skip to main content

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

Project description

collective.skinny

An example implementation of a separate, public-facing skin as discussed at:

Usage

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 main.pt 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 spam.pt template.

Writing views for content objects works similarly. Look at templates/content/document.pt 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 topic.pt 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 ;-).

Screenshot

The example in this package looks something like this:

http://danielnouri.org/media/acme-website.png

Feedback

I’d like to make this package work as easy as possible for you. Let me know if you have any comments or questions by either using the comments on this blog post, or by dropping an e-mail to daniel.nouri <at> gmail.com.

Changelog

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 base.py 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

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

collective.skinny-0.3.tar.gz (19.3 kB view hashes)

Uploaded Source

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page