changed:
-
In this compendium. i describe some of the spots where things are tied -
"knitted" - together in Plone. Zope and Plone extensibility often involves
configuration that connects extension software into the system. This
document is intended to help remember how.
the key resources for understanding current practice in both
through-the-web (`TTW`) and filesystem control of presentation is the
`Creating Plone Themes`_ tutorial. `Customization For Developers`_ goes
further, describing the more recent mechanisms, extending beyond what i
have so far used.
.. _`Creating Plone Themes`:
http://plone.org/documentation/tutorial/creating-plone-themes
.. _`Customization For Developers`:
http://plone.org/documentation/customization-for-developers
skins customization: templates, python scripts, and properties
product element presentation is organized in terms of portal "skins",
with a skin folder associated with each component being presented. skin
folders contain zope page templates (`ZPT`), through-the-web python
scripts, and files which set presentation element metadata properties.
the sources for most skin folders live in the Zope server's file system,
organized with the zope products which define the components. the
portal_skins tool in the root of the portal contains TTW views of those
folders and their contents.
when you visit one of those files you have the option to "Customize" the
file, stashing a fully TTW version of the file in (by default) the
portal_skins `custom` folder. you can edit these customizable copies
using your browser, with the customizable copy taking precedence over the
filesystem based copy. you can fall back to the file-system copy simply
by removing the customizable copy, or giving it a different name (a quite
distinct one, so it isn't mistaken for another skin element).
skins folders can also contain css and javascript files, as part of the
presentation. including them as part of resource registries instead,
however, provide some discretion for optimizing and organizing their
presentation in critical ways.
presentation elements for central system widgets, specifically, zope 3
views, viewlets and portlets, are handled in recent versions of plone
in yet another presentation management tool, portal_view_customizations,
described below.
resource registries - css (styles) and javascript
the portal_css and portal_javascript tools provide control over
deployment of css and javascript resources in your site. products
register their css and javascript files with the respective registries.
these tools offer options to specify load ordering of each file with
respect to their other files, and also qualify conditions on including
the files according to arbitrary script expressions. these options
enable reducing unnecessary transmission of these heavily layered
resources when appropriate.
these tools also offer options (by default, enabled) to cache, compress,
and consolidate the resources that are transmitted, further economizing
the bandwidth. these streamlining measures can interfere with debugging
during development of the resources, and can be disabled for such
occasions.
the tools also enable TTW registration of new resources, useful during
development of new products or when adding more ad hoc provisions
specific to your site.
view customizations - zope 3 views, portlets, and viewlets
the portal_view_customizations tool presents the connections between
system zope 3 elements (including portlets and viewlets) and their
presentation elements. like the skins tool, it offers the option to
customize the presentation elements for your specific site. the
customizations arrangement is handled slightly differently, via the same
link as the file-system versions.
to remove a TTW view customization, you need to go to the contents view
of the portal_view_customizations tool and remove the template with the
name of the item that's been customized.
Extracting TTW Customizations for Use in A Filesystem Product
=============================================================
use the `portal_setup` tool to export your TTW customizations for use in
filesystem-based products. this enables a graceful progression between
expedient exploration of immediate, TTW changes to institution of tested
changes as part of packaged code.
Preliminary Notes re Product Development
========================================
- `ArchGenXML 2 - Developers Manual`_
- `Add-on Product Developer Manual`_
.. _`ArchGenXML 2 - Developers Manual`:
http://plone.org/documentation/manual/archgenxml2
.. _`Add-on Product Developer Manual`:
http://plone.org/documentation/manual/add-on-products-developer-manual/