跳转到主要内容

Plone内容别名

项目描述

简介

本软件包为Plone提供了一种名为别名的新内容类型。别名通过引用另一个内容项进行配置。然后它作为指定项的别名。

别名反映了原始内容项的多数方面。如果原始内容项发生变化,别名将自动更新。然而,某些方面是特定于别名的,包括

  • URL/路径

  • portal_catalog条目

  • 工作流状态

  • 权限/角色映射(例如,通过工作流设置)

  • 本地角色

  • 内容规则

  • 组件

此外,某些方面会反映原始内容项,除非在别名的显式设置,此时将拥有自己的版本。这些方面包括

  • 内容标题

  • 显示模板(通过显示菜单设置)

  • 组件

从Plone 3升级到Plone 4

在Plone 4中,UID索引被转换为UUIDIndex。由于目录中存在重复的UID,plone迁移将崩溃。因此,在执行plone迁移之前,您需要修复您的目录,进入portal_setup,选择升级标签,选择collective.alias并执行从步骤1到2的升级操作。

安装

collective.alias使用Dexterity。有关更多信息,请参阅http://plone.org/products/dexterity

要在自己的构建中使用该产品,您可以在setup.py文件中依赖它,或者将其添加到构建out的eggs列表中,就像通常一样。

在两种情况下,您可能希望使用Dexterity的已知良好集合的包来最小化包版本冲突的风险。例如

[buildout]
...
extends =
    ...
    http://good-py.appspot.com/release/dexterity/1.0a2

...

[instance]
eggs =
    Plone
    collective.alias
    ...

请参阅http://plone.org/products/dexterity以找到Dexterity KGS的最新版本。collective.alias与Dexterity 1.0系列的版本进行了测试。

粘贴别名

如果用户在给定文件夹中具有collective.alias: Add Alias权限,并且剪贴板中有内容项,则将在操作菜单中显示粘贴为别名操作。

别名文件夹行为

默认情况下,如果原始内容项是容器,别名将充当容器。别名将具有与原始项相同的元数据和设置,但不包括其子项。可以直接向别名添加子项。子项可以是其他别名或常规内容项。

别名可以配置为“允许遍历”。在这种情况下,原始内容项的子项将作为别名的子项用于遍历或对象访问。它们通常不会出现在文件夹列表中,也不会在portal_catalog中作为单独的项目进行索引。这种模式对于集合和其他类型的内容很有用,其中子对象是对象的核心。

“允许遍历”标志会根据原始内容对象的portal_type自动设置,尽管可以从别名编辑表单中进行修改。

允许遍历的类型列表存储在配置注册表中,并且可以从配置注册表控制面板中进行编辑。如果您想使用GenericSetup将自定义类型添加到此列表,请使用类似于下面的registry.xml文件

<registry>

    <record name="collective.alias.interfaces.IAliasSettings.traversalTypes">
      <value purge="false">
          <element>MyType</element>
      </value>
    </record>

</registry>

已知问题

存在以下已知问题

  • 在撰写本文时(Dexterity 1.0a2),无法创建指向别名的Archetypes引用(例如,Archetypes内容对象上的标准“相关项目”字段,包括Plone 3的默认类型)。这是由于Dexterity与Archetypes引用实现之间的不兼容性。

待办事项

  • 无法编辑别名。Plone中的更改[12]需要一种新的方法来生成对象标签。在Products.Collage[3]中处理此问题的方法在这里不起作用,因为 viewlet = provider.__getitem__(“plone.contentviews”) 返回一个 collective.alias.browser.ContentViews 对象,它没有 prepareObjectTabs 方法。

变更日志

1.3.1 (2014-02-26)

  • 修改 object_buttons/paste_alias 动作的 available_expr 以防止用户没有查看父级权限时崩溃。[vincentfretin]

1.3 (2013-11-04)

  • 从别名中移除 plone.multilingual.interfaces.ITranslatable。[jaroel]

1.2.4 (2013-10-22)

  • 使用 Collection 而不是 Topic。[jaroel]

1.2.3 (2013-09-25)

  • 添加了 MANIFEST.in 发布 1.2,安装失败。[thomasdesvenain]

  • 适配 Plone 4.3 兼容。[saily]

1.1 (2011-09-22)

  • 升级配置文件清除并重建 zc.relation 目录,以修复不存在接口的问题。[vincentfretin]

  • 本地化包 + 法语翻译。[thomasdesvenain]

  • 将“粘贴为别名”动作添加到文件夹按钮。[thomasdesvenain]

  • 修复类型图标显示。使用 icon_expr。[thomasdesvenain]

  • 向别名对象添加 uuid 并重新编目。这解决了 Plone 4 中 UUIDIndex 的重复 UID 问题。[vincentfretin]

  • grok.CodeView 已在 recent five.grok 中不再存在,已由 grok.View 替换。[thomasdesvenain]

  • 修复了 Plone 4 中的“AttributeError: ‘Plone’ object has no attribute ‘prepareObjectTabs’”,完全禁用了内容视图。(最值得注意的是,禁用了编辑别名选项)。[khink]

1.0a1 (2009-08-02)

  • 初始发布

支持者

AWS AWS 云计算和安全赞助商 Datadog Datadog 监控 Fastly Fastly CDN Google Google 下载分析 Microsoft Microsoft PSF赞助商 Pingdom Pingdom 监控 Sentry Sentry 错误记录 StatusPage StatusPage 状态页面