Skip to main content

Aliasing of Plone content

Project description

Introduction

This package provides a new content type for Plone called Alias. An alias is configured with a reference to another content item. It then acts as an alias for the given item.

The alias mirrors most aspects of the original content item. If the original is changed, the alias will be automatically updated. Certain aspects are particular to the alias, however, including:

  • URL/path

  • portal_catalog entry

  • Workflow state

  • Permission/role map (e.g. as set by workflow)

  • Local roles

  • Content rules

  • Portlets

In addition, certain aspects will mirror the original unless they are explicitly set on the alias, at which point it will have its own version. These aspects include:

  • Content title

  • Display template (set via the display menu)

  • Portlets

Upgrade from Plone 3 to Plone 4

With Plone 4, the UID index is converted to a UUIDIndex. The plone migration will crash because of duplicated UID in the catalog. So you need to fix your catalog before executing the plone migration, go to portal_setup, Upgrades tab, choose collective.alias and execute the upgrade step 1 to 2.

Installation

collective.alias uses Dexterity. See http://plone.org/products/dexterity for more information.

To use the product in your own build, either depend on it in a setup.py file, or add it to your buildout’s eggs listing as normal.

In either case, you probably want to use Dexterity’s Known Good Set of packages to minimise the risk of package version conflicts. For example:

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

...

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

Refer to http://plone.org/products/dexterity to find the latest release of the Dexterity KGS. collective.alias is tested with the 1.0 series of Dexterity releases.

Pasting aliases

If the user has the collective.alias: Add Alias permission in a given folder, a Paste as alias action will appear in the actions menu if there is one or more content items on the clipboard.

Alias folder behaviour

By default, an alias will act as a container if the original content item does. The alias will have the same metadata and settings as the original item, but not its children. Children can be added to the alias directly, however. Children can be other aliases, or regular content items.

An alias may be configured to “allow traversal”. In this case, children of the original content item will be available as children of the alias for traversal or object access. They will not normally show up in folder listings, nor will they be indexed in the portal_catalog as separate items. This mode is useful for Collections and other types of content where child objects are integral to the object.

The “allow traversal” flag is set automatically based on the portal_type of the original content object, though it can be modified from the alias edit form.

The list of types that allow traversal is stored in the configuration registry and can e edited from the Configuration registry control panel. If you want to add a custom type to this list with GenericSetup, use a registry.xml file like this:

<registry>

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

</registry>

Known issues:

The following known issues exist:

  • At the time of writing (Dexterity 1.0a2) it is not possible to create an Archetypes reference (e.g. the standard “Related items” field on an Archetypes content object, including Plone 3’s default types) to an alias. This is due to an incompatibility between Dexterity and the Archetypes reference implementation.

To do:

  • It’s not possible to edit an Alias. Changes in Plone [1, 2] require a new way to generate the object tabs. The way this issue was addressed in Products.Collage [3] doesn’t work here, because viewlet = provider.__getitem__(“plone.contentviews”) returns a collective.alias.browser.ContentViews object, which doesn’t have the prepareObjectTabs method.

Changelog

1.3.1 (2014-02-26)

  • Modify available_expr of object_buttons/paste_alias action to not crash if the user doesn’t have the permission to view the parent. [vincentfretin]

1.3 (2013-11-04)

  • Remove plone.multilingual.interfaces.ITranslatable from Aliases. [jaroel]

1.2.4 (2013-10-22)

  • Use Collection instead of Topic [jaroel]

1.2.3 (2013-09-25)

  • Added MANIFEST.in Release 1.2 install failing. [thomasdesvenain]

  • Adapt imports to Plone 4.3 compatibility [saily]

1.1 (2011-09-22)

  • The upgrade profile clear and rebuild the zc.relation catalog to fix issues with interfaces that don’t exist anymore. [vincentfretin]

  • Localized package + french translation. [thomasdesvenain]

  • Add ‘paste as alias’ action to folder buttons. [thomasdesvenain]

  • Fixed type icon display. Use icon_expr. [thomasdesvenain]

  • Add uuid to Alias objects and recatalog. This fixes duplicated UID with UUIDIndex on Plone 4. [vincentfretin]

  • grok.CodeView doesn’t exist anymore in recent five.grok, replaced by grok.View. [thomasdesvenain]

  • Fix “AttributeError: ‘Plone’ object has no attribute ‘prepareObjectTabs’” in Plone 4, disabling content views altogether. (Most notably, disabling the option to edit an Alias). [khink]

1.0a1 (2009-08-02)

  • Initial release

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

collective.alias-1.3.1.zip (44.8 kB view details)

Uploaded Source

File details

Details for the file collective.alias-1.3.1.zip.

File metadata

File hashes

Hashes for collective.alias-1.3.1.zip
Algorithm Hash digest
SHA256 9361e5bfbd7dae042be6338447b8c51b4ec5be135fd48d9b258b4bdae452ed5f
MD5 e32d113c945f347fe52d7410334a4e2e
BLAKE2b-256 7f489bbe7ca8703a51b7e86db9005e62dd055e5aa657bbf4d3c1ff3f284b8aa9

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page