Details
Description
Currently, the only supported CiviMail token are the ones provided (and handled) by CiviMail. Come up (and implement) an infrastructure that would:
1. Allow third-party components register their own token groups/domains (e.g., pirg.* tokens).
2. Make CiviMail's token replacement hookable; if the token engine is asked to replace a third-party token, make it call the hook and let the third-party component do the replacement (based on the token and the contact_id).
To make the above performance-efficient, add the ability to batch-manage tokens (so that the component can be asked to return contact_id-keyed values for token X.Y and a group of contact_ids).
As usual, do feel free to ask either Piotr or Lobo to clarify and of the above.