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.1.4 (2016-08-18)
Bug fixes:
Use zope.interface decorator. [gforcada]
1.1.3 (2016-05-25)
Fixes:
Adapt to changes in SimpleViewClass in zope4. [pbauer]
Fix typo [staeff]
1.1.2 (2015-03-13)
Fixes:
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 plone.app.testing 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 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.