Manage configuration of browser views
Project description
Introduction
This add-on does not provide new feature to Plone. It is intended to plone add-ons developers.
If you need to create a browser view with configuration this add-on will make your life easier.
Features:
Configuration providers
Configuration structure defined with zope.interface & zope.schema
Store configuration with plone.app.registry
Auto form to manage the configuration of the current view
Why doing this in an add-on
Because most of the time developers faced to this issue store data in the content type, or with annotation on context without trying to optimize, or without form, …
How it works
This add-ons define two components:
ConfigurableView
Registry (IConfigurationStorage)
The main idea, is you just have to create an zope.interface to define settings schema and set this schema in the ‘settings_schema’ attributes of the view.
For example:
class IMyViewSettings(interface.Interface): width = schema.ASCIILine(title=u"Width", default='620') height = schema.ASCIILine(title=u"Height", default='620') class MyView(ConfigurableBaseView): settings_schema = IMyViewSettings def width(self): return self.settings.width def height(self): return self.settings.height
IConfigurationStorage
This component is responsible to return settings. It has been implemented as an adapter from your configurable view.
IConfigurableView
This component is implemented as a browserview. You have to inherits from this one to create your own browser view.
Common use case: use a javascript library for a view
Most of javascript libraries wait for a dict to load their configuration. You can achieve this in a very easy way. You just have to define a configuration schema and add the following snippet in your template to create a javascript variable with the configuration
<script type="text/javascript" tal:content="view/settings_javascripts"></script>
You can set the variable name throw the jsvarname attribute of your browserview.
You will find examples in the following addons:
collective.galleria
collective.galleriffic
collective.googledocsviewer
Credits
Companies
Authors
JeanMichel FRANCOIS aka toutpt <toutpt@gmail.com>
Contributors
Radim Novotny aka naro
Changelog
2.0 (2012-01-30)
Use collective.registry instead of provider/mutator [toutpt]
1.0b4 (2011-12-07)
add new classifiers [toutpt]
fix tests [toutpt]
fix issue making edit configuration not working [naro]
1.0b3 (2011-08-01)
Optimization of storage: defaults are now based on all provider except zope.app.annotation [toutpt]
fix case where site.plone.app.registry are not set (value was set to None) [toutpt]
1.0b2 (2011-06-30)
Fix config form (http://stackoverflow.com/q/6524304/622081)
1.0b1 (2011-06-08)
Initial release
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Hashes for collective.configviews-2.0.tar.gz
Algorithm | Hash digest | |
---|---|---|
SHA256 | cb94bfb3b0d00806e412332ad1657b7bada975a6ec4aabc7d0441df60e8890cc |
|
MD5 | d9880e6288f40017c14c2588a8e6cf70 |
|
BLAKE2b-256 | 4270fbf42fb3b936c9ea1b6211833b447d669382c60efe59a28f10e9ab9b2f5a |