Documentation

CRM_Case_WorkflowMessage_CaseActivityTestWorkflow extends GenericWorkflowMessage
in package

Sample to test test model architecture.

Tags
see
CRM_Case_BAO_Case::sendActivityCopy
support

template-only

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

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
scope

tplParams as activity.customGroups

$activityFields

List of conventional activity fields.

public array<string|int, mixed> $activityFields

Example: [['label' => ..., 'category' => ..., 'type' => ..., 'value' => ...]]

Tags
scope

tplParams as activity.fields

required

$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
scope

tplParams as client_id

fkEntity

Contact

$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
scope

tokenContext, tplParams

fkEntity

Contact

required

$idHash

Unique ID for this activity. Unique and difficult to guess.

public string $idHash
Tags
scope

tplParams

required

$_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
scope

envelope

$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
scope

envelope

$contactID

The contact receiving this message.

protected int|null $contactID
Tags
scope

tokenContext as contactId, tplParams as contactID

fkEntity

Contact

$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:

  1. Your organization serves many similar locales (eg es_MX+es_CR+es_HN or en_GB+en_US+en_NZ).
  2. You want to write one message (es_MX) for several locales (es_MX+es_CR+es_HN)
  3. 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
scope

tokenContext

$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
scope

envelope as messageTemplate

$templateId

protected int|null $templateId
Tags
scope

envelope as messageTemplateID

$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
scope

tplParams as userText

$userEnteredText

Additional text to include in the receipt.

protected string $userEnteredText
Tags
scope

tplParams as userTextPlain

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
throws
CRM_Core_Exception
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
$this

addCc()

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
$this

getBcc()

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

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

getReplyTo()

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
string

getTo()

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']

resolveContent()

public resolveContent() : array<string|int, mixed>
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
$this

setCc()

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
$this

setContact()

public setContact([array<string|int, mixed>|null $contact = ]) : $this
Parameters
$contact : array<string|int, mixed>|null =
Return values
$this

setContactID()

public setContactID([int|null $contactID = ]) : $this
Parameters
$contactID : int|null =
Return values
$this

setFrom()

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
$this

setLocale()

public setLocale(string|null $locale) : $this
Parameters
$locale : string|null
Return values
$this

setReplyTo()

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
$this

setRequestedLocale()

Set the requested locale.

public setRequestedLocale(string|null $requestedLocale) : $this
Parameters
$requestedLocale : string|null
Return values
$this

setTo()

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
$this

setUserEnteredHTML()

public setUserEnteredHTML([string $html = ]) : $this
Parameters
$html : string =
Return values
$this

setUserEnteredText()

public setUserEnteredText([string $text = ]) : $this
Parameters
$text : string =
Return values
$this

validate()

Determine if the data for this workflow message is complete/well-formed.

public validate() : array<string|int, mixed>
Tags
see
WorkflowMessageInterface::validate()
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
see
ReflectiveWorkflowTrait::export

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

getMagicProperties()

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
see
ReflectiveWorkflowTrait::import

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_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
Return values
array<string|int, mixed>|string|null

        
On this page

Search results