[Zope-Annce] Silva 2.2 Released

Wim Boucquaert wim at infrae.com
Wed Mar 31 09:11:41 EDT 2010

31 march 2010 – Infrae is pleased to announce the final 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

* 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

* 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

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

* 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 (http://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

* 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

* 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
See http://docs.infrae.com/ for extensive installation documentation.

For more complete information, see the Silva Product Pages at

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


* 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:


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.

More information about the Zope-Announce mailing list