Adaptable string interpolation
Project description
Introduction
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 plone.app.contentrules.
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
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
Changelog
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 plone.app.discussion comments. Refs https://dev.plone.org/ticket/13047 [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 MANIFEST.in [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.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.