fix code to work with api and UI, CRM-14474
authorkurund <kurund@civicrm.org>
Thu, 29 May 2014 20:22:17 +0000 (01:52 +0530)
committerkurund <kurund@civicrm.org>
Thu, 29 May 2014 20:22:17 +0000 (01:52 +0530)
----------------------------------------
* 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
CRM/Case/XMLRepository.php

index b845c9cd20e74b45726131d102af448502e6dc34..2723b812f56b8f2eb610aa73acee1d2b53a3db00 100644 (file)
@@ -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();
index b5c29eee155f4e8e661fb79aa05573ca10bbbdd2..61a504b062ea0546c971a168e2fc95a4ab47bae5 100644 (file)
@@ -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)) {