function parseXMLFile($id, $xmlfile) { global $_DOCMAN; // XML library require_once JPATH_LIBRARIES . DS . 'domit' . DS . 'xml_domit_lite_include.php'; // Read the file to see if it's a valid template XML file $xmlDoc = new DOMIT_Lite_Document(); $xmlDoc->resolveErrors(true); if (!$xmlDoc->loadXML($xmlfile, false, true)) { return false; } $element =& $xmlDoc->documentElement; if ($element->getTagName() != ('install' || 'mosinstall')) { return false; } if ($element->getAttribute('type') != 'theme') { return false; } $row = new StdClass(); $row->id = $id; $element =& $xmlDoc->getElementsByPath('name', 1); $row->name = $element->getText(); $element =& $xmlDoc->getElementsByPath('creationDate', 1); $row->creationdate = $element ? $element->getText() : 'Unknown'; $element =& $xmlDoc->getElementsByPath('author', 1); $row->author = $element ? $element->getText() : 'Unknown'; $element =& $xmlDoc->getElementsByPath('copyright', 1); $row->copyright = $element ? $element->getText() : ''; $element =& $xmlDoc->getElementsByPath('authorEmail', 1); $row->authorEmail = $element ? $element->getText() : ''; $element =& $xmlDoc->getElementsByPath('authorUrl', 1); $row->authorUrl = $element ? $element->getText() : ''; $element =& $xmlDoc->getElementsByPath('version', 1); $row->version = $element ? $element->getText() : ''; $element =& $xmlDoc->getElementsByPath('description', 1); $row->description = $element ? trim($element->getText()) : ''; $row->mosname = strtolower(str_replace(' ', '_', $row->name)); // Get info from db if ($row->mosname == $_DOCMAN->getCfg('icon_theme')) { $row->published = 1; } else { $row->published = 0; } $row->checked_out = 0; return $row; }
function getXML($xmlfile, $element_name) { jimport( 'joomla.factory' ); jimport('domit.xml_domit_lite_include'); $xmlDoc = new DOMIT_Lite_Document(); $xmlDoc->resolveErrors(true); if (!@$xmlDoc->loadXML($xmlfile)) { return "Could not connect"; } $element = & $xmlDoc->documentElement; $element = & $xmlDoc->getElementsByPath($element_name, 1); $result = $element ? $element->getText() : ''; return $result; } ?>
function get_signature($order_id, $delivery_date) { global $vmLogger; global $VM_LANG, $mosConfig_absolute_path; /* Retrieve waybill information from database */ $dbl = new ps_DB(); $q = "SELECT tracking_number, label_is_generated, is_international, "; $q .= "have_signature "; $q .= "FROM #__{vm}_shipping_label "; $q .= "WHERE order_id = '" . $order_id . "'"; $dbl->query($q); if (!$dbl->next_record() || !$dbl->f("label_is_generated")) { return "couldn't find label info for order #" . $order_id; } if ($dbl->f('have_signature')) { return true; } $tracking_number = $dbl->f('tracking_number'); require_once CLASSPATH . "shipping/" . __CLASS__ . ".cfg.php"; $dhl_url = "https://eCommerce.airborne.com/"; if (DHL_TEST_MODE == 'TRUE') { $dhl_url .= "ApiLandingTest.asp"; } else { $dhl_url .= "ApiLanding.asp"; } require_once $mosConfig_absolute_path . '/includes/domit/xml_domit_lite_include.php'; $xmlReq = new DOMIT_Lite_Document(); $xmlReq->setXMLDeclaration('<?xml version="1.0"?>'); $root =& $xmlReq->createElement('eCommerce'); $root->setAttribute('action', 'Request'); $root->setAttribute('version', '1.1'); $xmlReq->setDocumentElement($root); $requestor =& $xmlReq->createElement('Requestor'); $id =& $xmlReq->createElement('ID'); $id->setText(DHL_ID); $requestor->appendChild($id); $password =& $xmlReq->createElement('Password'); $password->setText(DHL_PASSWORD); $requestor->appendChild($password); $root->appendChild($requestor); /* Signature Request */ $signature =& $xmlReq->createElement('Signature'); $signature->setAttribute('action', 'Get'); $signature->setAttribute('version', '1.0'); $shipment =& $xmlReq->createElement('Shipment'); $nbr =& $xmlReq->createElement('TrackingNbr'); $nbr->setText($tracking_number); $shipment->appendChild($nbr); $delivery =& $xmlReq->createElement('Delivery'); $date =& $xmlReq->createElement('Date'); $start =& $xmlReq->createElement('Start'); $start->setText($delivery_date); $date->appendChild($start); $end =& $xmlReq->createElement('End'); $end->setText($delivery_date); $date->appendChild($end); $delivery->appendChild($date); $shipment->appendChild($delivery); $signature->appendChild($shipment); $root->appendChild($signature); // $vmLogger->err($xmlReq->toNormalizedString()); if (function_exists("curl_init")) { $CR = curl_init(); curl_setopt($CR, CURLOPT_URL, $dhl_url); curl_setopt($CR, CURLOPT_POST, 1); curl_setopt($CR, CURLOPT_FAILONERROR, true); curl_setopt($CR, CURLOPT_POSTFIELDS, $xmlReq->toString()); curl_setopt($CR, CURLOPT_RETURNTRANSFER, 1); $xmlResult = curl_exec($CR); $error = curl_error($CR); curl_close($CR); if (!empty($error)) { return false; } } // XML Parsing $xmlResp = new DOMIT_Lite_Document(); if (!$xmlResp->parseXML($xmlResult, false, true)) { return false; } // $vmLogger->err($xmlResp->toNormalizedString()); // Check for success or failure. $result_code_list =& $xmlResp->getElementsByPath('//Result/Code'); $result_code =& $result_code_list->item(0); $result_desc_list =& $xmlResp->getElementsByPath('//Result/Desc'); $result_desc =& $result_desc_list->item(0); if ($result_code == NULL) { $vmLogger->debug($VM_LANG->_('PHPSHOP_SHIPPING_METHOD_DHL_MISSING_RESULT') . "\n" . $xmlResp->toNormalizedString()); return false; } /* 0 is the code for success with viewing a signature. */ if ($result_code->getText() != 0) { $err_msg = '<br /><span class="message">' . $result_desc->getText() . ' [code ' . $result_code->getText() . ']' . '</span>'; // display an error line for each fault $fault_node_list =& $xmlResp->getElementsByPath('//Faults/Fault'); if ($fault_node_list->getLength() > 0) { $err_msg .= '<ul>'; } for ($i = 0; $i < $fault_node_list->getLength(); $i++) { $fault_node =& $fault_node_list->item($i); $fault_code_node_list =& $fault_node->getElementsByTagName('Code'); $fault_desc_node_list =& $fault_node->getElementsByTagName('Desc'); $fault_code_node =& $fault_code_node_list->item(0); $fault_desc_node =& $fault_desc_node_list->item(0); $err_msg .= '<li>' . $fault_desc_node->getText() . ' [code ' . $fault_code_node->getText() . ']</li>'; } if ($fault_node_list->getLength() > 0) { $err_msg .= '</ul>'; } // echo $err_msg; return false; } $signature_image_node_list =& $xmlResp->getElementsByPath('//Signature/Image'); $signature_image_node =& $signature_image_node_list->item(0); if ($signature_image_node == NULL) { return false; } $signature_image = $signature_image_node->getText(); /* * insert signature image into database and mark that the signature * has been retrieved. */ $q = "UPDATE #__{vm}_shipping_label "; $q .= "SET "; $q .= "have_signature='1', "; $q .= "signature_image='" . $signature_image . "' "; $q .= "WHERE order_id = '" . $order_id . "'"; $dbnl = new ps_DB(); $dbnl->query($q); $dbnl->next_record(); return true; }
/** * @param string The name of the default text area is a setup file is not found * @return string HTML */ function render($name = 'params', $method = 'Standard') { if ($this->_path) { if (!is_object($this->_xmlElem)) { $xmlDoc = new DOMIT_Lite_Document(); $xmlDoc->resolveErrors(true); if ($xmlDoc->loadXML($this->_path, false, true)) { $element =& $xmlDoc->documentElement; if (($element->getTagName() == 'form' or $element->getTagName() == 'install') && $element->getAttribute("type") == $this->_type) { if ($element =& $xmlDoc->getElementsByPath('params', 1)) { $this->_xmlElem =& $element; } } } } } if (is_object($this->_xmlElem)) { return call_user_func(array($this, '_render' . $method), $this->_xmlElem, $name); } else { return "<textarea name=\"" . $name . "\" cols=\"40\" rows=\"10\" class=\"text_area\">" . $this->_raw . "</textarea>"; } }