コード例 #1
0
ファイル: CaseType.php プロジェクト: kcristiano/civicrm-core
 /**
  * Takes an associative array and creates a Case Type object.
  *
  * the function extract all the params it needs to initialize the create a
  * case type object. the params array could contain additional unused name/value
  * pairs
  *
  * @param array $params
  *   (reference ) an assoc array of name/value pairs.
  *
  * @throws CRM_Core_Exception
  *
  * @return CRM_Case_BAO_CaseType
  */
 public static function add(&$params)
 {
     $caseTypeDAO = new CRM_Case_DAO_CaseType();
     // form the name only if missing: CRM-627
     $nameParam = CRM_Utils_Array::value('name', $params, NULL);
     if (!$nameParam && empty($params['id'])) {
         $params['name'] = CRM_Utils_String::titleToVar($params['title']);
     }
     // Old case-types (pre-4.5) may keep their ucky names, but new case-types must satisfy isValidName()
     if (empty($params['id']) && !empty($params['name']) && !CRM_Case_BAO_CaseType::isValidName($params['name'])) {
         throw new CRM_Core_Exception("Cannot create new case-type with malformed name [{$params['name']}]");
     }
     $caseTypeName = isset($params['name']) ? $params['name'] : CRM_Core_DAO::getFieldValue('CRM_Case_DAO_CaseType', $params['id'], 'name', 'id', TRUE);
     // function to format definition column
     if (isset($params['definition']) && is_array($params['definition'])) {
         $params['definition'] = self::convertDefinitionToXML($caseTypeName, $params['definition']);
         CRM_Core_ManagedEntities::scheduleReconciliation();
     }
     $caseTypeDAO->copyValues($params);
     return $caseTypeDAO->save();
 }
コード例 #2
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;
 }