hook_civicrm_check¶
Summary¶
This hook is called by the "System Check" api.
Notes¶
This runs on a regular basis (currently once a day, as well as whenever the status page is visited or System.check
API is called).
Typically your extension would add results by appending one or more
CRM_Utils_Check_Message
objects to the $messages array. Constructing
a CRM_Utils_Check_Message
requires the following parameters:
- Name: A unique string for this type of message (no two messages in the array may have the same name). This will be the name given to a StatusPreference record if your message is hushed or disabled.
- Description: Long description html string
- Title: Short title plain text string
- Severity: A PSR-3 string.
- Icon: A font-awesome icon string (optional).
See CRM_Utils_Check::checkAll
for more details about the system check api.
Availability¶
Introduced in CiviCRM v4.6.3.
Definition¶
hook_civicrm_check(&$messages)
Parameters¶
&$messages
CRM_Utils_Check_Message[]
: Array of messages your hook can append to$statusNames
array|null
: If only certain checks were requested, check this array and return early if your messages are not called for.$includeDisabled
bool
: If your hook skips disabled checks (which it should!) this param tells you to bypass your skippage.
Example¶
/**
* Implementation of hook_civicrm_check
*
* Add a check to the status page/System.check results if $snafu is TRUE.
*/
function mymodule_civicrm_check(&$messages, $statusNames, $includeDisabled) {
// Early return if $statusNames doesn't call for our check
if ($statusNames && !in_array('mymoduleSnafu', $statusNames)) {
return;
}
// If performing your check is resource-intensive, consider bypassing if disabled
if (!$includeDisabled) {
$disabled = \Civi\Api4\StatusPreference::get()
->setCheckPermissions(FALSE)
->addWhere('is_active', '=', FALSE)
->addWhere('domain_id', '=', 'current_domain')
->addWhere('name', '=', 'mymoduleSnafu')
->execute()->count();
if ($disabled) {
return;
}
}
$snafu = (1 + 1 == 2); // Perform check here
if ($snafu) {
$messages[] = new CRM_Utils_Check_Message(
'mymoduleSnafu',
ts('Situation normal, all funnied up'),
ts('SNAFU Found'),
\Psr\Log\LogLevel::WARNING,
'fa-flag'
)
// Optionally add extended help
->addHelp(ts('This text will appear in a help bubble if the user clicks on the help icon.'));
}
}