管理浏览器视图配置
项目描述
介绍
此插件不向Plone提供功能。它是为Plone插件开发者设计的。
它提供了基类,让您的视图可配置(即有“设置”)。
功能
配置提供者
使用zope.interface和zope.schema定义的配置结构
使用插件存储配置
从模式生成表单,以便所有者配置当前视图
关于版本号的说明
3.0是回到1.0。
2.0分支原本打算使用collective.registry在上下文中,使用plone.app.registry。这样做后,插件失去了拥有优化设置的能力(全局和局部混合)。因此,让我们回滚到3.0中的1.0!
为什么在插件中这样做
因为大多数情况下,开发者面临的问题是将数据存储在内容类型中,或在上下文中添加注释,而不尝试优化,或没有表单……
它是如何工作的
此插件定义了三个组件
ConfigurableView
ConfigurationProvider
ConfigurationMutator
主要思想是,您只需创建一个zope.interface来定义设置模式,并将其设置在视图的'settings_schema'属性中。
例如
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
IConfigurationProvider
此组件负责返回设置。它已在不同的适配器中实现
Provider(未命名适配器):此提供者从接口字段默认值加载默认值,并允许其他提供者覆盖值。它是视图通过settings_providers属性指定的所有提供者的聚合。警告:顺序很重要,每个设置都是从提供它的最后一个提供者那里获取的。
'site.plone.app.registry':此提供者从plone.app.registry返回值(您必须将settings_schema注册为registry.xml中的记录)
'context.zope.app.annotation':此提供者返回存储在视图上下文注释中的值。
IConfigurationMutator
此组件是IConfigurationProvider的扩展,具有写入设置的功能(通过其'set'方法)。
'context.zope.app.annontation':此修改器将配置存储在视图的上下文中。
IConfigurableView
此组件在browserview中实现,您应该在您的浏览器视图中继承它。
默认行为是使用'context.zope.app.annotation'作为修改器和以下提供者
site.plone.app.registry
context.zope.app.annotation
常见用例:使用JavaScript库进行视图
大多数JavaScript库都等待一个字典来加载它们的配置。您可以通过非常简单的方式实现这一点。您只需定义一个配置模式,并在模板中添加以下片段来创建一个带有配置的JavaScript变量
<script type="text/javascript" tal:content="view/settings_javascripts"></script>
您可以通过browserview的jsvarname属性设置变量名称。
您将在以下插件中找到示例
collective.galleria
collective.galleriffic
collective.googledocsviewer
鸣谢
公司
人物
JeanMichel FRANCOIS(又称toutpt)<toutpt@gmail.com>
Radim Novotny(又称naro)
Luca Fabbri(又称keul)<luca@keul.it>
变更日志
3.1.0 (2016-08-23)
当配置更改时,将触发IConfigurationChangedEvent事件[keul]
当修改视图设置时,也在__modified__键中存储修改日期。这可能在您需要检查配置是否“新鲜”的罕见情况下有所帮助[keul]
3.0.3 (2016-05-12)
添加了意大利语翻译[keul]
修复了i18n机制[keul]
添加卸载配置文件。[thet]
3.0.2 (2013-04-30)
通过强制加载CMFDynamicViewFTI的zcml来解决配置错误[toutpt]
3.0.1 (2013-04-29)
使用权限保护configviews[toutpt]
3.0 (2013-03-25)
添加对viewlet的支持[toutpt]
3.0a1(2013-02-15)
回滚到1.0内部设计[toutpt]
2.0 (2012-01-30)
使用collective.registry而不是provider/mutator[toutpt]
1.0b4(2011-12-07)
添加新的分类器[toutpt]
修复测试[toutpt]
修复了导致编辑配置无法工作的错误[naro]
1.0b3(2011-08-01)
存储优化:现在默认值基于除zope.app.annotation之外的所有提供者[toutpt]
修复了当 site.plone.app.registry 未设置时(值被设置为 None)的问题 [toutpt]
1.0b2 (2011-06-30)
1.0b1 (2011-06-08)
首次发布
项目详情
下载文件
下载适合您平台的文件。如果您不确定选择哪个,请了解更多关于 安装包 的信息。
源代码分发
集体.configviews-3.1.0.tar.gz 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 2b7f2f4f705dd55408f720143ec27143e1e6d67ce918fbca9fc8d5861e258b6a |
|
MD5 | 025766ed746dd964b7d17b57143add35 |
|
BLAKE2b-256 | e68e697df24ce2a8539be2bf1569f7f0d8218290b1babc48b068067d6395bb0a |