Documentation

CRM_Profile_Page_Dynamic extends CRM_Core_Page
in package

Create a page for displaying CiviCRM Profile Fields.

Heart of this class is the run method which checks for action type and then displays the appropriate page.

Table of Contents

Properties

$_permission  : string
The permission we have on this contact
$ajaxResponse  : array<string|int, mixed>
What to return to the client if in ajax mode (snippet=json)
$expectedSmartyVariables  : array<string|int, string>
Variables smarty expects to have set.
$urlPath  : array<string|int, mixed>
Url path used to reach this page
$useLivePageJS  : bool
Should crm.livePage.js be added to the page?
$_action  : int
$_activityId  : string
Activity Id connected to the profile.
$_allFields  : int
fetch multirecord as well as non-multirecord fields
$_embedded  : bool
Is this object being embedded in another object. If so the display routine needs to not do any work. (The parent object takes care of the display)
$_gid  : int
The profile group are are interested in.
$_id  : int
The contact id of the person we are viewing.
$_isContactActivityProfile  : string
Contact profile having activity fields?
$_mode  : int
A page can have multiple modes. (i.e. displays a different set of data based on the input
$_multiRecord  : mixed
$_name  : string
The name of the page (auto generated from class name)
$_print  : int|string
Are we in print mode? if so we need to modify the display functionality to do a minimal display :)
$_profileIds  : array<string|int, mixed>
Store profile ids if multiple profile ids are passed using comma separated.
$_recordId  : mixed
$_restrict  : string
The profile types we restrict this page to display.
$_session  : CRM_Core_Session
Cache the session for efficiency reasons
$_skipPermission  : bool
Should we bypass permissions.
$_template  : CRM_Core_Smarty
Cache the smarty template for efficiency reasons
$_title  : object
The title associated with this page.
$isShowEmailTaskLink  : bool
Should the primary email be converted into a link, if emailabe.

Methods

__construct()  : CRM_Core_Page
Class constructor.
actionLinks()  : array<string|int, mixed>
Get the action links for this page.
addExpectedSmartyVariable()  : void
Add an expected smarty variable to the array.
addExpectedSmartyVariables()  : void
Add an expected smarty variable to the array.
append()  : mixed
Appends values to template variables.
assign()  : mixed
Assign value to name in template.
assign_by_ref()  : mixed
Assign value to name in template by reference.
checkTemplateFileExists()  : string|null
Check template file exists.
crmIcon()  : string
Handy helper to produce the standard markup for an icon with alternative text for a title and screen readers.
get()  : mixed
Get the variable from the form scope.
get_template_vars()  : array<string|int, mixed>
Returns an array containing template variables.
getEmbedded()  : bool
Getter for embedded.
getHookedTemplateFileName()  : mixed
A wrapper for getTemplateFileName that includes calling the hook to prevent us from having to copy & paste the logic of calling the hook
getPrint()  : int|string
Getter for print.
getTemplate()  : CRM_Core_Smarty
getTemplateFileName()  : string
Use the form name to create the tpl file name.
getTemplateVars()  : mixed
Get the value/s assigned to the Template Engine (Smarty).
getVar()  : null
invalidKey()  : mixed
overrideExtraTemplateFileName()  : string
Default extra tpl file basically just replaces .tpl with .extra.tpl i.e. we dont override
reset()  : mixed
Destroy all the session state of this page.
run()  : mixed
Run the page.
set()  : mixed
Store the variable with the value in the form scope.
setEmbedded()  : mixed
Setter for embedded.
setPrint()  : void
Setter for print.
setVar()  : mixed
assignFieldMetadataToTemplate()  : mixed
Assign metadata about fields to the template.
getEmailFields()  : array<string|int, mixed>
Get the email fields from within the fields array.
getLinkedEmail()  : string
Get the email field as a task link, if not on hold or set to do_not_email.

Properties

$_permission

The permission we have on this contact

public string $_permission

$ajaxResponse

What to return to the client if in ajax mode (snippet=json)

public array<string|int, mixed> $ajaxResponse = []

$expectedSmartyVariables

Variables smarty expects to have set.

