CIVICRM-1758 Add timezone output for Event Tokens.
authorFrancis Whittle <francis@agileware.com.au>
Fri, 7 May 2021 03:08:53 +0000 (13:08 +1000)
committerFrancis Whittle <francis@agileware.com.au>
Tue, 25 Jan 2022 06:07:09 +0000 (06:07 +0000)
CRM/Event/Tokens.php
tests/phpunit/CRM/Utils/TokenConsistencyTest.php

index ca6fb553dd24d32fa444abb77dc4dffb177d5bfa..44afb797f114520d5dcd084986c0a906efbd9775 100644 (file)
@@ -144,6 +144,8 @@ class CRM_Event_Tokens extends CRM_Core_EntityTokens {
       $tokens['event_type_id:name']['text/html'] = CRM_Core_PseudoConstant::getName('CRM_Event_BAO_Event', 'event_type_id', $event['event_type_id']);
       $tokens['contact_phone']['text/html'] = $event['loc_block_id.phone_id.phone'];
       $tokens['contact_email']['text/html'] = $event['loc_block_id.email_id.email'];
+      $tokens['event_tz:label']['text/html'] = !empty($event['event_tz']) ? CRM_Core_SelectValues::timezone()[$event['event_tz']] : '';
+      $tokens['event_tz:name']['text/html'] = $event['event_tz'] ?? '';
 
       foreach ($this->getTokenMetadata() as $fieldName => $fieldSpec) {
         if (!isset($tokens[$fieldName])) {
@@ -176,6 +178,7 @@ class CRM_Event_Tokens extends CRM_Core_EntityTokens {
     return ['event_type_id',
       'title',
       'id',
+      'event_tz',
       'start_date',
       'end_date',
       'summary',
index c72c6b8733b803e76637471565568ed4088e66c4..9c1343afcf963307d8d0bcb3a175c07a3522c04f 100644 (file)
@@ -588,6 +588,7 @@ participant.must_wait :
 event.title :Annual CiviCRM meet
 event.start_date :October 21st, 2008
 event.end_date :October 23rd, 2008
+event.event_tz:label :America/New York
 event.event_type_id:label :Conference
 event.summary :If you have any CiviCRM related issues or want to track where CiviCRM is heading, Sign up now
 event.contact_email :event@example.com
@@ -874,6 +875,7 @@ December 21st, 2007
       '{event.title}' => 'Event Title',
       '{event.start_date}' => 'Event Start Date',
       '{event.end_date}' => 'Event End Date',
+      '{event.event_tz:label}' => 'Event Time Zone',
       '{event.event_type_id:label}' => 'Event Type',
       '{event.summary}' => 'Event Summary',
       '{event.contact_email}' => 'Event Contact Email',
@@ -934,6 +936,7 @@ December 21st, 2007
       'description' => 'event description',
       $this->getCustomFieldName('text') => 'my field',
       'loc_block_id' => $locationBlockID,
+      'event_tz' => 'America/New_York',
     ])['id'];
     // Create an unrelated participant record so that the ids don't match.
     // this prevents things working just because the id 'happens to be valid'