Looking under the hood? Interested in a job? Send a mail....

Silva 2.2 beta Released

Publication date: 3.February.2010, 18:48

3 febuary 2010 – Infrae is pleased to announce the beta release of Silva 2.2. This release adds a slew of new features for users, developers, and system administrators, and is a leap forward with Zope 2.11 and Five/Grok technology.

New features

  • The new TOC features made available in Silva 2.1 are now accessible within documents by using the TOC code source with the id “cs_toc”. This is part of “service_codesources”, and is copied into the Silva Root when SilvaExternalSources is installed.
  • Kupu now has merging and splitting table cells functionality for tables. You can either merge and split cells. If you’re in a cell and click the merge button, then the current cell will merge with the table cell on the right of it. A cell that was previously merged can be split again by clicking the split button.
  • External Sources can now have a preview in Kupu. When an external source with preview capabilities is added to a document, the external source is rendered in Kupu (previously only the parameter values were shown). When that external source is active, or when hovering over it with the mouse, the external source will have a different background color, a border, and a ‘lock’ icon. This shows the extent of the external source within the document and also provides a hint that it is not directly editable. 
  • DateTime widgets in the SMI now have a ‘calendar’ button which opens a popup calendar. This is a more user friendly way for supplying dates and time. 
  • Redesigned link and image tools: the link and image reference fields now have an icon button for the ‘get reference’ functionality, saving toolbox space. When a reference is present an ‘edit linked reference’ button appears. When clicked this opens up a new window to the editor screen of the reference.

Content modification

  • The addables functionality is now available within any type of container, not just Publications.
  • Recursive publishing actions: in the publish screen it is now possible to select containers. If a folder is selected (which looks transparent) all sub objects are also selected. Publication types may also be selected. All publishing actions will now be applied to all items contained in the selected containers, and recursively to all items within Publications.
  • Indexer objects now use IntIDs, so if you move objects around, links won’t be get broken in the Indexer object.
  • Files and Images now support blob storage, which stores data outside of the Zope Database (Data.fs). Migration between storage back–ends can be done in the ZMI via “service_files”.
  • A Local Site feature has been introduced. A local site can contain services which modify Silva behavior on lower levels. By default a Silva Root is a local site, and any Publication can become a Local Site as well. In the ZMI of a Publication you will see a service tab and you’ll be able to add services in that Publication.

Optional add–ons available by default

  • A search and replace service is now available. It lets you search through all documents of your site, and replace a test string with a replacement of your choice.
  • OAI basic server support is available on Folders, Publications, and Silva roots. It is accessible through the [URL–of–the–object]/oiapmh and exports information about the container data.
  • Silva Permanent Link Redirect: once this is activated in “service_extensions” it creates a special link object for all moved content. You can rename content and the old content ID will point to the newly renamed content. This lets you move or rename content and preserve the existing URLs in that context. After a while you can delete the link object when everybody (also search engines) have updated the URL of the content. The link object will always point to the same content, even if it gets moved around.
  • Silva Security Addable service: this lets you add a service in the ZMI to configure the “adding permissions” of Silva content types. It defines which user role has the right to add which content type (addables).

Layout modification

  • The public page link is now visible in the tab space and styled as a tab.
  • The preview mechanism has been improved to use a namespace. You can now completely navigate in the preview version of your site. When clicking on links in the preview screen, yo will stay in preview mode while navigating around.
  • A new public layout system ‘silva.core.layout’ which is based on Zope3 and Grok has been implemented. It works a bit like SilvaLayout, but is much easier to use. Its goal is to let non–Zope developers make layouts themselves. It also lets you choose the template engine you would like to use.
  • The public ‘SilvaLayout layout system’ is deprecated, and the old default ‘SilvaLayout layout’ is not available by default.
  • The public ‘legacy layout system’ (using ZODB scripts and templates) is not installed by default anymore. You can still install it in “service_extensions”.
  • The new default public layout theme called “Standard Issue”, which is based on a template from FreeCSSTemplates.org, uses ‘silva.core.layout’. Its code can be used as example to implement a layout using the new core layout technology.
  • The demo public layout called ‘Multiflex’ is shipped as well. Its code has been converted to use the ‘silva.core.layout’ system too.
  • A ZMI content called Customization marker has been added.
  • A SMI tab called Customization, available in the properties screen, has been added for every Silva content. This makes it possible to mark content with a customization marker. A customization marker can be a ZODB based marker, or file–system based marker.
  • A new service has been added: “service_customization”. It lets you search and customize file system–based layout templates. You can customize a given template (e.g. a rendering view or a piece of a rendering view) for a given content type (e.g. all container types, or only documents) or only for content marked with a given Customization marker.

Installation modification

  • Silva extensions can now be packaged as Python eggs. The “service_extensions” is able to extract information on those extensions using the egg metadata.

  • Silva is shipped with Python eggs by default, and installable with buildout.

  • Grok is used to configure Silva content types, services, views, skins, and forms.

  • Upgrade steps now support complex revision number types e.g. 2.2.4b1dev. This makes it possible to define upgrade steps between alpha, beta, and minor versions. As upgrade actions could be needed in service_extensions for those version upgrades as well.

New features, of interest to developers

  • Silva has been ‘eggified’. Buildout scripts now retrieve eggs from the download area on infrae.com (https://infrae.com/download/simple) and the Python Package Index.
  • All Silva content types and services now use Grok for configuration and registration (instead of ZCML). 
  • Content types can now be defined using zope.schema.
  • Generic Formlib and z3c forms support have been added to the SMI and public interface.
  • In the SMI, add and edit forms can be generated using Formlib or z3c.forms.
  • The mechanism for previewing public pages has been refactored to use a Zope namespace. The author automatically stays in preview mode even when navigating, and always in the public design. Registering a preview mode in your template configuration is not required anymore, it works automatically.
  • Publications can now become local sites, meaning that they can have local services that change the configuration (as well as configuration of the content). A services tab appears in the ZMI in the publication where the local site feature is activated.
  • Zope 3 and Grok views are supported to render your public content. 
  • Alternate public views can be provided for any content type, with selection in the SMI.
  • The file system-based visual design has been refactored: it’s now much easier to define a design and extend it. Most layout can be implemented by dropping your template, CSS and image files onto the file system. Experienced designers can use Zope 3 layouts (or pagelets), views, content providers and viewlets to define an advanced design. Configuration is again simplified with the help of Grok.
  • The SilvaLayout metadata marker used to mark virtual hosts is not needed anymore. Breadcrumbs and navigation start automatically at a publication defined in your Apache/web server configuration.
  • The content upgrader works on Silva minor versions as well, including alpha and beta.

Check out docs.infrae.com

Silva 2.2 code has been used to generate developer documentation using Sphinx.  See http://docs.infrae.com/ for extensive installation documentation.

What is Silva?

Silva is a powerful CMS for organizations that manage multiple or complex websites. Content is stored in clean and futureproof XML, independent of layout and presentation. Features include versioning, workflow system, integral visual editor (Kupu), content reuse, sophisticated access control, multi-site management, extensive import/export facilities, fine-grained templating, and hi-res image storage and manipulation.

For more complete information, see the Silva Product Pages at https://infrae.com/products/silva.


Silva 2.2 should be installed using buildout:


or using Paster by selecting the development distribution. For more information on the Silva installation procedure see: http://docs.infrae.com/silva/buildout.html


In order to upgrade existing setup, please refer to upgrade documentation, and to the upgrade notes for 2.2:



FMI contact Kit Blake, kitblake at infrae com, +31 10 243 7051.