CRM_Standaloneusers_WorkflowMessage_PasswordReset
extends GenericWorkflowMessage
in package
Generic base-class for describing the inputs for a workflow email template.
Table of Contents
Constants
- WORKFLOW = 'password_reset'
Properties
- $resetUrlHtml : string
- HTML full URL to user's password reset.
- $resetUrlPlaintext : string
- Plaintext full URL to user's password reset.
- $usernameHtml : string
- HTML username.
- $usernamePlaintext : string
- Plaintext username.
- $_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).
- $contact : array<string|int, mixed>|null
- $contactID : int|null
- The contact receiving this message.
- $from : string|null
- The email sender (single address).
- $isTest : bool
- $locale : string|null
- $logParams : array<string|int, mixed>
- $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
- getParamsForLog() : array<string|int, mixed>
- 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
- setDataFromUser() : mixed
- Generate/regenerate a token for the user and load the tplParams
- setFrom() : $this
- setLocale() : $this
- setReplyTo() : $this
- setRequestedLocale() : $this
- Set the requested locale.
- setResetUrlHtml() : $this
- setResetUrlPlaintext() : $this
- setTo() : $this
- setUserEnteredHTML() : $this
- setUserEnteredText() : $this
- setUsernameHtml() : $this
- setUsernamePlaintext() : $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
= 'password_reset'
Properties
$resetUrlHtml
HTML full URL to user's password reset.
public
string
$resetUrlHtml
Tags
$resetUrlPlaintext
Plaintext full URL to user's password reset.
public
string
$resetUrlPlaintext
Tags
$usernameHtml
HTML username.
public
string
$usernameHtml
Tags
$usernamePlaintext
Plaintext username.
public
string
$usernamePlaintext
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
$contact
protected
array<string|int, mixed>|null
$contact
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
$logParams
protected
array<string|int, mixed>
$logParams
$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
stringgetParamsForLog()
public
getParamsForLog() : array<string|int, mixed>
Return values
array<string|int, mixed>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
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
$thissetDataFromUser()
Generate/regenerate a token for the user and load the tplParams
public
setDataFromUser(array<string|int, mixed> $user, string $token) : mixed
Parameters
- $user : array<string|int, mixed>
- $token : string
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
$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
$thissetResetUrlHtml()
public
setResetUrlHtml([string $s = ]) : $this
Parameters
- $s : string =
Return values
$thissetResetUrlPlaintext()
public
setResetUrlPlaintext([string $s = ]) : $this
Parameters
- $s : string =
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
$thissetUsernameHtml()
public
setUsernameHtml([string $s = ]) : $this
Parameters
- $s : string =
Return values
$thissetUsernamePlaintext()
public
setUsernamePlaintext([string $s = ]) : $this
Parameters
- $s : 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