/** * System Check API. * * @param array $params * * @return array * API result descriptor; return items are alert codes/messages * @see civicrm_api3_create_success * @see civicrm_api3_create_error * @throws API_Exception */ function civicrm_api3_system_check($params) { // array(array('name'=> $, 'severity'=>$, ...)) $id = 1; $returnValues = $fields = array(); _civicrm_api3_system_check_spec($fields); // array(CRM_Utils_Check_Message) $messages = CRM_Utils_Check::checkAll(); foreach ($messages as $msg) { $returnValues[] = $msg->toArray() + array('id' => $id++); } return _civicrm_api3_basic_array_get('systemCheck', $params, $returnValues, "id", array_keys($fields)); }
/** * Show status in the footer * * @param CRM_Core_Smarty $template */ public static function statusCheck($template) { if (CRM_Core_Config::isUpgradeMode()) { return; } // check date of last cache and compare to today's date $systemCheckDate = Civi::cache()->get('systemCheckDate'); if ($systemCheckDate > strtotime("one day ago")) { $statusSeverity = Civi::cache()->get('systemCheckSeverity'); } // calls helper function in CRM_Utils_Check if (empty($statusSeverity)) { $statusSeverity = CRM_Utils_Check::checkAll(TRUE); } switch ($statusSeverity) { case 7: $statusMessage = ts('System Status: Emergency'); break; case 6: $statusMessage = ts('System Status: Alert'); break; case 5: $statusMessage = ts('System Status: Critical'); break; case 4: $statusMessage = ts('System Status: Error'); break; case 3: $statusMessage = ts('System Status: Warning'); break; case 2: $statusMessage = ts('System Status: Notice'); break; default: $statusMessage = ts('System Status: Ok'); } // TODO: get status from CRM_Utils_Check, if cached $template->assign('footer_status_severity', $statusSeverity); $template->assign('footer_status_message', $statusMessage); }