Merge pull request #15248 from MegaphoneJon/reporting-19
[civicrm-core.git] / CRM / Utils / Check / Component / OptionGroups.php
index 009ebe55f4baffe262e31887511c1118e889abe9..f5cd196a6b44306171ccbaa8878b5eaad5bb6939 100644 (file)
@@ -3,7 +3,7 @@
  +--------------------------------------------------------------------+
  | CiviCRM version 5                                                  |
  +--------------------------------------------------------------------+
- | Copyright CiviCRM LLC (c) 2004-2019                                |
+ | Copyright CiviCRM LLC (c) 2004-2020                                |
  +--------------------------------------------------------------------+
  | This file is a part of CiviCRM.                                    |
  |                                                                    |
@@ -28,7 +28,7 @@
 /**
  *
  * @package CRM
- * @copyright CiviCRM LLC (c) 2004-2019
+ * @copyright CiviCRM LLC (c) 2004-2020
  */
 class CRM_Utils_Check_Component_OptionGroups extends CRM_Utils_Check_Component {
 
@@ -36,24 +36,26 @@ class CRM_Utils_Check_Component_OptionGroups extends CRM_Utils_Check_Component {
    * @return array
    */
   public function checkOptionGroupValues() {
-    $messages = array();
-    $problemValues = array();
-    $optionGroups  = civicrm_api3('OptionGroup', 'get', array(
+    $messages = [];
+    $problemValues = [];
+    $optionGroups  = civicrm_api3('OptionGroup', 'get', [
       'sequential' => 1,
-      'data_type' => array('IS NOT NULL' => 1),
-      'options' => array('limit' => 0),
-    ));
+      'data_type' => ['IS NOT NULL' => 1],
+      'options' => ['limit' => 0],
+    ]);
     if ($optionGroups['count'] > 0) {
       foreach ($optionGroups['values'] as $optionGroup) {
         $values = CRM_Core_BAO_OptionValue::getOptionValuesArray($optionGroup['id']);
         if (count($values) > 0) {
           foreach ($values as $value) {
-            $validate = CRM_Utils_Type::validate($value['value'], $optionGroup['data_type'], FALSE);
-            if (is_null($validate)) {
-              $problemValues[] = array(
+            try {
+              CRM_Utils_Type::validate($value['value'], $optionGroup['data_type'], FALSE, '', TRUE);
+            }
+            catch (Exception $e) {
+              $problemValues[] = [
                 'group_name' => $optionGroup['title'],
                 'value_name' => $value['label'],
-              );
+              ];
             }
           }
         }
@@ -62,10 +64,10 @@ class CRM_Utils_Check_Component_OptionGroups extends CRM_Utils_Check_Component {
     if (!empty($problemValues)) {
       $strings = '';
       foreach ($problemValues as $problemValue) {
-        $strings .= ts('<tr><td> "%1" </td><td> "%2" </td></tr>', array(
+        $strings .= ts('<tr><td> "%1" </td><td> "%2" </td></tr>', [
           1 => $problemValue['group_name'],
           2 => $problemValue['value_name'],
-        ));
+        ]);
       }
 
       $messages[] = new CRM_Utils_Check_Message(