コード例 #1
0
ファイル: CaseTypeTest.php プロジェクト: hyebahi/civicrm-core
 /**
  * @param string $fixtureName
  * @param string $inputJson
  * @param string $ignore
  * @dataProvider definitionProvider
  */
 public function testRoundtrip_JsonToXmlToJson($fixtureName, $inputJson, $ignore)
 {
     $tempXml = CRM_Case_BAO_CaseType::convertDefinitionToXML('Housing Support', json_decode($inputJson, TRUE));
     $actualDefinition = CRM_Case_BAO_CaseType::convertXmlToDefinition(simplexml_load_string($tempXml));
     $expectedDefinition = json_decode($inputJson, TRUE);
     $this->assertEquals($expectedDefinition, $actualDefinition);
 }
コード例 #2
0
 /**
  * Attempt to edit the definition of UnforkableCaseType. This fails.
  */
 public function testUnforkable()
 {
     $caseTypeId = CRM_Core_DAO::getFieldValue('CRM_Case_DAO_CaseType', 'UnforkableCaseType', 'id', 'name');
     $this->assertTrue(is_numeric($caseTypeId) && $caseTypeId > 0);
     $this->assertDBNull('CRM_Case_BAO_CaseType', $caseTypeId, 'definition', 'id', "Should not have DB-based definition");
     $this->assertFalse(CRM_Case_BAO_CaseType::isForkable($caseTypeId));
     $this->assertFalse(CRM_Case_BAO_CaseType::isForked($caseTypeId));
     $this->callAPISuccess('CaseType', 'create', array('id' => $caseTypeId, 'definition' => array('activityTypes' => array(array('name' => 'First act'), array('name' => 'Second act')))));
     $this->assertFalse(CRM_Case_BAO_CaseType::isForkable($caseTypeId));
     $this->assertFalse(CRM_Case_BAO_CaseType::isForked($caseTypeId));
     $this->assertDBNull('CRM_Case_BAO_CaseType', $caseTypeId, 'definition', 'id', "Should not have DB-based definition");
 }
コード例 #3
0
 /**
  * @param string $caseType
  * @return SimpleXMLElement|FALSE
  */
 public function retrieveFile($caseType)
 {
     $fileName = NULL;
     $fileXml = NULL;
     if (CRM_Case_BAO_CaseType::isValidName($caseType)) {
         // Search for a file based directly on the $caseType name
         $fileName = $this->findXmlFile($caseType);
     }
     // For backward compatibility, also search for double-munged file names
     // TODO In 4.6 or 5.0, remove support for loading double-munged file names
     if (!$fileName || !file_exists($fileName)) {
         $fileName = $this->findXmlFile(CRM_Case_XMLProcessor::mungeCaseType($caseType));
     }
     if ($fileName && file_exists($fileName)) {
         // read xml file
         $dom = new DomDocument();
         $dom->load($fileName);
         $dom->xinclude();
         $fileXml = simplexml_import_dom($dom);
     }
     return $fileXml;
 }
コード例 #4
0
ファイル: CaseType.php プロジェクト: kidaa30/yes
/**
 * Format definition.
 *
 * @param array $result
 *
 * @return array
 * @throws \CRM_Core_Exception
 */
function _civicrm_api3_case_type_get_formatResult(&$result)
{
    foreach ($result['values'] as $key => $caseType) {
        $caseTypeName = isset($caseType['name']) ? $caseType['name'] : CRM_Core_DAO::getFieldValue('CRM_Case_DAO_CaseType', $caseType['id'], 'name', 'id', TRUE);
        $xml = CRM_Case_XMLRepository::singleton()->retrieve($caseTypeName);
        if ($xml) {
            $result['values'][$key]['definition'] = CRM_Case_BAO_CaseType::convertXmlToDefinition($xml);
        } else {
            $result['values'][$key]['definition'] = array();
        }
        $result['values'][$key]['is_forkable'] = CRM_Case_BAO_CaseType::isForkable($result['values'][$key]['id']);
        $result['values'][$key]['is_forked'] = CRM_Case_BAO_CaseType::isForked($result['values'][$key]['id']);
    }
    return $result;
}
コード例 #5
0
ファイル: CaseType.php プロジェクト: kcristiano/civicrm-core
 /**
  * Retrieve DB object based on input parameters.
  *
  * It also stores all the retrieved values in the default array.
  *
  * @param array $params
  *   (reference ) an assoc array of name/value pairs.
  * @param array $defaults
  *   (reference ) an assoc array to hold the name / value pairs.
  *                        in a hierarchical manner
  *
  * @return CRM_Case_BAO_CaseType
  */
 public static function retrieve(&$params, &$defaults)
 {
     $caseType = CRM_Case_BAO_CaseType::getValues($params, $defaults);
     return $caseType;
 }