public array<string|int, string> $expectedSmartyVariables = [ 'isForm', 'hookContent', 'hookContentPlacement', // required for footer.tpl 'contactId', // required for info.tpl 'infoMessage', 'infoTitle', 'infoType', 'infoOptions', // required for Summary.tpl (contact summary) but seems // likely to be used more broadly to warrant inclusion here. 'context', // for CMSPrint.tpl 'urlIsPublic', 'breadcrumb', 'pageTitle', 'isDeleted', // Required for footer.tpl, // See ExampleHookTest:testPageOutput. 'footer_status_severity', // in 'body.tpl 'suppressForm', 'beginHookFormElements', // This is checked in validate.tpl 'snippet_type', ]

We ensure these are assigned (value = NULL) when Smarty is instantiated in order to avoid e-notices / having to use empty or isset in the template layer.

$urlPath

Url path used to reach this page

public array<string|int, mixed> $urlPath = []

$useLivePageJS

Should crm.livePage.js be added to the page?

public bool $useLivePageJS

$_action

protected int $_action

$_activityId

Activity Id connected to the profile.

protected string $_activityId = \NULL

$_allFields

fetch multirecord as well as non-multirecord fields

protected int $_allFields = \NULL

$_embedded

Is this object being embedded in another object. If so the display routine needs to not do any work. (The parent object takes care of the display)

protected bool $_embedded = \FALSE

$_gid

The profile group are are interested in.

protected int $_gid

$_id

The contact id of the person we are viewing.

protected int $_id

$_isContactActivityProfile

Contact profile having activity fields?

protected string $_isContactActivityProfile = \FALSE

$_mode

A page can have multiple modes. (i.e. displays a different set of data based on the input

protected int $_mode

$_multiRecord

protected mixed $_multiRecord = \NULL

$_name

The name of the page (auto generated from class name)

protected string $_name

$_print

Are we in print mode? if so we need to modify the display functionality to do a minimal display :)

protected int|string $_print = \FALSE

Should match a CRM_Core_Smarty::PRINT_* constant, or equal 0 if not in print mode

$_profileIds

Store profile ids if multiple profile ids are passed using comma separated.

protected array<string|int, mixed> $_profileIds = []

Currently lets implement this functionality only for dialog mode

$_recordId

protected mixed $_recordId = \NULL

$_restrict

The profile types we restrict this page to display.

protected string $_restrict

$_skipPermission

Should we bypass permissions.

protected bool $_skipPermission

$_template

Cache the smarty template for efficiency reasons

protected static CRM_Core_Smarty $_template

$_title

The title associated with this page.

protected object $_title

Should the primary email be converted into a link, if emailabe.

protected bool $isShowEmailTaskLink = \FALSE

Methods

__construct()

Class constructor.

public __construct(int $id, int $gid, mixed $restrict[, bool $skipPermission = FALSE ][, array<string|int, int>|null $profileIds = NULL ][, bool $isShowEmailTaskLink = FALSE ]) : CRM_Core_Page
Parameters
$id : int

The contact id.

$gid : int

The group id.

$restrict : mixed
$skipPermission : bool = FALSE
$profileIds : array<string|int, int>|null = NULL
$isShowEmailTaskLink : bool = FALSE
Tags
throws
CRM_Core_Exception
Return values
CRM_Core_Page

Get the action links for this page.

public & actionLinks() : array<string|int, mixed>
Return values
array<string|int, mixed>

addExpectedSmartyVariable()

Add an expected smarty variable to the array.

public addExpectedSmartyVariable(string $elementName) : void
Parameters
$elementName : string

addExpectedSmartyVariables()

Add an expected smarty variable to the array.

public addExpectedSmartyVariables(array<string|int, mixed> $elementNames) : void
Parameters
$elementNames : array<string|int, mixed>

append()

Appends values to template variables.

public append(array<string|int, mixed>|string $tpl_var[, mixed $value = NULL ][, bool $merge = FALSE ]) : mixed
Parameters
$tpl_var : array<string|int, mixed>|string

the template variable name(s)

$value : mixed = NULL

The value to append.

$merge : bool = FALSE

assign()

Assign value to name in template.

public assign(string $var[, mixed $value = NULL ]) : mixed
Parameters
$var : string
$value : mixed = NULL

Value of variable.

assign_by_ref()

Assign value to name in template by reference.

public assign_by_ref(string $var, mixed &$value) : mixed

since 5.72 will be removed around 5.84

Parameters
$var : string
$value : mixed

(reference) value of variable.

checkTemplateFileExists()

Check template file exists.

public checkTemplateFileExists([string|null $suffix = NULL ]) : string|null
Parameters
$suffix : string|null = NULL
Return values
string|null

Template file path, else null

crmIcon()

Handy helper to produce the standard markup for an icon with alternative text for a title and screen readers.

public static crmIcon(string $icon[, string $text = NULL ][, bool $condition = TRUE ][, array<string|int, mixed> $attribs = [] ]) : string

See also the smarty block function icon

Parameters
$icon : string

The class name of the icon to display.

$text : string = NULL

The translated text to display.

$condition : bool = TRUE

Whether to display anything at all. This helps simplify code when a checkmark should appear if something is true.

$attribs : array<string|int, mixed> = []

Attributes to set or override on the icon element. Any standard attribute can be unset by setting the value to an empty string.

Return values
string

The whole bit to drop in.

get()

Get the variable from the form scope.

public get(string $name) : mixed
Parameters
$name : string

name of the variable

get_template_vars()

Returns an array containing template variables.

public get_template_vars([string $name = NULL ]) : array<string|int, mixed>

since 5.69 will be removed around 5.93. use getTemplateVars.

Parameters
$name : string = NULL
Return values
array<string|int, mixed>

getEmbedded()

Getter for embedded.

public getEmbedded() : bool
Return values
bool

return the embedded value

getHookedTemplateFileName()

A wrapper for getTemplateFileName that includes calling the hook to prevent us from having to copy & paste the logic of calling the hook

public getHookedTemplateFileName() : mixed

getPrint()

Getter for print.

public getPrint() : int|string
Return values
int|string

Value matching a CRM_Core_Smarty::PRINT_* constant, or 0 if not in print mode

getTemplateFileName()

Use the form name to create the tpl file name.

public getTemplateFileName() : string
Return values
string

getTemplateVars()

Get the value/s assigned to the Template Engine (Smarty).

public getTemplateVars([string|null $name = NULL ]) : mixed
Parameters
$name : string|null = NULL

getVar()

public getVar(string $name) : null
Parameters
$name : string
Return values
null

invalidKey()

public invalidKey() : mixed

overrideExtraTemplateFileName()

Default extra tpl file basically just replaces .tpl with .extra.tpl i.e. we dont override

public overrideExtraTemplateFileName() : string
Return values
string

reset()

Destroy all the session state of this page.

public reset() : mixed

run()

Run the page.

public run() : mixed

This method is called after the page is created. It checks for the type of action and executes that action.

set()

Store the variable with the value in the form scope.

public set(string|array<string|int, mixed> $name[, mixed $value = NULL ]) : mixed
Parameters
$name : string|array<string|int, mixed>

name of the variable or an assoc array of name/value pairs

$value : mixed = NULL

Value of the variable if string.

setEmbedded()

Setter for embedded.

public setEmbedded(bool $embedded) : mixed
Parameters
$embedded : bool

setPrint()

Setter for print.

public setPrint(int|string $print) : void
Parameters
$print : int|string

Should match a CRM_Core_Smarty::PRINT_* constant, or equal 0 if not in print mode

setVar()

public setVar(string $name, mixed $value) : mixed
Parameters
$name : string
$value : mixed

assignFieldMetadataToTemplate()

Assign metadata about fields to the template.

protected assignFieldMetadataToTemplate(string $entity) : mixed

In order to allow the template to format fields we assign information about them to the template.

At this stage only date field metadata is assigned as that is the only use-case in play and we don't want to assign a lot of unneeded data.

Parameters
$entity : string

The entity being queried.

Tags
throws
CRM_Core_Exception

getEmailFields()

Get the email fields from within the fields array.

protected getEmailFields(array<string|int, mixed> $fields) : array<string|int, mixed>
Parameters
$fields : array<string|int, mixed>
Return values
array<string|int, mixed>

getLinkedEmail()

Get the email field as a task link, if not on hold or set to do_not_email.

protected getLinkedEmail(string $email) : string
Parameters
$email : string
Tags
throws
CRM_Core_Exception
throws
UnauthorizedException
Return values
string

        
On this page

Search results