提供Plone内容代理的模块。
项目描述
概述
为Plone提供某种类型的内容代理模块。它适用于所有基于Archetypes的类型。
请注意,Archetypes UID必须在portal_catalog中存在(在plone 3中默认存在),并且类型视图必须包含一个 main 宏,例如:
<metal:main fill-slot="main"> <tal:main-macro metal:define-macro="main"> <!-- type view goes here --> </tal:main-macro> </metal:main>
此宏在代理内容上调用,并插入到当前上下文中的 main_template 的 main 插槽中。
提供了两种类型的代理行为
无地点代理
这是一个名为 proxy 的简单BrowserView,其自己的遍历器将URL的尾部部分解析为Archetype UID,即:
http://your.domain.net/some/path/@@proxy/0c6e067822a520eabcfdd1e67d209d96
另一种方式是一个具有UID引用字段的简单Archetype。第一种类型的代理可能在渲染搜索结果时发生,另一种则可能用于将 远程 内容插入到文件夹层次结构中的指定位置。
KSS
Archetypes 提供了行内编辑功能。由于代理内容确实是按原样渲染的,所以适用于 archetypes 的 KSS 规则也适用,但是在错误的环境中,因此我们在 at.kss 资源中的 kssregistry 内设置了一个条件,以确定是否应该加载它。
如果您不是通过无处不在的代理或代理类型使用代理,而是使用您自己的应用程序,您可能需要添加自己的条件规则以避免加载 at.kss。这可以通过 IContentProxiedRule 接口完成。
要提供您自己的规则,实现此接口并将您的对象注册为多适配器以用于上下文和请求,即
<adapter for="foo.bar.interfaces.IBaz zope.publisher.interfaces.http.IHTTPRequest" factory="foo.bar.baz.Baz" />
在 bda.contentproxy.proxy 中存在一个基础规则对象和一个默认规则对象。默认规则注册为 *。如果您想提供自己的通用规则,您必须在 overrides.zcml 中定义您的规则实现,但强烈建议避免这样做,因为多个应用程序可能会注册它们自己的通用规则,这可能导致令人困惑的副作用。更好的做法是明确绑定到上下文接口。
安装
确保将 egg 文件添加到您的实例中
请确保有 bda.resultduplexer 可用
在您的 plone 实例中导入 bda.contentproxy 扩展配置文件。
此产品与 Plone 3.0 进行了测试
版权
版权所有 2008,奥地利 BlueDynamics Alliance - bluedynamics.com
鸣谢
由 Robert Niederreiter 编写,Squarewave Computing,BlueDynamics Alliance,奥地利
想法和贡献:Jens Klein BlueDynamics Alliance,Klein & Partner KEG,奥地利
此插件是联合国国际劳工组织 Better Work 项目的一个成果。
许可证
GNU 通用公共许可证 2.0 或更高版本
变更日志
1.0
[jensens] 2010-08-31
setup.py 中的版本处理
1.0 beta6
[rnix] 2010-03-10
删除 resultduplexer 依赖关系。resultduplexer 现在依赖于 contentproxy。
在调用主宏之前尝试通过模板名称查找浏览器视图。
[maurits] 2009-12-09
版本增加
1.0 beta5
[maurits] 2009-12-09
通过 uid_catalog 而不是 portal_catalog 来查找引用的对象,以便在代理索引在其引用的代理内容之前时,清晰的重建 portal_catalog 不会抛出 ContentLookupError。
[rnix] 2008-03-08
版本增加
1.0 beta4
[rnix] 2008-03-08
添加了用于定义 at.kss 加载规则的接口
使用浏览器视图对在 kssregistry 中使用的表达式进行操作,以确定是否加载 at.kss。这确保了能够自定义条件逻辑。
使此模块可通过 Quickinstaller 安装。
[rnix] 2008-02-28
版本增加
1.0 beta3
[jensens] 2008-02-27
格式化 README.txt 以有效 ReST。
添加了 LinguaPlone 支持。
移除标题并从代理中获取它
1.0 beta2
[rnix] 2008-02-21
添加了 css 文件以覆盖 .inlineEditable 类元素的 :hover 事件
添加了 kssregistry,并添加了表达式,以便在显示代理类型或无处不在的代理视图时,不加载 at.kss 以禁用行内编辑。将来,这可能通过 kss 或 js 直接通过某种类型的事件解绑来完成,而不是通过脏资源注册条件。
项目详情
bda.contentproxy-1.0.tar.gz的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 9c4aa15dda23fb576f8f9ef941ebf4ea065888565b4e0b52010f9089a4fd6e4c |
|
MD5 | 2f5cf8b35c82fbaa9e25bba6ba0d2685 |
|
BLAKE2b-256 | 9abf19c1a80700a120451ee6c725f91bf748c7a9566a1eea65b6cda1f3c8fd96 |