Пример #1
0
 /**
  * @param string $caseType
  * @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)) {
         list($xml, $error) = CRM_Utils_XML::parseString($definition);
         if (!$xml) {
             throw new CRM_Core_Exception("Failed to parse CaseType XML: {$error}");
         }
         return $xml;
     }
     // TODO In 4.6 or 5.0, remove support for weird machine-names
     //if (!CRM_Case_BAO_CaseType::isValidName($caseType)) {
     //  // perhaps caller provider a the label instead of the name?
     //  throw new CRM_Core_Exception("Cannot load caseType with malformed name [$caseType]");
     //}
     if (!CRM_Utils_Array::value($caseType, $this->xml)) {
         $fileXml = $this->retrieveFile($caseType);
         if ($fileXml) {
             $this->xml[$caseType] = $fileXml;
         } else {
             return FALSE;
         }
     }
     return $this->xml[$caseType];
 }
Пример #2
0
 /**
  * Load extension info a string.
  *
  * @param string $string
  *   XML content.
  *
  * @throws CRM_Extension_Exception_ParseException
  * @return CRM_Extension_Info
  */
 public static function loadFromString($string)
 {
     list($xml, $error) = CRM_Utils_XML::parseString($string);
     if ($xml === FALSE) {
         throw new CRM_Extension_Exception_ParseException("Failed to parse info XML: {$string}");
     }
     $instance = new CRM_Extension_Info();
     $instance->parse($xml);
     return $instance;
 }