From: Tim Otten Date: Thu, 17 Jul 2014 22:47:19 +0000 (-0700) Subject: CRM-15002 - Link Cases - Fix fatal error X-Git-Url: https://vcs.fsf.org/?a=commitdiff_plain;h=eb20fbf0057966dded211ff822b98b52a159cfe1;p=civicrm-core.git CRM-15002 - Link Cases - Fix fatal error --- diff --git a/CRM/Case/Form/Activity/LinkCases.php b/CRM/Case/Form/Activity/LinkCases.php index f0a6fd9dee..bf7902ddd5 100644 --- a/CRM/Case/Form/Activity/LinkCases.php +++ b/CRM/Case/Form/Activity/LinkCases.php @@ -47,17 +47,22 @@ class CRM_Case_Form_Activity_LinkCases { if (!isset($form->_caseId)) { CRM_Core_Error::fatal(ts('Case Id not found.')); } + if (count($form->_caseId) != 1) { + CRM_Core_Resources::fatal(ts('Expected one case-type')); + } + + $caseId = CRM_Utils_Array::first($form->_caseId); $form->assign('clientID', $form->_currentlyViewedContactId); - $form->assign('caseTypeLabel', CRM_Case_BAO_Case::getCaseType($form->_caseId)); + $form->assign('caseTypeLabel', CRM_Case_BAO_Case::getCaseType($caseId)); // get the related cases for given case. $relatedCases = $form->get('relatedCases'); if (!isset($relatedCases)) { - $relatedCases = CRM_Case_BAO_Case::getRelatedCases($form->_caseId, $form->_currentlyViewedContactId); + $relatedCases = CRM_Case_BAO_Case::getRelatedCases($caseId, $form->_currentlyViewedContactId); $form->set('relatedCases', empty($relatedCases) ? FALSE : $relatedCases); } - $excludeCaseIds = array($form->_caseId); + $excludeCaseIds = array($caseId); if (is_array($relatedCases) && !empty($relatedCases)) { $excludeCaseIds = array_merge($excludeCaseIds, array_keys($relatedCases)); } @@ -101,7 +106,8 @@ class CRM_Case_Form_Activity_LinkCases { $errors = array(); $linkCaseId = CRM_Utils_Array::value('link_to_case_id', $values); - if ($linkCaseId == $form->_caseId) { + assert('is_numeric($linkeCaseId)'); + if ($linkCaseId == CRM_Utils_Array::first($form->_caseId)) { $errors['link_to_case'] = ts('Please select some other case to link.'); } diff --git a/CRM/Utils/Array.php b/CRM/Utils/Array.php index 34b18aba5f..39d2245aad 100644 --- a/CRM/Utils/Array.php +++ b/CRM/Utils/Array.php @@ -943,5 +943,18 @@ class CRM_Utils_Array { return $results; } + + /** + * Get the first elemnet of an array + * + * @param array $array + * @return mixed|NULL + */ + static function first($array) { + foreach ($array as $value) { + return $value; + } + return NULL; + } }