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;
}
示例#2
0
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;
} ?>
示例#3
0
文件: dhl.php 项目: noikiy/owaspbwa
 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>";
     }
 }