(dev/core#2947) Tokens - Auto-enable {event.*}
if participantId
is present
#22046
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Overview
This patch addresses bug report https://lab.civicrm.org/dev/core/-/issues/2947 by revisiting some elements #21821.
CC @eileenmcnaughton @magnolia61
Before
{event.*}
tokens don't work.{event.*}
and{participant.*}
tokens key off of independent inputs ($context['eventId']
and$context['participantId']
). OnlyparticipantId
is supplied for the PDF.After
{event.*}
tokens do work.{event.*}
and{participant.*}
tokens may key off of independent inputs ($context['eventId']
and$context['participantId']
). However, ifeventId
is omitted, it will be filled automatically based onparticipantId
.Technical Details
This is roughly similar to how participant PDFs worked in some of the 5.43.alpha1 revisions (ie before #21821), although the implementation is slightly different. To my reading, it's a bit more thorough... e.g. it fills
eventId
during bothcivi.token.list
andcivi.token.eval
; e.g. it supplies theeventId
as part of thecontext
so that it's available to any other listeners that consumeeventId
.Adds test coverage.