From ff7838ab53c16ed35451d188eac2d623c0b11963 Mon Sep 17 00:00:00 2001 From: kurund Date: Fri, 30 May 2014 01:52:17 +0530 Subject: [PATCH] fix code to work with api and UI, CRM-14474 ---------------------------------------- * CRM-14474: Update CiviCase XML processor to load from DB *or* file https://issues.civicrm.org/jira/browse/CRM-14474 --- CRM/Case/BAO/CaseType.php | 8 +------- CRM/Case/XMLRepository.php | 7 +++++++ 2 files changed, 8 insertions(+), 7 deletions(-) diff --git a/CRM/Case/BAO/CaseType.php b/CRM/Case/BAO/CaseType.php index b845c9cd20..2723b812f5 100644 --- a/CRM/Case/BAO/CaseType.php +++ b/CRM/Case/BAO/CaseType.php @@ -157,13 +157,7 @@ class CRM_Case_BAO_CaseType extends CRM_Case_DAO_CaseType { * @static */ static function getCaseTypeDefinition($caseType) { - // check if case type definition is saved in DB - if (!empty($caseType['definition'])) { - $xml = simplexml_load_string($caseType['definition']); - } - else { - $xml = CRM_Case_XMLRepository::singleton()->retrieve($caseType['name']); - } + $xml = CRM_Case_XMLRepository::singleton()->retrieve($caseType['name']); // build PHP array based on definition $definition = array(); diff --git a/CRM/Case/XMLRepository.php b/CRM/Case/XMLRepository.php index b5c29eee15..61a504b062 100644 --- a/CRM/Case/XMLRepository.php +++ b/CRM/Case/XMLRepository.php @@ -77,6 +77,13 @@ class CRM_Case_XMLRepository { * @return SimpleXMLElement|FALSE */ public function retrieve($caseType) { + // check if xml definition is defined in db + $definition = CRM_Core_DAO::getFieldValue('CRM_Case_DAO_CaseType', $caseType, 'definition', 'name'); + + if (!empty($definition)) { + return simplexml_load_string($definition); + } + $caseType = CRM_Case_XMLProcessor::mungeCaseType($caseType); if (!CRM_Utils_Array::value($caseType, $this->xml)) { -- 2.25.1