skip to navigation
skip to content

plone.stringinterp 1.1.4

Adaptable string interpolation


Provides ${id} style string interpolation using named adapters to look up variables. This is meant to provide a trivially simple template system for clients like

To interpolate a string in context, just follow the pattern:

from plone.stringinterp.interfaces import IStringInterpolator

IStringInterpolator(context)("Here is the title: ${title}")

Substitution of variables that are part of the Dublin Core are provided with the package. To provide additional subsitutions, just provide a named adapter implementing interfaces.IStringSubstitution for your context. The adapter name is used for the lookup.


Dependencies are all in the CMF* namespace, so this is theoretically useful outside Plone. It does use the ‘plone’ identifier for the message factory.

Implemented Substitutions

All Content

  • id
  • parent_id
  • url
  • parent_url

Minimal Dublin Core

  • title
  • description
  • type (content type)

Workflow Aware

  • review_state
  • review_state_title

Dublin Core

  • creator
  • creator_fullname
  • creator_email
  • creators
  • creators_emails
  • contributors
  • contributors_emails
  • subject
  • format (mime type)
  • language
  • rights
  • identifier

Catalogable Dublin Core

Everything should be in long local time format

  • created
  • effective
  • expires
  • modified

Member / Group Information for roles on content

  • owner_emails
  • reviewer_emails
  • manager_emails
  • member_emails
  • user_email

Current User Information

  • user_fullname
  • user_id

Last Change (workflow or version) Information

  • change_comment
  • change_title
  • change_type
  • change_authorid


1.1.4 (2016-08-18)

Bug fixes:

  • Use zope.interface decorator. [gforcada]

1.1.3 (2016-05-25)


  • Adapt to changes in SimpleViewClass in zope4. [pbauer]
  • Fix typo [staeff]

1.1.2 (2015-03-13)


  • Fixed “RuntimeError: maximum recursion depth exceeded” in recursiveGetGroupUsers when you have a group A containing group B containing group A. [vincentfretin]

1.1.1 (2014-11-01)

  • Add creator, creator_fullname, creator_email, creators_emails and contributors_emails [avoinea]

1.1 (2014-02-25)

  • Add portal_url and portal_title. [thomasdesvenain]
  • Add parent_id. [maartenkling]
  • Convert tests to for Plone 5. [davisagli]

1.0.10 (2013-05-30)

  • Added review_state_title substitution variable. [ichim-david]

1.0.9 (2013-05-26)

  • Added id substitution variable that works with content events and user events. [thomasdesvenain]
  • Email substitutions are not restricted to contentish anymore, so we can use them with user events. [thomasdesvenain]

1.0.8 (2013-05-23)

  • Added editor_emails substitution variable. [thomasdesvenain]

1.0.7 (2012-08-11)

  • Added parent_title substitution, which gets the title of the container. [thomasdesvenain]
  • Fixed user_fullname substitution : display user id if fullname is not set. [thomasdesvenain]
  • Do not restrict string interpolation to IContentish if not necessary. Fixes email content rule related with comments. Refs [thomasdesvenain]

1.0.6 (2012-08-04)

  • Added parent_url substitution (the url of the object parent). [thomasdesvenain]

1.0.5 (2012-01-26)

  • Recursive get members works in a non wrapped context (when getting PloneGroups instead of GroupData from GroupTool) [thomasdesvenain]
  • Add [WouterVH]

1.0.4 - 2011-04-01

  • Added contributor_emails and reader_emails substitution variables. [thomasdesvenain]

1.0.3 - 2010-11-11

  • Fix a bug with member email substitutions when a user has been removed from acl_users. [rossp]

1.0.2 - 2010-09-20

  • Role email substitution works with user that have role through a group. [thomasdesvenain]

1.0.1 - 2010-09-15

  • Internationalized ${type} substitution. [thomasdesvenain]
  • Fixed: get emails for role works with local roles. [thomasdesvenain]

1.0 - 2010-07-18

  • Update license to GPL version 2 only. [hannosch]

1.0b1 - 2009-11-12

  • Initial release.
File Type Py Version Uploaded on Size
plone.stringinterp-1.1.4.tar.gz (md5) Source 2016-08-18 20KB