Skip to main content

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.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


Download files

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

Source Distribution

plone.stringinterp-1.1.1.zip (31.1 kB view details)

Uploaded Source

File details

Details for the file plone.stringinterp-1.1.1.zip.

File metadata

File hashes

Hashes for plone.stringinterp-1.1.1.zip
Algorithm Hash digest
SHA256 cc168dc151edf72da2d5c2a92d67750a86477783e68361ab1cd88cff510d700d
MD5 c9650180ed26aa112db4c9d40eaa238e
BLAKE2b-256 12165b43dd5560c7596382d7db1f4da91814e9a9791591023fefd2e3be94db53

See more details on using hashes here.

Supported by

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