跳转到主要内容

提供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_templatemain 插槽中。

提供了两种类型的代理行为

  • 无地点代理

    这是一个名为 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 中定义您的规则实现,但强烈建议避免这样做,因为多个应用程序可能会注册它们自己的通用规则,这可能导致令人困惑的副作用。更好的做法是明确绑定到上下文接口。

安装

  1. 确保将 egg 文件添加到您的实例中

  2. 请确保有 bda.resultduplexer 可用

  3. 在您的 plone 实例中导入 bda.contentproxy 扩展配置文件。

此产品与 Plone 3.0 进行了测试

鸣谢

  • 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 (14.0 kB 查看哈希值)

上传时间 源代码

支持