CRM_Case_WorkflowMessage_CaseActivityTestWorkflow
extends GenericWorkflowMessage
in package
Sample to test test model architecture.
Tags
Table of Contents
Constants
- WORKFLOW = 'case_activity_test'
Properties
- $activityCustomGroups : array<string|int, mixed>
- List of custom activity fields, grouped by CustomGroup.
- $activityFields : array<string|int, mixed>
- List of conventional activity fields.
- $activitySubject : string
- $activityTypeName : string
- $clientId : int
- The primary contact associated with this case (eg `civicrm_case_contact.contact_id`).
- $contact : array<string|int, mixed>|null
- The recipient of the notification. The `{contact.*}` tokens will reference this person.
- $editActURL : string
- $idHash : string
- Unique ID for this activity. Unique and difficult to guess.
- $isCaseActivity : bool
- $manageCaseURL : string
- $viewActURL : string
- $_extras : array<string|int, mixed>
- The extras are an open-ended list of fields that will be passed-through to tpl, tokenContext, etc. This is the storage of last-resort for imported values that cannot be stored by other means.
- $bcc : string|null
- Additional recipients (multiple addresses).
- $cc : string|null
- Additional recipients (multiple addresses).
- $contactID : int|null
- The contact receiving this message.
- $from : string|null
- The email sender (single address).
- $isTest : bool
- $locale : string|null
- $replyTo : string|null
- The email sender's Reply-To (single address).
- $requestedLocale : string|null
- The language that was requested to be rendered.
- $template : array<string|int, mixed>|null
- The content of the message-template.
- $templateId : int|null
- $to : string|null
- The primary email recipient (single address).
- $userEnteredHTML : string
- Additional html to include in the receipt.
- $userEnteredText : string
- Additional text to include in the receipt.
Methods
- __call() : static|mixed
- Magic function to provide getters/setters.
- __construct() : mixed
- WorkflowMessage constructor.
- addBcc() : $this
- Add another "BCC:" address.
- addCc() : $this
- Add another "CC:" address.
- assertValid() : mixed
- export() : array<string|int, mixed>|null
- getBcc() : array<string|int, mixed>|string
- Get the list of "Bcc:" addresses.
- getCc() : array<string|int, mixed>|string
- Get the list of "Cc:" addresses.
- getContact() : array<string|int, mixed>|null
- getContactID() : int|null
- getFields() : array<string|int, mixed>
- getFrom() : array<string|int, mixed>|string
- Get the "From:" address.
- getGroupName() : string|null
- getLocale() : string
- getReplyTo() : array<string|int, mixed>|string
- Get the "Reply-To:" address.
- getRequestedLocale() : string
- Get the requested locale.
- getTo() : array<string|int, mixed>|string
- Get the list of "To:" addresses.
- getUserEnteredHTML() : string|null
- getUserEnteredText() : string|null
- getWorkflowName() : string|null
- import() : mixed
- renderTemplate() : array<string|int, mixed>
- resolveContent() : array<string|int, mixed>
- sendTemplate() : array<string|int, mixed>
- setBcc() : $this
- Set the "BCC:" list.
- setCc() : $this
- Set the "CC:" list.
- setContact() : $this
- setContactID() : $this
- setFrom() : $this
- setLocale() : $this
- setReplyTo() : $this
- setRequestedLocale() : $this
- Set the requested locale.
- setTo() : $this
- setUserEnteredHTML() : $this
- setUserEnteredText() : $this
- validate() : array<string|int, mixed>
- Determine if the data for this workflow message is complete/well-formed.
- exportExtraEnvelope() : void
- Get a list of key-value pairs to include the Smarty template context.
- exportExtraEnvelope_toAddress() : void
- Plugin to `WorkflowMessageInterface::export()` and handle toEmail/toName.
- exportExtraModelProps() : void
- Get a list of key-value pairs to include the array-coded version of the class.
- exportExtraTokenContext() : void
- Define tokens to be exported as smarty values.
- exportExtraTplParams() : void
- Get a list of key-value pairs to include the Smarty template context.
- getFieldsByFormat() : array<string|int, mixed>|null
- getMagicProperties() : array<string|int, mixed>
- Get a list of class properties for which magic methods are supported.
- importExtraEnvelope() : void
- Given an import-array (in the envelope-format), pull out any interesting values.
- importExtraEnvelope_toAddress() : void
- Plugin to `WorkflowMessageInterface::import()` and handle toEmail/toName.
- importExtraModelProps() : void
- Given an import-array (in the class-format), pull out any interesting values.
- importExtraTokenContext() : void
- Given an import-array (in the token-context-format), pull out any interesting values.
- importExtraTplParams() : void
- Given an import-array (in the tpl-format), pull out any interesting values.
- validateExtra_contact() : mixed
- Must provide either 'int $contactId' or 'array $contact'
- validateExtra_localization() : mixed
- formatAddress() : array<string|int, mixed>|string|null
- Convert an address to the desired format.
Constants
WORKFLOW
public
mixed
WORKFLOW
= 'case_activity_test'
Properties
$activityCustomGroups
List of custom activity fields, grouped by CustomGroup.
public
array<string|int, mixed>
$activityCustomGroups
= []
Example: ['My Custom Stuff' => [['label' => ..., 'category' => ..., 'type' => ..., 'value' => ...]]]
Tags
$activityFields
List of conventional activity fields.
public
array<string|int, mixed>
$activityFields
Example: [['label' => ..., 'category' => ..., 'type' => ..., 'value' => ...]]
Tags
$activitySubject
public
string
$activitySubject
Tags
$activityTypeName
public
string
$activityTypeName
Tags
$clientId
The primary contact associated with this case (eg `civicrm_case_contact.contact_id`).
public
int
$clientId
Existing callers are inconsistent about setting this parameter.
By default, CiviCRM allows one client on any given case, and this should reflect that contact. However, some systems may enable multiple clients per case. This field may not make sense in the long-term.
Tags
$contact
The recipient of the notification. The `{contact.*}` tokens will reference this person.
public
array<string|int, mixed>|null
$contact
Example: ['contact_id' => 123, 'display_name' => 'Bob Roberts', role => 'FIXME']
Tags
$editActURL
public
string
$editActURL
Tags
$idHash
Unique ID for this activity. Unique and difficult to guess.
public
string
$idHash
Tags
$isCaseActivity
public
bool
$isCaseActivity
Tags
$manageCaseURL
public
string
$manageCaseURL
Tags
$viewActURL
public
string
$viewActURL
Tags
$_extras
The extras are an open-ended list of fields that will be passed-through to tpl, tokenContext, etc. This is the storage of last-resort for imported values that cannot be stored by other means.
protected
array<string|int, mixed>
$_extras
= []
Ex: ['tplParams' => ['assigned_value' => 'A', 'other_value' => 'B']]
$bcc
Additional recipients (multiple addresses).
protected
string|null
$bcc
Ex: '"Foo Bar" foo.bar@example.com, "Whiz Bang" whiz.bang@example.com' Ex: [['name' => 'Foo Bar', 'email' => 'foo.bar@example.com'], ['name' => 'Whiz Bang', 'email' => 'whiz.bang@example.com']]
Tags
$cc
Additional recipients (multiple addresses).
protected
string|null
$cc
Ex: '"Foo Bar" foo.bar@example.com, "Whiz Bang" whiz.bang@example.com' Ex: [['name' => 'Foo Bar', 'email' => 'foo.bar@example.com'], ['name' => 'Whiz Bang', 'email' => 'whiz.bang@example.com']]
Tags
$contactID
The contact receiving this message.
protected
int|null
$contactID
Tags
$from
The email sender (single address).
protected
string|null
$from
Ex: '"Foo Bar" foo.bar@example.com'
Tags
$isTest
protected
bool
$isTest
Tags
$locale
protected
string|null
$locale
Tags
$replyTo
The email sender's Reply-To (single address).
protected
string|null
$replyTo
Ex: '"Foo Bar" foo.bar@example.com'
Tags
$requestedLocale
The language that was requested to be rendered.
protected
string|null
$requestedLocale
This may not be the rendered locale - as the requested language might be available. This is primarily for extensions to use in custom workflow messages.
The use-case is a bit like this:
- Your organization serves many similar locales (eg es_MX+es_CR+es_HN or en_GB+en_US+en_NZ).
- You want to write one message (es_MX) for several locales (es_MX+es_CR+es_HN)
- You want to include some conditional content that adapts the recipient's requested locale (es_CR) -- even though the template was stored as es_MX. For example your front end website has more nuanced translations than your workflow messages and you wish to redirect the user to a page on your website.
Tags
$template
The content of the message-template.
protected
array<string|int, mixed>|null
$template
Ex: [ 'msg_subject' => 'Hello {contact.first_name}', 'msg_html' => '
Greetings and salutations, {contact.display_name}!
' ]Tags
$templateId
protected
int|null
$templateId
Tags
$to
The primary email recipient (single address).
protected
string|null
$to
Ex: '"Foo Bar" foo.bar@example.com' Ex: ['name' => "Foo Bar", "email" => "foo.bar@example.com"]
The "To:" address is mapped to the "envelope" scope. The existing envelope format treats this as a pair of fields [toName,toEmail]. Consequently, we only support one "To:" address, and it uses a special import/export method.
$userEnteredHTML
Additional html to include in the receipt.
protected
string
$userEnteredHTML
Tags
$userEnteredText
Additional text to include in the receipt.
protected
string
$userEnteredText
Tags
Methods
__call()
Magic function to provide getters/setters.
public
__call(string $method, array<string|int, mixed> $arguments) : static|mixed
Parameters
- $method : string
- $arguments : array<string|int, mixed>
Tags
Return values
static|mixed__construct()
WorkflowMessage constructor.
public
__construct([array<string|int, mixed> $imports = [] ]) : mixed
Parameters
- $imports : array<string|int, mixed> = []
-
List of values to import. Ex: ['tplParams' => [...tplValues...], 'tokenContext' => [...tokenData...]] Ex: ['modelProps' => [...classProperties...]]
addBcc()
Add another "BCC:" address.
public
addBcc(string|array<string|int, mixed> $address) : $this
Parameters
- $address : string|array<string|int, mixed>
-
Ex: '"Foo Bar" foo.bar@example.com' Ex: ['name' => "Foo Bar", "email" => "foo.bar@example.com"] Ex: [['email' => 'first@example.com'], ['email' => 'second@example.com']]
Return values
$thisaddCc()
Add another "CC:" address.
public
addCc(string|array<string|int, mixed> $address) : $this
Parameters
- $address : string|array<string|int, mixed>
-
Ex: '"Foo Bar" foo.bar@example.com' Ex: ['name' => "Foo Bar", "email" => "foo.bar@example.com"] Ex: [['email' => 'first@example.com'], ['email' => 'second@example.com']]
Return values
$thisassertValid()
public
final assertValid([mixed $strict = FALSE ]) : mixed
Parameters
- $strict : mixed = FALSE
Tags
export()
public
export([string|null $format = NULL ]) : array<string|int, mixed>|null
Parameters
- $format : string|null = NULL
Tags
Return values
array<string|int, mixed>|nullgetBcc()
Get the list of "Bcc:" addresses.
public
getBcc([string $format = ADDRESS_EXPORT_FMT ]) : array<string|int, mixed>|string
Parameters
- $format : string = ADDRESS_EXPORT_FMT
-
Ex: 'rfc822', 'records', 'record'
Return values
array<string|int, mixed>|string —List of addresses. Ex: 'First first@example.com, second@example.com' Ex: [['name' => 'First', 'email' => 'first@example.com'], ['email' => 'second@example.com']]
getCc()
Get the list of "Cc:" addresses.
public
getCc([string $format = ADDRESS_EXPORT_FMT ]) : array<string|int, mixed>|string
Parameters
- $format : string = ADDRESS_EXPORT_FMT
-
Ex: 'rfc822', 'records', 'record'
Return values
array<string|int, mixed>|string —List of addresses. Ex: 'First first@example.com, second@example.com' Ex: [['name' => 'First', 'email' => 'first@example.com'], ['email' => 'second@example.com']]
getContact()
public
getContact() : array<string|int, mixed>|null
Return values
array<string|int, mixed>|nullgetContactID()
public
getContactID() : int|null
Return values
int|nullgetFields()
public
getFields() : array<string|int, mixed>
Tags
Return values
array<string|int, mixed>getFrom()
Get the "From:" address.
public
getFrom([string $format = ADDRESS_EXPORT_FMT ]) : array<string|int, mixed>|string
Parameters
- $format : string = ADDRESS_EXPORT_FMT
-
Ex: 'rfc822', 'records', 'record'
Return values
array<string|int, mixed>|string —The "From" address. If none set, this will be empty ([]). Ex: '"Foo Bar" foo.bar@example.com' Ex: ['name' => 'Foo Bar', 'email' => 'foo.bar@example.com']
getGroupName()
public
getGroupName() : string|null
It is not recommended that new things depend on the group-name. However, the plumbing still passes-through the group-name.
Return values
string|nullgetLocale()
public
getLocale() : string
Return values
stringgetReplyTo()
Get the "Reply-To:" address.
public
getReplyTo([string $format = ADDRESS_EXPORT_FMT ]) : array<string|int, mixed>|string
Parameters
- $format : string = ADDRESS_EXPORT_FMT
-
Ex: 'rfc822', 'records', 'record'
Return values
array<string|int, mixed>|string —The "From" address. If none set, this will be empty ([]). Ex: '"Foo Bar" foo.bar@example.com' Ex: ['name' => 'Foo Bar', 'email' => 'foo.bar@example.com']
getRequestedLocale()
Get the requested locale.
public
getRequestedLocale() : string
This may differ from the rendered locale (e.g. if a translation is not available). It is not used in core but extensions may leverage this information.
Return values
stringgetTo()
Get the list of "To:" addresses.
public
getTo([string $format = ADDRESS_EXPORT_FMT ]) : array<string|int, mixed>|string
Note: This returns only
Parameters
- $format : string = ADDRESS_EXPORT_FMT
-
Ex: 'rfc822', 'records', 'record'
Return values
array<string|int, mixed>|string —Ex: '"Foo Bar" foo.bar@example.com' Ex: ['name' => 'Foo Bar', 'email' => 'foo.bar@example.com']
getUserEnteredHTML()
public
getUserEnteredHTML() : string|null
Return values
string|nullgetUserEnteredText()
public
getUserEnteredText() : string|null
Return values
string|nullgetWorkflowName()
public
getWorkflowName() : string|null
Return values
string|nullimport()
public
import(string $format, array<string|int, mixed> $values) : mixed
Parameters
- $format : string
- $values : array<string|int, mixed>
Tags
renderTemplate()
public
final renderTemplate([array<string|int, mixed> $params = [] ]) : array<string|int, mixed>
Parameters
- $params : array<string|int, mixed> = []
Tags
Return values
array<string|int, mixed>resolveContent()
public
resolveContent() : array<string|int, mixed>
Return values
array<string|int, mixed>sendTemplate()
public
final sendTemplate([array<string|int, mixed> $params = [] ]) : array<string|int, mixed>
Parameters
- $params : array<string|int, mixed> = []
Tags
Return values
array<string|int, mixed>setBcc()
Set the "BCC:" list.
public
setBcc(string|array<string|int, mixed> $address) : $this
Parameters
- $address : string|array<string|int, mixed>
-
Ex: '"Foo Bar" foo.bar@example.com' Ex: ['name' => "Foo Bar", "email" => "foo.bar@example.com"] Ex: [['email' => 'first@example.com'], ['email' => 'second@example.com']]
Return values
$thissetCc()
Set the "CC:" list.
public
setCc(string|array<string|int, mixed> $address) : $this
Parameters
- $address : string|array<string|int, mixed>
-
Ex: '"Foo Bar" foo.bar@example.com' Ex: ['name' => "Foo Bar", "email" => "foo.bar@example.com"] Ex: [['email' => 'first@example.com'], ['email' => 'second@example.com']]
Return values
$thissetContact()
public
setContact([array<string|int, mixed>|null $contact = ]) : $this
Parameters
- $contact : array<string|int, mixed>|null =
Return values
$thissetContactID()
public
setContactID([int|null $contactID = ]) : $this
Parameters
- $contactID : int|null =
Return values
$thissetFrom()
public
setFrom(string|array<string|int, mixed> $address) : $this
Parameters
- $address : string|array<string|int, mixed>
-
Ex: '"Foo Bar" foo.bar@example.com' Ex: ['name' => "Foo Bar", "email" => "foo.bar@example.com"]
Return values
$thissetLocale()
public
setLocale(string|null $locale) : $this
Parameters
- $locale : string|null
Return values
$thissetReplyTo()
public
setReplyTo(string|array<string|int, mixed> $address) : $this
Parameters
- $address : string|array<string|int, mixed>
-
Ex: '"Foo Bar" foo.bar@example.com' Ex: ['name' => "Foo Bar", "email" => "foo.bar@example.com"]
Return values
$thissetRequestedLocale()
Set the requested locale.
public
setRequestedLocale(string|null $requestedLocale) : $this
Parameters
- $requestedLocale : string|null
Return values
$thissetTo()
public
setTo(string|array<string|int, mixed> $address) : $this
Parameters
- $address : string|array<string|int, mixed>
-
Ex: '"Foo Bar" foo.bar@example.com' Ex: ['name' => "Foo Bar", "email" => "foo.bar@example.com"]
Return values
$thissetUserEnteredHTML()
public
setUserEnteredHTML([string $html = ]) : $this
Parameters
- $html : string =
Return values
$thissetUserEnteredText()
public
setUserEnteredText([string $text = ]) : $this
Parameters
- $text : string =
Return values
$thisvalidate()
Determine if the data for this workflow message is complete/well-formed.
public
validate() : array<string|int, mixed>
Tags
Return values
array<string|int, mixed> —A list of errors and warnings. Each record defines
- severity: string, 'error' or 'warning'
- fields: string[], list of fields implicated in the error
- name: string, symbolic name of the error/warning
- message: string, printable message describing the problem
exportExtraEnvelope()
Get a list of key-value pairs to include the Smarty template context.
protected
exportExtraEnvelope(array<string|int, mixed> &$export) : void
Parameters
- $export : array<string|int, mixed>
-
Modifiable list of export-values.
exportExtraEnvelope_toAddress()
Plugin to `WorkflowMessageInterface::export()` and handle toEmail/toName.
protected
exportExtraEnvelope_toAddress(array<string|int, mixed> &$values) : void
Parameters
- $values : array<string|int, mixed>
Tags
exportExtraModelProps()
Get a list of key-value pairs to include the array-coded version of the class.
protected
exportExtraModelProps(array<string|int, mixed> &$export) : void
Parameters
- $export : array<string|int, mixed>
-
Modifiable list of export-values.
exportExtraTokenContext()
Define tokens to be exported as smarty values.
protected
exportExtraTokenContext(array<string|int, mixed> &$export) : void
Parameters
- $export : array<string|int, mixed>
exportExtraTplParams()
Get a list of key-value pairs to include the Smarty template context.
protected
exportExtraTplParams(array<string|int, mixed> &$export) : void
Values returned here will override any defaults.
Parameters
- $export : array<string|int, mixed>
-
Modifiable list of export-values.
getFieldsByFormat()
protected
getFieldsByFormat(mixed $format) : array<string|int, mixed>|null
Parameters
- $format : mixed
Return values
array<string|int, mixed>|nullgetMagicProperties()
Get a list of class properties for which magic methods are supported.
protected
static getMagicProperties() : array<string|int, mixed>
Return values
array<string|int, mixed> —List of supported properties, keyed by property name. Array(string $propertyName => bool $true).
importExtraEnvelope()
Given an import-array (in the envelope-format), pull out any interesting values.
protected
importExtraEnvelope(array<string|int, mixed> &$values) : void
Parameters
- $values : array<string|int, mixed>
-
List of import-values. Optionally, unset values that you have handled or blocked.
importExtraEnvelope_toAddress()
Plugin to `WorkflowMessageInterface::import()` and handle toEmail/toName.
protected
importExtraEnvelope_toAddress(array<string|int, mixed> &$values) : void
Parameters
- $values : array<string|int, mixed>
Tags
importExtraModelProps()
Given an import-array (in the class-format), pull out any interesting values.
protected
importExtraModelProps(array<string|int, mixed> &$values) : void
Parameters
- $values : array<string|int, mixed>
-
List of import-values. Optionally, unset values that you have handled or blocked.
importExtraTokenContext()
Given an import-array (in the token-context-format), pull out any interesting values.
protected
importExtraTokenContext(array<string|int, mixed> &$values) : void
Parameters
- $values : array<string|int, mixed>
-
List of import-values. Optionally, unset values that you have handled or blocked.
importExtraTplParams()
Given an import-array (in the tpl-format), pull out any interesting values.
protected
importExtraTplParams(array<string|int, mixed> &$values) : void
Parameters
- $values : array<string|int, mixed>
-
List of import-values. Optionally, unset values that you have handled or blocked.
validateExtra_contact()
Must provide either 'int $contactId' or 'array $contact'
protected
validateExtra_contact(array<string|int, mixed> &$errors) : mixed
Parameters
- $errors : array<string|int, mixed>
Tags
validateExtra_localization()
protected
validateExtra_localization(mixed &$errors) : mixed
Parameters
- $errors : mixed
formatAddress()
Convert an address to the desired format.
private
formatAddress(string $newFormat, array<string|int, mixed>|string $mixed) : array<string|int, mixed>|string|null
Parameters
- $newFormat : string
-
Ex: 'rfc822', 'records', 'record'
- $mixed : array<string|int, mixed>|string