public static function buildSuccessMessage($msgId, $timestamp, $originalSourceId, $originalMsgId, $sifCodeNum, $zoneVersion, $versionNamespace, $zoneName, $originalMsg = null, $desc = null) { $root = XmlHelper::buildSifAckMessage($msgId, $timestamp, $originalSourceId, $originalMsgId, $zoneVersion, $versionNamespace, $zoneName); $sifAck = $root->getElementsByTagName('SIF_Ack')->item(0); $sifStatusNode = $root->createElement('SIF_Status'); $sifCodeNode = $root->createElement('SIF_Code'); $text = $root->createTextNode($sifCodeNum); $sifCodeNode->appendChild($text); $sifStatusNode->appendChild($sifCodeNode); if ($desc != null) { $sifDesc = $root->createElement('SIF_Desc'); $text = $root->createTextNode($desc); $sifDesc->appendChild($text); $sifStatusNode->appendChild($sifDesc); } if ($originalMsg != null) { $f_dom = new DOMDocument('1.0', 'UTF-8'); $f_dom->preserveWhiteSpace = false; $f_dom->formatOutput = false; $f_dom->loadXML($originalMsg); $messageNode = $f_dom->getElementsByTagName('SIF_Message')->item(0); if ($messageNode == null) { $messageNode = $f_dom->getElementsByTagName('SIF_AgentACL')->item(0); if ($messageNode == null) { $messageNode = $f_dom->getElementsByTagName('SIF_ZoneStatus')->item(0); } } $xmlStr_ = $f_dom->saveXML($messageNode); $sifDataNode = $root->createElement('SIF_Data'); $f = $root->createDocumentFragment(); $f->appendXML($xmlStr_); $domNode = $root->importNode($f, true); $sifDataNode->appendChild($domNode); $sifStatusNode->appendChild($sifDataNode); } $sifAck->appendChild($sifStatusNode); $root->preserveWhiteSpace = false; $root->formatOutput = false; $xmlStr = $root->saveXML(); return $xmlStr; }
public static function buildErrorMessage($categoryCode, $errorCode, $shortDesc, $longDesc, $msgId, $timestamp, $originalSourceId, $originalMsgId, $writeToLog = true) { $root = XmlHelper::buildSifAckMessage($msgId, $timestamp, $originalSourceId, $originalMsgId); $sifAck = $root->getElementsByTagName('SIF_Ack'); $sifErrorNode = $root->createElement('SIF_Error'); $sifCategoryNode = $root->createElement('SIF_Category'); $text = $root->createTextNode($categoryCode); $sifCategoryNode->appendChild($text); $sifCodeNode = $root->createElement('SIF_Code'); $text = $root->createTextNode($errorCode); $sifCodeNode->appendChild($text); $sifShortDescNode = $root->createElement('SIF_Desc'); $text = $root->createTextNode($shortDesc); $sifShortDescNode->appendChild($text); $sifLongDescNode = $root->createElement('SIF_ExtendedDesc'); $text = $root->createTextNode($longDesc); $sifLongDescNode->appendChild($text); $sifErrorNode->appendChild($sifCategoryNode); $sifErrorNode->appendChild($sifCodeNode); $sifErrorNode->appendChild($sifShortDescNode); $sifErrorNode->appendChild($sifLongDescNode); $sifAck->item(0)->appendChild($sifErrorNode); $xmlStr = $root->saveXML(); if ($writeToLog) { $_SESSION['SIF_MESSAGE_TYPE'] = 1; ZitLog::writeToLog(REC_XML, $xmlStr); } $length = strlen($xmlStr); header('Content-Length: ' . $length); echo $xmlStr; session_destroy(); exit; }