Documentation

CRM_Custom_Page_Option extends CRM_Core_Page
in package

Create a page for displaying Custom Options.

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
$_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)
$_fid  : int
The field id of the option
$_gid  : int
The Group id of the option
$_id  : int
$_mode  : int
A page can have multiple modes. (i.e. displays a different set of data based on the input
$_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 :)
$_session  : CRM_Core_Session
Cache the session for efficiency reasons
$_template  : CRM_Core_Smarty
Cache the smarty template for efficiency reasons
$_title  : object
The title associated with this page.
$_actionLinks  : array<string|int, mixed>
The action links that we need to display for the browse screen

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.
alphabetize()  : void
Alphabetize multiple option values
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.
browse()  : void
Browse all custom group fields.
crmIcon()  : string
Handy helper to produce the standard markup for an icon with alternative text for a title and screen readers.
edit()  : void
Edit custom Option.
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()  : void
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.
getOptionGroupId()  : int
Gets the associated "option_group_id" for a custom field
isOptionGroupLocked()  : bool
Gets the "is_locked" status for the provided option group

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 = \TRUE

$_action

protected int $_action

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

$_fid

The field id of the option

protected int $_fid

$_gid

The Group id of the option

protected int $_gid

$_id

protected int $_id

$_mode

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

protected int $_mode

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

$_template

Cache the smarty template for efficiency reasons

protected static CRM_Core_Smarty $_template

$_title

The title associated with this page.

protected object $_title

The action links that we need to display for the browse screen

private static array<string|int, mixed> $_actionLinks

Methods

__construct()

Class constructor.

public __construct([string $title = NULL ][, int $mode = NULL ]) : CRM_Core_Page
Parameters
$title : string = NULL

Title of the page.

$mode : int = NULL

Mode of the page.

Return values
CRM_Core_Page

Get the action links for this page.

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

array of action links that we need to display for the browse screen

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>

alphabetize()

Alphabetize multiple option values

public alphabetize() : void

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.

browse()

Browse all custom group fields.

public browse() : void

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.

edit()

Edit custom Option.

public edit(string $action) : void

editing would involved modifying existing fields + adding data to new fields.

Parameters
$action : string

The action to be invoked.

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() : void

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

getOptionGroupId()

Gets the associated "option_group_id" for a custom field

private getOptionGroupId(int $customFieldId) : int
Parameters
$customFieldId : int
Return values
int

isOptionGroupLocked()

Gets the "is_locked" status for the provided option group

private isOptionGroupLocked(int $optionGroupId) : bool
Parameters
$optionGroupId : int
Return values
bool

        
On this page

Search results