skip to navigation
skip to content

Not Logged In

plone.stringinterp 1.0.13

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.0.13 (2015-04-28)

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

1.0.12 (2014-10-13)

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

1.0.11 (2013-12-07)

  • Add portal_url and portal_title. [thomasdesvenain]
  • Add parent_id. [maartenkling]

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 (md5) Source 2015-04-28 28KB
  • Downloads (All Versions):
  • 244 downloads in the last day
  • 1203 downloads in the last week
  • 4457 downloads in the last month