From 6c495b6ba80e06f1c0584dadf432ee95e1d023ae Mon Sep 17 00:00:00 2001 From: Julien Hoarau Date: Mon, 23 May 2016 12:06:57 +0200 Subject: [PATCH] Module update version 2.1.7 --- AdminMondialRelay.php | 274 +- ajax.php | 150 +- classes/IMondialRelayWSMethod.php | 40 +- classes/MRCreateTickets.php | 1184 +-- classes/MRDownloadPDF.php | 288 +- classes/MRGetRelayPoint.php | 544 +- classes/MRGetTickets.php | 430 +- classes/MRManagement.php | 298 +- classes/MRRelayDetail.php | 448 +- classes/MRTools.php | 444 +- classes/index.php | 4 +- classes/lib/changelog | 648 ++ classes/lib/class.nusoap_base.php | 996 ++ classes/lib/class.soap_fault.php | 90 + classes/lib/class.soap_parser.php | 643 ++ classes/lib/class.soap_server.php | 1127 +++ classes/lib/class.soap_transport_http.php | 1307 +++ classes/lib/class.soap_val.php | 107 + classes/lib/class.soapclient.php | 991 ++ classes/lib/class.wsdl.php | 1938 ++++ classes/lib/class.wsdlcache.php | 209 + classes/lib/class.xmlschema.php | 973 ++ classes/lib/nusoap.php | 8148 +++++++++++++++++ classes/lib/nusoapmime.php | 501 + classes/test.php | 70 + config.xml | 20 +- config_fr.xml | 12 + connexion.php | 55 +- cron.php | 66 +- css/index.php | 6 +- docs/index.php | 6 +- docs/install.pdf | Bin 601127 -> 2343025 bytes errorCode.php | 144 +- fr.php | 2 + img/icones/index.php | 4 +- img/index.php | 4 +- index.php | 4 +- js/common.js | 135 + js/index.php | 4 +- js/mondialrelay.js | 57 +- js/mondialrelay_widget.js | 491 +- logo.gif | Bin 678 -> 1035 bytes logo.png | Bin 3262 -> 2305 bytes mails/en/index.php | 4 +- mails/fr/index.php | 4 +- mails/index.php | 4 +- mondialrelay.php | 2441 ++--- sql/index.php | 4 +- sql/mrInstall.sql | 2 +- upgrade/index.php | 4 +- upgrade/install-1.8.0.php | 190 +- upgrade/install-1.8.3.php | 14 +- upgrade/install-2.0.6.php | 22 +- upgrade/install-2.1.7.php | 31 + views/index.php | 4 +- views/templates/admin/index.php | 4 +- views/templates/front/checkout_process.tpl | 11 +- .../front/checkout_process_widget.tpl | 15 +- views/templates/front/header.tpl | 3 +- views/templates/front/header_widget.tpl | 3 +- views/templates/front/index.php | 4 +- views/templates/index.php | 4 +- 62 files changed, 21824 insertions(+), 3806 deletions(-) create mode 100644 classes/lib/changelog create mode 100644 classes/lib/class.nusoap_base.php create mode 100644 classes/lib/class.soap_fault.php create mode 100644 classes/lib/class.soap_parser.php create mode 100644 classes/lib/class.soap_server.php create mode 100644 classes/lib/class.soap_transport_http.php create mode 100644 classes/lib/class.soap_val.php create mode 100644 classes/lib/class.soapclient.php create mode 100644 classes/lib/class.wsdl.php create mode 100644 classes/lib/class.wsdlcache.php create mode 100644 classes/lib/class.xmlschema.php create mode 100644 classes/lib/nusoap.php create mode 100644 classes/lib/nusoapmime.php create mode 100644 classes/test.php create mode 100644 config_fr.xml create mode 100644 js/common.js create mode 100644 upgrade/install-2.1.7.php diff --git a/AdminMondialRelay.php b/AdminMondialRelay.php index 8005fcd..37ac44c 100644 --- a/AdminMondialRelay.php +++ b/AdminMondialRelay.php @@ -30,141 +30,141 @@ class AdminMondialRelay extends AdminTab { - private $mondialrelay = null; - - public $post_errors = array(); - - public function __construct() - { - $this->mondialrelay = new MondialRelay(); - - $this->table = 'mr_selected'; - - parent::__construct(); - $this->context = Context::getContext(); - $datas = array( - 'display_header' => true, - 'display_header_javascript' => true, - 'display_footer' => true, - ); - - $this->context->smarty->assign($datas); - } - - private function displayOrdersTable() - { - $order_state = new OrderState((int)(Configuration::get('MONDIAL_RELAY_ORDER_STATE')), $this->context->language->id); - $orders = MondialRelay::getOrders(array(), MondialRelay::NO_FILTER, $this->mondialrelay->account_shop['MR_WEIGHT_COEFFICIENT']); - - // Simulate a ticket generation - $MRCreateTicket = new MRCreateTickets(array( - 'orderIdList' => null, - 'totalOrder' => null, - 'weightList' => null - ), - $this->mondialrelay - ); - if (is_array($orders) && count($orders)) - foreach ($orders as &$order) - { - $order['display_total_price'] = Tools::displayPrice($order['total'], new Currency($order['id_currency'])); - $order['display_shipping_price'] = Tools::displayPrice($order['shipping'], new Currency($order['id_currency'])); - if (version_compare(_PS_VERSION_, '1.5.5', '<')) - $order['display_date'] = Tools::displayDate($order['date'], $this->context->language->id); - else - $order['display_date'] = Tools::displayDate($order['date']); - $order['weight'] = (!empty($order['mr_weight']) && $order['mr_weight'] > 0) ? $order['mr_weight'] : $order['order_weight']; - } - - $controller = (_PS_VERSION_ < '1.5') ? 'AdminContact' : 'AdminStores'; - - $this->context->smarty->assign(array( - 'MR_token_admin_module' => Tools::getAdminToken('AdminModules'.(int)(Tab::getIdFromClassName('AdminModules')).(int)$this->context->employee->id), - 'MR_token_admin_contact' => array( - 'controller_name' => $controller, - 'token' => Tools::getAdminToken($controller.(int)(Tab::getIdFromClassName($controller)).(int)$this->context->employee->id)), - 'MR_token_admin_orders' => Tools::getAdminToken('AdminOrders'.(int)(Tab::getIdFromClassName('AdminOrders')).(int)$this->context->employee->id), - 'MR_order_state_name' => $order_state->name, - 'MR_orders' => $orders, - 'MR_PS_IMG_DIR_' => _PS_IMG_DIR_, - 'MR_errors_type' => $MRCreateTicket->checkPreValidation()) - ); - - unset($order_state); - echo $this->mondialrelay->fetchTemplate('/views/templates/admin/', 'generate_tickets'); - } - - public function displayhistoriqueForm() - { - $query = 'SELECT * FROM `'._DB_PREFIX_.'mr_history` ORDER BY `id` DESC ;'; - $history = Db::getInstance()->executeS($query); - - foreach ($history as &$item) - $item['url_10x15'] = str_replace('format=A4', 'format=10x15', $item['url_a4']); - - $this->context->smarty->assign(array( - 'MR_histories' => $history) - ); - echo $this->mondialrelay->fetchTemplate('/views/templates/admin/', 'history'); - } - - public function displaySettings($post_action) - { - $curr_order_state = new OrderState((int)$this->mondialrelay->account_shop['MR_ORDER_STATE']); - $order_state = array( - 'id_order_state' => $this->mondialrelay->account_shop['MR_ORDER_STATE'], - 'name' => $curr_order_state->name[$this->context->language->id] - ); - - $this->context->smarty->assign(array( - 'MR_token_admin_mondialrelay' => Tools::getAdminToken('AdminMondialRelay'.(int)(Tab::getIdFromClassName('AdminMondialRelay')).(int)$this->context->employee->id), - 'MR_account_set' => MondialRelay::isAccountSet(), - 'MR_order_state' => $order_state, - 'MR_orders_states_list' => OrderState::getOrderStates($this->context->language->id), - 'MR_form_action' => $post_action, - 'MR_error_list' => $this->post_errors - )); - - echo $this->mondialrelay->fetchTemplate('/views/templates/admin/', 'settings'); - } - - public function postProcess() - { - $post_action = array( - 'type' => Tools::getValue('MR_action_name'), - 'message_success' => $this->l('Action Succeed'), - 'had_errors' => false - ); - - parent::postProcess(); - - if (Tools::isSubmit('submit_order_state')) - if (($order_state = (int)Tools::getValue('id_order_state'))) - { - $this->mondialrelay->account_shop['MR_ORDER_STATE'] = $order_state; - - if ($this->mondialrelay->updateAccountShop()) - $post_action['message_success'] = $this->l('Order State has been updated'); - else - $this->post_errors[] = $this->l('Cannot Update the account shop'); - } - - if (count($this->post_errors)) - $post_action['had_errors'] = true; - - return $post_action; - } - - public function display() - { - - $post_action = count($_POST) ? $this->postProcess() : null; - - $this->displaySettings($post_action); - if (MondialRelay::isAccountSet() && (int)$this->mondialrelay->account_shop['MR_ORDER_STATE']) - { - $this->displayOrdersTable(); - $this->displayhistoriqueForm(); - } - } + private $mondialrelay = null; + + public $post_errors = array(); + + public function __construct() + { + $this->mondialrelay = new MondialRelay(); + + $this->table = 'mr_selected'; + + parent::__construct(); + $this->context = Context::getContext(); + $datas = array( + 'display_header' => true, + 'display_header_javascript' => true, + 'display_footer' => true, + ); + + $this->context->smarty->assign($datas); + } + + private function displayOrdersTable() + { + $order_state = new OrderState((int)(Configuration::get('MONDIAL_RELAY_ORDER_STATE')), $this->context->language->id); + $orders = MondialRelay::getOrders(array(), MondialRelay::NO_FILTER, $this->mondialrelay->account_shop['MR_WEIGHT_COEFFICIENT']); + + // Simulate a ticket generation + $MRCreateTicket = new MRCreateTickets(array( + 'orderIdList' => null, + 'totalOrder' => null, + 'weightList' => null + ), + $this->mondialrelay + ); + if (is_array($orders) && count($orders)) + foreach ($orders as &$order) + { + $order['display_total_price'] = Tools::displayPrice($order['total'], new Currency($order['id_currency'])); + $order['display_shipping_price'] = Tools::displayPrice($order['shipping'], new Currency($order['id_currency'])); + if (version_compare(_PS_VERSION_, '1.5.5', '<')) + $order['display_date'] = Tools::displayDate($order['date'], $this->context->language->id); + else + $order['display_date'] = Tools::displayDate($order['date']); + $order['weight'] = (!empty($order['mr_weight']) && $order['mr_weight'] > 0) ? $order['mr_weight'] : $order['order_weight']; + } + + $controller = (_PS_VERSION_ < '1.5') ? 'AdminContact' : 'AdminStores'; + + $this->context->smarty->assign(array( + 'MR_token_admin_module' => Tools::getAdminToken('AdminModules'.(int)(Tab::getIdFromClassName('AdminModules')).(int)$this->context->employee->id), + 'MR_token_admin_contact' => array( + 'controller_name' => $controller, + 'token' => Tools::getAdminToken($controller.(int)(Tab::getIdFromClassName($controller)).(int)$this->context->employee->id)), + 'MR_token_admin_orders' => Tools::getAdminToken('AdminOrders'.(int)(Tab::getIdFromClassName('AdminOrders')).(int)$this->context->employee->id), + 'MR_order_state_name' => $order_state->name, + 'MR_orders' => $orders, + 'MR_PS_IMG_DIR_' => _PS_IMG_DIR_, + 'MR_errors_type' => $MRCreateTicket->checkPreValidation()) + ); + + unset($order_state); + echo $this->mondialrelay->fetchTemplate('/views/templates/admin/', 'generate_tickets'); + } + + public function displayhistoriqueForm() + { + $query = 'SELECT * FROM `'._DB_PREFIX_.'mr_history` ORDER BY `id` DESC ;'; + $history = Db::getInstance()->executeS($query); + + foreach ($history as &$item) + $item['url_10x15'] = str_replace('format=A4', 'format=10x15', $item['url_a4']); + + $this->context->smarty->assign(array( + 'MR_histories' => $history) + ); + echo $this->mondialrelay->fetchTemplate('/views/templates/admin/', 'history'); + } + + public function displaySettings($post_action) + { + $curr_order_state = new OrderState((int)$this->mondialrelay->account_shop['MR_ORDER_STATE']); + $order_state = array( + 'id_order_state' => $this->mondialrelay->account_shop['MR_ORDER_STATE'], + 'name' => $curr_order_state->name[$this->context->language->id] + ); + + $this->context->smarty->assign(array( + 'MR_token_admin_mondialrelay' => Tools::getAdminToken('AdminMondialRelay'.(int)(Tab::getIdFromClassName('AdminMondialRelay')).(int)$this->context->employee->id), + 'MR_account_set' => MondialRelay::isAccountSet(), + 'MR_order_state' => $order_state, + 'MR_orders_states_list' => OrderState::getOrderStates($this->context->language->id), + 'MR_form_action' => $post_action, + 'MR_error_list' => $this->post_errors + )); + + echo $this->mondialrelay->fetchTemplate('/views/templates/admin/', 'settings'); + } + + public function postProcess() + { + $post_action = array( + 'type' => Tools::getValue('MR_action_name'), + 'message_success' => $this->l('Action Succeed'), + 'had_errors' => false + ); + + parent::postProcess(); + + if (Tools::isSubmit('submit_order_state')) + if (($order_state = (int)Tools::getValue('id_order_state'))) + { + $this->mondialrelay->account_shop['MR_ORDER_STATE'] = $order_state; + + if ($this->mondialrelay->updateAccountShop()) + $post_action['message_success'] = $this->l('Order State has been updated'); + else + $this->post_errors[] = $this->l('Cannot Update the account shop'); + } + + if (count($this->post_errors)) + $post_action['had_errors'] = true; + + return $post_action; + } + + public function display() + { + + $post_action = count($_POST) ? $this->postProcess() : null; + + $this->displaySettings($post_action); + if (MondialRelay::isAccountSet() && (int)$this->mondialrelay->account_shop['MR_ORDER_STATE']) + { + $this->displayOrdersTable(); + $this->displayhistoriqueForm(); + } + } } diff --git a/ajax.php b/ajax.php index 753a007..4c0d9f4 100644 --- a/ajax.php +++ b/ajax.php @@ -32,19 +32,20 @@ */ /* -* Clean displayed content for Admin ajax query +* Clean displayed content for Admin ajax query */ -@ob_clean(); +if ( ob_get_level() && ob_get_length() > 0) + @ob_clean(); /* -* Front Ajax query, need the front cookie and MR class -* When it's back query, the PS core made the work +* Front Ajax query, need the front cookie and MR class +* When it's back query, the PS core made the work */ if (!defined('_PS_ADMIN_DIR_')) { - require_once(realpath(dirname(__FILE__).'/../../config/config.inc.php')); - require_once(realpath(dirname(__FILE__).'/../../init.php')); - require_once(dirname(__FILE__).'/mondialrelay.php'); + require_once(realpath(dirname(__FILE__).'/../../config/config.inc.php')); + require_once(realpath(dirname(__FILE__).'/../../init.php')); + require_once(dirname(__FILE__).'/mondialrelay.php'); } $mondialrelay = isset($this) ? $this : new Mondialrelay(); @@ -62,18 +63,18 @@ /* Access page List liable to the generated token*/ $accessPageList = array( - MondialRelay::getToken('front') => array( - 'MRGetRelayPoint', - 'addSelectedCarrierToDB' - ), - MondialRelay::getToken('back') => array( - 'MRGetTickets', - 'MRCreateTickets', - 'MRDeleteHistory', - 'uninstallDetail', - 'DeleteHistory', - 'MRDownloadPDF' - ) + MondialRelay::getToken('front') => array( + 'MRGetRelayPoint', + 'addSelectedCarrierToDB' + ), + MondialRelay::getToken('back') => array( + 'MRGetTickets', + 'MRCreateTickets', + 'MRDeleteHistory', + 'uninstallDetail', + 'DeleteHistory', + 'MRDownloadPDF' + ) ); $params = array(); @@ -82,73 +83,74 @@ /* If the method name associated to the token received doesn't match with*/ /* the list, then we kill the request*/ if (!isset($accessPageList[$token]) || !in_array($method, $accessPageList[$token])) - exit(); + exit(); /* Method name allow to instanciate his object to properly call the*/ /* implemented interface method and do his job*/ switch ($method) { - case 'MRCreateTickets': - $params['orderIdList'] = Tools::getValue('order_id_list'); - $params['totalOrder'] = Tools::getValue('numSelected'); - $params['weightList'] = Tools::getValue('weight_list'); - $params['insuranceList'] = Tools::getValue('insurance_list'); - break; - case 'MRGetTickets': - $params['detailedExpeditionList'] = Tools::getValue('detailedExpeditionList'); - break; - case 'MRDownloadPDF': - $params['Expeditions'] = Tools::getValue('detailedExpeditionList'); - break; - case 'DeleteHistory': - $params['historyIdList'] = Tools::getValue('history_id_list'); - break; - case 'uninstallDetail': - $params['action'] = Tools::getValue('action'); - break; - case 'MRGetRelayPoint': - $params['id_carrier'] = Tools::getValue('id_carrier'); - $params['weight'] = Context::getContext()->cart->getTotalWeight(); - $params['id_address_delivery'] = Context::getContext()->cart->id_address_delivery; - break; - case 'addSelectedCarrierToDB': - $params['id_carrier'] = Tools::getValue('id_carrier'); - $params['id_cart'] = Context::getContext()->cart->id; - $params['id_customer'] = Context::getContext()->customer->id; - $params['id_mr_method'] = Tools::getValue('id_mr_method'); - $params['relayPointInfo'] = Tools::getValue('relayPointInfo'); - break; - default: + case 'MRCreateTickets': + $params['orderIdList'] = Tools::getValue('order_id_list'); + $params['totalOrder'] = Tools::getValue('numSelected'); + $params['weightList'] = Tools::getValue('weight_list'); + $params['insuranceList'] = Tools::getValue('insurance_list'); + break; + case 'MRGetTickets': + $params['detailedExpeditionList'] = Tools::getValue('detailedExpeditionList'); + break; + case 'MRDownloadPDF': + $params['Expeditions'] = Tools::getValue('detailedExpeditionList'); + break; + case 'DeleteHistory': + $params['historyIdList'] = Tools::getValue('history_id_list'); + break; + case 'uninstallDetail': + $params['action'] = Tools::getValue('action'); + break; + case 'MRGetRelayPoint': + $params['id_carrier'] = Tools::getValue('id_carrier'); + $params['mode_liv'] = Tools::getValue('mode_liv'); + $params['weight'] = Context::getContext()->cart->getTotalWeight(); + $params['id_address_delivery'] = Context::getContext()->cart->id_address_delivery; + break; + case 'addSelectedCarrierToDB': + $params['id_carrier'] = Tools::getValue('id_carrier'); + $params['id_cart'] = Context::getContext()->cart->id; + $params['id_customer'] = Context::getContext()->customer->id; + $params['id_mr_method'] = Tools::getValue('id_mr_method'); + $params['relayPointInfo'] = Tools::getValue('relayPointInfo'); + break; + default: } - + /* Try to instanciate the method object name and call the necessaries method*/ try { - if (class_exists($method, false)) - { - /* $this is the current mondialrelay object loaded when use in BO. Use for perf*/ - $obj = new $method($params, $mondialrelay); - - /* Verify that the class implement correctly the interface*/ - /* Else use a Management class to do some ajax stuff*/ - if (($obj instanceof IMondialRelayWSMethod)) - { - $obj->init(); - $obj->send(); - $result = $obj->getResult(); - } - unset($obj); - } - else if (($management = new MRManagement($params)) && method_exists($management, $method)) - $result = $management->{$method}(); - else - throw new Exception('Method Class : '.$method.' can\'t be found'); - unset($management); + if (class_exists($method, false)) + { + /* $this is the current mondialrelay object loaded when use in BO. Use for perf*/ + $obj = new $method($params, $mondialrelay); + + /* Verify that the class implement correctly the interface*/ + /* Else use a Management class to do some ajax stuff*/ + if (($obj instanceof IMondialRelayWSMethod)) + { + $obj->init(); + $obj->send(); + $result = $obj->getResult(); + } + unset($obj); + } + else if (($management = new MRManagement($params)) && method_exists($management, $method)) + $result = $management->{$method}(); + else + throw new Exception('Method Class : '.$method.' can\'t be found'); + unset($management); } catch(Exception $e) { - echo MRTools::jsonEncode(array('other' => array('error' => array($e->getMessage())))); - exit(-1); + echo MRTools::jsonEncode(array('other' => array('error' => array($e->getMessage())))); + exit(-1); } echo MRTools::jsonEncode($result); exit(0); diff --git a/classes/IMondialRelayWSMethod.php b/classes/IMondialRelayWSMethod.php index 0b0e82e..30d19da 100644 --- a/classes/IMondialRelayWSMethod.php +++ b/classes/IMondialRelayWSMethod.php @@ -33,25 +33,25 @@ */ interface IMondialRelayWSMethod { - /* - * Initiate the data needed to be send properly - * Can manage a list of data for multiple request - */ - public function init(); - - /* - * Send one or multiple request to the webservice - */ - public function send(); - - /* - * Get the values with associated fields name - */ - public function getFieldsList(); - - /* - * Get the result of one or multiple send request - */ - public function getResult(); + /* + * Initiate the data needed to be send properly + * Can manage a list of data for multiple request + */ + public function init(); + + /* + * Send one or multiple request to the webservice + */ + public function send(); + + /* + * Get the values with associated fields name + */ + public function getFieldsList(); + + /* + * Get the result of one or multiple send request + */ + public function getResult(); } ?> \ No newline at end of file diff --git a/classes/MRCreateTickets.php b/classes/MRCreateTickets.php index ba9e257..08d7715 100644 --- a/classes/MRCreateTickets.php +++ b/classes/MRCreateTickets.php @@ -35,597 +35,597 @@ */ class MRCreateTickets implements IMondialRelayWSMethod { - public $class_name = __CLASS__; - - private $_fields = array( - 'id_mr_selected' => 0, - 'list' => array( - 'Enseigne' => array( - 'required' => true, - 'value' => '', - 'regexValidation' => '#^[0-9A-Z]{2}[0-9A-Z ]{6}$#'), - 'ModeCol' => array( - 'required' => true, - 'value' => '', - 'regexValidation' => '#^(CCC|CDR|CDS|REL)$#'), - 'ModeLiv' => array( - 'required' => true, - 'value' => '', - 'regexValidation' => '#^(LCC|LD1|LDS|24R|ESP|DRI|HOM)$#'), - 'NDossier' => array( - 'required' => false, - 'value' => '', - 'regexValidation' => '#^(|[0-9A-Z_ -]{0,15})$#'), - 'NClient' => array( - 'required' => false, - 'value' => '', - 'regexValidation' => '#^(|[0-9A-Z]{0,9})$#'), - 'Expe_Langage' => array( - 'required' => true, - 'value' => '', - 'regexValidation' => '#^[A-Z]{2}$#'), - 'Expe_Ad1' => array( - 'required' => true, - 'value' => '', - 'regexValidation' => '#^[0-9A-Z_\-\'., /]{2,32}$#'), - 'Expe_Ad2' => array( - 'required' => false, - 'value' => '', - 'regexValidation' => '#^[0-9A-Z_\-\'., /]{0,32}$#'), - 'Expe_Ad3' => array( - 'required' => true, - 'value' => '', - 'regexValidation' => '#^[0-9A-Z_\-\'., /]{0,32}$#'), - 'Expe_Ad4' => array( - 'required' => false, - 'value' => '', - 'regexValidation' => '#^[0-9A-Z]{2}[0-9A-Z ]{6}$#'), - 'Expe_Ville' => array( - 'required' => true, - 'value' => '', - 'regexValidation' => '#^[A-Z_\-\' 0-9]{2,26}$#'), - 'Expe_CP' => array( - 'required' => true, - 'value' => '', - 'params' => array(), - 'methodValidation' => 'checkZipcodeByCountry'), - 'Expe_Pays' => array( - 'required' => true, - 'value' => '', - 'regexValidation' => '#^[A-Z]{2}$#'), - 'Expe_Tel1' => array( - 'required' => true, - 'value' => '', - 'regexValidation' => '#^((00|\+)[1-9]{2}|0)[0-9][0-9]{7,8}$#'), - 'Expe_Tel2' => array( - 'required' => false, - 'value' => '', - 'regexValidation' => '#^((00|\+)[1-9]{2}|0)[0-9][0-9]{7,8}$#'), - 'Expe_Mail' => array( - 'required' => false, - 'value' => '', - 'regexValidation' => '#^[\w\-\.\@_]{0,70}$#'), - 'Dest_Langage' => array( - 'required' => true, - 'value' => '', - 'regexValidation' => '#^[A-Z]{2}$#'), - 'Dest_Ad1' => array( - 'required' => true, - 'value' => '', - 'regexValidation' => '#^[0-9A-Z_\-\'., /]{2,32}$#'), - 'Dest_Ad2' => array( - 'required' => false, - 'value' => '', - 'regexValidation' => '#^[0-9A-Z_\-\'., /]{2,32}$#'), - 'Dest_Ad3' => array( - 'required' => true, - 'value' => '', - 'regexValidation' => '#^[0-9A-Z_\-\'., /]{2,32}$#'), - 'Dest_Ad4' => array( - 'required' => false, - 'value' => '', - 'regexValidation' => '#^[0-9A-Z_\-\'., /]{0,32}$#'), - 'Dest_Ville' => array( - 'required' => true, - 'value' => '', - 'regexValidation' => '#^[A-Z_\-\' 0-9]{2,26}$#'), - 'Dest_CP' => array( - 'required' => true, - 'value' => '', - 'params' => array(), - 'methodValidation' => 'checkZipcodeByCountry'), - 'Dest_Pays' => array( - 'required' => true, - 'value' => '', - 'regexValidation' => '#^[A-Z]{2}$#'), - 'Dest_Tel1' => array( - 'required' => false, - 'value' => '', - 'regexValidation' => '#^((00|\+)[1-9]{2}|0)[0-9][0-9]{7,8}$#'), - 'Dest_Tel2' => array( - 'required' => false, - 'value' => '', - 'regexValidation' => '#^((00|\+)[1-9]{2}|0)[0-9][0-9]{7,8}$#'), - 'Dest_Mail' => array( - 'required' => false, - 'value' => '', - 'regexValidation' => '#^[\w\-\.\@_]{0,70}$#'), - 'Poids' => array( - 'required' => true, - 'value' => '', - 'regexValidation' => '#^[0-9]{3,7}$#'), - 'Longueur' => array( - 'required' => false, - 'value' => '', - 'regexValidation' => '#^[0-9]{0,3}$#'), - 'Taille' => array( - 'required' => false, - 'value' => '', - 'regexValidation' => '#^(XS|S|M|L|XL|XXL|3XL)$#'), - 'NbColis' => array( - 'required' => true, - 'value' => '', - 'regexValidation' => '#^[0-9]{1,2}$#'), - 'CRT_Valeur' => array( - 'required' => true, - 'value' => '', - 'regexValidation' => '#^[0-9]{1,7}$#'), - 'CRT_Devise' => array( - 'required' => false, - 'value' => '', - 'regexValidation' => '#^(|EUR)$#'), - 'Exp_Valeur' => array( - 'required' => false, - 'value' => '', - 'regexValidation' => '#^[0-9]{0,7}$#'), - 'Exp_Devise' => array( - 'required' => false, - 'value' => '', - 'regexValidation' => '#^(|EUR)$#'), - 'COL_Rel_Pays' => array( - 'required' => false, - 'value' => '', - 'regexValidation' => '#^[A-Z]{2}$#'), - 'COL_Rel' => array( - 'required' => false, - 'value' => '', - 'regexValidation' => '#^(|[0-9]{6})$#'), - 'LIV_Rel_Pays' => array( - 'required' => false, - 'value' => '', - 'regexValidation' => '#^[A-Z]{2}$#'), - 'LIV_Rel' => array( - 'required' => false, - 'value' => '', - 'regexValidation' => '#^(|[0-9]{6})$#'), - 'TAvisage' => array( - 'required' => false, - 'value' => '', - 'regexValidation' => '#^(|O|N)$#'), - 'TReprise' => array( - 'required' => false, - 'value' => '', - 'regexValidation' => '#^(|O|N)$#'), - 'Montage' => array( - 'required' => false, - 'value' => '', - 'regexValidation' => '#^(|[0-9]{1,3})$#'), - 'TRDV' => array( - 'required' => false, - 'value' => '', - 'regexValidation' => '#^(|O|N)$#'), - 'Assurance' => array( - 'required' => false, - 'value' => '', - 'regexValidation' => '#^(|[0-9A-Z]{1})$#'), - 'Instructions' => array( - 'required' => false, - 'value' => '', - 'regexValidation' => '#^[0-9A-Z_\-\'., /]{0,31}#'), - 'Security' => array( - 'required' => true, - 'value' => '', - 'regexValidation' => '#^[0-9A-Z]{32}$#'), - 'Texte' => array( - 'required' => false, - 'value' => '', - 'regexValidation' => '#^([^<>&\']{3,30})(\(cr\)[^<>&\']{0,30}){0,9}$#'))); - - private $_orderListId = null; - private $_totalOrder = 0; - private $_weightList = null; - private $_insuranceList = null; - private $_mondialrelay = null; - private $_fieldsList = array(); - private $_webServiceKey = ''; - private $_markCode = ''; - - private $_resultList = array( - 'error' => array(), - 'success' => array()); - - private $_webserviceURL = ''; - - public function __construct($params, $object) - { - $this->_orderListId = $params['orderIdList']; - $this->_totalOrder = $params['totalOrder']; - $this->_weightList = $params['weightList']; - $this->_insuranceList = isset($params['insuranceList']) ? $params['insuranceList'] : ''; - $this->_mondialrelay = $object; - $this->_webServiceKey = $this->_mondialrelay->account_shop['MR_KEY_WEBSERVICE']; - $this->_markCode = $this->_mondialrelay->account_shop['MR_CODE_MARQUE']; - $this->class_name = Tools::strtolower($this->class_name); - - $this->_webserviceURL = MondialRelay::MR_URL.'webservice/Web_Services.asmx?WSDL'; - } - - public function __destruct() - { - unset($this->_mondialrelay); - } - - /* - * Build a correct weight format (NNNNN) - */ - private function _weightFormat($weight) - { - return sprintf("%05s", $weight); - } - - /* - * Set the default value to the order paramaters - */ - private function _setRequestDefaultValue() - { - $this->_fields['list']['Enseigne']['value'] = $this->_mondialrelay->account_shop['MR_ENSEIGNE_WEBSERVICE']; - $this->_fields['list']['Expe_Langage']['value'] = $this->_mondialrelay->account_shop['MR_LANGUAGE']; - $this->_fields['list']['Expe_Ad1']['value'] = Configuration::get('PS_SHOP_NAME'); - $this->_fields['list']['Expe_Ad3']['value'] = Configuration::get('PS_SHOP_ADDR1'); - // Deleted, cause to many failed for the process - // $this->_fields['list']['Expe_Ad4']['value'] = Configuration::get('PS_SHOP_ADDR2'); - $this->_fields['list']['Expe_Ville']['value'] = Configuration::get('PS_SHOP_CITY'); - $this->_fields['list']['Expe_CP']['value'] = Configuration::get('PS_SHOP_CODE'); - $this->_fields['list']['Expe_CP']['params']['id_country'] = Configuration::get('PS_COUNTRY_DEFAULT'); - - if (version_compare(_PS_VERSION_, '1.4', '>=')) - { - $this->_fields['list']['Expe_Pays']['value'] = Country::getIsoById(Configuration::get('PS_SHOP_COUNTRY_ID')); - $this->_fields['list']['Expe_CP']['params']['id_country'] = Configuration::get('PS_SHOP_COUNTRY_ID'); - } - else - $this->_fields['list']['Expe_Pays']['value'] = Tools::substr(Configuration::get('PS_SHOP_COUNTRY'), 0, 2); - $this->_fields['list']['Expe_Tel1']['value'] = MRTools::getFormatedPhone(Configuration::get('PS_SHOP_PHONE')); - $this->_fields['list']['Expe_Mail']['value'] = Configuration::get('PS_SHOP_EMAIL'); - $this->_fields['list']['NbColis']['value'] = 1; - $this->_fields['list']['CRT_Valeur']['value'] = 0; - $this->_fields['list']['CRT_Devise']['value'] = 'EUR'; - } - - /* - * Initiate the data needed to be send properly - * Can manage a list of data for multiple request - */ - public function init() - { - if ($this->_totalOrder == 0) - throw new Exception($this->_mondialrelay->l('Please select at least one order', $this->class_name)); - - $this->_setRequestDefaultValue(); - if (count($orderListDetails = $this->_mondialrelay->getOrders($this->_orderListId))) - { - foreach ($orderListDetails as $orderDetail) - { - // Storage temporary - $base = $this->_fields; - $tmp = &$base['list']; - - $deliveriesAddress = new Address($orderDetail['id_address_delivery']); - $customer = new Customer($orderDetail['id_customer']); - - // Store the weight order set by the user - - foreach ($this->_weightList as $orderWeightInfos) - { - $detail = explode('-', $orderWeightInfos); - if (count($detail) == 2 && $detail[1] == $orderDetail['id_order']) - $tmp['Poids']['value'] = (float)$this->_weightFormat($detail[0]); - } - foreach ($this->_insuranceList as $insurance) - { - $detail = explode('-', $insurance); - if (count($detail) == 2 && $detail[1] == $orderDetail['id_order']) - $tmp['Assurance']['value'] = (int)($detail[0]); - else - $tmp['Assurance']['value'] = $orderDetail['mr_ModeAss']; - } - $dest_tel = (!empty($deliveriesAddress->phone)) ? MRTools::getFormatedPhone($deliveriesAddress->phone) : ''; - $dest_tel2 = (!empty($deliveriesAddress->phone_mobile)) ? MRTools::getFormatedPhone($deliveriesAddress->phone_mobile) : ''; - $destIsoCode = Country::getIsoById($deliveriesAddress->id_country); - $tmp['ModeCol']['value'] = $orderDetail['mr_ModeCol']; - $tmp['ModeLiv']['value'] = $orderDetail['mr_ModeLiv']; - $tmp['NDossier']['value'] = $orderDetail['id_order']; - $tmp['NClient']['value'] = $orderDetail['id_customer']; - $tmp['Dest_Langage']['value'] = 'FR'; //Language::getIsoById($orderDetail['id_lang']); - $tmp['Dest_Ad1']['value'] = preg_replace(MRTools::REGEX_CLEAN_ADDR, '', Tools::substr(MRTools::removeAccents($deliveriesAddress->firstname.' '.$deliveriesAddress->lastname), 0, 32)); - $tmp['Dest_Ad2']['value'] = preg_replace(MRTools::REGEX_CLEAN_ADDR, '', Tools::substr(MRTools::removeAccents($deliveriesAddress->address2), 0, 32)); - $tmp['Dest_Ad3']['value'] = preg_replace(MRTools::REGEX_CLEAN_ADDR, '', Tools::substr(MRTools::removeAccents($deliveriesAddress->address1), 0, 32)); - $tmp['Dest_Ville']['value'] = $deliveriesAddress->city; - $tmp['Dest_CP']['value'] = $deliveriesAddress->postcode; - $tmp['Dest_CP']['params']['id_country'] = $deliveriesAddress->id_country; - $tmp['Dest_Pays']['value'] = $destIsoCode; - $tmp['Dest_Tel1']['value'] = $dest_tel; - $tmp['Dest_Tel2']['value'] = $dest_tel2; - $tmp['Dest_Mail']['value'] = $customer->email; - if ($orderDetail['mr_ModeLiv'] != 'LD1' && $orderDetail['mr_ModeLiv'] != 'LDS' && $orderDetail['mr_ModeLiv'] != 'HOM') - { - $tmp['LIV_Rel_Pays']['value'] = $orderDetail['MR_Selected_Pays']; - $tmp['LIV_Rel']['value'] = $orderDetail['MR_Selected_Num']; - } - - // Store the necessary information to the root case table - $base['id_mr_selected'] = $orderDetail['id_mr_selected']; - - // Add the temporary values to a field list for multiple request - $this->_fieldsList[] = $base; - unset($deliveriesAddress); - unset($customer); - } - $this->_generateMD5SecurityKey(); - } - } - - /* - * Generate the MD5 key for each param list - */ - private function _generateMD5SecurityKey() - { - // RootCase is the array case where the main information are stored - // it's an array containing id_mr_selected and an array with the necessary fields - foreach ($this->_fieldsList as &$rootCase) - { - $concatenationValue = ''; - foreach ($rootCase['list'] as $paramName => &$valueDetailed) - if ($paramName != 'Texte' && $paramName != 'Security') - { - // Mac server make an empty string instead of a cleaned string - // TODO : test on windows and linux server - $cleanedString = MRTools::removeAccents($valueDetailed['value']); - $valueDetailed['value'] = !empty($cleanedString) ? Tools::strtoupper($cleanedString) : Tools::strtoupper($valueDetailed['value']); - - // Call a pointer function if exist to do different test - if (isset($valueDetailed['methodValidation']) && method_exists('MRTools', $valueDetailed['methodValidation']) && isset($valueDetailed['params']) && MRTools::$valueDetailed['methodValidation']($valueDetailed['value'], $valueDetailed['params'])) - $concatenationValue .= $valueDetailed['value']; - // Use simple Regex test given by MondialRelay - else if (isset($valueDetailed['regexValidation']) && preg_match($valueDetailed['regexValidation'], $valueDetailed['value'], $matches)) - $concatenationValue .= $valueDetailed['value']; - // If the key is required, we set an error, else it's skipped - else if ((!Tools::strlen($valueDetailed['value']) && $valueDetailed['required']) || Tools::strlen($valueDetailed['value'])) - { - if (empty($valueDetailed['value'])) - $error = $this->_mondialrelay->l('This key', $this->class_name).' ['.$paramName.'] '.$this->_mondialrelay->l('is empty and need to be filled', $this->class_name); - else - $error = 'This key ['.$paramName.'] hasn not a valid value format : '.$valueDetailed['value']; - $this->_resultList['error'][$rootCase['list']['NDossier']['value']][] = $error; - } - } - $concatenationValue .= $this->_webServiceKey; - $rootCase['list']['Security']['value'] = Tools::strtoupper(md5($concatenationValue)); - } - } - - /* - * Update the tables used and send mail with the order history - */ - private function _updateTable($params, $expeditionNum, $ticketURL, $trackingURL, $id_mr_selected) - { - $sql = ' - UPDATE `'._DB_PREFIX_.'mr_selected` - SET `MR_poids` = \''.pSQL($params['Poids']).'\', - `MR_insurance` = \''.pSQL($params['Assurance']).'\', - `exp_number` = \''.pSQL($expeditionNum).'\', - `url_etiquette` = \''.pSQL($ticketURL).'\', - `url_suivi` = \''.pSQL($trackingURL).'\' - WHERE id_mr_selected = '.(int)$id_mr_selected; - Db::getInstance()->execute($sql); - - // NDossier contains the id_order - $order = new Order($params['NDossier']); - - // Update the database for order and orderHistory - $order->shipping_number = $expeditionNum; - $order->update(); - - if (version_compare(_PS_VERSION_, '1.5', '>=')) - { - //Retrieve Order Carrier - $sql = 'SELECT `id_order_carrier` - FROM `'._DB_PREFIX_.'order_carrier` - WHERE `id_order` = '.(int)$order->id; - - $id_order_carrier = Db::getInstance()->getValue($sql); - - if($id_order_carrier) - { - $order_carrier = new OrderCarrier((int)$id_order_carrier); - if(Validate::isLoadedObject($order_carrier)) - { - $order_carrier->tracking_number = pSQL($expeditionNum); - $order_carrier->update(); - } - } - } - - $templateVars = array('{followup}' => $trackingURL); - $orderState = (Configuration::get('PS_OS_SHIPPING')) ? - Configuration::get('PS_OS_SHIPPING') : - _PS_OS_SHIPPING_; - - $history = new OrderHistory(); - $history->id_order = (int)$params['NDossier']; - if (version_compare(_PS_VERSION_, '1.5.2', '>=')) - $history->changeIdOrderState((int)$orderState, $order); - else - $history->changeIdOrderState((int)$orderState, (int)($params['NDossier'])); - $history->id_employee = (isset(Context::getContext()->employee->id) ? (int)Context::getContext()->employee->id : ''); - $history->addWithemail(true, $templateVars); - unset($order); - unset($order_carrier); - unset($history); - } - - /* - * Manage the return value of the webservice, handle the errors or build the - * succeed message - */ - private function _parseResult($client, $result, $params, $id_mr_selected) - { - $errors = &$this->_resultList['error'][$params['NDossier']]; - $success = &$this->_resultList['success'][$params['NDossier']]; - $result = $result->WSI2_CreationEtiquetteResult; - if (($errorNumber = $result->STAT) != 0) - { - $errors[] = $this->_mondialrelay->l('There is an error number : ', $this->class_name).$errorNumber; - $errors[] = $this->_mondialrelay->l('Details : ', $this->class_name). - $this->_mondialrelay->getErrorCodeDetail($errorNumber); - } - else - { - $baseURL = MondialRelay::MR_URL; - $expedition = $result->ExpeditionNum; - $securityKey = Tools::strtoupper(md5('<'.$params['Enseigne'].$this->_markCode. - '>'.$expedition.'<'.$this->_webServiceKey.'>')); - $ticketURL = $baseURL.$result->URL_Etiquette; - $trackingURL = $baseURL. - 'public/permanent/tracking.aspx?ens='.$params['Enseigne'].$this->_markCode.'&exp='.$expedition.'&language='.Configuration::get('PS_LANG_DEFAULT').'&crc='.$securityKey; - - $success['displayExpedition'] = $this->_mondialrelay->l('Expedition Number : ', $this->class_name).$expedition; - $success['displayTicketURL'] = $this->_mondialrelay->l('Ticket URL : ', $this->class_name).$ticketURL; - $success['displayTrackingURL'] = $this->_mondialrelay->l('Tracking URL: ', $this->class_name).$trackingURL; - $success['expeditionNumber'] = $expedition; - - $this->_updateTable($params, $expedition, $ticketURL, $trackingURL, $id_mr_selected); - } - } - - /* - * Send one or multiple request to the webservice - */ - public function send() - { - if ($client = new SoapClient($this->_webserviceURL)) - { - $client->soap_defencoding = 'UTF-8'; - $client->decode_utf8 = false; - - foreach ($this->_fieldsList as $rootCase) - { - $params = $this->_getSimpleParamArray($rootCase['list']); - $result = $client->WSI2_CreationEtiquette($params); - $this->_parseResult($client, $result, $params, $rootCase['id_mr_selected']); - } - unset($client); - Configuration::updateValue('MONDIALRELAY_CONFIGURATION_OK', true); - } - else - throw new Exception($this->_mondialrelay->l('The Mondial Relay webservice is not currently reliable', $this->class_name)); - } - - /* - ** Check if the shop parameter are currently well configured - */ - public function checkPreValidation() - { - $errorList = array('error' => array(), 'warn' => array()); - - $list = array( - 'Expe_Langage' => array( - 'value' => $this->_mondialrelay->account_shop['MR_LANGUAGE'], - 'error' => $this->_mondialrelay->l('Please check your language configuration', $this->class_name)), - 'Expe_Ad1' => array( - 'value' => Configuration::get('PS_SHOP_NAME'), - 'error' => $this->_mondialrelay->l('Please check your shop name configuration', $this->class_name)), - 'Expe_Ad3' => array( - 'value' => Configuration::get('PS_SHOP_ADDR1'), - 'error' => $this->_mondialrelay->l('Please check your address 1 configuration', $this->class_name)), - 'Expe_Ville' => array( - 'value' => Configuration::get('PS_SHOP_CITY'), - 'error' => $this->_mondialrelay->l('Please check your city configuration', $this->class_name)), - 'Expe_CP' => array( - 'value' => Configuration::get('PS_SHOP_CODE'), - 'error' => $this->_mondialrelay->l('Please check your zipcode configuration', $this->class_name)), - 'Expe_Pays' => array( - 'value' => ((version_compare(_PS_VERSION_, '1.4', '>=')) ? - Country::getIsoById(Configuration::get('PS_SHOP_COUNTRY_ID')) : - Tools::substr(Configuration::get('PS_SHOP_COUNTRY'), 0, 2)), - 'error' => $this->_mondialrelay->l('Please check your country configuration', $this->class_name)), - 'Expe_Tel1' => array( - 'value' => MRTools::getFormatedPhone(Configuration::get('PS_SHOP_PHONE')), - 'error' => $this->_mondialrelay->l('Please check your Phone configuration', $this->class_name)), - 'Expe_Mail' => array( - 'value' => Configuration::get('PS_SHOP_EMAIL'), - 'error' => $this->_mondialrelay->l('Please check your mail configuration', $this->class_name))); - - foreach ($list as $name => $tab) - { - // Mac server make an empty string instead of a cleaned string - // TODO : test on windows and linux server - $cleanedString = MRTools::removeAccents($tab['value']); - $tab['value'] = !empty($cleanedString) ? Tools::strtoupper($cleanedString) : Tools::strtoupper($tab['value']); - - if ($name == 'Expe_CP') - { - if (version_compare(_PS_VERSION_, '1.4', '>=')) - { - if (!(MRTools::checkZipcodeByCountry($tab['value'], array( - 'id_country' => Configuration::get('PS_SHOP_COUNTRY_ID'))))) - $errorList['error'][$name] = $tab['error']; - } - else - $errorList['warn'][$name] = $this->_mondialrelay->l('Post code cannot be validated with PrestaShop versions older than 1.4', $this->class_name); - } - else if (isset($this->_fields['list'][$name]['regexValidation']) && - (!preg_match($this->_fields['list'][$name]['regexValidation'], $tab['value'], $matches))) - $errorList['error'][$name] = $tab['error']; - } - return $errorList; - } - - /* - * Get the values with associated fields name - * @fields : array containing multiple values information - */ - private function _getSimpleParamArray($fields) - { - $params = array(); - - foreach ($fields as $keyName => $valueDetailed) - $params[$keyName] = $valueDetailed['value']; - return $params; - } - - /* - * Return the fields list - */ - public function getFieldsList() - { - return $this->_fieldsList['list']; - } - - /* - * Return the result of one or multiple sent requests - */ - public function getResult() - { - return $this->_resultList; - } - - /* - * Return which number order of the list is currently managed - */ - public static function getCurrentRequestUnderTraitment() - { - // TODO: Build a SQL Query to know how many request have been executed - } + public $class_name = __CLASS__; + + private $_fields = array( + 'id_mr_selected' => 0, + 'list' => array( + 'Enseigne' => array( + 'required' => true, + 'value' => '', + 'regexValidation' => '#^[0-9A-Z]{2}[0-9A-Z ]{6}$#'), + 'ModeCol' => array( + 'required' => true, + 'value' => '', + 'regexValidation' => '#^(CCC|CDR|CDS|REL)$#'), + 'ModeLiv' => array( + 'required' => true, + 'value' => '', + 'regexValidation' => '#^(LCC|LD1|LDS|24R|ESP|DRI|HOM)$#'), + 'NDossier' => array( + 'required' => false, + 'value' => '', + 'regexValidation' => '#^(|[0-9A-Z_ -]{0,15})$#'), + 'NClient' => array( + 'required' => false, + 'value' => '', + 'regexValidation' => '#^(|[0-9A-Z]{0,9})$#'), + 'Expe_Langage' => array( + 'required' => true, + 'value' => '', + 'regexValidation' => '#^[A-Z]{2}$#'), + 'Expe_Ad1' => array( + 'required' => true, + 'value' => '', + 'regexValidation' => '#^[0-9A-Z_\-\'., /]{2,32}$#'), + 'Expe_Ad2' => array( + 'required' => false, + 'value' => '', + 'regexValidation' => '#^[0-9A-Z_\-\'., /]{0,32}$#'), + 'Expe_Ad3' => array( + 'required' => true, + 'value' => '', + 'regexValidation' => '#^[0-9A-Z_\-\'., /]{0,32}$#'), + 'Expe_Ad4' => array( + 'required' => false, + 'value' => '', + 'regexValidation' => '#^[0-9A-Z]{2}[0-9A-Z ]{6}$#'), + 'Expe_Ville' => array( + 'required' => true, + 'value' => '', + 'regexValidation' => '#^[A-Z_\-\' 0-9]{2,26}$#'), + 'Expe_CP' => array( + 'required' => true, + 'value' => '', + 'params' => array(), + 'methodValidation' => 'checkZipcodeByCountry'), + 'Expe_Pays' => array( + 'required' => true, + 'value' => '', + 'regexValidation' => '#^[A-Z]{2}$#'), + 'Expe_Tel1' => array( + 'required' => true, + 'value' => '', + 'regexValidation' => '#^((00|\+)[1-9]{2}|0)[0-9][0-9]{7,8}$#'), + 'Expe_Tel2' => array( + 'required' => false, + 'value' => '', + 'regexValidation' => '#^((00|\+)[1-9]{2}|0)[0-9][0-9]{7,8}$#'), + 'Expe_Mail' => array( + 'required' => false, + 'value' => '', + 'regexValidation' => '#^[\w\-\.\@_]{0,70}$#'), + 'Dest_Langage' => array( + 'required' => true, + 'value' => '', + 'regexValidation' => '#^[A-Z]{2}$#'), + 'Dest_Ad1' => array( + 'required' => true, + 'value' => '', + 'regexValidation' => '#^[0-9A-Z_\-\'., /]{2,32}$#'), + 'Dest_Ad2' => array( + 'required' => false, + 'value' => '', + 'regexValidation' => '#^[0-9A-Z_\-\'., /]{2,32}$#'), + 'Dest_Ad3' => array( + 'required' => true, + 'value' => '', + 'regexValidation' => '#^[0-9A-Z_\-\'., /]{2,32}$#'), + 'Dest_Ad4' => array( + 'required' => false, + 'value' => '', + 'regexValidation' => '#^[0-9A-Z_\-\'., /]{0,32}$#'), + 'Dest_Ville' => array( + 'required' => true, + 'value' => '', + 'regexValidation' => '#^[A-Z_\-\' 0-9]{2,26}$#'), + 'Dest_CP' => array( + 'required' => true, + 'value' => '', + 'params' => array(), + 'methodValidation' => 'checkZipcodeByCountry'), + 'Dest_Pays' => array( + 'required' => true, + 'value' => '', + 'regexValidation' => '#^[A-Z]{2}$#'), + 'Dest_Tel1' => array( + 'required' => false, + 'value' => '', + 'regexValidation' => '#^((00|\+)[1-9]{2}|0)[0-9][0-9]{7,8}$#'), + 'Dest_Tel2' => array( + 'required' => false, + 'value' => '', + 'regexValidation' => '#^((00|\+)[1-9]{2}|0)[0-9][0-9]{7,8}$#'), + 'Dest_Mail' => array( + 'required' => false, + 'value' => '', + 'regexValidation' => '#^[\w\-\.\@_]{0,70}$#'), + 'Poids' => array( + 'required' => true, + 'value' => '', + 'regexValidation' => '#^[0-9]{3,7}$#'), + 'Longueur' => array( + 'required' => false, + 'value' => '', + 'regexValidation' => '#^[0-9]{0,3}$#'), + 'Taille' => array( + 'required' => false, + 'value' => '', + 'regexValidation' => '#^(XS|S|M|L|XL|XXL|3XL)$#'), + 'NbColis' => array( + 'required' => true, + 'value' => '', + 'regexValidation' => '#^[0-9]{1,2}$#'), + 'CRT_Valeur' => array( + 'required' => true, + 'value' => '', + 'regexValidation' => '#^[0-9]{1,7}$#'), + 'CRT_Devise' => array( + 'required' => false, + 'value' => '', + 'regexValidation' => '#^(|EUR)$#'), + 'Exp_Valeur' => array( + 'required' => false, + 'value' => '', + 'regexValidation' => '#^[0-9]{0,7}$#'), + 'Exp_Devise' => array( + 'required' => false, + 'value' => '', + 'regexValidation' => '#^(|EUR)$#'), + 'COL_Rel_Pays' => array( + 'required' => false, + 'value' => '', + 'regexValidation' => '#^[A-Z]{2}$#'), + 'COL_Rel' => array( + 'required' => false, + 'value' => '', + 'regexValidation' => '#^(|[0-9]{6})$#'), + 'LIV_Rel_Pays' => array( + 'required' => false, + 'value' => '', + 'regexValidation' => '#^[A-Z]{2}$#'), + 'LIV_Rel' => array( + 'required' => false, + 'value' => '', + 'regexValidation' => '#^(|[0-9]{6})$#'), + 'TAvisage' => array( + 'required' => false, + 'value' => '', + 'regexValidation' => '#^(|O|N)$#'), + 'TReprise' => array( + 'required' => false, + 'value' => '', + 'regexValidation' => '#^(|O|N)$#'), + 'Montage' => array( + 'required' => false, + 'value' => '', + 'regexValidation' => '#^(|[0-9]{1,3})$#'), + 'TRDV' => array( + 'required' => false, + 'value' => '', + 'regexValidation' => '#^(|O|N)$#'), + 'Assurance' => array( + 'required' => false, + 'value' => '', + 'regexValidation' => '#^(|[0-9A-Z]{1})$#'), + 'Instructions' => array( + 'required' => false, + 'value' => '', + 'regexValidation' => '#^[0-9A-Z_\-\'., /]{0,31}#'), + 'Security' => array( + 'required' => true, + 'value' => '', + 'regexValidation' => '#^[0-9A-Z]{32}$#'), + 'Texte' => array( + 'required' => false, + 'value' => '', + 'regexValidation' => '#^([^<>&\']{3,30})(\(cr\)[^<>&\']{0,30}){0,9}$#'))); + + private $_orderListId = null; + private $_totalOrder = 0; + private $_weightList = null; + private $_insuranceList = null; + private $_mondialrelay = null; + private $_fieldsList = array(); + private $_webServiceKey = ''; + private $_markCode = ''; + + private $_resultList = array( + 'error' => array(), + 'success' => array()); + + private $_webserviceURL = ''; + + public function __construct($params, $object) + { + $this->_orderListId = $params['orderIdList']; + $this->_totalOrder = $params['totalOrder']; + $this->_weightList = $params['weightList']; + $this->_insuranceList = isset($params['insuranceList']) ? $params['insuranceList'] : ''; + $this->_mondialrelay = $object; + $this->_webServiceKey = $this->_mondialrelay->account_shop['MR_KEY_WEBSERVICE']; + $this->_markCode = $this->_mondialrelay->account_shop['MR_CODE_MARQUE']; + $this->class_name = Tools::strtolower($this->class_name); + + $this->_webserviceURL = MondialRelay::MR_URL.'webservice/Web_Services.asmx?WSDL'; + } + + public function __destruct() + { + unset($this->_mondialrelay); + } + + /* + * Build a correct weight format (NNNNN) + */ + private function _weightFormat($weight) + { + return sprintf("%05s", $weight); + } + + /* + * Set the default value to the order paramaters + */ + private function _setRequestDefaultValue() + { + $this->_fields['list']['Enseigne']['value'] = $this->_mondialrelay->account_shop['MR_ENSEIGNE_WEBSERVICE']; + $this->_fields['list']['Expe_Langage']['value'] = $this->_mondialrelay->account_shop['MR_LANGUAGE']; + $this->_fields['list']['Expe_Ad1']['value'] = Configuration::get('PS_SHOP_NAME'); + $this->_fields['list']['Expe_Ad3']['value'] = Configuration::get('PS_SHOP_ADDR1'); + // Deleted, cause to many failed for the process + // $this->_fields['list']['Expe_Ad4']['value'] = Configuration::get('PS_SHOP_ADDR2'); + $this->_fields['list']['Expe_Ville']['value'] = Configuration::get('PS_SHOP_CITY'); + $this->_fields['list']['Expe_CP']['value'] = Configuration::get('PS_SHOP_CODE'); + $this->_fields['list']['Expe_CP']['params']['id_country'] = Configuration::get('PS_COUNTRY_DEFAULT'); + + if (version_compare(_PS_VERSION_, '1.4', '>=')) + { + $this->_fields['list']['Expe_Pays']['value'] = Country::getIsoById(Configuration::get('PS_SHOP_COUNTRY_ID')); + $this->_fields['list']['Expe_CP']['params']['id_country'] = Configuration::get('PS_SHOP_COUNTRY_ID'); + } + else + $this->_fields['list']['Expe_Pays']['value'] = Tools::substr(Configuration::get('PS_SHOP_COUNTRY'), 0, 2); + $this->_fields['list']['Expe_Tel1']['value'] = MRTools::getFormatedPhone(Configuration::get('PS_SHOP_PHONE')); + $this->_fields['list']['Expe_Mail']['value'] = Configuration::get('PS_SHOP_EMAIL'); + $this->_fields['list']['NbColis']['value'] = 1; + $this->_fields['list']['CRT_Valeur']['value'] = 0; + $this->_fields['list']['CRT_Devise']['value'] = 'EUR'; + } + + /* + * Initiate the data needed to be send properly + * Can manage a list of data for multiple request + */ + public function init() + { + if ($this->_totalOrder == 0) + throw new Exception($this->_mondialrelay->l('Please select at least one order', $this->class_name)); + + $this->_setRequestDefaultValue(); + if (count($orderListDetails = $this->_mondialrelay->getOrders($this->_orderListId))) + { + foreach ($orderListDetails as $orderDetail) + { + // Storage temporary + $base = $this->_fields; + $tmp = &$base['list']; + + $deliveriesAddress = new Address($orderDetail['id_address_delivery']); + $customer = new Customer($orderDetail['id_customer']); + + // Store the weight order set by the user + + foreach ($this->_weightList as $orderWeightInfos) + { + $detail = explode('-', $orderWeightInfos); + if (count($detail) == 2 && $detail[1] == $orderDetail['id_order']) + $tmp['Poids']['value'] = (float)$this->_weightFormat($detail[0]); + } + foreach ($this->_insuranceList as $insurance) + { + $detail = explode('-', $insurance); + if ($detail[1] == $orderDetail['id_order']) { + $tmp['Assurance']['value'] = (count($detail) == 2) ? (int)($detail[0]) : $orderDetail['mr_ModeAss']; + } + + } + $dest_tel = (!empty($deliveriesAddress->phone)) ? MRTools::getFormatedPhone($deliveriesAddress->phone) : ''; + $dest_tel2 = (!empty($deliveriesAddress->phone_mobile)) ? MRTools::getFormatedPhone($deliveriesAddress->phone_mobile) : ''; + $destIsoCode = Country::getIsoById($deliveriesAddress->id_country); + $tmp['ModeCol']['value'] = $orderDetail['mr_ModeCol']; + $tmp['ModeLiv']['value'] = $orderDetail['mr_ModeLiv']; + $tmp['NDossier']['value'] = $orderDetail['id_order']; + $tmp['NClient']['value'] = $orderDetail['id_customer']; + $tmp['Dest_Langage']['value'] = 'FR'; //Language::getIsoById($orderDetail['id_lang']); + $tmp['Dest_Ad1']['value'] = preg_replace(MRTools::REGEX_CLEAN_ADDR, '', Tools::substr(MRTools::removeAccents($deliveriesAddress->firstname.' '.$deliveriesAddress->lastname), 0, 32)); + $tmp['Dest_Ad2']['value'] = preg_replace(MRTools::REGEX_CLEAN_ADDR, '', Tools::substr(MRTools::removeAccents($deliveriesAddress->address2), 0, 32)); + $tmp['Dest_Ad3']['value'] = preg_replace(MRTools::REGEX_CLEAN_ADDR, '', Tools::substr(MRTools::removeAccents($deliveriesAddress->address1), 0, 32)); + $tmp['Dest_Ville']['value'] = $deliveriesAddress->city; + $tmp['Dest_CP']['value'] = $deliveriesAddress->postcode; + $tmp['Dest_CP']['params']['id_country'] = $deliveriesAddress->id_country; + $tmp['Dest_Pays']['value'] = $destIsoCode; + $tmp['Dest_Tel1']['value'] = $dest_tel; + $tmp['Dest_Tel2']['value'] = $dest_tel2; + $tmp['Dest_Mail']['value'] = $customer->email; + if ($orderDetail['mr_ModeLiv'] != 'LD1' && $orderDetail['mr_ModeLiv'] != 'LDS' && $orderDetail['mr_ModeLiv'] != 'HOM') + { + $tmp['LIV_Rel_Pays']['value'] = $orderDetail['MR_Selected_Pays']; + $tmp['LIV_Rel']['value'] = $orderDetail['MR_Selected_Num']; + } + + // Store the necessary information to the root case table + $base['id_mr_selected'] = $orderDetail['id_mr_selected']; + + // Add the temporary values to a field list for multiple request + $this->_fieldsList[] = $base; + unset($deliveriesAddress); + unset($customer); + } + $this->_generateMD5SecurityKey(); + } + } + + /* + * Generate the MD5 key for each param list + */ + private function _generateMD5SecurityKey() + { + // RootCase is the array case where the main information are stored + // it's an array containing id_mr_selected and an array with the necessary fields + foreach ($this->_fieldsList as &$rootCase) + { + $concatenationValue = ''; + foreach ($rootCase['list'] as $paramName => &$valueDetailed) + if ($paramName != 'Texte' && $paramName != 'Security') + { + // Mac server make an empty string instead of a cleaned string + // TODO : test on windows and linux server + $cleanedString = MRTools::removeAccents($valueDetailed['value']); + $valueDetailed['value'] = !empty($cleanedString) ? Tools::strtoupper($cleanedString) : Tools::strtoupper($valueDetailed['value']); + + // Call a pointer function if exist to do different test + if (isset($valueDetailed['methodValidation']) && method_exists('MRTools', $valueDetailed['methodValidation']) && isset($valueDetailed['params']) && MRTools::{$valueDetailed['methodValidation']}($valueDetailed['value'], $valueDetailed['params'])) + $concatenationValue .= $valueDetailed['value']; + // Use simple Regex test given by MondialRelay + else if (isset($valueDetailed['regexValidation']) && preg_match($valueDetailed['regexValidation'], $valueDetailed['value'], $matches)) + $concatenationValue .= $valueDetailed['value']; + // If the key is required, we set an error, else it's skipped + else if ((!Tools::strlen($valueDetailed['value']) && $valueDetailed['required']) || Tools::strlen($valueDetailed['value'])) + { + if (empty($valueDetailed['value'])) + $error = $this->_mondialrelay->l('This key', $this->class_name).' ['.$paramName.'] '.$this->_mondialrelay->l('is empty and need to be filled', $this->class_name); + else + $error = 'This key ['.$paramName.'] hasn not a valid value format : '.$valueDetailed['value']; + $this->_resultList['error'][$rootCase['list']['NDossier']['value']][] = $error; + } + } + $concatenationValue .= $this->_webServiceKey; + $rootCase['list']['Security']['value'] = Tools::strtoupper(md5($concatenationValue)); + } + } + + /* + * Update the tables used and send mail with the order history + */ + private function _updateTable($params, $expeditionNum, $ticketURL, $trackingURL, $id_mr_selected) + { + $sql = ' + UPDATE `'._DB_PREFIX_.'mr_selected` + SET `MR_poids` = \''.pSQL($params['Poids']).'\', + `MR_insurance` = \''.pSQL($params['Assurance']).'\', + `exp_number` = \''.pSQL($expeditionNum).'\', + `url_etiquette` = \''.pSQL($ticketURL).'\', + `url_suivi` = \''.pSQL($trackingURL).'\' + WHERE id_mr_selected = '.(int)$id_mr_selected; + Db::getInstance()->execute($sql); + + // NDossier contains the id_order + $order = new Order($params['NDossier']); + + // Update the database for order and orderHistory + $order->shipping_number = $expeditionNum; + $order->update(); + + if (version_compare(_PS_VERSION_, '1.5', '>=')) + { + //Retrieve Order Carrier + $sql = 'SELECT `id_order_carrier` + FROM `'._DB_PREFIX_.'order_carrier` + WHERE `id_order` = '.(int)$order->id; + + $id_order_carrier = Db::getInstance()->getValue($sql); + + if($id_order_carrier) + { + $order_carrier = new OrderCarrier((int)$id_order_carrier); + if(Validate::isLoadedObject($order_carrier)) + { + $order_carrier->tracking_number = pSQL($expeditionNum); + $order_carrier->update(); + } + } + } + + $templateVars = array('{followup}' => $trackingURL); + $orderState = (Configuration::get('PS_OS_SHIPPING')) ? + Configuration::get('PS_OS_SHIPPING') : + _PS_OS_SHIPPING_; + + $history = new OrderHistory(); + $history->id_order = (int)$params['NDossier']; + if (version_compare(_PS_VERSION_, '1.5.2', '>=')) + $history->changeIdOrderState((int)$orderState, $order); + else + $history->changeIdOrderState((int)$orderState, (int)($params['NDossier'])); + $history->id_employee = (isset(Context::getContext()->employee->id) ? (int)Context::getContext()->employee->id : ''); + $history->addWithemail(true, $templateVars); + unset($order); + unset($order_carrier); + unset($history); + } + + /* + * Manage the return value of the webservice, handle the errors or build the + * succeed message + */ + private function _parseResult($client, $result, $params, $id_mr_selected) + { + $errors = &$this->_resultList['error'][$params['NDossier']]; + $success = &$this->_resultList['success'][$params['NDossier']]; + $result = $result->WSI2_CreationEtiquetteResult; + if (($errorNumber = $result->STAT) != 0) + { + $errors[] = $this->_mondialrelay->l('There is an error number : ', $this->class_name).$errorNumber; + $errors[] = $this->_mondialrelay->l('Details : ', $this->class_name). + $this->_mondialrelay->getErrorCodeDetail($errorNumber); + } + else + { + $baseURL = MondialRelay::MR_URL; + $expedition = $result->ExpeditionNum; + $securityKey = Tools::strtoupper(md5('<'.$params['Enseigne'].$this->_markCode. + '>'.$expedition.'<'.$this->_webServiceKey.'>')); + $ticketURL = $baseURL.$result->URL_Etiquette; + $trackingURL = $baseURL. + 'public/permanent/tracking.aspx?ens='.$params['Enseigne'].$this->_markCode.'&exp='.$expedition.'&language='.Configuration::get('PS_LANG_DEFAULT').'&crc='.$securityKey; + + $success['displayExpedition'] = $this->_mondialrelay->l('Expedition Number : ', $this->class_name).$expedition; + $success['displayTicketURL'] = $this->_mondialrelay->l('Ticket URL : ', $this->class_name).$ticketURL; + $success['displayTrackingURL'] = $this->_mondialrelay->l('Tracking URL: ', $this->class_name).$trackingURL; + $success['expeditionNumber'] = $expedition; + + $this->_updateTable($params, $expedition, $ticketURL, $trackingURL, $id_mr_selected); + } + } + + /* + * Send one or multiple request to the webservice + */ + public function send() + { + if ($client = new SoapClient($this->_webserviceURL)) + { + $client->soap_defencoding = 'UTF-8'; + $client->decode_utf8 = false; + + foreach ($this->_fieldsList as $rootCase) + { + $params = $this->_getSimpleParamArray($rootCase['list']); + $result = $client->WSI2_CreationEtiquette($params); + $this->_parseResult($client, $result, $params, $rootCase['id_mr_selected']); + } + unset($client); + Configuration::updateValue('MONDIALRELAY_CONFIGURATION_OK', true); + } + else + throw new Exception($this->_mondialrelay->l('The Mondial Relay webservice is not currently reliable', $this->class_name)); + } + + /* + ** Check if the shop parameter are currently well configured + */ + public function checkPreValidation() + { + $errorList = array('error' => array(), 'warn' => array()); + + $list = array( + 'Expe_Langage' => array( + 'value' => $this->_mondialrelay->account_shop['MR_LANGUAGE'], + 'error' => $this->_mondialrelay->l('Please check your language configuration', $this->class_name)), + 'Expe_Ad1' => array( + 'value' => Configuration::get('PS_SHOP_NAME'), + 'error' => $this->_mondialrelay->l('Please check your shop name configuration', $this->class_name)), + 'Expe_Ad3' => array( + 'value' => Configuration::get('PS_SHOP_ADDR1'), + 'error' => $this->_mondialrelay->l('Please check your address 1 configuration', $this->class_name)), + 'Expe_Ville' => array( + 'value' => Configuration::get('PS_SHOP_CITY'), + 'error' => $this->_mondialrelay->l('Please check your city configuration', $this->class_name)), + 'Expe_CP' => array( + 'value' => Configuration::get('PS_SHOP_CODE'), + 'error' => $this->_mondialrelay->l('Please check your zipcode configuration', $this->class_name)), + 'Expe_Pays' => array( + 'value' => ((version_compare(_PS_VERSION_, '1.4', '>=')) ? + Country::getIsoById(Configuration::get('PS_SHOP_COUNTRY_ID')) : + Tools::substr(Configuration::get('PS_SHOP_COUNTRY'), 0, 2)), + 'error' => $this->_mondialrelay->l('Please check your country configuration', $this->class_name)), + 'Expe_Tel1' => array( + 'value' => MRTools::getFormatedPhone(Configuration::get('PS_SHOP_PHONE')), + 'error' => $this->_mondialrelay->l('Please check your Phone configuration', $this->class_name)), + 'Expe_Mail' => array( + 'value' => Configuration::get('PS_SHOP_EMAIL'), + 'error' => $this->_mondialrelay->l('Please check your mail configuration', $this->class_name))); + + foreach ($list as $name => $tab) + { + // Mac server make an empty string instead of a cleaned string + // TODO : test on windows and linux server + $cleanedString = MRTools::removeAccents($tab['value']); + $tab['value'] = !empty($cleanedString) ? Tools::strtoupper($cleanedString) : Tools::strtoupper($tab['value']); + + if ($name == 'Expe_CP') + { + if (version_compare(_PS_VERSION_, '1.4', '>=')) + { + if (!(MRTools::checkZipcodeByCountry($tab['value'], array( + 'id_country' => Configuration::get('PS_SHOP_COUNTRY_ID'))))) + $errorList['error'][$name] = $tab['error']; + } + else + $errorList['warn'][$name] = $this->_mondialrelay->l('Post code cannot be validated with PrestaShop versions older than 1.4', $this->class_name); + } + else if (isset($this->_fields['list'][$name]['regexValidation']) && + (!preg_match($this->_fields['list'][$name]['regexValidation'], $tab['value'], $matches))) + $errorList['error'][$name] = $tab['error']; + } + return $errorList; + } + + /* + * Get the values with associated fields name + * @fields : array containing multiple values information + */ + private function _getSimpleParamArray($fields) + { + $params = array(); + + foreach ($fields as $keyName => $valueDetailed) + $params[$keyName] = $valueDetailed['value']; + return $params; + } + + /* + * Return the fields list + */ + public function getFieldsList() + { + return $this->_fieldsList['list']; + } + + /* + * Return the result of one or multiple sent requests + */ + public function getResult() + { + return $this->_resultList; + } + + /* + * Return which number order of the list is currently managed + */ + public static function getCurrentRequestUnderTraitment() + { + // TODO: Build a SQL Query to know how many request have been executed + } } ?> diff --git a/classes/MRDownloadPDF.php b/classes/MRDownloadPDF.php index ebd3bd3..9e3a147 100644 --- a/classes/MRDownloadPDF.php +++ b/classes/MRDownloadPDF.php @@ -32,160 +32,160 @@ */ class MRDownloadPDF implements IMondialRelayWSMethod { - public $class_name = __CLASS__; + public $class_name = __CLASS__; - private $_fields = array( - 'list' => array( - 'Enseigne' => array( - 'required' => true, - 'value' => '', - 'regexValidation' => '#^[0-9A-Z]{2}[0-9A-Z ]{6}$#'), - 'Expeditions' => array( - 'required' => true, - 'value' => '', - 'regexValidation' => '#^[0-9]{8}(;[0-9]{8})*$#'), - 'Langue' => array( - 'required' => true, - 'value' => '', - 'regexValidation' => '#^[A-Z]{2}$#'), - 'Security' => array( - 'required' => true, - 'value' => '', - 'regexValidation' => '#^[0-9A-Z]{32}$#'))); + private $_fields = array( + 'list' => array( + 'Enseigne' => array( + 'required' => true, + 'value' => '', + 'regexValidation' => '#^[0-9A-Z]{2}[0-9A-Z ]{6}$#'), + 'Expeditions' => array( + 'required' => true, + 'value' => '', + 'regexValidation' => '#^[0-9]{8}(;[0-9]{8})*$#'), + 'Langue' => array( + 'required' => true, + 'value' => '', + 'regexValidation' => '#^[A-Z]{2}$#'), + 'Security' => array( + 'required' => true, + 'value' => '', + 'regexValidation' => '#^[0-9A-Z]{32}$#'))); - private $_mondialrelay = null; - private $_fieldsList = array(); - private $_webServiceKey = ''; - private $_markCode = ''; - private $Expeditions = ''; + private $_mondialrelay = null; + private $_fieldsList = array(); + private $_webServiceKey = ''; + private $_markCode = ''; + private $Expeditions = ''; - private $_resultList = array( - 'error' => array(), - 'success' => array()); + private $_resultList = array( + 'error' => array(), + 'success' => array()); - private $_webserviceURL = ''; + private $_webserviceURL = ''; - public function __construct($params, $object) - { - $this->Expeditions = $params['Expeditions']; - $this->_mondialrelay = $object; - $this->_webServiceKey = $this->_mondialrelay->account_shop['MR_KEY_WEBSERVICE']; - $this->_markCode = $this->_mondialrelay->account_shop['MR_CODE_MARQUE']; - $this->class_name = Tools::strtolower($this->class_name); - $this->_webserviceURL = MondialRelay::MR_URL.'webservice/Web_Services.asmx?WSDL'; - } + public function __construct($params, $object) + { + $this->Expeditions = $params['Expeditions']; + $this->_mondialrelay = $object; + $this->_webServiceKey = $this->_mondialrelay->account_shop['MR_KEY_WEBSERVICE']; + $this->_markCode = $this->_mondialrelay->account_shop['MR_CODE_MARQUE']; + $this->class_name = Tools::strtolower($this->class_name); + $this->_webserviceURL = MondialRelay::MR_URL.'webservice/Web_Services.asmx?WSDL'; + } - public function __destruct() - { - unset($this->_mondialrelay); - } + public function __destruct() + { + unset($this->_mondialrelay); + } - /* - * Initiate the data needed to be send properly - * Can manage a list of data for multiple request - */ - public function init() - { - $this->_fields['list']['Enseigne']['value'] = $this->_mondialrelay->account_shop['MR_ENSEIGNE_WEBSERVICE']; - $this->_fields['list']['Expeditions']['value'] = $this->Expeditions; - $this->_fields['list']['Langue']['value'] = $this->_mondialrelay->account_shop['MR_LANGUAGE']; - $this->_fieldsList[] = $this->_fields; - $this->_generateMD5SecurityKey(); - } + /* + * Initiate the data needed to be send properly + * Can manage a list of data for multiple request + */ + public function init() + { + $this->_fields['list']['Enseigne']['value'] = $this->_mondialrelay->account_shop['MR_ENSEIGNE_WEBSERVICE']; + $this->_fields['list']['Expeditions']['value'] = $this->Expeditions; + $this->_fields['list']['Langue']['value'] = $this->_mondialrelay->account_shop['MR_LANGUAGE']; + $this->_fieldsList[] = $this->_fields; + $this->_generateMD5SecurityKey(); + } - /* - * Generate the MD5 key for each param list - */ - private function _generateMD5SecurityKey() - { - foreach ($this->_fieldsList as &$rootCase) - { - $concatenationValue = ''; - foreach ($rootCase['list'] as $paramName => &$valueDetailed) - if ($paramName != 'Texte' && $paramName != 'Security') - { - $valueDetailed['value'] = Tools::strtoupper($valueDetailed['value']); - if (preg_match($valueDetailed['regexValidation'], $valueDetailed['value'], $matches)) - $concatenationValue .= $valueDetailed['value']; - elseif ((!Tools::strlen($valueDetailed['value']) && $valueDetailed['required']) || Tools::strlen($valueDetailed['value'])) - { - $error = $this->_mondialrelay->l('This key').' ['.$paramName.'] '.$this->_mondialrelay->l('hasn\'t a valide value format').' : '.$valueDetailed['value']; - $this->_resultList['error'][] = $error; - } - } - $concatenationValue .= $this->_webServiceKey; - $rootCase['list']['Security']['value'] = Tools::strtoupper(md5($concatenationValue)); - } - } + /* + * Generate the MD5 key for each param list + */ + private function _generateMD5SecurityKey() + { + foreach ($this->_fieldsList as &$rootCase) + { + $concatenationValue = ''; + foreach ($rootCase['list'] as $paramName => &$valueDetailed) + if ($paramName != 'Texte' && $paramName != 'Security') + { + $valueDetailed['value'] = Tools::strtoupper($valueDetailed['value']); + if (preg_match($valueDetailed['regexValidation'], $valueDetailed['value'], $matches)) + $concatenationValue .= $valueDetailed['value']; + elseif ((!Tools::strlen($valueDetailed['value']) && $valueDetailed['required']) || Tools::strlen($valueDetailed['value'])) + { + $error = $this->_mondialrelay->l('This key').' ['.$paramName.'] '.$this->_mondialrelay->l('hasn\'t a valide value format').' : '.$valueDetailed['value']; + $this->_resultList['error'][] = $error; + } + } + $concatenationValue .= $this->_webServiceKey; + $rootCase['list']['Security']['value'] = Tools::strtoupper(md5($concatenationValue)); + } + } - /* - * Manage the return value of the webservice, handle the errors or build the - * succeed message - */ - private function _parseResult($client, $result, $params) - { - $errors = &$this->_resultList['error'][]; - $success = &$this->_resultList['success'][]; - $result = $result->WSI2_GetEtiquettesResult; - if (($errorNumber = $result->STAT) != 0) - { - $errors[] = $this->_mondialrelay->l('There is an error number : ', $this->class_name).$errorNumber; - $errors[] = $this->_mondialrelay->l('Details : ', $this->class_name). - $this->_mondialrelay->getErrorCodeDetail($errorNumber); - } - else - { - $baseURL = 'http://www.mondialrelay.fr'; - $success['URL_PDF_A4'] = $baseURL.$result->URL_PDF_A4; - $success['URL_PDF_A5'] = $baseURL.$result->URL_PDF_A5; - $success['URL_PDF_10x15'] = $baseURL.str_replace('format=A4', 'format=10x15', $result->URL_PDF_A4); - } - } + /* + * Manage the return value of the webservice, handle the errors or build the + * succeed message + */ + private function _parseResult($client, $result, $params) + { + $errors = &$this->_resultList['error'][]; + $success = &$this->_resultList['success'][]; + $result = $result->WSI2_GetEtiquettesResult; + if (($errorNumber = $result->STAT) != 0) + { + $errors[] = $this->_mondialrelay->l('There is an error number : ', $this->class_name).$errorNumber; + $errors[] = $this->_mondialrelay->l('Details : ', $this->class_name). + $this->_mondialrelay->getErrorCodeDetail($errorNumber); + } + else + { + $baseURL = 'http://www.mondialrelay.fr'; + $success['URL_PDF_A4'] = $baseURL.$result->URL_PDF_A4; + $success['URL_PDF_A5'] = $baseURL.$result->URL_PDF_A5; + $success['URL_PDF_10x15'] = $baseURL.str_replace('format=A4', 'format=10x15', $result->URL_PDF_A4); + } + } - /* - * Send one or multiple request to the webservice - */ - public function send() - { - if ($client = new SoapClient($this->_webserviceURL)) - { - $client->soap_defencoding = 'UTF-8'; - $client->decode_utf8 = false; - foreach ($this->_fieldsList as $rootCase) - { - $params = $this->_getSimpleParamArray($rootCase['list']); - $result = $client->WSI2_GetEtiquettes($params); - $this->_parseResult($client, $result, $params); - } - unset($client); - } - else - throw new Exception($this->_mondialrelay->l('The Mondial Relay webservice isn\'t currently reliable')); - } - - /* - * Return the fields list - */ - public function getFieldsList() - { - return $this->_fieldsList['list']; - } + /* + * Send one or multiple request to the webservice + */ + public function send() + { + if ($client = new SoapClient($this->_webserviceURL)) + { + $client->soap_defencoding = 'UTF-8'; + $client->decode_utf8 = false; + foreach ($this->_fieldsList as $rootCase) + { + $params = $this->_getSimpleParamArray($rootCase['list']); + $result = $client->WSI2_GetEtiquettes($params); + $this->_parseResult($client, $result, $params); + } + unset($client); + } + else + throw new Exception($this->_mondialrelay->l('The Mondial Relay webservice isn\'t currently reliable')); + } + + /* + * Return the fields list + */ + public function getFieldsList() + { + return $this->_fieldsList['list']; + } - /* - * Return the result of one or multiple sent requests - */ - public function getResult() - { - return $this->_resultList; - } - - private function _getSimpleParamArray($fields) - { - $params = array(); - - foreach ($fields as $keyName => $valueDetailed) - $params[$keyName] = $valueDetailed['value']; - return $params; - } + /* + * Return the result of one or multiple sent requests + */ + public function getResult() + { + return $this->_resultList; + } + + private function _getSimpleParamArray($fields) + { + $params = array(); + + foreach ($fields as $keyName => $valueDetailed) + $params[$keyName] = $valueDetailed['value']; + return $params; + } } diff --git a/classes/MRGetRelayPoint.php b/classes/MRGetRelayPoint.php index f25a0af..7bbaf87 100644 --- a/classes/MRGetRelayPoint.php +++ b/classes/MRGetRelayPoint.php @@ -35,248 +35,312 @@ */ class MRGetRelayPoint implements IMondialRelayWSMethod { - /*Params is required if you use a pointer function*/ - private $_fields = array( - 'list' => array( - 'Enseigne' => array( - 'required' => true, - 'value' => '', - 'regexValidation' => '#^[0-9A-Z]{2}[0-9A-Z ]{6}$#'), - 'Pays' => array( - 'required' => true, - 'value' => '', - 'regexValidation' => '#^[A-Z]{2}$#'), - 'Ville' => array( - 'required' => false, - 'value' => '', - 'regexValidation' => '#^[A-Z_\-\' 0-9]{2,25}$#'), - 'CP' => array( - 'required' => false, - 'value' => '', - 'params' => array(), - 'methodValidation' => 'checkZipcodeByCountry'), - 'Taille' => array( - 'required' => false, - 'value' => '', - 'regexValidation' => '#^(XS|S|M|L|XL|XXL|3XL)$#'), - 'Poids' => array( - 'required' => false, - 'value' => '', - 'regexValidation' => '#^[0-9]{3,7}$#'), - 'Action' => array( - 'required' => false, - 'value' => '', - 'regexValidation' => '#^(REL|24R|ESP|DRI)$#'), - 'Security' => array( - 'required' => true, - 'value' => '', - 'regexValidation' => '#^[0-9A-Z]{32}$#'))); - - private $_id_address_delivery = 0; - private $_weight = 0; - private $_webServiceKey = ''; - private $_mondialRelay = null; - private $_id_carrier = 0; - private $_id_delivery_country = 0; - - private $_resultList = array( - 'error' => array(), - 'success' => array()); - - private $_webserviceURL; - - public function __construct($params, $object) - { - $this->_mondialRelay = $object; - $this->_id_address_delivery = (int)($params['id_address_delivery']); - $this->_id_carrier = (int)($params['id_carrier']); - $this->_weight = (float)($params['weight']); - $this->_webServiceKey = $this->_mondialRelay->account_shop['MR_KEY_WEBSERVICE']; - $this->_webserviceURL = MondialRelay::MR_URL.'webservice/Web_Services.asmx?WSDL'; - } - - public function __destruct() - { - unset($this->_mondialRelay); - } - - public function init() - { - $address = new Address($this->_id_address_delivery); - $weight = $this->_mondialRelay->account_shop['MR_WEIGHT_COEFFICIENT'] * $this->_weight; - - if (!$address) - throw new Exception($this->_mondialrelay->l('Customer address can\'t be found')); - - $this->_fields['list']['Enseigne']['value'] = $this->_mondialRelay->account_shop['MR_ENSEIGNE_WEBSERVICE']; - $this->_fields['list']['Poids']['value'] = ($weight < 100) ? 100 : $weight; - $this->_fields['list']['Pays']['value'] = trim(Country::getIsoById($address->id_country)); - $this->_fields['list']['Ville']['value'] = trim($address->city); - $this->_fields['list']['CP']['value'] = trim($address->postcode); - $this->_fields['list']['CP']['params']['id_country'] = $address->id_country; - - $this->_generateMD5SecurityKey(); - unset($address); - } - - /* - * Generate the MD5 key for each param list - */ - private function _generateMD5SecurityKey() - { - $concatenationValue = ''; - foreach ($this->_fields['list'] as $paramName => &$valueDetailed) - if ($paramName != 'Texte' && $paramName != 'Security') - { - // Mac server make an empty string instead of a cleaned string - // TODO : test on windows and linux server - $cleanedString = MRTools::removeAccents($valueDetailed['value']); - $valueDetailed['value'] = !empty($cleanedString) ? Tools::strtoupper($cleanedString) : Tools::strtoupper($valueDetailed['value']); + /*Params is required if you use a pointer function*/ + private $_fields = array( + 'list' => array( + 'Enseigne' => array( + 'required' => true, + 'value' => '', + 'regexValidation' => '#^[0-9A-Z]{2}[0-9A-Z ]{6}$#'), + 'Pays' => array( + 'required' => true, + 'value' => '', + 'regexValidation' => '#^[A-Z]{2}$#'), + 'Ville' => array( + 'required' => false, + 'value' => '', + 'regexValidation' => '#^[A-Z_\-\' 0-9]{2,25}$#'), + 'CP' => array( + 'required' => false, + 'value' => '', + 'params' => array(), + 'methodValidation' => 'checkZipcodeByCountry'), + 'Taille' => array( + 'required' => false, + 'value' => '', + 'regexValidation' => '#^(XS|S|M|L|XL|XXL|3XL)$#'), + 'Poids' => array( + 'required' => false, + 'value' => '', + 'regexValidation' => '#^[0-9]{3,7}$#'), + 'Latitude' => array( + 'required' => false, + 'value' => '', + 'regexValidation' => '#^-?[0-9]{2}\.[0-9]{7}$#'), + 'Longitude' => array( + 'required' => false, + 'value' => '', + 'regexValidation' => '#^-?[0-9]{2}\.[0-9]{7}$#'), + 'Action' => array( + 'required' => false, + 'value' => '', + 'regexValidation' => '#^(REL|24R|ESP|DRI)$#'), + 'DelaiEnvoi' => array( + 'required' => false, + 'value' => '', + 'regexValidation' => '#^[0-9]{1,2}$#'), + 'RayonRecherche' => array( + 'required' => false, + 'value' => '', + 'regexValidation' => '#^[0-9]{1,4}$#'), + 'Security' => array( + 'required' => true, + 'value' => '', + 'regexValidation' => '#^[0-9A-Z]{32}$#'))); + + private $_id_address_delivery = 0; + private $_weight = 0; + private $_mode_liv = ''; + private $_webServiceKey = ''; + private $_mondialRelay = null; + private $_id_carrier = 0; + private $_id_delivery_country = 0; + + private $_resultList = array( + 'error' => array(), + 'success' => array()); + + private $_webserviceURL; + + public function __construct($params, $object) + { + $this->_mondialRelay = $object; + $this->_id_address_delivery = (int)($params['id_address_delivery']); + $this->_id_carrier = (int)($params['id_carrier']); + $this->_weight = (float)($params['weight']); + $this->_mode_liv = $params['mode_liv']; + $this->_webServiceKey = $this->_mondialRelay->account_shop['MR_KEY_WEBSERVICE']; + $this->_webserviceURL = MondialRelay::MR_URL.'webservice/Web_Services.asmx?WSDL'; + } + + public function __destruct() + { + unset($this->_mondialRelay); + } + + public function init() + { + $address = new Address($this->_id_address_delivery); + $weight = $this->_mondialRelay->account_shop['MR_WEIGHT_COEFFICIENT'] * $this->_weight; + + if (!$address) + throw new Exception($this->_mondialrelay->l('Customer address can\'t be found')); + + $this->_fields['list']['Enseigne']['value'] = $this->_mondialRelay->account_shop['MR_ENSEIGNE_WEBSERVICE']; + $this->_fields['list']['Poids']['value'] = ($weight < 100) ? 100 : $weight; + $this->_fields['list']['Pays']['value'] = trim(Country::getIsoById($address->id_country)); + $this->_fields['list']['Ville']['value'] = trim($address->city); + $this->_fields['list']['CP']['value'] = trim($address->postcode); + $this->_fields['list']['CP']['params']['id_country'] = $address->id_country; + $this->_fields['list']['Action']['value'] = $this->_mode_liv; - $valueDetailed['value'] = Tools::strtoupper($valueDetailed['value']); - // Call a pointer function if exist to do different test - if (isset($valueDetailed['methodValidation']) && method_exists('MRTools', $valueDetailed['methodValidation']) && isset($valueDetailed['params']) && MRTools::$valueDetailed['methodValidation']($valueDetailed['value'], $valueDetailed['params'])) - $concatenationValue .= $valueDetailed['value']; - // Use simple Regex test given by MondialRelay - else if (isset($valueDetailed['regexValidation']) && preg_match($valueDetailed['regexValidation'], $valueDetailed['value'], $matches)) - $concatenationValue .= $valueDetailed['value']; - // If the key is required, we set an error, else it's skipped - elseif ((!Tools::strlen($valueDetailed['value']) && $valueDetailed['required']) || Tools::strlen($valueDetailed['value'])) - { - $error = $this->_mondialRelay->l('This key').' ['.$paramName.'] '. - $this->_mondialRelay->l('hasn\'t a valide value format').' : '.$valueDetailed['value']; - $this->_resultList['error'][] = $error; - } - } - $concatenationValue .= $this->_webServiceKey; - $this->_fields['list']['Security']['value'] = Tools::strtoupper(md5($concatenationValue)); - } + if ($this->_mode_liv == "DRI" || $this->_mode_liv == "24R") { + $this->_fields['list']['Latitude']['value'] = null; + $this->_fields['list']['Longitude']['value'] = null; + $this->_fields['list']['DelaiEnvoi']['value'] = "0"; - /* - * Get the values with associated fields name - * @fields : array containing multiple values information - */ - private function _getSimpleParamArray($fields) - { - $params = array(); - - foreach ($fields as $keyName => $valueDetailed) - $params[$keyName] = $valueDetailed['value']; - return $params; - } - - /* - ** Get detail information for each relay - */ - private function _getRelayPointDetails($relayPointList) - { - $relayPointNumList = array(); - foreach ($relayPointList as $relayPoint) - $relayPointNumList[] = $relayPoint['Num']; - $MRRelayDetail = new MRRelayDetail(array('relayPointNumList' => $relayPointNumList, 'id_address_delivery' => $this->_id_address_delivery)); - $MRRelayDetail->init(); - $MRRelayDetail->send(); - return $MRRelayDetail->getResult(); - } + if ($this->_mode_liv == "DRI") + $this->_fields['list']['RayonRecherche']['value'] = "200"; + else + $this->_fields['list']['RayonRecherche']['value'] = null; + } - /* - ** Generate a perman link to view relay detail on their website - */ - private function _addLinkHoursDetail(&$relayPointList) - { - $relayPointNumList = array(); - foreach ($relayPointList as $relayPoint) - $relayPointNumList[] = $relayPoint->Num; - $permaList = MRRelayDetail::getPermaLink($relayPointNumList, $this->_id_address_delivery); - foreach ($relayPointList as &$relayPoint) - { - $relayPoint->permaLinkDetail = ''; - if (array_key_exists($relayPoint->Num, $permaList)) - $relayPoint->permaLinkDetail = $permaList[$relayPoint->Num]; - } - return $relayPointList; - } - - /* - * Manage the return value of the webservice, handle the errors or build the - * succeed message - */ - private function _parseResult($client, $result, $params) - { - $errors = array(); - $success = array(); - $result = $result->WSI2_RecherchePointRelaisResult; - if (($errorNumber = $result->STAT) != 0) - { - $errors[] = $this->_mondialRelay->l('There is an error number : ').$errorNumber; - $errors[] = $this->_mondialRelay->l('Details : '). - $this->_mondialRelay->getErrorCodeDetail($errorNumber); - } - else - { - unset($result->STAT); - - // Clean Content - foreach ($result as $num => $relayPoint) - { - $totalEmptyFields = 0; - foreach ($relayPoint as &$value) - { - $value = trim($value); - if (empty($value)) - ++$totalEmptyFields; - } - if ($totalEmptyFields == count($relayPoint)) - unset($result[$num]); - } - if (!count($result)) - $errors[] = $this->_mondialRelay->l('MondialRelay can\'t find any relay point near your address. Maybe your address isn\'t properly filled ?'); - else - { - $this->_addLinkHoursDetail($result); + $this->_generateMD5SecurityKey(); + unset($address); + } + + /* + * Generate the MD5 key for each param list + */ + private function _generateMD5SecurityKey() + { + $concatenationValue = ''; + foreach ($this->_fields['list'] as $paramName => &$valueDetailed) { + if ($paramName != 'Texte' && $paramName != 'Security') + { + // Mac server make an empty string instead of a cleaned string + // TODO : test on windows and linux server + $cleanedString = MRTools::removeAccents($valueDetailed['value']); + $valueDetailed['value'] = !empty($cleanedString) ? Tools::strtoupper($cleanedString) : Tools::strtoupper($valueDetailed['value']); - // Fetch detail info using webservice (not used anymore) - // $this->_generateLinkHoursDetail($result); - // $result = (count($relayDetail['success'])) ? $relayDetail['success'] : $result; - } - $success = $result; - } - $this->_resultList['error'] = $errors; - $this->_resultList['success'] = $success; - } - - /* - * Send one or multiple request to the webservice - */ - public function send() - { - if ($client = new SoapClient($this->_webserviceURL)) - { - $client->soap_defencoding = 'UTF-8'; - $client->decode_utf8 = false; - - $params = $this->_getSimpleParamArray($this->_fields['list']); - $result = $client->WSI2_RecherchePointRelais($params); - $this->_parseResult($client, $result, $params); - unset($client); - } - else - throw new Exception($this->_mondialRelay->l('The Mondial Relay webservice isn\'t currently reliable')); - } - - /* - * Get the values with associated fields name - */ - public function getFieldsList() - { - return $this->_fieldsList['list']; - } - - /* - * Get the result of one or multiple send request - */ - public function getResult() - { - return $this->_resultList; - } + $valueDetailed['value'] = Tools::strtoupper($valueDetailed['value']); + // Call a pointer function if exist to do different test + if (isset($valueDetailed['methodValidation']) && method_exists('MRTools', $valueDetailed['methodValidation']) && isset($valueDetailed['params']) && MRTools::$valueDetailed['methodValidation']($valueDetailed['value'], $valueDetailed['params'])) { + $concatenationValue .= $valueDetailed['value']; + } + // Use simple Regex test given by MondialRelay + else if (isset($valueDetailed['regexValidation']) && preg_match($valueDetailed['regexValidation'], $valueDetailed['value'], $matches)) { + $concatenationValue .= $valueDetailed['value']; + } + // If the key is required, we set an error, else it's skipped + elseif ((!Tools::strlen($valueDetailed['value']) && $valueDetailed['required']) || Tools::strlen($valueDetailed['value'])) + { + $error = $this->_mondialRelay->l('This key').' ['.$paramName.'] '. + $this->_mondialRelay->l('hasn\'t a valide value format').' : '.$valueDetailed['value']; + $this->_resultList['error'][] = $error; + } + } + } + $concatenationValue .= $this->_webServiceKey; + $this->_fields['list']['Security']['value'] = Tools::strtoupper(md5($concatenationValue)); + } + + /* + * Get the values with associated fields name + * @fields : array containing multiple values information + */ + private function _getSimpleParamArray($fields) + { + $params = array(); + + foreach ($fields as $keyName => $valueDetailed) + $params[$keyName] = $valueDetailed['value']; + return $params; + } + + /* + ** Get detail information for each relay + */ + private function _getRelayPointDetails($relayPointList) + { + $relayPointNumList = array(); + foreach ($relayPointList as $relayPoint) + $relayPointNumList[] = $relayPoint['Num']; + $MRRelayDetail = new MRRelayDetail(array('relayPointNumList' => $relayPointNumList, 'id_address_delivery' => $this->_id_address_delivery)); + $MRRelayDetail->init(); + $MRRelayDetail->send(); + return $MRRelayDetail->getResult(); + } + + /* + ** Generate a perman link to view relay detail on their website + */ + private function _addLinkHoursDetail(&$relayPointList) + { + $relayPointNumList = array(); + foreach ($relayPointList as $relayPoint) + $relayPointNumList[] = $relayPoint->Num; + $permaList = MRRelayDetail::getPermaLink($relayPointNumList, $this->_id_address_delivery); + foreach ($relayPointList as &$relayPoint) + { + $relayPoint->permaLinkDetail = ''; + if (array_key_exists($relayPoint->Num, $permaList)) + $relayPoint->permaLinkDetail = $permaList[$relayPoint->Num]; + } + return $relayPointList; + } + + /* + * Manage the return value of the webservice, handle the errors or build the + * succeed message + */ + private function _parseResult($client, $result, $params) + { + $errors = array(); + $success = array(); + + if ($this->_mode_liv == 'DRI' || $this->_mode_liv == "24R") + $result = $result->WSI3_PointRelais_RechercheResult; + else + $result = $result->WSI2_RecherchePointRelaisResult; + + if (($errorNumber = $result->STAT) != 0) + { + $errors[] = $this->_mondialRelay->l('There is an error number : ').$errorNumber; + $errors[] = $this->_mondialRelay->l('Details : '). + $this->_mondialRelay->getErrorCodeDetail($errorNumber); + } + else + { + unset($result->STAT); + + + if ($this->_mode_liv == 'DRI' || $this->_mode_liv == "24R") { + $list = $result->PointsRelais->PointRelais_Details; + if (!is_array($list)) + $list = array($list); + } + else + $list = $result; + + // Clean Content + foreach ($list as $num => &$relayPoint) + { + $totalEmptyFields = 0; + foreach ($relayPoint as &$value) + { + if (is_string($value)) + { + $value = trim($value); + if (empty($value)) + ++$totalEmptyFields; + } + else if (is_array($value) && count($value)) { + $value = array_map('trim', $value); + ++$totalEmptyFields; + } + } + + if ($totalEmptyFields == count($relayPoint)) + unset($list[$num]); + } + + if (!count($result)) + $errors[] = $this->_mondialRelay->l('MondialRelay can\'t find any relay point near your address. Maybe your address isn\'t properly filled ?'); + else + { + $this->_addLinkHoursDetail($list); + + // Fetch detail info using webservice (not used anymore) + // $this->_generateLinkHoursDetail($result); + // $result = (count($relayDetail['success'])) ? $relayDetail['success'] : $result; + } + $success = $list; + } + $this->_resultList['error'] = $errors; + $this->_resultList['success'] = $success; + } + + /* + * Send one or multiple request to the webservice + */ + public function send() + { + if ($client = new SoapClient($this->_webserviceURL, array('trace' => 1))) + { + $client->soap_defencoding = 'UTF-8'; + $client->decode_utf8 = false; + + $params = $this->_getSimpleParamArray($this->_fields['list']); + + if ($this->_mode_liv == 'DRI' || $this->_mode_liv == "24R") + { + $result = $client->WSI3_PointRelais_Recherche($params); + } + else { + $result = $client->WSI2_RecherchePointRelais($params); + } + + $this->_parseResult($client, $result, $params); + unset($client); + } + else + throw new Exception($this->_mondialRelay->l('The Mondial Relay webservice isn\'t currently reliable')); + } + + /* + * Get the values with associated fields name + */ + public function getFieldsList() + { + return $this->_fieldsList['list']; + } + + /* + * Get the result of one or multiple send request + */ + public function getResult() + { + return $this->_resultList; + } } diff --git a/classes/MRGetTickets.php b/classes/MRGetTickets.php index da0f638..5ff43e0 100644 --- a/classes/MRGetTickets.php +++ b/classes/MRGetTickets.php @@ -35,221 +35,221 @@ */ class MRGetTickets implements IMondialRelayWSMethod { - private $_fields = array( - 'list' => array( - 'Enseigne' => array( - 'required' => true, - 'value' => '', - 'regexValidation' => '#^[0-9A-Z]{2}[0-9A-Z ]{6}$#'), - 'Expeditions' => array( - 'required' => true, - 'value' => '', - 'regexValidation' => '#^[0-9]{8}(;[0-9]{8})*$#'), - 'Langue' => array( - 'required' => true, - 'value' => '', - 'regexValidation' => '#^[A-Z]{2}$#'), - 'Security' => array( - 'required' => true, - 'value' => '', - 'regexValidation' => '#^[0-9A-Z]{32}$#'))); - - private $_detailedExpeditionList = array(); - private $_webServiceKey = ''; - private $_mondialrelay = null; - - private $_resultList = array( - 'error' => array(), - 'success' => array()); - - private $_webserviceURL; - - public function __construct($params, $object) - { - $this->_mondialrelay = $object; - $this->_detailedExpeditionList = $params['detailedExpeditionList']; - $this->_webServiceKey = $this->_mondialrelay->account_shop['MR_KEY_WEBSERVICE']; - $this->_webserviceURL = MondialRelay::MR_URL.'webservice/Web_Services.asmx?WSDL'; - } - - public function __destruct() - { - unset($this->_mondialrelay); - } - - public function init() - { - $this->_fields['list']['Enseigne']['value'] = $this->_mondialrelay->account_shop['MR_ENSEIGNE_WEBSERVICE']; - $this->_fields['list']['Langue']['value'] = $this->_mondialrelay->account_shop['MR_LANGUAGE']; - - foreach ($this->_detailedExpeditionList as $detailedExpedition) - { - // Storage temporary - $base = $this->_fields; - $tmp = &$base['list']; - - $tmp['Expeditions']['value'] = $detailedExpedition['expeditionNumber']; - $this->_fieldsList[] = $base; - } - $this->_generateMD5SecurityKey(); - } - - /* - * Generate the MD5 key for each param list - */ - private function _generateMD5SecurityKey() - { - // RootCase is the array case where the main information are stored - // it's an array containing id_mr_selected and an array with the necessary fields - foreach ($this->_fieldsList as &$rootCase) - { - $concatenationValue = ''; - foreach ($rootCase['list'] as $paramName => &$valueDetailed) - if ($paramName != 'Texte' && $paramName != 'Security') - { - $valueDetailed['value'] = Tools::strtoupper($valueDetailed['value']); - if (preg_match($valueDetailed['regexValidation'], $valueDetailed['value'], $matches)) - $concatenationValue .= $valueDetailed['value']; - elseif ((!Tools::strlen($valueDetailed['value']) && $valueDetailed['required']) || Tools::strlen($valueDetailed['value'])) - { - $error = $this->_mondialrelay->l('This key').' ['.$paramName.'] '.$this->_mondialrelay->l('hasn\'t a valide value format').' : '.$valueDetailed['value']; - $id_order = $this->_getOrderIdWithExpeditionNumber($rootCase['list']['Expeditions']['value']); - $this->_resultList['error'][$id_order][] = $error; - } - } - $concatenationValue .= $this->_webServiceKey; - $rootCase['list']['Security']['value'] = Tools::strtoupper(md5($concatenationValue)); - } - } + private $_fields = array( + 'list' => array( + 'Enseigne' => array( + 'required' => true, + 'value' => '', + 'regexValidation' => '#^[0-9A-Z]{2}[0-9A-Z ]{6}$#'), + 'Expeditions' => array( + 'required' => true, + 'value' => '', + 'regexValidation' => '#^[0-9]{8}(;[0-9]{8})*$#'), + 'Langue' => array( + 'required' => true, + 'value' => '', + 'regexValidation' => '#^[A-Z]{2}$#'), + 'Security' => array( + 'required' => true, + 'value' => '', + 'regexValidation' => '#^[0-9A-Z]{32}$#'))); + + private $_detailedExpeditionList = array(); + private $_webServiceKey = ''; + private $_mondialrelay = null; + + private $_resultList = array( + 'error' => array(), + 'success' => array()); + + private $_webserviceURL; + + public function __construct($params, $object) + { + $this->_mondialrelay = $object; + $this->_detailedExpeditionList = $params['detailedExpeditionList']; + $this->_webServiceKey = $this->_mondialrelay->account_shop['MR_KEY_WEBSERVICE']; + $this->_webserviceURL = MondialRelay::MR_URL.'webservice/Web_Services.asmx?WSDL'; + } + + public function __destruct() + { + unset($this->_mondialrelay); + } + + public function init() + { + $this->_fields['list']['Enseigne']['value'] = $this->_mondialrelay->account_shop['MR_ENSEIGNE_WEBSERVICE']; + $this->_fields['list']['Langue']['value'] = $this->_mondialrelay->account_shop['MR_LANGUAGE']; + + foreach ($this->_detailedExpeditionList as $detailedExpedition) + { + // Storage temporary + $base = $this->_fields; + $tmp = &$base['list']; + + $tmp['Expeditions']['value'] = $detailedExpedition['expeditionNumber']; + $this->_fieldsList[] = $base; + } + $this->_generateMD5SecurityKey(); + } + + /* + * Generate the MD5 key for each param list + */ + private function _generateMD5SecurityKey() + { + // RootCase is the array case where the main information are stored + // it's an array containing id_mr_selected and an array with the necessary fields + foreach ($this->_fieldsList as &$rootCase) + { + $concatenationValue = ''; + foreach ($rootCase['list'] as $paramName => &$valueDetailed) + if ($paramName != 'Texte' && $paramName != 'Security') + { + $valueDetailed['value'] = Tools::strtoupper($valueDetailed['value']); + if (preg_match($valueDetailed['regexValidation'], $valueDetailed['value'], $matches)) + $concatenationValue .= $valueDetailed['value']; + elseif ((!Tools::strlen($valueDetailed['value']) && $valueDetailed['required']) || Tools::strlen($valueDetailed['value'])) + { + $error = $this->_mondialrelay->l('This key').' ['.$paramName.'] '.$this->_mondialrelay->l('hasn\'t a valide value format').' : '.$valueDetailed['value']; + $id_order = $this->_getOrderIdWithExpeditionNumber($rootCase['list']['Expeditions']['value']); + $this->_resultList['error'][$id_order][] = $error; + } + } + $concatenationValue .= $this->_webServiceKey; + $rootCase['list']['Security']['value'] = Tools::strtoupper(md5($concatenationValue)); + } + } - /* - * Get the values with associated fields name - * @fields : array containing multiple values information - */ - private function _getSimpleParamArray($fields) - { - $params = array(); - - foreach ($fields as $keyName => $valueDetailed) - $params[$keyName] = $valueDetailed['value']; - return $params; - } - - /* - * Update the history tables - */ - private function _updateTable($id_order, $expeditionNumber, $URLA4, $URLA5, &$success) - { - $query = ' - SELECT id FROM `'._DB_PREFIX_.'mr_history` - WHERE `order`='.(int)$id_order; - - $row = Db::getInstance()->getRow($query); - if ($row) - { - $query = ' - UPDATE `'._DB_PREFIX_.'mr_history` - SET - `exp` = \''.(int)$expeditionNumber.'\', - `url_a4` = \''.pSQL((string)$URLA4).'\', - `url_a5` = \''.pSQL((string)$URLA5).'\' - WHERE `order` = '.(int)$id_order; - } - else - { - $query = ' - INSERT INTO '._DB_PREFIX_.'mr_history - (`order`, `exp`, `url_a4`, `url_a5`) - VALUES ( - '.(int)$id_order.', - '.(int)$expeditionNumber.', - \''.pSQL((string)$URLA4).'\', - \''.pSQL((string)$URLA5).'\')'; - } - Db::getInstance()->execute($query); - $success['id_mr_history'] = isset($row['id']) ? $row['id'] : Db::getInstance()->Insert_ID(); - } - - /* - * Manage the return value of the webservice, handle the errors or build the - * succeed message - */ - private function _parseResult($client, $result, $params) - { - $errors = array(); - $success = array(); - - $id_order = $this->_getOrderIdWithExpeditionNumber($params['Expeditions']); - $result = $result->WSI2_GetEtiquettesResult; - if (($errorNumber = $result->STAT) != 0) - { - $errors[] = $this->_mondialrelay->l('There is an error number : ').$errorNumber; - $errors[] = $this->_mondialrelay->l('Details : '). - $this->_mondialrelay->getErrorCodeDetail($errorNumber); - } - else - { - $baseURL = 'http://www.mondialrelay.fr'; - $URLPDF_A4 = $baseURL.$result->URL_PDF_A4; - $URLPDF_A5 = $baseURL.$result->URL_PDF_A5; + /* + * Get the values with associated fields name + * @fields : array containing multiple values information + */ + private function _getSimpleParamArray($fields) + { + $params = array(); + + foreach ($fields as $keyName => $valueDetailed) + $params[$keyName] = $valueDetailed['value']; + return $params; + } + + /* + * Update the history tables + */ + private function _updateTable($id_order, $expeditionNumber, $URLA4, $URLA5, &$success) + { + $query = ' + SELECT id FROM `'._DB_PREFIX_.'mr_history` + WHERE `order`='.(int)$id_order; + + $row = Db::getInstance()->getRow($query); + if ($row) + { + $query = ' + UPDATE `'._DB_PREFIX_.'mr_history` + SET + `exp` = \''.(int)$expeditionNumber.'\', + `url_a4` = \''.pSQL((string)$URLA4).'\', + `url_a5` = \''.pSQL((string)$URLA5).'\' + WHERE `order` = '.(int)$id_order; + } + else + { + $query = ' + INSERT INTO '._DB_PREFIX_.'mr_history + (`order`, `exp`, `url_a4`, `url_a5`) + VALUES ( + '.(int)$id_order.', + '.(int)$expeditionNumber.', + \''.pSQL((string)$URLA4).'\', + \''.pSQL((string)$URLA5).'\')'; + } + Db::getInstance()->execute($query); + $success['id_mr_history'] = isset($row['id']) ? $row['id'] : Db::getInstance()->Insert_ID(); + } + + /* + * Manage the return value of the webservice, handle the errors or build the + * succeed message + */ + private function _parseResult($client, $result, $params) + { + $errors = array(); + $success = array(); + + $id_order = $this->_getOrderIdWithExpeditionNumber($params['Expeditions']); + $result = $result->WSI2_GetEtiquettesResult; + if (($errorNumber = $result->STAT) != 0) + { + $errors[] = $this->_mondialrelay->l('There is an error number : ').$errorNumber; + $errors[] = $this->_mondialrelay->l('Details : '). + $this->_mondialrelay->getErrorCodeDetail($errorNumber); + } + else + { + $baseURL = 'http://www.mondialrelay.fr'; + $URLPDF_A4 = $baseURL.$result->URL_PDF_A4; + $URLPDF_A5 = $baseURL.$result->URL_PDF_A5; - $success['id_order'] = $id_order; - $success['expeditionNumber'] = $params['Expeditions']; - $success['URLPDF_A4'] = $URLPDF_A4; - $success['URLPDF_A5'] = $URLPDF_A5; - $success['URLPDF_10x15'] = $baseURL.str_replace('format=A4', 'format=10x15', $result->URL_PDF_A4); - $this->_updateTable($id_order, $params['Expeditions'], $URLPDF_A4, $URLPDF_A5, $success); - } - $this->_resultList['error'][$id_order] = $errors; - $this->_resultList['success'][$id_order] = $success; - } - - /* - * Get the order id using the expedition number - */ - private function _getOrderIdWithExpeditionNumber($expeditionNumber) - { - foreach ($this->_detailedExpeditionList as $detailedExpedition) - if ($detailedExpedition['expeditionNumber'] == $expeditionNumber) - return $detailedExpedition['id_order']; - return 0; - } - - /* - * Send one or multiple request to the webservice - */ - public function send() - { - if ($client = new SoapClient($this->_webserviceURL)) - { - $client->soap_defencoding = 'UTF-8'; - $client->decode_utf8 = false; - - foreach ($this->_fieldsList as $rootCase) - { - $params = $this->_getSimpleParamArray($rootCase['list']); - $result = $client->WSI2_GetEtiquettes($params); - $this->_parseResult($client, $result, $params); - } - unset($client); - } - else - throw new Exception($this->_mondialrelay->l('The Mondial Relay webservice isn\'t currently reliable')); - } - - /* - * Get the values with associated fields name - */ - public function getFieldsList() - { - return $this->_fieldsList['list']; - } - - /* - * Get the result of one or multiple send request - */ - public function getResult() - { - return $this->_resultList; - } + $success['id_order'] = $id_order; + $success['expeditionNumber'] = $params['Expeditions']; + $success['URLPDF_A4'] = $URLPDF_A4; + $success['URLPDF_A5'] = $URLPDF_A5; + $success['URLPDF_10x15'] = $baseURL.str_replace('format=A4', 'format=10x15', $result->URL_PDF_A4); + $this->_updateTable($id_order, $params['Expeditions'], $URLPDF_A4, $URLPDF_A5, $success); + } + $this->_resultList['error'][$id_order] = $errors; + $this->_resultList['success'][$id_order] = $success; + } + + /* + * Get the order id using the expedition number + */ + private function _getOrderIdWithExpeditionNumber($expeditionNumber) + { + foreach ($this->_detailedExpeditionList as $detailedExpedition) + if ($detailedExpedition['expeditionNumber'] == $expeditionNumber) + return $detailedExpedition['id_order']; + return 0; + } + + /* + * Send one or multiple request to the webservice + */ + public function send() + { + if ($client = new SoapClient($this->_webserviceURL)) + { + $client->soap_defencoding = 'UTF-8'; + $client->decode_utf8 = false; + + foreach ($this->_fieldsList as $rootCase) + { + $params = $this->_getSimpleParamArray($rootCase['list']); + $result = $client->WSI2_GetEtiquettes($params); + $this->_parseResult($client, $result, $params); + } + unset($client); + } + else + throw new Exception($this->_mondialrelay->l('The Mondial Relay webservice isn\'t currently reliable')); + } + + /* + * Get the values with associated fields name + */ + public function getFieldsList() + { + return $this->_fieldsList['list']; + } + + /* + * Get the result of one or multiple send request + */ + public function getResult() + { + return $this->_resultList; + } } \ No newline at end of file diff --git a/classes/MRManagement.php b/classes/MRManagement.php index f7e28db..931c098 100644 --- a/classes/MRManagement.php +++ b/classes/MRManagement.php @@ -29,142 +29,172 @@ class MRManagement extends MondialRelay { - private $_params = array(); - - private $_resultList = array( - 'error' => array(), - 'success' => array()); - - public function __construct($params) - { - $this->_params = $params; - - parent::__construct(); - } - - /* - ** This method fill the database with the selected carrier - */ - public function addSelectedCarrierToDB() - { - $db = Db::getInstance(); - // insutance - $sql = 'SELECT insurance FROM '._DB_PREFIX_.'mr_method WHERE id_mr_method = '.(int)$this->_params['id_mr_method']; - $insurance = $db->getValue($sql); - - $query = 'SELECT `id_mr_selected` FROM `'._DB_PREFIX_.'mr_selected` WHERE `id_cart` = '.(int)$this->_params['id_cart'].' '; + private $_params = array(); + + private $_resultList = array( + 'error' => array(), + 'success' => array()); + + public function __construct($params) + { + $this->_params = $params; + + parent::__construct(); + } + + /* + ** This method fill the database with the selected carrier + */ + public function addSelectedCarrierToDB() + { + $db = Db::getInstance(); + // insutance + $sql = 'SELECT insurance FROM '._DB_PREFIX_.'mr_method WHERE id_mr_method = '.(int)$this->_params['id_mr_method']; + $insurance = $db->getValue($sql); + + $query = 'SELECT `id_mr_selected` FROM `'._DB_PREFIX_.'mr_selected` WHERE `id_cart` = '.(int)$this->_params['id_cart'].' '; - // Not exist and needed for database - unset($this->_params['relayPointInfo']['permaLinkDetail']); - - // Update if Exist else add a new entry - if ($db->getRow($query)) - { - $query = 'UPDATE `'._DB_PREFIX_.'mr_selected` - SET `id_method` = '.(int)$this->_params['id_mr_method'].', - `MR_insurance` = '.(int)$insurance.','; - if (is_array($this->_params['relayPointInfo'])) - foreach ($this->_params['relayPointInfo'] as $nameKey => $value) - $query .= '`MR_Selected_'.MRTools::bqSQL($nameKey).'` = "'.pSQL($value).'", '; - else // Clean the existing relay point data - $query .= ' - MR_Selected_Num = NULL, - MR_Selected_LgAdr1 = NULL, - MR_Selected_LgAdr2 = NULL, - MR_Selected_LgAdr3 = NULL, - MR_Selected_LgAdr4 = NULL, - MR_Selected_CP = NULL, - MR_Selected_Pays = NULL, - MR_Selected_Ville = NULL, '; - $query = rtrim($query, ', ').' WHERE `id_cart` = '.(int)$this->_params['id_cart']; - } - else - { - $query = 'INSERT INTO `'._DB_PREFIX_.'mr_selected` - (`id_customer`, `id_method`, `id_cart`, MR_insurance, '; - if (is_array($this->_params['relayPointInfo'])) - foreach ($this->_params['relayPointInfo'] as $nameKey => $value) - $query .= '`MR_Selected_'.MRTools::bqSQL($nameKey).'`, '; - $query = rtrim($query, ', ').') VALUES ( - '.(int)$this->_params['id_customer'].', - '.(int)$this->_params['id_mr_method'].', - '.(int)$this->_params['id_cart'].', - '.(int)$insurance.', '; - if (is_array($this->_params['relayPointInfo'])) - foreach ($this->_params['relayPointInfo'] as $nameKey => $value) - $query .= '"'.pSQL($value).'", '; - $query = rtrim($query, ', ').')'; - } - $db->execute($query); - } + $columns = 'select COLUMN_NAME from INFORMATION_SCHEMA.COLUMNS where TABLE_NAME="'._DB_PREFIX_.'mr_selected"'; + $columns_mr = array(); + $column_exist = $db->executeS($columns); + foreach ($column_exist as $key => $value) { + $columns_mr2[] .= $value['COLUMN_NAME']; + } + - public function uninstallDetail() - { - $html = ''; - - switch ($this->_params['action']) - { - case 'showFancy': - $html .= ' -
-

'.$this->l('Uninstalling Mondial Relay').'

-
- '.$this->l('You\'re about to uninstall the module, do you want to remove the database').' ? -

- -
- -
- -
-

-
-
- '; - $this->_resultList['html'] = $html; - break; - case 'backupAndUninstall': - - break; - default: - } - return $this->_resultList; - } + // Not exist and needed for database + unset($this->_params['relayPointInfo']['permaLinkDetail']); + + // Update if Exist else add a new entry + if ($db->getRow($query)) + { + - public function DeleteHistory() - { - $success = array(); - $error = array(); - - if (is_array($this->_params['historyIdList']) && count($this->_params['historyIdList'])) - { - $query = ' - DELETE FROM `'._DB_PREFIX_.'mr_history` - WHERE id IN('; - foreach ($this->_params['historyIdList'] as $id) - $query .= (int)$id.', '; - $query = trim($query, ', ').')'; - - $success['deletedListId'] = $this->_params['historyIdList']; - $totalDeleted = Db::getInstance()->execute($query); - if (count($success['deletedListId']) != $totalDeleted) - { - $error[] = $this->l('Some items can\'t be removed, please try to remove it again'); - foreach ($success['deletedListId'] as $id) - { - $query = ' - SELECT id FROM `'._DB_PREFIX_.'mr_history` - WHERE id='.(int)$id; - if (Db::getInstance()->getRow($query) && ($key = array_search($id, $success['deletedListId'])) !== false) - unset($success['deletedListId'][$key]); - } - } - $this->_resultList['success'] = $success; - $this->_resultList['other']['error'] = $error; - } - else - throw new Exception($this->l('Please select at least one history element')); - return $this->_resultList; - } + $query = 'UPDATE `'._DB_PREFIX_.'mr_selected` + SET `id_method` = '.(int)$this->_params['id_mr_method'].', + `MR_insurance` = '.(int)$insurance.','; + if (is_array($this->_params['relayPointInfo'])) { + foreach ($this->_params['relayPointInfo'] as $nameKey => $value) { + if (in_array('MR_Selected_'.MRTools::bqSQL($nameKey).'', $columns_mr2)) { + $query .= '`MR_Selected_'.MRTools::bqSQL($nameKey).'` = "'.pSQL($value).'", '; + } + } + + + } else { // Clean the existing relay point data + $query .= ' + MR_Selected_Num = NULL, + MR_Selected_LgAdr1 = NULL, + MR_Selected_LgAdr2 = NULL, + MR_Selected_LgAdr3 = NULL, + MR_Selected_LgAdr4 = NULL, + MR_Selected_CP = NULL, + MR_Selected_Pays = NULL, + MR_Selected_Ville = NULL, '; + } + $query = rtrim($query, ', ').' WHERE `id_cart` = '.(int)$this->_params['id_cart']; + } + else + { + + $query = 'INSERT INTO `'._DB_PREFIX_.'mr_selected` + (`id_customer`, `id_method`, `id_cart`, MR_insurance, '; + if (is_array($this->_params['relayPointInfo'])) { + foreach ($this->_params['relayPointInfo'] as $nameKey => $value) { + if (in_array('MR_Selected_'.MRTools::bqSQL($nameKey).'', $columns_mr2)) { + $query .= '`MR_Selected_'.MRTools::bqSQL($nameKey).'`, '; + } + + } + } + $query = rtrim($query, ', ').') VALUES ( + '.(int)$this->_params['id_customer'].', + '.(int)$this->_params['id_mr_method'].', + '.(int)$this->_params['id_cart'].', + '.(int)$insurance.', '; + + if (is_array($this->_params['relayPointInfo'])) { + foreach ($this->_params['relayPointInfo'] as $nameKey => $value) { + + if (in_array('MR_Selected_'.MRTools::bqSQL($nameKey).'', $columns_mr2)) { + $query .= '"'.pSQL($value).'", '; + } + + } + } + $query = rtrim($query, ', ').')'; + } + $db->execute($query); + + } + + public function uninstallDetail() + { + $html = ''; + + switch ($this->_params['action']) + { + case 'showFancy': + $html .= ' +
+

'.$this->l('Uninstalling Mondial Relay').'

+
+ '.$this->l('You\'re about to uninstall the module, do you want to remove the database').' ? +

+ +
+ +
+ +
+

+
+
+ '; + $this->_resultList['html'] = $html; + break; + case 'backupAndUninstall': + + break; + default: + } + return $this->_resultList; + } + + public function DeleteHistory() + { + $success = array(); + $error = array(); + + if (is_array($this->_params['historyIdList']) && count($this->_params['historyIdList'])) + { + $query = ' + DELETE FROM `'._DB_PREFIX_.'mr_history` + WHERE id IN('; + foreach ($this->_params['historyIdList'] as $id) + $query .= (int)$id.', '; + $query = trim($query, ', ').')'; + + $success['deletedListId'] = $this->_params['historyIdList']; + $totalDeleted = Db::getInstance()->execute($query); + if (count($success['deletedListId']) != $totalDeleted) + { + $error[] = $this->l('Some items can\'t be removed, please try to remove it again'); + foreach ($success['deletedListId'] as $id) + { + $query = ' + SELECT id FROM `'._DB_PREFIX_.'mr_history` + WHERE id='.(int)$id; + if (Db::getInstance()->getRow($query) && ($key = array_search($id, $success['deletedListId'])) !== false) + unset($success['deletedListId'][$key]); + } + } + $this->_resultList['success'] = $success; + $this->_resultList['other']['error'] = $error; + } + else + throw new Exception($this->l('Please select at least one history element')); + return $this->_resultList; + } } \ No newline at end of file diff --git a/classes/MRRelayDetail.php b/classes/MRRelayDetail.php index 1d2ab9b..412ce84 100644 --- a/classes/MRRelayDetail.php +++ b/classes/MRRelayDetail.php @@ -35,231 +35,231 @@ */ class MRRelayDetail implements IMondialRelayWSMethod { - private $_fields = array( - 'list' => array( - 'Enseigne' => array( - 'required' => true, - 'value' => '', - 'regexValidation' => '#^[0-9A-Z]{2}[0-9A-Z ]{6}$#'), - 'Num' => array( - 'required' => true, - 'value' => '', - 'regexValidation' => '#^[0-9]{6}$#'), - 'Pays' => array( - 'required' => true, - 'value' => '', - 'regexValidation' => '#^[A-Z]{2}$#'), - 'Security' => array( - 'required' => true, - 'value' => '', - 'regexValidation' => '#^[0-9A-Z]{32}$#'))); - - private $_relayPointNumList = array(); - private $_id_address_delivery = 0; - private $_webServiceKey = ''; - private $_mondialrelay = null; - private $_markCode = ''; - - private $_resultList = array( - 'error' => array(), - 'success' => array()); - - private $_webserviceURL = ''; - - public function __construct($params, $object) - { - $this->_mondialrelay = $object; + private $_fields = array( + 'list' => array( + 'Enseigne' => array( + 'required' => true, + 'value' => '', + 'regexValidation' => '#^[0-9A-Z]{2}[0-9A-Z ]{6}$#'), + 'Num' => array( + 'required' => true, + 'value' => '', + 'regexValidation' => '#^[0-9]{6}$#'), + 'Pays' => array( + 'required' => true, + 'value' => '', + 'regexValidation' => '#^[A-Z]{2}$#'), + 'Security' => array( + 'required' => true, + 'value' => '', + 'regexValidation' => '#^[0-9A-Z]{32}$#'))); + + private $_relayPointNumList = array(); + private $_id_address_delivery = 0; + private $_webServiceKey = ''; + private $_mondialrelay = null; + private $_markCode = ''; + + private $_resultList = array( + 'error' => array(), + 'success' => array()); + + private $_webserviceURL = ''; + + public function __construct($params, $object) + { + $this->_mondialrelay = $object; - $this->_relayPointNumList = $params['relayPointNumList']; - $this->_id_address_delivery = (int)($params['id_address_delivery']); - $this->_webServiceKey = $this->_mondialRelay->account_shop['MR_KEY_WEBSERVICE']; - $this->_markCode = $this->_mondialRelay->account_shop['MR_CODE_MARQUE']; - $this->_webserviceURL = MondialRelay::MR_URL.'webservice/Web_Services.asmx?WSDL'; - } - - public function __destruct() - { - unset($this->_mondialrelay); - } - - public function init() - { - $address = new Address($this->_id_address_delivery); - - if (!$address) - throw new Exception($this->_mondialrelay->l('Customer address can\'t be found')); - - $this->_fields['list']['Enseigne']['value'] = $this->_mondialRelay->account_shop['MR_ENSEIGNE_WEBSERVICE']; - $this->_fields['list']['Pays']['value'] = Country::getIsoById($address->id_country); - - foreach ($this->_relayPointNumList as $num) - { - // Storage temporary - $base = $this->_fields; - $tmp = &$base['list']; - - $tmp['Num']['value'] = $num; - $this->_fieldsList[] = $base; - } - $this->_generateMD5SecurityKey(); - unset($address); - } - - /* - * Generate the MD5 key for each param list - */ - private function _generateMD5SecurityKey() - { - // RootCase is the array case where the main information are stored - // it's an array containing id_mr_selected and an array with the necessary fields - foreach ($this->_fieldsList as &$rootCase) - { - $concatenationValue = ''; - foreach ($rootCase['list'] as $paramName => &$valueDetailed) - if ($paramName != 'Texte' && $paramName != 'Security') - { - // Mac server make an empty string instead of a cleaned string - // TODO : test on windows and linux server - $cleanedString = MRTools::removeAccents($valueDetailed['value']); - $valueDetailed['value'] = !empty($cleanedString) ? Tools::strtoupper($cleanedString) : Tools::strtoupper($valueDetailed['value']); - - // Call a pointer function if exist to do different test - if (isset($valueDetailed['methodValidation']) && method_exists('MRTools', $valueDetailed['methodValidation']) && isset($valueDetailed['params']) && MRTools::$valueDetailed['methodValidation']($valueDetailed['value'], $valueDetailed['params'])) - $concatenationValue .= $valueDetailed['value']; - // Use simple Regex test given by MondialRelay - else if (isset($valueDetailed['regexValidation']) && preg_match($valueDetailed['regexValidation'], $valueDetailed['value'], $matches)) - $concatenationValue .= $valueDetailed['value']; - // If the key is required, we set an error, else it's skipped - elseif ((!Tools::strlen($valueDetailed['value']) && $valueDetailed['required']) || Tools::strlen($valueDetailed['value'])) - { - if (empty($valueDetailed['value'])) - $error = $this->_mondialrelay->l('This key').' ['.$paramName.'] '.$this->_mondialrelay->l('is empty and need to be filled'); - else - $error = 'This key ['.$paramName.'] hasn\'t a valid value format : '.$valueDetailed['value']; - $this->_resultList['error'][$rootCase['list']['Num']['value']] = $error; - } - } - $concatenationValue .= $this->_webServiceKey; - $rootCase['list']['Security']['value'] = Tools::strtoupper(md5($concatenationValue)); - } - } + $this->_relayPointNumList = $params['relayPointNumList']; + $this->_id_address_delivery = (int)($params['id_address_delivery']); + $this->_webServiceKey = $this->_mondialRelay->account_shop['MR_KEY_WEBSERVICE']; + $this->_markCode = $this->_mondialRelay->account_shop['MR_CODE_MARQUE']; + $this->_webserviceURL = MondialRelay::MR_URL.'webservice/Web_Services.asmx?WSDL'; + } + + public function __destruct() + { + unset($this->_mondialrelay); + } + + public function init() + { + $address = new Address($this->_id_address_delivery); + + if (!$address) + throw new Exception($this->_mondialrelay->l('Customer address can\'t be found')); + + $this->_fields['list']['Enseigne']['value'] = $this->_mondialRelay->account_shop['MR_ENSEIGNE_WEBSERVICE']; + $this->_fields['list']['Pays']['value'] = Country::getIsoById($address->id_country); + + foreach ($this->_relayPointNumList as $num) + { + // Storage temporary + $base = $this->_fields; + $tmp = &$base['list']; + + $tmp['Num']['value'] = $num; + $this->_fieldsList[] = $base; + } + $this->_generateMD5SecurityKey(); + unset($address); + } + + /* + * Generate the MD5 key for each param list + */ + private function _generateMD5SecurityKey() + { + // RootCase is the array case where the main information are stored + // it's an array containing id_mr_selected and an array with the necessary fields + foreach ($this->_fieldsList as &$rootCase) + { + $concatenationValue = ''; + foreach ($rootCase['list'] as $paramName => &$valueDetailed) + if ($paramName != 'Texte' && $paramName != 'Security') + { + // Mac server make an empty string instead of a cleaned string + // TODO : test on windows and linux server + $cleanedString = MRTools::removeAccents($valueDetailed['value']); + $valueDetailed['value'] = !empty($cleanedString) ? Tools::strtoupper($cleanedString) : Tools::strtoupper($valueDetailed['value']); + + // Call a pointer function if exist to do different test + if (isset($valueDetailed['methodValidation']) && method_exists('MRTools', $valueDetailed['methodValidation']) && isset($valueDetailed['params']) && MRTools::$valueDetailed['methodValidation']($valueDetailed['value'], $valueDetailed['params'])) + $concatenationValue .= $valueDetailed['value']; + // Use simple Regex test given by MondialRelay + else if (isset($valueDetailed['regexValidation']) && preg_match($valueDetailed['regexValidation'], $valueDetailed['value'], $matches)) + $concatenationValue .= $valueDetailed['value']; + // If the key is required, we set an error, else it's skipped + elseif ((!Tools::strlen($valueDetailed['value']) && $valueDetailed['required']) || Tools::strlen($valueDetailed['value'])) + { + if (empty($valueDetailed['value'])) + $error = $this->_mondialrelay->l('This key').' ['.$paramName.'] '.$this->_mondialrelay->l('is empty and need to be filled'); + else + $error = 'This key ['.$paramName.'] hasn\'t a valid value format : '.$valueDetailed['value']; + $this->_resultList['error'][$rootCase['list']['Num']['value']] = $error; + } + } + $concatenationValue .= $this->_webServiceKey; + $rootCase['list']['Security']['value'] = Tools::strtoupper(md5($concatenationValue)); + } + } - /* - * Get the values with associated fields name - * @fields : array containing multiple values information - */ - private function _getSimpleParamArray($fields) - { - $params = array(); - - foreach ($fields as $keyName => $valueDetailed) - $params[$keyName] = $valueDetailed['value']; - return $params; - } - - /* - * Manage the return value of the webservice, handle the errors or build the - * succeed message - */ - private function _parseResult($client, $result, $params) - { - $errors = array(); - $result = $result->WSI2_DetailPointRelaisResult; - if (($errorNumber = $result->STAT) != 0) - { - $errors[] = $this->_mondialrelay->l('There is an error number : ').$errorNumber; - $errors[] = $this->_mondialrelay->l('Details : '). - $this->_mondialrelay->getErrorCodeDetail($errorNumber); - } - else - { - $HDayList = array( - 'Horaires_Lundi' => $this->_mondialrelay->l('Monday'), - 'Horaires_Mardi' => $this->_mondialrelay->l('Tuesday'), - 'Horaires_Mercredi' => $this->_mondialrelay->l('Wednesday'), - 'Horaires_Jeudi' => $this->_mondialrelay->l('Thursday'), - 'Horaires_Vendredi' => $this->_mondialrelay->l('Friday'), - 'Horaires_Samedi' => $this->_mondialrelay->l('Saturday'), - 'Horaires_Dimanche' => $this->_mondialrelay->l('Sunday')); - - $orderedDate = array(); - // Format hour properly - $priority = 0; - foreach ($HDayList as $day => $tradDayName) - { - $mr_day = $result->{$day}; - foreach ($mr_day['string'] as &$value) - if ($value == '0000') - $value = ''; - else - $value = implode('h', str_split($value, 2)); - $orderedDate[$priority++] = array('name' => $tradDayName, 'list' => $mr_day); - unset($result[$day]); - } - $result->orderedDate = $orderedDate; - $this->_resultList['success'][$result->Num] = $result; - } - $this->_resultList['error'][] = $errors; - } - - /* - * Send one or multiple request to the webservice - */ - public function send() - { - if ($client = new SoapClient($this->_webserviceURL)) - { - $client->soap_defencoding = 'UTF-8'; - $client->decode_utf8 = false; - - foreach ($this->_fieldsList as $rootCase) - { - $params = $this->_getSimpleParamArray($rootCase['list']); - $result = $client->WSI2_DetailPointRelais($params); - $this->_parseResult($client, $result, $params); - } - unset($client); - } - else - throw new Exception($this->_mondialrelay->l('The Mondial Relay webservice isn\'t currently reliable')); - } - - /* - ** Generate a list of perma link - */ - public static function getPermaLink($relayList, $id_address_delivery) - { - if (!($address = new Address($id_address_delivery))) - return array(); + /* + * Get the values with associated fields name + * @fields : array containing multiple values information + */ + private function _getSimpleParamArray($fields) + { + $params = array(); + + foreach ($fields as $keyName => $valueDetailed) + $params[$keyName] = $valueDetailed['value']; + return $params; + } + + /* + * Manage the return value of the webservice, handle the errors or build the + * succeed message + */ + private function _parseResult($client, $result, $params) + { + $errors = array(); + $result = $result->WSI2_DetailPointRelaisResult; + if (($errorNumber = $result->STAT) != 0) + { + $errors[] = $this->_mondialrelay->l('There is an error number : ').$errorNumber; + $errors[] = $this->_mondialrelay->l('Details : '). + $this->_mondialrelay->getErrorCodeDetail($errorNumber); + } + else + { + $HDayList = array( + 'Horaires_Lundi' => $this->_mondialrelay->l('Monday'), + 'Horaires_Mardi' => $this->_mondialrelay->l('Tuesday'), + 'Horaires_Mercredi' => $this->_mondialrelay->l('Wednesday'), + 'Horaires_Jeudi' => $this->_mondialrelay->l('Thursday'), + 'Horaires_Vendredi' => $this->_mondialrelay->l('Friday'), + 'Horaires_Samedi' => $this->_mondialrelay->l('Saturday'), + 'Horaires_Dimanche' => $this->_mondialrelay->l('Sunday')); + + $orderedDate = array(); + // Format hour properly + $priority = 0; + foreach ($HDayList as $day => $tradDayName) + { + $mr_day = $result->{$day}; + foreach ($mr_day['string'] as &$value) + if ($value == '0000') + $value = ''; + else + $value = implode('h', str_split($value, 2)); + $orderedDate[$priority++] = array('name' => $tradDayName, 'list' => $mr_day); + unset($result[$day]); + } + $result->orderedDate = $orderedDate; + $this->_resultList['success'][$result->Num] = $result; + } + $this->_resultList['error'][] = $errors; + } + + /* + * Send one or multiple request to the webservice + */ + public function send() + { + if ($client = new SoapClient($this->_webserviceURL)) + { + $client->soap_defencoding = 'UTF-8'; + $client->decode_utf8 = false; + + foreach ($this->_fieldsList as $rootCase) + { + $params = $this->_getSimpleParamArray($rootCase['list']); + $result = $client->WSI2_DetailPointRelais($params); + $this->_parseResult($client, $result, $params); + } + unset($client); + } + else + throw new Exception($this->_mondialrelay->l('The Mondial Relay webservice isn\'t currently reliable')); + } + + /* + ** Generate a list of perma link + */ + public static function getPermaLink($relayList, $id_address_delivery) + { + if (!($address = new Address($id_address_delivery))) + return array(); - $mondialrelay = new MondialRelay(); - - $list = array(); - $iso = Tools::strtoupper(Country::getIsoById($address->id_country)); - $ens = $mondialrelay->account_shop['MR_ENSEIGNE_WEBSERVICE'].$mondialrelay->account_shop['MR_CODE_MARQUE']; - $url = 'http://www.mondialrelay.com/public/permanent/details_relais.aspx?ens='.$ens; - foreach ($relayList as $relayNum) - { - $crc = Tools::strtoupper(md5('<'.Tools::strtoupper($ens).'>'.$relayNum.$iso.'<'.$mondialrelay->account_shop['MR_KEY_WEBSERVICE'].'>')); - $list[$relayNum] = $url.'&num='.$relayNum.'&pays='.$iso.'&crc='.$crc; - } - unset($address, $mondialrelay); - return $list; - } - - /* - * Get the values with associated fields name - */ - public function getFieldsList() - { - return $this->_fieldsList['list']; - } - - /* - * Get the result of one or multiple send request - */ - public function getResult() - { - return $this->_resultList; - } + $mondialrelay = new MondialRelay(); + + $list = array(); + $iso = Tools::strtoupper(Country::getIsoById($address->id_country)); + $ens = $mondialrelay->account_shop['MR_ENSEIGNE_WEBSERVICE'].$mondialrelay->account_shop['MR_CODE_MARQUE']; + $url = 'http://www.mondialrelay.com/public/permanent/details_relais.aspx?ens='.$ens; + foreach ($relayList as $relayNum) + { + $crc = Tools::strtoupper(md5('<'.Tools::strtoupper($ens).'>'.$relayNum.$iso.'<'.$mondialrelay->account_shop['MR_KEY_WEBSERVICE'].'>')); + $list[$relayNum] = $url.'&num='.$relayNum.'&pays='.$iso.'&crc='.$crc; + } + unset($address, $mondialrelay); + return $list; + } + + /* + * Get the values with associated fields name + */ + public function getFieldsList() + { + return $this->_fieldsList['list']; + } + + /* + * Get the result of one or multiple send request + */ + public function getResult() + { + return $this->_resultList; + } } \ No newline at end of file diff --git a/classes/MRTools.php b/classes/MRTools.php index 0747560..1ff2999 100644 --- a/classes/MRTools.php +++ b/classes/MRTools.php @@ -30,241 +30,241 @@ */ class MRTools { - const REGEX_CLEAN_ADDR = '/[^a-zA-Z0-9-\s\'\!\,\|\(\)\.\*\&\#\/\:]/'; + const REGEX_CLEAN_ADDR = '/[^a-zA-Z0-9-\s\'\!\,\|\(\)\.\*\&\#\/\:]/'; - const REGEX_CLEAN_PHONE = '/[^0-9+\(\)]*/'; + const REGEX_CLEAN_PHONE = '/[^0-9+\(\)]*/'; - /** - * Check if a string could be UTF8 one - * - * @static - * @param $str - * @return bool - */ - public static function seemsUTF8($str) - { - $length = strlen($str); + /** + * Check if a string could be UTF8 one + * + * @static + * @param $str + * @return bool + */ + public static function seemsUTF8($str) + { + $length = strlen($str); - for ($i = 0; $i < $length; $i++) - { - $c = ord($str[$i]); - if ($c < 0x80) - $n = 0; # 0bbbbbbb - else if (($c & 0xE0) == 0xC0) - $n = 1; # 110bbbbb - else if (($c & 0xF0) == 0xE0) - $n = 2; # 1110bbbb - else if (($c & 0xF8) == 0xF0) - $n = 3; # 11110bbb - else if (($c & 0xFC) == 0xF8) - $n = 4; # 111110bb - else if (($c & 0xFE) == 0xFC) - $n = 5; # 1111110b - else - return false; # Does not match any model - for ($j = 0; $j < $n; $j++) - { - # n bytes matching 10bbbbbb follow ? - if ((++$i == $length) || ((ord($str[$i]) & 0xC0) != 0x80)) - return false; - } - } - return true; - } + for ($i = 0; $i < $length; $i++) + { + $c = ord($str[$i]); + if ($c < 0x80) + $n = 0; # 0bbbbbbb + else if (($c & 0xE0) == 0xC0) + $n = 1; # 110bbbbb + else if (($c & 0xF0) == 0xE0) + $n = 2; # 1110bbbb + else if (($c & 0xF8) == 0xF0) + $n = 3; # 11110bbb + else if (($c & 0xFC) == 0xF8) + $n = 4; # 111110bb + else if (($c & 0xFE) == 0xFC) + $n = 5; # 1111110b + else + return false; # Does not match any model + for ($j = 0; $j < $n; $j++) + { + # n bytes matching 10bbbbbb follow ? + if ((++$i == $length) || ((ord($str[$i]) & 0xC0) != 0x80)) + return false; + } + } + return true; + } - /** - * Converts all accent characters to ASCII characters. - * - * If there are no accent characters, then the string given is just returned. - * - * @param string $string Text that might have accent characters - * @return string Filtered string with replaced "nice" characters. - */ - public static function removeAccents($string) - { - if (!preg_match('/[\x80-\xff]/', $string)) - return $string; + /** + * Converts all accent characters to ASCII characters. + * + * If there are no accent characters, then the string given is just returned. + * + * @param string $string Text that might have accent characters + * @return string Filtered string with replaced "nice" characters. + */ + public static function removeAccents($string) + { + if (!preg_match('/[\x80-\xff]/', $string)) + return $string; - if (MRTools::seemsUTF8($string)) - { - $chars = array( - // Decompositions for Latin-1 Supplement - chr(195).chr(128) => 'A', chr(195).chr(129) => 'A', - chr(195).chr(130) => 'A', chr(195).chr(131) => 'A', - chr(195).chr(132) => 'A', chr(195).chr(133) => 'A', - chr(195).chr(135) => 'C', chr(195).chr(136) => 'E', - chr(195).chr(137) => 'E', chr(195).chr(138) => 'E', - chr(195).chr(139) => 'E', chr(195).chr(140) => 'I', - chr(195).chr(141) => 'I', chr(195).chr(142) => 'I', - chr(195).chr(143) => 'I', chr(195).chr(145) => 'N', - chr(195).chr(146) => 'O', chr(195).chr(147) => 'O', - chr(195).chr(148) => 'O', chr(195).chr(149) => 'O', - chr(195).chr(150) => 'O', chr(195).chr(153) => 'U', - chr(195).chr(154) => 'U', chr(195).chr(155) => 'U', - chr(195).chr(156) => 'U', chr(195).chr(157) => 'Y', - chr(195).chr(159) => 's', chr(195).chr(160) => 'a', - chr(195).chr(161) => 'a', chr(195).chr(162) => 'a', - chr(195).chr(163) => 'a', chr(195).chr(164) => 'a', - chr(195).chr(165) => 'a', chr(195).chr(167) => 'c', - chr(195).chr(168) => 'e', chr(195).chr(169) => 'e', - chr(195).chr(170) => 'e', chr(195).chr(171) => 'e', - chr(195).chr(172) => 'i', chr(195).chr(173) => 'i', - chr(195).chr(174) => 'i', chr(195).chr(175) => 'i', - chr(195).chr(177) => 'n', chr(195).chr(178) => 'o', - chr(195).chr(179) => 'o', chr(195).chr(180) => 'o', - chr(195).chr(181) => 'o', chr(195).chr(182) => 'o', - chr(195).chr(182) => 'o', chr(195).chr(185) => 'u', - chr(195).chr(186) => 'u', chr(195).chr(187) => 'u', - chr(195).chr(188) => 'u', chr(195).chr(189) => 'y', - chr(195).chr(191) => 'y', - // Decompositions for Latin Extended-A - chr(196).chr(128) => 'A', chr(196).chr(129) => 'a', - chr(196).chr(130) => 'A', chr(196).chr(131) => 'a', - chr(196).chr(132) => 'A', chr(196).chr(133) => 'a', - chr(196).chr(134) => 'C', chr(196).chr(135) => 'c', - chr(196).chr(136) => 'C', chr(196).chr(137) => 'c', - chr(196).chr(138) => 'C', chr(196).chr(139) => 'c', - chr(196).chr(140) => 'C', chr(196).chr(141) => 'c', - chr(196).chr(142) => 'D', chr(196).chr(143) => 'd', - chr(196).chr(144) => 'D', chr(196).chr(145) => 'd', - chr(196).chr(146) => 'E', chr(196).chr(147) => 'e', - chr(196).chr(148) => 'E', chr(196).chr(149) => 'e', - chr(196).chr(150) => 'E', chr(196).chr(151) => 'e', - chr(196).chr(152) => 'E', chr(196).chr(153) => 'e', - chr(196).chr(154) => 'E', chr(196).chr(155) => 'e', - chr(196).chr(156) => 'G', chr(196).chr(157) => 'g', - chr(196).chr(158) => 'G', chr(196).chr(159) => 'g', - chr(196).chr(160) => 'G', chr(196).chr(161) => 'g', - chr(196).chr(162) => 'G', chr(196).chr(163) => 'g', - chr(196).chr(164) => 'H', chr(196).chr(165) => 'h', - chr(196).chr(166) => 'H', chr(196).chr(167) => 'h', - chr(196).chr(168) => 'I', chr(196).chr(169) => 'i', - chr(196).chr(170) => 'I', chr(196).chr(171) => 'i', - chr(196).chr(172) => 'I', chr(196).chr(173) => 'i', - chr(196).chr(174) => 'I', chr(196).chr(175) => 'i', - chr(196).chr(176) => 'I', chr(196).chr(177) => 'i', - chr(196).chr(178) => 'IJ',chr(196).chr(179) => 'ij', - chr(196).chr(180) => 'J', chr(196).chr(181) => 'j', - chr(196).chr(182) => 'K', chr(196).chr(183) => 'k', - chr(196).chr(184) => 'k', chr(196).chr(185) => 'L', - chr(196).chr(186) => 'l', chr(196).chr(187) => 'L', - chr(196).chr(188) => 'l', chr(196).chr(189) => 'L', - chr(196).chr(190) => 'l', chr(196).chr(191) => 'L', - chr(197).chr(128) => 'l', chr(197).chr(129) => 'L', - chr(197).chr(130) => 'l', chr(197).chr(131) => 'N', - chr(197).chr(132) => 'n', chr(197).chr(133) => 'N', - chr(197).chr(134) => 'n', chr(197).chr(135) => 'N', - chr(197).chr(136) => 'n', chr(197).chr(137) => 'N', - chr(197).chr(138) => 'n', chr(197).chr(139) => 'N', - chr(197).chr(140) => 'O', chr(197).chr(141) => 'o', - chr(197).chr(142) => 'O', chr(197).chr(143) => 'o', - chr(197).chr(144) => 'O', chr(197).chr(145) => 'o', - chr(197).chr(146) => 'OE',chr(197).chr(147) => 'oe', - chr(197).chr(148) => 'R',chr(197).chr(149) => 'r', - chr(197).chr(150) => 'R',chr(197).chr(151) => 'r', - chr(197).chr(152) => 'R',chr(197).chr(153) => 'r', - chr(197).chr(154) => 'S',chr(197).chr(155) => 's', - chr(197).chr(156) => 'S',chr(197).chr(157) => 's', - chr(197).chr(158) => 'S',chr(197).chr(159) => 's', - chr(197).chr(160) => 'S', chr(197).chr(161) => 's', - chr(197).chr(162) => 'T', chr(197).chr(163) => 't', - chr(197).chr(164) => 'T', chr(197).chr(165) => 't', - chr(197).chr(166) => 'T', chr(197).chr(167) => 't', - chr(197).chr(168) => 'U', chr(197).chr(169) => 'u', - chr(197).chr(170) => 'U', chr(197).chr(171) => 'u', - chr(197).chr(172) => 'U', chr(197).chr(173) => 'u', - chr(197).chr(174) => 'U', chr(197).chr(175) => 'u', - chr(197).chr(176) => 'U', chr(197).chr(177) => 'u', - chr(197).chr(178) => 'U', chr(197).chr(179) => 'u', - chr(197).chr(180) => 'W', chr(197).chr(181) => 'w', - chr(197).chr(182) => 'Y', chr(197).chr(183) => 'y', - chr(197).chr(184) => 'Y', chr(197).chr(185) => 'Z', - chr(197).chr(186) => 'z', chr(197).chr(187) => 'Z', - chr(197).chr(188) => 'z', chr(197).chr(189) => 'Z', - chr(197).chr(190) => 'z', chr(197).chr(191) => 's', - // Euro Sign - chr(226).chr(130).chr(172) => 'E', - // GBP (Pound) Sign - chr(194).chr(163) => ''); + if (MRTools::seemsUTF8($string)) + { + $chars = array( + // Decompositions for Latin-1 Supplement + chr(195).chr(128) => 'A', chr(195).chr(129) => 'A', + chr(195).chr(130) => 'A', chr(195).chr(131) => 'A', + chr(195).chr(132) => 'A', chr(195).chr(133) => 'A', + chr(195).chr(135) => 'C', chr(195).chr(136) => 'E', + chr(195).chr(137) => 'E', chr(195).chr(138) => 'E', + chr(195).chr(139) => 'E', chr(195).chr(140) => 'I', + chr(195).chr(141) => 'I', chr(195).chr(142) => 'I', + chr(195).chr(143) => 'I', chr(195).chr(145) => 'N', + chr(195).chr(146) => 'O', chr(195).chr(147) => 'O', + chr(195).chr(148) => 'O', chr(195).chr(149) => 'O', + chr(195).chr(150) => 'O', chr(195).chr(153) => 'U', + chr(195).chr(154) => 'U', chr(195).chr(155) => 'U', + chr(195).chr(156) => 'U', chr(195).chr(157) => 'Y', + chr(195).chr(159) => 's', chr(195).chr(160) => 'a', + chr(195).chr(161) => 'a', chr(195).chr(162) => 'a', + chr(195).chr(163) => 'a', chr(195).chr(164) => 'a', + chr(195).chr(165) => 'a', chr(195).chr(167) => 'c', + chr(195).chr(168) => 'e', chr(195).chr(169) => 'e', + chr(195).chr(170) => 'e', chr(195).chr(171) => 'e', + chr(195).chr(172) => 'i', chr(195).chr(173) => 'i', + chr(195).chr(174) => 'i', chr(195).chr(175) => 'i', + chr(195).chr(177) => 'n', chr(195).chr(178) => 'o', + chr(195).chr(179) => 'o', chr(195).chr(180) => 'o', + chr(195).chr(181) => 'o', chr(195).chr(182) => 'o', + chr(195).chr(182) => 'o', chr(195).chr(185) => 'u', + chr(195).chr(186) => 'u', chr(195).chr(187) => 'u', + chr(195).chr(188) => 'u', chr(195).chr(189) => 'y', + chr(195).chr(191) => 'y', + // Decompositions for Latin Extended-A + chr(196).chr(128) => 'A', chr(196).chr(129) => 'a', + chr(196).chr(130) => 'A', chr(196).chr(131) => 'a', + chr(196).chr(132) => 'A', chr(196).chr(133) => 'a', + chr(196).chr(134) => 'C', chr(196).chr(135) => 'c', + chr(196).chr(136) => 'C', chr(196).chr(137) => 'c', + chr(196).chr(138) => 'C', chr(196).chr(139) => 'c', + chr(196).chr(140) => 'C', chr(196).chr(141) => 'c', + chr(196).chr(142) => 'D', chr(196).chr(143) => 'd', + chr(196).chr(144) => 'D', chr(196).chr(145) => 'd', + chr(196).chr(146) => 'E', chr(196).chr(147) => 'e', + chr(196).chr(148) => 'E', chr(196).chr(149) => 'e', + chr(196).chr(150) => 'E', chr(196).chr(151) => 'e', + chr(196).chr(152) => 'E', chr(196).chr(153) => 'e', + chr(196).chr(154) => 'E', chr(196).chr(155) => 'e', + chr(196).chr(156) => 'G', chr(196).chr(157) => 'g', + chr(196).chr(158) => 'G', chr(196).chr(159) => 'g', + chr(196).chr(160) => 'G', chr(196).chr(161) => 'g', + chr(196).chr(162) => 'G', chr(196).chr(163) => 'g', + chr(196).chr(164) => 'H', chr(196).chr(165) => 'h', + chr(196).chr(166) => 'H', chr(196).chr(167) => 'h', + chr(196).chr(168) => 'I', chr(196).chr(169) => 'i', + chr(196).chr(170) => 'I', chr(196).chr(171) => 'i', + chr(196).chr(172) => 'I', chr(196).chr(173) => 'i', + chr(196).chr(174) => 'I', chr(196).chr(175) => 'i', + chr(196).chr(176) => 'I', chr(196).chr(177) => 'i', + chr(196).chr(178) => 'IJ',chr(196).chr(179) => 'ij', + chr(196).chr(180) => 'J', chr(196).chr(181) => 'j', + chr(196).chr(182) => 'K', chr(196).chr(183) => 'k', + chr(196).chr(184) => 'k', chr(196).chr(185) => 'L', + chr(196).chr(186) => 'l', chr(196).chr(187) => 'L', + chr(196).chr(188) => 'l', chr(196).chr(189) => 'L', + chr(196).chr(190) => 'l', chr(196).chr(191) => 'L', + chr(197).chr(128) => 'l', chr(197).chr(129) => 'L', + chr(197).chr(130) => 'l', chr(197).chr(131) => 'N', + chr(197).chr(132) => 'n', chr(197).chr(133) => 'N', + chr(197).chr(134) => 'n', chr(197).chr(135) => 'N', + chr(197).chr(136) => 'n', chr(197).chr(137) => 'N', + chr(197).chr(138) => 'n', chr(197).chr(139) => 'N', + chr(197).chr(140) => 'O', chr(197).chr(141) => 'o', + chr(197).chr(142) => 'O', chr(197).chr(143) => 'o', + chr(197).chr(144) => 'O', chr(197).chr(145) => 'o', + chr(197).chr(146) => 'OE',chr(197).chr(147) => 'oe', + chr(197).chr(148) => 'R',chr(197).chr(149) => 'r', + chr(197).chr(150) => 'R',chr(197).chr(151) => 'r', + chr(197).chr(152) => 'R',chr(197).chr(153) => 'r', + chr(197).chr(154) => 'S',chr(197).chr(155) => 's', + chr(197).chr(156) => 'S',chr(197).chr(157) => 's', + chr(197).chr(158) => 'S',chr(197).chr(159) => 's', + chr(197).chr(160) => 'S', chr(197).chr(161) => 's', + chr(197).chr(162) => 'T', chr(197).chr(163) => 't', + chr(197).chr(164) => 'T', chr(197).chr(165) => 't', + chr(197).chr(166) => 'T', chr(197).chr(167) => 't', + chr(197).chr(168) => 'U', chr(197).chr(169) => 'u', + chr(197).chr(170) => 'U', chr(197).chr(171) => 'u', + chr(197).chr(172) => 'U', chr(197).chr(173) => 'u', + chr(197).chr(174) => 'U', chr(197).chr(175) => 'u', + chr(197).chr(176) => 'U', chr(197).chr(177) => 'u', + chr(197).chr(178) => 'U', chr(197).chr(179) => 'u', + chr(197).chr(180) => 'W', chr(197).chr(181) => 'w', + chr(197).chr(182) => 'Y', chr(197).chr(183) => 'y', + chr(197).chr(184) => 'Y', chr(197).chr(185) => 'Z', + chr(197).chr(186) => 'z', chr(197).chr(187) => 'Z', + chr(197).chr(188) => 'z', chr(197).chr(189) => 'Z', + chr(197).chr(190) => 'z', chr(197).chr(191) => 's', + // Euro Sign + chr(226).chr(130).chr(172) => 'E', + // GBP (Pound) Sign + chr(194).chr(163) => ''); - $string = strtr($string, $chars); - } - else - { - // Assume ISO-8859-1 if not UTF-8 - $chars['in'] = chr(128).chr(131).chr(138).chr(142).chr(154).chr(158) - .chr(159).chr(162).chr(165).chr(181).chr(192).chr(193).chr(194) - .chr(195).chr(196).chr(197).chr(199).chr(200).chr(201).chr(202) - .chr(203).chr(204).chr(205).chr(206).chr(207).chr(209).chr(210) - .chr(211).chr(212).chr(213).chr(214).chr(216).chr(217).chr(218) - .chr(219).chr(220).chr(221).chr(224).chr(225).chr(226).chr(227) - .chr(228).chr(229).chr(231).chr(232).chr(233).chr(234).chr(235) - .chr(236).chr(237).chr(238).chr(239).chr(241).chr(242).chr(243) - .chr(244).chr(245).chr(246).chr(248).chr(249).chr(250).chr(251) - .chr(252).chr(253).chr(255); + $string = strtr($string, $chars); + } + else + { + // Assume ISO-8859-1 if not UTF-8 + $chars['in'] = chr(128).chr(131).chr(138).chr(142).chr(154).chr(158) + .chr(159).chr(162).chr(165).chr(181).chr(192).chr(193).chr(194) + .chr(195).chr(196).chr(197).chr(199).chr(200).chr(201).chr(202) + .chr(203).chr(204).chr(205).chr(206).chr(207).chr(209).chr(210) + .chr(211).chr(212).chr(213).chr(214).chr(216).chr(217).chr(218) + .chr(219).chr(220).chr(221).chr(224).chr(225).chr(226).chr(227) + .chr(228).chr(229).chr(231).chr(232).chr(233).chr(234).chr(235) + .chr(236).chr(237).chr(238).chr(239).chr(241).chr(242).chr(243) + .chr(244).chr(245).chr(246).chr(248).chr(249).chr(250).chr(251) + .chr(252).chr(253).chr(255); - $chars['out'] = 'EfSZszYcYuAAAAAACEEEEIIIINOOOOOOUUUUYaaaaaaceeeeiiiinoooooouuuuyy'; + $chars['out'] = 'EfSZszYcYuAAAAAACEEEEIIIINOOOOOOUUUUYaaaaaaceeeeiiiinoooooouuuuyy'; - $string = strtr($string, $chars['in'], $chars['out']); - $double_chars = array(); - $double_chars['in'] = array(chr(140), chr(156), chr(198), chr(208), chr(222), chr(223), chr(230), chr(240), chr(254)); - $double_chars['out'] = array('OE', 'oe', 'AE', 'DH', 'TH', 'ss', 'ae', 'dh', 'th'); - $string = str_replace($double_chars['in'], $double_chars['out'], $string); - } - return $string; - } + $string = strtr($string, $chars['in'], $chars['out']); + $double_chars = array(); + $double_chars['in'] = array(chr(140), chr(156), chr(198), chr(208), chr(222), chr(223), chr(230), chr(240), chr(254)); + $double_chars['out'] = array('OE', 'oe', 'AE', 'DH', 'TH', 'ss', 'ae', 'dh', 'th'); + $string = str_replace($double_chars['in'], $double_chars['out'], $string); + } + return $string; + } - /* Add for 1.3 compatibility and avoid duplicate code */ - public static function jsonEncode($result) - { - return (method_exists('Tools', 'jsonEncode')) ? - Tools::jsonEncode($result) : Tools::jsonEncode($result); - } - - /* - ** Fix security and compatibility for PS < 1.4.5 - */ - public static function bqSQL($string) - { - return str_replace('`', '\`', pSQL($string)); - } - - /* - ** Check zip code by country - */ - public static function checkZipcodeByCountry($zipcode, $params) - { - $id_country = $params['id_country']; - - $zipcodeFormat = Db::getInstance()->getValue(' - SELECT `zip_code_format` - FROM `'._DB_PREFIX_.'country` - WHERE `id_country` = '.(int)$id_country); + /* Add for 1.3 compatibility and avoid duplicate code */ + public static function jsonEncode($result) + { + return (method_exists('Tools', 'jsonEncode')) ? + Tools::jsonEncode($result) : Tools::jsonEncode($result); + } + + /* + ** Fix security and compatibility for PS < 1.4.5 + */ + public static function bqSQL($string) + { + return str_replace('`', '\`', pSQL($string)); + } + + /* + ** Check zip code by country + */ + public static function checkZipcodeByCountry($zipcode, $params) + { + $id_country = $params['id_country']; + + $zipcodeFormat = Db::getInstance()->getValue(' + SELECT `zip_code_format` + FROM `'._DB_PREFIX_.'country` + WHERE `id_country` = '.(int)$id_country); - // -1 to warn user that no layout exist - if (!$zipcodeFormat) - return -1; + // -1 to warn user that no layout exist + if (!$zipcodeFormat) + return -1; - $regxMask = str_replace( - array('N', 'C', 'L'), - array( - '[0-9]', - Country::getIsoById((int)$id_country), - '[a-zA-Z]'), - $zipcodeFormat); - if (preg_match('/'.$regxMask.'/', $zipcode)) - return true; - return false; - } + $regxMask = str_replace( + array('N', 'C', 'L'), + array( + '[0-9]', + Country::getIsoById((int)$id_country), + '[a-zA-Z]'), + $zipcodeFormat); + if (preg_match('/'.$regxMask.'/', $zipcode)) + return true; + return false; + } - public static function getFormatedPhone($phone_number) - { - $begin = Tools::substr($phone_number, 0, 3); - $pad_number = (strpos($begin, '+3') !== false) ? 12 : - (strpos($begin, '00') ? 13 : 10); + public static function getFormatedPhone($phone_number) + { + $begin = Tools::substr($phone_number, 0, 3); + $pad_number = (strpos($begin, '+3') !== false) ? 12 : + (strpos($begin, '00') ? 13 : 10); - return str_pad(Tools::substr(preg_replace(MRTools::REGEX_CLEAN_PHONE, '', $phone_number), 0, $pad_number), $pad_number, '0'); - } + return str_pad(Tools::substr(preg_replace(MRTools::REGEX_CLEAN_PHONE, '', $phone_number), 0, $pad_number), $pad_number, '0', STR_PAD_LEFT); + } } ?> diff --git a/classes/index.php b/classes/index.php index dd2cf57..59b98f1 100644 --- a/classes/index.php +++ b/classes/index.php @@ -26,10 +26,10 @@ header("Expires: Mon, 26 Jul 1997 05:00:00 GMT"); header("Last-Modified: ".gmdate("D, d M Y H:i:s")." GMT"); - + header("Cache-Control: no-store, no-cache, must-revalidate"); header("Cache-Control: post-check=0, pre-check=0", false); header("Pragma: no-cache"); - + header("Location: ../"); exit; \ No newline at end of file diff --git a/classes/lib/changelog b/classes/lib/changelog new file mode 100644 index 0000000..b76580e --- /dev/null +++ b/classes/lib/changelog @@ -0,0 +1,648 @@ +2003-07-21, version 0.6.5 +- soap_transport_http: SOAPAction header is quoted again, fixes problem w/ Weblogic Server +- applied Jason Levitt patch for proper array serialization, fixes problem w/ Amazon shopping cart services +- fixed null value serialization +- applied patch from "BZC ToOn'S" - fixes wsdl serialization when no parameters +- applied John's patch, implementing compression for the server + +2003-07-22, version 0.6.5 +- soap_server: fixed bug causing charset encoding not to be passed to the parser +- soap_fault: added default encoding to the fault serialization +- soap_parser: changed the parser to pre-load the parent's result array when processing scalar values. This increases parsing speed. + +2003-07-23, version 0.6.5 +- soap_base: fix code that overwrites user-supplied attributes in serialize_val +- soap_base: use arrays-of-arrays rather than attempting multi-dimensional in serialize_val +- xmlschema: emit import statements and qualify all elements with prefix in serializeSchema (better interop with validation tools) +- soapclient: get xml character encoding from HTTP Content-Type header if provided, e.g. text/xml;charset="UTF-8" +- soapclient: use headers in call if provided (previously ignored this parameter) +- soap_server: in parse_request, if neither getallheaders nor $_SERVER are available, use $HTTP_SERVER_VARS to get SOAPAction and xml encoding + +2003-07-24, version 0.6.5 +- soap_transport_http: apply patch from Steven Brown "if the server closes connection prematurely, nusoap would spin trying to read data that isn't there" + +2003-07-25, version 0.6.5 +- wsdl: apply patch from Sven to workaround single schema limitation +- wsdl: apply a variant of the patch from Holger to handle empty values for array by serializing an array with 0 elements +- xmlschema: remove the redundant default namespace attribute on the schema element; everything in xsd is explicitly specified as being from xsd +- soap_transport_http: fix setCredentials and add TODO comments in sendHTTPS about what to change if this setCredentials stays + +2003-07-30, version 0.6.5 +- nusoap_base: change documentation of soap_defencoding to specify it is the encoding for outgoing messages +- nusoap_base: only change &, <, > to entities, not all HTML entities +- soap_transport_http: update the Content-Type header in sendRequest, since soap_defencoding could be changed after ctor is called +- soap_server: use soap_defencoding instead of charset_encoding +- soap_server: read encoding from _SERVER if available +- nusoap_base: do entity translation for string parameters with an xsd type specified (thanks David Derr) + +2003-07-31, version 0.6.5 +- soap_transport_http: add proxy authentication +- soap_transport_http: build payload the same way for http and https +- wsdl: add proxy authentication +- soapclient: add proxy authentication +- soapclient: allow proxy information in ctor, so that it can be used for wsdl + +2003-08-01, version 0.6.5 +- soap_transport_http: close a persistent connection that's at EOF +- soap_transport_http: prevent conflicts between setEncoding and usePersistentConnection +- soap_transport_http: fix use of $headers instead of $this->incoming_headers in getResponse +- soapclient: improve handling of persistent connections +- soapclient: force xml_encoding to upper case +- soap_server: let the Web server decide whether to close the connection (no Connection: close header) +- soap_server: force xml_encoding to upper case + +2003-08-04, version 0.6.5 +- soap_parser: use XML type information to pick a PHP data type; also decode base64 +- soap_server: read all HTTP headers when using _SERVER or HTTP_SERVER_VARS +- soap_server: add gzip encoding support for outgoing messages +- soap_transport_http: deflate is gzcompress/gzuncompress (cf. http://archive.develooper.com/libwww@perl.org/msg04650.html) +- soap_transport_http: clean use of persistentConnection so it's always a set boolean +- soapclient: add responseData member to access deflated/gunzipped payload + +2003-08-05, version 0.6.5 +- soap_server: look multiple places when setting debug_flag + +2003-08-07, version 0.6.5 +- nusoap_base: serialize specified type (e.g. ArrayOfString) even for simple array +- wsdl: only specify encodingStyle in the input/output soap bindings when it is not empty (thanks Guillaume) + +2003-08-15, version 0.6.5 +- soap_parser: fix parsing of elements with no XSD type specified +- soap_parser: use PHP string type for XSD long and unsignedLong types + +2003-08-16, version 0.6.5 +- soap_parser: fix code generating warning (thanks Torsten) + +2003-08-19, version 0.6.5 +- soap_parser: fix another line of code generating a warning (thanks Torsten) + +2003-08-22, version 0.6.5 +- soap_server: remove all '--' from debug_str; previous code changed '---' to '- --' +- wsdl, soapclient, soap_parser: patch submitted by Mark Spavin as described by + the following... +> Changes for the multiple/nested imports from the wsdl file. This builds an +> array of files not just the last one and also checks for relative paths to +> the parent. This will then get the imported files from the remote site +> instead of your local disk. Local wsdl files should still work (untested). +> +> Changes for multiple encoding sytles as previously posted + +2003-08-24, version 0.6.5 +- wsdl, soapclient: fix some PHP notices from previous update + +2003-08-26, version 0.6.5 +- wsdl: support multiple SOAP ports +- soapclient, soap_server: when no charset is specified, use UTF-8, even though HTTP specifies US-ASCII. +- soap_transport_http: do not prepend $host with 'ssl://' for https (is this required for older cURL versions?) + +2003-08-27, version 0.6.5 +- soap_server: support compressed request messages (thanks John Huong) +- soap_parser: deserialize Apache Vector as an array +- xmlschema: use $this->typemap in getPHPType (which is not used) +- soapclient, wsdl: check for WSDL errors after serializing parameters +- nusoap_base: add serialization of Apache Map (when not using WSDL) +- wsdl: add serialization of Apache Map (when using WSDL) +- wsdl: only change &, <, > to entities, not all HTML entities + +2003-08-28, version 0.6.5 +- soap_transport_http: disable cURL verification of peer and server (formerly the cURL default) +- soap_transport_http: mingle cURL code with straight http, so sendHTTP is no longer needed + +2003-08-29, version 0.6.6 +- soap_transport_http: add setContentType +- soapclient: call setContentType using new getHTTPContentType and getHTTPContentTypeCharset + +2003-09-05, version 0.6.6 +- wsdl: add some more code to handle null/nil values (but there's still a way to go) + +2003-10-21, version 0.6.6 +- soap_transport_http: only include port in Host header if it was specified in the URL +- soap_transport_http: add some code to use OpenSSL for PHP ssl:// scheme, but comment out since it's not ready +- soap_server: use $_SERVER['PHP_SELF'] if $GLOBALS['PHP_SELF'] is not set +- wsdl: add WSDL request and response and transport debug to debug +- wsdl: handle custom type extending xmlschema namespace (GLUE ... Thanks Matt) +- soap_parser: add param to docs +- soapclient: add getHTTPBody, getHTTPContentType, getHTTPContentTypeCharset (anticipating MIME subclass) + +2003-10-28, version 0.6.6 +- nusoap_base: add expandEntities method +- wsdl: use expandEntities +- soap_fault: use expandEntities +- soap_transport_http: Allow credentials to be included in URL, rather than requiring setCredentials +- soap_transport_http: Merge HTTP headers that span multiple lines +- soap_parser: Properly set errors in ctor +- soapclient: Pass headers to parseResponse and parse them in that method + +2003-10-30, version 0.6.6 +- xmlschema: Add some information for the related type to an element + +2003-12-09, version 0.6.6 +- nusoap_base: Add some namespace methods previously in xmlschema +- xmlschema: Improve parsing of complexType, element and simpleType +- xmlschema: Improve serialization +- xmlschema: Track imports +- xmlschema: Track elementFormDefault and form attributes +- wsdl: Support multiple (note that setting $server->wsdl->schemaTargetNamespace no longer does anything! Use configureWSDL instead.) +- wsdl: Use form attribute of element to control namespace specification +- wsdl: Support chained imports (A imports B which imports C) +- wsdl: Include port in endpoint address when serializing +- soap_server: Fix use of style (rpc|document) and use (encoded|literal) +- soap_server: Support _SERVER[CONTENT_TYPE] in addition to _SERVER[HTTP_CONTENT_TYPE] +- soap_server: Support wsdl with multiple +- soap_client: Remove a var_dump +- soap_client: Add style and use parameters to call method to support doc/lit without WSDL +- soap_transport_http: Check that $this->fp exists when doing persistent connections + +2003-12-17, version 0.6.6 +- soap_server: pass namespaces to xmlschema constructor +- wsdl: post-process after all imports +- wsdl: remove some debug, add some error handling +- xmlschema: allow enclosing namespaces to be specified in constructor +- xmlschema: improve handling of compositors and simple types + +2004-01-08, version 0.6.6 +- soap_server: when requested WSDL is in a file, return to client using passthru (thanks Ingo Fischer) +- soapclient: have proxy inherit more client state +- soapclient: allow timeout and response timeout to be specified in the constructor +- wsdl: allow timeout and response timeout to be specified in the constructor +- soap_transport_http: allow response timeout to be specified in send and sendHTTPS + +2004-01-28, version 0.6.6 +- wsdl: add namespace for array and scalar when form is qualified +- wsdl: fix a bug in which data type of complexType elements were ignored in serialization +- wsdl: enhance handling of URLs with file scheme +- wsdl: add addSimpleType +- xmlschema: add addSimpleType +- xmlschema: always set phpType elements +- soapclient: allow a wsdl instance to be specified in constructor +- soap_server: allow a wsdl instance to be specified in constructor (not tested!) +- soap_server: fix default SOAPAction created in register method +- soap_transport_http: accept chunking with LF separators in addition to CRLF. +- wsdlcache: added class +- nusoapmime: fix comments + +2004-02-23, version 0.6.6 +- soap_transport_http: don't try to unchunk cURL data, since cURL already does it +- soap_transport_http: append CVS revision to version in User-Agent +- wsdl: serialize boolean as true|false, not 1|0, to agree with XML Schema +- soap_server: always exit() after returning WSDL +- soap_server: use the WSDL URL scheme as the default endpoint URL scheme +- soap_server: append CVS revision to version in X-SOAP-Server +- nusoap_base: add (CVS) revision +- wsdlcache: synchronize using a per-WSDL lock file (Thanks Ingo) +- wsdlcache: add cache lifetime, after which cache contents are invalidated (Thanks Ingo) + +2004-03-15, version 0.6.6 +- nusoap_base: add isArraySimpleOrStruct method +- soap_server: improve WSDL URL scheme determination +- soap_server: only deflate/gzip payloads > 1024 bytes +- soap_server: fix parameter order in fault method (always used as faultcode, faultstring) +- soap_server: refactor parse_request into multiple functions (for sanity) +- soap_server: set the namespace on the Response element to the same as the request +- soap_server: name the return value element 'return' by default +- soap_server: added and documented data fields, so that service programmers can use them if desired +- soap_parser: standardize parsing error message +- soap_parser: fix document and responseHeaders so they are the correct XML text (as documented) +- soap_transport_http: fix read from persistent connection +- soapclient: clean up debugging for persistent connection +- wsdl: enforce correct naming of messages parts when an associative array is used for parameters +- wsdl: better serialization of null values +- wsdl: standardize parsing error message +- xmlschema: standardize parsing error message + +2004-03-24, version 0.6.7 +- soap_transport_http: add digest authentication (based on code by Kevin A. Miller) +- xmlschema: improve parsing of import elements +- wsdl: do schema imports even if there are no wsdl imports + +2004-04-12, version 0.6.7 +- wsdl: serialize multiple elements when maxOccurs="unbounded" and value is an array +- wsdl: serialize soapval values (used to force an XML type, e.g. when WSDL uses an abstract type) +- nusoapmime: do not require nusoap.php (it is now the programmer's responsibility) + +2004-04-21, version 0.6.7 +- soap_parser: parse repeated element name into an array (de-serializes doc/lit array into a PHP array when there is more than 1 array element) +- soap_server: do not wrap response in a response element for a document style service + +2004-04-30, version 0.6.7 +- soap_transport_http: allow digest auth params to be separated by "," as well as ", " +- soap_transport_http: re-initialize incoming headers for each response +- soap_server: add methodreturnisliteralxml property to allow service function to return XML as a string +- soapclient: improve rpc/literal support +- soapclient: allow XML string as call params in addition to array +- soapclient: support document style and literal encoding when not using WSDL + +2004-05-05, version 0.6.7 +- wsdl: serialize PHP objects for WSDL XML Schema complexTypes, in addition to associative arrays +- wsdl: fix WSDL generation when there is no encodingStyle +- soap_transport_http: suppress fsockopen warnings +- soap_transport_http: detect socket timeouts when reading (0 bytes returned) +- soap_transport_http: read chunked content "in-line" so it works on a persistent connection +- nusoap_base: serialize boolean as true|false, not 1|0, to agree with XML Schema +- nusoap_base: serialize array of struct differently than array of array + +2004-06-25, version 0.6.8 +- soap_server: prefer gzip to deflate, since IE does not like our deflate +- soap_server: move webDescription to the wsdl class +- soap_server: allow class and instance method calls for service (thanks Ingo Fischer and Roland Knall) +- wsdl: get webDescription from the soap_server class +- wsdl: allow compression from the server +- wsdl: fix serialization of soapval without a type +- wsdl: propagate debug value from query string to SOAP endpoint in programmatic WSDL generation +- nusoap_base: add anyType, anySimpleType for 2001 XML Schema +- nusoap_base: provide additional debug functions +- soap_transport_http: ignore Content-Length when chunked encoding is used +- soap_transport_http: remove ':' from username for Basic authentication (cf. RFC 2617) +- soap_transport_http: urldecode username and password taken from URL +- soap_transport_http: use raw inflate/deflate for IE/IIS compatibility, rather than having Zlib headers according to HTTP 1.1 spec +- soap_transport_http: attempt to handle the case when both the service application and Web server compress the response +- soapclient: when creating proxy methods, replace '.' in operation name with '__' in function name +- soapclient: initialize requestHeaders in proxy +- general: use new debug methods; never access debug_str directly + +2004-09-30, version 0.6.8 +- soapclient: do not allow getProxy call when WSDL is not used +- soapclient: use ISO-8859-1 as the charset if not specified in the Content-Type header +- soapclient: when an empty string is specified for the call namespace, do not put the method element in a namespace +- soapclient: let soap_transport_http check for SSL support +- soapclient: have proxy inherit soap_defencoding from the client from which it is generated +- soapclient: do not assume that 'ns1' is an unused namespace prefix; always generate namespace prefixes randomly +- soap_parser: compare any encoding in the XML declaration to the charset from the HTTP Content-Type header (thanks Ingo Fischer) +- soap_parser: improve parse repeated element name into an array (de-serializes doc/lit array into a PHP array when there is more than 1 array element) +- soap_server: use ISO-8859-1 as the charset if not specified in the Content-Type header +- soap_server: allow suppression of automatic UTF-8 decoding +- soap_server: fix a bug when call_user_func_array() is used +- soap_transport_http: correct digest authentication through a proxy +- wsdl: serialize SOAP-ENC types similarly to XSD types +- xmlschema: force unprefixed type into default namespace +- xmlschema: fix serialization of definition of simple types + +2004-10-01, version 0.6.8 +- soap_parser: handle default namespace attributes +- soap_server: add default_utf8 field +- soap_server: support literal encoding (with RPC style) +- soap_transport_http: parse HTTP status and generate error for 300, 302-307, 400, 401-417, 501-505 (thanks for the idea Ghislain) +- soap_transport_http: follow HTTP redirection (HTTP status 301 and Location header) (thanks for the idea Ghislain) +- xmlschema: allow any attributes to be specified in an element of a complexType, e.g., abstract, default, form, minOccurs, maxOccurs, nillable (thanks Jirka Pech for the original patch) + +2004-10-02, version 0.6.8 +- soapclient: read/write cookies (thanks Ingo) +- soap_server: change faultcode on non-resendable faults to Client +- soap_transport_http: read/write cookies (thanks Ingo) + +2004-10-05, version 0.6.8 +- wsdl: add addElement method +- wsdl: support the document style in the register method +- xmlschema: parse unnamed simpleTypes, rather than ignoring them +- xmlschema: include untyped elements when parsing a complexType +- xmlschema: add addElement method + +2004-10-14, version 0.6.8 +- soapclient: support client certificates +- soap_parser: deserialize attributes, prefixing names with "!" +- soap_server: notify the client with HTML when WSDL is requested but not supported by service +- soap_transport_http: support client certificates +- wsdl: support defaults for elements of a complexType +- wsdl: serialize elements from complexType extension base +- wsdl: serialize data (associative array elements) as attributes according to XML Schema +- xmlschema: record extension base if present for a complexType + +2004-12-15, version 0.6.8 +- nusoap_base: add 2000 XML Schema (rare, but used by Akamai) +- soap_parser: avoid deserializing more common attributes that are not data +- soap_parser: be lax when HTTP specifies ISO-8859-1 (the default) and XML specifies UTF-8 (the norm) +- soap_server: account for the fact that get_class_methods returns methods in all lower case (thanks Steve Haldane) +- soap_transport_http: parse digest info that includes '=' in the data (thanks Jinsuk Kim) +- wsdl: feably handle some cases for literal serialization of form="unqualified" elements +- wsdl: don't serialize the decimal portion of a PHP double when the XML type is long +- wsdl: fix serialization of attributes for complexType that is an extension +- wsdlcache: enhance diagnostics +- xmlschema: handle untyped elements +- xmlschema: handle WSDL for SOAP Array that uses the base attribute plus a sequence of element + +2005-01-22, version 0.6.8 +- wsdl: allow an element in one schema to have a type from another schema + +2005-01-24, version 0.6.8 +- xmlschema: correctly parse nested complexType definitions + +2005-02-14, version 0.6.8 +- nusoap_base: fix a bug in which attributes were sometimes not serialized with a value +- nusoap_base: improve serialization of null values (thanks Dominique Stender) +- soap_parser: parse null values by handling the nil attribute (thanks Dominique Stender) +- soap_server: set character encoding for a fault to be the same as for the server (thanks Mark Scott) +- soap_server: correctly check for null value returned from method when WSDL is used (without WSDL, cannot distinguish whether NULL or void return is desired) +- soapclient: for document style, call should always return an array rooted at the response part (all bets are off when there are multiple parts) +- xmlschema: save enumeration values parsed from WSDL + +2005-02-10, version 0.6.9 +- soapclient: only set SOAP headers when they are specified in call params (so setHeaders still works) + +2005-04-04, version 0.6.9 +- soap_server: use get_class instead of is_a (thanks Thomas Noel) +- soapclient: use get_class instead of is_a (thanks Thomas Noel) +- soapclient: add setEndpoint method +- soap_transport_http: fix client certificates (thanks Doug Anarino and Eryan Eriobowo) + +2005-04-29, version 0.6.9 +- nusoap_base: add global variable and methods for setting debug level +- nusoap_base: use xsd:anyType instead of xsd:ur-type to serialize arrays with multiple element types (thanks Ingo Fischer) +- nusoap_base: expand entities in attributes (thanks Gaetano Giunta) +- soapclient: call parent constructor +- soapval: call parent constructor +- soap_fault: call parent constructor +- soap_parser: call parent constructor +- soap_server: assume get_class_methods always returns lower case for PHP 4.x only +- soap_server: call parent constructor +- soap_transport_http: do nothing in setEncoding if gzdeflate is not present (thanks Franck Touanen for pointing this out) +- soap_transport_http: fix check for server request for digest authentication (thanks Mark Spavin) +- soap_transport_http: call parent constructor +- wsdl: fix documentation page popup of one method after another (thanks Owen) +- wsdl: call parent constructor +- wsdl: expand entities in attributes (thanks Gaetano Giunta) +- xmlschema: call parent constructor + +2005-06-03, version 0.6.9 +- nusoap_base: serialize empty arrays as having elements xsd:anyType[0] +- nusoap_base: add encodingStyle parameter to serializeEnvelope +- nusoap_base: serialize xsi:type with nil values +- nusoap_base: improve debug and comments +- soap_parser: correctly parse an empty array to an empty array, not an empty string +- soap_parser: improve debug and comments +- soap_server: specify encodingStyle for envelope when WSDL is used +- soapclient: factor out new getProxyClassCode method +- soapclient: specify encodingStyle for envelope +- soapclient: improve debug and comments +- wsdl: add namespace for Apache SOAP types if a variable of such type is serialized +- wsdl: serialize nil value for nillable elements when no value is provided +- wsdl: serialize xsi:type with nil values +- wsdl: copy attributes as well as elements to an element from its complexType +- wsdl: specify encodingStyle for operations +- wsdl: improve debug and comments +- xmlschema: improve debug and comments + +2005-06-03, version 0.7.0 +- nusoap_base: improve debug and comments +- nusoap_base: fix version, which should have been 0.7.0 since 2005-03-04 + +2005-06-06, version 0.7.1 +- nusoap_base: adjust numeric element names for serialization, instead of forcing them to 'soapVal' +- nusoapmime: add type=text/xml to multipart/related (thanks Emmanuel Cordonnier) +- soap_fault: fix serialization of detail +- soap_server: check required parameters for register method +- soap_server: when getallheaders is used, massage header names +- soap_server: use SOAPAction to determine operation when doc/lit service does not wrap parameters in an element with the method name (thanks Peter Hrastnik) +- soap_transport_http: correctly handle multiple HTTP/1.1 100 responses for https (thanks Jan Slabon) +- wsdl: fixed documentation for addComplexType (thanks Csintalan Įdįm) +- wsdl: serialize array data when maxOccurs = 'unbounded' OR maxOccurs > 1 (thanks Dominique Schreckling) +- wsdl: when serializing a string == 'false' as a boolean, set the value to false +- wsdl: when serializing a complexType, require the PHP value supplied to be an array + +2005-07-01, version 0.7.1 +- nusoap_base: Allow SOAP headers to be supplied as an array like parameters +- soap_parser: de-serialize simpleContent that accompanies complexContent +- soap_server: append debug information when programmatically-defined WSDL is returned +- soap_transport_http: Add debug when an outgoing header is set +- soapclient: Allow SOAP headers to be supplied as an array like parameters +- xmlschema: serialize attributes more generally, rather than assuming they are for SOAP 1.1 Array +- wsdl: when serializing, look up types by namespace, not prefix (simple programmatic doc/lit WSDL now seems to work) +- wsdl: process namespace declarations first when parsing an element + +2005-07-27, version 0.7.1 +- nusoap_base: do not override supplied element name with class name when serializing an object in serialize_val +- nusoap_base: remove http://soapinterop.org/xsd (si) from namespaces array +- nusoapmime: add nusoapservermime class to implement MIME attachments on the server +- soap_fault: improve documentation +- soap_server: improve documentation +- soap_server: make consistent use of _SERVER and HTTP_SERVER_VARS +- soap_server: make all incoming HTTP header keys lower case +- soap_server: add hook functions to support subclassing for MIME attachments +- soap_transport_http: remove an unnecessary global statement +- soapclient: when creating a proxy, make $params within each function an associative array +- soapval: improve documentation +- wsdl: when serializing complexType elements, used typed serialization if there is either a type or a reference for the element +- wsdl: allow PHP objects to be serialized as SOAP structs in serializeType +- wsdl: for WSDL and XML Schema imports, don't forget to use the TCP port number (thanks Luca GIOPPO) +- wsdl: make consistent use of _SERVER and HTTP_SERVER_VARS +- xmlschema: improve documentation + +2005-07-31, version 0.7.2 +- nusoap_base: correctly serialize attributes in serialize_val (thanks Hidran Arias) +- soap_parser: when resolving references, do not assume that buildVal returns an array (thanks Akshell) +- soap_parser: removed decode_entities, which does not work (thanks Martin Sarsale) +- soap_server: fix a bug parsing headers from _SERVER and HTTP_SERVER_VARS (thanks Bert Catsburg) +- soap_server: parse all "headers" from HTTP_SERVER_VARS (not just HTTP_*) +- soap_server: use PHP_SELF instead of SCRIPT_NAME for WSDL endpoint +- soap_server: when generating a fault while debug_flag is true, put debug into faultdetail +- wsdl: add enumeration parameter to addSimpleType +- xmlschema: add enumeration parameter to addSimpleType + +2006-02-02, version 0.7.2 +- soapclient: initialize paramArrayStr to improve proxy generation +- soap_parser: handle PHP5 soapclient's incorrect transmission of WSDL-described SOAP encoded arrays. +- soap_server: don't assume _SERVER['HTTPS'] is set; try HTTP_SERVER_VARS['HTTPS'] if it is not +- soap_server: "flatten out" the parameter array to call_user_func_array (thanks André Mamitzsch) +- soap_server: make thrown exceptions conform to specs +- wsdl: use serialize_val to serialize an array when the XSD type is soapenc:Array (JBoss/Axis does this) +- wsdl: change formatting of serialized XML for the WSDL +- xmlschema: change formatting of namespaces when serializing XML for the schema + +2006-04-07, version 0.7.2 +- soap_server: if methodparams is not an array, call call_user_func_array with an empty array (thanks Eric Grossi) +- wsdl: distinguish parts with element specified from those with type specified by suffixing element names with ^ +- wsdl: do a case-insensitive match on schema URI when looking for type +- xmlschema: only get element (not type) when name has ^ suffix + +2006-05-16, version 0.7.2 +- soapclient: add getHeader to get parsed SOAP Header +- soap_parser: check status when receiving Header or Body element +- soap_parser: add soapheader +- soap_server: add requestHeader with parsed SOAP Header + +2006-06-15, version 0.7.2 +- wsdl: fix bug in addComplexType (thanks Maarten Meijer) +- soap_transport_http: change cURL message + +2007-03-19, version 0.7.2 +- soapclient: declare as nusoapclient, then also subclass soapclient if SOAP extension not loaded +- soapclientmime: declare as nusoapclientmime, then also subclass soapclientmime if SOAP extension not loaded + +2007-03-28, version 0.7.2 +- nusoap_base: fix serialization of a soapval when its value is a soapval +- soapval: fix serialization of a soapval when its value is a soapval +- soapval: add __toString (cf. http://article.gmane.org/gmane.comp.php.nusoap.general/2776) +- nusoapclient: use lazy retrieval of WSDL instead of always getting it in the constructor +- nusoapclient: fix getProxy that was broken in last revision +- wsdl: add ability to set authorization credentials and retrieve WSDL outside of constructor + +2007-04-05, version 0.7.2 +- nusoapclientmime: don't rely exclusively on Content-Disposition to distinguish the root part from attachment; also check Content-Type (thanks Ben Bosman) +- nusoapclientmime: obey RFC 2045 Section 5.1 (thanks Chris Butler) +- nusoapservermime: don't rely exclusively on Content-Disposition to distinguish the root part from attachment; also check Content-Type (thanks Ben Bosman) +- nusoapservermime: obey RFC 2045 Section 5.1 (thanks Chris Butler) +- nusoap_base: remove extra whitespace from some XML elements +- nusoap_base: allow SOAP headers to be specified as an associative array (thanks Unique) +- nusoap_base: implement __toString +- nusoap_base: improve doc accuracy and consistency (thanks Martin K?gler) +- iso8601_to_timestamp: avoid problem with negative hours after calculation, etc. (thanks Guntram Trebs) +- nusoapclient: support user-settable cURL options (thanks Ciprian Popovici) +- nusoapclient: call SOAP 1.2 binding operations if no SOAP 1.1 present (there is no reason to believe this will always work!) +- nusoapclient: improve doc accuracy and consistency (thanks Martin K?gler) +- soap_server: don't try to use eval to call function when any parameter is an object +- soap_server: don't print return value within debug string; returned objects would need __toString in PHP 5.2 +- soap_server: use URL scheme for WSDL access as the scheme in SOAPAction +- soap_server: strip port number from server name (some FastCGI implementations include port in server name) +- soap_transport_http: support user-settable cURL options (thanks Ciprian Popovici) +- soap_transport_http: use cURL for NTLM authentication +- soap_transport_http: make digest authentication work for GET as well as POST +- soap_transport_http: improve doc accuracy and consistency (thanks Martin K?gler) +- soapval: remove __toString +- wsdl: set operation style if necessary, but do not override one already provided (thanks Raffaele Capobianco) +- wsdl: check SOAP 1.2 binding operations if no SOAP 1.1 present +- wsdl: improve doc accuracy and consistency (thanks Martin K?gler) +- xmlschema: fix simpleType serialization +- xmlschema: improve doc accuracy and consistency (thanks Martin K?gler) + +2007-04-09, version 0.7.2 +- nusoapclient: set decode_utf8 when creating a proxy (thanks Dmitri Dmitrienko) +- nusoapclient: rename class to nusoap_client +- soap_fault: also provide a class named nusoap_fault +- soap_parser: also provide a class named nusoap_parser +- soap_server: also provide a class named nusoap_server +- soap_transport_http: skip HTTP responses 301 and 401 when using cURL +- soap_transport_http: don't force HTTP Connection header when using cURL +- soap_transport_http: don't set HTTP Host and Content-Length headers when using cURL +- soap_transport_http: support CURLOPT_SSLCERTPASSWD (thanks David Blanco) +- wsdl: support user-settable cURL options (thanks Ciprian Popovici) +- wsdl: serialize parameters for non-SOAP 1.1 binding operations (there is no reason to believe this will always work!) +- xmlschema: also provide a class named nusoap_xmlschema +- nusoapclientmime: rename class to nusoap_client_mime +- nusoapservermime: rename class to nusoap_server_mime + +2007-04-11, version 0.7.2 +- nusoap_client: enable cURL usage to be forced (thanks Giunta Gaetano) +- soap_transport_http: enable cURL proxy usage (thanks Giunta Gaetano) +- soap_transport_http: enable cURL usage to be forced (thanks Giunta Gaetano) +- soap_transport_http: use cURL's HTTP authentication options for basic, digest +- wsdl: enable cURL usage to be forced (thanks Giunta Gaetano) + +2007-04-12, version 0.7.2 +- nusoap_client: add debug +- nusoap_xmlschema: don't add elements of complexTypes to elements array (thanks Heiko Hund) +- soap_transport_http: set cURL connection timeout if supported +- soap_transport_http: add debug when setting cURL option +- soap_transport_http: fix digest authentication broken in previous revision +- wsdl: add debug +- wsdlcache: address some issues with non-existing cache-files and PHP Warnings which came in such cases (thanks Ingo Fischer) +- wsdlcache: change class name to nusoap_wsdlcache + +2007-04-13, version 0.7.2 +- wsdl: wrap parameters if unwrapped values are supplied and WSDL specifies Microsoft-style wrapping + +2007-04-16, version 0.7.2 +- nusoap_base: avoid warning in getDebugAsXMLComment +- nusoap_client: small debug change +- nusoap_client_mime: set responseData when the root part is found + +2007-04-17, version 0.7.2 +- soap_transport_http: improve detection of undefined cURL options (thanks Ingo Fischer) + +2007-05-28, version 0.7.2 +- soap_transport_http: support digest authentication opaque feature (cf. RFC 2617) (thanks Daniel Lacroix) +- soap_transport_http: check safe_mode and open_basedir before setting CURLOPT_FOLLOWLOCATION +- soap_transport_http: skip "HTTP/1.0 200 Connection established" header when cURL returns it (thanks Raimund Jacob) +- nusoap_client: improve handling when getProxy is called and WSDL is not being used +- nusoap_base: add comments about which specifications are used/implemented by NuSOAP +- nusoap_xmlschema: create names for unnamed types that are unique by scope within XML Schema + +2007-06-11, version 0.7.2 +- wsdl: wrap return value if unwrapped value is supplied and WSDL specifies Microsoft-style wrapping + +2007-06-22, version 0.7.2 +- nusoap_xmlschema: fix serialization of simpleType restriction (thanks Rizwan Tejpar) + +2007-07-30, version 0.7.2 +- nusoap_server: Per http://www.ws-i.org/Profiles/BasicProfile-1.1-2004-08-24.html R2735, rpc/literal accessor elements should not be in a namespace (thanks Kostas Kalevras) +- nusoap_client: Per http://www.ws-i.org/Profiles/BasicProfile-1.1-2004-08-24.html R2735, rpc/literal accessor elements should not be in a namespace (thanks Kostas Kalevras) + +2007-10-21, version 0.7.2 +- nusoap_server: Per http://www.ws-i.org/Profiles/BasicProfile-1.1-2004-08-24.html R2735, rpc/literal accessor elements should not be in a namespace (thanks Kostas Kalevras) +- nusoap_client: Per http://www.ws-i.org/Profiles/BasicProfile-1.1-2004-08-24.html R2735, rpc/literal accessor elements should not be in a namespace (thanks Kostas Kalevras) + +2007-10-26, version 0.7.2 +- nusoap_server: Fix munging of _SERVER variables that start with HTTP_ (thanks Thomas Wieczorek) + +2007-10-30, version 0.7.2 +- nusoap_xmlschema: Serialize values for elementFormDefault, attributeFormDefault +- wsdl: Improve consistency between doc/lit schema auto-wrapping and client's parsed schema +- nusoap_server: Correct bug that placed encodingType in Envelope for doc/lit +- nusoap_server: Specify elementFormDefault for schema within doc/lit wsdl + +2007-10-31, version 0.7.2 +- wsdl: Fix typo in parametersMatchWrapped (thanks Sam Stepanyan) +- soap_transport_http: Fix three typos in setProxy (thanks Sam Stepanyan) +- nusoap_xmlschema: Fix typo in serializeTypeDef (thanks Sam Stepanyan) + +2007-11-06, version 1.0rc1 +- wsdl: Improve handling of return values from doc/lit methods +- nusoap_server: Handle case when method is not in a namespace + +2007-11-27, version 1.0rc1 +- nusoap_server: always try to invoke service for a POST +- nusoap_server: only return Location: for WSDL at http://... +- nusoap_base: change some syntax associated with globalDebugLevel + +2008-01-08, version 1.0rc1 +- nusoap_server: fix a typo where = was used instead of == (thanks J. (Johan) Bosma) + +2008-01-10, version 1.0rc1 +- nusoap_client: handle case where request or response has no content-type header (thanks Ingo Fischer) +- nusoap_server: handle case where request or response has no content-type header (thanks Ingo Fischer) +- wsdl: change CSS for .title in webDescription (thanks Marcus Uy) + +2008-01-25, version 1.0rc1 +- nusoap_xmlschema: when an element is of a complexType that is an extension, copy extensionBase from the type +- nusoap_xmlschema: do not apply elementFormDefault to globally defined elements + +2008-02-11, version 1.0rc1 +- wsdl: internally set form of wrapped parameter elements to unqualified (so server handles correctly) + +2008-03-03, version 1.0.rc1 +- nusoap_xmlschema: fix extension when base type has no explicit prefix +- nusoap_xmlschema: support XML Schema include +- wsdl: improve support for sequence by serializing inherited attributes and elements first + +2008-03-04, version 1.0.rc1 +- wsdl: allow WSDL port name to be specified in getOperations +- nusoap_client: allow WSDL port name to be specified in ctor + +2008-03-06, version 1.0rc1 +- wsdl: fix some port name variable references +- nusoap_base: change comments regarding preferred mode of support +- wsdl2nusoap: initial revision + +2008-03-14, version 1.0rc1 +- nusoap_base: fix timezone offset in timestamp_to_iso8601 (thanks Mario Trojan) + +2008-03-27, version 1.0rc1 +- nusoap_server: fix bug setting encodingStyle in serialize_return (thanks Luca Gobbo) + +2008-05-15, version 1.0rc1 +- nusoap_parser: handle case where Header or Body tags are used within SOAP messages (thanks Sergey Zhuravlev) + +2008-08-26, version 1.0rc1 +- wsdl: serialize simpleContent for complexType +- wsdl: avoid serializing complexType elements with no value and minOccurs = 0 regardless of nillability + +2010-04-26, version 0.9.5 +- nusoap_xmlschema: replace regex function calls (ereg, eregi, split) with PCRE calls (preg_match, preg_split) (thanks Pier-Luc Duchaine) +- wsdl: replace regex function calls (ereg, eregi, split) with PCRE calls (preg_match, preg_split) (thanks Pier-Luc Duchaine) +- soap_transport_http: replace regex function calls (ereg, eregi, split) with PCRE calls (preg_match, preg_split) (thanks Pier-Luc Duchaine) +- soap_transport_http: remove call to deprecated function set_magic_quotes_runtime +- nusoap_server: replace regex function calls (ereg, eregi, split) with PCRE calls (preg_match, preg_split) (thanks Pier-Luc Duchaine) +- nusoap_server: check that value is an object before calling get_class (thanks Pier-Luc Duchaine) +- nusoap_parser: replace regex function calls (ereg, eregi, split) with PCRE calls (preg_match, preg_split) (thanks Pier-Luc Duchaine) +- nusoap_client: replace regex function calls (ereg, eregi, split) with PCRE calls (preg_match, preg_split) (thanks Pier-Luc Duchaine) +- nusoap_client: do not assign the return value of new by reference (it is deprecated) (thanks Pier-Luc Duchaine) +- nusoap_base: replace regex function calls (ereg, eregi, split) with PCRE calls (preg_match, preg_split) (thanks Pier-Luc Duchaine) +- nusoapmime: do not assign the return value of new by reference (it is deprecated) diff --git a/classes/lib/class.nusoap_base.php b/classes/lib/class.nusoap_base.php new file mode 100644 index 0000000..4ed92a7 --- /dev/null +++ b/classes/lib/class.nusoap_base.php @@ -0,0 +1,996 @@ + +* @author Scott Nichol +* @version $Id: class.nusoap_base.php,v 1.56 2010/04/26 20:15:08 snichol Exp $ +* @access public +*/ +class nusoap_base { + /** + * Identification for HTTP headers. + * + * @var string + * @access private + */ + var $title = 'NuSOAP'; + /** + * Version for HTTP headers. + * + * @var string + * @access private + */ + var $version = '0.9.5'; + /** + * CVS revision for HTTP headers. + * + * @var string + * @access private + */ + var $revision = '$Revision: 1.56 $'; + /** + * Current error string (manipulated by getError/setError) + * + * @var string + * @access private + */ + var $error_str = ''; + /** + * Current debug string (manipulated by debug/appendDebug/clearDebug/getDebug/getDebugAsXMLComment) + * + * @var string + * @access private + */ + var $debug_str = ''; + /** + * toggles automatic encoding of special characters as entities + * (should always be true, I think) + * + * @var boolean + * @access private + */ + var $charencoding = true; + /** + * the debug level for this instance + * + * @var integer + * @access private + */ + var $debugLevel; + + /** + * set schema version + * + * @var string + * @access public + */ + var $XMLSchemaVersion = 'http://www.w3.org/2001/XMLSchema'; + + /** + * charset encoding for outgoing messages + * + * @var string + * @access public + */ + var $soap_defencoding = 'ISO-8859-1'; + //var $soap_defencoding = 'UTF-8'; + + /** + * namespaces in an array of prefix => uri + * + * this is "seeded" by a set of constants, but it may be altered by code + * + * @var array + * @access public + */ + var $namespaces = array( + 'SOAP-ENV' => 'http://schemas.xmlsoap.org/soap/envelope/', + 'xsd' => 'http://www.w3.org/2001/XMLSchema', + 'xsi' => 'http://www.w3.org/2001/XMLSchema-instance', + 'SOAP-ENC' => 'http://schemas.xmlsoap.org/soap/encoding/' + ); + + /** + * namespaces used in the current context, e.g. during serialization + * + * @var array + * @access private + */ + var $usedNamespaces = array(); + + /** + * XML Schema types in an array of uri => (array of xml type => php type) + * is this legacy yet? + * no, this is used by the nusoap_xmlschema class to verify type => namespace mappings. + * @var array + * @access public + */ + var $typemap = array( + 'http://www.w3.org/2001/XMLSchema' => array( + 'string'=>'string','boolean'=>'boolean','float'=>'double','double'=>'double','decimal'=>'double', + 'duration'=>'','dateTime'=>'string','time'=>'string','date'=>'string','gYearMonth'=>'', + 'gYear'=>'','gMonthDay'=>'','gDay'=>'','gMonth'=>'','hexBinary'=>'string','base64Binary'=>'string', + // abstract "any" types + 'anyType'=>'string','anySimpleType'=>'string', + // derived datatypes + 'normalizedString'=>'string','token'=>'string','language'=>'','NMTOKEN'=>'','NMTOKENS'=>'','Name'=>'','NCName'=>'','ID'=>'', + 'IDREF'=>'','IDREFS'=>'','ENTITY'=>'','ENTITIES'=>'','integer'=>'integer','nonPositiveInteger'=>'integer', + 'negativeInteger'=>'integer','long'=>'integer','int'=>'integer','short'=>'integer','byte'=>'integer','nonNegativeInteger'=>'integer', + 'unsignedLong'=>'','unsignedInt'=>'','unsignedShort'=>'','unsignedByte'=>'','positiveInteger'=>''), + 'http://www.w3.org/2000/10/XMLSchema' => array( + 'i4'=>'','int'=>'integer','boolean'=>'boolean','string'=>'string','double'=>'double', + 'float'=>'double','dateTime'=>'string', + 'timeInstant'=>'string','base64Binary'=>'string','base64'=>'string','ur-type'=>'array'), + 'http://www.w3.org/1999/XMLSchema' => array( + 'i4'=>'','int'=>'integer','boolean'=>'boolean','string'=>'string','double'=>'double', + 'float'=>'double','dateTime'=>'string', + 'timeInstant'=>'string','base64Binary'=>'string','base64'=>'string','ur-type'=>'array'), + 'http://soapinterop.org/xsd' => array('SOAPStruct'=>'struct'), + 'http://schemas.xmlsoap.org/soap/encoding/' => array('base64'=>'string','array'=>'array','Array'=>'array'), + 'http://xml.apache.org/xml-soap' => array('Map') + ); + + /** + * XML entities to convert + * + * @var array + * @access public + * @deprecated + * @see expandEntities + */ + var $xmlEntities = array('quot' => '"','amp' => '&', + 'lt' => '<','gt' => '>','apos' => "'"); + + /** + * constructor + * + * @access public + */ + function nusoap_base() { + $this->debugLevel = $GLOBALS['_transient']['static']['nusoap_base']['globalDebugLevel']; + } + + /** + * gets the global debug level, which applies to future instances + * + * @return integer Debug level 0-9, where 0 turns off + * @access public + */ + function getGlobalDebugLevel() { + return $GLOBALS['_transient']['static']['nusoap_base']['globalDebugLevel']; + } + + /** + * sets the global debug level, which applies to future instances + * + * @param int $level Debug level 0-9, where 0 turns off + * @access public + */ + function setGlobalDebugLevel($level) { + $GLOBALS['_transient']['static']['nusoap_base']['globalDebugLevel'] = $level; + } + + /** + * gets the debug level for this instance + * + * @return int Debug level 0-9, where 0 turns off + * @access public + */ + function getDebugLevel() { + return $this->debugLevel; + } + + /** + * sets the debug level for this instance + * + * @param int $level Debug level 0-9, where 0 turns off + * @access public + */ + function setDebugLevel($level) { + $this->debugLevel = $level; + } + + /** + * adds debug data to the instance debug string with formatting + * + * @param string $string debug data + * @access private + */ + function debug($string){ + if ($this->debugLevel > 0) { + $this->appendDebug($this->getmicrotime().' '.get_class($this).": $string\n"); + } + } + + /** + * adds debug data to the instance debug string without formatting + * + * @param string $string debug data + * @access public + */ + function appendDebug($string){ + if ($this->debugLevel > 0) { + // it would be nice to use a memory stream here to use + // memory more efficiently + $this->debug_str .= $string; + } + } + + /** + * clears the current debug data for this instance + * + * @access public + */ + function clearDebug() { + // it would be nice to use a memory stream here to use + // memory more efficiently + $this->debug_str = ''; + } + + /** + * gets the current debug data for this instance + * + * @return debug data + * @access public + */ + function &getDebug() { + // it would be nice to use a memory stream here to use + // memory more efficiently + return $this->debug_str; + } + + /** + * gets the current debug data for this instance as an XML comment + * this may change the contents of the debug data + * + * @return debug data as an XML comment + * @access public + */ + function &getDebugAsXMLComment() { + // it would be nice to use a memory stream here to use + // memory more efficiently + while (strpos($this->debug_str, '--')) { + $this->debug_str = str_replace('--', '- -', $this->debug_str); + } + $ret = ""; + return $ret; + } + + /** + * expands entities, e.g. changes '<' to '<'. + * + * @param string $val The string in which to expand entities. + * @access private + */ + function expandEntities($val) { + if ($this->charencoding) { + $val = str_replace('&', '&', $val); + $val = str_replace("'", ''', $val); + $val = str_replace('"', '"', $val); + $val = str_replace('<', '<', $val); + $val = str_replace('>', '>', $val); + } + return $val; + } + + /** + * returns error string if present + * + * @return mixed error string or false + * @access public + */ + function getError(){ + if($this->error_str != ''){ + return $this->error_str; + } + return false; + } + + /** + * sets error string + * + * @return boolean $string error string + * @access private + */ + function setError($str){ + $this->error_str = $str; + } + + /** + * detect if array is a simple array or a struct (associative array) + * + * @param mixed $val The PHP array + * @return string (arraySimple|arrayStruct) + * @access private + */ + function isArraySimpleOrStruct($val) { + $keyList = array_keys($val); + foreach ($keyList as $keyListValue) { + if (!is_int($keyListValue)) { + return 'arrayStruct'; + } + } + return 'arraySimple'; + } + + /** + * serializes PHP values in accordance w/ section 5. Type information is + * not serialized if $use == 'literal'. + * + * @param mixed $val The value to serialize + * @param string $name The name (local part) of the XML element + * @param string $type The XML schema type (local part) for the element + * @param string $name_ns The namespace for the name of the XML element + * @param string $type_ns The namespace for the type of the element + * @param array $attributes The attributes to serialize as name=>value pairs + * @param string $use The WSDL "use" (encoded|literal) + * @param boolean $soapval Whether this is called from soapval. + * @return string The serialized element, possibly with child elements + * @access public + */ + function serialize_val($val,$name=false,$type=false,$name_ns=false,$type_ns=false,$attributes=false,$use='encoded',$soapval=false) { + $this->debug("in serialize_val: name=$name, type=$type, name_ns=$name_ns, type_ns=$type_ns, use=$use, soapval=$soapval"); + $this->appendDebug('value=' . $this->varDump($val)); + $this->appendDebug('attributes=' . $this->varDump($attributes)); + + if (is_object($val) && get_class($val) == 'soapval' && (! $soapval)) { + $this->debug("serialize_val: serialize soapval"); + $xml = $val->serialize($use); + $this->appendDebug($val->getDebug()); + $val->clearDebug(); + $this->debug("serialize_val of soapval returning $xml"); + return $xml; + } + // force valid name if necessary + if (is_numeric($name)) { + $name = '__numeric_' . $name; + } elseif (! $name) { + $name = 'noname'; + } + // if name has ns, add ns prefix to name + $xmlns = ''; + if($name_ns){ + $prefix = 'nu'.rand(1000,9999); + $name = $prefix.':'.$name; + $xmlns .= " xmlns:$prefix=\"$name_ns\""; + } + // if type is prefixed, create type prefix + if($type_ns != '' && $type_ns == $this->namespaces['xsd']){ + // need to fix this. shouldn't default to xsd if no ns specified + // w/o checking against typemap + $type_prefix = 'xsd'; + } elseif($type_ns){ + $type_prefix = 'ns'.rand(1000,9999); + $xmlns .= " xmlns:$type_prefix=\"$type_ns\""; + } + // serialize attributes if present + $atts = ''; + if($attributes){ + foreach($attributes as $k => $v){ + $atts .= " $k=\"".$this->expandEntities($v).'"'; + } + } + // serialize null value + if (is_null($val)) { + $this->debug("serialize_val: serialize null"); + if ($use == 'literal') { + // TODO: depends on minOccurs + $xml = "<$name$xmlns$atts/>"; + $this->debug("serialize_val returning $xml"); + return $xml; + } else { + if (isset($type) && isset($type_prefix)) { + $type_str = " xsi:type=\"$type_prefix:$type\""; + } else { + $type_str = ''; + } + $xml = "<$name$xmlns$type_str$atts xsi:nil=\"true\"/>"; + $this->debug("serialize_val returning $xml"); + return $xml; + } + } + // serialize if an xsd built-in primitive type + if($type != '' && isset($this->typemap[$this->XMLSchemaVersion][$type])){ + $this->debug("serialize_val: serialize xsd built-in primitive type"); + if (is_bool($val)) { + if ($type == 'boolean') { + $val = $val ? 'true' : 'false'; + } elseif (! $val) { + $val = 0; + } + } else if (is_string($val)) { + $val = $this->expandEntities($val); + } + if ($use == 'literal') { + $xml = "<$name$xmlns$atts>$val"; + $this->debug("serialize_val returning $xml"); + return $xml; + } else { + $xml = "<$name$xmlns xsi:type=\"xsd:$type\"$atts>$val"; + $this->debug("serialize_val returning $xml"); + return $xml; + } + } + // detect type and serialize + $xml = ''; + switch(true) { + case (is_bool($val) || $type == 'boolean'): + $this->debug("serialize_val: serialize boolean"); + if ($type == 'boolean') { + $val = $val ? 'true' : 'false'; + } elseif (! $val) { + $val = 0; + } + if ($use == 'literal') { + $xml .= "<$name$xmlns$atts>$val"; + } else { + $xml .= "<$name$xmlns xsi:type=\"xsd:boolean\"$atts>$val"; + } + break; + case (is_int($val) || is_long($val) || $type == 'int'): + $this->debug("serialize_val: serialize int"); + if ($use == 'literal') { + $xml .= "<$name$xmlns$atts>$val"; + } else { + $xml .= "<$name$xmlns xsi:type=\"xsd:int\"$atts>$val"; + } + break; + case (is_float($val)|| is_double($val) || $type == 'float'): + $this->debug("serialize_val: serialize float"); + if ($use == 'literal') { + $xml .= "<$name$xmlns$atts>$val"; + } else { + $xml .= "<$name$xmlns xsi:type=\"xsd:float\"$atts>$val"; + } + break; + case (is_string($val) || $type == 'string'): + $this->debug("serialize_val: serialize string"); + $val = $this->expandEntities($val); + if ($use == 'literal') { + $xml .= "<$name$xmlns$atts>$val"; + } else { + $xml .= "<$name$xmlns xsi:type=\"xsd:string\"$atts>$val"; + } + break; + case is_object($val): + $this->debug("serialize_val: serialize object"); + if (get_class($val) == 'soapval') { + $this->debug("serialize_val: serialize soapval object"); + $pXml = $val->serialize($use); + $this->appendDebug($val->getDebug()); + $val->clearDebug(); + } else { + if (! $name) { + $name = get_class($val); + $this->debug("In serialize_val, used class name $name as element name"); + } else { + $this->debug("In serialize_val, do not override name $name for element name for class " . get_class($val)); + } + foreach(get_object_vars($val) as $k => $v){ + $pXml = isset($pXml) ? $pXml.$this->serialize_val($v,$k,false,false,false,false,$use) : $this->serialize_val($v,$k,false,false,false,false,$use); + } + } + if(isset($type) && isset($type_prefix)){ + $type_str = " xsi:type=\"$type_prefix:$type\""; + } else { + $type_str = ''; + } + if ($use == 'literal') { + $xml .= "<$name$xmlns$atts>$pXml"; + } else { + $xml .= "<$name$xmlns$type_str$atts>$pXml"; + } + break; + break; + case (is_array($val) || $type): + // detect if struct or array + $valueType = $this->isArraySimpleOrStruct($val); + if($valueType=='arraySimple' || preg_match('/^ArrayOf/',$type)){ + $this->debug("serialize_val: serialize array"); + $i = 0; + if(is_array($val) && count($val)> 0){ + foreach($val as $v){ + if(is_object($v) && get_class($v) == 'soapval'){ + $tt_ns = $v->type_ns; + $tt = $v->type; + } elseif (is_array($v)) { + $tt = $this->isArraySimpleOrStruct($v); + } else { + $tt = gettype($v); + } + $array_types[$tt] = 1; + // TODO: for literal, the name should be $name + $xml .= $this->serialize_val($v,'item',false,false,false,false,$use); + ++$i; + } + if(count($array_types) > 1){ + $array_typename = 'xsd:anyType'; + } elseif(isset($tt) && isset($this->typemap[$this->XMLSchemaVersion][$tt])) { + if ($tt == 'integer') { + $tt = 'int'; + } + $array_typename = 'xsd:'.$tt; + } elseif(isset($tt) && $tt == 'arraySimple'){ + $array_typename = 'SOAP-ENC:Array'; + } elseif(isset($tt) && $tt == 'arrayStruct'){ + $array_typename = 'unnamed_struct_use_soapval'; + } else { + // if type is prefixed, create type prefix + if ($tt_ns != '' && $tt_ns == $this->namespaces['xsd']){ + $array_typename = 'xsd:' . $tt; + } elseif ($tt_ns) { + $tt_prefix = 'ns' . rand(1000, 9999); + $array_typename = "$tt_prefix:$tt"; + $xmlns .= " xmlns:$tt_prefix=\"$tt_ns\""; + } else { + $array_typename = $tt; + } + } + $array_type = $i; + if ($use == 'literal') { + $type_str = ''; + } else if (isset($type) && isset($type_prefix)) { + $type_str = " xsi:type=\"$type_prefix:$type\""; + } else { + $type_str = " xsi:type=\"SOAP-ENC:Array\" SOAP-ENC:arrayType=\"".$array_typename."[$array_type]\""; + } + // empty array + } else { + if ($use == 'literal') { + $type_str = ''; + } else if (isset($type) && isset($type_prefix)) { + $type_str = " xsi:type=\"$type_prefix:$type\""; + } else { + $type_str = " xsi:type=\"SOAP-ENC:Array\" SOAP-ENC:arrayType=\"xsd:anyType[0]\""; + } + } + // TODO: for array in literal, there is no wrapper here + $xml = "<$name$xmlns$type_str$atts>".$xml.""; + } else { + // got a struct + $this->debug("serialize_val: serialize struct"); + if(isset($type) && isset($type_prefix)){ + $type_str = " xsi:type=\"$type_prefix:$type\""; + } else { + $type_str = ''; + } + if ($use == 'literal') { + $xml .= "<$name$xmlns$atts>"; + } else { + $xml .= "<$name$xmlns$type_str$atts>"; + } + foreach($val as $k => $v){ + // Apache Map + if ($type == 'Map' && $type_ns == 'http://xml.apache.org/xml-soap') { + $xml .= ''; + $xml .= $this->serialize_val($k,'key',false,false,false,false,$use); + $xml .= $this->serialize_val($v,'value',false,false,false,false,$use); + $xml .= ''; + } else { + $xml .= $this->serialize_val($v,$k,false,false,false,false,$use); + } + } + $xml .= ""; + } + break; + default: + $this->debug("serialize_val: serialize unknown"); + $xml .= 'not detected, got '.gettype($val).' for '.$val; + break; + } + $this->debug("serialize_val returning $xml"); + return $xml; + } + + /** + * serializes a message + * + * @param string $body the XML of the SOAP body + * @param mixed $headers optional string of XML with SOAP header content, or array of soapval objects for SOAP headers, or associative array + * @param array $namespaces optional the namespaces used in generating the body and headers + * @param string $style optional (rpc|document) + * @param string $use optional (encoded|literal) + * @param string $encodingStyle optional (usually 'http://schemas.xmlsoap.org/soap/encoding/' for encoded) + * @return string the message + * @access public + */ + function serializeEnvelope($body,$headers=false,$namespaces=array(),$style='rpc',$use='encoded',$encodingStyle='http://schemas.xmlsoap.org/soap/encoding/'){ + // TODO: add an option to automatically run utf8_encode on $body and $headers + // if $this->soap_defencoding is UTF-8. Not doing this automatically allows + // one to send arbitrary UTF-8 characters, not just characters that map to ISO-8859-1 + + $this->debug("In serializeEnvelope length=" . strlen($body) . " body (max 1000 characters)=" . substr($body, 0, 1000) . " style=$style use=$use encodingStyle=$encodingStyle"); + $this->debug("headers:"); + $this->appendDebug($this->varDump($headers)); + $this->debug("namespaces:"); + $this->appendDebug($this->varDump($namespaces)); + + // serialize namespaces + $ns_string = ''; + foreach(array_merge($this->namespaces,$namespaces) as $k => $v){ + $ns_string .= " xmlns:$k=\"$v\""; + } + if($encodingStyle) { + $ns_string = " SOAP-ENV:encodingStyle=\"$encodingStyle\"$ns_string"; + } + + // serialize headers + if($headers){ + if (is_array($headers)) { + $xml = ''; + foreach ($headers as $k => $v) { + if (is_object($v) && get_class($v) == 'soapval') { + $xml .= $this->serialize_val($v, false, false, false, false, false, $use); + } else { + $xml .= $this->serialize_val($v, $k, false, false, false, false, $use); + } + } + $headers = $xml; + $this->debug("In serializeEnvelope, serialized array of headers to $headers"); + } + $headers = "".$headers.""; + } + // serialize envelope + return + 'soap_defencoding .'"?'.">". + '". + $headers. + "". + $body. + "". + ""; + } + + /** + * formats a string to be inserted into an HTML stream + * + * @param string $str The string to format + * @return string The formatted string + * @access public + * @deprecated + */ + function formatDump($str){ + $str = htmlspecialchars($str); + return nl2br($str); + } + + /** + * contracts (changes namespace to prefix) a qualified name + * + * @param string $qname qname + * @return string contracted qname + * @access private + */ + function contractQname($qname){ + // get element namespace + //$this->xdebug("Contract $qname"); + if (strrpos($qname, ':')) { + // get unqualified name + $name = substr($qname, strrpos($qname, ':') + 1); + // get ns + $ns = substr($qname, 0, strrpos($qname, ':')); + $p = $this->getPrefixFromNamespace($ns); + if ($p) { + return $p . ':' . $name; + } + return $qname; + } else { + return $qname; + } + } + + /** + * expands (changes prefix to namespace) a qualified name + * + * @param string $qname qname + * @return string expanded qname + * @access private + */ + function expandQname($qname){ + // get element prefix + if(strpos($qname,':') && !preg_match('/^http:\/\//',$qname)){ + // get unqualified name + $name = substr(strstr($qname,':'),1); + // get ns prefix + $prefix = substr($qname,0,strpos($qname,':')); + if(isset($this->namespaces[$prefix])){ + return $this->namespaces[$prefix].':'.$name; + } else { + return $qname; + } + } else { + return $qname; + } + } + + /** + * returns the local part of a prefixed string + * returns the original string, if not prefixed + * + * @param string $str The prefixed string + * @return string The local part + * @access public + */ + function getLocalPart($str){ + if($sstr = strrchr($str,':')){ + // get unqualified name + return substr( $sstr, 1 ); + } else { + return $str; + } + } + + /** + * returns the prefix part of a prefixed string + * returns false, if not prefixed + * + * @param string $str The prefixed string + * @return mixed The prefix or false if there is no prefix + * @access public + */ + function getPrefix($str){ + if($pos = strrpos($str,':')){ + // get prefix + return substr($str,0,$pos); + } + return false; + } + + /** + * pass it a prefix, it returns a namespace + * + * @param string $prefix The prefix + * @return mixed The namespace, false if no namespace has the specified prefix + * @access public + */ + function getNamespaceFromPrefix($prefix){ + if (isset($this->namespaces[$prefix])) { + return $this->namespaces[$prefix]; + } + //$this->setError("No namespace registered for prefix '$prefix'"); + return false; + } + + /** + * returns the prefix for a given namespace (or prefix) + * or false if no prefixes registered for the given namespace + * + * @param string $ns The namespace + * @return mixed The prefix, false if the namespace has no prefixes + * @access public + */ + function getPrefixFromNamespace($ns) { + foreach ($this->namespaces as $p => $n) { + if ($ns == $n || $ns == $p) { + $this->usedNamespaces[$p] = $n; + return $p; + } + } + return false; + } + + /** + * returns the time in ODBC canonical form with microseconds + * + * @return string The time in ODBC canonical form with microseconds + * @access public + */ + function getmicrotime() { + if (function_exists('gettimeofday')) { + $tod = gettimeofday(); + $sec = $tod['sec']; + $usec = $tod['usec']; + } else { + $sec = time(); + $usec = 0; + } + return strftime('%Y-%m-%d %H:%M:%S', $sec) . '.' . sprintf('%06d', $usec); + } + + /** + * Returns a string with the output of var_dump + * + * @param mixed $data The variable to var_dump + * @return string The output of var_dump + * @access public + */ + function varDump($data) { + ob_start(); + var_dump($data); + $ret_val = ob_get_contents(); + ob_end_clean(); + return $ret_val; + } + + /** + * represents the object as a string + * + * @return string + * @access public + */ + function __toString() { + return $this->varDump($this); + } +} + +// XML Schema Datatype Helper Functions + +//xsd:dateTime helpers + +/** +* convert unix timestamp to ISO 8601 compliant date string +* +* @param int $timestamp Unix time stamp +* @param boolean $utc Whether the time stamp is UTC or local +* @return mixed ISO 8601 date string or false +* @access public +*/ +function timestamp_to_iso8601($timestamp,$utc=true){ + $datestr = date('Y-m-d\TH:i:sO',$timestamp); + $pos = strrpos($datestr, "+"); + if ($pos === FALSE) { + $pos = strrpos($datestr, "-"); + } + if ($pos !== FALSE) { + if (strlen($datestr) == $pos + 5) { + $datestr = substr($datestr, 0, $pos + 3) . ':' . substr($datestr, -2); + } + } + if($utc){ + $pattern = '/'. + '([0-9]{4})-'. // centuries & years CCYY- + '([0-9]{2})-'. // months MM- + '([0-9]{2})'. // days DD + 'T'. // separator T + '([0-9]{2}):'. // hours hh: + '([0-9]{2}):'. // minutes mm: + '([0-9]{2})(\.[0-9]*)?'. // seconds ss.ss... + '(Z|[+\-][0-9]{2}:?[0-9]{2})?'. // Z to indicate UTC, -/+HH:MM:SS.SS... for local tz's + '/'; + + if(preg_match($pattern,$datestr,$regs)){ + return sprintf('%04d-%02d-%02dT%02d:%02d:%02dZ',$regs[1],$regs[2],$regs[3],$regs[4],$regs[5],$regs[6]); + } + return false; + } else { + return $datestr; + } +} + +/** +* convert ISO 8601 compliant date string to unix timestamp +* +* @param string $datestr ISO 8601 compliant date string +* @return mixed Unix timestamp (int) or false +* @access public +*/ +function iso8601_to_timestamp($datestr){ + $pattern = '/'. + '([0-9]{4})-'. // centuries & years CCYY- + '([0-9]{2})-'. // months MM- + '([0-9]{2})'. // days DD + 'T'. // separator T + '([0-9]{2}):'. // hours hh: + '([0-9]{2}):'. // minutes mm: + '([0-9]{2})(\.[0-9]+)?'. // seconds ss.ss... + '(Z|[+\-][0-9]{2}:?[0-9]{2})?'. // Z to indicate UTC, -/+HH:MM:SS.SS... for local tz's + '/'; + if(preg_match($pattern,$datestr,$regs)){ + // not utc + if($regs[8] != 'Z'){ + $op = substr($regs[8],0,1); + $h = substr($regs[8],1,2); + $m = substr($regs[8],strlen($regs[8])-2,2); + if($op == '-'){ + $regs[4] = $regs[4] + $h; + $regs[5] = $regs[5] + $m; + } elseif($op == '+'){ + $regs[4] = $regs[4] - $h; + $regs[5] = $regs[5] - $m; + } + } + return gmmktime($regs[4], $regs[5], $regs[6], $regs[2], $regs[3], $regs[1]); +// return strtotime("$regs[1]-$regs[2]-$regs[3] $regs[4]:$regs[5]:$regs[6]Z"); + } else { + return false; + } +} + +/** +* sleeps some number of microseconds +* +* @param string $usec the number of microseconds to sleep +* @access public +* @deprecated +*/ +function usleepWindows($usec) +{ + $start = gettimeofday(); + + do + { + $stop = gettimeofday(); + $timePassed = 1000000 * ($stop['sec'] - $start['sec']) + + $stop['usec'] - $start['usec']; + } + while ($timePassed < $usec); +} + + +?> \ No newline at end of file diff --git a/classes/lib/class.soap_fault.php b/classes/lib/class.soap_fault.php new file mode 100644 index 0000000..1515b50 --- /dev/null +++ b/classes/lib/class.soap_fault.php @@ -0,0 +1,90 @@ + +* @version $Id: class.soap_fault.php,v 1.14 2007/04/11 15:49:47 snichol Exp $ +* @access public +*/ +class nusoap_fault extends nusoap_base { + /** + * The fault code (client|server) + * @var string + * @access private + */ + var $faultcode; + /** + * The fault actor + * @var string + * @access private + */ + var $faultactor; + /** + * The fault string, a description of the fault + * @var string + * @access private + */ + var $faultstring; + /** + * The fault detail, typically a string or array of string + * @var mixed + * @access private + */ + var $faultdetail; + + /** + * constructor + * + * @param string $faultcode (SOAP-ENV:Client | SOAP-ENV:Server) + * @param string $faultactor only used when msg routed between multiple actors + * @param string $faultstring human readable error message + * @param mixed $faultdetail detail, typically a string or array of string + */ + function nusoap_fault($faultcode,$faultactor='',$faultstring='',$faultdetail=''){ + parent::nusoap_base(); + $this->faultcode = $faultcode; + $this->faultactor = $faultactor; + $this->faultstring = $faultstring; + $this->faultdetail = $faultdetail; + } + + /** + * serialize a fault + * + * @return string The serialization of the fault instance. + * @access public + */ + function serialize(){ + $ns_string = ''; + foreach($this->namespaces as $k => $v){ + $ns_string .= "\n xmlns:$k=\"$v\""; + } + $return_msg = + 'soap_defencoding.'"?>'. + '\n". + ''. + ''. + $this->serialize_val($this->faultcode, 'faultcode'). + $this->serialize_val($this->faultactor, 'faultactor'). + $this->serialize_val($this->faultstring, 'faultstring'). + $this->serialize_val($this->faultdetail, 'detail'). + ''. + ''. + ''; + return $return_msg; + } +} + +/** + * Backward compatibility + */ +class soap_fault extends nusoap_fault { +} + + +?> \ No newline at end of file diff --git a/classes/lib/class.soap_parser.php b/classes/lib/class.soap_parser.php new file mode 100644 index 0000000..f6932aa --- /dev/null +++ b/classes/lib/class.soap_parser.php @@ -0,0 +1,643 @@ + +* @author Scott Nichol +* @version $Id: class.soap_parser.php,v 1.42 2010/04/26 20:15:08 snichol Exp $ +* @access public +*/ +class nusoap_parser extends nusoap_base { + + var $xml = ''; + var $xml_encoding = ''; + var $method = ''; + var $root_struct = ''; + var $root_struct_name = ''; + var $root_struct_namespace = ''; + var $root_header = ''; + var $document = ''; // incoming SOAP body (text) + // determines where in the message we are (envelope,header,body,method) + var $status = ''; + var $position = 0; + var $depth = 0; + var $default_namespace = ''; + var $namespaces = array(); + var $message = array(); + var $parent = ''; + var $fault = false; + var $fault_code = ''; + var $fault_str = ''; + var $fault_detail = ''; + var $depth_array = array(); + var $debug_flag = true; + var $soapresponse = NULL; // parsed SOAP Body + var $soapheader = NULL; // parsed SOAP Header + var $responseHeaders = ''; // incoming SOAP headers (text) + var $body_position = 0; + // for multiref parsing: + // array of id => pos + var $ids = array(); + // array of id => hrefs => pos + var $multirefs = array(); + // toggle for auto-decoding element content + var $decode_utf8 = true; + + /** + * constructor that actually does the parsing + * + * @param string $xml SOAP message + * @param string $encoding character encoding scheme of message + * @param string $method method for which XML is parsed (unused?) + * @param string $decode_utf8 whether to decode UTF-8 to ISO-8859-1 + * @access public + */ + function nusoap_parser($xml,$encoding='UTF-8',$method='',$decode_utf8=true){ + parent::nusoap_base(); + $this->xml = $xml; + $this->xml_encoding = $encoding; + $this->method = $method; + $this->decode_utf8 = $decode_utf8; + + // Check whether content has been read. + if(!empty($xml)){ + // Check XML encoding + $pos_xml = strpos($xml, '', $pos_xml + 2) - $pos_xml + 1); + if (preg_match("/encoding=[\"']([^\"']*)[\"']/", $xml_decl, $res)) { + $xml_encoding = $res[1]; + if (strtoupper($xml_encoding) != $encoding) { + $err = "Charset from HTTP Content-Type '" . $encoding . "' does not match encoding from XML declaration '" . $xml_encoding . "'"; + $this->debug($err); + if ($encoding != 'ISO-8859-1' || strtoupper($xml_encoding) != 'UTF-8') { + $this->setError($err); + return; + } + // when HTTP says ISO-8859-1 (the default) and XML says UTF-8 (the typical), assume the other endpoint is just sloppy and proceed + } else { + $this->debug('Charset from HTTP Content-Type matches encoding from XML declaration'); + } + } else { + $this->debug('No encoding specified in XML declaration'); + } + } else { + $this->debug('No XML declaration'); + } + $this->debug('Entering nusoap_parser(), length='.strlen($xml).', encoding='.$encoding); + // Create an XML parser - why not xml_parser_create_ns? + $this->parser = xml_parser_create($this->xml_encoding); + // Set the options for parsing the XML data. + //xml_parser_set_option($parser, XML_OPTION_SKIP_WHITE, 1); + xml_parser_set_option($this->parser, XML_OPTION_CASE_FOLDING, 0); + xml_parser_set_option($this->parser, XML_OPTION_TARGET_ENCODING, $this->xml_encoding); + // Set the object for the parser. + xml_set_object($this->parser, $this); + // Set the element handlers for the parser. + xml_set_element_handler($this->parser, 'start_element','end_element'); + xml_set_character_data_handler($this->parser,'character_data'); + + // Parse the XML file. + if(!xml_parse($this->parser,$xml,true)){ + // Display an error message. + $err = sprintf('XML error parsing SOAP payload on line %d: %s', + xml_get_current_line_number($this->parser), + xml_error_string(xml_get_error_code($this->parser))); + $this->debug($err); + $this->debug("XML payload:\n" . $xml); + $this->setError($err); + } else { + $this->debug('in nusoap_parser ctor, message:'); + $this->appendDebug($this->varDump($this->message)); + $this->debug('parsed successfully, found root struct: '.$this->root_struct.' of name '.$this->root_struct_name); + // get final value + $this->soapresponse = $this->message[$this->root_struct]['result']; + // get header value + if($this->root_header != '' && isset($this->message[$this->root_header]['result'])){ + $this->soapheader = $this->message[$this->root_header]['result']; + } + // resolve hrefs/ids + if(sizeof($this->multirefs) > 0){ + foreach($this->multirefs as $id => $hrefs){ + $this->debug('resolving multirefs for id: '.$id); + $idVal = $this->buildVal($this->ids[$id]); + if (is_array($idVal) && isset($idVal['!id'])) { + unset($idVal['!id']); + } + foreach($hrefs as $refPos => $ref){ + $this->debug('resolving href at pos '.$refPos); + $this->multirefs[$id][$refPos] = $idVal; + } + } + } + } + xml_parser_free($this->parser); + } else { + $this->debug('xml was empty, didn\'t parse!'); + $this->setError('xml was empty, didn\'t parse!'); + } + } + + /** + * start-element handler + * + * @param resource $parser XML parser object + * @param string $name element name + * @param array $attrs associative array of attributes + * @access private + */ + function start_element($parser, $name, $attrs) { + // position in a total number of elements, starting from 0 + // update class level pos + $pos = $this->position++; + // and set mine + $this->message[$pos] = array('pos' => $pos,'children'=>'','cdata'=>''); + // depth = how many levels removed from root? + // set mine as current global depth and increment global depth value + $this->message[$pos]['depth'] = $this->depth++; + + // else add self as child to whoever the current parent is + if($pos != 0){ + $this->message[$this->parent]['children'] .= '|'.$pos; + } + // set my parent + $this->message[$pos]['parent'] = $this->parent; + // set self as current parent + $this->parent = $pos; + // set self as current value for this depth + $this->depth_array[$this->depth] = $pos; + // get element prefix + if(strpos($name,':')){ + // get ns prefix + $prefix = substr($name,0,strpos($name,':')); + // get unqualified name + $name = substr(strstr($name,':'),1); + } + // set status + if ($name == 'Envelope' && $this->status == '') { + $this->status = 'envelope'; + } elseif ($name == 'Header' && $this->status == 'envelope') { + $this->root_header = $pos; + $this->status = 'header'; + } elseif ($name == 'Body' && $this->status == 'envelope'){ + $this->status = 'body'; + $this->body_position = $pos; + // set method + } elseif($this->status == 'body' && $pos == ($this->body_position+1)) { + $this->status = 'method'; + $this->root_struct_name = $name; + $this->root_struct = $pos; + $this->message[$pos]['type'] = 'struct'; + $this->debug("found root struct $this->root_struct_name, pos $this->root_struct"); + } + // set my status + $this->message[$pos]['status'] = $this->status; + // set name + $this->message[$pos]['name'] = htmlspecialchars($name); + // set attrs + $this->message[$pos]['attrs'] = $attrs; + + // loop through atts, logging ns and type declarations + $attstr = ''; + foreach($attrs as $key => $value){ + $key_prefix = $this->getPrefix($key); + $key_localpart = $this->getLocalPart($key); + // if ns declarations, add to class level array of valid namespaces + if($key_prefix == 'xmlns'){ + if(preg_match('/^http:\/\/www.w3.org\/[0-9]{4}\/XMLSchema$/',$value)){ + $this->XMLSchemaVersion = $value; + $this->namespaces['xsd'] = $this->XMLSchemaVersion; + $this->namespaces['xsi'] = $this->XMLSchemaVersion.'-instance'; + } + $this->namespaces[$key_localpart] = $value; + // set method namespace + if($name == $this->root_struct_name){ + $this->methodNamespace = $value; + } + // if it's a type declaration, set type + } elseif($key_localpart == 'type'){ + if (isset($this->message[$pos]['type']) && $this->message[$pos]['type'] == 'array') { + // do nothing: already processed arrayType + } else { + $value_prefix = $this->getPrefix($value); + $value_localpart = $this->getLocalPart($value); + $this->message[$pos]['type'] = $value_localpart; + $this->message[$pos]['typePrefix'] = $value_prefix; + if(isset($this->namespaces[$value_prefix])){ + $this->message[$pos]['type_namespace'] = $this->namespaces[$value_prefix]; + } else if(isset($attrs['xmlns:'.$value_prefix])) { + $this->message[$pos]['type_namespace'] = $attrs['xmlns:'.$value_prefix]; + } + // should do something here with the namespace of specified type? + } + } elseif($key_localpart == 'arrayType'){ + $this->message[$pos]['type'] = 'array'; + /* do arrayType ereg here + [1] arrayTypeValue ::= atype asize + [2] atype ::= QName rank* + [3] rank ::= '[' (',')* ']' + [4] asize ::= '[' length~ ']' + [5] length ::= nextDimension* Digit+ + [6] nextDimension ::= Digit+ ',' + */ + $expr = '/([A-Za-z0-9_]+):([A-Za-z]+[A-Za-z0-9_]+)\[([0-9]+),?([0-9]*)\]/'; + if(preg_match($expr,$value,$regs)){ + $this->message[$pos]['typePrefix'] = $regs[1]; + $this->message[$pos]['arrayTypePrefix'] = $regs[1]; + if (isset($this->namespaces[$regs[1]])) { + $this->message[$pos]['arrayTypeNamespace'] = $this->namespaces[$regs[1]]; + } else if (isset($attrs['xmlns:'.$regs[1]])) { + $this->message[$pos]['arrayTypeNamespace'] = $attrs['xmlns:'.$regs[1]]; + } + $this->message[$pos]['arrayType'] = $regs[2]; + $this->message[$pos]['arraySize'] = $regs[3]; + $this->message[$pos]['arrayCols'] = $regs[4]; + } + // specifies nil value (or not) + } elseif ($key_localpart == 'nil'){ + $this->message[$pos]['nil'] = ($value == 'true' || $value == '1'); + // some other attribute + } elseif ($key != 'href' && $key != 'xmlns' && $key_localpart != 'encodingStyle' && $key_localpart != 'root') { + $this->message[$pos]['xattrs']['!' . $key] = $value; + } + + if ($key == 'xmlns') { + $this->default_namespace = $value; + } + // log id + if($key == 'id'){ + $this->ids[$value] = $pos; + } + // root + if($key_localpart == 'root' && $value == 1){ + $this->status = 'method'; + $this->root_struct_name = $name; + $this->root_struct = $pos; + $this->debug("found root struct $this->root_struct_name, pos $pos"); + } + // for doclit + $attstr .= " $key=\"$value\""; + } + // get namespace - must be done after namespace atts are processed + if(isset($prefix)){ + $this->message[$pos]['namespace'] = $this->namespaces[$prefix]; + $this->default_namespace = $this->namespaces[$prefix]; + } else { + $this->message[$pos]['namespace'] = $this->default_namespace; + } + if($this->status == 'header'){ + if ($this->root_header != $pos) { + $this->responseHeaders .= "<" . (isset($prefix) ? $prefix . ':' : '') . "$name$attstr>"; + } + } elseif($this->root_struct_name != ''){ + $this->document .= "<" . (isset($prefix) ? $prefix . ':' : '') . "$name$attstr>"; + } + } + + /** + * end-element handler + * + * @param resource $parser XML parser object + * @param string $name element name + * @access private + */ + function end_element($parser, $name) { + // position of current element is equal to the last value left in depth_array for my depth + $pos = $this->depth_array[$this->depth--]; + + // get element prefix + if(strpos($name,':')){ + // get ns prefix + $prefix = substr($name,0,strpos($name,':')); + // get unqualified name + $name = substr(strstr($name,':'),1); + } + + // build to native type + if(isset($this->body_position) && $pos > $this->body_position){ + // deal w/ multirefs + if(isset($this->message[$pos]['attrs']['href'])){ + // get id + $id = substr($this->message[$pos]['attrs']['href'],1); + // add placeholder to href array + $this->multirefs[$id][$pos] = 'placeholder'; + // add set a reference to it as the result value + $this->message[$pos]['result'] =& $this->multirefs[$id][$pos]; + // build complexType values + } elseif($this->message[$pos]['children'] != ''){ + // if result has already been generated (struct/array) + if(!isset($this->message[$pos]['result'])){ + $this->message[$pos]['result'] = $this->buildVal($pos); + } + // build complexType values of attributes and possibly simpleContent + } elseif (isset($this->message[$pos]['xattrs'])) { + if (isset($this->message[$pos]['nil']) && $this->message[$pos]['nil']) { + $this->message[$pos]['xattrs']['!'] = null; + } elseif (isset($this->message[$pos]['cdata']) && trim($this->message[$pos]['cdata']) != '') { + if (isset($this->message[$pos]['type'])) { + $this->message[$pos]['xattrs']['!'] = $this->decodeSimple($this->message[$pos]['cdata'], $this->message[$pos]['type'], isset($this->message[$pos]['type_namespace']) ? $this->message[$pos]['type_namespace'] : ''); + } else { + $parent = $this->message[$pos]['parent']; + if (isset($this->message[$parent]['type']) && ($this->message[$parent]['type'] == 'array') && isset($this->message[$parent]['arrayType'])) { + $this->message[$pos]['xattrs']['!'] = $this->decodeSimple($this->message[$pos]['cdata'], $this->message[$parent]['arrayType'], isset($this->message[$parent]['arrayTypeNamespace']) ? $this->message[$parent]['arrayTypeNamespace'] : ''); + } else { + $this->message[$pos]['xattrs']['!'] = $this->message[$pos]['cdata']; + } + } + } + $this->message[$pos]['result'] = $this->message[$pos]['xattrs']; + // set value of simpleType (or nil complexType) + } else { + //$this->debug('adding data for scalar value '.$this->message[$pos]['name'].' of value '.$this->message[$pos]['cdata']); + if (isset($this->message[$pos]['nil']) && $this->message[$pos]['nil']) { + $this->message[$pos]['xattrs']['!'] = null; + } elseif (isset($this->message[$pos]['type'])) { + $this->message[$pos]['result'] = $this->decodeSimple($this->message[$pos]['cdata'], $this->message[$pos]['type'], isset($this->message[$pos]['type_namespace']) ? $this->message[$pos]['type_namespace'] : ''); + } else { + $parent = $this->message[$pos]['parent']; + if (isset($this->message[$parent]['type']) && ($this->message[$parent]['type'] == 'array') && isset($this->message[$parent]['arrayType'])) { + $this->message[$pos]['result'] = $this->decodeSimple($this->message[$pos]['cdata'], $this->message[$parent]['arrayType'], isset($this->message[$parent]['arrayTypeNamespace']) ? $this->message[$parent]['arrayTypeNamespace'] : ''); + } else { + $this->message[$pos]['result'] = $this->message[$pos]['cdata']; + } + } + + /* add value to parent's result, if parent is struct/array + $parent = $this->message[$pos]['parent']; + if($this->message[$parent]['type'] != 'map'){ + if(strtolower($this->message[$parent]['type']) == 'array'){ + $this->message[$parent]['result'][] = $this->message[$pos]['result']; + } else { + $this->message[$parent]['result'][$this->message[$pos]['name']] = $this->message[$pos]['result']; + } + } + */ + } + } + + // for doclit + if($this->status == 'header'){ + if ($this->root_header != $pos) { + $this->responseHeaders .= ""; + } + } elseif($pos >= $this->root_struct){ + $this->document .= ""; + } + // switch status + if ($pos == $this->root_struct){ + $this->status = 'body'; + $this->root_struct_namespace = $this->message[$pos]['namespace']; + } elseif ($pos == $this->root_header) { + $this->status = 'envelope'; + } elseif ($name == 'Body' && $this->status == 'body') { + $this->status = 'envelope'; + } elseif ($name == 'Header' && $this->status == 'header') { // will never happen + $this->status = 'envelope'; + } elseif ($name == 'Envelope' && $this->status == 'envelope') { + $this->status = ''; + } + // set parent back to my parent + $this->parent = $this->message[$pos]['parent']; + } + + /** + * element content handler + * + * @param resource $parser XML parser object + * @param string $data element content + * @access private + */ + function character_data($parser, $data){ + $pos = $this->depth_array[$this->depth]; + if ($this->xml_encoding=='UTF-8'){ + // TODO: add an option to disable this for folks who want + // raw UTF-8 that, e.g., might not map to iso-8859-1 + // TODO: this can also be handled with xml_parser_set_option($this->parser, XML_OPTION_TARGET_ENCODING, "ISO-8859-1"); + if($this->decode_utf8){ + $data = utf8_decode($data); + } + } + $this->message[$pos]['cdata'] .= $data; + // for doclit + if($this->status == 'header'){ + $this->responseHeaders .= $data; + } else { + $this->document .= $data; + } + } + + /** + * get the parsed message (SOAP Body) + * + * @return mixed + * @access public + * @deprecated use get_soapbody instead + */ + function get_response(){ + return $this->soapresponse; + } + + /** + * get the parsed SOAP Body (NULL if there was none) + * + * @return mixed + * @access public + */ + function get_soapbody(){ + return $this->soapresponse; + } + + /** + * get the parsed SOAP Header (NULL if there was none) + * + * @return mixed + * @access public + */ + function get_soapheader(){ + return $this->soapheader; + } + + /** + * get the unparsed SOAP Header + * + * @return string XML or empty if no Header + * @access public + */ + function getHeaders(){ + return $this->responseHeaders; + } + + /** + * decodes simple types into PHP variables + * + * @param string $value value to decode + * @param string $type XML type to decode + * @param string $typens XML type namespace to decode + * @return mixed PHP value + * @access private + */ + function decodeSimple($value, $type, $typens) { + // TODO: use the namespace! + if ((!isset($type)) || $type == 'string' || $type == 'long' || $type == 'unsignedLong') { + return (string) $value; + } + if ($type == 'int' || $type == 'integer' || $type == 'short' || $type == 'byte') { + return (int) $value; + } + if ($type == 'float' || $type == 'double' || $type == 'decimal') { + return (double) $value; + } + if ($type == 'boolean') { + if (strtolower($value) == 'false' || strtolower($value) == 'f') { + return false; + } + return (boolean) $value; + } + if ($type == 'base64' || $type == 'base64Binary') { + $this->debug('Decode base64 value'); + return base64_decode($value); + } + // obscure numeric types + if ($type == 'nonPositiveInteger' || $type == 'negativeInteger' + || $type == 'nonNegativeInteger' || $type == 'positiveInteger' + || $type == 'unsignedInt' + || $type == 'unsignedShort' || $type == 'unsignedByte') { + return (int) $value; + } + // bogus: parser treats array with no elements as a simple type + if ($type == 'array') { + return array(); + } + // everything else + return (string) $value; + } + + /** + * builds response structures for compound values (arrays/structs) + * and scalars + * + * @param integer $pos position in node tree + * @return mixed PHP value + * @access private + */ + function buildVal($pos){ + if(!isset($this->message[$pos]['type'])){ + $this->message[$pos]['type'] = ''; + } + $this->debug('in buildVal() for '.$this->message[$pos]['name']."(pos $pos) of type ".$this->message[$pos]['type']); + // if there are children... + if($this->message[$pos]['children'] != ''){ + $this->debug('in buildVal, there are children'); + $children = explode('|',$this->message[$pos]['children']); + array_shift($children); // knock off empty + // md array + if(isset($this->message[$pos]['arrayCols']) && $this->message[$pos]['arrayCols'] != ''){ + $r=0; // rowcount + $c=0; // colcount + foreach($children as $child_pos){ + $this->debug("in buildVal, got an MD array element: $r, $c"); + $params[$r][] = $this->message[$child_pos]['result']; + $c++; + if($c == $this->message[$pos]['arrayCols']){ + $c = 0; + $r++; + } + } + // array + } elseif($this->message[$pos]['type'] == 'array' || $this->message[$pos]['type'] == 'Array'){ + $this->debug('in buildVal, adding array '.$this->message[$pos]['name']); + foreach($children as $child_pos){ + $params[] = &$this->message[$child_pos]['result']; + } + // apache Map type: java hashtable + } elseif($this->message[$pos]['type'] == 'Map' && $this->message[$pos]['type_namespace'] == 'http://xml.apache.org/xml-soap'){ + $this->debug('in buildVal, Java Map '.$this->message[$pos]['name']); + foreach($children as $child_pos){ + $kv = explode("|",$this->message[$child_pos]['children']); + $params[$this->message[$kv[1]]['result']] = &$this->message[$kv[2]]['result']; + } + // generic compound type + //} elseif($this->message[$pos]['type'] == 'SOAPStruct' || $this->message[$pos]['type'] == 'struct') { + } else { + // Apache Vector type: treat as an array + $this->debug('in buildVal, adding Java Vector or generic compound type '.$this->message[$pos]['name']); + if ($this->message[$pos]['type'] == 'Vector' && $this->message[$pos]['type_namespace'] == 'http://xml.apache.org/xml-soap') { + $notstruct = 1; + } else { + $notstruct = 0; + } + // + foreach($children as $child_pos){ + if($notstruct){ + $params[] = &$this->message[$child_pos]['result']; + } else { + if (isset($params[$this->message[$child_pos]['name']])) { + // de-serialize repeated element name into an array + if ((!is_array($params[$this->message[$child_pos]['name']])) || (!isset($params[$this->message[$child_pos]['name']][0]))) { + $params[$this->message[$child_pos]['name']] = array($params[$this->message[$child_pos]['name']]); + } + $params[$this->message[$child_pos]['name']][] = &$this->message[$child_pos]['result']; + } else { + $params[$this->message[$child_pos]['name']] = &$this->message[$child_pos]['result']; + } + } + } + } + if (isset($this->message[$pos]['xattrs'])) { + $this->debug('in buildVal, handling attributes'); + foreach ($this->message[$pos]['xattrs'] as $n => $v) { + $params[$n] = $v; + } + } + // handle simpleContent + if (isset($this->message[$pos]['cdata']) && trim($this->message[$pos]['cdata']) != '') { + $this->debug('in buildVal, handling simpleContent'); + if (isset($this->message[$pos]['type'])) { + $params['!'] = $this->decodeSimple($this->message[$pos]['cdata'], $this->message[$pos]['type'], isset($this->message[$pos]['type_namespace']) ? $this->message[$pos]['type_namespace'] : ''); + } else { + $parent = $this->message[$pos]['parent']; + if (isset($this->message[$parent]['type']) && ($this->message[$parent]['type'] == 'array') && isset($this->message[$parent]['arrayType'])) { + $params['!'] = $this->decodeSimple($this->message[$pos]['cdata'], $this->message[$parent]['arrayType'], isset($this->message[$parent]['arrayTypeNamespace']) ? $this->message[$parent]['arrayTypeNamespace'] : ''); + } else { + $params['!'] = $this->message[$pos]['cdata']; + } + } + } + $ret = is_array($params) ? $params : array(); + $this->debug('in buildVal, return:'); + $this->appendDebug($this->varDump($ret)); + return $ret; + } else { + $this->debug('in buildVal, no children, building scalar'); + $cdata = isset($this->message[$pos]['cdata']) ? $this->message[$pos]['cdata'] : ''; + if (isset($this->message[$pos]['type'])) { + $ret = $this->decodeSimple($cdata, $this->message[$pos]['type'], isset($this->message[$pos]['type_namespace']) ? $this->message[$pos]['type_namespace'] : ''); + $this->debug("in buildVal, return: $ret"); + return $ret; + } + $parent = $this->message[$pos]['parent']; + if (isset($this->message[$parent]['type']) && ($this->message[$parent]['type'] == 'array') && isset($this->message[$parent]['arrayType'])) { + $ret = $this->decodeSimple($cdata, $this->message[$parent]['arrayType'], isset($this->message[$parent]['arrayTypeNamespace']) ? $this->message[$parent]['arrayTypeNamespace'] : ''); + $this->debug("in buildVal, return: $ret"); + return $ret; + } + $ret = $this->message[$pos]['cdata']; + $this->debug("in buildVal, return: $ret"); + return $ret; + } + } +} + +/** + * Backward compatibility + */ +class soap_parser extends nusoap_parser { +} + + +?> \ No newline at end of file diff --git a/classes/lib/class.soap_server.php b/classes/lib/class.soap_server.php new file mode 100644 index 0000000..4f1321d --- /dev/null +++ b/classes/lib/class.soap_server.php @@ -0,0 +1,1127 @@ + +* @author Scott Nichol +* @version $Id: class.soap_server.php,v 1.63 2010/04/26 20:15:08 snichol Exp $ +* @access public +*/ +class nusoap_server extends nusoap_base { + /** + * HTTP headers of request + * @var array + * @access private + */ + var $headers = array(); + /** + * HTTP request + * @var string + * @access private + */ + var $request = ''; + /** + * SOAP headers from request (incomplete namespace resolution; special characters not escaped) (text) + * @var string + * @access public + */ + var $requestHeaders = ''; + /** + * SOAP Headers from request (parsed) + * @var mixed + * @access public + */ + var $requestHeader = NULL; + /** + * SOAP body request portion (incomplete namespace resolution; special characters not escaped) (text) + * @var string + * @access public + */ + var $document = ''; + /** + * SOAP payload for request (text) + * @var string + * @access public + */ + var $requestSOAP = ''; + /** + * requested method namespace URI + * @var string + * @access private + */ + var $methodURI = ''; + /** + * name of method requested + * @var string + * @access private + */ + var $methodname = ''; + /** + * method parameters from request + * @var array + * @access private + */ + var $methodparams = array(); + /** + * SOAP Action from request + * @var string + * @access private + */ + var $SOAPAction = ''; + /** + * character set encoding of incoming (request) messages + * @var string + * @access public + */ + var $xml_encoding = ''; + /** + * toggles whether the parser decodes element content w/ utf8_decode() + * @var boolean + * @access public + */ + var $decode_utf8 = true; + + /** + * HTTP headers of response + * @var array + * @access public + */ + var $outgoing_headers = array(); + /** + * HTTP response + * @var string + * @access private + */ + var $response = ''; + /** + * SOAP headers for response (text or array of soapval or associative array) + * @var mixed + * @access public + */ + var $responseHeaders = ''; + /** + * SOAP payload for response (text) + * @var string + * @access private + */ + var $responseSOAP = ''; + /** + * method return value to place in response + * @var mixed + * @access private + */ + var $methodreturn = false; + /** + * whether $methodreturn is a string of literal XML + * @var boolean + * @access public + */ + var $methodreturnisliteralxml = false; + /** + * SOAP fault for response (or false) + * @var mixed + * @access private + */ + var $fault = false; + /** + * text indication of result (for debugging) + * @var string + * @access private + */ + var $result = 'successful'; + + /** + * assoc array of operations => opData; operations are added by the register() + * method or by parsing an external WSDL definition + * @var array + * @access private + */ + var $operations = array(); + /** + * wsdl instance (if one) + * @var mixed + * @access private + */ + var $wsdl = false; + /** + * URL for WSDL (if one) + * @var mixed + * @access private + */ + var $externalWSDLURL = false; + /** + * whether to append debug to response as XML comment + * @var boolean + * @access public + */ + var $debug_flag = false; + + + /** + * constructor + * the optional parameter is a path to a WSDL file that you'd like to bind the server instance to. + * + * @param mixed $wsdl file path or URL (string), or wsdl instance (object) + * @access public + */ + function nusoap_server($wsdl=false){ + parent::nusoap_base(); + // turn on debugging? + global $debug; + global $HTTP_SERVER_VARS; + + if (isset($_SERVER)) { + $this->debug("_SERVER is defined:"); + $this->appendDebug($this->varDump($_SERVER)); + } elseif (isset($HTTP_SERVER_VARS)) { + $this->debug("HTTP_SERVER_VARS is defined:"); + $this->appendDebug($this->varDump($HTTP_SERVER_VARS)); + } else { + $this->debug("Neither _SERVER nor HTTP_SERVER_VARS is defined."); + } + + if (isset($debug)) { + $this->debug("In nusoap_server, set debug_flag=$debug based on global flag"); + $this->debug_flag = $debug; + } elseif (isset($_SERVER['QUERY_STRING'])) { + $qs = explode('&', $_SERVER['QUERY_STRING']); + foreach ($qs as $v) { + if (substr($v, 0, 6) == 'debug=') { + $this->debug("In nusoap_server, set debug_flag=" . substr($v, 6) . " based on query string #1"); + $this->debug_flag = substr($v, 6); + } + } + } elseif (isset($HTTP_SERVER_VARS['QUERY_STRING'])) { + $qs = explode('&', $HTTP_SERVER_VARS['QUERY_STRING']); + foreach ($qs as $v) { + if (substr($v, 0, 6) == 'debug=') { + $this->debug("In nusoap_server, set debug_flag=" . substr($v, 6) . " based on query string #2"); + $this->debug_flag = substr($v, 6); + } + } + } + + // wsdl + if($wsdl){ + $this->debug("In nusoap_server, WSDL is specified"); + if (is_object($wsdl) && (get_class($wsdl) == 'wsdl')) { + $this->wsdl = $wsdl; + $this->externalWSDLURL = $this->wsdl->wsdl; + $this->debug('Use existing wsdl instance from ' . $this->externalWSDLURL); + } else { + $this->debug('Create wsdl from ' . $wsdl); + $this->wsdl = new wsdl($wsdl); + $this->externalWSDLURL = $wsdl; + } + $this->appendDebug($this->wsdl->getDebug()); + $this->wsdl->clearDebug(); + if($err = $this->wsdl->getError()){ + die('WSDL ERROR: '.$err); + } + } + } + + /** + * processes request and returns response + * + * @param string $data usually is the value of $HTTP_RAW_POST_DATA + * @access public + */ + function service($data){ + global $HTTP_SERVER_VARS; + + if (isset($_SERVER['REQUEST_METHOD'])) { + $rm = $_SERVER['REQUEST_METHOD']; + } elseif (isset($HTTP_SERVER_VARS['REQUEST_METHOD'])) { + $rm = $HTTP_SERVER_VARS['REQUEST_METHOD']; + } else { + $rm = ''; + } + + if (isset($_SERVER['QUERY_STRING'])) { + $qs = $_SERVER['QUERY_STRING']; + } elseif (isset($HTTP_SERVER_VARS['QUERY_STRING'])) { + $qs = $HTTP_SERVER_VARS['QUERY_STRING']; + } else { + $qs = ''; + } + $this->debug("In service, request method=$rm query string=$qs strlen(\$data)=" . strlen($data)); + + if ($rm == 'POST') { + $this->debug("In service, invoke the request"); + $this->parse_request($data); + if (! $this->fault) { + $this->invoke_method(); + } + if (! $this->fault) { + $this->serialize_return(); + } + $this->send_response(); + } elseif (preg_match('/wsdl/', $qs) ){ + $this->debug("In service, this is a request for WSDL"); + if ($this->externalWSDLURL){ + if (strpos($this->externalWSDLURL, "http://") !== false) { // assume URL + $this->debug("In service, re-direct for WSDL"); + header('Location: '.$this->externalWSDLURL); + } else { // assume file + $this->debug("In service, use file passthru for WSDL"); + header("Content-Type: text/xml\r\n"); + $pos = strpos($this->externalWSDLURL, "file://"); + if ($pos === false) { + $filename = $this->externalWSDLURL; + } else { + $filename = substr($this->externalWSDLURL, $pos + 7); + } + $fp = fopen($this->externalWSDLURL, 'r'); + fpassthru($fp); + } + } elseif ($this->wsdl) { + $this->debug("In service, serialize WSDL"); + header("Content-Type: text/xml; charset=ISO-8859-1\r\n"); + print $this->wsdl->serialize($this->debug_flag); + if ($this->debug_flag) { + $this->debug('wsdl:'); + $this->appendDebug($this->varDump($this->wsdl)); + print $this->getDebugAsXMLComment(); + } + } else { + $this->debug("In service, there is no WSDL"); + header("Content-Type: text/html; charset=ISO-8859-1\r\n"); + print "This service does not provide WSDL"; + } + } elseif ($this->wsdl) { + $this->debug("In service, return Web description"); + print $this->wsdl->webDescription(); + } else { + $this->debug("In service, no Web description"); + header("Content-Type: text/html; charset=ISO-8859-1\r\n"); + print "This service does not provide a Web description"; + } + } + + /** + * parses HTTP request headers. + * + * The following fields are set by this function (when successful) + * + * headers + * request + * xml_encoding + * SOAPAction + * + * @access private + */ + function parse_http_headers() { + global $HTTP_SERVER_VARS; + + $this->request = ''; + $this->SOAPAction = ''; + if(function_exists('getallheaders')){ + $this->debug("In parse_http_headers, use getallheaders"); + $headers = getallheaders(); + foreach($headers as $k=>$v){ + $k = strtolower($k); + $this->headers[$k] = $v; + $this->request .= "$k: $v\r\n"; + $this->debug("$k: $v"); + } + // get SOAPAction header + if(isset($this->headers['soapaction'])){ + $this->SOAPAction = str_replace('"','',$this->headers['soapaction']); + } + // get the character encoding of the incoming request + if(isset($this->headers['content-type']) && strpos($this->headers['content-type'],'=')){ + $enc = str_replace('"','',substr(strstr($this->headers["content-type"],'='),1)); + if(preg_match('/^(ISO-8859-1|US-ASCII|UTF-8)$/i',$enc)){ + $this->xml_encoding = strtoupper($enc); + } else { + $this->xml_encoding = 'US-ASCII'; + } + } else { + // should be US-ASCII for HTTP 1.0 or ISO-8859-1 for HTTP 1.1 + $this->xml_encoding = 'ISO-8859-1'; + } + } elseif(isset($_SERVER) && is_array($_SERVER)){ + $this->debug("In parse_http_headers, use _SERVER"); + foreach ($_SERVER as $k => $v) { + if (substr($k, 0, 5) == 'HTTP_') { + $k = str_replace(' ', '-', strtolower(str_replace('_', ' ', substr($k, 5)))); + } else { + $k = str_replace(' ', '-', strtolower(str_replace('_', ' ', $k))); + } + if ($k == 'soapaction') { + // get SOAPAction header + $k = 'SOAPAction'; + $v = str_replace('"', '', $v); + $v = str_replace('\\', '', $v); + $this->SOAPAction = $v; + } else if ($k == 'content-type') { + // get the character encoding of the incoming request + if (strpos($v, '=')) { + $enc = substr(strstr($v, '='), 1); + $enc = str_replace('"', '', $enc); + $enc = str_replace('\\', '', $enc); + if (preg_match('/^(ISO-8859-1|US-ASCII|UTF-8)$/i',$enc)) { + $this->xml_encoding = strtoupper($enc); + } else { + $this->xml_encoding = 'US-ASCII'; + } + } else { + // should be US-ASCII for HTTP 1.0 or ISO-8859-1 for HTTP 1.1 + $this->xml_encoding = 'ISO-8859-1'; + } + } + $this->headers[$k] = $v; + $this->request .= "$k: $v\r\n"; + $this->debug("$k: $v"); + } + } elseif (is_array($HTTP_SERVER_VARS)) { + $this->debug("In parse_http_headers, use HTTP_SERVER_VARS"); + foreach ($HTTP_SERVER_VARS as $k => $v) { + if (substr($k, 0, 5) == 'HTTP_') { + $k = str_replace(' ', '-', strtolower(str_replace('_', ' ', substr($k, 5)))); $k = strtolower(substr($k, 5)); + } else { + $k = str_replace(' ', '-', strtolower(str_replace('_', ' ', $k))); $k = strtolower($k); + } + if ($k == 'soapaction') { + // get SOAPAction header + $k = 'SOAPAction'; + $v = str_replace('"', '', $v); + $v = str_replace('\\', '', $v); + $this->SOAPAction = $v; + } else if ($k == 'content-type') { + // get the character encoding of the incoming request + if (strpos($v, '=')) { + $enc = substr(strstr($v, '='), 1); + $enc = str_replace('"', '', $enc); + $enc = str_replace('\\', '', $enc); + if (preg_match('/^(ISO-8859-1|US-ASCII|UTF-8)$/i',$enc)) { + $this->xml_encoding = strtoupper($enc); + } else { + $this->xml_encoding = 'US-ASCII'; + } + } else { + // should be US-ASCII for HTTP 1.0 or ISO-8859-1 for HTTP 1.1 + $this->xml_encoding = 'ISO-8859-1'; + } + } + $this->headers[$k] = $v; + $this->request .= "$k: $v\r\n"; + $this->debug("$k: $v"); + } + } else { + $this->debug("In parse_http_headers, HTTP headers not accessible"); + $this->setError("HTTP headers not accessible"); + } + } + + /** + * parses a request + * + * The following fields are set by this function (when successful) + * + * headers + * request + * xml_encoding + * SOAPAction + * request + * requestSOAP + * methodURI + * methodname + * methodparams + * requestHeaders + * document + * + * This sets the fault field on error + * + * @param string $data XML string + * @access private + */ + function parse_request($data='') { + $this->debug('entering parse_request()'); + $this->parse_http_headers(); + $this->debug('got character encoding: '.$this->xml_encoding); + // uncompress if necessary + if (isset($this->headers['content-encoding']) && $this->headers['content-encoding'] != '') { + $this->debug('got content encoding: ' . $this->headers['content-encoding']); + if ($this->headers['content-encoding'] == 'deflate' || $this->headers['content-encoding'] == 'gzip') { + // if decoding works, use it. else assume data wasn't gzencoded + if (function_exists('gzuncompress')) { + if ($this->headers['content-encoding'] == 'deflate' && $degzdata = @gzuncompress($data)) { + $data = $degzdata; + } elseif ($this->headers['content-encoding'] == 'gzip' && $degzdata = gzinflate(substr($data, 10))) { + $data = $degzdata; + } else { + $this->fault('SOAP-ENV:Client', 'Errors occurred when trying to decode the data'); + return; + } + } else { + $this->fault('SOAP-ENV:Client', 'This Server does not support compressed data'); + return; + } + } + } + $this->request .= "\r\n".$data; + $data = $this->parseRequest($this->headers, $data); + $this->requestSOAP = $data; + $this->debug('leaving parse_request'); + } + + /** + * invokes a PHP function for the requested SOAP method + * + * The following fields are set by this function (when successful) + * + * methodreturn + * + * Note that the PHP function that is called may also set the following + * fields to affect the response sent to the client + * + * responseHeaders + * outgoing_headers + * + * This sets the fault field on error + * + * @access private + */ + function invoke_method() { + $this->debug('in invoke_method, methodname=' . $this->methodname . ' methodURI=' . $this->methodURI . ' SOAPAction=' . $this->SOAPAction); + + // + // if you are debugging in this area of the code, your service uses a class to implement methods, + // you use SOAP RPC, and the client is .NET, please be aware of the following... + // when the .NET wsdl.exe utility generates a proxy, it will remove the '.' or '..' from the + // method name. that is fine for naming the .NET methods. it is not fine for properly constructing + // the XML request and reading the XML response. you need to add the RequestElementName and + // ResponseElementName to the System.Web.Services.Protocols.SoapRpcMethodAttribute that wsdl.exe + // generates for the method. these parameters are used to specify the correct XML element names + // for .NET to use, i.e. the names with the '.' in them. + // + $orig_methodname = $this->methodname; + if ($this->wsdl) { + if ($this->opData = $this->wsdl->getOperationData($this->methodname)) { + $this->debug('in invoke_method, found WSDL operation=' . $this->methodname); + $this->appendDebug('opData=' . $this->varDump($this->opData)); + } elseif ($this->opData = $this->wsdl->getOperationDataForSoapAction($this->SOAPAction)) { + // Note: hopefully this case will only be used for doc/lit, since rpc services should have wrapper element + $this->debug('in invoke_method, found WSDL soapAction=' . $this->SOAPAction . ' for operation=' . $this->opData['name']); + $this->appendDebug('opData=' . $this->varDump($this->opData)); + $this->methodname = $this->opData['name']; + } else { + $this->debug('in invoke_method, no WSDL for operation=' . $this->methodname); + $this->fault('SOAP-ENV:Client', "Operation '" . $this->methodname . "' is not defined in the WSDL for this service"); + return; + } + } else { + $this->debug('in invoke_method, no WSDL to validate method'); + } + + // if a . is present in $this->methodname, we see if there is a class in scope, + // which could be referred to. We will also distinguish between two deliminators, + // to allow methods to be called a the class or an instance + if (strpos($this->methodname, '..') > 0) { + $delim = '..'; + } else if (strpos($this->methodname, '.') > 0) { + $delim = '.'; + } else { + $delim = ''; + } + $this->debug("in invoke_method, delim=$delim"); + + $class = ''; + $method = ''; + if (strlen($delim) > 0 && substr_count($this->methodname, $delim) == 1) { + $try_class = substr($this->methodname, 0, strpos($this->methodname, $delim)); + if (class_exists($try_class)) { + // get the class and method name + $class = $try_class; + $method = substr($this->methodname, strpos($this->methodname, $delim) + strlen($delim)); + $this->debug("in invoke_method, class=$class method=$method delim=$delim"); + } else { + $this->debug("in invoke_method, class=$try_class not found"); + } + } else { + $try_class = ''; + $this->debug("in invoke_method, no class to try"); + } + + // does method exist? + if ($class == '') { + if (!function_exists($this->methodname)) { + $this->debug("in invoke_method, function '$this->methodname' not found!"); + $this->result = 'fault: method not found'; + $this->fault('SOAP-ENV:Client',"method '$this->methodname'('$orig_methodname') not defined in service('$try_class' '$delim')"); + return; + } + } else { + $method_to_compare = (substr(phpversion(), 0, 2) == '4.') ? strtolower($method) : $method; + if (!in_array($method_to_compare, get_class_methods($class))) { + $this->debug("in invoke_method, method '$this->methodname' not found in class '$class'!"); + $this->result = 'fault: method not found'; + $this->fault('SOAP-ENV:Client',"method '$this->methodname'/'$method_to_compare'('$orig_methodname') not defined in service/'$class'('$try_class' '$delim')"); + return; + } + } + + // evaluate message, getting back parameters + // verify that request parameters match the method's signature + if(! $this->verify_method($this->methodname,$this->methodparams)){ + // debug + $this->debug('ERROR: request not verified against method signature'); + $this->result = 'fault: request failed validation against method signature'; + // return fault + $this->fault('SOAP-ENV:Client',"Operation '$this->methodname' not defined in service."); + return; + } + + // if there are parameters to pass + $this->debug('in invoke_method, params:'); + $this->appendDebug($this->varDump($this->methodparams)); + $this->debug("in invoke_method, calling '$this->methodname'"); + if (!function_exists('call_user_func_array')) { + if ($class == '') { + $this->debug('in invoke_method, calling function using eval()'); + $funcCall = "\$this->methodreturn = $this->methodname("; + } else { + if ($delim == '..') { + $this->debug('in invoke_method, calling class method using eval()'); + $funcCall = "\$this->methodreturn = ".$class."::".$method."("; + } else { + $this->debug('in invoke_method, calling instance method using eval()'); + // generate unique instance name + $instname = "\$inst_".time(); + $funcCall = $instname." = new ".$class."(); "; + $funcCall .= "\$this->methodreturn = ".$instname."->".$method."("; + } + } + if ($this->methodparams) { + foreach ($this->methodparams as $param) { + if (is_array($param) || is_object($param)) { + $this->fault('SOAP-ENV:Client', 'NuSOAP does not handle complexType parameters correctly when using eval; call_user_func_array must be available'); + return; + } + $funcCall .= "\"$param\","; + } + $funcCall = substr($funcCall, 0, -1); + } + $funcCall .= ');'; + $this->debug('in invoke_method, function call: '.$funcCall); + @eval($funcCall); + } else { + if ($class == '') { + $this->debug('in invoke_method, calling function using call_user_func_array()'); + $call_arg = "$this->methodname"; // straight assignment changes $this->methodname to lower case after call_user_func_array() + } elseif ($delim == '..') { + $this->debug('in invoke_method, calling class method using call_user_func_array()'); + $call_arg = array ($class, $method); + } else { + $this->debug('in invoke_method, calling instance method using call_user_func_array()'); + $instance = new $class (); + $call_arg = array(&$instance, $method); + } + if (is_array($this->methodparams)) { + $this->methodreturn = call_user_func_array($call_arg, array_values($this->methodparams)); + } else { + $this->methodreturn = call_user_func_array($call_arg, array()); + } + } + $this->debug('in invoke_method, methodreturn:'); + $this->appendDebug($this->varDump($this->methodreturn)); + $this->debug("in invoke_method, called method $this->methodname, received data of type ".gettype($this->methodreturn)); + } + + /** + * serializes the return value from a PHP function into a full SOAP Envelope + * + * The following fields are set by this function (when successful) + * + * responseSOAP + * + * This sets the fault field on error + * + * @access private + */ + function serialize_return() { + $this->debug('Entering serialize_return methodname: ' . $this->methodname . ' methodURI: ' . $this->methodURI); + // if fault + if (isset($this->methodreturn) && is_object($this->methodreturn) && ((get_class($this->methodreturn) == 'soap_fault') || (get_class($this->methodreturn) == 'nusoap_fault'))) { + $this->debug('got a fault object from method'); + $this->fault = $this->methodreturn; + return; + } elseif ($this->methodreturnisliteralxml) { + $return_val = $this->methodreturn; + // returned value(s) + } else { + $this->debug('got a(n) '.gettype($this->methodreturn).' from method'); + $this->debug('serializing return value'); + if($this->wsdl){ + if (sizeof($this->opData['output']['parts']) > 1) { + $this->debug('more than one output part, so use the method return unchanged'); + $opParams = $this->methodreturn; + } elseif (sizeof($this->opData['output']['parts']) == 1) { + $this->debug('exactly one output part, so wrap the method return in a simple array'); + // TODO: verify that it is not already wrapped! + //foreach ($this->opData['output']['parts'] as $name => $type) { + // $this->debug('wrap in element named ' . $name); + //} + $opParams = array($this->methodreturn); + } + $return_val = $this->wsdl->serializeRPCParameters($this->methodname,'output',$opParams); + $this->appendDebug($this->wsdl->getDebug()); + $this->wsdl->clearDebug(); + if($errstr = $this->wsdl->getError()){ + $this->debug('got wsdl error: '.$errstr); + $this->fault('SOAP-ENV:Server', 'unable to serialize result'); + return; + } + } else { + if (isset($this->methodreturn)) { + $return_val = $this->serialize_val($this->methodreturn, 'return'); + } else { + $return_val = ''; + $this->debug('in absence of WSDL, assume void return for backward compatibility'); + } + } + } + $this->debug('return value:'); + $this->appendDebug($this->varDump($return_val)); + + $this->debug('serializing response'); + if ($this->wsdl) { + $this->debug('have WSDL for serialization: style is ' . $this->opData['style']); + if ($this->opData['style'] == 'rpc') { + $this->debug('style is rpc for serialization: use is ' . $this->opData['output']['use']); + if ($this->opData['output']['use'] == 'literal') { + // http://www.ws-i.org/Profiles/BasicProfile-1.1-2004-08-24.html R2735 says rpc/literal accessor elements should not be in a namespace + if ($this->methodURI) { + $payload = 'methodname.'Response xmlns:ns1="'.$this->methodURI.'">'.$return_val.'methodname."Response>"; + } else { + $payload = '<'.$this->methodname.'Response>'.$return_val.'methodname.'Response>'; + } + } else { + if ($this->methodURI) { + $payload = 'methodname.'Response xmlns:ns1="'.$this->methodURI.'">'.$return_val.'methodname."Response>"; + } else { + $payload = '<'.$this->methodname.'Response>'.$return_val.'methodname.'Response>'; + } + } + } else { + $this->debug('style is not rpc for serialization: assume document'); + $payload = $return_val; + } + } else { + $this->debug('do not have WSDL for serialization: assume rpc/encoded'); + $payload = 'methodname.'Response xmlns:ns1="'.$this->methodURI.'">'.$return_val.'methodname."Response>"; + } + $this->result = 'successful'; + if($this->wsdl){ + //if($this->debug_flag){ + $this->appendDebug($this->wsdl->getDebug()); + // } + if (isset($this->opData['output']['encodingStyle'])) { + $encodingStyle = $this->opData['output']['encodingStyle']; + } else { + $encodingStyle = ''; + } + // Added: In case we use a WSDL, return a serialized env. WITH the usedNamespaces. + $this->responseSOAP = $this->serializeEnvelope($payload,$this->responseHeaders,$this->wsdl->usedNamespaces,$this->opData['style'],$this->opData['output']['use'],$encodingStyle); + } else { + $this->responseSOAP = $this->serializeEnvelope($payload,$this->responseHeaders); + } + $this->debug("Leaving serialize_return"); + } + + /** + * sends an HTTP response + * + * The following fields are set by this function (when successful) + * + * outgoing_headers + * response + * + * @access private + */ + function send_response() { + $this->debug('Enter send_response'); + if ($this->fault) { + $payload = $this->fault->serialize(); + $this->outgoing_headers[] = "HTTP/1.0 500 Internal Server Error"; + $this->outgoing_headers[] = "Status: 500 Internal Server Error"; + } else { + $payload = $this->responseSOAP; + // Some combinations of PHP+Web server allow the Status + // to come through as a header. Since OK is the default + // just do nothing. + // $this->outgoing_headers[] = "HTTP/1.0 200 OK"; + // $this->outgoing_headers[] = "Status: 200 OK"; + } + // add debug data if in debug mode + if(isset($this->debug_flag) && $this->debug_flag){ + $payload .= $this->getDebugAsXMLComment(); + } + $this->outgoing_headers[] = "Server: $this->title Server v$this->version"; + preg_match('/\$Revisio' . 'n: ([^ ]+)/', $this->revision, $rev); + $this->outgoing_headers[] = "X-SOAP-Server: $this->title/$this->version (".$rev[1].")"; + // Let the Web server decide about this + //$this->outgoing_headers[] = "Connection: Close\r\n"; + $payload = $this->getHTTPBody($payload); + $type = $this->getHTTPContentType(); + $charset = $this->getHTTPContentTypeCharset(); + $this->outgoing_headers[] = "Content-Type: $type" . ($charset ? '; charset=' . $charset : ''); + //begin code to compress payload - by John + // NOTE: there is no way to know whether the Web server will also compress + // this data. + if (strlen($payload) > 1024 && isset($this->headers) && isset($this->headers['accept-encoding'])) { + if (strstr($this->headers['accept-encoding'], 'gzip')) { + if (function_exists('gzencode')) { + if (isset($this->debug_flag) && $this->debug_flag) { + $payload .= ""; + } + $this->outgoing_headers[] = "Content-Encoding: gzip"; + $payload = gzencode($payload); + } else { + if (isset($this->debug_flag) && $this->debug_flag) { + $payload .= ""; + } + } + } elseif (strstr($this->headers['accept-encoding'], 'deflate')) { + // Note: MSIE requires gzdeflate output (no Zlib header and checksum), + // instead of gzcompress output, + // which conflicts with HTTP 1.1 spec (http://www.w3.org/Protocols/rfc2616/rfc2616-sec3.html#sec3.5) + if (function_exists('gzdeflate')) { + if (isset($this->debug_flag) && $this->debug_flag) { + $payload .= ""; + } + $this->outgoing_headers[] = "Content-Encoding: deflate"; + $payload = gzdeflate($payload); + } else { + if (isset($this->debug_flag) && $this->debug_flag) { + $payload .= ""; + } + } + } + } + //end code + $this->outgoing_headers[] = "Content-Length: ".strlen($payload); + reset($this->outgoing_headers); + foreach($this->outgoing_headers as $hdr){ + header($hdr, false); + } + print $payload; + $this->response = join("\r\n",$this->outgoing_headers)."\r\n\r\n".$payload; + } + + /** + * takes the value that was created by parsing the request + * and compares to the method's signature, if available. + * + * @param string $operation The operation to be invoked + * @param array $request The array of parameter values + * @return boolean Whether the operation was found + * @access private + */ + function verify_method($operation,$request){ + if(isset($this->wsdl) && is_object($this->wsdl)){ + if($this->wsdl->getOperationData($operation)){ + return true; + } + } elseif(isset($this->operations[$operation])){ + return true; + } + return false; + } + + /** + * processes SOAP message received from client + * + * @param array $headers The HTTP headers + * @param string $data unprocessed request data from client + * @return mixed value of the message, decoded into a PHP type + * @access private + */ + function parseRequest($headers, $data) { + $this->debug('Entering parseRequest() for data of length ' . strlen($data) . ' headers:'); + $this->appendDebug($this->varDump($headers)); + if (!isset($headers['content-type'])) { + $this->setError('Request not of type text/xml (no content-type header)'); + return false; + } + if (!strstr($headers['content-type'], 'text/xml')) { + $this->setError('Request not of type text/xml'); + return false; + } + if (strpos($headers['content-type'], '=')) { + $enc = str_replace('"', '', substr(strstr($headers["content-type"], '='), 1)); + $this->debug('Got response encoding: ' . $enc); + if(preg_match('/^(ISO-8859-1|US-ASCII|UTF-8)$/i',$enc)){ + $this->xml_encoding = strtoupper($enc); + } else { + $this->xml_encoding = 'US-ASCII'; + } + } else { + // should be US-ASCII for HTTP 1.0 or ISO-8859-1 for HTTP 1.1 + $this->xml_encoding = 'ISO-8859-1'; + } + $this->debug('Use encoding: ' . $this->xml_encoding . ' when creating nusoap_parser'); + // parse response, get soap parser obj + $parser = new nusoap_parser($data,$this->xml_encoding,'',$this->decode_utf8); + // parser debug + $this->debug("parser debug: \n".$parser->getDebug()); + // if fault occurred during message parsing + if($err = $parser->getError()){ + $this->result = 'fault: error in msg parsing: '.$err; + $this->fault('SOAP-ENV:Client',"error in msg parsing:\n".$err); + // else successfully parsed request into soapval object + } else { + // get/set methodname + $this->methodURI = $parser->root_struct_namespace; + $this->methodname = $parser->root_struct_name; + $this->debug('methodname: '.$this->methodname.' methodURI: '.$this->methodURI); + $this->debug('calling parser->get_soapbody()'); + $this->methodparams = $parser->get_soapbody(); + // get SOAP headers + $this->requestHeaders = $parser->getHeaders(); + // get SOAP Header + $this->requestHeader = $parser->get_soapheader(); + // add document for doclit support + $this->document = $parser->document; + } + } + + /** + * gets the HTTP body for the current response. + * + * @param string $soapmsg The SOAP payload + * @return string The HTTP body, which includes the SOAP payload + * @access private + */ + function getHTTPBody($soapmsg) { + return $soapmsg; + } + + /** + * gets the HTTP content type for the current response. + * + * Note: getHTTPBody must be called before this. + * + * @return string the HTTP content type for the current response. + * @access private + */ + function getHTTPContentType() { + return 'text/xml'; + } + + /** + * gets the HTTP content type charset for the current response. + * returns false for non-text content types. + * + * Note: getHTTPBody must be called before this. + * + * @return string the HTTP content type charset for the current response. + * @access private + */ + function getHTTPContentTypeCharset() { + return $this->soap_defencoding; + } + + /** + * add a method to the dispatch map (this has been replaced by the register method) + * + * @param string $methodname + * @param string $in array of input values + * @param string $out array of output values + * @access public + * @deprecated + */ + function add_to_map($methodname,$in,$out){ + $this->operations[$methodname] = array('name' => $methodname,'in' => $in,'out' => $out); + } + + /** + * register a service function with the server + * + * @param string $name the name of the PHP function, class.method or class..method + * @param array $in assoc array of input values: key = param name, value = param type + * @param array $out assoc array of output values: key = param name, value = param type + * @param mixed $namespace the element namespace for the method or false + * @param mixed $soapaction the soapaction for the method or false + * @param mixed $style optional (rpc|document) or false Note: when 'document' is specified, parameter and return wrappers are created for you automatically + * @param mixed $use optional (encoded|literal) or false + * @param string $documentation optional Description to include in WSDL + * @param string $encodingStyle optional (usually 'http://schemas.xmlsoap.org/soap/encoding/' for encoded) + * @access public + */ + function register($name,$in=array(),$out=array(),$namespace=false,$soapaction=false,$style=false,$use=false,$documentation='',$encodingStyle=''){ + global $HTTP_SERVER_VARS; + + if($this->externalWSDLURL){ + die('You cannot bind to an external WSDL file, and register methods outside of it! Please choose either WSDL or no WSDL.'); + } + if (! $name) { + die('You must specify a name when you register an operation'); + } + if (!is_array($in)) { + die('You must provide an array for operation inputs'); + } + if (!is_array($out)) { + die('You must provide an array for operation outputs'); + } + if(false == $namespace) { + } + if(false == $soapaction) { + if (isset($_SERVER)) { + $SERVER_NAME = $_SERVER['SERVER_NAME']; + $SCRIPT_NAME = isset($_SERVER['PHP_SELF']) ? $_SERVER['PHP_SELF'] : $_SERVER['SCRIPT_NAME']; + $HTTPS = isset($_SERVER['HTTPS']) ? $_SERVER['HTTPS'] : (isset($HTTP_SERVER_VARS['HTTPS']) ? $HTTP_SERVER_VARS['HTTPS'] : 'off'); + } elseif (isset($HTTP_SERVER_VARS)) { + $SERVER_NAME = $HTTP_SERVER_VARS['SERVER_NAME']; + $SCRIPT_NAME = isset($HTTP_SERVER_VARS['PHP_SELF']) ? $HTTP_SERVER_VARS['PHP_SELF'] : $HTTP_SERVER_VARS['SCRIPT_NAME']; + $HTTPS = isset($HTTP_SERVER_VARS['HTTPS']) ? $HTTP_SERVER_VARS['HTTPS'] : 'off'; + } else { + $this->setError("Neither _SERVER nor HTTP_SERVER_VARS is available"); + } + if ($HTTPS == '1' || $HTTPS == 'on') { + $SCHEME = 'https'; + } else { + $SCHEME = 'http'; + } + $soapaction = "$SCHEME://$SERVER_NAME$SCRIPT_NAME/$name"; + } + if(false == $style) { + $style = "rpc"; + } + if(false == $use) { + $use = "encoded"; + } + if ($use == 'encoded' && $encodingStyle == '') { + $encodingStyle = 'http://schemas.xmlsoap.org/soap/encoding/'; + } + + $this->operations[$name] = array( + 'name' => $name, + 'in' => $in, + 'out' => $out, + 'namespace' => $namespace, + 'soapaction' => $soapaction, + 'style' => $style); + if($this->wsdl){ + $this->wsdl->addOperation($name,$in,$out,$namespace,$soapaction,$style,$use,$documentation,$encodingStyle); + } + return true; + } + + /** + * Specify a fault to be returned to the client. + * This also acts as a flag to the server that a fault has occured. + * + * @param string $faultcode + * @param string $faultstring + * @param string $faultactor + * @param string $faultdetail + * @access public + */ + function fault($faultcode,$faultstring,$faultactor='',$faultdetail=''){ + if ($faultdetail == '' && $this->debug_flag) { + $faultdetail = $this->getDebug(); + } + $this->fault = new nusoap_fault($faultcode,$faultactor,$faultstring,$faultdetail); + $this->fault->soap_defencoding = $this->soap_defencoding; + } + + /** + * Sets up wsdl object. + * Acts as a flag to enable internal WSDL generation + * + * @param string $serviceName, name of the service + * @param mixed $namespace optional 'tns' service namespace or false + * @param mixed $endpoint optional URL of service endpoint or false + * @param string $style optional (rpc|document) WSDL style (also specified by operation) + * @param string $transport optional SOAP transport + * @param mixed $schemaTargetNamespace optional 'types' targetNamespace for service schema or false + */ + function configureWSDL($serviceName,$namespace = false,$endpoint = false,$style='rpc', $transport = 'http://schemas.xmlsoap.org/soap/http', $schemaTargetNamespace = false) + { + global $HTTP_SERVER_VARS; + + if (isset($_SERVER)) { + $SERVER_NAME = $_SERVER['SERVER_NAME']; + $SERVER_PORT = $_SERVER['SERVER_PORT']; + $SCRIPT_NAME = isset($_SERVER['PHP_SELF']) ? $_SERVER['PHP_SELF'] : $_SERVER['SCRIPT_NAME']; + $HTTPS = isset($_SERVER['HTTPS']) ? $_SERVER['HTTPS'] : (isset($HTTP_SERVER_VARS['HTTPS']) ? $HTTP_SERVER_VARS['HTTPS'] : 'off'); + } elseif (isset($HTTP_SERVER_VARS)) { + $SERVER_NAME = $HTTP_SERVER_VARS['SERVER_NAME']; + $SERVER_PORT = $HTTP_SERVER_VARS['SERVER_PORT']; + $SCRIPT_NAME = isset($HTTP_SERVER_VARS['PHP_SELF']) ? $HTTP_SERVER_VARS['PHP_SELF'] : $HTTP_SERVER_VARS['SCRIPT_NAME']; + $HTTPS = isset($HTTP_SERVER_VARS['HTTPS']) ? $HTTP_SERVER_VARS['HTTPS'] : 'off'; + } else { + $this->setError("Neither _SERVER nor HTTP_SERVER_VARS is available"); + } + // If server name has port number attached then strip it (else port number gets duplicated in WSDL output) (occurred using lighttpd and FastCGI) + $colon = strpos($SERVER_NAME,":"); + if ($colon) { + $SERVER_NAME = substr($SERVER_NAME, 0, $colon); + } + if ($SERVER_PORT == 80) { + $SERVER_PORT = ''; + } else { + $SERVER_PORT = ':' . $SERVER_PORT; + } + if(false == $namespace) { + $namespace = "http://$SERVER_NAME/soap/$serviceName"; + } + + if(false == $endpoint) { + if ($HTTPS == '1' || $HTTPS == 'on') { + $SCHEME = 'https'; + } else { + $SCHEME = 'http'; + } + $endpoint = "$SCHEME://$SERVER_NAME$SERVER_PORT$SCRIPT_NAME"; + } + + if(false == $schemaTargetNamespace) { + $schemaTargetNamespace = $namespace; + } + + $this->wsdl = new wsdl; + $this->wsdl->serviceName = $serviceName; + $this->wsdl->endpoint = $endpoint; + $this->wsdl->namespaces['tns'] = $namespace; + $this->wsdl->namespaces['soap'] = 'http://schemas.xmlsoap.org/wsdl/soap/'; + $this->wsdl->namespaces['wsdl'] = 'http://schemas.xmlsoap.org/wsdl/'; + if ($schemaTargetNamespace != $namespace) { + $this->wsdl->namespaces['types'] = $schemaTargetNamespace; + } + $this->wsdl->schemas[$schemaTargetNamespace][0] = new nusoap_xmlschema('', '', $this->wsdl->namespaces); + if ($style == 'document') { + $this->wsdl->schemas[$schemaTargetNamespace][0]->schemaInfo['elementFormDefault'] = 'qualified'; + } + $this->wsdl->schemas[$schemaTargetNamespace][0]->schemaTargetNamespace = $schemaTargetNamespace; + $this->wsdl->schemas[$schemaTargetNamespace][0]->imports['http://schemas.xmlsoap.org/soap/encoding/'][0] = array('location' => '', 'loaded' => true); + $this->wsdl->schemas[$schemaTargetNamespace][0]->imports['http://schemas.xmlsoap.org/wsdl/'][0] = array('location' => '', 'loaded' => true); + $this->wsdl->bindings[$serviceName.'Binding'] = array( + 'name'=>$serviceName.'Binding', + 'style'=>$style, + 'transport'=>$transport, + 'portType'=>$serviceName.'PortType'); + $this->wsdl->ports[$serviceName.'Port'] = array( + 'binding'=>$serviceName.'Binding', + 'location'=>$endpoint, + 'bindingType'=>'http://schemas.xmlsoap.org/wsdl/soap/'); + } +} + +/** + * Backward compatibility + */ +class soap_server extends nusoap_server { +} + + +?> \ No newline at end of file diff --git a/classes/lib/class.soap_transport_http.php b/classes/lib/class.soap_transport_http.php new file mode 100644 index 0000000..4698209 --- /dev/null +++ b/classes/lib/class.soap_transport_http.php @@ -0,0 +1,1307 @@ + +* @author Scott Nichol +* @version $Id: class.soap_transport_http.php,v 1.68 2010/04/26 20:15:08 snichol Exp $ +* @access public +*/ +class soap_transport_http extends nusoap_base { + + var $url = ''; + var $uri = ''; + var $digest_uri = ''; + var $scheme = ''; + var $host = ''; + var $port = ''; + var $path = ''; + var $request_method = 'POST'; + var $protocol_version = '1.0'; + var $encoding = ''; + var $outgoing_headers = array(); + var $incoming_headers = array(); + var $incoming_cookies = array(); + var $outgoing_payload = ''; + var $incoming_payload = ''; + var $response_status_line; // HTTP response status line + var $useSOAPAction = true; + var $persistentConnection = false; + var $ch = false; // cURL handle + var $ch_options = array(); // cURL custom options + var $use_curl = false; // force cURL use + var $proxy = null; // proxy information (associative array) + var $username = ''; + var $password = ''; + var $authtype = ''; + var $digestRequest = array(); + var $certRequest = array(); // keys must be cainfofile (optional), sslcertfile, sslkeyfile, passphrase, certpassword (optional), verifypeer (optional), verifyhost (optional) + // cainfofile: certificate authority file, e.g. '$pathToPemFiles/rootca.pem' + // sslcertfile: SSL certificate file, e.g. '$pathToPemFiles/mycert.pem' + // sslkeyfile: SSL key file, e.g. '$pathToPemFiles/mykey.pem' + // passphrase: SSL key password/passphrase + // certpassword: SSL certificate password + // verifypeer: default is 1 + // verifyhost: default is 1 + + /** + * constructor + * + * @param string $url The URL to which to connect + * @param array $curl_options User-specified cURL options + * @param boolean $use_curl Whether to try to force cURL use + * @access public + */ + function soap_transport_http($url, $curl_options = NULL, $use_curl = false){ + parent::nusoap_base(); + $this->debug("ctor url=$url use_curl=$use_curl curl_options:"); + $this->appendDebug($this->varDump($curl_options)); + $this->setURL($url); + if (is_array($curl_options)) { + $this->ch_options = $curl_options; + } + $this->use_curl = $use_curl; + preg_match('/\$Revisio' . 'n: ([^ ]+)/', $this->revision, $rev); + $this->setHeader('User-Agent', $this->title.'/'.$this->version.' ('.$rev[1].')'); + } + + /** + * sets a cURL option + * + * @param mixed $option The cURL option (always integer?) + * @param mixed $value The cURL option value + * @access private + */ + function setCurlOption($option, $value) { + $this->debug("setCurlOption option=$option, value="); + $this->appendDebug($this->varDump($value)); + curl_setopt($this->ch, $option, $value); + } + + /** + * sets an HTTP header + * + * @param string $name The name of the header + * @param string $value The value of the header + * @access private + */ + function setHeader($name, $value) { + $this->outgoing_headers[$name] = $value; + $this->debug("set header $name: $value"); + } + + /** + * unsets an HTTP header + * + * @param string $name The name of the header + * @access private + */ + function unsetHeader($name) { + if (isset($this->outgoing_headers[$name])) { + $this->debug("unset header $name"); + unset($this->outgoing_headers[$name]); + } + } + + /** + * sets the URL to which to connect + * + * @param string $url The URL to which to connect + * @access private + */ + function setURL($url) { + $this->url = $url; + + $u = parse_url($url); + foreach($u as $k => $v){ + $this->debug("parsed URL $k = $v"); + $this->$k = $v; + } + + // add any GET params to path + if(isset($u['query']) && $u['query'] != ''){ + $this->path .= '?' . $u['query']; + } + + // set default port + if(!isset($u['port'])){ + if($u['scheme'] == 'https'){ + $this->port = 443; + } else { + $this->port = 80; + } + } + + $this->uri = $this->path; + $this->digest_uri = $this->uri; + + // build headers + if (!isset($u['port'])) { + $this->setHeader('Host', $this->host); + } else { + $this->setHeader('Host', $this->host.':'.$this->port); + } + + if (isset($u['user']) && $u['user'] != '') { + $this->setCredentials(urldecode($u['user']), isset($u['pass']) ? urldecode($u['pass']) : ''); + } + } + + /** + * gets the I/O method to use + * + * @return string I/O method to use (socket|curl|unknown) + * @access private + */ + function io_method() { + if ($this->use_curl || ($this->scheme == 'https') || ($this->scheme == 'http' && $this->authtype == 'ntlm') || ($this->scheme == 'http' && is_array($this->proxy) && $this->proxy['authtype'] == 'ntlm')) + return 'curl'; + if (($this->scheme == 'http' || $this->scheme == 'ssl') && $this->authtype != 'ntlm' && (!is_array($this->proxy) || $this->proxy['authtype'] != 'ntlm')) + return 'socket'; + return 'unknown'; + } + + /** + * establish an HTTP connection + * + * @param integer $timeout set connection timeout in seconds + * @param integer $response_timeout set response timeout in seconds + * @return boolean true if connected, false if not + * @access private + */ + function connect($connection_timeout=0,$response_timeout=30){ + // For PHP 4.3 with OpenSSL, change https scheme to ssl, then treat like + // "regular" socket. + // TODO: disabled for now because OpenSSL must be *compiled* in (not just + // loaded), and until PHP5 stream_get_wrappers is not available. +// if ($this->scheme == 'https') { +// if (version_compare(phpversion(), '4.3.0') >= 0) { +// if (extension_loaded('openssl')) { +// $this->scheme = 'ssl'; +// $this->debug('Using SSL over OpenSSL'); +// } +// } +// } + $this->debug("connect connection_timeout $connection_timeout, response_timeout $response_timeout, scheme $this->scheme, host $this->host, port $this->port"); + if ($this->io_method() == 'socket') { + if (!is_array($this->proxy)) { + $host = $this->host; + $port = $this->port; + } else { + $host = $this->proxy['host']; + $port = $this->proxy['port']; + } + + // use persistent connection + if($this->persistentConnection && isset($this->fp) && is_resource($this->fp)){ + if (!feof($this->fp)) { + $this->debug('Re-use persistent connection'); + return true; + } + fclose($this->fp); + $this->debug('Closed persistent connection at EOF'); + } + + // munge host if using OpenSSL + if ($this->scheme == 'ssl') { + $host = 'ssl://' . $host; + } + $this->debug('calling fsockopen with host ' . $host . ' connection_timeout ' . $connection_timeout); + + // open socket + if($connection_timeout > 0){ + $this->fp = @fsockopen( $host, $this->port, $this->errno, $this->error_str, $connection_timeout); + } else { + $this->fp = @fsockopen( $host, $this->port, $this->errno, $this->error_str); + } + + // test pointer + if(!$this->fp) { + $msg = 'Couldn\'t open socket connection to server ' . $this->url; + if ($this->errno) { + $msg .= ', Error ('.$this->errno.'): '.$this->error_str; + } else { + $msg .= ' prior to connect(). This is often a problem looking up the host name.'; + } + $this->debug($msg); + $this->setError($msg); + return false; + } + + // set response timeout + $this->debug('set response timeout to ' . $response_timeout); + socket_set_timeout( $this->fp, $response_timeout); + + $this->debug('socket connected'); + return true; + } else if ($this->io_method() == 'curl') { + if (!extension_loaded('curl')) { +// $this->setError('cURL Extension, or OpenSSL extension w/ PHP version >= 4.3 is required for HTTPS'); + $this->setError('The PHP cURL Extension is required for HTTPS or NLTM. You will need to re-build or update your PHP to include cURL or change php.ini to load the PHP cURL extension.'); + return false; + } + // Avoid warnings when PHP does not have these options + if (defined('CURLOPT_CONNECTIONTIMEOUT')) + $CURLOPT_CONNECTIONTIMEOUT = CURLOPT_CONNECTIONTIMEOUT; + else + $CURLOPT_CONNECTIONTIMEOUT = 78; + if (defined('CURLOPT_HTTPAUTH')) + $CURLOPT_HTTPAUTH = CURLOPT_HTTPAUTH; + else + $CURLOPT_HTTPAUTH = 107; + if (defined('CURLOPT_PROXYAUTH')) + $CURLOPT_PROXYAUTH = CURLOPT_PROXYAUTH; + else + $CURLOPT_PROXYAUTH = 111; + if (defined('CURLAUTH_BASIC')) + $CURLAUTH_BASIC = CURLAUTH_BASIC; + else + $CURLAUTH_BASIC = 1; + if (defined('CURLAUTH_DIGEST')) + $CURLAUTH_DIGEST = CURLAUTH_DIGEST; + else + $CURLAUTH_DIGEST = 2; + if (defined('CURLAUTH_NTLM')) + $CURLAUTH_NTLM = CURLAUTH_NTLM; + else + $CURLAUTH_NTLM = 8; + + $this->debug('connect using cURL'); + // init CURL + $this->ch = curl_init(); + // set url + $hostURL = ($this->port != '') ? "$this->scheme://$this->host:$this->port" : "$this->scheme://$this->host"; + // add path + $hostURL .= $this->path; + $this->setCurlOption(CURLOPT_URL, $hostURL); + // follow location headers (re-directs) + if (ini_get('safe_mode') || ini_get('open_basedir')) { + $this->debug('safe_mode or open_basedir set, so do not set CURLOPT_FOLLOWLOCATION'); + $this->debug('safe_mode = '); + $this->appendDebug($this->varDump(ini_get('safe_mode'))); + $this->debug('open_basedir = '); + $this->appendDebug($this->varDump(ini_get('open_basedir'))); + } else { + $this->setCurlOption(CURLOPT_FOLLOWLOCATION, 1); + } + // ask for headers in the response output + $this->setCurlOption(CURLOPT_HEADER, 1); + // ask for the response output as the return value + $this->setCurlOption(CURLOPT_RETURNTRANSFER, 1); + // encode + // We manage this ourselves through headers and encoding +// if(function_exists('gzuncompress')){ +// $this->setCurlOption(CURLOPT_ENCODING, 'deflate'); +// } + // persistent connection + if ($this->persistentConnection) { + // I believe the following comment is now bogus, having applied to + // the code when it used CURLOPT_CUSTOMREQUEST to send the request. + // The way we send data, we cannot use persistent connections, since + // there will be some "junk" at the end of our request. + //$this->setCurlOption(CURL_HTTP_VERSION_1_1, true); + $this->persistentConnection = false; + $this->setHeader('Connection', 'close'); + } + // set timeouts + if ($connection_timeout != 0) { + $this->setCurlOption($CURLOPT_CONNECTIONTIMEOUT, $connection_timeout); + } + if ($response_timeout != 0) { + $this->setCurlOption(CURLOPT_TIMEOUT, $response_timeout); + } + + if ($this->scheme == 'https') { + $this->debug('set cURL SSL verify options'); + // recent versions of cURL turn on peer/host checking by default, + // while PHP binaries are not compiled with a default location for the + // CA cert bundle, so disable peer/host checking. + //$this->setCurlOption(CURLOPT_CAINFO, 'f:\php-4.3.2-win32\extensions\curl-ca-bundle.crt'); + $this->setCurlOption(CURLOPT_SSL_VERIFYPEER, 0); + $this->setCurlOption(CURLOPT_SSL_VERIFYHOST, 0); + + // support client certificates (thanks Tobias Boes, Doug Anarino, Eryan Ariobowo) + if ($this->authtype == 'certificate') { + $this->debug('set cURL certificate options'); + if (isset($this->certRequest['cainfofile'])) { + $this->setCurlOption(CURLOPT_CAINFO, $this->certRequest['cainfofile']); + } + if (isset($this->certRequest['verifypeer'])) { + $this->setCurlOption(CURLOPT_SSL_VERIFYPEER, $this->certRequest['verifypeer']); + } else { + $this->setCurlOption(CURLOPT_SSL_VERIFYPEER, 1); + } + if (isset($this->certRequest['verifyhost'])) { + $this->setCurlOption(CURLOPT_SSL_VERIFYHOST, $this->certRequest['verifyhost']); + } else { + $this->setCurlOption(CURLOPT_SSL_VERIFYHOST, 1); + } + if (isset($this->certRequest['sslcertfile'])) { + $this->setCurlOption(CURLOPT_SSLCERT, $this->certRequest['sslcertfile']); + } + if (isset($this->certRequest['sslkeyfile'])) { + $this->setCurlOption(CURLOPT_SSLKEY, $this->certRequest['sslkeyfile']); + } + if (isset($this->certRequest['passphrase'])) { + $this->setCurlOption(CURLOPT_SSLKEYPASSWD, $this->certRequest['passphrase']); + } + if (isset($this->certRequest['certpassword'])) { + $this->setCurlOption(CURLOPT_SSLCERTPASSWD, $this->certRequest['certpassword']); + } + } + } + if ($this->authtype && ($this->authtype != 'certificate')) { + if ($this->username) { + $this->debug('set cURL username/password'); + $this->setCurlOption(CURLOPT_USERPWD, "$this->username:$this->password"); + } + if ($this->authtype == 'basic') { + $this->debug('set cURL for Basic authentication'); + $this->setCurlOption($CURLOPT_HTTPAUTH, $CURLAUTH_BASIC); + } + if ($this->authtype == 'digest') { + $this->debug('set cURL for digest authentication'); + $this->setCurlOption($CURLOPT_HTTPAUTH, $CURLAUTH_DIGEST); + } + if ($this->authtype == 'ntlm') { + $this->debug('set cURL for NTLM authentication'); + $this->setCurlOption($CURLOPT_HTTPAUTH, $CURLAUTH_NTLM); + } + } + if (is_array($this->proxy)) { + $this->debug('set cURL proxy options'); + if ($this->proxy['port'] != '') { + $this->setCurlOption(CURLOPT_PROXY, $this->proxy['host'].':'.$this->proxy['port']); + } else { + $this->setCurlOption(CURLOPT_PROXY, $this->proxy['host']); + } + if ($this->proxy['username'] || $this->proxy['password']) { + $this->debug('set cURL proxy authentication options'); + $this->setCurlOption(CURLOPT_PROXYUSERPWD, $this->proxy['username'].':'.$this->proxy['password']); + if ($this->proxy['authtype'] == 'basic') { + $this->setCurlOption($CURLOPT_PROXYAUTH, $CURLAUTH_BASIC); + } + if ($this->proxy['authtype'] == 'ntlm') { + $this->setCurlOption($CURLOPT_PROXYAUTH, $CURLAUTH_NTLM); + } + } + } + $this->debug('cURL connection set up'); + return true; + } else { + $this->setError('Unknown scheme ' . $this->scheme); + $this->debug('Unknown scheme ' . $this->scheme); + return false; + } + } + + /** + * sends the SOAP request and gets the SOAP response via HTTP[S] + * + * @param string $data message data + * @param integer $timeout set connection timeout in seconds + * @param integer $response_timeout set response timeout in seconds + * @param array $cookies cookies to send + * @return string data + * @access public + */ + function send($data, $timeout=0, $response_timeout=30, $cookies=NULL) { + + $this->debug('entered send() with data of length: '.strlen($data)); + + $this->tryagain = true; + $tries = 0; + while ($this->tryagain) { + $this->tryagain = false; + if ($tries++ < 2) { + // make connnection + if (!$this->connect($timeout, $response_timeout)){ + return false; + } + + // send request + if (!$this->sendRequest($data, $cookies)){ + return false; + } + + // get response + $respdata = $this->getResponse(); + } else { + $this->setError("Too many tries to get an OK response ($this->response_status_line)"); + } + } + $this->debug('end of send()'); + return $respdata; + } + + + /** + * sends the SOAP request and gets the SOAP response via HTTPS using CURL + * + * @param string $data message data + * @param integer $timeout set connection timeout in seconds + * @param integer $response_timeout set response timeout in seconds + * @param array $cookies cookies to send + * @return string data + * @access public + * @deprecated + */ + function sendHTTPS($data, $timeout=0, $response_timeout=30, $cookies) { + return $this->send($data, $timeout, $response_timeout, $cookies); + } + + /** + * if authenticating, set user credentials here + * + * @param string $username + * @param string $password + * @param string $authtype (basic|digest|certificate|ntlm) + * @param array $digestRequest (keys must be nonce, nc, realm, qop) + * @param array $certRequest (keys must be cainfofile (optional), sslcertfile, sslkeyfile, passphrase, certpassword (optional), verifypeer (optional), verifyhost (optional): see corresponding options in cURL docs) + * @access public + */ + function setCredentials($username, $password, $authtype = 'basic', $digestRequest = array(), $certRequest = array()) { + $this->debug("setCredentials username=$username authtype=$authtype digestRequest="); + $this->appendDebug($this->varDump($digestRequest)); + $this->debug("certRequest="); + $this->appendDebug($this->varDump($certRequest)); + // cf. RFC 2617 + if ($authtype == 'basic') { + $this->setHeader('Authorization', 'Basic '.base64_encode(str_replace(':','',$username).':'.$password)); + } elseif ($authtype == 'digest') { + if (isset($digestRequest['nonce'])) { + $digestRequest['nc'] = isset($digestRequest['nc']) ? $digestRequest['nc']++ : 1; + + // calculate the Digest hashes (calculate code based on digest implementation found at: http://www.rassoc.com/gregr/weblog/stories/2002/07/09/webServicesSecurityHttpDigestAuthenticationWithoutActiveDirectory.html) + + // A1 = unq(username-value) ":" unq(realm-value) ":" passwd + $A1 = $username. ':' . (isset($digestRequest['realm']) ? $digestRequest['realm'] : '') . ':' . $password; + + // H(A1) = MD5(A1) + $HA1 = md5($A1); + + // A2 = Method ":" digest-uri-value + $A2 = $this->request_method . ':' . $this->digest_uri; + + // H(A2) + $HA2 = md5($A2); + + // KD(secret, data) = H(concat(secret, ":", data)) + // if qop == auth: + // request-digest = <"> < KD ( H(A1), unq(nonce-value) + // ":" nc-value + // ":" unq(cnonce-value) + // ":" unq(qop-value) + // ":" H(A2) + // ) <"> + // if qop is missing, + // request-digest = <"> < KD ( H(A1), unq(nonce-value) ":" H(A2) ) > <"> + + $unhashedDigest = ''; + $nonce = isset($digestRequest['nonce']) ? $digestRequest['nonce'] : ''; + $cnonce = $nonce; + if ($digestRequest['qop'] != '') { + $unhashedDigest = $HA1 . ':' . $nonce . ':' . sprintf("%08d", $digestRequest['nc']) . ':' . $cnonce . ':' . $digestRequest['qop'] . ':' . $HA2; + } else { + $unhashedDigest = $HA1 . ':' . $nonce . ':' . $HA2; + } + + $hashedDigest = md5($unhashedDigest); + + $opaque = ''; + if (isset($digestRequest['opaque'])) { + $opaque = ', opaque="' . $digestRequest['opaque'] . '"'; + } + + $this->setHeader('Authorization', 'Digest username="' . $username . '", realm="' . $digestRequest['realm'] . '", nonce="' . $nonce . '", uri="' . $this->digest_uri . $opaque . '", cnonce="' . $cnonce . '", nc=' . sprintf("%08x", $digestRequest['nc']) . ', qop="' . $digestRequest['qop'] . '", response="' . $hashedDigest . '"'); + } + } elseif ($authtype == 'certificate') { + $this->certRequest = $certRequest; + $this->debug('Authorization header not set for certificate'); + } elseif ($authtype == 'ntlm') { + // do nothing + $this->debug('Authorization header not set for ntlm'); + } + $this->username = $username; + $this->password = $password; + $this->authtype = $authtype; + $this->digestRequest = $digestRequest; + } + + /** + * set the soapaction value + * + * @param string $soapaction + * @access public + */ + function setSOAPAction($soapaction) { + $this->setHeader('SOAPAction', '"' . $soapaction . '"'); + } + + /** + * use http encoding + * + * @param string $enc encoding style. supported values: gzip, deflate, or both + * @access public + */ + function setEncoding($enc='gzip, deflate') { + if (function_exists('gzdeflate')) { + $this->protocol_version = '1.1'; + $this->setHeader('Accept-Encoding', $enc); + if (!isset($this->outgoing_headers['Connection'])) { + $this->setHeader('Connection', 'close'); + $this->persistentConnection = false; + } + // deprecated as of PHP 5.3.0 + //set_magic_quotes_runtime(0); + $this->encoding = $enc; + } + } + + /** + * set proxy info here + * + * @param string $proxyhost use an empty string to remove proxy + * @param string $proxyport + * @param string $proxyusername + * @param string $proxypassword + * @param string $proxyauthtype (basic|ntlm) + * @access public + */ + function setProxy($proxyhost, $proxyport, $proxyusername = '', $proxypassword = '', $proxyauthtype = 'basic') { + if ($proxyhost) { + $this->proxy = array( + 'host' => $proxyhost, + 'port' => $proxyport, + 'username' => $proxyusername, + 'password' => $proxypassword, + 'authtype' => $proxyauthtype + ); + if ($proxyusername != '' && $proxypassword != '' && $proxyauthtype = 'basic') { + $this->setHeader('Proxy-Authorization', ' Basic '.base64_encode($proxyusername.':'.$proxypassword)); + } + } else { + $this->debug('remove proxy'); + $proxy = null; + unsetHeader('Proxy-Authorization'); + } + } + + + /** + * Test if the given string starts with a header that is to be skipped. + * Skippable headers result from chunked transfer and proxy requests. + * + * @param string $data The string to check. + * @returns boolean Whether a skippable header was found. + * @access private + */ + function isSkippableCurlHeader(&$data) { + $skipHeaders = array( 'HTTP/1.1 100', + 'HTTP/1.0 301', + 'HTTP/1.1 301', + 'HTTP/1.0 302', + 'HTTP/1.1 302', + 'HTTP/1.0 401', + 'HTTP/1.1 401', + 'HTTP/1.0 200 Connection established'); + foreach ($skipHeaders as $hd) { + $prefix = substr($data, 0, strlen($hd)); + if ($prefix == $hd) return true; + } + + return false; + } + + /** + * decode a string that is encoded w/ "chunked' transfer encoding + * as defined in RFC2068 19.4.6 + * + * @param string $buffer + * @param string $lb + * @returns string + * @access public + * @deprecated + */ + function decodeChunked($buffer, $lb){ + // length := 0 + $length = 0; + $new = ''; + + // read chunk-size, chunk-extension (if any) and CRLF + // get the position of the linebreak + $chunkend = strpos($buffer, $lb); + if ($chunkend == FALSE) { + $this->debug('no linebreak found in decodeChunked'); + return $new; + } + $temp = substr($buffer,0,$chunkend); + $chunk_size = hexdec( trim($temp) ); + $chunkstart = $chunkend + strlen($lb); + // while (chunk-size > 0) { + while ($chunk_size > 0) { + $this->debug("chunkstart: $chunkstart chunk_size: $chunk_size"); + $chunkend = strpos( $buffer, $lb, $chunkstart + $chunk_size); + + // Just in case we got a broken connection + if ($chunkend == FALSE) { + $chunk = substr($buffer,$chunkstart); + // append chunk-data to entity-body + $new .= $chunk; + $length += strlen($chunk); + break; + } + + // read chunk-data and CRLF + $chunk = substr($buffer,$chunkstart,$chunkend-$chunkstart); + // append chunk-data to entity-body + $new .= $chunk; + // length := length + chunk-size + $length += strlen($chunk); + // read chunk-size and CRLF + $chunkstart = $chunkend + strlen($lb); + + $chunkend = strpos($buffer, $lb, $chunkstart) + strlen($lb); + if ($chunkend == FALSE) { + break; //Just in case we got a broken connection + } + $temp = substr($buffer,$chunkstart,$chunkend-$chunkstart); + $chunk_size = hexdec( trim($temp) ); + $chunkstart = $chunkend; + } + return $new; + } + + /** + * Writes the payload, including HTTP headers, to $this->outgoing_payload. + * + * @param string $data HTTP body + * @param string $cookie_str data for HTTP Cookie header + * @return void + * @access private + */ + function buildPayload($data, $cookie_str = '') { + // Note: for cURL connections, $this->outgoing_payload is ignored, + // as is the Content-Length header, but these are still created as + // debugging guides. + + // add content-length header + if ($this->request_method != 'GET') { + $this->setHeader('Content-Length', strlen($data)); + } + + // start building outgoing payload: + if ($this->proxy) { + $uri = $this->url; + } else { + $uri = $this->uri; + } + $req = "$this->request_method $uri HTTP/$this->protocol_version"; + $this->debug("HTTP request: $req"); + $this->outgoing_payload = "$req\r\n"; + + // loop thru headers, serializing + foreach($this->outgoing_headers as $k => $v){ + $hdr = $k.': '.$v; + $this->debug("HTTP header: $hdr"); + $this->outgoing_payload .= "$hdr\r\n"; + } + + // add any cookies + if ($cookie_str != '') { + $hdr = 'Cookie: '.$cookie_str; + $this->debug("HTTP header: $hdr"); + $this->outgoing_payload .= "$hdr\r\n"; + } + + // header/body separator + $this->outgoing_payload .= "\r\n"; + + // add data + $this->outgoing_payload .= $data; + } + + /** + * sends the SOAP request via HTTP[S] + * + * @param string $data message data + * @param array $cookies cookies to send + * @return boolean true if OK, false if problem + * @access private + */ + function sendRequest($data, $cookies = NULL) { + // build cookie string + $cookie_str = $this->getCookiesForRequest($cookies, (($this->scheme == 'ssl') || ($this->scheme == 'https'))); + + // build payload + $this->buildPayload($data, $cookie_str); + + if ($this->io_method() == 'socket') { + // send payload + if(!fputs($this->fp, $this->outgoing_payload, strlen($this->outgoing_payload))) { + $this->setError('couldn\'t write message data to socket'); + $this->debug('couldn\'t write message data to socket'); + return false; + } + $this->debug('wrote data to socket, length = ' . strlen($this->outgoing_payload)); + return true; + } else if ($this->io_method() == 'curl') { + // set payload + // cURL does say this should only be the verb, and in fact it + // turns out that the URI and HTTP version are appended to this, which + // some servers refuse to work with (so we no longer use this method!) + //$this->setCurlOption(CURLOPT_CUSTOMREQUEST, $this->outgoing_payload); + $curl_headers = array(); + foreach($this->outgoing_headers as $k => $v){ + if ($k == 'Connection' || $k == 'Content-Length' || $k == 'Host' || $k == 'Authorization' || $k == 'Proxy-Authorization') { + $this->debug("Skip cURL header $k: $v"); + } else { + $curl_headers[] = "$k: $v"; + } + } + if ($cookie_str != '') { + $curl_headers[] = 'Cookie: ' . $cookie_str; + } + $this->setCurlOption(CURLOPT_HTTPHEADER, $curl_headers); + $this->debug('set cURL HTTP headers'); + if ($this->request_method == "POST") { + $this->setCurlOption(CURLOPT_POST, 1); + $this->setCurlOption(CURLOPT_POSTFIELDS, $data); + $this->debug('set cURL POST data'); + } else { + } + // insert custom user-set cURL options + foreach ($this->ch_options as $key => $val) { + $this->setCurlOption($key, $val); + } + + $this->debug('set cURL payload'); + return true; + } + } + + /** + * gets the SOAP response via HTTP[S] + * + * @return string the response (also sets member variables like incoming_payload) + * @access private + */ + function getResponse(){ + $this->incoming_payload = ''; + + if ($this->io_method() == 'socket') { + // loop until headers have been retrieved + $data = ''; + while (!isset($lb)){ + + // We might EOF during header read. + if(feof($this->fp)) { + $this->incoming_payload = $data; + $this->debug('found no headers before EOF after length ' . strlen($data)); + $this->debug("received before EOF:\n" . $data); + $this->setError('server failed to send headers'); + return false; + } + + $tmp = fgets($this->fp, 256); + $tmplen = strlen($tmp); + $this->debug("read line of $tmplen bytes: " . trim($tmp)); + + if ($tmplen == 0) { + $this->incoming_payload = $data; + $this->debug('socket read of headers timed out after length ' . strlen($data)); + $this->debug("read before timeout: " . $data); + $this->setError('socket read of headers timed out'); + return false; + } + + $data .= $tmp; + $pos = strpos($data,"\r\n\r\n"); + if($pos > 1){ + $lb = "\r\n"; + } else { + $pos = strpos($data,"\n\n"); + if($pos > 1){ + $lb = "\n"; + } + } + // remove 100 headers + if (isset($lb) && preg_match('/^HTTP\/1.1 100/',$data)) { + unset($lb); + $data = ''; + }// + } + // store header data + $this->incoming_payload .= $data; + $this->debug('found end of headers after length ' . strlen($data)); + // process headers + $header_data = trim(substr($data,0,$pos)); + $header_array = explode($lb,$header_data); + $this->incoming_headers = array(); + $this->incoming_cookies = array(); + foreach($header_array as $header_line){ + $arr = explode(':',$header_line, 2); + if(count($arr) > 1){ + $header_name = strtolower(trim($arr[0])); + $this->incoming_headers[$header_name] = trim($arr[1]); + if ($header_name == 'set-cookie') { + // TODO: allow multiple cookies from parseCookie + $cookie = $this->parseCookie(trim($arr[1])); + if ($cookie) { + $this->incoming_cookies[] = $cookie; + $this->debug('found cookie: ' . $cookie['name'] . ' = ' . $cookie['value']); + } else { + $this->debug('did not find cookie in ' . trim($arr[1])); + } + } + } else if (isset($header_name)) { + // append continuation line to previous header + $this->incoming_headers[$header_name] .= $lb . ' ' . $header_line; + } + } + + // loop until msg has been received + if (isset($this->incoming_headers['transfer-encoding']) && strtolower($this->incoming_headers['transfer-encoding']) == 'chunked') { + $content_length = 2147483647; // ignore any content-length header + $chunked = true; + $this->debug("want to read chunked content"); + } elseif (isset($this->incoming_headers['content-length'])) { + $content_length = $this->incoming_headers['content-length']; + $chunked = false; + $this->debug("want to read content of length $content_length"); + } else { + $content_length = 2147483647; + $chunked = false; + $this->debug("want to read content to EOF"); + } + $data = ''; + do { + if ($chunked) { + $tmp = fgets($this->fp, 256); + $tmplen = strlen($tmp); + $this->debug("read chunk line of $tmplen bytes"); + if ($tmplen == 0) { + $this->incoming_payload = $data; + $this->debug('socket read of chunk length timed out after length ' . strlen($data)); + $this->debug("read before timeout:\n" . $data); + $this->setError('socket read of chunk length timed out'); + return false; + } + $content_length = hexdec(trim($tmp)); + $this->debug("chunk length $content_length"); + } + $strlen = 0; + while (($strlen < $content_length) && (!feof($this->fp))) { + $readlen = min(8192, $content_length - $strlen); + $tmp = fread($this->fp, $readlen); + $tmplen = strlen($tmp); + $this->debug("read buffer of $tmplen bytes"); + if (($tmplen == 0) && (!feof($this->fp))) { + $this->incoming_payload = $data; + $this->debug('socket read of body timed out after length ' . strlen($data)); + $this->debug("read before timeout:\n" . $data); + $this->setError('socket read of body timed out'); + return false; + } + $strlen += $tmplen; + $data .= $tmp; + } + if ($chunked && ($content_length > 0)) { + $tmp = fgets($this->fp, 256); + $tmplen = strlen($tmp); + $this->debug("read chunk terminator of $tmplen bytes"); + if ($tmplen == 0) { + $this->incoming_payload = $data; + $this->debug('socket read of chunk terminator timed out after length ' . strlen($data)); + $this->debug("read before timeout:\n" . $data); + $this->setError('socket read of chunk terminator timed out'); + return false; + } + } + } while ($chunked && ($content_length > 0) && (!feof($this->fp))); + if (feof($this->fp)) { + $this->debug('read to EOF'); + } + $this->debug('read body of length ' . strlen($data)); + $this->incoming_payload .= $data; + $this->debug('received a total of '.strlen($this->incoming_payload).' bytes of data from server'); + + // close filepointer + if( + (isset($this->incoming_headers['connection']) && strtolower($this->incoming_headers['connection']) == 'close') || + (! $this->persistentConnection) || feof($this->fp)){ + fclose($this->fp); + $this->fp = false; + $this->debug('closed socket'); + } + + // connection was closed unexpectedly + if($this->incoming_payload == ''){ + $this->setError('no response from server'); + return false; + } + + // decode transfer-encoding +// if(isset($this->incoming_headers['transfer-encoding']) && strtolower($this->incoming_headers['transfer-encoding']) == 'chunked'){ +// if(!$data = $this->decodeChunked($data, $lb)){ +// $this->setError('Decoding of chunked data failed'); +// return false; +// } + //print "
\nde-chunked:\n---------------\n$data\n\n---------------\n
"; + // set decoded payload +// $this->incoming_payload = $header_data.$lb.$lb.$data; +// } + + } else if ($this->io_method() == 'curl') { + // send and receive + $this->debug('send and receive with cURL'); + $this->incoming_payload = curl_exec($this->ch); + $data = $this->incoming_payload; + + $cErr = curl_error($this->ch); + if ($cErr != '') { + $err = 'cURL ERROR: '.curl_errno($this->ch).': '.$cErr.'
'; + // TODO: there is a PHP bug that can cause this to SEGV for CURLINFO_CONTENT_TYPE + foreach(curl_getinfo($this->ch) as $k => $v){ + $err .= "$k: $v
"; + } + $this->debug($err); + $this->setError($err); + curl_close($this->ch); + return false; + } else { + //echo '
';
+			//var_dump(curl_getinfo($this->ch));
+			//echo '
'; + } + // close curl + $this->debug('No cURL error, closing cURL'); + curl_close($this->ch); + + // try removing skippable headers + $savedata = $data; + while ($this->isSkippableCurlHeader($data)) { + $this->debug("Found HTTP header to skip"); + if ($pos = strpos($data,"\r\n\r\n")) { + $data = ltrim(substr($data,$pos)); + } elseif($pos = strpos($data,"\n\n") ) { + $data = ltrim(substr($data,$pos)); + } + } + + if ($data == '') { + // have nothing left; just remove 100 header(s) + $data = $savedata; + while (preg_match('/^HTTP\/1.1 100/',$data)) { + if ($pos = strpos($data,"\r\n\r\n")) { + $data = ltrim(substr($data,$pos)); + } elseif($pos = strpos($data,"\n\n") ) { + $data = ltrim(substr($data,$pos)); + } + } + } + + // separate content from HTTP headers + if ($pos = strpos($data,"\r\n\r\n")) { + $lb = "\r\n"; + } elseif( $pos = strpos($data,"\n\n")) { + $lb = "\n"; + } else { + $this->debug('no proper separation of headers and document'); + $this->setError('no proper separation of headers and document'); + return false; + } + $header_data = trim(substr($data,0,$pos)); + $header_array = explode($lb,$header_data); + $data = ltrim(substr($data,$pos)); + $this->debug('found proper separation of headers and document'); + $this->debug('cleaned data, stringlen: '.strlen($data)); + // clean headers + foreach ($header_array as $header_line) { + $arr = explode(':',$header_line,2); + if(count($arr) > 1){ + $header_name = strtolower(trim($arr[0])); + $this->incoming_headers[$header_name] = trim($arr[1]); + if ($header_name == 'set-cookie') { + // TODO: allow multiple cookies from parseCookie + $cookie = $this->parseCookie(trim($arr[1])); + if ($cookie) { + $this->incoming_cookies[] = $cookie; + $this->debug('found cookie: ' . $cookie['name'] . ' = ' . $cookie['value']); + } else { + $this->debug('did not find cookie in ' . trim($arr[1])); + } + } + } else if (isset($header_name)) { + // append continuation line to previous header + $this->incoming_headers[$header_name] .= $lb . ' ' . $header_line; + } + } + } + + $this->response_status_line = $header_array[0]; + $arr = explode(' ', $this->response_status_line, 3); + $http_version = $arr[0]; + $http_status = intval($arr[1]); + $http_reason = count($arr) > 2 ? $arr[2] : ''; + + // see if we need to resend the request with http digest authentication + if (isset($this->incoming_headers['location']) && ($http_status == 301 || $http_status == 302)) { + $this->debug("Got $http_status $http_reason with Location: " . $this->incoming_headers['location']); + $this->setURL($this->incoming_headers['location']); + $this->tryagain = true; + return false; + } + + // see if we need to resend the request with http digest authentication + if (isset($this->incoming_headers['www-authenticate']) && $http_status == 401) { + $this->debug("Got 401 $http_reason with WWW-Authenticate: " . $this->incoming_headers['www-authenticate']); + if (strstr($this->incoming_headers['www-authenticate'], "Digest ")) { + $this->debug('Server wants digest authentication'); + // remove "Digest " from our elements + $digestString = str_replace('Digest ', '', $this->incoming_headers['www-authenticate']); + + // parse elements into array + $digestElements = explode(',', $digestString); + foreach ($digestElements as $val) { + $tempElement = explode('=', trim($val), 2); + $digestRequest[$tempElement[0]] = str_replace("\"", '', $tempElement[1]); + } + + // should have (at least) qop, realm, nonce + if (isset($digestRequest['nonce'])) { + $this->setCredentials($this->username, $this->password, 'digest', $digestRequest); + $this->tryagain = true; + return false; + } + } + $this->debug('HTTP authentication failed'); + $this->setError('HTTP authentication failed'); + return false; + } + + if ( + ($http_status >= 300 && $http_status <= 307) || + ($http_status >= 400 && $http_status <= 417) || + ($http_status >= 501 && $http_status <= 505) + ) { + $this->setError("Unsupported HTTP response status $http_status $http_reason (soapclient->response has contents of the response)"); + return false; + } + + // decode content-encoding + if(isset($this->incoming_headers['content-encoding']) && $this->incoming_headers['content-encoding'] != ''){ + if(strtolower($this->incoming_headers['content-encoding']) == 'deflate' || strtolower($this->incoming_headers['content-encoding']) == 'gzip'){ + // if decoding works, use it. else assume data wasn't gzencoded + if(function_exists('gzinflate')){ + //$timer->setMarker('starting decoding of gzip/deflated content'); + // IIS 5 requires gzinflate instead of gzuncompress (similar to IE 5 and gzdeflate v. gzcompress) + // this means there are no Zlib headers, although there should be + $this->debug('The gzinflate function exists'); + $datalen = strlen($data); + if ($this->incoming_headers['content-encoding'] == 'deflate') { + if ($degzdata = @gzinflate($data)) { + $data = $degzdata; + $this->debug('The payload has been inflated to ' . strlen($data) . ' bytes'); + if (strlen($data) < $datalen) { + // test for the case that the payload has been compressed twice + $this->debug('The inflated payload is smaller than the gzipped one; try again'); + if ($degzdata = @gzinflate($data)) { + $data = $degzdata; + $this->debug('The payload has been inflated again to ' . strlen($data) . ' bytes'); + } + } + } else { + $this->debug('Error using gzinflate to inflate the payload'); + $this->setError('Error using gzinflate to inflate the payload'); + } + } elseif ($this->incoming_headers['content-encoding'] == 'gzip') { + if ($degzdata = @gzinflate(substr($data, 10))) { // do our best + $data = $degzdata; + $this->debug('The payload has been un-gzipped to ' . strlen($data) . ' bytes'); + if (strlen($data) < $datalen) { + // test for the case that the payload has been compressed twice + $this->debug('The un-gzipped payload is smaller than the gzipped one; try again'); + if ($degzdata = @gzinflate(substr($data, 10))) { + $data = $degzdata; + $this->debug('The payload has been un-gzipped again to ' . strlen($data) . ' bytes'); + } + } + } else { + $this->debug('Error using gzinflate to un-gzip the payload'); + $this->setError('Error using gzinflate to un-gzip the payload'); + } + } + //$timer->setMarker('finished decoding of gzip/deflated content'); + //print "\nde-inflated:\n---------------\n$data\n-------------\n"; + // set decoded payload + $this->incoming_payload = $header_data.$lb.$lb.$data; + } else { + $this->debug('The server sent compressed data. Your php install must have the Zlib extension compiled in to support this.'); + $this->setError('The server sent compressed data. Your php install must have the Zlib extension compiled in to support this.'); + } + } else { + $this->debug('Unsupported Content-Encoding ' . $this->incoming_headers['content-encoding']); + $this->setError('Unsupported Content-Encoding ' . $this->incoming_headers['content-encoding']); + } + } else { + $this->debug('No Content-Encoding header'); + } + + if(strlen($data) == 0){ + $this->debug('no data after headers!'); + $this->setError('no data present after HTTP headers'); + return false; + } + + return $data; + } + + /** + * sets the content-type for the SOAP message to be sent + * + * @param string $type the content type, MIME style + * @param mixed $charset character set used for encoding (or false) + * @access public + */ + function setContentType($type, $charset = false) { + $this->setHeader('Content-Type', $type . ($charset ? '; charset=' . $charset : '')); + } + + /** + * specifies that an HTTP persistent connection should be used + * + * @return boolean whether the request was honored by this method. + * @access public + */ + function usePersistentConnection(){ + if (isset($this->outgoing_headers['Accept-Encoding'])) { + return false; + } + $this->protocol_version = '1.1'; + $this->persistentConnection = true; + $this->setHeader('Connection', 'Keep-Alive'); + return true; + } + + /** + * parse an incoming Cookie into it's parts + * + * @param string $cookie_str content of cookie + * @return array with data of that cookie + * @access private + */ + /* + * TODO: allow a Set-Cookie string to be parsed into multiple cookies + */ + function parseCookie($cookie_str) { + $cookie_str = str_replace('; ', ';', $cookie_str) . ';'; + $data = preg_split('/;/', $cookie_str); + $value_str = $data[0]; + + $cookie_param = 'domain='; + $start = strpos($cookie_str, $cookie_param); + if ($start > 0) { + $domain = substr($cookie_str, $start + strlen($cookie_param)); + $domain = substr($domain, 0, strpos($domain, ';')); + } else { + $domain = ''; + } + + $cookie_param = 'expires='; + $start = strpos($cookie_str, $cookie_param); + if ($start > 0) { + $expires = substr($cookie_str, $start + strlen($cookie_param)); + $expires = substr($expires, 0, strpos($expires, ';')); + } else { + $expires = ''; + } + + $cookie_param = 'path='; + $start = strpos($cookie_str, $cookie_param); + if ( $start > 0 ) { + $path = substr($cookie_str, $start + strlen($cookie_param)); + $path = substr($path, 0, strpos($path, ';')); + } else { + $path = '/'; + } + + $cookie_param = ';secure;'; + if (strpos($cookie_str, $cookie_param) !== FALSE) { + $secure = true; + } else { + $secure = false; + } + + $sep_pos = strpos($value_str, '='); + + if ($sep_pos) { + $name = substr($value_str, 0, $sep_pos); + $value = substr($value_str, $sep_pos + 1); + $cookie= array( 'name' => $name, + 'value' => $value, + 'domain' => $domain, + 'path' => $path, + 'expires' => $expires, + 'secure' => $secure + ); + return $cookie; + } + return false; + } + + /** + * sort out cookies for the current request + * + * @param array $cookies array with all cookies + * @param boolean $secure is the send-content secure or not? + * @return string for Cookie-HTTP-Header + * @access private + */ + function getCookiesForRequest($cookies, $secure=false) { + $cookie_str = ''; + if ((! is_null($cookies)) && (is_array($cookies))) { + foreach ($cookies as $cookie) { + if (! is_array($cookie)) { + continue; + } + $this->debug("check cookie for validity: ".$cookie['name'].'='.$cookie['value']); + if ((isset($cookie['expires'])) && (! empty($cookie['expires']))) { + if (strtotime($cookie['expires']) <= time()) { + $this->debug('cookie has expired'); + continue; + } + } + if ((isset($cookie['domain'])) && (! empty($cookie['domain']))) { + $domain = preg_quote($cookie['domain']); + if (! preg_match("'.*$domain$'i", $this->host)) { + $this->debug('cookie has different domain'); + continue; + } + } + if ((isset($cookie['path'])) && (! empty($cookie['path']))) { + $path = preg_quote($cookie['path']); + if (! preg_match("'^$path.*'i", $this->path)) { + $this->debug('cookie is for a different path'); + continue; + } + } + if ((! $secure) && (isset($cookie['secure'])) && ($cookie['secure'])) { + $this->debug('cookie is secure, transport is not'); + continue; + } + $cookie_str .= $cookie['name'] . '=' . $cookie['value'] . '; '; + $this->debug('add cookie to Cookie-String: ' . $cookie['name'] . '=' . $cookie['value']); + } + } + return $cookie_str; + } +} + + +?> \ No newline at end of file diff --git a/classes/lib/class.soap_val.php b/classes/lib/class.soap_val.php new file mode 100644 index 0000000..4438f5c --- /dev/null +++ b/classes/lib/class.soap_val.php @@ -0,0 +1,107 @@ + +* @version $Id: class.soap_val.php,v 1.11 2007/04/06 13:56:32 snichol Exp $ +* @access public +*/ +class soapval extends nusoap_base { + /** + * The XML element name + * + * @var string + * @access private + */ + var $name; + /** + * The XML type name (string or false) + * + * @var mixed + * @access private + */ + var $type; + /** + * The PHP value + * + * @var mixed + * @access private + */ + var $value; + /** + * The XML element namespace (string or false) + * + * @var mixed + * @access private + */ + var $element_ns; + /** + * The XML type namespace (string or false) + * + * @var mixed + * @access private + */ + var $type_ns; + /** + * The XML element attributes (array or false) + * + * @var mixed + * @access private + */ + var $attributes; + + /** + * constructor + * + * @param string $name optional name + * @param mixed $type optional type name + * @param mixed $value optional value + * @param mixed $element_ns optional namespace of value + * @param mixed $type_ns optional namespace of type + * @param mixed $attributes associative array of attributes to add to element serialization + * @access public + */ + function soapval($name='soapval',$type=false,$value=-1,$element_ns=false,$type_ns=false,$attributes=false) { + parent::nusoap_base(); + $this->name = $name; + $this->type = $type; + $this->value = $value; + $this->element_ns = $element_ns; + $this->type_ns = $type_ns; + $this->attributes = $attributes; + } + + /** + * return serialized value + * + * @param string $use The WSDL use value (encoded|literal) + * @return string XML data + * @access public + */ + function serialize($use='encoded') { + return $this->serialize_val($this->value, $this->name, $this->type, $this->element_ns, $this->type_ns, $this->attributes, $use, true); + } + + /** + * decodes a soapval object into a PHP native type + * + * @return mixed + * @access public + */ + function decode(){ + return $this->value; + } +} + + + + +?> \ No newline at end of file diff --git a/classes/lib/class.soapclient.php b/classes/lib/class.soapclient.php new file mode 100644 index 0000000..6944c2a --- /dev/null +++ b/classes/lib/class.soapclient.php @@ -0,0 +1,991 @@ +call( string methodname [ ,array parameters] ); +* +* // bye bye client +* unset($soapclient); +* +* @author Dietrich Ayala +* @author Scott Nichol +* @version $Id: class.soapclient.php,v 1.69 2010/04/26 20:15:08 snichol Exp $ +* @access public +*/ +class nusoap_client extends nusoap_base { + + var $username = ''; // Username for HTTP authentication + var $password = ''; // Password for HTTP authentication + var $authtype = ''; // Type of HTTP authentication + var $certRequest = array(); // Certificate for HTTP SSL authentication + var $requestHeaders = false; // SOAP headers in request (text) + var $responseHeaders = ''; // SOAP headers from response (incomplete namespace resolution) (text) + var $responseHeader = NULL; // SOAP Header from response (parsed) + var $document = ''; // SOAP body response portion (incomplete namespace resolution) (text) + var $endpoint; + var $forceEndpoint = ''; // overrides WSDL endpoint + var $proxyhost = ''; + var $proxyport = ''; + var $proxyusername = ''; + var $proxypassword = ''; + var $portName = ''; // port name to use in WSDL + var $xml_encoding = ''; // character set encoding of incoming (response) messages + var $http_encoding = false; + var $timeout = 0; // HTTP connection timeout + var $response_timeout = 30; // HTTP response timeout + var $endpointType = ''; // soap|wsdl, empty for WSDL initialization error + var $persistentConnection = false; + var $defaultRpcParams = false; // This is no longer used + var $request = ''; // HTTP request + var $response = ''; // HTTP response + var $responseData = ''; // SOAP payload of response + var $cookies = array(); // Cookies from response or for request + var $decode_utf8 = true; // toggles whether the parser decodes element content w/ utf8_decode() + var $operations = array(); // WSDL operations, empty for WSDL initialization error + var $curl_options = array(); // User-specified cURL options + var $bindingType = ''; // WSDL operation binding type + var $use_curl = false; // whether to always try to use cURL + + /* + * fault related variables + */ + /** + * @var fault + * @access public + */ + var $fault; + /** + * @var faultcode + * @access public + */ + var $faultcode; + /** + * @var faultstring + * @access public + */ + var $faultstring; + /** + * @var faultdetail + * @access public + */ + var $faultdetail; + + /** + * constructor + * + * @param mixed $endpoint SOAP server or WSDL URL (string), or wsdl instance (object) + * @param mixed $wsdl optional, set to 'wsdl' or true if using WSDL + * @param string $proxyhost optional + * @param string $proxyport optional + * @param string $proxyusername optional + * @param string $proxypassword optional + * @param integer $timeout set the connection timeout + * @param integer $response_timeout set the response timeout + * @param string $portName optional portName in WSDL document + * @access public + */ + function nusoap_client($endpoint,$wsdl = false,$proxyhost = false,$proxyport = false,$proxyusername = false, $proxypassword = false, $timeout = 0, $response_timeout = 30, $portName = ''){ + parent::nusoap_base(); + $this->endpoint = $endpoint; + $this->proxyhost = $proxyhost; + $this->proxyport = $proxyport; + $this->proxyusername = $proxyusername; + $this->proxypassword = $proxypassword; + $this->timeout = $timeout; + $this->response_timeout = $response_timeout; + $this->portName = $portName; + + $this->debug("ctor wsdl=$wsdl timeout=$timeout response_timeout=$response_timeout"); + $this->appendDebug('endpoint=' . $this->varDump($endpoint)); + + // make values + if($wsdl){ + if (is_object($endpoint) && (get_class($endpoint) == 'wsdl')) { + $this->wsdl = $endpoint; + $this->endpoint = $this->wsdl->wsdl; + $this->wsdlFile = $this->endpoint; + $this->debug('existing wsdl instance created from ' . $this->endpoint); + $this->checkWSDL(); + } else { + $this->wsdlFile = $this->endpoint; + $this->wsdl = null; + $this->debug('will use lazy evaluation of wsdl from ' . $this->endpoint); + } + $this->endpointType = 'wsdl'; + } else { + $this->debug("instantiate SOAP with endpoint at $endpoint"); + $this->endpointType = 'soap'; + } + } + + /** + * calls method, returns PHP native type + * + * @param string $operation SOAP server URL or path + * @param mixed $params An array, associative or simple, of the parameters + * for the method call, or a string that is the XML + * for the call. For rpc style, this call will + * wrap the XML in a tag named after the method, as + * well as the SOAP Envelope and Body. For document + * style, this will only wrap with the Envelope and Body. + * IMPORTANT: when using an array with document style, + * in which case there + * is really one parameter, the root of the fragment + * used in the call, which encloses what programmers + * normally think of parameters. A parameter array + * *must* include the wrapper. + * @param string $namespace optional method namespace (WSDL can override) + * @param string $soapAction optional SOAPAction value (WSDL can override) + * @param mixed $headers optional string of XML with SOAP header content, or array of soapval objects for SOAP headers, or associative array + * @param boolean $rpcParams optional (no longer used) + * @param string $style optional (rpc|document) the style to use when serializing parameters (WSDL can override) + * @param string $use optional (encoded|literal) the use when serializing parameters (WSDL can override) + * @return mixed response from SOAP call, normally an associative array mirroring the structure of the XML response, false for certain fatal errors + * @access public + */ + function call($operation,$params=array(),$namespace='http://tempuri.org',$soapAction='',$headers=false,$rpcParams=null,$style='rpc',$use='encoded'){ + $this->operation = $operation; + $this->fault = false; + $this->setError(''); + $this->request = ''; + $this->response = ''; + $this->responseData = ''; + $this->faultstring = ''; + $this->faultcode = ''; + $this->opData = array(); + + $this->debug("call: operation=$operation, namespace=$namespace, soapAction=$soapAction, rpcParams=$rpcParams, style=$style, use=$use, endpointType=$this->endpointType"); + $this->appendDebug('params=' . $this->varDump($params)); + $this->appendDebug('headers=' . $this->varDump($headers)); + if ($headers) { + $this->requestHeaders = $headers; + } + if ($this->endpointType == 'wsdl' && is_null($this->wsdl)) { + $this->loadWSDL(); + if ($this->getError()) + return false; + } + // serialize parameters + if($this->endpointType == 'wsdl' && $opData = $this->getOperationData($operation)){ + // use WSDL for operation + $this->opData = $opData; + $this->debug("found operation"); + $this->appendDebug('opData=' . $this->varDump($opData)); + if (isset($opData['soapAction'])) { + $soapAction = $opData['soapAction']; + } + if (! $this->forceEndpoint) { + $this->endpoint = $opData['endpoint']; + } else { + $this->endpoint = $this->forceEndpoint; + } + $namespace = isset($opData['input']['namespace']) ? $opData['input']['namespace'] : $namespace; + $style = $opData['style']; + $use = $opData['input']['use']; + // add ns to ns array + if($namespace != '' && !isset($this->wsdl->namespaces[$namespace])){ + $nsPrefix = 'ns' . rand(1000, 9999); + $this->wsdl->namespaces[$nsPrefix] = $namespace; + } + $nsPrefix = $this->wsdl->getPrefixFromNamespace($namespace); + // serialize payload + if (is_string($params)) { + $this->debug("serializing param string for WSDL operation $operation"); + $payload = $params; + } elseif (is_array($params)) { + $this->debug("serializing param array for WSDL operation $operation"); + $payload = $this->wsdl->serializeRPCParameters($operation,'input',$params,$this->bindingType); + } else { + $this->debug('params must be array or string'); + $this->setError('params must be array or string'); + return false; + } + $usedNamespaces = $this->wsdl->usedNamespaces; + if (isset($opData['input']['encodingStyle'])) { + $encodingStyle = $opData['input']['encodingStyle']; + } else { + $encodingStyle = ''; + } + $this->appendDebug($this->wsdl->getDebug()); + $this->wsdl->clearDebug(); + if ($errstr = $this->wsdl->getError()) { + $this->debug('got wsdl error: '.$errstr); + $this->setError('wsdl error: '.$errstr); + return false; + } + } elseif($this->endpointType == 'wsdl') { + // operation not in WSDL + $this->appendDebug($this->wsdl->getDebug()); + $this->wsdl->clearDebug(); + $this->setError('operation '.$operation.' not present in WSDL.'); + $this->debug("operation '$operation' not present in WSDL."); + return false; + } else { + // no WSDL + //$this->namespaces['ns1'] = $namespace; + $nsPrefix = 'ns' . rand(1000, 9999); + // serialize + $payload = ''; + if (is_string($params)) { + $this->debug("serializing param string for operation $operation"); + $payload = $params; + } elseif (is_array($params)) { + $this->debug("serializing param array for operation $operation"); + foreach($params as $k => $v){ + $payload .= $this->serialize_val($v,$k,false,false,false,false,$use); + } + } else { + $this->debug('params must be array or string'); + $this->setError('params must be array or string'); + return false; + } + $usedNamespaces = array(); + if ($use == 'encoded') { + $encodingStyle = 'http://schemas.xmlsoap.org/soap/encoding/'; + } else { + $encodingStyle = ''; + } + } + // wrap RPC calls with method element + if ($style == 'rpc') { + if ($use == 'literal') { + $this->debug("wrapping RPC request with literal method element"); + if ($namespace) { + // http://www.ws-i.org/Profiles/BasicProfile-1.1-2004-08-24.html R2735 says rpc/literal accessor elements should not be in a namespace + $payload = "<$nsPrefix:$operation xmlns:$nsPrefix=\"$namespace\">" . + $payload . + ""; + } else { + $payload = "<$operation>" . $payload . ""; + } + } else { + $this->debug("wrapping RPC request with encoded method element"); + if ($namespace) { + $payload = "<$nsPrefix:$operation xmlns:$nsPrefix=\"$namespace\">" . + $payload . + ""; + } else { + $payload = "<$operation>" . + $payload . + ""; + } + } + } + // serialize envelope + $soapmsg = $this->serializeEnvelope($payload,$this->requestHeaders,$usedNamespaces,$style,$use,$encodingStyle); + $this->debug("endpoint=$this->endpoint, soapAction=$soapAction, namespace=$namespace, style=$style, use=$use, encodingStyle=$encodingStyle"); + $this->debug('SOAP message length=' . strlen($soapmsg) . ' contents (max 1000 bytes)=' . substr($soapmsg, 0, 1000)); + // send + $return = $this->send($this->getHTTPBody($soapmsg),$soapAction,$this->timeout,$this->response_timeout); + if($errstr = $this->getError()){ + $this->debug('Error: '.$errstr); + return false; + } else { + $this->return = $return; + $this->debug('sent message successfully and got a(n) '.gettype($return)); + $this->appendDebug('return=' . $this->varDump($return)); + + // fault? + if(is_array($return) && isset($return['faultcode'])){ + $this->debug('got fault'); + $this->setError($return['faultcode'].': '.$return['faultstring']); + $this->fault = true; + foreach($return as $k => $v){ + $this->$k = $v; + $this->debug("$k = $v
"); + } + return $return; + } elseif ($style == 'document') { + // NOTE: if the response is defined to have multiple parts (i.e. unwrapped), + // we are only going to return the first part here...sorry about that + return $return; + } else { + // array of return values + if(is_array($return)){ + // multiple 'out' parameters, which we return wrapped up + // in the array + if(sizeof($return) > 1){ + return $return; + } + // single 'out' parameter (normally the return value) + $return = array_shift($return); + $this->debug('return shifted value: '); + $this->appendDebug($this->varDump($return)); + return $return; + // nothing returned (ie, echoVoid) + } else { + return ""; + } + } + } + } + + /** + * check WSDL passed as an instance or pulled from an endpoint + * + * @access private + */ + function checkWSDL() { + $this->appendDebug($this->wsdl->getDebug()); + $this->wsdl->clearDebug(); + $this->debug('checkWSDL'); + // catch errors + if ($errstr = $this->wsdl->getError()) { + $this->appendDebug($this->wsdl->getDebug()); + $this->wsdl->clearDebug(); + $this->debug('got wsdl error: '.$errstr); + $this->setError('wsdl error: '.$errstr); + } elseif ($this->operations = $this->wsdl->getOperations($this->portName, 'soap')) { + $this->appendDebug($this->wsdl->getDebug()); + $this->wsdl->clearDebug(); + $this->bindingType = 'soap'; + $this->debug('got '.count($this->operations).' operations from wsdl '.$this->wsdlFile.' for binding type '.$this->bindingType); + } elseif ($this->operations = $this->wsdl->getOperations($this->portName, 'soap12')) { + $this->appendDebug($this->wsdl->getDebug()); + $this->wsdl->clearDebug(); + $this->bindingType = 'soap12'; + $this->debug('got '.count($this->operations).' operations from wsdl '.$this->wsdlFile.' for binding type '.$this->bindingType); + $this->debug('**************** WARNING: SOAP 1.2 BINDING *****************'); + } else { + $this->appendDebug($this->wsdl->getDebug()); + $this->wsdl->clearDebug(); + $this->debug('getOperations returned false'); + $this->setError('no operations defined in the WSDL document!'); + } + } + + /** + * instantiate wsdl object and parse wsdl file + * + * @access public + */ + function loadWSDL() { + $this->debug('instantiating wsdl class with doc: '.$this->wsdlFile); + $this->wsdl = new wsdl('',$this->proxyhost,$this->proxyport,$this->proxyusername,$this->proxypassword,$this->timeout,$this->response_timeout,$this->curl_options,$this->use_curl); + $this->wsdl->setCredentials($this->username, $this->password, $this->authtype, $this->certRequest); + $this->wsdl->fetchWSDL($this->wsdlFile); + $this->checkWSDL(); + } + + /** + * get available data pertaining to an operation + * + * @param string $operation operation name + * @return array array of data pertaining to the operation + * @access public + */ + function getOperationData($operation){ + if ($this->endpointType == 'wsdl' && is_null($this->wsdl)) { + $this->loadWSDL(); + if ($this->getError()) + return false; + } + if(isset($this->operations[$operation])){ + return $this->operations[$operation]; + } + $this->debug("No data for operation: $operation"); + } + + /** + * send the SOAP message + * + * Note: if the operation has multiple return values + * the return value of this method will be an array + * of those values. + * + * @param string $msg a SOAPx4 soapmsg object + * @param string $soapaction SOAPAction value + * @param integer $timeout set connection timeout in seconds + * @param integer $response_timeout set response timeout in seconds + * @return mixed native PHP types. + * @access private + */ + function send($msg, $soapaction = '', $timeout=0, $response_timeout=30) { + $this->checkCookies(); + // detect transport + switch(true){ + // http(s) + case preg_match('/^http/',$this->endpoint): + $this->debug('transporting via HTTP'); + if($this->persistentConnection == true && is_object($this->persistentConnection)){ + $http =& $this->persistentConnection; + } else { + $http = new soap_transport_http($this->endpoint, $this->curl_options, $this->use_curl); + if ($this->persistentConnection) { + $http->usePersistentConnection(); + } + } + $http->setContentType($this->getHTTPContentType(), $this->getHTTPContentTypeCharset()); + $http->setSOAPAction($soapaction); + if($this->proxyhost && $this->proxyport){ + $http->setProxy($this->proxyhost,$this->proxyport,$this->proxyusername,$this->proxypassword); + } + if($this->authtype != '') { + $http->setCredentials($this->username, $this->password, $this->authtype, array(), $this->certRequest); + } + if($this->http_encoding != ''){ + $http->setEncoding($this->http_encoding); + } + $this->debug('sending message, length='.strlen($msg)); + if(preg_match('/^http:/',$this->endpoint)){ + //if(strpos($this->endpoint,'http:')){ + $this->responseData = $http->send($msg,$timeout,$response_timeout,$this->cookies); + } elseif(preg_match('/^https/',$this->endpoint)){ + //} elseif(strpos($this->endpoint,'https:')){ + //if(phpversion() == '4.3.0-dev'){ + //$response = $http->send($msg,$timeout,$response_timeout); + //$this->request = $http->outgoing_payload; + //$this->response = $http->incoming_payload; + //} else + $this->responseData = $http->sendHTTPS($msg,$timeout,$response_timeout,$this->cookies); + } else { + $this->setError('no http/s in endpoint url'); + } + $this->request = $http->outgoing_payload; + $this->response = $http->incoming_payload; + $this->appendDebug($http->getDebug()); + $this->UpdateCookies($http->incoming_cookies); + + // save transport object if using persistent connections + if ($this->persistentConnection) { + $http->clearDebug(); + if (!is_object($this->persistentConnection)) { + $this->persistentConnection = $http; + } + } + + if($err = $http->getError()){ + $this->setError('HTTP Error: '.$err); + return false; + } elseif($this->getError()){ + return false; + } else { + $this->debug('got response, length='. strlen($this->responseData).' type='.$http->incoming_headers['content-type']); + return $this->parseResponse($http->incoming_headers, $this->responseData); + } + break; + default: + $this->setError('no transport found, or selected transport is not yet supported!'); + return false; + break; + } + } + + /** + * processes SOAP message returned from server + * + * @param array $headers The HTTP headers + * @param string $data unprocessed response data from server + * @return mixed value of the message, decoded into a PHP type + * @access private + */ + function parseResponse($headers, $data) { + $this->debug('Entering parseResponse() for data of length ' . strlen($data) . ' headers:'); + $this->appendDebug($this->varDump($headers)); + if (!isset($headers['content-type'])) { + $this->setError('Response not of type text/xml (no content-type header)'); + return false; + } + if (!strstr($headers['content-type'], 'text/xml')) { + $this->setError('Response not of type text/xml: ' . $headers['content-type']); + return false; + } + if (strpos($headers['content-type'], '=')) { + $enc = str_replace('"', '', substr(strstr($headers["content-type"], '='), 1)); + $this->debug('Got response encoding: ' . $enc); + if(preg_match('/^(ISO-8859-1|US-ASCII|UTF-8)$/i',$enc)){ + $this->xml_encoding = strtoupper($enc); + } else { + $this->xml_encoding = 'US-ASCII'; + } + } else { + // should be US-ASCII for HTTP 1.0 or ISO-8859-1 for HTTP 1.1 + $this->xml_encoding = 'ISO-8859-1'; + } + $this->debug('Use encoding: ' . $this->xml_encoding . ' when creating nusoap_parser'); + $parser = new nusoap_parser($data,$this->xml_encoding,$this->operation,$this->decode_utf8); + // add parser debug data to our debug + $this->appendDebug($parser->getDebug()); + // if parse errors + if($errstr = $parser->getError()){ + $this->setError( $errstr); + // destroy the parser object + unset($parser); + return false; + } else { + // get SOAP headers + $this->responseHeaders = $parser->getHeaders(); + // get SOAP headers + $this->responseHeader = $parser->get_soapheader(); + // get decoded message + $return = $parser->get_soapbody(); + // add document for doclit support + $this->document = $parser->document; + // destroy the parser object + unset($parser); + // return decode message + return $return; + } + } + + /** + * sets user-specified cURL options + * + * @param mixed $option The cURL option (always integer?) + * @param mixed $value The cURL option value + * @access public + */ + function setCurlOption($option, $value) { + $this->debug("setCurlOption option=$option, value="); + $this->appendDebug($this->varDump($value)); + $this->curl_options[$option] = $value; + } + + /** + * sets the SOAP endpoint, which can override WSDL + * + * @param string $endpoint The endpoint URL to use, or empty string or false to prevent override + * @access public + */ + function setEndpoint($endpoint) { + $this->debug("setEndpoint(\"$endpoint\")"); + $this->forceEndpoint = $endpoint; + } + + /** + * set the SOAP headers + * + * @param mixed $headers String of XML with SOAP header content, or array of soapval objects for SOAP headers + * @access public + */ + function setHeaders($headers){ + $this->debug("setHeaders headers="); + $this->appendDebug($this->varDump($headers)); + $this->requestHeaders = $headers; + } + + /** + * get the SOAP response headers (namespace resolution incomplete) + * + * @return string + * @access public + */ + function getHeaders(){ + return $this->responseHeaders; + } + + /** + * get the SOAP response Header (parsed) + * + * @return mixed + * @access public + */ + function getHeader(){ + return $this->responseHeader; + } + + /** + * set proxy info here + * + * @param string $proxyhost + * @param string $proxyport + * @param string $proxyusername + * @param string $proxypassword + * @access public + */ + function setHTTPProxy($proxyhost, $proxyport, $proxyusername = '', $proxypassword = '') { + $this->proxyhost = $proxyhost; + $this->proxyport = $proxyport; + $this->proxyusername = $proxyusername; + $this->proxypassword = $proxypassword; + } + + /** + * if authenticating, set user credentials here + * + * @param string $username + * @param string $password + * @param string $authtype (basic|digest|certificate|ntlm) + * @param array $certRequest (keys must be cainfofile (optional), sslcertfile, sslkeyfile, passphrase, verifypeer (optional), verifyhost (optional): see corresponding options in cURL docs) + * @access public + */ + function setCredentials($username, $password, $authtype = 'basic', $certRequest = array()) { + $this->debug("setCredentials username=$username authtype=$authtype certRequest="); + $this->appendDebug($this->varDump($certRequest)); + $this->username = $username; + $this->password = $password; + $this->authtype = $authtype; + $this->certRequest = $certRequest; + } + + /** + * use HTTP encoding + * + * @param string $enc HTTP encoding + * @access public + */ + function setHTTPEncoding($enc='gzip, deflate'){ + $this->debug("setHTTPEncoding(\"$enc\")"); + $this->http_encoding = $enc; + } + + /** + * Set whether to try to use cURL connections if possible + * + * @param boolean $use Whether to try to use cURL + * @access public + */ + function setUseCURL($use) { + $this->debug("setUseCURL($use)"); + $this->use_curl = $use; + } + + /** + * use HTTP persistent connections if possible + * + * @access public + */ + function useHTTPPersistentConnection(){ + $this->debug("useHTTPPersistentConnection"); + $this->persistentConnection = true; + } + + /** + * gets the default RPC parameter setting. + * If true, default is that call params are like RPC even for document style. + * Each call() can override this value. + * + * This is no longer used. + * + * @return boolean + * @access public + * @deprecated + */ + function getDefaultRpcParams() { + return $this->defaultRpcParams; + } + + /** + * sets the default RPC parameter setting. + * If true, default is that call params are like RPC even for document style + * Each call() can override this value. + * + * This is no longer used. + * + * @param boolean $rpcParams + * @access public + * @deprecated + */ + function setDefaultRpcParams($rpcParams) { + $this->defaultRpcParams = $rpcParams; + } + + /** + * dynamically creates an instance of a proxy class, + * allowing user to directly call methods from wsdl + * + * @return object soap_proxy object + * @access public + */ + function getProxy() { + $r = rand(); + $evalStr = $this->_getProxyClassCode($r); + //$this->debug("proxy class: $evalStr"); + if ($this->getError()) { + $this->debug("Error from _getProxyClassCode, so return NULL"); + return null; + } + // eval the class + eval($evalStr); + // instantiate proxy object + eval("\$proxy = new nusoap_proxy_$r('');"); + // transfer current wsdl data to the proxy thereby avoiding parsing the wsdl twice + $proxy->endpointType = 'wsdl'; + $proxy->wsdlFile = $this->wsdlFile; + $proxy->wsdl = $this->wsdl; + $proxy->operations = $this->operations; + $proxy->defaultRpcParams = $this->defaultRpcParams; + // transfer other state + $proxy->soap_defencoding = $this->soap_defencoding; + $proxy->username = $this->username; + $proxy->password = $this->password; + $proxy->authtype = $this->authtype; + $proxy->certRequest = $this->certRequest; + $proxy->requestHeaders = $this->requestHeaders; + $proxy->endpoint = $this->endpoint; + $proxy->forceEndpoint = $this->forceEndpoint; + $proxy->proxyhost = $this->proxyhost; + $proxy->proxyport = $this->proxyport; + $proxy->proxyusername = $this->proxyusername; + $proxy->proxypassword = $this->proxypassword; + $proxy->http_encoding = $this->http_encoding; + $proxy->timeout = $this->timeout; + $proxy->response_timeout = $this->response_timeout; + $proxy->persistentConnection = &$this->persistentConnection; + $proxy->decode_utf8 = $this->decode_utf8; + $proxy->curl_options = $this->curl_options; + $proxy->bindingType = $this->bindingType; + $proxy->use_curl = $this->use_curl; + return $proxy; + } + + /** + * dynamically creates proxy class code + * + * @return string PHP/NuSOAP code for the proxy class + * @access private + */ + function _getProxyClassCode($r) { + $this->debug("in getProxy endpointType=$this->endpointType"); + $this->appendDebug("wsdl=" . $this->varDump($this->wsdl)); + if ($this->endpointType != 'wsdl') { + $evalStr = 'A proxy can only be created for a WSDL client'; + $this->setError($evalStr); + $evalStr = "echo \"$evalStr\";"; + return $evalStr; + } + if ($this->endpointType == 'wsdl' && is_null($this->wsdl)) { + $this->loadWSDL(); + if ($this->getError()) { + return "echo \"" . $this->getError() . "\";"; + } + } + $evalStr = ''; + foreach ($this->operations as $operation => $opData) { + if ($operation != '') { + // create param string and param comment string + if (sizeof($opData['input']['parts']) > 0) { + $paramStr = ''; + $paramArrayStr = ''; + $paramCommentStr = ''; + foreach ($opData['input']['parts'] as $name => $type) { + $paramStr .= "\$$name, "; + $paramArrayStr .= "'$name' => \$$name, "; + $paramCommentStr .= "$type \$$name, "; + } + $paramStr = substr($paramStr, 0, strlen($paramStr)-2); + $paramArrayStr = substr($paramArrayStr, 0, strlen($paramArrayStr)-2); + $paramCommentStr = substr($paramCommentStr, 0, strlen($paramCommentStr)-2); + } else { + $paramStr = ''; + $paramArrayStr = ''; + $paramCommentStr = 'void'; + } + $opData['namespace'] = !isset($opData['namespace']) ? 'http://testuri.com' : $opData['namespace']; + $evalStr .= "// $paramCommentStr + function " . str_replace('.', '__', $operation) . "($paramStr) { + \$params = array($paramArrayStr); + return \$this->call('$operation', \$params, '".$opData['namespace']."', '".(isset($opData['soapAction']) ? $opData['soapAction'] : '')."'); + } + "; + unset($paramStr); + unset($paramCommentStr); + } + } + $evalStr = 'class nusoap_proxy_'.$r.' extends nusoap_client { + '.$evalStr.' +}'; + return $evalStr; + } + + /** + * dynamically creates proxy class code + * + * @return string PHP/NuSOAP code for the proxy class + * @access public + */ + function getProxyClassCode() { + $r = rand(); + return $this->_getProxyClassCode($r); + } + + /** + * gets the HTTP body for the current request. + * + * @param string $soapmsg The SOAP payload + * @return string The HTTP body, which includes the SOAP payload + * @access private + */ + function getHTTPBody($soapmsg) { + return $soapmsg; + } + + /** + * gets the HTTP content type for the current request. + * + * Note: getHTTPBody must be called before this. + * + * @return string the HTTP content type for the current request. + * @access private + */ + function getHTTPContentType() { + return 'text/xml'; + } + + /** + * gets the HTTP content type charset for the current request. + * returns false for non-text content types. + * + * Note: getHTTPBody must be called before this. + * + * @return string the HTTP content type charset for the current request. + * @access private + */ + function getHTTPContentTypeCharset() { + return $this->soap_defencoding; + } + + /* + * whether or not parser should decode utf8 element content + * + * @return always returns true + * @access public + */ + function decodeUTF8($bool){ + $this->decode_utf8 = $bool; + return true; + } + + /** + * adds a new Cookie into $this->cookies array + * + * @param string $name Cookie Name + * @param string $value Cookie Value + * @return boolean if cookie-set was successful returns true, else false + * @access public + */ + function setCookie($name, $value) { + if (strlen($name) == 0) { + return false; + } + $this->cookies[] = array('name' => $name, 'value' => $value); + return true; + } + + /** + * gets all Cookies + * + * @return array with all internal cookies + * @access public + */ + function getCookies() { + return $this->cookies; + } + + /** + * checks all Cookies and delete those which are expired + * + * @return boolean always return true + * @access private + */ + function checkCookies() { + if (sizeof($this->cookies) == 0) { + return true; + } + $this->debug('checkCookie: check ' . sizeof($this->cookies) . ' cookies'); + $curr_cookies = $this->cookies; + $this->cookies = array(); + foreach ($curr_cookies as $cookie) { + if (! is_array($cookie)) { + $this->debug('Remove cookie that is not an array'); + continue; + } + if ((isset($cookie['expires'])) && (! empty($cookie['expires']))) { + if (strtotime($cookie['expires']) > time()) { + $this->cookies[] = $cookie; + } else { + $this->debug('Remove expired cookie ' . $cookie['name']); + } + } else { + $this->cookies[] = $cookie; + } + } + $this->debug('checkCookie: '.sizeof($this->cookies).' cookies left in array'); + return true; + } + + /** + * updates the current cookies with a new set + * + * @param array $cookies new cookies with which to update current ones + * @return boolean always return true + * @access private + */ + function UpdateCookies($cookies) { + if (sizeof($this->cookies) == 0) { + // no existing cookies: take whatever is new + if (sizeof($cookies) > 0) { + $this->debug('Setting new cookie(s)'); + $this->cookies = $cookies; + } + return true; + } + if (sizeof($cookies) == 0) { + // no new cookies: keep what we've got + return true; + } + // merge + foreach ($cookies as $newCookie) { + if (!is_array($newCookie)) { + continue; + } + if ((!isset($newCookie['name'])) || (!isset($newCookie['value']))) { + continue; + } + $newName = $newCookie['name']; + + $found = false; + for ($i = 0; $i < count($this->cookies); $i++) { + $cookie = $this->cookies[$i]; + if (!is_array($cookie)) { + continue; + } + if (!isset($cookie['name'])) { + continue; + } + if ($newName != $cookie['name']) { + continue; + } + $newDomain = isset($newCookie['domain']) ? $newCookie['domain'] : 'NODOMAIN'; + $domain = isset($cookie['domain']) ? $cookie['domain'] : 'NODOMAIN'; + if ($newDomain != $domain) { + continue; + } + $newPath = isset($newCookie['path']) ? $newCookie['path'] : 'NOPATH'; + $path = isset($cookie['path']) ? $cookie['path'] : 'NOPATH'; + if ($newPath != $path) { + continue; + } + $this->cookies[$i] = $newCookie; + $found = true; + $this->debug('Update cookie ' . $newName . '=' . $newCookie['value']); + break; + } + if (! $found) { + $this->debug('Add cookie ' . $newName . '=' . $newCookie['value']); + $this->cookies[] = $newCookie; + } + } + return true; + } +} + +if (!extension_loaded('soap')) { + /** + * For backwards compatiblity, define soapclient unless the PHP SOAP extension is loaded. + */ + class soapclient extends nusoap_client { + } +} +?> diff --git a/classes/lib/class.wsdl.php b/classes/lib/class.wsdl.php new file mode 100644 index 0000000..6d2a693 --- /dev/null +++ b/classes/lib/class.wsdl.php @@ -0,0 +1,1938 @@ + +* @author Scott Nichol +* @version $Id: class.wsdl.php,v 1.76 2010/04/26 20:15:08 snichol Exp $ +* @access public +*/ +class wsdl extends nusoap_base { + // URL or filename of the root of this WSDL + var $wsdl; + // define internal arrays of bindings, ports, operations, messages, etc. + var $schemas = array(); + var $currentSchema; + var $message = array(); + var $complexTypes = array(); + var $messages = array(); + var $currentMessage; + var $currentOperation; + var $portTypes = array(); + var $currentPortType; + var $bindings = array(); + var $currentBinding; + var $ports = array(); + var $currentPort; + var $opData = array(); + var $status = ''; + var $documentation = false; + var $endpoint = ''; + // array of wsdl docs to import + var $import = array(); + // parser vars + var $parser; + var $position = 0; + var $depth = 0; + var $depth_array = array(); + // for getting wsdl + var $proxyhost = ''; + var $proxyport = ''; + var $proxyusername = ''; + var $proxypassword = ''; + var $timeout = 0; + var $response_timeout = 30; + var $curl_options = array(); // User-specified cURL options + var $use_curl = false; // whether to always try to use cURL + // for HTTP authentication + var $username = ''; // Username for HTTP authentication + var $password = ''; // Password for HTTP authentication + var $authtype = ''; // Type of HTTP authentication + var $certRequest = array(); // Certificate for HTTP SSL authentication + + /** + * constructor + * + * @param string $wsdl WSDL document URL + * @param string $proxyhost + * @param string $proxyport + * @param string $proxyusername + * @param string $proxypassword + * @param integer $timeout set the connection timeout + * @param integer $response_timeout set the response timeout + * @param array $curl_options user-specified cURL options + * @param boolean $use_curl try to use cURL + * @access public + */ + function wsdl($wsdl = '',$proxyhost=false,$proxyport=false,$proxyusername=false,$proxypassword=false,$timeout=0,$response_timeout=30,$curl_options=null,$use_curl=false){ + parent::nusoap_base(); + $this->debug("ctor wsdl=$wsdl timeout=$timeout response_timeout=$response_timeout"); + $this->proxyhost = $proxyhost; + $this->proxyport = $proxyport; + $this->proxyusername = $proxyusername; + $this->proxypassword = $proxypassword; + $this->timeout = $timeout; + $this->response_timeout = $response_timeout; + if (is_array($curl_options)) + $this->curl_options = $curl_options; + $this->use_curl = $use_curl; + $this->fetchWSDL($wsdl); + } + + /** + * fetches the WSDL document and parses it + * + * @access public + */ + function fetchWSDL($wsdl) { + $this->debug("parse and process WSDL path=$wsdl"); + $this->wsdl = $wsdl; + // parse wsdl file + if ($this->wsdl != "") { + $this->parseWSDL($this->wsdl); + } + // imports + // TODO: handle imports more properly, grabbing them in-line and nesting them + $imported_urls = array(); + $imported = 1; + while ($imported > 0) { + $imported = 0; + // Schema imports + foreach ($this->schemas as $ns => $list) { + foreach ($list as $xs) { + $wsdlparts = parse_url($this->wsdl); // this is bogusly simple! + foreach ($xs->imports as $ns2 => $list2) { + for ($ii = 0; $ii < count($list2); $ii++) { + if (! $list2[$ii]['loaded']) { + $this->schemas[$ns]->imports[$ns2][$ii]['loaded'] = true; + $url = $list2[$ii]['location']; + if ($url != '') { + $urlparts = parse_url($url); + if (!isset($urlparts['host'])) { + $url = $wsdlparts['scheme'] . '://' . $wsdlparts['host'] . (isset($wsdlparts['port']) ? ':' .$wsdlparts['port'] : '') . + substr($wsdlparts['path'],0,strrpos($wsdlparts['path'],'/') + 1) .$urlparts['path']; + } + if (! in_array($url, $imported_urls)) { + $this->parseWSDL($url); + $imported++; + $imported_urls[] = $url; + } + } else { + $this->debug("Unexpected scenario: empty URL for unloaded import"); + } + } + } + } + } + } + // WSDL imports + $wsdlparts = parse_url($this->wsdl); // this is bogusly simple! + foreach ($this->import as $ns => $list) { + for ($ii = 0; $ii < count($list); $ii++) { + if (! $list[$ii]['loaded']) { + $this->import[$ns][$ii]['loaded'] = true; + $url = $list[$ii]['location']; + if ($url != '') { + $urlparts = parse_url($url); + if (!isset($urlparts['host'])) { + $url = $wsdlparts['scheme'] . '://' . $wsdlparts['host'] . (isset($wsdlparts['port']) ? ':' . $wsdlparts['port'] : '') . + substr($wsdlparts['path'],0,strrpos($wsdlparts['path'],'/') + 1) .$urlparts['path']; + } + if (! in_array($url, $imported_urls)) { + $this->parseWSDL($url); + $imported++; + $imported_urls[] = $url; + } + } else { + $this->debug("Unexpected scenario: empty URL for unloaded import"); + } + } + } + } + } + // add new data to operation data + foreach($this->bindings as $binding => $bindingData) { + if (isset($bindingData['operations']) && is_array($bindingData['operations'])) { + foreach($bindingData['operations'] as $operation => $data) { + $this->debug('post-parse data gathering for ' . $operation); + $this->bindings[$binding]['operations'][$operation]['input'] = + isset($this->bindings[$binding]['operations'][$operation]['input']) ? + array_merge($this->bindings[$binding]['operations'][$operation]['input'], $this->portTypes[ $bindingData['portType'] ][$operation]['input']) : + $this->portTypes[ $bindingData['portType'] ][$operation]['input']; + $this->bindings[$binding]['operations'][$operation]['output'] = + isset($this->bindings[$binding]['operations'][$operation]['output']) ? + array_merge($this->bindings[$binding]['operations'][$operation]['output'], $this->portTypes[ $bindingData['portType'] ][$operation]['output']) : + $this->portTypes[ $bindingData['portType'] ][$operation]['output']; + if(isset($this->messages[ $this->bindings[$binding]['operations'][$operation]['input']['message'] ])){ + $this->bindings[$binding]['operations'][$operation]['input']['parts'] = $this->messages[ $this->bindings[$binding]['operations'][$operation]['input']['message'] ]; + } + if(isset($this->messages[ $this->bindings[$binding]['operations'][$operation]['output']['message'] ])){ + $this->bindings[$binding]['operations'][$operation]['output']['parts'] = $this->messages[ $this->bindings[$binding]['operations'][$operation]['output']['message'] ]; + } + // Set operation style if necessary, but do not override one already provided + if (isset($bindingData['style']) && !isset($this->bindings[$binding]['operations'][$operation]['style'])) { + $this->bindings[$binding]['operations'][$operation]['style'] = $bindingData['style']; + } + $this->bindings[$binding]['operations'][$operation]['transport'] = isset($bindingData['transport']) ? $bindingData['transport'] : ''; + $this->bindings[$binding]['operations'][$operation]['documentation'] = isset($this->portTypes[ $bindingData['portType'] ][$operation]['documentation']) ? $this->portTypes[ $bindingData['portType'] ][$operation]['documentation'] : ''; + $this->bindings[$binding]['operations'][$operation]['endpoint'] = isset($bindingData['endpoint']) ? $bindingData['endpoint'] : ''; + } + } + } + } + + /** + * parses the wsdl document + * + * @param string $wsdl path or URL + * @access private + */ + function parseWSDL($wsdl = '') { + $this->debug("parse WSDL at path=$wsdl"); + + if ($wsdl == '') { + $this->debug('no wsdl passed to parseWSDL()!!'); + $this->setError('no wsdl passed to parseWSDL()!!'); + return false; + } + + // parse $wsdl for url format + $wsdl_props = parse_url($wsdl); + + if (isset($wsdl_props['scheme']) && ($wsdl_props['scheme'] == 'http' || $wsdl_props['scheme'] == 'https')) { + $this->debug('getting WSDL http(s) URL ' . $wsdl); + // get wsdl + $tr = new soap_transport_http($wsdl, $this->curl_options, $this->use_curl); + $tr->request_method = 'GET'; + $tr->useSOAPAction = false; + if($this->proxyhost && $this->proxyport){ + $tr->setProxy($this->proxyhost,$this->proxyport,$this->proxyusername,$this->proxypassword); + } + if ($this->authtype != '') { + $tr->setCredentials($this->username, $this->password, $this->authtype, array(), $this->certRequest); + } + $tr->setEncoding('gzip, deflate'); + $wsdl_string = $tr->send('', $this->timeout, $this->response_timeout); + //$this->debug("WSDL request\n" . $tr->outgoing_payload); + //$this->debug("WSDL response\n" . $tr->incoming_payload); + $this->appendDebug($tr->getDebug()); + // catch errors + if($err = $tr->getError() ){ + $errstr = 'Getting ' . $wsdl . ' - HTTP ERROR: '.$err; + $this->debug($errstr); + $this->setError($errstr); + unset($tr); + return false; + } + unset($tr); + $this->debug("got WSDL URL"); + } else { + // $wsdl is not http(s), so treat it as a file URL or plain file path + if (isset($wsdl_props['scheme']) && ($wsdl_props['scheme'] == 'file') && isset($wsdl_props['path'])) { + $path = isset($wsdl_props['host']) ? ($wsdl_props['host'] . ':' . $wsdl_props['path']) : $wsdl_props['path']; + } else { + $path = $wsdl; + } + $this->debug('getting WSDL file ' . $path); + if ($fp = @fopen($path, 'r')) { + $wsdl_string = ''; + while ($data = fread($fp, 32768)) { + $wsdl_string .= $data; + } + fclose($fp); + } else { + $errstr = "Bad path to WSDL file $path"; + $this->debug($errstr); + $this->setError($errstr); + return false; + } + } + $this->debug('Parse WSDL'); + // end new code added + // Create an XML parser. + $this->parser = xml_parser_create(); + // Set the options for parsing the XML data. + // xml_parser_set_option($parser, XML_OPTION_SKIP_WHITE, 1); + xml_parser_set_option($this->parser, XML_OPTION_CASE_FOLDING, 0); + // Set the object for the parser. + xml_set_object($this->parser, $this); + // Set the element handlers for the parser. + xml_set_element_handler($this->parser, 'start_element', 'end_element'); + xml_set_character_data_handler($this->parser, 'character_data'); + // Parse the XML file. + if (!xml_parse($this->parser, $wsdl_string, true)) { + // Display an error message. + $errstr = sprintf( + 'XML error parsing WSDL from %s on line %d: %s', + $wsdl, + xml_get_current_line_number($this->parser), + xml_error_string(xml_get_error_code($this->parser)) + ); + $this->debug($errstr); + $this->debug("XML payload:\n" . $wsdl_string); + $this->setError($errstr); + return false; + } + // free the parser + xml_parser_free($this->parser); + $this->debug('Parsing WSDL done'); + // catch wsdl parse errors + if($this->getError()){ + return false; + } + return true; + } + + /** + * start-element handler + * + * @param string $parser XML parser object + * @param string $name element name + * @param string $attrs associative array of attributes + * @access private + */ + function start_element($parser, $name, $attrs) + { + if ($this->status == 'schema') { + $this->currentSchema->schemaStartElement($parser, $name, $attrs); + $this->appendDebug($this->currentSchema->getDebug()); + $this->currentSchema->clearDebug(); + } elseif (preg_match('/schema$/', $name)) { + $this->debug('Parsing WSDL schema'); + // $this->debug("startElement for $name ($attrs[name]). status = $this->status (".$this->getLocalPart($name).")"); + $this->status = 'schema'; + $this->currentSchema = new nusoap_xmlschema('', '', $this->namespaces); + $this->currentSchema->schemaStartElement($parser, $name, $attrs); + $this->appendDebug($this->currentSchema->getDebug()); + $this->currentSchema->clearDebug(); + } else { + // position in the total number of elements, starting from 0 + $pos = $this->position++; + $depth = $this->depth++; + // set self as current value for this depth + $this->depth_array[$depth] = $pos; + $this->message[$pos] = array('cdata' => ''); + // process attributes + if (count($attrs) > 0) { + // register namespace declarations + foreach($attrs as $k => $v) { + if (preg_match('/^xmlns/',$k)) { + if ($ns_prefix = substr(strrchr($k, ':'), 1)) { + $this->namespaces[$ns_prefix] = $v; + } else { + $this->namespaces['ns' . (count($this->namespaces) + 1)] = $v; + } + if ($v == 'http://www.w3.org/2001/XMLSchema' || $v == 'http://www.w3.org/1999/XMLSchema' || $v == 'http://www.w3.org/2000/10/XMLSchema') { + $this->XMLSchemaVersion = $v; + $this->namespaces['xsi'] = $v . '-instance'; + } + } + } + // expand each attribute prefix to its namespace + foreach($attrs as $k => $v) { + $k = strpos($k, ':') ? $this->expandQname($k) : $k; + if ($k != 'location' && $k != 'soapAction' && $k != 'namespace') { + $v = strpos($v, ':') ? $this->expandQname($v) : $v; + } + $eAttrs[$k] = $v; + } + $attrs = $eAttrs; + } else { + $attrs = array(); + } + // get element prefix, namespace and name + if (preg_match('/:/', $name)) { + // get ns prefix + $prefix = substr($name, 0, strpos($name, ':')); + // get ns + $namespace = isset($this->namespaces[$prefix]) ? $this->namespaces[$prefix] : ''; + // get unqualified name + $name = substr(strstr($name, ':'), 1); + } + // process attributes, expanding any prefixes to namespaces + // find status, register data + switch ($this->status) { + case 'message': + if ($name == 'part') { + if (isset($attrs['type'])) { + $this->debug("msg " . $this->currentMessage . ": found part (with type) $attrs[name]: " . implode(',', $attrs)); + $this->messages[$this->currentMessage][$attrs['name']] = $attrs['type']; + } + if (isset($attrs['element'])) { + $this->debug("msg " . $this->currentMessage . ": found part (with element) $attrs[name]: " . implode(',', $attrs)); + $this->messages[$this->currentMessage][$attrs['name']] = $attrs['element'] . '^'; + } + } + break; + case 'portType': + switch ($name) { + case 'operation': + $this->currentPortOperation = $attrs['name']; + $this->debug("portType $this->currentPortType operation: $this->currentPortOperation"); + if (isset($attrs['parameterOrder'])) { + $this->portTypes[$this->currentPortType][$attrs['name']]['parameterOrder'] = $attrs['parameterOrder']; + } + break; + case 'documentation': + $this->documentation = true; + break; + // merge input/output data + default: + $m = isset($attrs['message']) ? $this->getLocalPart($attrs['message']) : ''; + $this->portTypes[$this->currentPortType][$this->currentPortOperation][$name]['message'] = $m; + break; + } + break; + case 'binding': + switch ($name) { + case 'binding': + // get ns prefix + if (isset($attrs['style'])) { + $this->bindings[$this->currentBinding]['prefix'] = $prefix; + } + $this->bindings[$this->currentBinding] = array_merge($this->bindings[$this->currentBinding], $attrs); + break; + case 'header': + $this->bindings[$this->currentBinding]['operations'][$this->currentOperation][$this->opStatus]['headers'][] = $attrs; + break; + case 'operation': + if (isset($attrs['soapAction'])) { + $this->bindings[$this->currentBinding]['operations'][$this->currentOperation]['soapAction'] = $attrs['soapAction']; + } + if (isset($attrs['style'])) { + $this->bindings[$this->currentBinding]['operations'][$this->currentOperation]['style'] = $attrs['style']; + } + if (isset($attrs['name'])) { + $this->currentOperation = $attrs['name']; + $this->debug("current binding operation: $this->currentOperation"); + $this->bindings[$this->currentBinding]['operations'][$this->currentOperation]['name'] = $attrs['name']; + $this->bindings[$this->currentBinding]['operations'][$this->currentOperation]['binding'] = $this->currentBinding; + $this->bindings[$this->currentBinding]['operations'][$this->currentOperation]['endpoint'] = isset($this->bindings[$this->currentBinding]['endpoint']) ? $this->bindings[$this->currentBinding]['endpoint'] : ''; + } + break; + case 'input': + $this->opStatus = 'input'; + break; + case 'output': + $this->opStatus = 'output'; + break; + case 'body': + if (isset($this->bindings[$this->currentBinding]['operations'][$this->currentOperation][$this->opStatus])) { + $this->bindings[$this->currentBinding]['operations'][$this->currentOperation][$this->opStatus] = array_merge($this->bindings[$this->currentBinding]['operations'][$this->currentOperation][$this->opStatus], $attrs); + } else { + $this->bindings[$this->currentBinding]['operations'][$this->currentOperation][$this->opStatus] = $attrs; + } + break; + } + break; + case 'service': + switch ($name) { + case 'port': + $this->currentPort = $attrs['name']; + $this->debug('current port: ' . $this->currentPort); + $this->ports[$this->currentPort]['binding'] = $this->getLocalPart($attrs['binding']); + + break; + case 'address': + $this->ports[$this->currentPort]['location'] = $attrs['location']; + $this->ports[$this->currentPort]['bindingType'] = $namespace; + $this->bindings[ $this->ports[$this->currentPort]['binding'] ]['bindingType'] = $namespace; + $this->bindings[ $this->ports[$this->currentPort]['binding'] ]['endpoint'] = $attrs['location']; + break; + } + break; + } + // set status + switch ($name) { + case 'import': + if (isset($attrs['location'])) { + $this->import[$attrs['namespace']][] = array('location' => $attrs['location'], 'loaded' => false); + $this->debug('parsing import ' . $attrs['namespace']. ' - ' . $attrs['location'] . ' (' . count($this->import[$attrs['namespace']]).')'); + } else { + $this->import[$attrs['namespace']][] = array('location' => '', 'loaded' => true); + if (! $this->getPrefixFromNamespace($attrs['namespace'])) { + $this->namespaces['ns'.(count($this->namespaces)+1)] = $attrs['namespace']; + } + $this->debug('parsing import ' . $attrs['namespace']. ' - [no location] (' . count($this->import[$attrs['namespace']]).')'); + } + break; + //wait for schema + //case 'types': + // $this->status = 'schema'; + // break; + case 'message': + $this->status = 'message'; + $this->messages[$attrs['name']] = array(); + $this->currentMessage = $attrs['name']; + break; + case 'portType': + $this->status = 'portType'; + $this->portTypes[$attrs['name']] = array(); + $this->currentPortType = $attrs['name']; + break; + case "binding": + if (isset($attrs['name'])) { + // get binding name + if (strpos($attrs['name'], ':')) { + $this->currentBinding = $this->getLocalPart($attrs['name']); + } else { + $this->currentBinding = $attrs['name']; + } + $this->status = 'binding'; + $this->bindings[$this->currentBinding]['portType'] = $this->getLocalPart($attrs['type']); + $this->debug("current binding: $this->currentBinding of portType: " . $attrs['type']); + } + break; + case 'service': + $this->serviceName = $attrs['name']; + $this->status = 'service'; + $this->debug('current service: ' . $this->serviceName); + break; + case 'definitions': + foreach ($attrs as $name => $value) { + $this->wsdl_info[$name] = $value; + } + break; + } + } + } + + /** + * end-element handler + * + * @param string $parser XML parser object + * @param string $name element name + * @access private + */ + function end_element($parser, $name){ + // unset schema status + if (/*preg_match('/types$/', $name) ||*/ preg_match('/schema$/', $name)) { + $this->status = ""; + $this->appendDebug($this->currentSchema->getDebug()); + $this->currentSchema->clearDebug(); + $this->schemas[$this->currentSchema->schemaTargetNamespace][] = $this->currentSchema; + $this->debug('Parsing WSDL schema done'); + } + if ($this->status == 'schema') { + $this->currentSchema->schemaEndElement($parser, $name); + } else { + // bring depth down a notch + $this->depth--; + } + // end documentation + if ($this->documentation) { + //TODO: track the node to which documentation should be assigned; it can be a part, message, etc. + //$this->portTypes[$this->currentPortType][$this->currentPortOperation]['documentation'] = $this->documentation; + $this->documentation = false; + } + } + + /** + * element content handler + * + * @param string $parser XML parser object + * @param string $data element content + * @access private + */ + function character_data($parser, $data) + { + $pos = isset($this->depth_array[$this->depth]) ? $this->depth_array[$this->depth] : 0; + if (isset($this->message[$pos]['cdata'])) { + $this->message[$pos]['cdata'] .= $data; + } + if ($this->documentation) { + $this->documentation .= $data; + } + } + + /** + * if authenticating, set user credentials here + * + * @param string $username + * @param string $password + * @param string $authtype (basic|digest|certificate|ntlm) + * @param array $certRequest (keys must be cainfofile (optional), sslcertfile, sslkeyfile, passphrase, certpassword (optional), verifypeer (optional), verifyhost (optional): see corresponding options in cURL docs) + * @access public + */ + function setCredentials($username, $password, $authtype = 'basic', $certRequest = array()) { + $this->debug("setCredentials username=$username authtype=$authtype certRequest="); + $this->appendDebug($this->varDump($certRequest)); + $this->username = $username; + $this->password = $password; + $this->authtype = $authtype; + $this->certRequest = $certRequest; + } + + function getBindingData($binding) + { + if (is_array($this->bindings[$binding])) { + return $this->bindings[$binding]; + } + } + + /** + * returns an assoc array of operation names => operation data + * + * @param string $portName WSDL port name + * @param string $bindingType eg: soap, smtp, dime (only soap and soap12 are currently supported) + * @return array + * @access public + */ + function getOperations($portName = '', $bindingType = 'soap') { + $ops = array(); + if ($bindingType == 'soap') { + $bindingType = 'http://schemas.xmlsoap.org/wsdl/soap/'; + } elseif ($bindingType == 'soap12') { + $bindingType = 'http://schemas.xmlsoap.org/wsdl/soap12/'; + } else { + $this->debug("getOperations bindingType $bindingType may not be supported"); + } + $this->debug("getOperations for port '$portName' bindingType $bindingType"); + // loop thru ports + foreach($this->ports as $port => $portData) { + $this->debug("getOperations checking port $port bindingType " . $portData['bindingType']); + if ($portName == '' || $port == $portName) { + // binding type of port matches parameter + if ($portData['bindingType'] == $bindingType) { + $this->debug("getOperations found port $port bindingType $bindingType"); + //$this->debug("port data: " . $this->varDump($portData)); + //$this->debug("bindings: " . $this->varDump($this->bindings[ $portData['binding'] ])); + // merge bindings + if (isset($this->bindings[ $portData['binding'] ]['operations'])) { + $ops = array_merge ($ops, $this->bindings[ $portData['binding'] ]['operations']); + } + } + } + } + if (count($ops) == 0) { + $this->debug("getOperations found no operations for port '$portName' bindingType $bindingType"); + } + return $ops; + } + + /** + * returns an associative array of data necessary for calling an operation + * + * @param string $operation name of operation + * @param string $bindingType type of binding eg: soap, soap12 + * @return array + * @access public + */ + function getOperationData($operation, $bindingType = 'soap') + { + if ($bindingType == 'soap') { + $bindingType = 'http://schemas.xmlsoap.org/wsdl/soap/'; + } elseif ($bindingType == 'soap12') { + $bindingType = 'http://schemas.xmlsoap.org/wsdl/soap12/'; + } + // loop thru ports + foreach($this->ports as $port => $portData) { + // binding type of port matches parameter + if ($portData['bindingType'] == $bindingType) { + // get binding + //foreach($this->bindings[ $portData['binding'] ]['operations'] as $bOperation => $opData) { + foreach(array_keys($this->bindings[ $portData['binding'] ]['operations']) as $bOperation) { + // note that we could/should also check the namespace here + if ($operation == $bOperation) { + $opData = $this->bindings[ $portData['binding'] ]['operations'][$operation]; + return $opData; + } + } + } + } + } + + /** + * returns an associative array of data necessary for calling an operation + * + * @param string $soapAction soapAction for operation + * @param string $bindingType type of binding eg: soap, soap12 + * @return array + * @access public + */ + function getOperationDataForSoapAction($soapAction, $bindingType = 'soap') { + if ($bindingType == 'soap') { + $bindingType = 'http://schemas.xmlsoap.org/wsdl/soap/'; + } elseif ($bindingType == 'soap12') { + $bindingType = 'http://schemas.xmlsoap.org/wsdl/soap12/'; + } + // loop thru ports + foreach($this->ports as $port => $portData) { + // binding type of port matches parameter + if ($portData['bindingType'] == $bindingType) { + // loop through operations for the binding + foreach ($this->bindings[ $portData['binding'] ]['operations'] as $bOperation => $opData) { + if ($opData['soapAction'] == $soapAction) { + return $opData; + } + } + } + } + } + + /** + * returns an array of information about a given type + * returns false if no type exists by the given name + * + * typeDef = array( + * 'elements' => array(), // refs to elements array + * 'restrictionBase' => '', + * 'phpType' => '', + * 'order' => '(sequence|all)', + * 'attrs' => array() // refs to attributes array + * ) + * + * @param string $type the type + * @param string $ns namespace (not prefix) of the type + * @return mixed + * @access public + * @see nusoap_xmlschema + */ + function getTypeDef($type, $ns) { + $this->debug("in getTypeDef: type=$type, ns=$ns"); + if ((! $ns) && isset($this->namespaces['tns'])) { + $ns = $this->namespaces['tns']; + $this->debug("in getTypeDef: type namespace forced to $ns"); + } + if (!isset($this->schemas[$ns])) { + foreach ($this->schemas as $ns0 => $schema0) { + if (strcasecmp($ns, $ns0) == 0) { + $this->debug("in getTypeDef: replacing schema namespace $ns with $ns0"); + $ns = $ns0; + break; + } + } + } + if (isset($this->schemas[$ns])) { + $this->debug("in getTypeDef: have schema for namespace $ns"); + for ($i = 0; $i < count($this->schemas[$ns]); $i++) { + $xs = &$this->schemas[$ns][$i]; + $t = $xs->getTypeDef($type); + $this->appendDebug($xs->getDebug()); + $xs->clearDebug(); + if ($t) { + $this->debug("in getTypeDef: found type $type"); + if (!isset($t['phpType'])) { + // get info for type to tack onto the element + $uqType = substr($t['type'], strrpos($t['type'], ':') + 1); + $ns = substr($t['type'], 0, strrpos($t['type'], ':')); + $etype = $this->getTypeDef($uqType, $ns); + if ($etype) { + $this->debug("found type for [element] $type:"); + $this->debug($this->varDump($etype)); + if (isset($etype['phpType'])) { + $t['phpType'] = $etype['phpType']; + } + if (isset($etype['elements'])) { + $t['elements'] = $etype['elements']; + } + if (isset($etype['attrs'])) { + $t['attrs'] = $etype['attrs']; + } + } else { + $this->debug("did not find type for [element] $type"); + } + } + return $t; + } + } + $this->debug("in getTypeDef: did not find type $type"); + } else { + $this->debug("in getTypeDef: do not have schema for namespace $ns"); + } + return false; + } + + /** + * prints html description of services + * + * @access private + */ + function webDescription(){ + global $HTTP_SERVER_VARS; + + if (isset($_SERVER)) { + $PHP_SELF = $_SERVER['PHP_SELF']; + } elseif (isset($HTTP_SERVER_VARS)) { + $PHP_SELF = $HTTP_SERVER_VARS['PHP_SELF']; + } else { + $this->setError("Neither _SERVER nor HTTP_SERVER_VARS is available"); + } + + $b = ' + NuSOAP: '.$this->serviceName.' + + + + +
+

+
'.$this->serviceName.'
+ +
'; + return $b; + } + + /** + * serialize the parsed wsdl + * + * @param mixed $debug whether to put debug=1 in endpoint URL + * @return string serialization of WSDL + * @access public + */ + function serialize($debug = 0) + { + $xml = ''; + $xml .= "\nnamespaces as $k => $v) { + $xml .= " xmlns:$k=\"$v\""; + } + // 10.9.02 - add poulter fix for wsdl and tns declarations + if (isset($this->namespaces['wsdl'])) { + $xml .= " xmlns=\"" . $this->namespaces['wsdl'] . "\""; + } + if (isset($this->namespaces['tns'])) { + $xml .= " targetNamespace=\"" . $this->namespaces['tns'] . "\""; + } + $xml .= '>'; + // imports + if (sizeof($this->import) > 0) { + foreach($this->import as $ns => $list) { + foreach ($list as $ii) { + if ($ii['location'] != '') { + $xml .= ''; + } else { + $xml .= ''; + } + } + } + } + // types + if (count($this->schemas)>=1) { + $xml .= "\n\n"; + foreach ($this->schemas as $ns => $list) { + foreach ($list as $xs) { + $xml .= $xs->serializeSchema(); + } + } + $xml .= ''; + } + // messages + if (count($this->messages) >= 1) { + foreach($this->messages as $msgName => $msgParts) { + $xml .= "\n'; + if(is_array($msgParts)){ + foreach($msgParts as $partName => $partType) { + // print 'serializing '.$partType.', sv: '.$this->XMLSchemaVersion.'
'; + if (strpos($partType, ':')) { + $typePrefix = $this->getPrefixFromNamespace($this->getPrefix($partType)); + } elseif (isset($this->typemap[$this->namespaces['xsd']][$partType])) { + // print 'checking typemap: '.$this->XMLSchemaVersion.'
'; + $typePrefix = 'xsd'; + } else { + foreach($this->typemap as $ns => $types) { + if (isset($types[$partType])) { + $typePrefix = $this->getPrefixFromNamespace($ns); + } + } + if (!isset($typePrefix)) { + die("$partType has no namespace!"); + } + } + $ns = $this->getNamespaceFromPrefix($typePrefix); + $localPart = $this->getLocalPart($partType); + $typeDef = $this->getTypeDef($localPart, $ns); + if ($typeDef['typeClass'] == 'element') { + $elementortype = 'element'; + if (substr($localPart, -1) == '^') { + $localPart = substr($localPart, 0, -1); + } + } else { + $elementortype = 'type'; + } + $xml .= "\n" . ' '; + } + } + $xml .= '
'; + } + } + // bindings & porttypes + if (count($this->bindings) >= 1) { + $binding_xml = ''; + $portType_xml = ''; + foreach($this->bindings as $bindingName => $attrs) { + $binding_xml .= "\n'; + $binding_xml .= "\n" . ' '; + $portType_xml .= "\n'; + foreach($attrs['operations'] as $opName => $opParts) { + $binding_xml .= "\n" . ' '; + $binding_xml .= "\n" . ' '; + if (isset($opParts['input']['encodingStyle']) && $opParts['input']['encodingStyle'] != '') { + $enc_style = ' encodingStyle="' . $opParts['input']['encodingStyle'] . '"'; + } else { + $enc_style = ''; + } + $binding_xml .= "\n" . ' '; + if (isset($opParts['output']['encodingStyle']) && $opParts['output']['encodingStyle'] != '') { + $enc_style = ' encodingStyle="' . $opParts['output']['encodingStyle'] . '"'; + } else { + $enc_style = ''; + } + $binding_xml .= "\n" . ' '; + $binding_xml .= "\n" . ' '; + $portType_xml .= "\n" . ' ' . htmlspecialchars($opParts['documentation']) . ''; + } + $portType_xml .= "\n" . ' '; + $portType_xml .= "\n" . ' '; + $portType_xml .= "\n" . ' '; + } + $portType_xml .= "\n" . ''; + $binding_xml .= "\n" . ''; + } + $xml .= $portType_xml . $binding_xml; + } + // services + $xml .= "\nserviceName . '">'; + if (count($this->ports) >= 1) { + foreach($this->ports as $pName => $attrs) { + $xml .= "\n" . ' '; + $xml .= "\n" . ' '; + $xml .= "\n" . ' '; + } + } + $xml .= "\n" . ''; + return $xml . "\n"; + } + + /** + * determine whether a set of parameters are unwrapped + * when they are expect to be wrapped, Microsoft-style. + * + * @param string $type the type (element name) of the wrapper + * @param array $parameters the parameter values for the SOAP call + * @return boolean whether they parameters are unwrapped (and should be wrapped) + * @access private + */ + function parametersMatchWrapped($type, &$parameters) { + $this->debug("in parametersMatchWrapped type=$type, parameters="); + $this->appendDebug($this->varDump($parameters)); + + // split type into namespace:unqualified-type + if (strpos($type, ':')) { + $uqType = substr($type, strrpos($type, ':') + 1); + $ns = substr($type, 0, strrpos($type, ':')); + $this->debug("in parametersMatchWrapped: got a prefixed type: $uqType, $ns"); + if ($this->getNamespaceFromPrefix($ns)) { + $ns = $this->getNamespaceFromPrefix($ns); + $this->debug("in parametersMatchWrapped: expanded prefixed type: $uqType, $ns"); + } + } else { + // TODO: should the type be compared to types in XSD, and the namespace + // set to XSD if the type matches? + $this->debug("in parametersMatchWrapped: No namespace for type $type"); + $ns = ''; + $uqType = $type; + } + + // get the type information + if (!$typeDef = $this->getTypeDef($uqType, $ns)) { + $this->debug("in parametersMatchWrapped: $type ($uqType) is not a supported type."); + return false; + } + $this->debug("in parametersMatchWrapped: found typeDef="); + $this->appendDebug($this->varDump($typeDef)); + if (substr($uqType, -1) == '^') { + $uqType = substr($uqType, 0, -1); + } + $phpType = $typeDef['phpType']; + $arrayType = (isset($typeDef['arrayType']) ? $typeDef['arrayType'] : ''); + $this->debug("in parametersMatchWrapped: uqType: $uqType, ns: $ns, phptype: $phpType, arrayType: $arrayType"); + + // we expect a complexType or element of complexType + if ($phpType != 'struct') { + $this->debug("in parametersMatchWrapped: not a struct"); + return false; + } + + // see whether the parameter names match the elements + if (isset($typeDef['elements']) && is_array($typeDef['elements'])) { + $elements = 0; + $matches = 0; + foreach ($typeDef['elements'] as $name => $attrs) { + if (isset($parameters[$name])) { + $this->debug("in parametersMatchWrapped: have parameter named $name"); + $matches++; + } else { + $this->debug("in parametersMatchWrapped: do not have parameter named $name"); + } + $elements++; + } + + $this->debug("in parametersMatchWrapped: $matches parameter names match $elements wrapped parameter names"); + if ($matches == 0) { + return false; + } + return true; + } + + // since there are no elements for the type, if the user passed no + // parameters, the parameters match wrapped. + $this->debug("in parametersMatchWrapped: no elements type $ns:$uqType"); + return count($parameters) == 0; + } + + /** + * serialize PHP values according to a WSDL message definition + * contrary to the method name, this is not limited to RPC + * + * TODO + * - multi-ref serialization + * - validate PHP values against type definitions, return errors if invalid + * + * @param string $operation operation name + * @param string $direction (input|output) + * @param mixed $parameters parameter value(s) + * @param string $bindingType (soap|soap12) + * @return mixed parameters serialized as XML or false on error (e.g. operation not found) + * @access public + */ + function serializeRPCParameters($operation, $direction, $parameters, $bindingType = 'soap') { + $this->debug("in serializeRPCParameters: operation=$operation, direction=$direction, XMLSchemaVersion=$this->XMLSchemaVersion, bindingType=$bindingType"); + $this->appendDebug('parameters=' . $this->varDump($parameters)); + + if ($direction != 'input' && $direction != 'output') { + $this->debug('The value of the \$direction argument needs to be either "input" or "output"'); + $this->setError('The value of the \$direction argument needs to be either "input" or "output"'); + return false; + } + if (!$opData = $this->getOperationData($operation, $bindingType)) { + $this->debug('Unable to retrieve WSDL data for operation: ' . $operation . ' bindingType: ' . $bindingType); + $this->setError('Unable to retrieve WSDL data for operation: ' . $operation . ' bindingType: ' . $bindingType); + return false; + } + $this->debug('in serializeRPCParameters: opData:'); + $this->appendDebug($this->varDump($opData)); + + // Get encoding style for output and set to current + $encodingStyle = 'http://schemas.xmlsoap.org/soap/encoding/'; + if(($direction == 'input') && isset($opData['output']['encodingStyle']) && ($opData['output']['encodingStyle'] != $encodingStyle)) { + $encodingStyle = $opData['output']['encodingStyle']; + $enc_style = $encodingStyle; + } + + // set input params + $xml = ''; + if (isset($opData[$direction]['parts']) && sizeof($opData[$direction]['parts']) > 0) { + $parts = &$opData[$direction]['parts']; + $part_count = sizeof($parts); + $style = $opData['style']; + $use = $opData[$direction]['use']; + $this->debug("have $part_count part(s) to serialize using $style/$use"); + if (is_array($parameters)) { + $parametersArrayType = $this->isArraySimpleOrStruct($parameters); + $parameter_count = count($parameters); + $this->debug("have $parameter_count parameter(s) provided as $parametersArrayType to serialize"); + // check for Microsoft-style wrapped parameters + if ($style == 'document' && $use == 'literal' && $part_count == 1 && isset($parts['parameters'])) { + $this->debug('check whether the caller has wrapped the parameters'); + if ($direction == 'output' && $parametersArrayType == 'arraySimple' && $parameter_count == 1) { + // TODO: consider checking here for double-wrapping, when + // service function wraps, then NuSOAP wraps again + $this->debug("change simple array to associative with 'parameters' element"); + $parameters['parameters'] = $parameters[0]; + unset($parameters[0]); + } + if (($parametersArrayType == 'arrayStruct' || $parameter_count == 0) && !isset($parameters['parameters'])) { + $this->debug('check whether caller\'s parameters match the wrapped ones'); + if ($this->parametersMatchWrapped($parts['parameters'], $parameters)) { + $this->debug('wrap the parameters for the caller'); + $parameters = array('parameters' => $parameters); + $parameter_count = 1; + } + } + } + foreach ($parts as $name => $type) { + $this->debug("serializing part $name of type $type"); + // Track encoding style + if (isset($opData[$direction]['encodingStyle']) && $encodingStyle != $opData[$direction]['encodingStyle']) { + $encodingStyle = $opData[$direction]['encodingStyle']; + $enc_style = $encodingStyle; + } else { + $enc_style = false; + } + // NOTE: add error handling here + // if serializeType returns false, then catch global error and fault + if ($parametersArrayType == 'arraySimple') { + $p = array_shift($parameters); + $this->debug('calling serializeType w/indexed param'); + $xml .= $this->serializeType($name, $type, $p, $use, $enc_style); + } elseif (isset($parameters[$name])) { + $this->debug('calling serializeType w/named param'); + $xml .= $this->serializeType($name, $type, $parameters[$name], $use, $enc_style); + } else { + // TODO: only send nillable + $this->debug('calling serializeType w/null param'); + $xml .= $this->serializeType($name, $type, null, $use, $enc_style); + } + } + } else { + $this->debug('no parameters passed.'); + } + } + $this->debug("serializeRPCParameters returning: $xml"); + return $xml; + } + + /** + * serialize a PHP value according to a WSDL message definition + * + * TODO + * - multi-ref serialization + * - validate PHP values against type definitions, return errors if invalid + * + * @param string $operation operation name + * @param string $direction (input|output) + * @param mixed $parameters parameter value(s) + * @return mixed parameters serialized as XML or false on error (e.g. operation not found) + * @access public + * @deprecated + */ + function serializeParameters($operation, $direction, $parameters) + { + $this->debug("in serializeParameters: operation=$operation, direction=$direction, XMLSchemaVersion=$this->XMLSchemaVersion"); + $this->appendDebug('parameters=' . $this->varDump($parameters)); + + if ($direction != 'input' && $direction != 'output') { + $this->debug('The value of the \$direction argument needs to be either "input" or "output"'); + $this->setError('The value of the \$direction argument needs to be either "input" or "output"'); + return false; + } + if (!$opData = $this->getOperationData($operation)) { + $this->debug('Unable to retrieve WSDL data for operation: ' . $operation); + $this->setError('Unable to retrieve WSDL data for operation: ' . $operation); + return false; + } + $this->debug('opData:'); + $this->appendDebug($this->varDump($opData)); + + // Get encoding style for output and set to current + $encodingStyle = 'http://schemas.xmlsoap.org/soap/encoding/'; + if(($direction == 'input') && isset($opData['output']['encodingStyle']) && ($opData['output']['encodingStyle'] != $encodingStyle)) { + $encodingStyle = $opData['output']['encodingStyle']; + $enc_style = $encodingStyle; + } + + // set input params + $xml = ''; + if (isset($opData[$direction]['parts']) && sizeof($opData[$direction]['parts']) > 0) { + + $use = $opData[$direction]['use']; + $this->debug("use=$use"); + $this->debug('got ' . count($opData[$direction]['parts']) . ' part(s)'); + if (is_array($parameters)) { + $parametersArrayType = $this->isArraySimpleOrStruct($parameters); + $this->debug('have ' . $parametersArrayType . ' parameters'); + foreach($opData[$direction]['parts'] as $name => $type) { + $this->debug('serializing part "'.$name.'" of type "'.$type.'"'); + // Track encoding style + if(isset($opData[$direction]['encodingStyle']) && $encodingStyle != $opData[$direction]['encodingStyle']) { + $encodingStyle = $opData[$direction]['encodingStyle']; + $enc_style = $encodingStyle; + } else { + $enc_style = false; + } + // NOTE: add error handling here + // if serializeType returns false, then catch global error and fault + if ($parametersArrayType == 'arraySimple') { + $p = array_shift($parameters); + $this->debug('calling serializeType w/indexed param'); + $xml .= $this->serializeType($name, $type, $p, $use, $enc_style); + } elseif (isset($parameters[$name])) { + $this->debug('calling serializeType w/named param'); + $xml .= $this->serializeType($name, $type, $parameters[$name], $use, $enc_style); + } else { + // TODO: only send nillable + $this->debug('calling serializeType w/null param'); + $xml .= $this->serializeType($name, $type, null, $use, $enc_style); + } + } + } else { + $this->debug('no parameters passed.'); + } + } + $this->debug("serializeParameters returning: $xml"); + return $xml; + } + + /** + * serializes a PHP value according a given type definition + * + * @param string $name name of value (part or element) + * @param string $type XML schema type of value (type or element) + * @param mixed $value a native PHP value (parameter value) + * @param string $use use for part (encoded|literal) + * @param string $encodingStyle SOAP encoding style for the value (if different than the enclosing style) + * @param boolean $unqualified a kludge for what should be XML namespace form handling + * @return string value serialized as an XML string + * @access private + */ + function serializeType($name, $type, $value, $use='encoded', $encodingStyle=false, $unqualified=false) + { + $this->debug("in serializeType: name=$name, type=$type, use=$use, encodingStyle=$encodingStyle, unqualified=" . ($unqualified ? "unqualified" : "qualified")); + $this->appendDebug("value=" . $this->varDump($value)); + if($use == 'encoded' && $encodingStyle) { + $encodingStyle = ' SOAP-ENV:encodingStyle="' . $encodingStyle . '"'; + } + + // if a soapval has been supplied, let its type override the WSDL + if (is_object($value) && get_class($value) == 'soapval') { + if ($value->type_ns) { + $type = $value->type_ns . ':' . $value->type; + $forceType = true; + $this->debug("in serializeType: soapval overrides type to $type"); + } elseif ($value->type) { + $type = $value->type; + $forceType = true; + $this->debug("in serializeType: soapval overrides type to $type"); + } else { + $forceType = false; + $this->debug("in serializeType: soapval does not override type"); + } + $attrs = $value->attributes; + $value = $value->value; + $this->debug("in serializeType: soapval overrides value to $value"); + if ($attrs) { + if (!is_array($value)) { + $value['!'] = $value; + } + foreach ($attrs as $n => $v) { + $value['!' . $n] = $v; + } + $this->debug("in serializeType: soapval provides attributes"); + } + } else { + $forceType = false; + } + + $xml = ''; + if (strpos($type, ':')) { + $uqType = substr($type, strrpos($type, ':') + 1); + $ns = substr($type, 0, strrpos($type, ':')); + $this->debug("in serializeType: got a prefixed type: $uqType, $ns"); + if ($this->getNamespaceFromPrefix($ns)) { + $ns = $this->getNamespaceFromPrefix($ns); + $this->debug("in serializeType: expanded prefixed type: $uqType, $ns"); + } + + if($ns == $this->XMLSchemaVersion || $ns == 'http://schemas.xmlsoap.org/soap/encoding/'){ + $this->debug('in serializeType: type namespace indicates XML Schema or SOAP Encoding type'); + if ($unqualified && $use == 'literal') { + $elementNS = " xmlns=\"\""; + } else { + $elementNS = ''; + } + if (is_null($value)) { + if ($use == 'literal') { + // TODO: depends on minOccurs + $xml = "<$name$elementNS/>"; + } else { + // TODO: depends on nillable, which should be checked before calling this method + $xml = "<$name$elementNS xsi:nil=\"true\" xsi:type=\"" . $this->getPrefixFromNamespace($ns) . ":$uqType\"/>"; + } + $this->debug("in serializeType: returning: $xml"); + return $xml; + } + if ($uqType == 'Array') { + // JBoss/Axis does this sometimes + return $this->serialize_val($value, $name, false, false, false, false, $use); + } + if ($uqType == 'boolean') { + if ((is_string($value) && $value == 'false') || (! $value)) { + $value = 'false'; + } else { + $value = 'true'; + } + } + if ($uqType == 'string' && gettype($value) == 'string') { + $value = $this->expandEntities($value); + } + if (($uqType == 'long' || $uqType == 'unsignedLong') && gettype($value) == 'double') { + $value = sprintf("%.0lf", $value); + } + // it's a scalar + // TODO: what about null/nil values? + // check type isn't a custom type extending xmlschema namespace + if (!$this->getTypeDef($uqType, $ns)) { + if ($use == 'literal') { + if ($forceType) { + $xml = "<$name$elementNS xsi:type=\"" . $this->getPrefixFromNamespace($ns) . ":$uqType\">$value"; + } else { + $xml = "<$name$elementNS>$value"; + } + } else { + $xml = "<$name$elementNS xsi:type=\"" . $this->getPrefixFromNamespace($ns) . ":$uqType\"$encodingStyle>$value"; + } + $this->debug("in serializeType: returning: $xml"); + return $xml; + } + $this->debug('custom type extends XML Schema or SOAP Encoding namespace (yuck)'); + } else if ($ns == 'http://xml.apache.org/xml-soap') { + $this->debug('in serializeType: appears to be Apache SOAP type'); + if ($uqType == 'Map') { + $tt_prefix = $this->getPrefixFromNamespace('http://xml.apache.org/xml-soap'); + if (! $tt_prefix) { + $this->debug('in serializeType: Add namespace for Apache SOAP type'); + $tt_prefix = 'ns' . rand(1000, 9999); + $this->namespaces[$tt_prefix] = 'http://xml.apache.org/xml-soap'; + // force this to be added to usedNamespaces + $tt_prefix = $this->getPrefixFromNamespace('http://xml.apache.org/xml-soap'); + } + $contents = ''; + foreach($value as $k => $v) { + $this->debug("serializing map element: key $k, value $v"); + $contents .= ''; + $contents .= $this->serialize_val($k,'key',false,false,false,false,$use); + $contents .= $this->serialize_val($v,'value',false,false,false,false,$use); + $contents .= ''; + } + if ($use == 'literal') { + if ($forceType) { + $xml = "<$name xsi:type=\"" . $tt_prefix . ":$uqType\">$contents"; + } else { + $xml = "<$name>$contents"; + } + } else { + $xml = "<$name xsi:type=\"" . $tt_prefix . ":$uqType\"$encodingStyle>$contents"; + } + $this->debug("in serializeType: returning: $xml"); + return $xml; + } + $this->debug('in serializeType: Apache SOAP type, but only support Map'); + } + } else { + // TODO: should the type be compared to types in XSD, and the namespace + // set to XSD if the type matches? + $this->debug("in serializeType: No namespace for type $type"); + $ns = ''; + $uqType = $type; + } + if(!$typeDef = $this->getTypeDef($uqType, $ns)){ + $this->setError("$type ($uqType) is not a supported type."); + $this->debug("in serializeType: $type ($uqType) is not a supported type."); + return false; + } else { + $this->debug("in serializeType: found typeDef"); + $this->appendDebug('typeDef=' . $this->varDump($typeDef)); + if (substr($uqType, -1) == '^') { + $uqType = substr($uqType, 0, -1); + } + } + if (!isset($typeDef['phpType'])) { + $this->setError("$type ($uqType) has no phpType."); + $this->debug("in serializeType: $type ($uqType) has no phpType."); + return false; + } + $phpType = $typeDef['phpType']; + $this->debug("in serializeType: uqType: $uqType, ns: $ns, phptype: $phpType, arrayType: " . (isset($typeDef['arrayType']) ? $typeDef['arrayType'] : '') ); + // if php type == struct, map value to the element names + if ($phpType == 'struct') { + if (isset($typeDef['typeClass']) && $typeDef['typeClass'] == 'element') { + $elementName = $uqType; + if (isset($typeDef['form']) && ($typeDef['form'] == 'qualified')) { + $elementNS = " xmlns=\"$ns\""; + } else { + $elementNS = " xmlns=\"\""; + } + } else { + $elementName = $name; + if ($unqualified) { + $elementNS = " xmlns=\"\""; + } else { + $elementNS = ''; + } + } + if (is_null($value)) { + if ($use == 'literal') { + // TODO: depends on minOccurs and nillable + $xml = "<$elementName$elementNS/>"; + } else { + $xml = "<$elementName$elementNS xsi:nil=\"true\" xsi:type=\"" . $this->getPrefixFromNamespace($ns) . ":$uqType\"/>"; + } + $this->debug("in serializeType: returning: $xml"); + return $xml; + } + if (is_object($value)) { + $value = get_object_vars($value); + } + if (is_array($value)) { + $elementAttrs = $this->serializeComplexTypeAttributes($typeDef, $value, $ns, $uqType); + if ($use == 'literal') { + if ($forceType) { + $xml = "<$elementName$elementNS$elementAttrs xsi:type=\"" . $this->getPrefixFromNamespace($ns) . ":$uqType\">"; + } else { + $xml = "<$elementName$elementNS$elementAttrs>"; + } + } else { + $xml = "<$elementName$elementNS$elementAttrs xsi:type=\"" . $this->getPrefixFromNamespace($ns) . ":$uqType\"$encodingStyle>"; + } + + if (isset($typeDef['simpleContent']) && $typeDef['simpleContent'] == 'true') { + if (isset($value['!'])) { + $xml .= $value['!']; + $this->debug("in serializeType: serialized simpleContent for type $type"); + } else { + $this->debug("in serializeType: no simpleContent to serialize for type $type"); + } + } else { + // complexContent + $xml .= $this->serializeComplexTypeElements($typeDef, $value, $ns, $uqType, $use, $encodingStyle); + } + $xml .= ""; + } else { + $this->debug("in serializeType: phpType is struct, but value is not an array"); + $this->setError("phpType is struct, but value is not an array: see debug output for details"); + $xml = ''; + } + } elseif ($phpType == 'array') { + if (isset($typeDef['form']) && ($typeDef['form'] == 'qualified')) { + $elementNS = " xmlns=\"$ns\""; + } else { + if ($unqualified) { + $elementNS = " xmlns=\"\""; + } else { + $elementNS = ''; + } + } + if (is_null($value)) { + if ($use == 'literal') { + // TODO: depends on minOccurs + $xml = "<$name$elementNS/>"; + } else { + $xml = "<$name$elementNS xsi:nil=\"true\" xsi:type=\"" . + $this->getPrefixFromNamespace('http://schemas.xmlsoap.org/soap/encoding/') . + ":Array\" " . + $this->getPrefixFromNamespace('http://schemas.xmlsoap.org/soap/encoding/') . + ':arrayType="' . + $this->getPrefixFromNamespace($this->getPrefix($typeDef['arrayType'])) . + ':' . + $this->getLocalPart($typeDef['arrayType'])."[0]\"/>"; + } + $this->debug("in serializeType: returning: $xml"); + return $xml; + } + if (isset($typeDef['multidimensional'])) { + $nv = array(); + foreach($value as $v) { + $cols = ',' . sizeof($v); + $nv = array_merge($nv, $v); + } + $value = $nv; + } else { + $cols = ''; + } + if (is_array($value) && sizeof($value) >= 1) { + $rows = sizeof($value); + $contents = ''; + foreach($value as $k => $v) { + $this->debug("serializing array element: $k, $v of type: $typeDef[arrayType]"); + //if (strpos($typeDef['arrayType'], ':') ) { + if (!in_array($typeDef['arrayType'],$this->typemap['http://www.w3.org/2001/XMLSchema'])) { + $contents .= $this->serializeType('item', $typeDef['arrayType'], $v, $use); + } else { + $contents .= $this->serialize_val($v, 'item', $typeDef['arrayType'], null, $this->XMLSchemaVersion, false, $use); + } + } + } else { + $rows = 0; + $contents = null; + } + // TODO: for now, an empty value will be serialized as a zero element + // array. Revisit this when coding the handling of null/nil values. + if ($use == 'literal') { + $xml = "<$name$elementNS>" + .$contents + .""; + } else { + $xml = "<$name$elementNS xsi:type=\"".$this->getPrefixFromNamespace('http://schemas.xmlsoap.org/soap/encoding/').':Array" '. + $this->getPrefixFromNamespace('http://schemas.xmlsoap.org/soap/encoding/') + .':arrayType="' + .$this->getPrefixFromNamespace($this->getPrefix($typeDef['arrayType'])) + .":".$this->getLocalPart($typeDef['arrayType'])."[$rows$cols]\">" + .$contents + .""; + } + } elseif ($phpType == 'scalar') { + if (isset($typeDef['form']) && ($typeDef['form'] == 'qualified')) { + $elementNS = " xmlns=\"$ns\""; + } else { + if ($unqualified) { + $elementNS = " xmlns=\"\""; + } else { + $elementNS = ''; + } + } + if ($use == 'literal') { + if ($forceType) { + $xml = "<$name$elementNS xsi:type=\"" . $this->getPrefixFromNamespace($ns) . ":$uqType\">$value"; + } else { + $xml = "<$name$elementNS>$value"; + } + } else { + $xml = "<$name$elementNS xsi:type=\"" . $this->getPrefixFromNamespace($ns) . ":$uqType\"$encodingStyle>$value"; + } + } + $this->debug("in serializeType: returning: $xml"); + return $xml; + } + + /** + * serializes the attributes for a complexType + * + * @param array $typeDef our internal representation of an XML schema type (or element) + * @param mixed $value a native PHP value (parameter value) + * @param string $ns the namespace of the type + * @param string $uqType the local part of the type + * @return string value serialized as an XML string + * @access private + */ + function serializeComplexTypeAttributes($typeDef, $value, $ns, $uqType) { + $this->debug("serializeComplexTypeAttributes for XML Schema type $ns:$uqType"); + $xml = ''; + if (isset($typeDef['extensionBase'])) { + $nsx = $this->getPrefix($typeDef['extensionBase']); + $uqTypex = $this->getLocalPart($typeDef['extensionBase']); + if ($this->getNamespaceFromPrefix($nsx)) { + $nsx = $this->getNamespaceFromPrefix($nsx); + } + if ($typeDefx = $this->getTypeDef($uqTypex, $nsx)) { + $this->debug("serialize attributes for extension base $nsx:$uqTypex"); + $xml .= $this->serializeComplexTypeAttributes($typeDefx, $value, $nsx, $uqTypex); + } else { + $this->debug("extension base $nsx:$uqTypex is not a supported type"); + } + } + if (isset($typeDef['attrs']) && is_array($typeDef['attrs'])) { + $this->debug("serialize attributes for XML Schema type $ns:$uqType"); + if (is_array($value)) { + $xvalue = $value; + } elseif (is_object($value)) { + $xvalue = get_object_vars($value); + } else { + $this->debug("value is neither an array nor an object for XML Schema type $ns:$uqType"); + $xvalue = array(); + } + foreach ($typeDef['attrs'] as $aName => $attrs) { + if (isset($xvalue['!' . $aName])) { + $xname = '!' . $aName; + $this->debug("value provided for attribute $aName with key $xname"); + } elseif (isset($xvalue[$aName])) { + $xname = $aName; + $this->debug("value provided for attribute $aName with key $xname"); + } elseif (isset($attrs['default'])) { + $xname = '!' . $aName; + $xvalue[$xname] = $attrs['default']; + $this->debug('use default value of ' . $xvalue[$aName] . ' for attribute ' . $aName); + } else { + $xname = ''; + $this->debug("no value provided for attribute $aName"); + } + if ($xname) { + $xml .= " $aName=\"" . $this->expandEntities($xvalue[$xname]) . "\""; + } + } + } else { + $this->debug("no attributes to serialize for XML Schema type $ns:$uqType"); + } + return $xml; + } + + /** + * serializes the elements for a complexType + * + * @param array $typeDef our internal representation of an XML schema type (or element) + * @param mixed $value a native PHP value (parameter value) + * @param string $ns the namespace of the type + * @param string $uqType the local part of the type + * @param string $use use for part (encoded|literal) + * @param string $encodingStyle SOAP encoding style for the value (if different than the enclosing style) + * @return string value serialized as an XML string + * @access private + */ + function serializeComplexTypeElements($typeDef, $value, $ns, $uqType, $use='encoded', $encodingStyle=false) { + $this->debug("in serializeComplexTypeElements for XML Schema type $ns:$uqType"); + $xml = ''; + if (isset($typeDef['extensionBase'])) { + $nsx = $this->getPrefix($typeDef['extensionBase']); + $uqTypex = $this->getLocalPart($typeDef['extensionBase']); + if ($this->getNamespaceFromPrefix($nsx)) { + $nsx = $this->getNamespaceFromPrefix($nsx); + } + if ($typeDefx = $this->getTypeDef($uqTypex, $nsx)) { + $this->debug("serialize elements for extension base $nsx:$uqTypex"); + $xml .= $this->serializeComplexTypeElements($typeDefx, $value, $nsx, $uqTypex, $use, $encodingStyle); + } else { + $this->debug("extension base $nsx:$uqTypex is not a supported type"); + } + } + if (isset($typeDef['elements']) && is_array($typeDef['elements'])) { + $this->debug("in serializeComplexTypeElements, serialize elements for XML Schema type $ns:$uqType"); + if (is_array($value)) { + $xvalue = $value; + } elseif (is_object($value)) { + $xvalue = get_object_vars($value); + } else { + $this->debug("value is neither an array nor an object for XML Schema type $ns:$uqType"); + $xvalue = array(); + } + // toggle whether all elements are present - ideally should validate against schema + if (count($typeDef['elements']) != count($xvalue)){ + $optionals = true; + } + foreach ($typeDef['elements'] as $eName => $attrs) { + if (!isset($xvalue[$eName])) { + if (isset($attrs['default'])) { + $xvalue[$eName] = $attrs['default']; + $this->debug('use default value of ' . $xvalue[$eName] . ' for element ' . $eName); + } + } + // if user took advantage of a minOccurs=0, then only serialize named parameters + if (isset($optionals) + && (!isset($xvalue[$eName])) + && ( (!isset($attrs['nillable'])) || $attrs['nillable'] != 'true') + ){ + if (isset($attrs['minOccurs']) && $attrs['minOccurs'] <> '0') { + $this->debug("apparent error: no value provided for element $eName with minOccurs=" . $attrs['minOccurs']); + } + // do nothing + $this->debug("no value provided for complexType element $eName and element is not nillable, so serialize nothing"); + } else { + // get value + if (isset($xvalue[$eName])) { + $v = $xvalue[$eName]; + } else { + $v = null; + } + if (isset($attrs['form'])) { + $unqualified = ($attrs['form'] == 'unqualified'); + } else { + $unqualified = false; + } + if (isset($attrs['maxOccurs']) && ($attrs['maxOccurs'] == 'unbounded' || $attrs['maxOccurs'] > 1) && isset($v) && is_array($v) && $this->isArraySimpleOrStruct($v) == 'arraySimple') { + $vv = $v; + foreach ($vv as $k => $v) { + if (isset($attrs['type']) || isset($attrs['ref'])) { + // serialize schema-defined type + $xml .= $this->serializeType($eName, isset($attrs['type']) ? $attrs['type'] : $attrs['ref'], $v, $use, $encodingStyle, $unqualified); + } else { + // serialize generic type (can this ever really happen?) + $this->debug("calling serialize_val() for $v, $eName, false, false, false, false, $use"); + $xml .= $this->serialize_val($v, $eName, false, false, false, false, $use); + } + } + } else { + if (is_null($v) && isset($attrs['minOccurs']) && $attrs['minOccurs'] == '0') { + // do nothing + } elseif (is_null($v) && isset($attrs['nillable']) && $attrs['nillable'] == 'true') { + // TODO: serialize a nil correctly, but for now serialize schema-defined type + $xml .= $this->serializeType($eName, isset($attrs['type']) ? $attrs['type'] : $attrs['ref'], $v, $use, $encodingStyle, $unqualified); + } elseif (isset($attrs['type']) || isset($attrs['ref'])) { + // serialize schema-defined type + $xml .= $this->serializeType($eName, isset($attrs['type']) ? $attrs['type'] : $attrs['ref'], $v, $use, $encodingStyle, $unqualified); + } else { + // serialize generic type (can this ever really happen?) + $this->debug("calling serialize_val() for $v, $eName, false, false, false, false, $use"); + $xml .= $this->serialize_val($v, $eName, false, false, false, false, $use); + } + } + } + } + } else { + $this->debug("no elements to serialize for XML Schema type $ns:$uqType"); + } + return $xml; + } + + /** + * adds an XML Schema complex type to the WSDL types + * + * @param string $name + * @param string $typeClass (complexType|simpleType|attribute) + * @param string $phpType currently supported are array and struct (php assoc array) + * @param string $compositor (all|sequence|choice) + * @param string $restrictionBase namespace:name (http://schemas.xmlsoap.org/soap/encoding/:Array) + * @param array $elements e.g. array ( name => array(name=>'',type=>'') ) + * @param array $attrs e.g. array(array('ref'=>'SOAP-ENC:arrayType','wsdl:arrayType'=>'xsd:string[]')) + * @param string $arrayType as namespace:name (xsd:string) + * @see nusoap_xmlschema + * @access public + */ + function addComplexType($name,$typeClass='complexType',$phpType='array',$compositor='',$restrictionBase='',$elements=array(),$attrs=array(),$arrayType='') { + if (count($elements) > 0) { + $eElements = array(); + foreach($elements as $n => $e){ + // expand each element + $ee = array(); + foreach ($e as $k => $v) { + $k = strpos($k,':') ? $this->expandQname($k) : $k; + $v = strpos($v,':') ? $this->expandQname($v) : $v; + $ee[$k] = $v; + } + $eElements[$n] = $ee; + } + $elements = $eElements; + } + + if (count($attrs) > 0) { + foreach($attrs as $n => $a){ + // expand each attribute + foreach ($a as $k => $v) { + $k = strpos($k,':') ? $this->expandQname($k) : $k; + $v = strpos($v,':') ? $this->expandQname($v) : $v; + $aa[$k] = $v; + } + $eAttrs[$n] = $aa; + } + $attrs = $eAttrs; + } + + $restrictionBase = strpos($restrictionBase,':') ? $this->expandQname($restrictionBase) : $restrictionBase; + $arrayType = strpos($arrayType,':') ? $this->expandQname($arrayType) : $arrayType; + + $typens = isset($this->namespaces['types']) ? $this->namespaces['types'] : $this->namespaces['tns']; + $this->schemas[$typens][0]->addComplexType($name,$typeClass,$phpType,$compositor,$restrictionBase,$elements,$attrs,$arrayType); + } + + /** + * adds an XML Schema simple type to the WSDL types + * + * @param string $name + * @param string $restrictionBase namespace:name (http://schemas.xmlsoap.org/soap/encoding/:Array) + * @param string $typeClass (should always be simpleType) + * @param string $phpType (should always be scalar) + * @param array $enumeration array of values + * @see nusoap_xmlschema + * @access public + */ + function addSimpleType($name, $restrictionBase='', $typeClass='simpleType', $phpType='scalar', $enumeration=array()) { + $restrictionBase = strpos($restrictionBase,':') ? $this->expandQname($restrictionBase) : $restrictionBase; + + $typens = isset($this->namespaces['types']) ? $this->namespaces['types'] : $this->namespaces['tns']; + $this->schemas[$typens][0]->addSimpleType($name, $restrictionBase, $typeClass, $phpType, $enumeration); + } + + /** + * adds an element to the WSDL types + * + * @param array $attrs attributes that must include name and type + * @see nusoap_xmlschema + * @access public + */ + function addElement($attrs) { + $typens = isset($this->namespaces['types']) ? $this->namespaces['types'] : $this->namespaces['tns']; + $this->schemas[$typens][0]->addElement($attrs); + } + + /** + * register an operation with the server + * + * @param string $name operation (method) name + * @param array $in assoc array of input values: key = param name, value = param type + * @param array $out assoc array of output values: key = param name, value = param type + * @param string $namespace optional The namespace for the operation + * @param string $soapaction optional The soapaction for the operation + * @param string $style (rpc|document) optional The style for the operation Note: when 'document' is specified, parameter and return wrappers are created for you automatically + * @param string $use (encoded|literal) optional The use for the parameters (cannot mix right now) + * @param string $documentation optional The description to include in the WSDL + * @param string $encodingStyle optional (usually 'http://schemas.xmlsoap.org/soap/encoding/' for encoded) + * @access public + */ + function addOperation($name, $in = false, $out = false, $namespace = false, $soapaction = false, $style = 'rpc', $use = 'encoded', $documentation = '', $encodingStyle = ''){ + if ($use == 'encoded' && $encodingStyle == '') { + $encodingStyle = 'http://schemas.xmlsoap.org/soap/encoding/'; + } + + if ($style == 'document') { + $elements = array(); + foreach ($in as $n => $t) { + $elements[$n] = array('name' => $n, 'type' => $t, 'form' => 'unqualified'); + } + $this->addComplexType($name . 'RequestType', 'complexType', 'struct', 'all', '', $elements); + $this->addElement(array('name' => $name, 'type' => $name . 'RequestType')); + $in = array('parameters' => 'tns:' . $name . '^'); + + $elements = array(); + foreach ($out as $n => $t) { + $elements[$n] = array('name' => $n, 'type' => $t, 'form' => 'unqualified'); + } + $this->addComplexType($name . 'ResponseType', 'complexType', 'struct', 'all', '', $elements); + $this->addElement(array('name' => $name . 'Response', 'type' => $name . 'ResponseType', 'form' => 'qualified')); + $out = array('parameters' => 'tns:' . $name . 'Response' . '^'); + } + + // get binding + $this->bindings[ $this->serviceName . 'Binding' ]['operations'][$name] = + array( + 'name' => $name, + 'binding' => $this->serviceName . 'Binding', + 'endpoint' => $this->endpoint, + 'soapAction' => $soapaction, + 'style' => $style, + 'input' => array( + 'use' => $use, + 'namespace' => $namespace, + 'encodingStyle' => $encodingStyle, + 'message' => $name . 'Request', + 'parts' => $in), + 'output' => array( + 'use' => $use, + 'namespace' => $namespace, + 'encodingStyle' => $encodingStyle, + 'message' => $name . 'Response', + 'parts' => $out), + 'namespace' => $namespace, + 'transport' => 'http://schemas.xmlsoap.org/soap/http', + 'documentation' => $documentation); + // add portTypes + // add messages + if($in) + { + foreach($in as $pName => $pType) + { + if(strpos($pType,':')) { + $pType = $this->getNamespaceFromPrefix($this->getPrefix($pType)).":".$this->getLocalPart($pType); + } + $this->messages[$name.'Request'][$pName] = $pType; + } + } else { + $this->messages[$name.'Request']= '0'; + } + if($out) + { + foreach($out as $pName => $pType) + { + if(strpos($pType,':')) { + $pType = $this->getNamespaceFromPrefix($this->getPrefix($pType)).":".$this->getLocalPart($pType); + } + $this->messages[$name.'Response'][$pName] = $pType; + } + } else { + $this->messages[$name.'Response']= '0'; + } + return true; + } +} + +?> \ No newline at end of file diff --git a/classes/lib/class.wsdlcache.php b/classes/lib/class.wsdlcache.php new file mode 100644 index 0000000..9824bb3 --- /dev/null +++ b/classes/lib/class.wsdlcache.php @@ -0,0 +1,209 @@ + +* @author Ingo Fischer +* @version $Id: class.wsdlcache.php,v 1.7 2007/04/17 16:34:03 snichol Exp $ +* @access public +*/ +class nusoap_wsdlcache { + /** + * @var resource + * @access private + */ + var $fplock; + /** + * @var integer + * @access private + */ + var $cache_lifetime; + /** + * @var string + * @access private + */ + var $cache_dir; + /** + * @var string + * @access public + */ + var $debug_str = ''; + + /** + * constructor + * + * @param string $cache_dir directory for cache-files + * @param integer $cache_lifetime lifetime for caching-files in seconds or 0 for unlimited + * @access public + */ + function nusoap_wsdlcache($cache_dir='.', $cache_lifetime=0) { + $this->fplock = array(); + $this->cache_dir = $cache_dir != '' ? $cache_dir : '.'; + $this->cache_lifetime = $cache_lifetime; + } + + /** + * creates the filename used to cache a wsdl instance + * + * @param string $wsdl The URL of the wsdl instance + * @return string The filename used to cache the instance + * @access private + */ + function createFilename($wsdl) { + return $this->cache_dir.'/wsdlcache-' . md5($wsdl); + } + + /** + * adds debug data to the class level debug string + * + * @param string $string debug data + * @access private + */ + function debug($string){ + $this->debug_str .= get_class($this).": $string\n"; + } + + /** + * gets a wsdl instance from the cache + * + * @param string $wsdl The URL of the wsdl instance + * @return object wsdl The cached wsdl instance, null if the instance is not in the cache + * @access public + */ + function get($wsdl) { + $filename = $this->createFilename($wsdl); + if ($this->obtainMutex($filename, "r")) { + // check for expired WSDL that must be removed from the cache + if ($this->cache_lifetime > 0) { + if (file_exists($filename) && (time() - filemtime($filename) > $this->cache_lifetime)) { + unlink($filename); + $this->debug("Expired $wsdl ($filename) from cache"); + $this->releaseMutex($filename); + return null; + } + } + // see what there is to return + if (!file_exists($filename)) { + $this->debug("$wsdl ($filename) not in cache (1)"); + $this->releaseMutex($filename); + return null; + } + $fp = @fopen($filename, "r"); + if ($fp) { + $s = implode("", @file($filename)); + fclose($fp); + $this->debug("Got $wsdl ($filename) from cache"); + } else { + $s = null; + $this->debug("$wsdl ($filename) not in cache (2)"); + } + $this->releaseMutex($filename); + return (!is_null($s)) ? unserialize($s) : null; + } else { + $this->debug("Unable to obtain mutex for $filename in get"); + } + return null; + } + + /** + * obtains the local mutex + * + * @param string $filename The Filename of the Cache to lock + * @param string $mode The open-mode ("r" or "w") or the file - affects lock-mode + * @return boolean Lock successfully obtained ?! + * @access private + */ + function obtainMutex($filename, $mode) { + if (isset($this->fplock[md5($filename)])) { + $this->debug("Lock for $filename already exists"); + return false; + } + $this->fplock[md5($filename)] = fopen($filename.".lock", "w"); + if ($mode == "r") { + return flock($this->fplock[md5($filename)], LOCK_SH); + } else { + return flock($this->fplock[md5($filename)], LOCK_EX); + } + } + + /** + * adds a wsdl instance to the cache + * + * @param object wsdl $wsdl_instance The wsdl instance to add + * @return boolean WSDL successfully cached + * @access public + */ + function put($wsdl_instance) { + $filename = $this->createFilename($wsdl_instance->wsdl); + $s = serialize($wsdl_instance); + if ($this->obtainMutex($filename, "w")) { + $fp = fopen($filename, "w"); + if (! $fp) { + $this->debug("Cannot write $wsdl_instance->wsdl ($filename) in cache"); + $this->releaseMutex($filename); + return false; + } + fputs($fp, $s); + fclose($fp); + $this->debug("Put $wsdl_instance->wsdl ($filename) in cache"); + $this->releaseMutex($filename); + return true; + } else { + $this->debug("Unable to obtain mutex for $filename in put"); + } + return false; + } + + /** + * releases the local mutex + * + * @param string $filename The Filename of the Cache to lock + * @return boolean Lock successfully released + * @access private + */ + function releaseMutex($filename) { + $ret = flock($this->fplock[md5($filename)], LOCK_UN); + fclose($this->fplock[md5($filename)]); + unset($this->fplock[md5($filename)]); + if (! $ret) { + $this->debug("Not able to release lock for $filename"); + } + return $ret; + } + + /** + * removes a wsdl instance from the cache + * + * @param string $wsdl The URL of the wsdl instance + * @return boolean Whether there was an instance to remove + * @access public + */ + function remove($wsdl) { + $filename = $this->createFilename($wsdl); + if (!file_exists($filename)) { + $this->debug("$wsdl ($filename) not in cache to be removed"); + return false; + } + // ignore errors obtaining mutex + $this->obtainMutex($filename, "w"); + $ret = unlink($filename); + $this->debug("Removed ($ret) $wsdl ($filename) from cache"); + $this->releaseMutex($filename); + return $ret; + } +} + +/** + * For backward compatibility + */ +class wsdlcache extends nusoap_wsdlcache { +} +?> diff --git a/classes/lib/class.xmlschema.php b/classes/lib/class.xmlschema.php new file mode 100644 index 0000000..02866bf --- /dev/null +++ b/classes/lib/class.xmlschema.php @@ -0,0 +1,973 @@ + +* @author Scott Nichol +* @version $Id: class.xmlschema.php,v 1.53 2010/04/26 20:15:08 snichol Exp $ +* @access public +*/ +class nusoap_xmlschema extends nusoap_base { + + // files + var $schema = ''; + var $xml = ''; + // namespaces + var $enclosingNamespaces; + // schema info + var $schemaInfo = array(); + var $schemaTargetNamespace = ''; + // types, elements, attributes defined by the schema + var $attributes = array(); + var $complexTypes = array(); + var $complexTypeStack = array(); + var $currentComplexType = null; + var $elements = array(); + var $elementStack = array(); + var $currentElement = null; + var $simpleTypes = array(); + var $simpleTypeStack = array(); + var $currentSimpleType = null; + // imports + var $imports = array(); + // parser vars + var $parser; + var $position = 0; + var $depth = 0; + var $depth_array = array(); + var $message = array(); + var $defaultNamespace = array(); + + /** + * constructor + * + * @param string $schema schema document URI + * @param string $xml xml document URI + * @param string $namespaces namespaces defined in enclosing XML + * @access public + */ + function nusoap_xmlschema($schema='',$xml='',$namespaces=array()){ + parent::nusoap_base(); + $this->debug('nusoap_xmlschema class instantiated, inside constructor'); + // files + $this->schema = $schema; + $this->xml = $xml; + + // namespaces + $this->enclosingNamespaces = $namespaces; + $this->namespaces = array_merge($this->namespaces, $namespaces); + + // parse schema file + if($schema != ''){ + $this->debug('initial schema file: '.$schema); + $this->parseFile($schema, 'schema'); + } + + // parse xml file + if($xml != ''){ + $this->debug('initial xml file: '.$xml); + $this->parseFile($xml, 'xml'); + } + + } + + /** + * parse an XML file + * + * @param string $xml path/URL to XML file + * @param string $type (schema | xml) + * @return boolean + * @access public + */ + function parseFile($xml,$type){ + // parse xml file + if($xml != ""){ + $xmlStr = @join("",@file($xml)); + if($xmlStr == ""){ + $msg = 'Error reading XML from '.$xml; + $this->setError($msg); + $this->debug($msg); + return false; + } else { + $this->debug("parsing $xml"); + $this->parseString($xmlStr,$type); + $this->debug("done parsing $xml"); + return true; + } + } + return false; + } + + /** + * parse an XML string + * + * @param string $xml path or URL + * @param string $type (schema|xml) + * @access private + */ + function parseString($xml,$type){ + // parse xml string + if($xml != ""){ + + // Create an XML parser. + $this->parser = xml_parser_create(); + // Set the options for parsing the XML data. + xml_parser_set_option($this->parser, XML_OPTION_CASE_FOLDING, 0); + + // Set the object for the parser. + xml_set_object($this->parser, $this); + + // Set the element handlers for the parser. + if($type == "schema"){ + xml_set_element_handler($this->parser, 'schemaStartElement','schemaEndElement'); + xml_set_character_data_handler($this->parser,'schemaCharacterData'); + } elseif($type == "xml"){ + xml_set_element_handler($this->parser, 'xmlStartElement','xmlEndElement'); + xml_set_character_data_handler($this->parser,'xmlCharacterData'); + } + + // Parse the XML file. + if(!xml_parse($this->parser,$xml,true)){ + // Display an error message. + $errstr = sprintf('XML error parsing XML schema on line %d: %s', + xml_get_current_line_number($this->parser), + xml_error_string(xml_get_error_code($this->parser)) + ); + $this->debug($errstr); + $this->debug("XML payload:\n" . $xml); + $this->setError($errstr); + } + + xml_parser_free($this->parser); + } else{ + $this->debug('no xml passed to parseString()!!'); + $this->setError('no xml passed to parseString()!!'); + } + } + + /** + * gets a type name for an unnamed type + * + * @param string Element name + * @return string A type name for an unnamed type + * @access private + */ + function CreateTypeName($ename) { + $scope = ''; + for ($i = 0; $i < count($this->complexTypeStack); $i++) { + $scope .= $this->complexTypeStack[$i] . '_'; + } + return $scope . $ename . '_ContainedType'; + } + + /** + * start-element handler + * + * @param string $parser XML parser object + * @param string $name element name + * @param string $attrs associative array of attributes + * @access private + */ + function schemaStartElement($parser, $name, $attrs) { + + // position in the total number of elements, starting from 0 + $pos = $this->position++; + $depth = $this->depth++; + // set self as current value for this depth + $this->depth_array[$depth] = $pos; + $this->message[$pos] = array('cdata' => ''); + if ($depth > 0) { + $this->defaultNamespace[$pos] = $this->defaultNamespace[$this->depth_array[$depth - 1]]; + } else { + $this->defaultNamespace[$pos] = false; + } + + // get element prefix + if($prefix = $this->getPrefix($name)){ + // get unqualified name + $name = $this->getLocalPart($name); + } else { + $prefix = ''; + } + + // loop thru attributes, expanding, and registering namespace declarations + if(count($attrs) > 0){ + foreach($attrs as $k => $v){ + // if ns declarations, add to class level array of valid namespaces + if(preg_match('/^xmlns/',$k)){ + //$this->xdebug("$k: $v"); + //$this->xdebug('ns_prefix: '.$this->getPrefix($k)); + if($ns_prefix = substr(strrchr($k,':'),1)){ + //$this->xdebug("Add namespace[$ns_prefix] = $v"); + $this->namespaces[$ns_prefix] = $v; + } else { + $this->defaultNamespace[$pos] = $v; + if (! $this->getPrefixFromNamespace($v)) { + $this->namespaces['ns'.(count($this->namespaces)+1)] = $v; + } + } + if($v == 'http://www.w3.org/2001/XMLSchema' || $v == 'http://www.w3.org/1999/XMLSchema' || $v == 'http://www.w3.org/2000/10/XMLSchema'){ + $this->XMLSchemaVersion = $v; + $this->namespaces['xsi'] = $v.'-instance'; + } + } + } + foreach($attrs as $k => $v){ + // expand each attribute + $k = strpos($k,':') ? $this->expandQname($k) : $k; + $v = strpos($v,':') ? $this->expandQname($v) : $v; + $eAttrs[$k] = $v; + } + $attrs = $eAttrs; + } else { + $attrs = array(); + } + // find status, register data + switch($name){ + case 'all': // (optional) compositor content for a complexType + case 'choice': + case 'group': + case 'sequence': + //$this->xdebug("compositor $name for currentComplexType: $this->currentComplexType and currentElement: $this->currentElement"); + $this->complexTypes[$this->currentComplexType]['compositor'] = $name; + //if($name == 'all' || $name == 'sequence'){ + // $this->complexTypes[$this->currentComplexType]['phpType'] = 'struct'; + //} + break; + case 'attribute': // complexType attribute + //$this->xdebug("parsing attribute $attrs[name] $attrs[ref] of value: ".$attrs['http://schemas.xmlsoap.org/wsdl/:arrayType']); + $this->xdebug("parsing attribute:"); + $this->appendDebug($this->varDump($attrs)); + if (!isset($attrs['form'])) { + // TODO: handle globals + $attrs['form'] = $this->schemaInfo['attributeFormDefault']; + } + if (isset($attrs['http://schemas.xmlsoap.org/wsdl/:arrayType'])) { + $v = $attrs['http://schemas.xmlsoap.org/wsdl/:arrayType']; + if (!strpos($v, ':')) { + // no namespace in arrayType attribute value... + if ($this->defaultNamespace[$pos]) { + // ...so use the default + $attrs['http://schemas.xmlsoap.org/wsdl/:arrayType'] = $this->defaultNamespace[$pos] . ':' . $attrs['http://schemas.xmlsoap.org/wsdl/:arrayType']; + } + } + } + if(isset($attrs['name'])){ + $this->attributes[$attrs['name']] = $attrs; + $aname = $attrs['name']; + } elseif(isset($attrs['ref']) && $attrs['ref'] == 'http://schemas.xmlsoap.org/soap/encoding/:arrayType'){ + if (isset($attrs['http://schemas.xmlsoap.org/wsdl/:arrayType'])) { + $aname = $attrs['http://schemas.xmlsoap.org/wsdl/:arrayType']; + } else { + $aname = ''; + } + } elseif(isset($attrs['ref'])){ + $aname = $attrs['ref']; + $this->attributes[$attrs['ref']] = $attrs; + } + + if($this->currentComplexType){ // This should *always* be + $this->complexTypes[$this->currentComplexType]['attrs'][$aname] = $attrs; + } + // arrayType attribute + if(isset($attrs['http://schemas.xmlsoap.org/wsdl/:arrayType']) || $this->getLocalPart($aname) == 'arrayType'){ + $this->complexTypes[$this->currentComplexType]['phpType'] = 'array'; + $prefix = $this->getPrefix($aname); + if(isset($attrs['http://schemas.xmlsoap.org/wsdl/:arrayType'])){ + $v = $attrs['http://schemas.xmlsoap.org/wsdl/:arrayType']; + } else { + $v = ''; + } + if(strpos($v,'[,]')){ + $this->complexTypes[$this->currentComplexType]['multidimensional'] = true; + } + $v = substr($v,0,strpos($v,'[')); // clip the [] + if(!strpos($v,':') && isset($this->typemap[$this->XMLSchemaVersion][$v])){ + $v = $this->XMLSchemaVersion.':'.$v; + } + $this->complexTypes[$this->currentComplexType]['arrayType'] = $v; + } + break; + case 'complexContent': // (optional) content for a complexType + $this->xdebug("do nothing for element $name"); + break; + case 'complexType': + array_push($this->complexTypeStack, $this->currentComplexType); + if(isset($attrs['name'])){ + // TODO: what is the scope of named complexTypes that appear + // nested within other c complexTypes? + $this->xdebug('processing named complexType '.$attrs['name']); + //$this->currentElement = false; + $this->currentComplexType = $attrs['name']; + $this->complexTypes[$this->currentComplexType] = $attrs; + $this->complexTypes[$this->currentComplexType]['typeClass'] = 'complexType'; + // This is for constructs like + // + // + // + // + // + if(isset($attrs['base']) && preg_match('/:Array$/',$attrs['base'])){ + $this->xdebug('complexType is unusual array'); + $this->complexTypes[$this->currentComplexType]['phpType'] = 'array'; + } else { + $this->complexTypes[$this->currentComplexType]['phpType'] = 'struct'; + } + } else { + $name = $this->CreateTypeName($this->currentElement); + $this->xdebug('processing unnamed complexType for element ' . $this->currentElement . ' named ' . $name); + $this->currentComplexType = $name; + //$this->currentElement = false; + $this->complexTypes[$this->currentComplexType] = $attrs; + $this->complexTypes[$this->currentComplexType]['typeClass'] = 'complexType'; + // This is for constructs like + // + // + // + // + // + if(isset($attrs['base']) && preg_match('/:Array$/',$attrs['base'])){ + $this->xdebug('complexType is unusual array'); + $this->complexTypes[$this->currentComplexType]['phpType'] = 'array'; + } else { + $this->complexTypes[$this->currentComplexType]['phpType'] = 'struct'; + } + } + $this->complexTypes[$this->currentComplexType]['simpleContent'] = 'false'; + break; + case 'element': + array_push($this->elementStack, $this->currentElement); + if (!isset($attrs['form'])) { + if ($this->currentComplexType) { + $attrs['form'] = $this->schemaInfo['elementFormDefault']; + } else { + // global + $attrs['form'] = 'qualified'; + } + } + if(isset($attrs['type'])){ + $this->xdebug("processing typed element ".$attrs['name']." of type ".$attrs['type']); + if (! $this->getPrefix($attrs['type'])) { + if ($this->defaultNamespace[$pos]) { + $attrs['type'] = $this->defaultNamespace[$pos] . ':' . $attrs['type']; + $this->xdebug('used default namespace to make type ' . $attrs['type']); + } + } + // This is for constructs like + // + // + // + // + // + if ($this->currentComplexType && $this->complexTypes[$this->currentComplexType]['phpType'] == 'array') { + $this->xdebug('arrayType for unusual array is ' . $attrs['type']); + $this->complexTypes[$this->currentComplexType]['arrayType'] = $attrs['type']; + } + $this->currentElement = $attrs['name']; + $ename = $attrs['name']; + } elseif(isset($attrs['ref'])){ + $this->xdebug("processing element as ref to ".$attrs['ref']); + $this->currentElement = "ref to ".$attrs['ref']; + $ename = $this->getLocalPart($attrs['ref']); + } else { + $type = $this->CreateTypeName($this->currentComplexType . '_' . $attrs['name']); + $this->xdebug("processing untyped element " . $attrs['name'] . ' type ' . $type); + $this->currentElement = $attrs['name']; + $attrs['type'] = $this->schemaTargetNamespace . ':' . $type; + $ename = $attrs['name']; + } + if (isset($ename) && $this->currentComplexType) { + $this->xdebug("add element $ename to complexType $this->currentComplexType"); + $this->complexTypes[$this->currentComplexType]['elements'][$ename] = $attrs; + } elseif (!isset($attrs['ref'])) { + $this->xdebug("add element $ename to elements array"); + $this->elements[ $attrs['name'] ] = $attrs; + $this->elements[ $attrs['name'] ]['typeClass'] = 'element'; + } + break; + case 'enumeration': // restriction value list member + $this->xdebug('enumeration ' . $attrs['value']); + if ($this->currentSimpleType) { + $this->simpleTypes[$this->currentSimpleType]['enumeration'][] = $attrs['value']; + } elseif ($this->currentComplexType) { + $this->complexTypes[$this->currentComplexType]['enumeration'][] = $attrs['value']; + } + break; + case 'extension': // simpleContent or complexContent type extension + $this->xdebug('extension ' . $attrs['base']); + if ($this->currentComplexType) { + $ns = $this->getPrefix($attrs['base']); + if ($ns == '') { + $this->complexTypes[$this->currentComplexType]['extensionBase'] = $this->schemaTargetNamespace . ':' . $attrs['base']; + } else { + $this->complexTypes[$this->currentComplexType]['extensionBase'] = $attrs['base']; + } + } else { + $this->xdebug('no current complexType to set extensionBase'); + } + break; + case 'import': + if (isset($attrs['schemaLocation'])) { + $this->xdebug('import namespace ' . $attrs['namespace'] . ' from ' . $attrs['schemaLocation']); + $this->imports[$attrs['namespace']][] = array('location' => $attrs['schemaLocation'], 'loaded' => false); + } else { + $this->xdebug('import namespace ' . $attrs['namespace']); + $this->imports[$attrs['namespace']][] = array('location' => '', 'loaded' => true); + if (! $this->getPrefixFromNamespace($attrs['namespace'])) { + $this->namespaces['ns'.(count($this->namespaces)+1)] = $attrs['namespace']; + } + } + break; + case 'include': + if (isset($attrs['schemaLocation'])) { + $this->xdebug('include into namespace ' . $this->schemaTargetNamespace . ' from ' . $attrs['schemaLocation']); + $this->imports[$this->schemaTargetNamespace][] = array('location' => $attrs['schemaLocation'], 'loaded' => false); + } else { + $this->xdebug('ignoring invalid XML Schema construct: include without schemaLocation attribute'); + } + break; + case 'list': // simpleType value list + $this->xdebug("do nothing for element $name"); + break; + case 'restriction': // simpleType, simpleContent or complexContent value restriction + $this->xdebug('restriction ' . $attrs['base']); + if($this->currentSimpleType){ + $this->simpleTypes[$this->currentSimpleType]['type'] = $attrs['base']; + } elseif($this->currentComplexType){ + $this->complexTypes[$this->currentComplexType]['restrictionBase'] = $attrs['base']; + if(strstr($attrs['base'],':') == ':Array'){ + $this->complexTypes[$this->currentComplexType]['phpType'] = 'array'; + } + } + break; + case 'schema': + $this->schemaInfo = $attrs; + $this->schemaInfo['schemaVersion'] = $this->getNamespaceFromPrefix($prefix); + if (isset($attrs['targetNamespace'])) { + $this->schemaTargetNamespace = $attrs['targetNamespace']; + } + if (!isset($attrs['elementFormDefault'])) { + $this->schemaInfo['elementFormDefault'] = 'unqualified'; + } + if (!isset($attrs['attributeFormDefault'])) { + $this->schemaInfo['attributeFormDefault'] = 'unqualified'; + } + break; + case 'simpleContent': // (optional) content for a complexType + if ($this->currentComplexType) { // This should *always* be + $this->complexTypes[$this->currentComplexType]['simpleContent'] = 'true'; + } else { + $this->xdebug("do nothing for element $name because there is no current complexType"); + } + break; + case 'simpleType': + array_push($this->simpleTypeStack, $this->currentSimpleType); + if(isset($attrs['name'])){ + $this->xdebug("processing simpleType for name " . $attrs['name']); + $this->currentSimpleType = $attrs['name']; + $this->simpleTypes[ $attrs['name'] ] = $attrs; + $this->simpleTypes[ $attrs['name'] ]['typeClass'] = 'simpleType'; + $this->simpleTypes[ $attrs['name'] ]['phpType'] = 'scalar'; + } else { + $name = $this->CreateTypeName($this->currentComplexType . '_' . $this->currentElement); + $this->xdebug('processing unnamed simpleType for element ' . $this->currentElement . ' named ' . $name); + $this->currentSimpleType = $name; + //$this->currentElement = false; + $this->simpleTypes[$this->currentSimpleType] = $attrs; + $this->simpleTypes[$this->currentSimpleType]['phpType'] = 'scalar'; + } + break; + case 'union': // simpleType type list + $this->xdebug("do nothing for element $name"); + break; + default: + $this->xdebug("do not have any logic to process element $name"); + } + } + + /** + * end-element handler + * + * @param string $parser XML parser object + * @param string $name element name + * @access private + */ + function schemaEndElement($parser, $name) { + // bring depth down a notch + $this->depth--; + // position of current element is equal to the last value left in depth_array for my depth + if(isset($this->depth_array[$this->depth])){ + $pos = $this->depth_array[$this->depth]; + } + // get element prefix + if ($prefix = $this->getPrefix($name)){ + // get unqualified name + $name = $this->getLocalPart($name); + } else { + $prefix = ''; + } + // move on... + if($name == 'complexType'){ + $this->xdebug('done processing complexType ' . ($this->currentComplexType ? $this->currentComplexType : '(unknown)')); + $this->xdebug($this->varDump($this->complexTypes[$this->currentComplexType])); + $this->currentComplexType = array_pop($this->complexTypeStack); + //$this->currentElement = false; + } + if($name == 'element'){ + $this->xdebug('done processing element ' . ($this->currentElement ? $this->currentElement : '(unknown)')); + $this->currentElement = array_pop($this->elementStack); + } + if($name == 'simpleType'){ + $this->xdebug('done processing simpleType ' . ($this->currentSimpleType ? $this->currentSimpleType : '(unknown)')); + $this->xdebug($this->varDump($this->simpleTypes[$this->currentSimpleType])); + $this->currentSimpleType = array_pop($this->simpleTypeStack); + } + } + + /** + * element content handler + * + * @param string $parser XML parser object + * @param string $data element content + * @access private + */ + function schemaCharacterData($parser, $data){ + $pos = $this->depth_array[$this->depth - 1]; + $this->message[$pos]['cdata'] .= $data; + } + + /** + * serialize the schema + * + * @access public + */ + function serializeSchema(){ + + $schemaPrefix = $this->getPrefixFromNamespace($this->XMLSchemaVersion); + $xml = ''; + // imports + if (sizeof($this->imports) > 0) { + foreach($this->imports as $ns => $list) { + foreach ($list as $ii) { + if ($ii['location'] != '') { + $xml .= " <$schemaPrefix:import location=\"" . $ii['location'] . '" namespace="' . $ns . "\" />\n"; + } else { + $xml .= " <$schemaPrefix:import namespace=\"" . $ns . "\" />\n"; + } + } + } + } + // complex types + foreach($this->complexTypes as $typeName => $attrs){ + $contentStr = ''; + // serialize child elements + if(isset($attrs['elements']) && (count($attrs['elements']) > 0)){ + foreach($attrs['elements'] as $element => $eParts){ + if(isset($eParts['ref'])){ + $contentStr .= " <$schemaPrefix:element ref=\"$element\"/>\n"; + } else { + $contentStr .= " <$schemaPrefix:element name=\"$element\" type=\"" . $this->contractQName($eParts['type']) . "\""; + foreach ($eParts as $aName => $aValue) { + // handle, e.g., abstract, default, form, minOccurs, maxOccurs, nillable + if ($aName != 'name' && $aName != 'type') { + $contentStr .= " $aName=\"$aValue\""; + } + } + $contentStr .= "/>\n"; + } + } + // compositor wraps elements + if (isset($attrs['compositor']) && ($attrs['compositor'] != '')) { + $contentStr = " <$schemaPrefix:$attrs[compositor]>\n".$contentStr." \n"; + } + } + // attributes + if(isset($attrs['attrs']) && (count($attrs['attrs']) >= 1)){ + foreach($attrs['attrs'] as $attr => $aParts){ + $contentStr .= " <$schemaPrefix:attribute"; + foreach ($aParts as $a => $v) { + if ($a == 'ref' || $a == 'type') { + $contentStr .= " $a=\"".$this->contractQName($v).'"'; + } elseif ($a == 'http://schemas.xmlsoap.org/wsdl/:arrayType') { + $this->usedNamespaces['wsdl'] = $this->namespaces['wsdl']; + $contentStr .= ' wsdl:arrayType="'.$this->contractQName($v).'"'; + } else { + $contentStr .= " $a=\"$v\""; + } + } + $contentStr .= "/>\n"; + } + } + // if restriction + if (isset($attrs['restrictionBase']) && $attrs['restrictionBase'] != ''){ + $contentStr = " <$schemaPrefix:restriction base=\"".$this->contractQName($attrs['restrictionBase'])."\">\n".$contentStr." \n"; + // complex or simple content + if ((isset($attrs['elements']) && count($attrs['elements']) > 0) || (isset($attrs['attrs']) && count($attrs['attrs']) > 0)){ + $contentStr = " <$schemaPrefix:complexContent>\n".$contentStr." \n"; + } + } + // finalize complex type + if($contentStr != ''){ + $contentStr = " <$schemaPrefix:complexType name=\"$typeName\">\n".$contentStr." \n"; + } else { + $contentStr = " <$schemaPrefix:complexType name=\"$typeName\"/>\n"; + } + $xml .= $contentStr; + } + // simple types + if(isset($this->simpleTypes) && count($this->simpleTypes) > 0){ + foreach($this->simpleTypes as $typeName => $eParts){ + $xml .= " <$schemaPrefix:simpleType name=\"$typeName\">\n <$schemaPrefix:restriction base=\"".$this->contractQName($eParts['type'])."\">\n"; + if (isset($eParts['enumeration'])) { + foreach ($eParts['enumeration'] as $e) { + $xml .= " <$schemaPrefix:enumeration value=\"$e\"/>\n"; + } + } + $xml .= " \n "; + } + } + // elements + if(isset($this->elements) && count($this->elements) > 0){ + foreach($this->elements as $element => $eParts){ + $xml .= " <$schemaPrefix:element name=\"$element\" type=\"".$this->contractQName($eParts['type'])."\"/>\n"; + } + } + // attributes + if(isset($this->attributes) && count($this->attributes) > 0){ + foreach($this->attributes as $attr => $aParts){ + $xml .= " <$schemaPrefix:attribute name=\"$attr\" type=\"".$this->contractQName($aParts['type'])."\"\n/>"; + } + } + // finish 'er up + $attr = ''; + foreach ($this->schemaInfo as $k => $v) { + if ($k == 'elementFormDefault' || $k == 'attributeFormDefault') { + $attr .= " $k=\"$v\""; + } + } + $el = "<$schemaPrefix:schema$attr targetNamespace=\"$this->schemaTargetNamespace\"\n"; + foreach (array_diff($this->usedNamespaces, $this->enclosingNamespaces) as $nsp => $ns) { + $el .= " xmlns:$nsp=\"$ns\""; + } + $xml = $el . ">\n".$xml."\n"; + return $xml; + } + + /** + * adds debug data to the clas level debug string + * + * @param string $string debug data + * @access private + */ + function xdebug($string){ + $this->debug('<' . $this->schemaTargetNamespace . '> '.$string); + } + + /** + * get the PHP type of a user defined type in the schema + * PHP type is kind of a misnomer since it actually returns 'struct' for assoc. arrays + * returns false if no type exists, or not w/ the given namespace + * else returns a string that is either a native php type, or 'struct' + * + * @param string $type name of defined type + * @param string $ns namespace of type + * @return mixed + * @access public + * @deprecated + */ + function getPHPType($type,$ns){ + if(isset($this->typemap[$ns][$type])){ + //print "found type '$type' and ns $ns in typemap
"; + return $this->typemap[$ns][$type]; + } elseif(isset($this->complexTypes[$type])){ + //print "getting type '$type' and ns $ns from complexTypes array
"; + return $this->complexTypes[$type]['phpType']; + } + return false; + } + + /** + * returns an associative array of information about a given type + * returns false if no type exists by the given name + * + * For a complexType typeDef = array( + * 'restrictionBase' => '', + * 'phpType' => '', + * 'compositor' => '(sequence|all)', + * 'elements' => array(), // refs to elements array + * 'attrs' => array() // refs to attributes array + * ... and so on (see addComplexType) + * ) + * + * For simpleType or element, the array has different keys. + * + * @param string $type + * @return mixed + * @access public + * @see addComplexType + * @see addSimpleType + * @see addElement + */ + function getTypeDef($type){ + //$this->debug("in getTypeDef for type $type"); + if (substr($type, -1) == '^') { + $is_element = 1; + $type = substr($type, 0, -1); + } else { + $is_element = 0; + } + + if((! $is_element) && isset($this->complexTypes[$type])){ + $this->xdebug("in getTypeDef, found complexType $type"); + return $this->complexTypes[$type]; + } elseif((! $is_element) && isset($this->simpleTypes[$type])){ + $this->xdebug("in getTypeDef, found simpleType $type"); + if (!isset($this->simpleTypes[$type]['phpType'])) { + // get info for type to tack onto the simple type + // TODO: can this ever really apply (i.e. what is a simpleType really?) + $uqType = substr($this->simpleTypes[$type]['type'], strrpos($this->simpleTypes[$type]['type'], ':') + 1); + $ns = substr($this->simpleTypes[$type]['type'], 0, strrpos($this->simpleTypes[$type]['type'], ':')); + $etype = $this->getTypeDef($uqType); + if ($etype) { + $this->xdebug("in getTypeDef, found type for simpleType $type:"); + $this->xdebug($this->varDump($etype)); + if (isset($etype['phpType'])) { + $this->simpleTypes[$type]['phpType'] = $etype['phpType']; + } + if (isset($etype['elements'])) { + $this->simpleTypes[$type]['elements'] = $etype['elements']; + } + } + } + return $this->simpleTypes[$type]; + } elseif(isset($this->elements[$type])){ + $this->xdebug("in getTypeDef, found element $type"); + if (!isset($this->elements[$type]['phpType'])) { + // get info for type to tack onto the element + $uqType = substr($this->elements[$type]['type'], strrpos($this->elements[$type]['type'], ':') + 1); + $ns = substr($this->elements[$type]['type'], 0, strrpos($this->elements[$type]['type'], ':')); + $etype = $this->getTypeDef($uqType); + if ($etype) { + $this->xdebug("in getTypeDef, found type for element $type:"); + $this->xdebug($this->varDump($etype)); + if (isset($etype['phpType'])) { + $this->elements[$type]['phpType'] = $etype['phpType']; + } + if (isset($etype['elements'])) { + $this->elements[$type]['elements'] = $etype['elements']; + } + if (isset($etype['extensionBase'])) { + $this->elements[$type]['extensionBase'] = $etype['extensionBase']; + } + } elseif ($ns == 'http://www.w3.org/2001/XMLSchema') { + $this->xdebug("in getTypeDef, element $type is an XSD type"); + $this->elements[$type]['phpType'] = 'scalar'; + } + } + return $this->elements[$type]; + } elseif(isset($this->attributes[$type])){ + $this->xdebug("in getTypeDef, found attribute $type"); + return $this->attributes[$type]; + } elseif (preg_match('/_ContainedType$/', $type)) { + $this->xdebug("in getTypeDef, have an untyped element $type"); + $typeDef['typeClass'] = 'simpleType'; + $typeDef['phpType'] = 'scalar'; + $typeDef['type'] = 'http://www.w3.org/2001/XMLSchema:string'; + return $typeDef; + } + $this->xdebug("in getTypeDef, did not find $type"); + return false; + } + + /** + * returns a sample serialization of a given type, or false if no type by the given name + * + * @param string $type name of type + * @return mixed + * @access public + * @deprecated + */ + function serializeTypeDef($type){ + //print "in sTD() for type $type
"; + if($typeDef = $this->getTypeDef($type)){ + $str .= '<'.$type; + if(is_array($typeDef['attrs'])){ + foreach($typeDef['attrs'] as $attName => $data){ + $str .= " $attName=\"{type = ".$data['type']."}\""; + } + } + $str .= " xmlns=\"".$this->schema['targetNamespace']."\""; + if(count($typeDef['elements']) > 0){ + $str .= ">"; + foreach($typeDef['elements'] as $element => $eData){ + $str .= $this->serializeTypeDef($element); + } + $str .= ""; + } elseif($typeDef['typeClass'] == 'element') { + $str .= ">"; + } else { + $str .= "/>"; + } + return $str; + } + return false; + } + + /** + * returns HTML form elements that allow a user + * to enter values for creating an instance of the given type. + * + * @param string $name name for type instance + * @param string $type name of type + * @return string + * @access public + * @deprecated + */ + function typeToForm($name,$type){ + // get typedef + if($typeDef = $this->getTypeDef($type)){ + // if struct + if($typeDef['phpType'] == 'struct'){ + $buffer .= ''; + foreach($typeDef['elements'] as $child => $childDef){ + $buffer .= " + + "; + } + $buffer .= '
$childDef[name] (type: ".$this->getLocalPart($childDef['type'])."):
'; + // if array + } elseif($typeDef['phpType'] == 'array'){ + $buffer .= ''; + for($i=0;$i < 3; $i++){ + $buffer .= " + + "; + } + $buffer .= '
array item (type: $typeDef[arrayType]):
'; + // if scalar + } else { + $buffer .= ""; + } + } else { + $buffer .= ""; + } + return $buffer; + } + + /** + * adds a complex type to the schema + * + * example: array + * + * addType( + * 'ArrayOfstring', + * 'complexType', + * 'array', + * '', + * 'SOAP-ENC:Array', + * array('ref'=>'SOAP-ENC:arrayType','wsdl:arrayType'=>'string[]'), + * 'xsd:string' + * ); + * + * example: PHP associative array ( SOAP Struct ) + * + * addType( + * 'SOAPStruct', + * 'complexType', + * 'struct', + * 'all', + * array('myVar'=> array('name'=>'myVar','type'=>'string') + * ); + * + * @param name + * @param typeClass (complexType|simpleType|attribute) + * @param phpType: currently supported are array and struct (php assoc array) + * @param compositor (all|sequence|choice) + * @param restrictionBase namespace:name (http://schemas.xmlsoap.org/soap/encoding/:Array) + * @param elements = array ( name = array(name=>'',type=>'') ) + * @param attrs = array( + * array( + * 'ref' => "http://schemas.xmlsoap.org/soap/encoding/:arrayType", + * "http://schemas.xmlsoap.org/wsdl/:arrayType" => "string[]" + * ) + * ) + * @param arrayType: namespace:name (http://www.w3.org/2001/XMLSchema:string) + * @access public + * @see getTypeDef + */ + function addComplexType($name,$typeClass='complexType',$phpType='array',$compositor='',$restrictionBase='',$elements=array(),$attrs=array(),$arrayType=''){ + $this->complexTypes[$name] = array( + 'name' => $name, + 'typeClass' => $typeClass, + 'phpType' => $phpType, + 'compositor'=> $compositor, + 'restrictionBase' => $restrictionBase, + 'elements' => $elements, + 'attrs' => $attrs, + 'arrayType' => $arrayType + ); + + $this->xdebug("addComplexType $name:"); + $this->appendDebug($this->varDump($this->complexTypes[$name])); + } + + /** + * adds a simple type to the schema + * + * @param string $name + * @param string $restrictionBase namespace:name (http://schemas.xmlsoap.org/soap/encoding/:Array) + * @param string $typeClass (should always be simpleType) + * @param string $phpType (should always be scalar) + * @param array $enumeration array of values + * @access public + * @see nusoap_xmlschema + * @see getTypeDef + */ + function addSimpleType($name, $restrictionBase='', $typeClass='simpleType', $phpType='scalar', $enumeration=array()) { + $this->simpleTypes[$name] = array( + 'name' => $name, + 'typeClass' => $typeClass, + 'phpType' => $phpType, + 'type' => $restrictionBase, + 'enumeration' => $enumeration + ); + + $this->xdebug("addSimpleType $name:"); + $this->appendDebug($this->varDump($this->simpleTypes[$name])); + } + + /** + * adds an element to the schema + * + * @param array $attrs attributes that must include name and type + * @see nusoap_xmlschema + * @access public + */ + function addElement($attrs) { + if (! $this->getPrefix($attrs['type'])) { + $attrs['type'] = $this->schemaTargetNamespace . ':' . $attrs['type']; + } + $this->elements[ $attrs['name'] ] = $attrs; + $this->elements[ $attrs['name'] ]['typeClass'] = 'element'; + + $this->xdebug("addElement " . $attrs['name']); + $this->appendDebug($this->varDump($this->elements[ $attrs['name'] ])); + } +} + +/** + * Backward compatibility + */ +class XMLSchema extends nusoap_xmlschema { +} + + +?> \ No newline at end of file diff --git a/classes/lib/nusoap.php b/classes/lib/nusoap.php new file mode 100644 index 0000000..4973532 --- /dev/null +++ b/classes/lib/nusoap.php @@ -0,0 +1,8148 @@ + +* @author Scott Nichol +* @version $Id: nusoap.php,v 1.123 2010/04/26 20:15:08 snichol Exp $ +* @access public +*/ +class nusoap_base { + /** + * Identification for HTTP headers. + * + * @var string + * @access private + */ + var $title = 'NuSOAP'; + /** + * Version for HTTP headers. + * + * @var string + * @access private + */ + var $version = '0.9.5'; + /** + * CVS revision for HTTP headers. + * + * @var string + * @access private + */ + var $revision = '$Revision: 1.123 $'; + /** + * Current error string (manipulated by getError/setError) + * + * @var string + * @access private + */ + var $error_str = ''; + /** + * Current debug string (manipulated by debug/appendDebug/clearDebug/getDebug/getDebugAsXMLComment) + * + * @var string + * @access private + */ + var $debug_str = ''; + /** + * toggles automatic encoding of special characters as entities + * (should always be true, I think) + * + * @var boolean + * @access private + */ + var $charencoding = true; + /** + * the debug level for this instance + * + * @var integer + * @access private + */ + var $debugLevel; + + /** + * set schema version + * + * @var string + * @access public + */ + var $XMLSchemaVersion = 'http://www.w3.org/2001/XMLSchema'; + + /** + * charset encoding for outgoing messages + * + * @var string + * @access public + */ + var $soap_defencoding = 'ISO-8859-1'; + //var $soap_defencoding = 'UTF-8'; + + /** + * namespaces in an array of prefix => uri + * + * this is "seeded" by a set of constants, but it may be altered by code + * + * @var array + * @access public + */ + var $namespaces = array( + 'SOAP-ENV' => 'http://schemas.xmlsoap.org/soap/envelope/', + 'xsd' => 'http://www.w3.org/2001/XMLSchema', + 'xsi' => 'http://www.w3.org/2001/XMLSchema-instance', + 'SOAP-ENC' => 'http://schemas.xmlsoap.org/soap/encoding/' + ); + + /** + * namespaces used in the current context, e.g. during serialization + * + * @var array + * @access private + */ + var $usedNamespaces = array(); + + /** + * XML Schema types in an array of uri => (array of xml type => php type) + * is this legacy yet? + * no, this is used by the nusoap_xmlschema class to verify type => namespace mappings. + * @var array + * @access public + */ + var $typemap = array( + 'http://www.w3.org/2001/XMLSchema' => array( + 'string'=>'string','boolean'=>'boolean','float'=>'double','double'=>'double','decimal'=>'double', + 'duration'=>'','dateTime'=>'string','time'=>'string','date'=>'string','gYearMonth'=>'', + 'gYear'=>'','gMonthDay'=>'','gDay'=>'','gMonth'=>'','hexBinary'=>'string','base64Binary'=>'string', + // abstract "any" types + 'anyType'=>'string','anySimpleType'=>'string', + // derived datatypes + 'normalizedString'=>'string','token'=>'string','language'=>'','NMTOKEN'=>'','NMTOKENS'=>'','Name'=>'','NCName'=>'','ID'=>'', + 'IDREF'=>'','IDREFS'=>'','ENTITY'=>'','ENTITIES'=>'','integer'=>'integer','nonPositiveInteger'=>'integer', + 'negativeInteger'=>'integer','long'=>'integer','int'=>'integer','short'=>'integer','byte'=>'integer','nonNegativeInteger'=>'integer', + 'unsignedLong'=>'','unsignedInt'=>'','unsignedShort'=>'','unsignedByte'=>'','positiveInteger'=>''), + 'http://www.w3.org/2000/10/XMLSchema' => array( + 'i4'=>'','int'=>'integer','boolean'=>'boolean','string'=>'string','double'=>'double', + 'float'=>'double','dateTime'=>'string', + 'timeInstant'=>'string','base64Binary'=>'string','base64'=>'string','ur-type'=>'array'), + 'http://www.w3.org/1999/XMLSchema' => array( + 'i4'=>'','int'=>'integer','boolean'=>'boolean','string'=>'string','double'=>'double', + 'float'=>'double','dateTime'=>'string', + 'timeInstant'=>'string','base64Binary'=>'string','base64'=>'string','ur-type'=>'array'), + 'http://soapinterop.org/xsd' => array('SOAPStruct'=>'struct'), + 'http://schemas.xmlsoap.org/soap/encoding/' => array('base64'=>'string','array'=>'array','Array'=>'array'), + 'http://xml.apache.org/xml-soap' => array('Map') + ); + + /** + * XML entities to convert + * + * @var array + * @access public + * @deprecated + * @see expandEntities + */ + var $xmlEntities = array('quot' => '"','amp' => '&', + 'lt' => '<','gt' => '>','apos' => "'"); + + /** + * constructor + * + * @access public + */ + function nusoap_base() { + $this->debugLevel = $GLOBALS['_transient']['static']['nusoap_base']['globalDebugLevel']; + } + + /** + * gets the global debug level, which applies to future instances + * + * @return integer Debug level 0-9, where 0 turns off + * @access public + */ + function getGlobalDebugLevel() { + return $GLOBALS['_transient']['static']['nusoap_base']['globalDebugLevel']; + } + + /** + * sets the global debug level, which applies to future instances + * + * @param int $level Debug level 0-9, where 0 turns off + * @access public + */ + function setGlobalDebugLevel($level) { + $GLOBALS['_transient']['static']['nusoap_base']['globalDebugLevel'] = $level; + } + + /** + * gets the debug level for this instance + * + * @return int Debug level 0-9, where 0 turns off + * @access public + */ + function getDebugLevel() { + return $this->debugLevel; + } + + /** + * sets the debug level for this instance + * + * @param int $level Debug level 0-9, where 0 turns off + * @access public + */ + function setDebugLevel($level) { + $this->debugLevel = $level; + } + + /** + * adds debug data to the instance debug string with formatting + * + * @param string $string debug data + * @access private + */ + function debug($string){ + if ($this->debugLevel > 0) { + $this->appendDebug($this->getmicrotime().' '.get_class($this).": $string\n"); + } + } + + /** + * adds debug data to the instance debug string without formatting + * + * @param string $string debug data + * @access public + */ + function appendDebug($string){ + if ($this->debugLevel > 0) { + // it would be nice to use a memory stream here to use + // memory more efficiently + $this->debug_str .= $string; + } + } + + /** + * clears the current debug data for this instance + * + * @access public + */ + function clearDebug() { + // it would be nice to use a memory stream here to use + // memory more efficiently + $this->debug_str = ''; + } + + /** + * gets the current debug data for this instance + * + * @return debug data + * @access public + */ + function &getDebug() { + // it would be nice to use a memory stream here to use + // memory more efficiently + return $this->debug_str; + } + + /** + * gets the current debug data for this instance as an XML comment + * this may change the contents of the debug data + * + * @return debug data as an XML comment + * @access public + */ + function &getDebugAsXMLComment() { + // it would be nice to use a memory stream here to use + // memory more efficiently + while (strpos($this->debug_str, '--')) { + $this->debug_str = str_replace('--', '- -', $this->debug_str); + } + $ret = ""; + return $ret; + } + + /** + * expands entities, e.g. changes '<' to '<'. + * + * @param string $val The string in which to expand entities. + * @access private + */ + function expandEntities($val) { + if ($this->charencoding) { + $val = str_replace('&', '&', $val); + $val = str_replace("'", ''', $val); + $val = str_replace('"', '"', $val); + $val = str_replace('<', '<', $val); + $val = str_replace('>', '>', $val); + } + return $val; + } + + /** + * returns error string if present + * + * @return mixed error string or false + * @access public + */ + function getError(){ + if($this->error_str != ''){ + return $this->error_str; + } + return false; + } + + /** + * sets error string + * + * @return boolean $string error string + * @access private + */ + function setError($str){ + $this->error_str = $str; + } + + /** + * detect if array is a simple array or a struct (associative array) + * + * @param mixed $val The PHP array + * @return string (arraySimple|arrayStruct) + * @access private + */ + function isArraySimpleOrStruct($val) { + $keyList = array_keys($val); + foreach ($keyList as $keyListValue) { + if (!is_int($keyListValue)) { + return 'arrayStruct'; + } + } + return 'arraySimple'; + } + + /** + * serializes PHP values in accordance w/ section 5. Type information is + * not serialized if $use == 'literal'. + * + * @param mixed $val The value to serialize + * @param string $name The name (local part) of the XML element + * @param string $type The XML schema type (local part) for the element + * @param string $name_ns The namespace for the name of the XML element + * @param string $type_ns The namespace for the type of the element + * @param array $attributes The attributes to serialize as name=>value pairs + * @param string $use The WSDL "use" (encoded|literal) + * @param boolean $soapval Whether this is called from soapval. + * @return string The serialized element, possibly with child elements + * @access public + */ + function serialize_val($val,$name=false,$type=false,$name_ns=false,$type_ns=false,$attributes=false,$use='encoded',$soapval=false) { + $this->debug("in serialize_val: name=$name, type=$type, name_ns=$name_ns, type_ns=$type_ns, use=$use, soapval=$soapval"); + $this->appendDebug('value=' . $this->varDump($val)); + $this->appendDebug('attributes=' . $this->varDump($attributes)); + + if (is_object($val) && get_class($val) == 'soapval' && (! $soapval)) { + $this->debug("serialize_val: serialize soapval"); + $xml = $val->serialize($use); + $this->appendDebug($val->getDebug()); + $val->clearDebug(); + $this->debug("serialize_val of soapval returning $xml"); + return $xml; + } + // force valid name if necessary + if (is_numeric($name)) { + $name = '__numeric_' . $name; + } elseif (! $name) { + $name = 'noname'; + } + // if name has ns, add ns prefix to name + $xmlns = ''; + if($name_ns){ + $prefix = 'nu'.rand(1000,9999); + $name = $prefix.':'.$name; + $xmlns .= " xmlns:$prefix=\"$name_ns\""; + } + // if type is prefixed, create type prefix + if($type_ns != '' && $type_ns == $this->namespaces['xsd']){ + // need to fix this. shouldn't default to xsd if no ns specified + // w/o checking against typemap + $type_prefix = 'xsd'; + } elseif($type_ns){ + $type_prefix = 'ns'.rand(1000,9999); + $xmlns .= " xmlns:$type_prefix=\"$type_ns\""; + } + // serialize attributes if present + $atts = ''; + if($attributes){ + foreach($attributes as $k => $v){ + $atts .= " $k=\"".$this->expandEntities($v).'"'; + } + } + // serialize null value + if (is_null($val)) { + $this->debug("serialize_val: serialize null"); + if ($use == 'literal') { + // TODO: depends on minOccurs + $xml = "<$name$xmlns$atts/>"; + $this->debug("serialize_val returning $xml"); + return $xml; + } else { + if (isset($type) && isset($type_prefix)) { + $type_str = " xsi:type=\"$type_prefix:$type\""; + } else { + $type_str = ''; + } + $xml = "<$name$xmlns$type_str$atts xsi:nil=\"true\"/>"; + $this->debug("serialize_val returning $xml"); + return $xml; + } + } + // serialize if an xsd built-in primitive type + if($type != '' && isset($this->typemap[$this->XMLSchemaVersion][$type])){ + $this->debug("serialize_val: serialize xsd built-in primitive type"); + if (is_bool($val)) { + if ($type == 'boolean') { + $val = $val ? 'true' : 'false'; + } elseif (! $val) { + $val = 0; + } + } else if (is_string($val)) { + $val = $this->expandEntities($val); + } + if ($use == 'literal') { + $xml = "<$name$xmlns$atts>$val"; + $this->debug("serialize_val returning $xml"); + return $xml; + } else { + $xml = "<$name$xmlns xsi:type=\"xsd:$type\"$atts>$val"; + $this->debug("serialize_val returning $xml"); + return $xml; + } + } + // detect type and serialize + $xml = ''; + switch(true) { + case (is_bool($val) || $type == 'boolean'): + $this->debug("serialize_val: serialize boolean"); + if ($type == 'boolean') { + $val = $val ? 'true' : 'false'; + } elseif (! $val) { + $val = 0; + } + if ($use == 'literal') { + $xml .= "<$name$xmlns$atts>$val"; + } else { + $xml .= "<$name$xmlns xsi:type=\"xsd:boolean\"$atts>$val"; + } + break; + case (is_int($val) || is_long($val) || $type == 'int'): + $this->debug("serialize_val: serialize int"); + if ($use == 'literal') { + $xml .= "<$name$xmlns$atts>$val"; + } else { + $xml .= "<$name$xmlns xsi:type=\"xsd:int\"$atts>$val"; + } + break; + case (is_float($val)|| is_double($val) || $type == 'float'): + $this->debug("serialize_val: serialize float"); + if ($use == 'literal') { + $xml .= "<$name$xmlns$atts>$val"; + } else { + $xml .= "<$name$xmlns xsi:type=\"xsd:float\"$atts>$val"; + } + break; + case (is_string($val) || $type == 'string'): + $this->debug("serialize_val: serialize string"); + $val = $this->expandEntities($val); + if ($use == 'literal') { + $xml .= "<$name$xmlns$atts>$val"; + } else { + $xml .= "<$name$xmlns xsi:type=\"xsd:string\"$atts>$val"; + } + break; + case is_object($val): + $this->debug("serialize_val: serialize object"); + if (get_class($val) == 'soapval') { + $this->debug("serialize_val: serialize soapval object"); + $pXml = $val->serialize($use); + $this->appendDebug($val->getDebug()); + $val->clearDebug(); + } else { + if (! $name) { + $name = get_class($val); + $this->debug("In serialize_val, used class name $name as element name"); + } else { + $this->debug("In serialize_val, do not override name $name for element name for class " . get_class($val)); + } + foreach(get_object_vars($val) as $k => $v){ + $pXml = isset($pXml) ? $pXml.$this->serialize_val($v,$k,false,false,false,false,$use) : $this->serialize_val($v,$k,false,false,false,false,$use); + } + } + if(isset($type) && isset($type_prefix)){ + $type_str = " xsi:type=\"$type_prefix:$type\""; + } else { + $type_str = ''; + } + if ($use == 'literal') { + $xml .= "<$name$xmlns$atts>$pXml"; + } else { + $xml .= "<$name$xmlns$type_str$atts>$pXml"; + } + break; + break; + case (is_array($val) || $type): + // detect if struct or array + $valueType = $this->isArraySimpleOrStruct($val); + if($valueType=='arraySimple' || preg_match('/^ArrayOf/',$type)){ + $this->debug("serialize_val: serialize array"); + $i = 0; + if(is_array($val) && count($val)> 0){ + foreach($val as $v){ + if(is_object($v) && get_class($v) == 'soapval'){ + $tt_ns = $v->type_ns; + $tt = $v->type; + } elseif (is_array($v)) { + $tt = $this->isArraySimpleOrStruct($v); + } else { + $tt = gettype($v); + } + $array_types[$tt] = 1; + // TODO: for literal, the name should be $name + $xml .= $this->serialize_val($v,'item',false,false,false,false,$use); + ++$i; + } + if(count($array_types) > 1){ + $array_typename = 'xsd:anyType'; + } elseif(isset($tt) && isset($this->typemap[$this->XMLSchemaVersion][$tt])) { + if ($tt == 'integer') { + $tt = 'int'; + } + $array_typename = 'xsd:'.$tt; + } elseif(isset($tt) && $tt == 'arraySimple'){ + $array_typename = 'SOAP-ENC:Array'; + } elseif(isset($tt) && $tt == 'arrayStruct'){ + $array_typename = 'unnamed_struct_use_soapval'; + } else { + // if type is prefixed, create type prefix + if ($tt_ns != '' && $tt_ns == $this->namespaces['xsd']){ + $array_typename = 'xsd:' . $tt; + } elseif ($tt_ns) { + $tt_prefix = 'ns' . rand(1000, 9999); + $array_typename = "$tt_prefix:$tt"; + $xmlns .= " xmlns:$tt_prefix=\"$tt_ns\""; + } else { + $array_typename = $tt; + } + } + $array_type = $i; + if ($use == 'literal') { + $type_str = ''; + } else if (isset($type) && isset($type_prefix)) { + $type_str = " xsi:type=\"$type_prefix:$type\""; + } else { + $type_str = " xsi:type=\"SOAP-ENC:Array\" SOAP-ENC:arrayType=\"".$array_typename."[$array_type]\""; + } + // empty array + } else { + if ($use == 'literal') { + $type_str = ''; + } else if (isset($type) && isset($type_prefix)) { + $type_str = " xsi:type=\"$type_prefix:$type\""; + } else { + $type_str = " xsi:type=\"SOAP-ENC:Array\" SOAP-ENC:arrayType=\"xsd:anyType[0]\""; + } + } + // TODO: for array in literal, there is no wrapper here + $xml = "<$name$xmlns$type_str$atts>".$xml.""; + } else { + // got a struct + $this->debug("serialize_val: serialize struct"); + if(isset($type) && isset($type_prefix)){ + $type_str = " xsi:type=\"$type_prefix:$type\""; + } else { + $type_str = ''; + } + if ($use == 'literal') { + $xml .= "<$name$xmlns$atts>"; + } else { + $xml .= "<$name$xmlns$type_str$atts>"; + } + foreach($val as $k => $v){ + // Apache Map + if ($type == 'Map' && $type_ns == 'http://xml.apache.org/xml-soap') { + $xml .= ''; + $xml .= $this->serialize_val($k,'key',false,false,false,false,$use); + $xml .= $this->serialize_val($v,'value',false,false,false,false,$use); + $xml .= ''; + } else { + $xml .= $this->serialize_val($v,$k,false,false,false,false,$use); + } + } + $xml .= ""; + } + break; + default: + $this->debug("serialize_val: serialize unknown"); + $xml .= 'not detected, got '.gettype($val).' for '.$val; + break; + } + $this->debug("serialize_val returning $xml"); + return $xml; + } + + /** + * serializes a message + * + * @param string $body the XML of the SOAP body + * @param mixed $headers optional string of XML with SOAP header content, or array of soapval objects for SOAP headers, or associative array + * @param array $namespaces optional the namespaces used in generating the body and headers + * @param string $style optional (rpc|document) + * @param string $use optional (encoded|literal) + * @param string $encodingStyle optional (usually 'http://schemas.xmlsoap.org/soap/encoding/' for encoded) + * @return string the message + * @access public + */ + function serializeEnvelope($body,$headers=false,$namespaces=array(),$style='rpc',$use='encoded',$encodingStyle='http://schemas.xmlsoap.org/soap/encoding/'){ + // TODO: add an option to automatically run utf8_encode on $body and $headers + // if $this->soap_defencoding is UTF-8. Not doing this automatically allows + // one to send arbitrary UTF-8 characters, not just characters that map to ISO-8859-1 + + $this->debug("In serializeEnvelope length=" . strlen($body) . " body (max 1000 characters)=" . substr($body, 0, 1000) . " style=$style use=$use encodingStyle=$encodingStyle"); + $this->debug("headers:"); + $this->appendDebug($this->varDump($headers)); + $this->debug("namespaces:"); + $this->appendDebug($this->varDump($namespaces)); + + // serialize namespaces + $ns_string = ''; + foreach(array_merge($this->namespaces,$namespaces) as $k => $v){ + $ns_string .= " xmlns:$k=\"$v\""; + } + if($encodingStyle) { + $ns_string = " SOAP-ENV:encodingStyle=\"$encodingStyle\"$ns_string"; + } + + // serialize headers + if($headers){ + if (is_array($headers)) { + $xml = ''; + foreach ($headers as $k => $v) { + if (is_object($v) && get_class($v) == 'soapval') { + $xml .= $this->serialize_val($v, false, false, false, false, false, $use); + } else { + $xml .= $this->serialize_val($v, $k, false, false, false, false, $use); + } + } + $headers = $xml; + $this->debug("In serializeEnvelope, serialized array of headers to $headers"); + } + $headers = "".$headers.""; + } + // serialize envelope + return + 'soap_defencoding .'"?'.">". + '". + $headers. + "". + $body. + "". + ""; + } + + /** + * formats a string to be inserted into an HTML stream + * + * @param string $str The string to format + * @return string The formatted string + * @access public + * @deprecated + */ + function formatDump($str){ + $str = htmlspecialchars($str); + return nl2br($str); + } + + /** + * contracts (changes namespace to prefix) a qualified name + * + * @param string $qname qname + * @return string contracted qname + * @access private + */ + function contractQname($qname){ + // get element namespace + //$this->xdebug("Contract $qname"); + if (strrpos($qname, ':')) { + // get unqualified name + $name = substr($qname, strrpos($qname, ':') + 1); + // get ns + $ns = substr($qname, 0, strrpos($qname, ':')); + $p = $this->getPrefixFromNamespace($ns); + if ($p) { + return $p . ':' . $name; + } + return $qname; + } else { + return $qname; + } + } + + /** + * expands (changes prefix to namespace) a qualified name + * + * @param string $qname qname + * @return string expanded qname + * @access private + */ + function expandQname($qname){ + // get element prefix + if(strpos($qname,':') && !preg_match('/^http:\/\//',$qname)){ + // get unqualified name + $name = substr(strstr($qname,':'),1); + // get ns prefix + $prefix = substr($qname,0,strpos($qname,':')); + if(isset($this->namespaces[$prefix])){ + return $this->namespaces[$prefix].':'.$name; + } else { + return $qname; + } + } else { + return $qname; + } + } + + /** + * returns the local part of a prefixed string + * returns the original string, if not prefixed + * + * @param string $str The prefixed string + * @return string The local part + * @access public + */ + function getLocalPart($str){ + if($sstr = strrchr($str,':')){ + // get unqualified name + return substr( $sstr, 1 ); + } else { + return $str; + } + } + + /** + * returns the prefix part of a prefixed string + * returns false, if not prefixed + * + * @param string $str The prefixed string + * @return mixed The prefix or false if there is no prefix + * @access public + */ + function getPrefix($str){ + if($pos = strrpos($str,':')){ + // get prefix + return substr($str,0,$pos); + } + return false; + } + + /** + * pass it a prefix, it returns a namespace + * + * @param string $prefix The prefix + * @return mixed The namespace, false if no namespace has the specified prefix + * @access public + */ + function getNamespaceFromPrefix($prefix){ + if (isset($this->namespaces[$prefix])) { + return $this->namespaces[$prefix]; + } + //$this->setError("No namespace registered for prefix '$prefix'"); + return false; + } + + /** + * returns the prefix for a given namespace (or prefix) + * or false if no prefixes registered for the given namespace + * + * @param string $ns The namespace + * @return mixed The prefix, false if the namespace has no prefixes + * @access public + */ + function getPrefixFromNamespace($ns) { + foreach ($this->namespaces as $p => $n) { + if ($ns == $n || $ns == $p) { + $this->usedNamespaces[$p] = $n; + return $p; + } + } + return false; + } + + /** + * returns the time in ODBC canonical form with microseconds + * + * @return string The time in ODBC canonical form with microseconds + * @access public + */ + function getmicrotime() { + if (function_exists('gettimeofday')) { + $tod = gettimeofday(); + $sec = $tod['sec']; + $usec = $tod['usec']; + } else { + $sec = time(); + $usec = 0; + } + return strftime('%Y-%m-%d %H:%M:%S', $sec) . '.' . sprintf('%06d', $usec); + } + + /** + * Returns a string with the output of var_dump + * + * @param mixed $data The variable to var_dump + * @return string The output of var_dump + * @access public + */ + function varDump($data) { + ob_start(); + var_dump($data); + $ret_val = ob_get_contents(); + ob_end_clean(); + return $ret_val; + } + + /** + * represents the object as a string + * + * @return string + * @access public + */ + function __toString() { + return $this->varDump($this); + } +} + +// XML Schema Datatype Helper Functions + +//xsd:dateTime helpers + +/** +* convert unix timestamp to ISO 8601 compliant date string +* +* @param int $timestamp Unix time stamp +* @param boolean $utc Whether the time stamp is UTC or local +* @return mixed ISO 8601 date string or false +* @access public +*/ +function timestamp_to_iso8601($timestamp,$utc=true){ + $datestr = date('Y-m-d\TH:i:sO',$timestamp); + $pos = strrpos($datestr, "+"); + if ($pos === FALSE) { + $pos = strrpos($datestr, "-"); + } + if ($pos !== FALSE) { + if (strlen($datestr) == $pos + 5) { + $datestr = substr($datestr, 0, $pos + 3) . ':' . substr($datestr, -2); + } + } + if($utc){ + $pattern = '/'. + '([0-9]{4})-'. // centuries & years CCYY- + '([0-9]{2})-'. // months MM- + '([0-9]{2})'. // days DD + 'T'. // separator T + '([0-9]{2}):'. // hours hh: + '([0-9]{2}):'. // minutes mm: + '([0-9]{2})(\.[0-9]*)?'. // seconds ss.ss... + '(Z|[+\-][0-9]{2}:?[0-9]{2})?'. // Z to indicate UTC, -/+HH:MM:SS.SS... for local tz's + '/'; + + if(preg_match($pattern,$datestr,$regs)){ + return sprintf('%04d-%02d-%02dT%02d:%02d:%02dZ',$regs[1],$regs[2],$regs[3],$regs[4],$regs[5],$regs[6]); + } + return false; + } else { + return $datestr; + } +} + +/** +* convert ISO 8601 compliant date string to unix timestamp +* +* @param string $datestr ISO 8601 compliant date string +* @return mixed Unix timestamp (int) or false +* @access public +*/ +function iso8601_to_timestamp($datestr){ + $pattern = '/'. + '([0-9]{4})-'. // centuries & years CCYY- + '([0-9]{2})-'. // months MM- + '([0-9]{2})'. // days DD + 'T'. // separator T + '([0-9]{2}):'. // hours hh: + '([0-9]{2}):'. // minutes mm: + '([0-9]{2})(\.[0-9]+)?'. // seconds ss.ss... + '(Z|[+\-][0-9]{2}:?[0-9]{2})?'. // Z to indicate UTC, -/+HH:MM:SS.SS... for local tz's + '/'; + if(preg_match($pattern,$datestr,$regs)){ + // not utc + if($regs[8] != 'Z'){ + $op = substr($regs[8],0,1); + $h = substr($regs[8],1,2); + $m = substr($regs[8],strlen($regs[8])-2,2); + if($op == '-'){ + $regs[4] = $regs[4] + $h; + $regs[5] = $regs[5] + $m; + } elseif($op == '+'){ + $regs[4] = $regs[4] - $h; + $regs[5] = $regs[5] - $m; + } + } + return gmmktime($regs[4], $regs[5], $regs[6], $regs[2], $regs[3], $regs[1]); +// return strtotime("$regs[1]-$regs[2]-$regs[3] $regs[4]:$regs[5]:$regs[6]Z"); + } else { + return false; + } +} + +/** +* sleeps some number of microseconds +* +* @param string $usec the number of microseconds to sleep +* @access public +* @deprecated +*/ +function usleepWindows($usec) +{ + $start = gettimeofday(); + + do + { + $stop = gettimeofday(); + $timePassed = 1000000 * ($stop['sec'] - $start['sec']) + + $stop['usec'] - $start['usec']; + } + while ($timePassed < $usec); +} + +?> +* @version $Id: nusoap.php,v 1.123 2010/04/26 20:15:08 snichol Exp $ +* @access public +*/ +class nusoap_fault extends nusoap_base { + /** + * The fault code (client|server) + * @var string + * @access private + */ + var $faultcode; + /** + * The fault actor + * @var string + * @access private + */ + var $faultactor; + /** + * The fault string, a description of the fault + * @var string + * @access private + */ + var $faultstring; + /** + * The fault detail, typically a string or array of string + * @var mixed + * @access private + */ + var $faultdetail; + + /** + * constructor + * + * @param string $faultcode (SOAP-ENV:Client | SOAP-ENV:Server) + * @param string $faultactor only used when msg routed between multiple actors + * @param string $faultstring human readable error message + * @param mixed $faultdetail detail, typically a string or array of string + */ + function nusoap_fault($faultcode,$faultactor='',$faultstring='',$faultdetail=''){ + parent::nusoap_base(); + $this->faultcode = $faultcode; + $this->faultactor = $faultactor; + $this->faultstring = $faultstring; + $this->faultdetail = $faultdetail; + } + + /** + * serialize a fault + * + * @return string The serialization of the fault instance. + * @access public + */ + function serialize(){ + $ns_string = ''; + foreach($this->namespaces as $k => $v){ + $ns_string .= "\n xmlns:$k=\"$v\""; + } + $return_msg = + 'soap_defencoding.'"?>'. + '\n". + ''. + ''. + $this->serialize_val($this->faultcode, 'faultcode'). + $this->serialize_val($this->faultactor, 'faultactor'). + $this->serialize_val($this->faultstring, 'faultstring'). + $this->serialize_val($this->faultdetail, 'detail'). + ''. + ''. + ''; + return $return_msg; + } +} + +/** + * Backward compatibility + */ +class soap_fault extends nusoap_fault { +} + +?> +* @author Scott Nichol +* @version $Id: nusoap.php,v 1.123 2010/04/26 20:15:08 snichol Exp $ +* @access public +*/ +class nusoap_xmlschema extends nusoap_base { + + // files + var $schema = ''; + var $xml = ''; + // namespaces + var $enclosingNamespaces; + // schema info + var $schemaInfo = array(); + var $schemaTargetNamespace = ''; + // types, elements, attributes defined by the schema + var $attributes = array(); + var $complexTypes = array(); + var $complexTypeStack = array(); + var $currentComplexType = null; + var $elements = array(); + var $elementStack = array(); + var $currentElement = null; + var $simpleTypes = array(); + var $simpleTypeStack = array(); + var $currentSimpleType = null; + // imports + var $imports = array(); + // parser vars + var $parser; + var $position = 0; + var $depth = 0; + var $depth_array = array(); + var $message = array(); + var $defaultNamespace = array(); + + /** + * constructor + * + * @param string $schema schema document URI + * @param string $xml xml document URI + * @param string $namespaces namespaces defined in enclosing XML + * @access public + */ + function nusoap_xmlschema($schema='',$xml='',$namespaces=array()){ + parent::nusoap_base(); + $this->debug('nusoap_xmlschema class instantiated, inside constructor'); + // files + $this->schema = $schema; + $this->xml = $xml; + + // namespaces + $this->enclosingNamespaces = $namespaces; + $this->namespaces = array_merge($this->namespaces, $namespaces); + + // parse schema file + if($schema != ''){ + $this->debug('initial schema file: '.$schema); + $this->parseFile($schema, 'schema'); + } + + // parse xml file + if($xml != ''){ + $this->debug('initial xml file: '.$xml); + $this->parseFile($xml, 'xml'); + } + + } + + /** + * parse an XML file + * + * @param string $xml path/URL to XML file + * @param string $type (schema | xml) + * @return boolean + * @access public + */ + function parseFile($xml,$type){ + // parse xml file + if($xml != ""){ + $xmlStr = @join("",@file($xml)); + if($xmlStr == ""){ + $msg = 'Error reading XML from '.$xml; + $this->setError($msg); + $this->debug($msg); + return false; + } else { + $this->debug("parsing $xml"); + $this->parseString($xmlStr,$type); + $this->debug("done parsing $xml"); + return true; + } + } + return false; + } + + /** + * parse an XML string + * + * @param string $xml path or URL + * @param string $type (schema|xml) + * @access private + */ + function parseString($xml,$type){ + // parse xml string + if($xml != ""){ + + // Create an XML parser. + $this->parser = xml_parser_create(); + // Set the options for parsing the XML data. + xml_parser_set_option($this->parser, XML_OPTION_CASE_FOLDING, 0); + + // Set the object for the parser. + xml_set_object($this->parser, $this); + + // Set the element handlers for the parser. + if($type == "schema"){ + xml_set_element_handler($this->parser, 'schemaStartElement','schemaEndElement'); + xml_set_character_data_handler($this->parser,'schemaCharacterData'); + } elseif($type == "xml"){ + xml_set_element_handler($this->parser, 'xmlStartElement','xmlEndElement'); + xml_set_character_data_handler($this->parser,'xmlCharacterData'); + } + + // Parse the XML file. + if(!xml_parse($this->parser,$xml,true)){ + // Display an error message. + $errstr = sprintf('XML error parsing XML schema on line %d: %s', + xml_get_current_line_number($this->parser), + xml_error_string(xml_get_error_code($this->parser)) + ); + $this->debug($errstr); + $this->debug("XML payload:\n" . $xml); + $this->setError($errstr); + } + + xml_parser_free($this->parser); + } else{ + $this->debug('no xml passed to parseString()!!'); + $this->setError('no xml passed to parseString()!!'); + } + } + + /** + * gets a type name for an unnamed type + * + * @param string Element name + * @return string A type name for an unnamed type + * @access private + */ + function CreateTypeName($ename) { + $scope = ''; + for ($i = 0; $i < count($this->complexTypeStack); $i++) { + $scope .= $this->complexTypeStack[$i] . '_'; + } + return $scope . $ename . '_ContainedType'; + } + + /** + * start-element handler + * + * @param string $parser XML parser object + * @param string $name element name + * @param string $attrs associative array of attributes + * @access private + */ + function schemaStartElement($parser, $name, $attrs) { + + // position in the total number of elements, starting from 0 + $pos = $this->position++; + $depth = $this->depth++; + // set self as current value for this depth + $this->depth_array[$depth] = $pos; + $this->message[$pos] = array('cdata' => ''); + if ($depth > 0) { + $this->defaultNamespace[$pos] = $this->defaultNamespace[$this->depth_array[$depth - 1]]; + } else { + $this->defaultNamespace[$pos] = false; + } + + // get element prefix + if($prefix = $this->getPrefix($name)){ + // get unqualified name + $name = $this->getLocalPart($name); + } else { + $prefix = ''; + } + + // loop thru attributes, expanding, and registering namespace declarations + if(count($attrs) > 0){ + foreach($attrs as $k => $v){ + // if ns declarations, add to class level array of valid namespaces + if(preg_match('/^xmlns/',$k)){ + //$this->xdebug("$k: $v"); + //$this->xdebug('ns_prefix: '.$this->getPrefix($k)); + if($ns_prefix = substr(strrchr($k,':'),1)){ + //$this->xdebug("Add namespace[$ns_prefix] = $v"); + $this->namespaces[$ns_prefix] = $v; + } else { + $this->defaultNamespace[$pos] = $v; + if (! $this->getPrefixFromNamespace($v)) { + $this->namespaces['ns'.(count($this->namespaces)+1)] = $v; + } + } + if($v == 'http://www.w3.org/2001/XMLSchema' || $v == 'http://www.w3.org/1999/XMLSchema' || $v == 'http://www.w3.org/2000/10/XMLSchema'){ + $this->XMLSchemaVersion = $v; + $this->namespaces['xsi'] = $v.'-instance'; + } + } + } + foreach($attrs as $k => $v){ + // expand each attribute + $k = strpos($k,':') ? $this->expandQname($k) : $k; + $v = strpos($v,':') ? $this->expandQname($v) : $v; + $eAttrs[$k] = $v; + } + $attrs = $eAttrs; + } else { + $attrs = array(); + } + // find status, register data + switch($name){ + case 'all': // (optional) compositor content for a complexType + case 'choice': + case 'group': + case 'sequence': + //$this->xdebug("compositor $name for currentComplexType: $this->currentComplexType and currentElement: $this->currentElement"); + $this->complexTypes[$this->currentComplexType]['compositor'] = $name; + //if($name == 'all' || $name == 'sequence'){ + // $this->complexTypes[$this->currentComplexType]['phpType'] = 'struct'; + //} + break; + case 'attribute': // complexType attribute + //$this->xdebug("parsing attribute $attrs[name] $attrs[ref] of value: ".$attrs['http://schemas.xmlsoap.org/wsdl/:arrayType']); + $this->xdebug("parsing attribute:"); + $this->appendDebug($this->varDump($attrs)); + if (!isset($attrs['form'])) { + // TODO: handle globals + $attrs['form'] = $this->schemaInfo['attributeFormDefault']; + } + if (isset($attrs['http://schemas.xmlsoap.org/wsdl/:arrayType'])) { + $v = $attrs['http://schemas.xmlsoap.org/wsdl/:arrayType']; + if (!strpos($v, ':')) { + // no namespace in arrayType attribute value... + if ($this->defaultNamespace[$pos]) { + // ...so use the default + $attrs['http://schemas.xmlsoap.org/wsdl/:arrayType'] = $this->defaultNamespace[$pos] . ':' . $attrs['http://schemas.xmlsoap.org/wsdl/:arrayType']; + } + } + } + if(isset($attrs['name'])){ + $this->attributes[$attrs['name']] = $attrs; + $aname = $attrs['name']; + } elseif(isset($attrs['ref']) && $attrs['ref'] == 'http://schemas.xmlsoap.org/soap/encoding/:arrayType'){ + if (isset($attrs['http://schemas.xmlsoap.org/wsdl/:arrayType'])) { + $aname = $attrs['http://schemas.xmlsoap.org/wsdl/:arrayType']; + } else { + $aname = ''; + } + } elseif(isset($attrs['ref'])){ + $aname = $attrs['ref']; + $this->attributes[$attrs['ref']] = $attrs; + } + + if($this->currentComplexType){ // This should *always* be + $this->complexTypes[$this->currentComplexType]['attrs'][$aname] = $attrs; + } + // arrayType attribute + if(isset($attrs['http://schemas.xmlsoap.org/wsdl/:arrayType']) || $this->getLocalPart($aname) == 'arrayType'){ + $this->complexTypes[$this->currentComplexType]['phpType'] = 'array'; + $prefix = $this->getPrefix($aname); + if(isset($attrs['http://schemas.xmlsoap.org/wsdl/:arrayType'])){ + $v = $attrs['http://schemas.xmlsoap.org/wsdl/:arrayType']; + } else { + $v = ''; + } + if(strpos($v,'[,]')){ + $this->complexTypes[$this->currentComplexType]['multidimensional'] = true; + } + $v = substr($v,0,strpos($v,'[')); // clip the [] + if(!strpos($v,':') && isset($this->typemap[$this->XMLSchemaVersion][$v])){ + $v = $this->XMLSchemaVersion.':'.$v; + } + $this->complexTypes[$this->currentComplexType]['arrayType'] = $v; + } + break; + case 'complexContent': // (optional) content for a complexType + $this->xdebug("do nothing for element $name"); + break; + case 'complexType': + array_push($this->complexTypeStack, $this->currentComplexType); + if(isset($attrs['name'])){ + // TODO: what is the scope of named complexTypes that appear + // nested within other c complexTypes? + $this->xdebug('processing named complexType '.$attrs['name']); + //$this->currentElement = false; + $this->currentComplexType = $attrs['name']; + $this->complexTypes[$this->currentComplexType] = $attrs; + $this->complexTypes[$this->currentComplexType]['typeClass'] = 'complexType'; + // This is for constructs like + // + // + // + // + // + if(isset($attrs['base']) && preg_match('/:Array$/',$attrs['base'])){ + $this->xdebug('complexType is unusual array'); + $this->complexTypes[$this->currentComplexType]['phpType'] = 'array'; + } else { + $this->complexTypes[$this->currentComplexType]['phpType'] = 'struct'; + } + } else { + $name = $this->CreateTypeName($this->currentElement); + $this->xdebug('processing unnamed complexType for element ' . $this->currentElement . ' named ' . $name); + $this->currentComplexType = $name; + //$this->currentElement = false; + $this->complexTypes[$this->currentComplexType] = $attrs; + $this->complexTypes[$this->currentComplexType]['typeClass'] = 'complexType'; + // This is for constructs like + // + // + // + // + // + if(isset($attrs['base']) && preg_match('/:Array$/',$attrs['base'])){ + $this->xdebug('complexType is unusual array'); + $this->complexTypes[$this->currentComplexType]['phpType'] = 'array'; + } else { + $this->complexTypes[$this->currentComplexType]['phpType'] = 'struct'; + } + } + $this->complexTypes[$this->currentComplexType]['simpleContent'] = 'false'; + break; + case 'element': + array_push($this->elementStack, $this->currentElement); + if (!isset($attrs['form'])) { + if ($this->currentComplexType) { + $attrs['form'] = $this->schemaInfo['elementFormDefault']; + } else { + // global + $attrs['form'] = 'qualified'; + } + } + if(isset($attrs['type'])){ + $this->xdebug("processing typed element ".$attrs['name']." of type ".$attrs['type']); + if (! $this->getPrefix($attrs['type'])) { + if ($this->defaultNamespace[$pos]) { + $attrs['type'] = $this->defaultNamespace[$pos] . ':' . $attrs['type']; + $this->xdebug('used default namespace to make type ' . $attrs['type']); + } + } + // This is for constructs like + // + // + // + // + // + if ($this->currentComplexType && $this->complexTypes[$this->currentComplexType]['phpType'] == 'array') { + $this->xdebug('arrayType for unusual array is ' . $attrs['type']); + $this->complexTypes[$this->currentComplexType]['arrayType'] = $attrs['type']; + } + $this->currentElement = $attrs['name']; + $ename = $attrs['name']; + } elseif(isset($attrs['ref'])){ + $this->xdebug("processing element as ref to ".$attrs['ref']); + $this->currentElement = "ref to ".$attrs['ref']; + $ename = $this->getLocalPart($attrs['ref']); + } else { + $type = $this->CreateTypeName($this->currentComplexType . '_' . $attrs['name']); + $this->xdebug("processing untyped element " . $attrs['name'] . ' type ' . $type); + $this->currentElement = $attrs['name']; + $attrs['type'] = $this->schemaTargetNamespace . ':' . $type; + $ename = $attrs['name']; + } + if (isset($ename) && $this->currentComplexType) { + $this->xdebug("add element $ename to complexType $this->currentComplexType"); + $this->complexTypes[$this->currentComplexType]['elements'][$ename] = $attrs; + } elseif (!isset($attrs['ref'])) { + $this->xdebug("add element $ename to elements array"); + $this->elements[ $attrs['name'] ] = $attrs; + $this->elements[ $attrs['name'] ]['typeClass'] = 'element'; + } + break; + case 'enumeration': // restriction value list member + $this->xdebug('enumeration ' . $attrs['value']); + if ($this->currentSimpleType) { + $this->simpleTypes[$this->currentSimpleType]['enumeration'][] = $attrs['value']; + } elseif ($this->currentComplexType) { + $this->complexTypes[$this->currentComplexType]['enumeration'][] = $attrs['value']; + } + break; + case 'extension': // simpleContent or complexContent type extension + $this->xdebug('extension ' . $attrs['base']); + if ($this->currentComplexType) { + $ns = $this->getPrefix($attrs['base']); + if ($ns == '') { + $this->complexTypes[$this->currentComplexType]['extensionBase'] = $this->schemaTargetNamespace . ':' . $attrs['base']; + } else { + $this->complexTypes[$this->currentComplexType]['extensionBase'] = $attrs['base']; + } + } else { + $this->xdebug('no current complexType to set extensionBase'); + } + break; + case 'import': + if (isset($attrs['schemaLocation'])) { + $this->xdebug('import namespace ' . $attrs['namespace'] . ' from ' . $attrs['schemaLocation']); + $this->imports[$attrs['namespace']][] = array('location' => $attrs['schemaLocation'], 'loaded' => false); + } else { + $this->xdebug('import namespace ' . $attrs['namespace']); + $this->imports[$attrs['namespace']][] = array('location' => '', 'loaded' => true); + if (! $this->getPrefixFromNamespace($attrs['namespace'])) { + $this->namespaces['ns'.(count($this->namespaces)+1)] = $attrs['namespace']; + } + } + break; + case 'include': + if (isset($attrs['schemaLocation'])) { + $this->xdebug('include into namespace ' . $this->schemaTargetNamespace . ' from ' . $attrs['schemaLocation']); + $this->imports[$this->schemaTargetNamespace][] = array('location' => $attrs['schemaLocation'], 'loaded' => false); + } else { + $this->xdebug('ignoring invalid XML Schema construct: include without schemaLocation attribute'); + } + break; + case 'list': // simpleType value list + $this->xdebug("do nothing for element $name"); + break; + case 'restriction': // simpleType, simpleContent or complexContent value restriction + $this->xdebug('restriction ' . $attrs['base']); + if($this->currentSimpleType){ + $this->simpleTypes[$this->currentSimpleType]['type'] = $attrs['base']; + } elseif($this->currentComplexType){ + $this->complexTypes[$this->currentComplexType]['restrictionBase'] = $attrs['base']; + if(strstr($attrs['base'],':') == ':Array'){ + $this->complexTypes[$this->currentComplexType]['phpType'] = 'array'; + } + } + break; + case 'schema': + $this->schemaInfo = $attrs; + $this->schemaInfo['schemaVersion'] = $this->getNamespaceFromPrefix($prefix); + if (isset($attrs['targetNamespace'])) { + $this->schemaTargetNamespace = $attrs['targetNamespace']; + } + if (!isset($attrs['elementFormDefault'])) { + $this->schemaInfo['elementFormDefault'] = 'unqualified'; + } + if (!isset($attrs['attributeFormDefault'])) { + $this->schemaInfo['attributeFormDefault'] = 'unqualified'; + } + break; + case 'simpleContent': // (optional) content for a complexType + if ($this->currentComplexType) { // This should *always* be + $this->complexTypes[$this->currentComplexType]['simpleContent'] = 'true'; + } else { + $this->xdebug("do nothing for element $name because there is no current complexType"); + } + break; + case 'simpleType': + array_push($this->simpleTypeStack, $this->currentSimpleType); + if(isset($attrs['name'])){ + $this->xdebug("processing simpleType for name " . $attrs['name']); + $this->currentSimpleType = $attrs['name']; + $this->simpleTypes[ $attrs['name'] ] = $attrs; + $this->simpleTypes[ $attrs['name'] ]['typeClass'] = 'simpleType'; + $this->simpleTypes[ $attrs['name'] ]['phpType'] = 'scalar'; + } else { + $name = $this->CreateTypeName($this->currentComplexType . '_' . $this->currentElement); + $this->xdebug('processing unnamed simpleType for element ' . $this->currentElement . ' named ' . $name); + $this->currentSimpleType = $name; + //$this->currentElement = false; + $this->simpleTypes[$this->currentSimpleType] = $attrs; + $this->simpleTypes[$this->currentSimpleType]['phpType'] = 'scalar'; + } + break; + case 'union': // simpleType type list + $this->xdebug("do nothing for element $name"); + break; + default: + $this->xdebug("do not have any logic to process element $name"); + } + } + + /** + * end-element handler + * + * @param string $parser XML parser object + * @param string $name element name + * @access private + */ + function schemaEndElement($parser, $name) { + // bring depth down a notch + $this->depth--; + // position of current element is equal to the last value left in depth_array for my depth + if(isset($this->depth_array[$this->depth])){ + $pos = $this->depth_array[$this->depth]; + } + // get element prefix + if ($prefix = $this->getPrefix($name)){ + // get unqualified name + $name = $this->getLocalPart($name); + } else { + $prefix = ''; + } + // move on... + if($name == 'complexType'){ + $this->xdebug('done processing complexType ' . ($this->currentComplexType ? $this->currentComplexType : '(unknown)')); + $this->xdebug($this->varDump($this->complexTypes[$this->currentComplexType])); + $this->currentComplexType = array_pop($this->complexTypeStack); + //$this->currentElement = false; + } + if($name == 'element'){ + $this->xdebug('done processing element ' . ($this->currentElement ? $this->currentElement : '(unknown)')); + $this->currentElement = array_pop($this->elementStack); + } + if($name == 'simpleType'){ + $this->xdebug('done processing simpleType ' . ($this->currentSimpleType ? $this->currentSimpleType : '(unknown)')); + $this->xdebug($this->varDump($this->simpleTypes[$this->currentSimpleType])); + $this->currentSimpleType = array_pop($this->simpleTypeStack); + } + } + + /** + * element content handler + * + * @param string $parser XML parser object + * @param string $data element content + * @access private + */ + function schemaCharacterData($parser, $data){ + $pos = $this->depth_array[$this->depth - 1]; + $this->message[$pos]['cdata'] .= $data; + } + + /** + * serialize the schema + * + * @access public + */ + function serializeSchema(){ + + $schemaPrefix = $this->getPrefixFromNamespace($this->XMLSchemaVersion); + $xml = ''; + // imports + if (sizeof($this->imports) > 0) { + foreach($this->imports as $ns => $list) { + foreach ($list as $ii) { + if ($ii['location'] != '') { + $xml .= " <$schemaPrefix:import location=\"" . $ii['location'] . '" namespace="' . $ns . "\" />\n"; + } else { + $xml .= " <$schemaPrefix:import namespace=\"" . $ns . "\" />\n"; + } + } + } + } + // complex types + foreach($this->complexTypes as $typeName => $attrs){ + $contentStr = ''; + // serialize child elements + if(isset($attrs['elements']) && (count($attrs['elements']) > 0)){ + foreach($attrs['elements'] as $element => $eParts){ + if(isset($eParts['ref'])){ + $contentStr .= " <$schemaPrefix:element ref=\"$element\"/>\n"; + } else { + $contentStr .= " <$schemaPrefix:element name=\"$element\" type=\"" . $this->contractQName($eParts['type']) . "\""; + foreach ($eParts as $aName => $aValue) { + // handle, e.g., abstract, default, form, minOccurs, maxOccurs, nillable + if ($aName != 'name' && $aName != 'type') { + $contentStr .= " $aName=\"$aValue\""; + } + } + $contentStr .= "/>\n"; + } + } + // compositor wraps elements + if (isset($attrs['compositor']) && ($attrs['compositor'] != '')) { + $contentStr = " <$schemaPrefix:$attrs[compositor]>\n".$contentStr." \n"; + } + } + // attributes + if(isset($attrs['attrs']) && (count($attrs['attrs']) >= 1)){ + foreach($attrs['attrs'] as $attr => $aParts){ + $contentStr .= " <$schemaPrefix:attribute"; + foreach ($aParts as $a => $v) { + if ($a == 'ref' || $a == 'type') { + $contentStr .= " $a=\"".$this->contractQName($v).'"'; + } elseif ($a == 'http://schemas.xmlsoap.org/wsdl/:arrayType') { + $this->usedNamespaces['wsdl'] = $this->namespaces['wsdl']; + $contentStr .= ' wsdl:arrayType="'.$this->contractQName($v).'"'; + } else { + $contentStr .= " $a=\"$v\""; + } + } + $contentStr .= "/>\n"; + } + } + // if restriction + if (isset($attrs['restrictionBase']) && $attrs['restrictionBase'] != ''){ + $contentStr = " <$schemaPrefix:restriction base=\"".$this->contractQName($attrs['restrictionBase'])."\">\n".$contentStr." \n"; + // complex or simple content + if ((isset($attrs['elements']) && count($attrs['elements']) > 0) || (isset($attrs['attrs']) && count($attrs['attrs']) > 0)){ + $contentStr = " <$schemaPrefix:complexContent>\n".$contentStr." \n"; + } + } + // finalize complex type + if($contentStr != ''){ + $contentStr = " <$schemaPrefix:complexType name=\"$typeName\">\n".$contentStr." \n"; + } else { + $contentStr = " <$schemaPrefix:complexType name=\"$typeName\"/>\n"; + } + $xml .= $contentStr; + } + // simple types + if(isset($this->simpleTypes) && count($this->simpleTypes) > 0){ + foreach($this->simpleTypes as $typeName => $eParts){ + $xml .= " <$schemaPrefix:simpleType name=\"$typeName\">\n <$schemaPrefix:restriction base=\"".$this->contractQName($eParts['type'])."\">\n"; + if (isset($eParts['enumeration'])) { + foreach ($eParts['enumeration'] as $e) { + $xml .= " <$schemaPrefix:enumeration value=\"$e\"/>\n"; + } + } + $xml .= " \n "; + } + } + // elements + if(isset($this->elements) && count($this->elements) > 0){ + foreach($this->elements as $element => $eParts){ + $xml .= " <$schemaPrefix:element name=\"$element\" type=\"".$this->contractQName($eParts['type'])."\"/>\n"; + } + } + // attributes + if(isset($this->attributes) && count($this->attributes) > 0){ + foreach($this->attributes as $attr => $aParts){ + $xml .= " <$schemaPrefix:attribute name=\"$attr\" type=\"".$this->contractQName($aParts['type'])."\"\n/>"; + } + } + // finish 'er up + $attr = ''; + foreach ($this->schemaInfo as $k => $v) { + if ($k == 'elementFormDefault' || $k == 'attributeFormDefault') { + $attr .= " $k=\"$v\""; + } + } + $el = "<$schemaPrefix:schema$attr targetNamespace=\"$this->schemaTargetNamespace\"\n"; + foreach (array_diff($this->usedNamespaces, $this->enclosingNamespaces) as $nsp => $ns) { + $el .= " xmlns:$nsp=\"$ns\""; + } + $xml = $el . ">\n".$xml."\n"; + return $xml; + } + + /** + * adds debug data to the clas level debug string + * + * @param string $string debug data + * @access private + */ + function xdebug($string){ + $this->debug('<' . $this->schemaTargetNamespace . '> '.$string); + } + + /** + * get the PHP type of a user defined type in the schema + * PHP type is kind of a misnomer since it actually returns 'struct' for assoc. arrays + * returns false if no type exists, or not w/ the given namespace + * else returns a string that is either a native php type, or 'struct' + * + * @param string $type name of defined type + * @param string $ns namespace of type + * @return mixed + * @access public + * @deprecated + */ + function getPHPType($type,$ns){ + if(isset($this->typemap[$ns][$type])){ + //print "found type '$type' and ns $ns in typemap
"; + return $this->typemap[$ns][$type]; + } elseif(isset($this->complexTypes[$type])){ + //print "getting type '$type' and ns $ns from complexTypes array
"; + return $this->complexTypes[$type]['phpType']; + } + return false; + } + + /** + * returns an associative array of information about a given type + * returns false if no type exists by the given name + * + * For a complexType typeDef = array( + * 'restrictionBase' => '', + * 'phpType' => '', + * 'compositor' => '(sequence|all)', + * 'elements' => array(), // refs to elements array + * 'attrs' => array() // refs to attributes array + * ... and so on (see addComplexType) + * ) + * + * For simpleType or element, the array has different keys. + * + * @param string $type + * @return mixed + * @access public + * @see addComplexType + * @see addSimpleType + * @see addElement + */ + function getTypeDef($type){ + //$this->debug("in getTypeDef for type $type"); + if (substr($type, -1) == '^') { + $is_element = 1; + $type = substr($type, 0, -1); + } else { + $is_element = 0; + } + + if((! $is_element) && isset($this->complexTypes[$type])){ + $this->xdebug("in getTypeDef, found complexType $type"); + return $this->complexTypes[$type]; + } elseif((! $is_element) && isset($this->simpleTypes[$type])){ + $this->xdebug("in getTypeDef, found simpleType $type"); + if (!isset($this->simpleTypes[$type]['phpType'])) { + // get info for type to tack onto the simple type + // TODO: can this ever really apply (i.e. what is a simpleType really?) + $uqType = substr($this->simpleTypes[$type]['type'], strrpos($this->simpleTypes[$type]['type'], ':') + 1); + $ns = substr($this->simpleTypes[$type]['type'], 0, strrpos($this->simpleTypes[$type]['type'], ':')); + $etype = $this->getTypeDef($uqType); + if ($etype) { + $this->xdebug("in getTypeDef, found type for simpleType $type:"); + $this->xdebug($this->varDump($etype)); + if (isset($etype['phpType'])) { + $this->simpleTypes[$type]['phpType'] = $etype['phpType']; + } + if (isset($etype['elements'])) { + $this->simpleTypes[$type]['elements'] = $etype['elements']; + } + } + } + return $this->simpleTypes[$type]; + } elseif(isset($this->elements[$type])){ + $this->xdebug("in getTypeDef, found element $type"); + if (!isset($this->elements[$type]['phpType'])) { + // get info for type to tack onto the element + $uqType = substr($this->elements[$type]['type'], strrpos($this->elements[$type]['type'], ':') + 1); + $ns = substr($this->elements[$type]['type'], 0, strrpos($this->elements[$type]['type'], ':')); + $etype = $this->getTypeDef($uqType); + if ($etype) { + $this->xdebug("in getTypeDef, found type for element $type:"); + $this->xdebug($this->varDump($etype)); + if (isset($etype['phpType'])) { + $this->elements[$type]['phpType'] = $etype['phpType']; + } + if (isset($etype['elements'])) { + $this->elements[$type]['elements'] = $etype['elements']; + } + if (isset($etype['extensionBase'])) { + $this->elements[$type]['extensionBase'] = $etype['extensionBase']; + } + } elseif ($ns == 'http://www.w3.org/2001/XMLSchema') { + $this->xdebug("in getTypeDef, element $type is an XSD type"); + $this->elements[$type]['phpType'] = 'scalar'; + } + } + return $this->elements[$type]; + } elseif(isset($this->attributes[$type])){ + $this->xdebug("in getTypeDef, found attribute $type"); + return $this->attributes[$type]; + } elseif (preg_match('/_ContainedType$/', $type)) { + $this->xdebug("in getTypeDef, have an untyped element $type"); + $typeDef['typeClass'] = 'simpleType'; + $typeDef['phpType'] = 'scalar'; + $typeDef['type'] = 'http://www.w3.org/2001/XMLSchema:string'; + return $typeDef; + } + $this->xdebug("in getTypeDef, did not find $type"); + return false; + } + + /** + * returns a sample serialization of a given type, or false if no type by the given name + * + * @param string $type name of type + * @return mixed + * @access public + * @deprecated + */ + function serializeTypeDef($type){ + //print "in sTD() for type $type
"; + if($typeDef = $this->getTypeDef($type)){ + $str .= '<'.$type; + if(is_array($typeDef['attrs'])){ + foreach($typeDef['attrs'] as $attName => $data){ + $str .= " $attName=\"{type = ".$data['type']."}\""; + } + } + $str .= " xmlns=\"".$this->schema['targetNamespace']."\""; + if(count($typeDef['elements']) > 0){ + $str .= ">"; + foreach($typeDef['elements'] as $element => $eData){ + $str .= $this->serializeTypeDef($element); + } + $str .= ""; + } elseif($typeDef['typeClass'] == 'element') { + $str .= ">"; + } else { + $str .= "/>"; + } + return $str; + } + return false; + } + + /** + * returns HTML form elements that allow a user + * to enter values for creating an instance of the given type. + * + * @param string $name name for type instance + * @param string $type name of type + * @return string + * @access public + * @deprecated + */ + function typeToForm($name,$type){ + // get typedef + if($typeDef = $this->getTypeDef($type)){ + // if struct + if($typeDef['phpType'] == 'struct'){ + $buffer .= ''; + foreach($typeDef['elements'] as $child => $childDef){ + $buffer .= " + + "; + } + $buffer .= '
$childDef[name] (type: ".$this->getLocalPart($childDef['type'])."):
'; + // if array + } elseif($typeDef['phpType'] == 'array'){ + $buffer .= ''; + for($i=0;$i < 3; $i++){ + $buffer .= " + + "; + } + $buffer .= '
array item (type: $typeDef[arrayType]):
'; + // if scalar + } else { + $buffer .= ""; + } + } else { + $buffer .= ""; + } + return $buffer; + } + + /** + * adds a complex type to the schema + * + * example: array + * + * addType( + * 'ArrayOfstring', + * 'complexType', + * 'array', + * '', + * 'SOAP-ENC:Array', + * array('ref'=>'SOAP-ENC:arrayType','wsdl:arrayType'=>'string[]'), + * 'xsd:string' + * ); + * + * example: PHP associative array ( SOAP Struct ) + * + * addType( + * 'SOAPStruct', + * 'complexType', + * 'struct', + * 'all', + * array('myVar'=> array('name'=>'myVar','type'=>'string') + * ); + * + * @param name + * @param typeClass (complexType|simpleType|attribute) + * @param phpType: currently supported are array and struct (php assoc array) + * @param compositor (all|sequence|choice) + * @param restrictionBase namespace:name (http://schemas.xmlsoap.org/soap/encoding/:Array) + * @param elements = array ( name = array(name=>'',type=>'') ) + * @param attrs = array( + * array( + * 'ref' => "http://schemas.xmlsoap.org/soap/encoding/:arrayType", + * "http://schemas.xmlsoap.org/wsdl/:arrayType" => "string[]" + * ) + * ) + * @param arrayType: namespace:name (http://www.w3.org/2001/XMLSchema:string) + * @access public + * @see getTypeDef + */ + function addComplexType($name,$typeClass='complexType',$phpType='array',$compositor='',$restrictionBase='',$elements=array(),$attrs=array(),$arrayType=''){ + $this->complexTypes[$name] = array( + 'name' => $name, + 'typeClass' => $typeClass, + 'phpType' => $phpType, + 'compositor'=> $compositor, + 'restrictionBase' => $restrictionBase, + 'elements' => $elements, + 'attrs' => $attrs, + 'arrayType' => $arrayType + ); + + $this->xdebug("addComplexType $name:"); + $this->appendDebug($this->varDump($this->complexTypes[$name])); + } + + /** + * adds a simple type to the schema + * + * @param string $name + * @param string $restrictionBase namespace:name (http://schemas.xmlsoap.org/soap/encoding/:Array) + * @param string $typeClass (should always be simpleType) + * @param string $phpType (should always be scalar) + * @param array $enumeration array of values + * @access public + * @see nusoap_xmlschema + * @see getTypeDef + */ + function addSimpleType($name, $restrictionBase='', $typeClass='simpleType', $phpType='scalar', $enumeration=array()) { + $this->simpleTypes[$name] = array( + 'name' => $name, + 'typeClass' => $typeClass, + 'phpType' => $phpType, + 'type' => $restrictionBase, + 'enumeration' => $enumeration + ); + + $this->xdebug("addSimpleType $name:"); + $this->appendDebug($this->varDump($this->simpleTypes[$name])); + } + + /** + * adds an element to the schema + * + * @param array $attrs attributes that must include name and type + * @see nusoap_xmlschema + * @access public + */ + function addElement($attrs) { + if (! $this->getPrefix($attrs['type'])) { + $attrs['type'] = $this->schemaTargetNamespace . ':' . $attrs['type']; + } + $this->elements[ $attrs['name'] ] = $attrs; + $this->elements[ $attrs['name'] ]['typeClass'] = 'element'; + + $this->xdebug("addElement " . $attrs['name']); + $this->appendDebug($this->varDump($this->elements[ $attrs['name'] ])); + } +} + +/** + * Backward compatibility + */ +class XMLSchema extends nusoap_xmlschema { +} + +?> +* @version $Id: nusoap.php,v 1.123 2010/04/26 20:15:08 snichol Exp $ +* @access public +*/ +class soapval extends nusoap_base { + /** + * The XML element name + * + * @var string + * @access private + */ + var $name; + /** + * The XML type name (string or false) + * + * @var mixed + * @access private + */ + var $type; + /** + * The PHP value + * + * @var mixed + * @access private + */ + var $value; + /** + * The XML element namespace (string or false) + * + * @var mixed + * @access private + */ + var $element_ns; + /** + * The XML type namespace (string or false) + * + * @var mixed + * @access private + */ + var $type_ns; + /** + * The XML element attributes (array or false) + * + * @var mixed + * @access private + */ + var $attributes; + + /** + * constructor + * + * @param string $name optional name + * @param mixed $type optional type name + * @param mixed $value optional value + * @param mixed $element_ns optional namespace of value + * @param mixed $type_ns optional namespace of type + * @param mixed $attributes associative array of attributes to add to element serialization + * @access public + */ + function soapval($name='soapval',$type=false,$value=-1,$element_ns=false,$type_ns=false,$attributes=false) { + parent::nusoap_base(); + $this->name = $name; + $this->type = $type; + $this->value = $value; + $this->element_ns = $element_ns; + $this->type_ns = $type_ns; + $this->attributes = $attributes; + } + + /** + * return serialized value + * + * @param string $use The WSDL use value (encoded|literal) + * @return string XML data + * @access public + */ + function serialize($use='encoded') { + return $this->serialize_val($this->value, $this->name, $this->type, $this->element_ns, $this->type_ns, $this->attributes, $use, true); + } + + /** + * decodes a soapval object into a PHP native type + * + * @return mixed + * @access public + */ + function decode(){ + return $this->value; + } +} + + + +?> +* @author Scott Nichol +* @version $Id: nusoap.php,v 1.123 2010/04/26 20:15:08 snichol Exp $ +* @access public +*/ +class soap_transport_http extends nusoap_base { + + var $url = ''; + var $uri = ''; + var $digest_uri = ''; + var $scheme = ''; + var $host = ''; + var $port = ''; + var $path = ''; + var $request_method = 'POST'; + var $protocol_version = '1.0'; + var $encoding = ''; + var $outgoing_headers = array(); + var $incoming_headers = array(); + var $incoming_cookies = array(); + var $outgoing_payload = ''; + var $incoming_payload = ''; + var $response_status_line; // HTTP response status line + var $useSOAPAction = true; + var $persistentConnection = false; + var $ch = false; // cURL handle + var $ch_options = array(); // cURL custom options + var $use_curl = false; // force cURL use + var $proxy = null; // proxy information (associative array) + var $username = ''; + var $password = ''; + var $authtype = ''; + var $digestRequest = array(); + var $certRequest = array(); // keys must be cainfofile (optional), sslcertfile, sslkeyfile, passphrase, certpassword (optional), verifypeer (optional), verifyhost (optional) + // cainfofile: certificate authority file, e.g. '$pathToPemFiles/rootca.pem' + // sslcertfile: SSL certificate file, e.g. '$pathToPemFiles/mycert.pem' + // sslkeyfile: SSL key file, e.g. '$pathToPemFiles/mykey.pem' + // passphrase: SSL key password/passphrase + // certpassword: SSL certificate password + // verifypeer: default is 1 + // verifyhost: default is 1 + + /** + * constructor + * + * @param string $url The URL to which to connect + * @param array $curl_options User-specified cURL options + * @param boolean $use_curl Whether to try to force cURL use + * @access public + */ + function soap_transport_http($url, $curl_options = NULL, $use_curl = false){ + parent::nusoap_base(); + $this->debug("ctor url=$url use_curl=$use_curl curl_options:"); + $this->appendDebug($this->varDump($curl_options)); + $this->setURL($url); + if (is_array($curl_options)) { + $this->ch_options = $curl_options; + } + $this->use_curl = $use_curl; + preg_match('/\$Revisio' . 'n: ([^ ]+)/', $this->revision, $rev); + $this->setHeader('User-Agent', $this->title.'/'.$this->version.' ('.$rev[1].')'); + } + + /** + * sets a cURL option + * + * @param mixed $option The cURL option (always integer?) + * @param mixed $value The cURL option value + * @access private + */ + function setCurlOption($option, $value) { + $this->debug("setCurlOption option=$option, value="); + $this->appendDebug($this->varDump($value)); + curl_setopt($this->ch, $option, $value); + } + + /** + * sets an HTTP header + * + * @param string $name The name of the header + * @param string $value The value of the header + * @access private + */ + function setHeader($name, $value) { + $this->outgoing_headers[$name] = $value; + $this->debug("set header $name: $value"); + } + + /** + * unsets an HTTP header + * + * @param string $name The name of the header + * @access private + */ + function unsetHeader($name) { + if (isset($this->outgoing_headers[$name])) { + $this->debug("unset header $name"); + unset($this->outgoing_headers[$name]); + } + } + + /** + * sets the URL to which to connect + * + * @param string $url The URL to which to connect + * @access private + */ + function setURL($url) { + $this->url = $url; + + $u = parse_url($url); + foreach($u as $k => $v){ + $this->debug("parsed URL $k = $v"); + $this->$k = $v; + } + + // add any GET params to path + if(isset($u['query']) && $u['query'] != ''){ + $this->path .= '?' . $u['query']; + } + + // set default port + if(!isset($u['port'])){ + if($u['scheme'] == 'https'){ + $this->port = 443; + } else { + $this->port = 80; + } + } + + $this->uri = $this->path; + $this->digest_uri = $this->uri; + + // build headers + if (!isset($u['port'])) { + $this->setHeader('Host', $this->host); + } else { + $this->setHeader('Host', $this->host.':'.$this->port); + } + + if (isset($u['user']) && $u['user'] != '') { + $this->setCredentials(urldecode($u['user']), isset($u['pass']) ? urldecode($u['pass']) : ''); + } + } + + /** + * gets the I/O method to use + * + * @return string I/O method to use (socket|curl|unknown) + * @access private + */ + function io_method() { + if ($this->use_curl || ($this->scheme == 'https') || ($this->scheme == 'http' && $this->authtype == 'ntlm') || ($this->scheme == 'http' && is_array($this->proxy) && $this->proxy['authtype'] == 'ntlm')) + return 'curl'; + if (($this->scheme == 'http' || $this->scheme == 'ssl') && $this->authtype != 'ntlm' && (!is_array($this->proxy) || $this->proxy['authtype'] != 'ntlm')) + return 'socket'; + return 'unknown'; + } + + /** + * establish an HTTP connection + * + * @param integer $timeout set connection timeout in seconds + * @param integer $response_timeout set response timeout in seconds + * @return boolean true if connected, false if not + * @access private + */ + function connect($connection_timeout=0,$response_timeout=30){ + // For PHP 4.3 with OpenSSL, change https scheme to ssl, then treat like + // "regular" socket. + // TODO: disabled for now because OpenSSL must be *compiled* in (not just + // loaded), and until PHP5 stream_get_wrappers is not available. +// if ($this->scheme == 'https') { +// if (version_compare(phpversion(), '4.3.0') >= 0) { +// if (extension_loaded('openssl')) { +// $this->scheme = 'ssl'; +// $this->debug('Using SSL over OpenSSL'); +// } +// } +// } + $this->debug("connect connection_timeout $connection_timeout, response_timeout $response_timeout, scheme $this->scheme, host $this->host, port $this->port"); + if ($this->io_method() == 'socket') { + if (!is_array($this->proxy)) { + $host = $this->host; + $port = $this->port; + } else { + $host = $this->proxy['host']; + $port = $this->proxy['port']; + } + + // use persistent connection + if($this->persistentConnection && isset($this->fp) && is_resource($this->fp)){ + if (!feof($this->fp)) { + $this->debug('Re-use persistent connection'); + return true; + } + fclose($this->fp); + $this->debug('Closed persistent connection at EOF'); + } + + // munge host if using OpenSSL + if ($this->scheme == 'ssl') { + $host = 'ssl://' . $host; + } + $this->debug('calling fsockopen with host ' . $host . ' connection_timeout ' . $connection_timeout); + + // open socket + if($connection_timeout > 0){ + $this->fp = @fsockopen( $host, $this->port, $this->errno, $this->error_str, $connection_timeout); + } else { + $this->fp = @fsockopen( $host, $this->port, $this->errno, $this->error_str); + } + + // test pointer + if(!$this->fp) { + $msg = 'Couldn\'t open socket connection to server ' . $this->url; + if ($this->errno) { + $msg .= ', Error ('.$this->errno.'): '.$this->error_str; + } else { + $msg .= ' prior to connect(). This is often a problem looking up the host name.'; + } + $this->debug($msg); + $this->setError($msg); + return false; + } + + // set response timeout + $this->debug('set response timeout to ' . $response_timeout); + socket_set_timeout( $this->fp, $response_timeout); + + $this->debug('socket connected'); + return true; + } else if ($this->io_method() == 'curl') { + if (!extension_loaded('curl')) { +// $this->setError('cURL Extension, or OpenSSL extension w/ PHP version >= 4.3 is required for HTTPS'); + $this->setError('The PHP cURL Extension is required for HTTPS or NLTM. You will need to re-build or update your PHP to include cURL or change php.ini to load the PHP cURL extension.'); + return false; + } + // Avoid warnings when PHP does not have these options + if (defined('CURLOPT_CONNECTIONTIMEOUT')) + $CURLOPT_CONNECTIONTIMEOUT = CURLOPT_CONNECTIONTIMEOUT; + else + $CURLOPT_CONNECTIONTIMEOUT = 78; + if (defined('CURLOPT_HTTPAUTH')) + $CURLOPT_HTTPAUTH = CURLOPT_HTTPAUTH; + else + $CURLOPT_HTTPAUTH = 107; + if (defined('CURLOPT_PROXYAUTH')) + $CURLOPT_PROXYAUTH = CURLOPT_PROXYAUTH; + else + $CURLOPT_PROXYAUTH = 111; + if (defined('CURLAUTH_BASIC')) + $CURLAUTH_BASIC = CURLAUTH_BASIC; + else + $CURLAUTH_BASIC = 1; + if (defined('CURLAUTH_DIGEST')) + $CURLAUTH_DIGEST = CURLAUTH_DIGEST; + else + $CURLAUTH_DIGEST = 2; + if (defined('CURLAUTH_NTLM')) + $CURLAUTH_NTLM = CURLAUTH_NTLM; + else + $CURLAUTH_NTLM = 8; + + $this->debug('connect using cURL'); + // init CURL + $this->ch = curl_init(); + // set url + $hostURL = ($this->port != '') ? "$this->scheme://$this->host:$this->port" : "$this->scheme://$this->host"; + // add path + $hostURL .= $this->path; + $this->setCurlOption(CURLOPT_URL, $hostURL); + // follow location headers (re-directs) + if (ini_get('safe_mode') || ini_get('open_basedir')) { + $this->debug('safe_mode or open_basedir set, so do not set CURLOPT_FOLLOWLOCATION'); + $this->debug('safe_mode = '); + $this->appendDebug($this->varDump(ini_get('safe_mode'))); + $this->debug('open_basedir = '); + $this->appendDebug($this->varDump(ini_get('open_basedir'))); + } else { + $this->setCurlOption(CURLOPT_FOLLOWLOCATION, 1); + } + // ask for headers in the response output + $this->setCurlOption(CURLOPT_HEADER, 1); + // ask for the response output as the return value + $this->setCurlOption(CURLOPT_RETURNTRANSFER, 1); + // encode + // We manage this ourselves through headers and encoding +// if(function_exists('gzuncompress')){ +// $this->setCurlOption(CURLOPT_ENCODING, 'deflate'); +// } + // persistent connection + if ($this->persistentConnection) { + // I believe the following comment is now bogus, having applied to + // the code when it used CURLOPT_CUSTOMREQUEST to send the request. + // The way we send data, we cannot use persistent connections, since + // there will be some "junk" at the end of our request. + //$this->setCurlOption(CURL_HTTP_VERSION_1_1, true); + $this->persistentConnection = false; + $this->setHeader('Connection', 'close'); + } + // set timeouts + if ($connection_timeout != 0) { + $this->setCurlOption($CURLOPT_CONNECTIONTIMEOUT, $connection_timeout); + } + if ($response_timeout != 0) { + $this->setCurlOption(CURLOPT_TIMEOUT, $response_timeout); + } + + if ($this->scheme == 'https') { + $this->debug('set cURL SSL verify options'); + // recent versions of cURL turn on peer/host checking by default, + // while PHP binaries are not compiled with a default location for the + // CA cert bundle, so disable peer/host checking. + //$this->setCurlOption(CURLOPT_CAINFO, 'f:\php-4.3.2-win32\extensions\curl-ca-bundle.crt'); + $this->setCurlOption(CURLOPT_SSL_VERIFYPEER, 0); + $this->setCurlOption(CURLOPT_SSL_VERIFYHOST, 0); + + // support client certificates (thanks Tobias Boes, Doug Anarino, Eryan Ariobowo) + if ($this->authtype == 'certificate') { + $this->debug('set cURL certificate options'); + if (isset($this->certRequest['cainfofile'])) { + $this->setCurlOption(CURLOPT_CAINFO, $this->certRequest['cainfofile']); + } + if (isset($this->certRequest['verifypeer'])) { + $this->setCurlOption(CURLOPT_SSL_VERIFYPEER, $this->certRequest['verifypeer']); + } else { + $this->setCurlOption(CURLOPT_SSL_VERIFYPEER, 1); + } + if (isset($this->certRequest['verifyhost'])) { + $this->setCurlOption(CURLOPT_SSL_VERIFYHOST, $this->certRequest['verifyhost']); + } else { + $this->setCurlOption(CURLOPT_SSL_VERIFYHOST, 1); + } + if (isset($this->certRequest['sslcertfile'])) { + $this->setCurlOption(CURLOPT_SSLCERT, $this->certRequest['sslcertfile']); + } + if (isset($this->certRequest['sslkeyfile'])) { + $this->setCurlOption(CURLOPT_SSLKEY, $this->certRequest['sslkeyfile']); + } + if (isset($this->certRequest['passphrase'])) { + $this->setCurlOption(CURLOPT_SSLKEYPASSWD, $this->certRequest['passphrase']); + } + if (isset($this->certRequest['certpassword'])) { + $this->setCurlOption(CURLOPT_SSLCERTPASSWD, $this->certRequest['certpassword']); + } + } + } + if ($this->authtype && ($this->authtype != 'certificate')) { + if ($this->username) { + $this->debug('set cURL username/password'); + $this->setCurlOption(CURLOPT_USERPWD, "$this->username:$this->password"); + } + if ($this->authtype == 'basic') { + $this->debug('set cURL for Basic authentication'); + $this->setCurlOption($CURLOPT_HTTPAUTH, $CURLAUTH_BASIC); + } + if ($this->authtype == 'digest') { + $this->debug('set cURL for digest authentication'); + $this->setCurlOption($CURLOPT_HTTPAUTH, $CURLAUTH_DIGEST); + } + if ($this->authtype == 'ntlm') { + $this->debug('set cURL for NTLM authentication'); + $this->setCurlOption($CURLOPT_HTTPAUTH, $CURLAUTH_NTLM); + } + } + if (is_array($this->proxy)) { + $this->debug('set cURL proxy options'); + if ($this->proxy['port'] != '') { + $this->setCurlOption(CURLOPT_PROXY, $this->proxy['host'].':'.$this->proxy['port']); + } else { + $this->setCurlOption(CURLOPT_PROXY, $this->proxy['host']); + } + if ($this->proxy['username'] || $this->proxy['password']) { + $this->debug('set cURL proxy authentication options'); + $this->setCurlOption(CURLOPT_PROXYUSERPWD, $this->proxy['username'].':'.$this->proxy['password']); + if ($this->proxy['authtype'] == 'basic') { + $this->setCurlOption($CURLOPT_PROXYAUTH, $CURLAUTH_BASIC); + } + if ($this->proxy['authtype'] == 'ntlm') { + $this->setCurlOption($CURLOPT_PROXYAUTH, $CURLAUTH_NTLM); + } + } + } + $this->debug('cURL connection set up'); + return true; + } else { + $this->setError('Unknown scheme ' . $this->scheme); + $this->debug('Unknown scheme ' . $this->scheme); + return false; + } + } + + /** + * sends the SOAP request and gets the SOAP response via HTTP[S] + * + * @param string $data message data + * @param integer $timeout set connection timeout in seconds + * @param integer $response_timeout set response timeout in seconds + * @param array $cookies cookies to send + * @return string data + * @access public + */ + function send($data, $timeout=0, $response_timeout=30, $cookies=NULL) { + + $this->debug('entered send() with data of length: '.strlen($data)); + + $this->tryagain = true; + $tries = 0; + while ($this->tryagain) { + $this->tryagain = false; + if ($tries++ < 2) { + // make connnection + if (!$this->connect($timeout, $response_timeout)){ + return false; + } + + // send request + if (!$this->sendRequest($data, $cookies)){ + return false; + } + + // get response + $respdata = $this->getResponse(); + } else { + $this->setError("Too many tries to get an OK response ($this->response_status_line)"); + } + } + $this->debug('end of send()'); + return $respdata; + } + + + /** + * sends the SOAP request and gets the SOAP response via HTTPS using CURL + * + * @param string $data message data + * @param integer $timeout set connection timeout in seconds + * @param integer $response_timeout set response timeout in seconds + * @param array $cookies cookies to send + * @return string data + * @access public + * @deprecated + */ + function sendHTTPS($data, $timeout=0, $response_timeout=30, $cookies) { + return $this->send($data, $timeout, $response_timeout, $cookies); + } + + /** + * if authenticating, set user credentials here + * + * @param string $username + * @param string $password + * @param string $authtype (basic|digest|certificate|ntlm) + * @param array $digestRequest (keys must be nonce, nc, realm, qop) + * @param array $certRequest (keys must be cainfofile (optional), sslcertfile, sslkeyfile, passphrase, certpassword (optional), verifypeer (optional), verifyhost (optional): see corresponding options in cURL docs) + * @access public + */ + function setCredentials($username, $password, $authtype = 'basic', $digestRequest = array(), $certRequest = array()) { + $this->debug("setCredentials username=$username authtype=$authtype digestRequest="); + $this->appendDebug($this->varDump($digestRequest)); + $this->debug("certRequest="); + $this->appendDebug($this->varDump($certRequest)); + // cf. RFC 2617 + if ($authtype == 'basic') { + $this->setHeader('Authorization', 'Basic '.base64_encode(str_replace(':','',$username).':'.$password)); + } elseif ($authtype == 'digest') { + if (isset($digestRequest['nonce'])) { + $digestRequest['nc'] = isset($digestRequest['nc']) ? $digestRequest['nc']++ : 1; + + // calculate the Digest hashes (calculate code based on digest implementation found at: http://www.rassoc.com/gregr/weblog/stories/2002/07/09/webServicesSecurityHttpDigestAuthenticationWithoutActiveDirectory.html) + + // A1 = unq(username-value) ":" unq(realm-value) ":" passwd + $A1 = $username. ':' . (isset($digestRequest['realm']) ? $digestRequest['realm'] : '') . ':' . $password; + + // H(A1) = MD5(A1) + $HA1 = md5($A1); + + // A2 = Method ":" digest-uri-value + $A2 = $this->request_method . ':' . $this->digest_uri; + + // H(A2) + $HA2 = md5($A2); + + // KD(secret, data) = H(concat(secret, ":", data)) + // if qop == auth: + // request-digest = <"> < KD ( H(A1), unq(nonce-value) + // ":" nc-value + // ":" unq(cnonce-value) + // ":" unq(qop-value) + // ":" H(A2) + // ) <"> + // if qop is missing, + // request-digest = <"> < KD ( H(A1), unq(nonce-value) ":" H(A2) ) > <"> + + $unhashedDigest = ''; + $nonce = isset($digestRequest['nonce']) ? $digestRequest['nonce'] : ''; + $cnonce = $nonce; + if ($digestRequest['qop'] != '') { + $unhashedDigest = $HA1 . ':' . $nonce . ':' . sprintf("%08d", $digestRequest['nc']) . ':' . $cnonce . ':' . $digestRequest['qop'] . ':' . $HA2; + } else { + $unhashedDigest = $HA1 . ':' . $nonce . ':' . $HA2; + } + + $hashedDigest = md5($unhashedDigest); + + $opaque = ''; + if (isset($digestRequest['opaque'])) { + $opaque = ', opaque="' . $digestRequest['opaque'] . '"'; + } + + $this->setHeader('Authorization', 'Digest username="' . $username . '", realm="' . $digestRequest['realm'] . '", nonce="' . $nonce . '", uri="' . $this->digest_uri . $opaque . '", cnonce="' . $cnonce . '", nc=' . sprintf("%08x", $digestRequest['nc']) . ', qop="' . $digestRequest['qop'] . '", response="' . $hashedDigest . '"'); + } + } elseif ($authtype == 'certificate') { + $this->certRequest = $certRequest; + $this->debug('Authorization header not set for certificate'); + } elseif ($authtype == 'ntlm') { + // do nothing + $this->debug('Authorization header not set for ntlm'); + } + $this->username = $username; + $this->password = $password; + $this->authtype = $authtype; + $this->digestRequest = $digestRequest; + } + + /** + * set the soapaction value + * + * @param string $soapaction + * @access public + */ + function setSOAPAction($soapaction) { + $this->setHeader('SOAPAction', '"' . $soapaction . '"'); + } + + /** + * use http encoding + * + * @param string $enc encoding style. supported values: gzip, deflate, or both + * @access public + */ + function setEncoding($enc='gzip, deflate') { + if (function_exists('gzdeflate')) { + $this->protocol_version = '1.1'; + $this->setHeader('Accept-Encoding', $enc); + if (!isset($this->outgoing_headers['Connection'])) { + $this->setHeader('Connection', 'close'); + $this->persistentConnection = false; + } + // deprecated as of PHP 5.3.0 + //set_magic_quotes_runtime(0); + $this->encoding = $enc; + } + } + + /** + * set proxy info here + * + * @param string $proxyhost use an empty string to remove proxy + * @param string $proxyport + * @param string $proxyusername + * @param string $proxypassword + * @param string $proxyauthtype (basic|ntlm) + * @access public + */ + function setProxy($proxyhost, $proxyport, $proxyusername = '', $proxypassword = '', $proxyauthtype = 'basic') { + if ($proxyhost) { + $this->proxy = array( + 'host' => $proxyhost, + 'port' => $proxyport, + 'username' => $proxyusername, + 'password' => $proxypassword, + 'authtype' => $proxyauthtype + ); + if ($proxyusername != '' && $proxypassword != '' && $proxyauthtype = 'basic') { + $this->setHeader('Proxy-Authorization', ' Basic '.base64_encode($proxyusername.':'.$proxypassword)); + } + } else { + $this->debug('remove proxy'); + $proxy = null; + unsetHeader('Proxy-Authorization'); + } + } + + + /** + * Test if the given string starts with a header that is to be skipped. + * Skippable headers result from chunked transfer and proxy requests. + * + * @param string $data The string to check. + * @returns boolean Whether a skippable header was found. + * @access private + */ + function isSkippableCurlHeader(&$data) { + $skipHeaders = array( 'HTTP/1.1 100', + 'HTTP/1.0 301', + 'HTTP/1.1 301', + 'HTTP/1.0 302', + 'HTTP/1.1 302', + 'HTTP/1.0 401', + 'HTTP/1.1 401', + 'HTTP/1.0 200 Connection established'); + foreach ($skipHeaders as $hd) { + $prefix = substr($data, 0, strlen($hd)); + if ($prefix == $hd) return true; + } + + return false; + } + + /** + * decode a string that is encoded w/ "chunked' transfer encoding + * as defined in RFC2068 19.4.6 + * + * @param string $buffer + * @param string $lb + * @returns string + * @access public + * @deprecated + */ + function decodeChunked($buffer, $lb){ + // length := 0 + $length = 0; + $new = ''; + + // read chunk-size, chunk-extension (if any) and CRLF + // get the position of the linebreak + $chunkend = strpos($buffer, $lb); + if ($chunkend == FALSE) { + $this->debug('no linebreak found in decodeChunked'); + return $new; + } + $temp = substr($buffer,0,$chunkend); + $chunk_size = hexdec( trim($temp) ); + $chunkstart = $chunkend + strlen($lb); + // while (chunk-size > 0) { + while ($chunk_size > 0) { + $this->debug("chunkstart: $chunkstart chunk_size: $chunk_size"); + $chunkend = strpos( $buffer, $lb, $chunkstart + $chunk_size); + + // Just in case we got a broken connection + if ($chunkend == FALSE) { + $chunk = substr($buffer,$chunkstart); + // append chunk-data to entity-body + $new .= $chunk; + $length += strlen($chunk); + break; + } + + // read chunk-data and CRLF + $chunk = substr($buffer,$chunkstart,$chunkend-$chunkstart); + // append chunk-data to entity-body + $new .= $chunk; + // length := length + chunk-size + $length += strlen($chunk); + // read chunk-size and CRLF + $chunkstart = $chunkend + strlen($lb); + + $chunkend = strpos($buffer, $lb, $chunkstart) + strlen($lb); + if ($chunkend == FALSE) { + break; //Just in case we got a broken connection + } + $temp = substr($buffer,$chunkstart,$chunkend-$chunkstart); + $chunk_size = hexdec( trim($temp) ); + $chunkstart = $chunkend; + } + return $new; + } + + /** + * Writes the payload, including HTTP headers, to $this->outgoing_payload. + * + * @param string $data HTTP body + * @param string $cookie_str data for HTTP Cookie header + * @return void + * @access private + */ + function buildPayload($data, $cookie_str = '') { + // Note: for cURL connections, $this->outgoing_payload is ignored, + // as is the Content-Length header, but these are still created as + // debugging guides. + + // add content-length header + if ($this->request_method != 'GET') { + $this->setHeader('Content-Length', strlen($data)); + } + + // start building outgoing payload: + if ($this->proxy) { + $uri = $this->url; + } else { + $uri = $this->uri; + } + $req = "$this->request_method $uri HTTP/$this->protocol_version"; + $this->debug("HTTP request: $req"); + $this->outgoing_payload = "$req\r\n"; + + // loop thru headers, serializing + foreach($this->outgoing_headers as $k => $v){ + $hdr = $k.': '.$v; + $this->debug("HTTP header: $hdr"); + $this->outgoing_payload .= "$hdr\r\n"; + } + + // add any cookies + if ($cookie_str != '') { + $hdr = 'Cookie: '.$cookie_str; + $this->debug("HTTP header: $hdr"); + $this->outgoing_payload .= "$hdr\r\n"; + } + + // header/body separator + $this->outgoing_payload .= "\r\n"; + + // add data + $this->outgoing_payload .= $data; + } + + /** + * sends the SOAP request via HTTP[S] + * + * @param string $data message data + * @param array $cookies cookies to send + * @return boolean true if OK, false if problem + * @access private + */ + function sendRequest($data, $cookies = NULL) { + // build cookie string + $cookie_str = $this->getCookiesForRequest($cookies, (($this->scheme == 'ssl') || ($this->scheme == 'https'))); + + // build payload + $this->buildPayload($data, $cookie_str); + + if ($this->io_method() == 'socket') { + // send payload + if(!fputs($this->fp, $this->outgoing_payload, strlen($this->outgoing_payload))) { + $this->setError('couldn\'t write message data to socket'); + $this->debug('couldn\'t write message data to socket'); + return false; + } + $this->debug('wrote data to socket, length = ' . strlen($this->outgoing_payload)); + return true; + } else if ($this->io_method() == 'curl') { + // set payload + // cURL does say this should only be the verb, and in fact it + // turns out that the URI and HTTP version are appended to this, which + // some servers refuse to work with (so we no longer use this method!) + //$this->setCurlOption(CURLOPT_CUSTOMREQUEST, $this->outgoing_payload); + $curl_headers = array(); + foreach($this->outgoing_headers as $k => $v){ + if ($k == 'Connection' || $k == 'Content-Length' || $k == 'Host' || $k == 'Authorization' || $k == 'Proxy-Authorization') { + $this->debug("Skip cURL header $k: $v"); + } else { + $curl_headers[] = "$k: $v"; + } + } + if ($cookie_str != '') { + $curl_headers[] = 'Cookie: ' . $cookie_str; + } + $this->setCurlOption(CURLOPT_HTTPHEADER, $curl_headers); + $this->debug('set cURL HTTP headers'); + if ($this->request_method == "POST") { + $this->setCurlOption(CURLOPT_POST, 1); + $this->setCurlOption(CURLOPT_POSTFIELDS, $data); + $this->debug('set cURL POST data'); + } else { + } + // insert custom user-set cURL options + foreach ($this->ch_options as $key => $val) { + $this->setCurlOption($key, $val); + } + + $this->debug('set cURL payload'); + return true; + } + } + + /** + * gets the SOAP response via HTTP[S] + * + * @return string the response (also sets member variables like incoming_payload) + * @access private + */ + function getResponse(){ + $this->incoming_payload = ''; + + if ($this->io_method() == 'socket') { + // loop until headers have been retrieved + $data = ''; + while (!isset($lb)){ + + // We might EOF during header read. + if(feof($this->fp)) { + $this->incoming_payload = $data; + $this->debug('found no headers before EOF after length ' . strlen($data)); + $this->debug("received before EOF:\n" . $data); + $this->setError('server failed to send headers'); + return false; + } + + $tmp = fgets($this->fp, 256); + $tmplen = strlen($tmp); + $this->debug("read line of $tmplen bytes: " . trim($tmp)); + + if ($tmplen == 0) { + $this->incoming_payload = $data; + $this->debug('socket read of headers timed out after length ' . strlen($data)); + $this->debug("read before timeout: " . $data); + $this->setError('socket read of headers timed out'); + return false; + } + + $data .= $tmp; + $pos = strpos($data,"\r\n\r\n"); + if($pos > 1){ + $lb = "\r\n"; + } else { + $pos = strpos($data,"\n\n"); + if($pos > 1){ + $lb = "\n"; + } + } + // remove 100 headers + if (isset($lb) && preg_match('/^HTTP\/1.1 100/',$data)) { + unset($lb); + $data = ''; + }// + } + // store header data + $this->incoming_payload .= $data; + $this->debug('found end of headers after length ' . strlen($data)); + // process headers + $header_data = trim(substr($data,0,$pos)); + $header_array = explode($lb,$header_data); + $this->incoming_headers = array(); + $this->incoming_cookies = array(); + foreach($header_array as $header_line){ + $arr = explode(':',$header_line, 2); + if(count($arr) > 1){ + $header_name = strtolower(trim($arr[0])); + $this->incoming_headers[$header_name] = trim($arr[1]); + if ($header_name == 'set-cookie') { + // TODO: allow multiple cookies from parseCookie + $cookie = $this->parseCookie(trim($arr[1])); + if ($cookie) { + $this->incoming_cookies[] = $cookie; + $this->debug('found cookie: ' . $cookie['name'] . ' = ' . $cookie['value']); + } else { + $this->debug('did not find cookie in ' . trim($arr[1])); + } + } + } else if (isset($header_name)) { + // append continuation line to previous header + $this->incoming_headers[$header_name] .= $lb . ' ' . $header_line; + } + } + + // loop until msg has been received + if (isset($this->incoming_headers['transfer-encoding']) && strtolower($this->incoming_headers['transfer-encoding']) == 'chunked') { + $content_length = 2147483647; // ignore any content-length header + $chunked = true; + $this->debug("want to read chunked content"); + } elseif (isset($this->incoming_headers['content-length'])) { + $content_length = $this->incoming_headers['content-length']; + $chunked = false; + $this->debug("want to read content of length $content_length"); + } else { + $content_length = 2147483647; + $chunked = false; + $this->debug("want to read content to EOF"); + } + $data = ''; + do { + if ($chunked) { + $tmp = fgets($this->fp, 256); + $tmplen = strlen($tmp); + $this->debug("read chunk line of $tmplen bytes"); + if ($tmplen == 0) { + $this->incoming_payload = $data; + $this->debug('socket read of chunk length timed out after length ' . strlen($data)); + $this->debug("read before timeout:\n" . $data); + $this->setError('socket read of chunk length timed out'); + return false; + } + $content_length = hexdec(trim($tmp)); + $this->debug("chunk length $content_length"); + } + $strlen = 0; + while (($strlen < $content_length) && (!feof($this->fp))) { + $readlen = min(8192, $content_length - $strlen); + $tmp = fread($this->fp, $readlen); + $tmplen = strlen($tmp); + $this->debug("read buffer of $tmplen bytes"); + if (($tmplen == 0) && (!feof($this->fp))) { + $this->incoming_payload = $data; + $this->debug('socket read of body timed out after length ' . strlen($data)); + $this->debug("read before timeout:\n" . $data); + $this->setError('socket read of body timed out'); + return false; + } + $strlen += $tmplen; + $data .= $tmp; + } + if ($chunked && ($content_length > 0)) { + $tmp = fgets($this->fp, 256); + $tmplen = strlen($tmp); + $this->debug("read chunk terminator of $tmplen bytes"); + if ($tmplen == 0) { + $this->incoming_payload = $data; + $this->debug('socket read of chunk terminator timed out after length ' . strlen($data)); + $this->debug("read before timeout:\n" . $data); + $this->setError('socket read of chunk terminator timed out'); + return false; + } + } + } while ($chunked && ($content_length > 0) && (!feof($this->fp))); + if (feof($this->fp)) { + $this->debug('read to EOF'); + } + $this->debug('read body of length ' . strlen($data)); + $this->incoming_payload .= $data; + $this->debug('received a total of '.strlen($this->incoming_payload).' bytes of data from server'); + + // close filepointer + if( + (isset($this->incoming_headers['connection']) && strtolower($this->incoming_headers['connection']) == 'close') || + (! $this->persistentConnection) || feof($this->fp)){ + fclose($this->fp); + $this->fp = false; + $this->debug('closed socket'); + } + + // connection was closed unexpectedly + if($this->incoming_payload == ''){ + $this->setError('no response from server'); + return false; + } + + // decode transfer-encoding +// if(isset($this->incoming_headers['transfer-encoding']) && strtolower($this->incoming_headers['transfer-encoding']) == 'chunked'){ +// if(!$data = $this->decodeChunked($data, $lb)){ +// $this->setError('Decoding of chunked data failed'); +// return false; +// } + //print "
\nde-chunked:\n---------------\n$data\n\n---------------\n
"; + // set decoded payload +// $this->incoming_payload = $header_data.$lb.$lb.$data; +// } + + } else if ($this->io_method() == 'curl') { + // send and receive + $this->debug('send and receive with cURL'); + $this->incoming_payload = curl_exec($this->ch); + $data = $this->incoming_payload; + + $cErr = curl_error($this->ch); + if ($cErr != '') { + $err = 'cURL ERROR: '.curl_errno($this->ch).': '.$cErr.'
'; + // TODO: there is a PHP bug that can cause this to SEGV for CURLINFO_CONTENT_TYPE + foreach(curl_getinfo($this->ch) as $k => $v){ + $err .= "$k: $v
"; + } + $this->debug($err); + $this->setError($err); + curl_close($this->ch); + return false; + } else { + //echo '
';
+			//var_dump(curl_getinfo($this->ch));
+			//echo '
'; + } + // close curl + $this->debug('No cURL error, closing cURL'); + curl_close($this->ch); + + // try removing skippable headers + $savedata = $data; + while ($this->isSkippableCurlHeader($data)) { + $this->debug("Found HTTP header to skip"); + if ($pos = strpos($data,"\r\n\r\n")) { + $data = ltrim(substr($data,$pos)); + } elseif($pos = strpos($data,"\n\n") ) { + $data = ltrim(substr($data,$pos)); + } + } + + if ($data == '') { + // have nothing left; just remove 100 header(s) + $data = $savedata; + while (preg_match('/^HTTP\/1.1 100/',$data)) { + if ($pos = strpos($data,"\r\n\r\n")) { + $data = ltrim(substr($data,$pos)); + } elseif($pos = strpos($data,"\n\n") ) { + $data = ltrim(substr($data,$pos)); + } + } + } + + // separate content from HTTP headers + if ($pos = strpos($data,"\r\n\r\n")) { + $lb = "\r\n"; + } elseif( $pos = strpos($data,"\n\n")) { + $lb = "\n"; + } else { + $this->debug('no proper separation of headers and document'); + $this->setError('no proper separation of headers and document'); + return false; + } + $header_data = trim(substr($data,0,$pos)); + $header_array = explode($lb,$header_data); + $data = ltrim(substr($data,$pos)); + $this->debug('found proper separation of headers and document'); + $this->debug('cleaned data, stringlen: '.strlen($data)); + // clean headers + foreach ($header_array as $header_line) { + $arr = explode(':',$header_line,2); + if(count($arr) > 1){ + $header_name = strtolower(trim($arr[0])); + $this->incoming_headers[$header_name] = trim($arr[1]); + if ($header_name == 'set-cookie') { + // TODO: allow multiple cookies from parseCookie + $cookie = $this->parseCookie(trim($arr[1])); + if ($cookie) { + $this->incoming_cookies[] = $cookie; + $this->debug('found cookie: ' . $cookie['name'] . ' = ' . $cookie['value']); + } else { + $this->debug('did not find cookie in ' . trim($arr[1])); + } + } + } else if (isset($header_name)) { + // append continuation line to previous header + $this->incoming_headers[$header_name] .= $lb . ' ' . $header_line; + } + } + } + + $this->response_status_line = $header_array[0]; + $arr = explode(' ', $this->response_status_line, 3); + $http_version = $arr[0]; + $http_status = intval($arr[1]); + $http_reason = count($arr) > 2 ? $arr[2] : ''; + + // see if we need to resend the request with http digest authentication + if (isset($this->incoming_headers['location']) && ($http_status == 301 || $http_status == 302)) { + $this->debug("Got $http_status $http_reason with Location: " . $this->incoming_headers['location']); + $this->setURL($this->incoming_headers['location']); + $this->tryagain = true; + return false; + } + + // see if we need to resend the request with http digest authentication + if (isset($this->incoming_headers['www-authenticate']) && $http_status == 401) { + $this->debug("Got 401 $http_reason with WWW-Authenticate: " . $this->incoming_headers['www-authenticate']); + if (strstr($this->incoming_headers['www-authenticate'], "Digest ")) { + $this->debug('Server wants digest authentication'); + // remove "Digest " from our elements + $digestString = str_replace('Digest ', '', $this->incoming_headers['www-authenticate']); + + // parse elements into array + $digestElements = explode(',', $digestString); + foreach ($digestElements as $val) { + $tempElement = explode('=', trim($val), 2); + $digestRequest[$tempElement[0]] = str_replace("\"", '', $tempElement[1]); + } + + // should have (at least) qop, realm, nonce + if (isset($digestRequest['nonce'])) { + $this->setCredentials($this->username, $this->password, 'digest', $digestRequest); + $this->tryagain = true; + return false; + } + } + $this->debug('HTTP authentication failed'); + $this->setError('HTTP authentication failed'); + return false; + } + + if ( + ($http_status >= 300 && $http_status <= 307) || + ($http_status >= 400 && $http_status <= 417) || + ($http_status >= 501 && $http_status <= 505) + ) { + $this->setError("Unsupported HTTP response status $http_status $http_reason (soapclient->response has contents of the response)"); + return false; + } + + // decode content-encoding + if(isset($this->incoming_headers['content-encoding']) && $this->incoming_headers['content-encoding'] != ''){ + if(strtolower($this->incoming_headers['content-encoding']) == 'deflate' || strtolower($this->incoming_headers['content-encoding']) == 'gzip'){ + // if decoding works, use it. else assume data wasn't gzencoded + if(function_exists('gzinflate')){ + //$timer->setMarker('starting decoding of gzip/deflated content'); + // IIS 5 requires gzinflate instead of gzuncompress (similar to IE 5 and gzdeflate v. gzcompress) + // this means there are no Zlib headers, although there should be + $this->debug('The gzinflate function exists'); + $datalen = strlen($data); + if ($this->incoming_headers['content-encoding'] == 'deflate') { + if ($degzdata = @gzinflate($data)) { + $data = $degzdata; + $this->debug('The payload has been inflated to ' . strlen($data) . ' bytes'); + if (strlen($data) < $datalen) { + // test for the case that the payload has been compressed twice + $this->debug('The inflated payload is smaller than the gzipped one; try again'); + if ($degzdata = @gzinflate($data)) { + $data = $degzdata; + $this->debug('The payload has been inflated again to ' . strlen($data) . ' bytes'); + } + } + } else { + $this->debug('Error using gzinflate to inflate the payload'); + $this->setError('Error using gzinflate to inflate the payload'); + } + } elseif ($this->incoming_headers['content-encoding'] == 'gzip') { + if ($degzdata = @gzinflate(substr($data, 10))) { // do our best + $data = $degzdata; + $this->debug('The payload has been un-gzipped to ' . strlen($data) . ' bytes'); + if (strlen($data) < $datalen) { + // test for the case that the payload has been compressed twice + $this->debug('The un-gzipped payload is smaller than the gzipped one; try again'); + if ($degzdata = @gzinflate(substr($data, 10))) { + $data = $degzdata; + $this->debug('The payload has been un-gzipped again to ' . strlen($data) . ' bytes'); + } + } + } else { + $this->debug('Error using gzinflate to un-gzip the payload'); + $this->setError('Error using gzinflate to un-gzip the payload'); + } + } + //$timer->setMarker('finished decoding of gzip/deflated content'); + //print "\nde-inflated:\n---------------\n$data\n-------------\n"; + // set decoded payload + $this->incoming_payload = $header_data.$lb.$lb.$data; + } else { + $this->debug('The server sent compressed data. Your php install must have the Zlib extension compiled in to support this.'); + $this->setError('The server sent compressed data. Your php install must have the Zlib extension compiled in to support this.'); + } + } else { + $this->debug('Unsupported Content-Encoding ' . $this->incoming_headers['content-encoding']); + $this->setError('Unsupported Content-Encoding ' . $this->incoming_headers['content-encoding']); + } + } else { + $this->debug('No Content-Encoding header'); + } + + if(strlen($data) == 0){ + $this->debug('no data after headers!'); + $this->setError('no data present after HTTP headers'); + return false; + } + + return $data; + } + + /** + * sets the content-type for the SOAP message to be sent + * + * @param string $type the content type, MIME style + * @param mixed $charset character set used for encoding (or false) + * @access public + */ + function setContentType($type, $charset = false) { + $this->setHeader('Content-Type', $type . ($charset ? '; charset=' . $charset : '')); + } + + /** + * specifies that an HTTP persistent connection should be used + * + * @return boolean whether the request was honored by this method. + * @access public + */ + function usePersistentConnection(){ + if (isset($this->outgoing_headers['Accept-Encoding'])) { + return false; + } + $this->protocol_version = '1.1'; + $this->persistentConnection = true; + $this->setHeader('Connection', 'Keep-Alive'); + return true; + } + + /** + * parse an incoming Cookie into it's parts + * + * @param string $cookie_str content of cookie + * @return array with data of that cookie + * @access private + */ + /* + * TODO: allow a Set-Cookie string to be parsed into multiple cookies + */ + function parseCookie($cookie_str) { + $cookie_str = str_replace('; ', ';', $cookie_str) . ';'; + $data = preg_split('/;/', $cookie_str); + $value_str = $data[0]; + + $cookie_param = 'domain='; + $start = strpos($cookie_str, $cookie_param); + if ($start > 0) { + $domain = substr($cookie_str, $start + strlen($cookie_param)); + $domain = substr($domain, 0, strpos($domain, ';')); + } else { + $domain = ''; + } + + $cookie_param = 'expires='; + $start = strpos($cookie_str, $cookie_param); + if ($start > 0) { + $expires = substr($cookie_str, $start + strlen($cookie_param)); + $expires = substr($expires, 0, strpos($expires, ';')); + } else { + $expires = ''; + } + + $cookie_param = 'path='; + $start = strpos($cookie_str, $cookie_param); + if ( $start > 0 ) { + $path = substr($cookie_str, $start + strlen($cookie_param)); + $path = substr($path, 0, strpos($path, ';')); + } else { + $path = '/'; + } + + $cookie_param = ';secure;'; + if (strpos($cookie_str, $cookie_param) !== FALSE) { + $secure = true; + } else { + $secure = false; + } + + $sep_pos = strpos($value_str, '='); + + if ($sep_pos) { + $name = substr($value_str, 0, $sep_pos); + $value = substr($value_str, $sep_pos + 1); + $cookie= array( 'name' => $name, + 'value' => $value, + 'domain' => $domain, + 'path' => $path, + 'expires' => $expires, + 'secure' => $secure + ); + return $cookie; + } + return false; + } + + /** + * sort out cookies for the current request + * + * @param array $cookies array with all cookies + * @param boolean $secure is the send-content secure or not? + * @return string for Cookie-HTTP-Header + * @access private + */ + function getCookiesForRequest($cookies, $secure=false) { + $cookie_str = ''; + if ((! is_null($cookies)) && (is_array($cookies))) { + foreach ($cookies as $cookie) { + if (! is_array($cookie)) { + continue; + } + $this->debug("check cookie for validity: ".$cookie['name'].'='.$cookie['value']); + if ((isset($cookie['expires'])) && (! empty($cookie['expires']))) { + if (strtotime($cookie['expires']) <= time()) { + $this->debug('cookie has expired'); + continue; + } + } + if ((isset($cookie['domain'])) && (! empty($cookie['domain']))) { + $domain = preg_quote($cookie['domain']); + if (! preg_match("'.*$domain$'i", $this->host)) { + $this->debug('cookie has different domain'); + continue; + } + } + if ((isset($cookie['path'])) && (! empty($cookie['path']))) { + $path = preg_quote($cookie['path']); + if (! preg_match("'^$path.*'i", $this->path)) { + $this->debug('cookie is for a different path'); + continue; + } + } + if ((! $secure) && (isset($cookie['secure'])) && ($cookie['secure'])) { + $this->debug('cookie is secure, transport is not'); + continue; + } + $cookie_str .= $cookie['name'] . '=' . $cookie['value'] . '; '; + $this->debug('add cookie to Cookie-String: ' . $cookie['name'] . '=' . $cookie['value']); + } + } + return $cookie_str; + } +} + +?> +* @author Scott Nichol +* @version $Id: nusoap.php,v 1.123 2010/04/26 20:15:08 snichol Exp $ +* @access public +*/ +class nusoap_server extends nusoap_base { + /** + * HTTP headers of request + * @var array + * @access private + */ + var $headers = array(); + /** + * HTTP request + * @var string + * @access private + */ + var $request = ''; + /** + * SOAP headers from request (incomplete namespace resolution; special characters not escaped) (text) + * @var string + * @access public + */ + var $requestHeaders = ''; + /** + * SOAP Headers from request (parsed) + * @var mixed + * @access public + */ + var $requestHeader = NULL; + /** + * SOAP body request portion (incomplete namespace resolution; special characters not escaped) (text) + * @var string + * @access public + */ + var $document = ''; + /** + * SOAP payload for request (text) + * @var string + * @access public + */ + var $requestSOAP = ''; + /** + * requested method namespace URI + * @var string + * @access private + */ + var $methodURI = ''; + /** + * name of method requested + * @var string + * @access private + */ + var $methodname = ''; + /** + * method parameters from request + * @var array + * @access private + */ + var $methodparams = array(); + /** + * SOAP Action from request + * @var string + * @access private + */ + var $SOAPAction = ''; + /** + * character set encoding of incoming (request) messages + * @var string + * @access public + */ + var $xml_encoding = ''; + /** + * toggles whether the parser decodes element content w/ utf8_decode() + * @var boolean + * @access public + */ + var $decode_utf8 = true; + + /** + * HTTP headers of response + * @var array + * @access public + */ + var $outgoing_headers = array(); + /** + * HTTP response + * @var string + * @access private + */ + var $response = ''; + /** + * SOAP headers for response (text or array of soapval or associative array) + * @var mixed + * @access public + */ + var $responseHeaders = ''; + /** + * SOAP payload for response (text) + * @var string + * @access private + */ + var $responseSOAP = ''; + /** + * method return value to place in response + * @var mixed + * @access private + */ + var $methodreturn = false; + /** + * whether $methodreturn is a string of literal XML + * @var boolean + * @access public + */ + var $methodreturnisliteralxml = false; + /** + * SOAP fault for response (or false) + * @var mixed + * @access private + */ + var $fault = false; + /** + * text indication of result (for debugging) + * @var string + * @access private + */ + var $result = 'successful'; + + /** + * assoc array of operations => opData; operations are added by the register() + * method or by parsing an external WSDL definition + * @var array + * @access private + */ + var $operations = array(); + /** + * wsdl instance (if one) + * @var mixed + * @access private + */ + var $wsdl = false; + /** + * URL for WSDL (if one) + * @var mixed + * @access private + */ + var $externalWSDLURL = false; + /** + * whether to append debug to response as XML comment + * @var boolean + * @access public + */ + var $debug_flag = false; + + + /** + * constructor + * the optional parameter is a path to a WSDL file that you'd like to bind the server instance to. + * + * @param mixed $wsdl file path or URL (string), or wsdl instance (object) + * @access public + */ + function nusoap_server($wsdl=false){ + parent::nusoap_base(); + // turn on debugging? + global $debug; + global $HTTP_SERVER_VARS; + + if (isset($_SERVER)) { + $this->debug("_SERVER is defined:"); + $this->appendDebug($this->varDump($_SERVER)); + } elseif (isset($HTTP_SERVER_VARS)) { + $this->debug("HTTP_SERVER_VARS is defined:"); + $this->appendDebug($this->varDump($HTTP_SERVER_VARS)); + } else { + $this->debug("Neither _SERVER nor HTTP_SERVER_VARS is defined."); + } + + if (isset($debug)) { + $this->debug("In nusoap_server, set debug_flag=$debug based on global flag"); + $this->debug_flag = $debug; + } elseif (isset($_SERVER['QUERY_STRING'])) { + $qs = explode('&', $_SERVER['QUERY_STRING']); + foreach ($qs as $v) { + if (substr($v, 0, 6) == 'debug=') { + $this->debug("In nusoap_server, set debug_flag=" . substr($v, 6) . " based on query string #1"); + $this->debug_flag = substr($v, 6); + } + } + } elseif (isset($HTTP_SERVER_VARS['QUERY_STRING'])) { + $qs = explode('&', $HTTP_SERVER_VARS['QUERY_STRING']); + foreach ($qs as $v) { + if (substr($v, 0, 6) == 'debug=') { + $this->debug("In nusoap_server, set debug_flag=" . substr($v, 6) . " based on query string #2"); + $this->debug_flag = substr($v, 6); + } + } + } + + // wsdl + if($wsdl){ + $this->debug("In nusoap_server, WSDL is specified"); + if (is_object($wsdl) && (get_class($wsdl) == 'wsdl')) { + $this->wsdl = $wsdl; + $this->externalWSDLURL = $this->wsdl->wsdl; + $this->debug('Use existing wsdl instance from ' . $this->externalWSDLURL); + } else { + $this->debug('Create wsdl from ' . $wsdl); + $this->wsdl = new wsdl($wsdl); + $this->externalWSDLURL = $wsdl; + } + $this->appendDebug($this->wsdl->getDebug()); + $this->wsdl->clearDebug(); + if($err = $this->wsdl->getError()){ + die('WSDL ERROR: '.$err); + } + } + } + + /** + * processes request and returns response + * + * @param string $data usually is the value of $HTTP_RAW_POST_DATA + * @access public + */ + function service($data){ + global $HTTP_SERVER_VARS; + + if (isset($_SERVER['REQUEST_METHOD'])) { + $rm = $_SERVER['REQUEST_METHOD']; + } elseif (isset($HTTP_SERVER_VARS['REQUEST_METHOD'])) { + $rm = $HTTP_SERVER_VARS['REQUEST_METHOD']; + } else { + $rm = ''; + } + + if (isset($_SERVER['QUERY_STRING'])) { + $qs = $_SERVER['QUERY_STRING']; + } elseif (isset($HTTP_SERVER_VARS['QUERY_STRING'])) { + $qs = $HTTP_SERVER_VARS['QUERY_STRING']; + } else { + $qs = ''; + } + $this->debug("In service, request method=$rm query string=$qs strlen(\$data)=" . strlen($data)); + + if ($rm == 'POST') { + $this->debug("In service, invoke the request"); + $this->parse_request($data); + if (! $this->fault) { + $this->invoke_method(); + } + if (! $this->fault) { + $this->serialize_return(); + } + $this->send_response(); + } elseif (preg_match('/wsdl/', $qs) ){ + $this->debug("In service, this is a request for WSDL"); + if ($this->externalWSDLURL){ + if (strpos($this->externalWSDLURL, "http://") !== false) { // assume URL + $this->debug("In service, re-direct for WSDL"); + header('Location: '.$this->externalWSDLURL); + } else { // assume file + $this->debug("In service, use file passthru for WSDL"); + header("Content-Type: text/xml\r\n"); + $pos = strpos($this->externalWSDLURL, "file://"); + if ($pos === false) { + $filename = $this->externalWSDLURL; + } else { + $filename = substr($this->externalWSDLURL, $pos + 7); + } + $fp = fopen($this->externalWSDLURL, 'r'); + fpassthru($fp); + } + } elseif ($this->wsdl) { + $this->debug("In service, serialize WSDL"); + header("Content-Type: text/xml; charset=ISO-8859-1\r\n"); + print $this->wsdl->serialize($this->debug_flag); + if ($this->debug_flag) { + $this->debug('wsdl:'); + $this->appendDebug($this->varDump($this->wsdl)); + print $this->getDebugAsXMLComment(); + } + } else { + $this->debug("In service, there is no WSDL"); + header("Content-Type: text/html; charset=ISO-8859-1\r\n"); + print "This service does not provide WSDL"; + } + } elseif ($this->wsdl) { + $this->debug("In service, return Web description"); + print $this->wsdl->webDescription(); + } else { + $this->debug("In service, no Web description"); + header("Content-Type: text/html; charset=ISO-8859-1\r\n"); + print "This service does not provide a Web description"; + } + } + + /** + * parses HTTP request headers. + * + * The following fields are set by this function (when successful) + * + * headers + * request + * xml_encoding + * SOAPAction + * + * @access private + */ + function parse_http_headers() { + global $HTTP_SERVER_VARS; + + $this->request = ''; + $this->SOAPAction = ''; + if(function_exists('getallheaders')){ + $this->debug("In parse_http_headers, use getallheaders"); + $headers = getallheaders(); + foreach($headers as $k=>$v){ + $k = strtolower($k); + $this->headers[$k] = $v; + $this->request .= "$k: $v\r\n"; + $this->debug("$k: $v"); + } + // get SOAPAction header + if(isset($this->headers['soapaction'])){ + $this->SOAPAction = str_replace('"','',$this->headers['soapaction']); + } + // get the character encoding of the incoming request + if(isset($this->headers['content-type']) && strpos($this->headers['content-type'],'=')){ + $enc = str_replace('"','',substr(strstr($this->headers["content-type"],'='),1)); + if(preg_match('/^(ISO-8859-1|US-ASCII|UTF-8)$/i',$enc)){ + $this->xml_encoding = strtoupper($enc); + } else { + $this->xml_encoding = 'US-ASCII'; + } + } else { + // should be US-ASCII for HTTP 1.0 or ISO-8859-1 for HTTP 1.1 + $this->xml_encoding = 'ISO-8859-1'; + } + } elseif(isset($_SERVER) && is_array($_SERVER)){ + $this->debug("In parse_http_headers, use _SERVER"); + foreach ($_SERVER as $k => $v) { + if (substr($k, 0, 5) == 'HTTP_') { + $k = str_replace(' ', '-', strtolower(str_replace('_', ' ', substr($k, 5)))); + } else { + $k = str_replace(' ', '-', strtolower(str_replace('_', ' ', $k))); + } + if ($k == 'soapaction') { + // get SOAPAction header + $k = 'SOAPAction'; + $v = str_replace('"', '', $v); + $v = str_replace('\\', '', $v); + $this->SOAPAction = $v; + } else if ($k == 'content-type') { + // get the character encoding of the incoming request + if (strpos($v, '=')) { + $enc = substr(strstr($v, '='), 1); + $enc = str_replace('"', '', $enc); + $enc = str_replace('\\', '', $enc); + if (preg_match('/^(ISO-8859-1|US-ASCII|UTF-8)$/i',$enc)) { + $this->xml_encoding = strtoupper($enc); + } else { + $this->xml_encoding = 'US-ASCII'; + } + } else { + // should be US-ASCII for HTTP 1.0 or ISO-8859-1 for HTTP 1.1 + $this->xml_encoding = 'ISO-8859-1'; + } + } + $this->headers[$k] = $v; + $this->request .= "$k: $v\r\n"; + $this->debug("$k: $v"); + } + } elseif (is_array($HTTP_SERVER_VARS)) { + $this->debug("In parse_http_headers, use HTTP_SERVER_VARS"); + foreach ($HTTP_SERVER_VARS as $k => $v) { + if (substr($k, 0, 5) == 'HTTP_') { + $k = str_replace(' ', '-', strtolower(str_replace('_', ' ', substr($k, 5)))); $k = strtolower(substr($k, 5)); + } else { + $k = str_replace(' ', '-', strtolower(str_replace('_', ' ', $k))); $k = strtolower($k); + } + if ($k == 'soapaction') { + // get SOAPAction header + $k = 'SOAPAction'; + $v = str_replace('"', '', $v); + $v = str_replace('\\', '', $v); + $this->SOAPAction = $v; + } else if ($k == 'content-type') { + // get the character encoding of the incoming request + if (strpos($v, '=')) { + $enc = substr(strstr($v, '='), 1); + $enc = str_replace('"', '', $enc); + $enc = str_replace('\\', '', $enc); + if (preg_match('/^(ISO-8859-1|US-ASCII|UTF-8)$/i',$enc)) { + $this->xml_encoding = strtoupper($enc); + } else { + $this->xml_encoding = 'US-ASCII'; + } + } else { + // should be US-ASCII for HTTP 1.0 or ISO-8859-1 for HTTP 1.1 + $this->xml_encoding = 'ISO-8859-1'; + } + } + $this->headers[$k] = $v; + $this->request .= "$k: $v\r\n"; + $this->debug("$k: $v"); + } + } else { + $this->debug("In parse_http_headers, HTTP headers not accessible"); + $this->setError("HTTP headers not accessible"); + } + } + + /** + * parses a request + * + * The following fields are set by this function (when successful) + * + * headers + * request + * xml_encoding + * SOAPAction + * request + * requestSOAP + * methodURI + * methodname + * methodparams + * requestHeaders + * document + * + * This sets the fault field on error + * + * @param string $data XML string + * @access private + */ + function parse_request($data='') { + $this->debug('entering parse_request()'); + $this->parse_http_headers(); + $this->debug('got character encoding: '.$this->xml_encoding); + // uncompress if necessary + if (isset($this->headers['content-encoding']) && $this->headers['content-encoding'] != '') { + $this->debug('got content encoding: ' . $this->headers['content-encoding']); + if ($this->headers['content-encoding'] == 'deflate' || $this->headers['content-encoding'] == 'gzip') { + // if decoding works, use it. else assume data wasn't gzencoded + if (function_exists('gzuncompress')) { + if ($this->headers['content-encoding'] == 'deflate' && $degzdata = @gzuncompress($data)) { + $data = $degzdata; + } elseif ($this->headers['content-encoding'] == 'gzip' && $degzdata = gzinflate(substr($data, 10))) { + $data = $degzdata; + } else { + $this->fault('SOAP-ENV:Client', 'Errors occurred when trying to decode the data'); + return; + } + } else { + $this->fault('SOAP-ENV:Client', 'This Server does not support compressed data'); + return; + } + } + } + $this->request .= "\r\n".$data; + $data = $this->parseRequest($this->headers, $data); + $this->requestSOAP = $data; + $this->debug('leaving parse_request'); + } + + /** + * invokes a PHP function for the requested SOAP method + * + * The following fields are set by this function (when successful) + * + * methodreturn + * + * Note that the PHP function that is called may also set the following + * fields to affect the response sent to the client + * + * responseHeaders + * outgoing_headers + * + * This sets the fault field on error + * + * @access private + */ + function invoke_method() { + $this->debug('in invoke_method, methodname=' . $this->methodname . ' methodURI=' . $this->methodURI . ' SOAPAction=' . $this->SOAPAction); + + // + // if you are debugging in this area of the code, your service uses a class to implement methods, + // you use SOAP RPC, and the client is .NET, please be aware of the following... + // when the .NET wsdl.exe utility generates a proxy, it will remove the '.' or '..' from the + // method name. that is fine for naming the .NET methods. it is not fine for properly constructing + // the XML request and reading the XML response. you need to add the RequestElementName and + // ResponseElementName to the System.Web.Services.Protocols.SoapRpcMethodAttribute that wsdl.exe + // generates for the method. these parameters are used to specify the correct XML element names + // for .NET to use, i.e. the names with the '.' in them. + // + $orig_methodname = $this->methodname; + if ($this->wsdl) { + if ($this->opData = $this->wsdl->getOperationData($this->methodname)) { + $this->debug('in invoke_method, found WSDL operation=' . $this->methodname); + $this->appendDebug('opData=' . $this->varDump($this->opData)); + } elseif ($this->opData = $this->wsdl->getOperationDataForSoapAction($this->SOAPAction)) { + // Note: hopefully this case will only be used for doc/lit, since rpc services should have wrapper element + $this->debug('in invoke_method, found WSDL soapAction=' . $this->SOAPAction . ' for operation=' . $this->opData['name']); + $this->appendDebug('opData=' . $this->varDump($this->opData)); + $this->methodname = $this->opData['name']; + } else { + $this->debug('in invoke_method, no WSDL for operation=' . $this->methodname); + $this->fault('SOAP-ENV:Client', "Operation '" . $this->methodname . "' is not defined in the WSDL for this service"); + return; + } + } else { + $this->debug('in invoke_method, no WSDL to validate method'); + } + + // if a . is present in $this->methodname, we see if there is a class in scope, + // which could be referred to. We will also distinguish between two deliminators, + // to allow methods to be called a the class or an instance + if (strpos($this->methodname, '..') > 0) { + $delim = '..'; + } else if (strpos($this->methodname, '.') > 0) { + $delim = '.'; + } else { + $delim = ''; + } + $this->debug("in invoke_method, delim=$delim"); + + $class = ''; + $method = ''; + if (strlen($delim) > 0 && substr_count($this->methodname, $delim) == 1) { + $try_class = substr($this->methodname, 0, strpos($this->methodname, $delim)); + if (class_exists($try_class)) { + // get the class and method name + $class = $try_class; + $method = substr($this->methodname, strpos($this->methodname, $delim) + strlen($delim)); + $this->debug("in invoke_method, class=$class method=$method delim=$delim"); + } else { + $this->debug("in invoke_method, class=$try_class not found"); + } + } else { + $try_class = ''; + $this->debug("in invoke_method, no class to try"); + } + + // does method exist? + if ($class == '') { + if (!function_exists($this->methodname)) { + $this->debug("in invoke_method, function '$this->methodname' not found!"); + $this->result = 'fault: method not found'; + $this->fault('SOAP-ENV:Client',"method '$this->methodname'('$orig_methodname') not defined in service('$try_class' '$delim')"); + return; + } + } else { + $method_to_compare = (substr(phpversion(), 0, 2) == '4.') ? strtolower($method) : $method; + if (!in_array($method_to_compare, get_class_methods($class))) { + $this->debug("in invoke_method, method '$this->methodname' not found in class '$class'!"); + $this->result = 'fault: method not found'; + $this->fault('SOAP-ENV:Client',"method '$this->methodname'/'$method_to_compare'('$orig_methodname') not defined in service/'$class'('$try_class' '$delim')"); + return; + } + } + + // evaluate message, getting back parameters + // verify that request parameters match the method's signature + if(! $this->verify_method($this->methodname,$this->methodparams)){ + // debug + $this->debug('ERROR: request not verified against method signature'); + $this->result = 'fault: request failed validation against method signature'; + // return fault + $this->fault('SOAP-ENV:Client',"Operation '$this->methodname' not defined in service."); + return; + } + + // if there are parameters to pass + $this->debug('in invoke_method, params:'); + $this->appendDebug($this->varDump($this->methodparams)); + $this->debug("in invoke_method, calling '$this->methodname'"); + if (!function_exists('call_user_func_array')) { + if ($class == '') { + $this->debug('in invoke_method, calling function using eval()'); + $funcCall = "\$this->methodreturn = $this->methodname("; + } else { + if ($delim == '..') { + $this->debug('in invoke_method, calling class method using eval()'); + $funcCall = "\$this->methodreturn = ".$class."::".$method."("; + } else { + $this->debug('in invoke_method, calling instance method using eval()'); + // generate unique instance name + $instname = "\$inst_".time(); + $funcCall = $instname." = new ".$class."(); "; + $funcCall .= "\$this->methodreturn = ".$instname."->".$method."("; + } + } + if ($this->methodparams) { + foreach ($this->methodparams as $param) { + if (is_array($param) || is_object($param)) { + $this->fault('SOAP-ENV:Client', 'NuSOAP does not handle complexType parameters correctly when using eval; call_user_func_array must be available'); + return; + } + $funcCall .= "\"$param\","; + } + $funcCall = substr($funcCall, 0, -1); + } + $funcCall .= ');'; + $this->debug('in invoke_method, function call: '.$funcCall); + @eval($funcCall); + } else { + if ($class == '') { + $this->debug('in invoke_method, calling function using call_user_func_array()'); + $call_arg = "$this->methodname"; // straight assignment changes $this->methodname to lower case after call_user_func_array() + } elseif ($delim == '..') { + $this->debug('in invoke_method, calling class method using call_user_func_array()'); + $call_arg = array ($class, $method); + } else { + $this->debug('in invoke_method, calling instance method using call_user_func_array()'); + $instance = new $class (); + $call_arg = array(&$instance, $method); + } + if (is_array($this->methodparams)) { + $this->methodreturn = call_user_func_array($call_arg, array_values($this->methodparams)); + } else { + $this->methodreturn = call_user_func_array($call_arg, array()); + } + } + $this->debug('in invoke_method, methodreturn:'); + $this->appendDebug($this->varDump($this->methodreturn)); + $this->debug("in invoke_method, called method $this->methodname, received data of type ".gettype($this->methodreturn)); + } + + /** + * serializes the return value from a PHP function into a full SOAP Envelope + * + * The following fields are set by this function (when successful) + * + * responseSOAP + * + * This sets the fault field on error + * + * @access private + */ + function serialize_return() { + $this->debug('Entering serialize_return methodname: ' . $this->methodname . ' methodURI: ' . $this->methodURI); + // if fault + if (isset($this->methodreturn) && is_object($this->methodreturn) && ((get_class($this->methodreturn) == 'soap_fault') || (get_class($this->methodreturn) == 'nusoap_fault'))) { + $this->debug('got a fault object from method'); + $this->fault = $this->methodreturn; + return; + } elseif ($this->methodreturnisliteralxml) { + $return_val = $this->methodreturn; + // returned value(s) + } else { + $this->debug('got a(n) '.gettype($this->methodreturn).' from method'); + $this->debug('serializing return value'); + if($this->wsdl){ + if (sizeof($this->opData['output']['parts']) > 1) { + $this->debug('more than one output part, so use the method return unchanged'); + $opParams = $this->methodreturn; + } elseif (sizeof($this->opData['output']['parts']) == 1) { + $this->debug('exactly one output part, so wrap the method return in a simple array'); + // TODO: verify that it is not already wrapped! + //foreach ($this->opData['output']['parts'] as $name => $type) { + // $this->debug('wrap in element named ' . $name); + //} + $opParams = array($this->methodreturn); + } + $return_val = $this->wsdl->serializeRPCParameters($this->methodname,'output',$opParams); + $this->appendDebug($this->wsdl->getDebug()); + $this->wsdl->clearDebug(); + if($errstr = $this->wsdl->getError()){ + $this->debug('got wsdl error: '.$errstr); + $this->fault('SOAP-ENV:Server', 'unable to serialize result'); + return; + } + } else { + if (isset($this->methodreturn)) { + $return_val = $this->serialize_val($this->methodreturn, 'return'); + } else { + $return_val = ''; + $this->debug('in absence of WSDL, assume void return for backward compatibility'); + } + } + } + $this->debug('return value:'); + $this->appendDebug($this->varDump($return_val)); + + $this->debug('serializing response'); + if ($this->wsdl) { + $this->debug('have WSDL for serialization: style is ' . $this->opData['style']); + if ($this->opData['style'] == 'rpc') { + $this->debug('style is rpc for serialization: use is ' . $this->opData['output']['use']); + if ($this->opData['output']['use'] == 'literal') { + // http://www.ws-i.org/Profiles/BasicProfile-1.1-2004-08-24.html R2735 says rpc/literal accessor elements should not be in a namespace + if ($this->methodURI) { + $payload = 'methodname.'Response xmlns:ns1="'.$this->methodURI.'">'.$return_val.'methodname."Response>"; + } else { + $payload = '<'.$this->methodname.'Response>'.$return_val.'methodname.'Response>'; + } + } else { + if ($this->methodURI) { + $payload = 'methodname.'Response xmlns:ns1="'.$this->methodURI.'">'.$return_val.'methodname."Response>"; + } else { + $payload = '<'.$this->methodname.'Response>'.$return_val.'methodname.'Response>'; + } + } + } else { + $this->debug('style is not rpc for serialization: assume document'); + $payload = $return_val; + } + } else { + $this->debug('do not have WSDL for serialization: assume rpc/encoded'); + $payload = 'methodname.'Response xmlns:ns1="'.$this->methodURI.'">'.$return_val.'methodname."Response>"; + } + $this->result = 'successful'; + if($this->wsdl){ + //if($this->debug_flag){ + $this->appendDebug($this->wsdl->getDebug()); + // } + if (isset($this->opData['output']['encodingStyle'])) { + $encodingStyle = $this->opData['output']['encodingStyle']; + } else { + $encodingStyle = ''; + } + // Added: In case we use a WSDL, return a serialized env. WITH the usedNamespaces. + $this->responseSOAP = $this->serializeEnvelope($payload,$this->responseHeaders,$this->wsdl->usedNamespaces,$this->opData['style'],$this->opData['output']['use'],$encodingStyle); + } else { + $this->responseSOAP = $this->serializeEnvelope($payload,$this->responseHeaders); + } + $this->debug("Leaving serialize_return"); + } + + /** + * sends an HTTP response + * + * The following fields are set by this function (when successful) + * + * outgoing_headers + * response + * + * @access private + */ + function send_response() { + $this->debug('Enter send_response'); + if ($this->fault) { + $payload = $this->fault->serialize(); + $this->outgoing_headers[] = "HTTP/1.0 500 Internal Server Error"; + $this->outgoing_headers[] = "Status: 500 Internal Server Error"; + } else { + $payload = $this->responseSOAP; + // Some combinations of PHP+Web server allow the Status + // to come through as a header. Since OK is the default + // just do nothing. + // $this->outgoing_headers[] = "HTTP/1.0 200 OK"; + // $this->outgoing_headers[] = "Status: 200 OK"; + } + // add debug data if in debug mode + if(isset($this->debug_flag) && $this->debug_flag){ + $payload .= $this->getDebugAsXMLComment(); + } + $this->outgoing_headers[] = "Server: $this->title Server v$this->version"; + preg_match('/\$Revisio' . 'n: ([^ ]+)/', $this->revision, $rev); + $this->outgoing_headers[] = "X-SOAP-Server: $this->title/$this->version (".$rev[1].")"; + // Let the Web server decide about this + //$this->outgoing_headers[] = "Connection: Close\r\n"; + $payload = $this->getHTTPBody($payload); + $type = $this->getHTTPContentType(); + $charset = $this->getHTTPContentTypeCharset(); + $this->outgoing_headers[] = "Content-Type: $type" . ($charset ? '; charset=' . $charset : ''); + //begin code to compress payload - by John + // NOTE: there is no way to know whether the Web server will also compress + // this data. + if (strlen($payload) > 1024 && isset($this->headers) && isset($this->headers['accept-encoding'])) { + if (strstr($this->headers['accept-encoding'], 'gzip')) { + if (function_exists('gzencode')) { + if (isset($this->debug_flag) && $this->debug_flag) { + $payload .= ""; + } + $this->outgoing_headers[] = "Content-Encoding: gzip"; + $payload = gzencode($payload); + } else { + if (isset($this->debug_flag) && $this->debug_flag) { + $payload .= ""; + } + } + } elseif (strstr($this->headers['accept-encoding'], 'deflate')) { + // Note: MSIE requires gzdeflate output (no Zlib header and checksum), + // instead of gzcompress output, + // which conflicts with HTTP 1.1 spec (http://www.w3.org/Protocols/rfc2616/rfc2616-sec3.html#sec3.5) + if (function_exists('gzdeflate')) { + if (isset($this->debug_flag) && $this->debug_flag) { + $payload .= ""; + } + $this->outgoing_headers[] = "Content-Encoding: deflate"; + $payload = gzdeflate($payload); + } else { + if (isset($this->debug_flag) && $this->debug_flag) { + $payload .= ""; + } + } + } + } + //end code + $this->outgoing_headers[] = "Content-Length: ".strlen($payload); + reset($this->outgoing_headers); + foreach($this->outgoing_headers as $hdr){ + header($hdr, false); + } + print $payload; + $this->response = join("\r\n",$this->outgoing_headers)."\r\n\r\n".$payload; + } + + /** + * takes the value that was created by parsing the request + * and compares to the method's signature, if available. + * + * @param string $operation The operation to be invoked + * @param array $request The array of parameter values + * @return boolean Whether the operation was found + * @access private + */ + function verify_method($operation,$request){ + if(isset($this->wsdl) && is_object($this->wsdl)){ + if($this->wsdl->getOperationData($operation)){ + return true; + } + } elseif(isset($this->operations[$operation])){ + return true; + } + return false; + } + + /** + * processes SOAP message received from client + * + * @param array $headers The HTTP headers + * @param string $data unprocessed request data from client + * @return mixed value of the message, decoded into a PHP type + * @access private + */ + function parseRequest($headers, $data) { + $this->debug('Entering parseRequest() for data of length ' . strlen($data) . ' headers:'); + $this->appendDebug($this->varDump($headers)); + if (!isset($headers['content-type'])) { + $this->setError('Request not of type text/xml (no content-type header)'); + return false; + } + if (!strstr($headers['content-type'], 'text/xml')) { + $this->setError('Request not of type text/xml'); + return false; + } + if (strpos($headers['content-type'], '=')) { + $enc = str_replace('"', '', substr(strstr($headers["content-type"], '='), 1)); + $this->debug('Got response encoding: ' . $enc); + if(preg_match('/^(ISO-8859-1|US-ASCII|UTF-8)$/i',$enc)){ + $this->xml_encoding = strtoupper($enc); + } else { + $this->xml_encoding = 'US-ASCII'; + } + } else { + // should be US-ASCII for HTTP 1.0 or ISO-8859-1 for HTTP 1.1 + $this->xml_encoding = 'ISO-8859-1'; + } + $this->debug('Use encoding: ' . $this->xml_encoding . ' when creating nusoap_parser'); + // parse response, get soap parser obj + $parser = new nusoap_parser($data,$this->xml_encoding,'',$this->decode_utf8); + // parser debug + $this->debug("parser debug: \n".$parser->getDebug()); + // if fault occurred during message parsing + if($err = $parser->getError()){ + $this->result = 'fault: error in msg parsing: '.$err; + $this->fault('SOAP-ENV:Client',"error in msg parsing:\n".$err); + // else successfully parsed request into soapval object + } else { + // get/set methodname + $this->methodURI = $parser->root_struct_namespace; + $this->methodname = $parser->root_struct_name; + $this->debug('methodname: '.$this->methodname.' methodURI: '.$this->methodURI); + $this->debug('calling parser->get_soapbody()'); + $this->methodparams = $parser->get_soapbody(); + // get SOAP headers + $this->requestHeaders = $parser->getHeaders(); + // get SOAP Header + $this->requestHeader = $parser->get_soapheader(); + // add document for doclit support + $this->document = $parser->document; + } + } + + /** + * gets the HTTP body for the current response. + * + * @param string $soapmsg The SOAP payload + * @return string The HTTP body, which includes the SOAP payload + * @access private + */ + function getHTTPBody($soapmsg) { + return $soapmsg; + } + + /** + * gets the HTTP content type for the current response. + * + * Note: getHTTPBody must be called before this. + * + * @return string the HTTP content type for the current response. + * @access private + */ + function getHTTPContentType() { + return 'text/xml'; + } + + /** + * gets the HTTP content type charset for the current response. + * returns false for non-text content types. + * + * Note: getHTTPBody must be called before this. + * + * @return string the HTTP content type charset for the current response. + * @access private + */ + function getHTTPContentTypeCharset() { + return $this->soap_defencoding; + } + + /** + * add a method to the dispatch map (this has been replaced by the register method) + * + * @param string $methodname + * @param string $in array of input values + * @param string $out array of output values + * @access public + * @deprecated + */ + function add_to_map($methodname,$in,$out){ + $this->operations[$methodname] = array('name' => $methodname,'in' => $in,'out' => $out); + } + + /** + * register a service function with the server + * + * @param string $name the name of the PHP function, class.method or class..method + * @param array $in assoc array of input values: key = param name, value = param type + * @param array $out assoc array of output values: key = param name, value = param type + * @param mixed $namespace the element namespace for the method or false + * @param mixed $soapaction the soapaction for the method or false + * @param mixed $style optional (rpc|document) or false Note: when 'document' is specified, parameter and return wrappers are created for you automatically + * @param mixed $use optional (encoded|literal) or false + * @param string $documentation optional Description to include in WSDL + * @param string $encodingStyle optional (usually 'http://schemas.xmlsoap.org/soap/encoding/' for encoded) + * @access public + */ + function register($name,$in=array(),$out=array(),$namespace=false,$soapaction=false,$style=false,$use=false,$documentation='',$encodingStyle=''){ + global $HTTP_SERVER_VARS; + + if($this->externalWSDLURL){ + die('You cannot bind to an external WSDL file, and register methods outside of it! Please choose either WSDL or no WSDL.'); + } + if (! $name) { + die('You must specify a name when you register an operation'); + } + if (!is_array($in)) { + die('You must provide an array for operation inputs'); + } + if (!is_array($out)) { + die('You must provide an array for operation outputs'); + } + if(false == $namespace) { + } + if(false == $soapaction) { + if (isset($_SERVER)) { + $SERVER_NAME = $_SERVER['SERVER_NAME']; + $SCRIPT_NAME = isset($_SERVER['PHP_SELF']) ? $_SERVER['PHP_SELF'] : $_SERVER['SCRIPT_NAME']; + $HTTPS = isset($_SERVER['HTTPS']) ? $_SERVER['HTTPS'] : (isset($HTTP_SERVER_VARS['HTTPS']) ? $HTTP_SERVER_VARS['HTTPS'] : 'off'); + } elseif (isset($HTTP_SERVER_VARS)) { + $SERVER_NAME = $HTTP_SERVER_VARS['SERVER_NAME']; + $SCRIPT_NAME = isset($HTTP_SERVER_VARS['PHP_SELF']) ? $HTTP_SERVER_VARS['PHP_SELF'] : $HTTP_SERVER_VARS['SCRIPT_NAME']; + $HTTPS = isset($HTTP_SERVER_VARS['HTTPS']) ? $HTTP_SERVER_VARS['HTTPS'] : 'off'; + } else { + $this->setError("Neither _SERVER nor HTTP_SERVER_VARS is available"); + } + if ($HTTPS == '1' || $HTTPS == 'on') { + $SCHEME = 'https'; + } else { + $SCHEME = 'http'; + } + $soapaction = "$SCHEME://$SERVER_NAME$SCRIPT_NAME/$name"; + } + if(false == $style) { + $style = "rpc"; + } + if(false == $use) { + $use = "encoded"; + } + if ($use == 'encoded' && $encodingStyle == '') { + $encodingStyle = 'http://schemas.xmlsoap.org/soap/encoding/'; + } + + $this->operations[$name] = array( + 'name' => $name, + 'in' => $in, + 'out' => $out, + 'namespace' => $namespace, + 'soapaction' => $soapaction, + 'style' => $style); + if($this->wsdl){ + $this->wsdl->addOperation($name,$in,$out,$namespace,$soapaction,$style,$use,$documentation,$encodingStyle); + } + return true; + } + + /** + * Specify a fault to be returned to the client. + * This also acts as a flag to the server that a fault has occured. + * + * @param string $faultcode + * @param string $faultstring + * @param string $faultactor + * @param string $faultdetail + * @access public + */ + function fault($faultcode,$faultstring,$faultactor='',$faultdetail=''){ + if ($faultdetail == '' && $this->debug_flag) { + $faultdetail = $this->getDebug(); + } + $this->fault = new nusoap_fault($faultcode,$faultactor,$faultstring,$faultdetail); + $this->fault->soap_defencoding = $this->soap_defencoding; + } + + /** + * Sets up wsdl object. + * Acts as a flag to enable internal WSDL generation + * + * @param string $serviceName, name of the service + * @param mixed $namespace optional 'tns' service namespace or false + * @param mixed $endpoint optional URL of service endpoint or false + * @param string $style optional (rpc|document) WSDL style (also specified by operation) + * @param string $transport optional SOAP transport + * @param mixed $schemaTargetNamespace optional 'types' targetNamespace for service schema or false + */ + function configureWSDL($serviceName,$namespace = false,$endpoint = false,$style='rpc', $transport = 'http://schemas.xmlsoap.org/soap/http', $schemaTargetNamespace = false) + { + global $HTTP_SERVER_VARS; + + if (isset($_SERVER)) { + $SERVER_NAME = $_SERVER['SERVER_NAME']; + $SERVER_PORT = $_SERVER['SERVER_PORT']; + $SCRIPT_NAME = isset($_SERVER['PHP_SELF']) ? $_SERVER['PHP_SELF'] : $_SERVER['SCRIPT_NAME']; + $HTTPS = isset($_SERVER['HTTPS']) ? $_SERVER['HTTPS'] : (isset($HTTP_SERVER_VARS['HTTPS']) ? $HTTP_SERVER_VARS['HTTPS'] : 'off'); + } elseif (isset($HTTP_SERVER_VARS)) { + $SERVER_NAME = $HTTP_SERVER_VARS['SERVER_NAME']; + $SERVER_PORT = $HTTP_SERVER_VARS['SERVER_PORT']; + $SCRIPT_NAME = isset($HTTP_SERVER_VARS['PHP_SELF']) ? $HTTP_SERVER_VARS['PHP_SELF'] : $HTTP_SERVER_VARS['SCRIPT_NAME']; + $HTTPS = isset($HTTP_SERVER_VARS['HTTPS']) ? $HTTP_SERVER_VARS['HTTPS'] : 'off'; + } else { + $this->setError("Neither _SERVER nor HTTP_SERVER_VARS is available"); + } + // If server name has port number attached then strip it (else port number gets duplicated in WSDL output) (occurred using lighttpd and FastCGI) + $colon = strpos($SERVER_NAME,":"); + if ($colon) { + $SERVER_NAME = substr($SERVER_NAME, 0, $colon); + } + if ($SERVER_PORT == 80) { + $SERVER_PORT = ''; + } else { + $SERVER_PORT = ':' . $SERVER_PORT; + } + if(false == $namespace) { + $namespace = "http://$SERVER_NAME/soap/$serviceName"; + } + + if(false == $endpoint) { + if ($HTTPS == '1' || $HTTPS == 'on') { + $SCHEME = 'https'; + } else { + $SCHEME = 'http'; + } + $endpoint = "$SCHEME://$SERVER_NAME$SERVER_PORT$SCRIPT_NAME"; + } + + if(false == $schemaTargetNamespace) { + $schemaTargetNamespace = $namespace; + } + + $this->wsdl = new wsdl; + $this->wsdl->serviceName = $serviceName; + $this->wsdl->endpoint = $endpoint; + $this->wsdl->namespaces['tns'] = $namespace; + $this->wsdl->namespaces['soap'] = 'http://schemas.xmlsoap.org/wsdl/soap/'; + $this->wsdl->namespaces['wsdl'] = 'http://schemas.xmlsoap.org/wsdl/'; + if ($schemaTargetNamespace != $namespace) { + $this->wsdl->namespaces['types'] = $schemaTargetNamespace; + } + $this->wsdl->schemas[$schemaTargetNamespace][0] = new nusoap_xmlschema('', '', $this->wsdl->namespaces); + if ($style == 'document') { + $this->wsdl->schemas[$schemaTargetNamespace][0]->schemaInfo['elementFormDefault'] = 'qualified'; + } + $this->wsdl->schemas[$schemaTargetNamespace][0]->schemaTargetNamespace = $schemaTargetNamespace; + $this->wsdl->schemas[$schemaTargetNamespace][0]->imports['http://schemas.xmlsoap.org/soap/encoding/'][0] = array('location' => '', 'loaded' => true); + $this->wsdl->schemas[$schemaTargetNamespace][0]->imports['http://schemas.xmlsoap.org/wsdl/'][0] = array('location' => '', 'loaded' => true); + $this->wsdl->bindings[$serviceName.'Binding'] = array( + 'name'=>$serviceName.'Binding', + 'style'=>$style, + 'transport'=>$transport, + 'portType'=>$serviceName.'PortType'); + $this->wsdl->ports[$serviceName.'Port'] = array( + 'binding'=>$serviceName.'Binding', + 'location'=>$endpoint, + 'bindingType'=>'http://schemas.xmlsoap.org/wsdl/soap/'); + } +} + +/** + * Backward compatibility + */ +class soap_server extends nusoap_server { +} + +?> +* @author Scott Nichol +* @version $Id: nusoap.php,v 1.123 2010/04/26 20:15:08 snichol Exp $ +* @access public +*/ +class wsdl extends nusoap_base { + // URL or filename of the root of this WSDL + var $wsdl; + // define internal arrays of bindings, ports, operations, messages, etc. + var $schemas = array(); + var $currentSchema; + var $message = array(); + var $complexTypes = array(); + var $messages = array(); + var $currentMessage; + var $currentOperation; + var $portTypes = array(); + var $currentPortType; + var $bindings = array(); + var $currentBinding; + var $ports = array(); + var $currentPort; + var $opData = array(); + var $status = ''; + var $documentation = false; + var $endpoint = ''; + // array of wsdl docs to import + var $import = array(); + // parser vars + var $parser; + var $position = 0; + var $depth = 0; + var $depth_array = array(); + // for getting wsdl + var $proxyhost = ''; + var $proxyport = ''; + var $proxyusername = ''; + var $proxypassword = ''; + var $timeout = 0; + var $response_timeout = 30; + var $curl_options = array(); // User-specified cURL options + var $use_curl = false; // whether to always try to use cURL + // for HTTP authentication + var $username = ''; // Username for HTTP authentication + var $password = ''; // Password for HTTP authentication + var $authtype = ''; // Type of HTTP authentication + var $certRequest = array(); // Certificate for HTTP SSL authentication + + /** + * constructor + * + * @param string $wsdl WSDL document URL + * @param string $proxyhost + * @param string $proxyport + * @param string $proxyusername + * @param string $proxypassword + * @param integer $timeout set the connection timeout + * @param integer $response_timeout set the response timeout + * @param array $curl_options user-specified cURL options + * @param boolean $use_curl try to use cURL + * @access public + */ + function wsdl($wsdl = '',$proxyhost=false,$proxyport=false,$proxyusername=false,$proxypassword=false,$timeout=0,$response_timeout=30,$curl_options=null,$use_curl=false){ + parent::nusoap_base(); + $this->debug("ctor wsdl=$wsdl timeout=$timeout response_timeout=$response_timeout"); + $this->proxyhost = $proxyhost; + $this->proxyport = $proxyport; + $this->proxyusername = $proxyusername; + $this->proxypassword = $proxypassword; + $this->timeout = $timeout; + $this->response_timeout = $response_timeout; + if (is_array($curl_options)) + $this->curl_options = $curl_options; + $this->use_curl = $use_curl; + $this->fetchWSDL($wsdl); + } + + /** + * fetches the WSDL document and parses it + * + * @access public + */ + function fetchWSDL($wsdl) { + $this->debug("parse and process WSDL path=$wsdl"); + $this->wsdl = $wsdl; + // parse wsdl file + if ($this->wsdl != "") { + $this->parseWSDL($this->wsdl); + } + // imports + // TODO: handle imports more properly, grabbing them in-line and nesting them + $imported_urls = array(); + $imported = 1; + while ($imported > 0) { + $imported = 0; + // Schema imports + foreach ($this->schemas as $ns => $list) { + foreach ($list as $xs) { + $wsdlparts = parse_url($this->wsdl); // this is bogusly simple! + foreach ($xs->imports as $ns2 => $list2) { + for ($ii = 0; $ii < count($list2); $ii++) { + if (! $list2[$ii]['loaded']) { + $this->schemas[$ns]->imports[$ns2][$ii]['loaded'] = true; + $url = $list2[$ii]['location']; + if ($url != '') { + $urlparts = parse_url($url); + if (!isset($urlparts['host'])) { + $url = $wsdlparts['scheme'] . '://' . $wsdlparts['host'] . (isset($wsdlparts['port']) ? ':' .$wsdlparts['port'] : '') . + substr($wsdlparts['path'],0,strrpos($wsdlparts['path'],'/') + 1) .$urlparts['path']; + } + if (! in_array($url, $imported_urls)) { + $this->parseWSDL($url); + $imported++; + $imported_urls[] = $url; + } + } else { + $this->debug("Unexpected scenario: empty URL for unloaded import"); + } + } + } + } + } + } + // WSDL imports + $wsdlparts = parse_url($this->wsdl); // this is bogusly simple! + foreach ($this->import as $ns => $list) { + for ($ii = 0; $ii < count($list); $ii++) { + if (! $list[$ii]['loaded']) { + $this->import[$ns][$ii]['loaded'] = true; + $url = $list[$ii]['location']; + if ($url != '') { + $urlparts = parse_url($url); + if (!isset($urlparts['host'])) { + $url = $wsdlparts['scheme'] . '://' . $wsdlparts['host'] . (isset($wsdlparts['port']) ? ':' . $wsdlparts['port'] : '') . + substr($wsdlparts['path'],0,strrpos($wsdlparts['path'],'/') + 1) .$urlparts['path']; + } + if (! in_array($url, $imported_urls)) { + $this->parseWSDL($url); + $imported++; + $imported_urls[] = $url; + } + } else { + $this->debug("Unexpected scenario: empty URL for unloaded import"); + } + } + } + } + } + // add new data to operation data + foreach($this->bindings as $binding => $bindingData) { + if (isset($bindingData['operations']) && is_array($bindingData['operations'])) { + foreach($bindingData['operations'] as $operation => $data) { + $this->debug('post-parse data gathering for ' . $operation); + $this->bindings[$binding]['operations'][$operation]['input'] = + isset($this->bindings[$binding]['operations'][$operation]['input']) ? + array_merge($this->bindings[$binding]['operations'][$operation]['input'], $this->portTypes[ $bindingData['portType'] ][$operation]['input']) : + $this->portTypes[ $bindingData['portType'] ][$operation]['input']; + $this->bindings[$binding]['operations'][$operation]['output'] = + isset($this->bindings[$binding]['operations'][$operation]['output']) ? + array_merge($this->bindings[$binding]['operations'][$operation]['output'], $this->portTypes[ $bindingData['portType'] ][$operation]['output']) : + $this->portTypes[ $bindingData['portType'] ][$operation]['output']; + if(isset($this->messages[ $this->bindings[$binding]['operations'][$operation]['input']['message'] ])){ + $this->bindings[$binding]['operations'][$operation]['input']['parts'] = $this->messages[ $this->bindings[$binding]['operations'][$operation]['input']['message'] ]; + } + if(isset($this->messages[ $this->bindings[$binding]['operations'][$operation]['output']['message'] ])){ + $this->bindings[$binding]['operations'][$operation]['output']['parts'] = $this->messages[ $this->bindings[$binding]['operations'][$operation]['output']['message'] ]; + } + // Set operation style if necessary, but do not override one already provided + if (isset($bindingData['style']) && !isset($this->bindings[$binding]['operations'][$operation]['style'])) { + $this->bindings[$binding]['operations'][$operation]['style'] = $bindingData['style']; + } + $this->bindings[$binding]['operations'][$operation]['transport'] = isset($bindingData['transport']) ? $bindingData['transport'] : ''; + $this->bindings[$binding]['operations'][$operation]['documentation'] = isset($this->portTypes[ $bindingData['portType'] ][$operation]['documentation']) ? $this->portTypes[ $bindingData['portType'] ][$operation]['documentation'] : ''; + $this->bindings[$binding]['operations'][$operation]['endpoint'] = isset($bindingData['endpoint']) ? $bindingData['endpoint'] : ''; + } + } + } + } + + /** + * parses the wsdl document + * + * @param string $wsdl path or URL + * @access private + */ + function parseWSDL($wsdl = '') { + $this->debug("parse WSDL at path=$wsdl"); + + if ($wsdl == '') { + $this->debug('no wsdl passed to parseWSDL()!!'); + $this->setError('no wsdl passed to parseWSDL()!!'); + return false; + } + + // parse $wsdl for url format + $wsdl_props = parse_url($wsdl); + + if (isset($wsdl_props['scheme']) && ($wsdl_props['scheme'] == 'http' || $wsdl_props['scheme'] == 'https')) { + $this->debug('getting WSDL http(s) URL ' . $wsdl); + // get wsdl + $tr = new soap_transport_http($wsdl, $this->curl_options, $this->use_curl); + $tr->request_method = 'GET'; + $tr->useSOAPAction = false; + if($this->proxyhost && $this->proxyport){ + $tr->setProxy($this->proxyhost,$this->proxyport,$this->proxyusername,$this->proxypassword); + } + if ($this->authtype != '') { + $tr->setCredentials($this->username, $this->password, $this->authtype, array(), $this->certRequest); + } + $tr->setEncoding('gzip, deflate'); + $wsdl_string = $tr->send('', $this->timeout, $this->response_timeout); + //$this->debug("WSDL request\n" . $tr->outgoing_payload); + //$this->debug("WSDL response\n" . $tr->incoming_payload); + $this->appendDebug($tr->getDebug()); + // catch errors + if($err = $tr->getError() ){ + $errstr = 'Getting ' . $wsdl . ' - HTTP ERROR: '.$err; + $this->debug($errstr); + $this->setError($errstr); + unset($tr); + return false; + } + unset($tr); + $this->debug("got WSDL URL"); + } else { + // $wsdl is not http(s), so treat it as a file URL or plain file path + if (isset($wsdl_props['scheme']) && ($wsdl_props['scheme'] == 'file') && isset($wsdl_props['path'])) { + $path = isset($wsdl_props['host']) ? ($wsdl_props['host'] . ':' . $wsdl_props['path']) : $wsdl_props['path']; + } else { + $path = $wsdl; + } + $this->debug('getting WSDL file ' . $path); + if ($fp = @fopen($path, 'r')) { + $wsdl_string = ''; + while ($data = fread($fp, 32768)) { + $wsdl_string .= $data; + } + fclose($fp); + } else { + $errstr = "Bad path to WSDL file $path"; + $this->debug($errstr); + $this->setError($errstr); + return false; + } + } + $this->debug('Parse WSDL'); + // end new code added + // Create an XML parser. + $this->parser = xml_parser_create(); + // Set the options for parsing the XML data. + // xml_parser_set_option($parser, XML_OPTION_SKIP_WHITE, 1); + xml_parser_set_option($this->parser, XML_OPTION_CASE_FOLDING, 0); + // Set the object for the parser. + xml_set_object($this->parser, $this); + // Set the element handlers for the parser. + xml_set_element_handler($this->parser, 'start_element', 'end_element'); + xml_set_character_data_handler($this->parser, 'character_data'); + // Parse the XML file. + if (!xml_parse($this->parser, $wsdl_string, true)) { + // Display an error message. + $errstr = sprintf( + 'XML error parsing WSDL from %s on line %d: %s', + $wsdl, + xml_get_current_line_number($this->parser), + xml_error_string(xml_get_error_code($this->parser)) + ); + $this->debug($errstr); + $this->debug("XML payload:\n" . $wsdl_string); + $this->setError($errstr); + return false; + } + // free the parser + xml_parser_free($this->parser); + $this->debug('Parsing WSDL done'); + // catch wsdl parse errors + if($this->getError()){ + return false; + } + return true; + } + + /** + * start-element handler + * + * @param string $parser XML parser object + * @param string $name element name + * @param string $attrs associative array of attributes + * @access private + */ + function start_element($parser, $name, $attrs) + { + if ($this->status == 'schema') { + $this->currentSchema->schemaStartElement($parser, $name, $attrs); + $this->appendDebug($this->currentSchema->getDebug()); + $this->currentSchema->clearDebug(); + } elseif (preg_match('/schema$/', $name)) { + $this->debug('Parsing WSDL schema'); + // $this->debug("startElement for $name ($attrs[name]). status = $this->status (".$this->getLocalPart($name).")"); + $this->status = 'schema'; + $this->currentSchema = new nusoap_xmlschema('', '', $this->namespaces); + $this->currentSchema->schemaStartElement($parser, $name, $attrs); + $this->appendDebug($this->currentSchema->getDebug()); + $this->currentSchema->clearDebug(); + } else { + // position in the total number of elements, starting from 0 + $pos = $this->position++; + $depth = $this->depth++; + // set self as current value for this depth + $this->depth_array[$depth] = $pos; + $this->message[$pos] = array('cdata' => ''); + // process attributes + if (count($attrs) > 0) { + // register namespace declarations + foreach($attrs as $k => $v) { + if (preg_match('/^xmlns/',$k)) { + if ($ns_prefix = substr(strrchr($k, ':'), 1)) { + $this->namespaces[$ns_prefix] = $v; + } else { + $this->namespaces['ns' . (count($this->namespaces) + 1)] = $v; + } + if ($v == 'http://www.w3.org/2001/XMLSchema' || $v == 'http://www.w3.org/1999/XMLSchema' || $v == 'http://www.w3.org/2000/10/XMLSchema') { + $this->XMLSchemaVersion = $v; + $this->namespaces['xsi'] = $v . '-instance'; + } + } + } + // expand each attribute prefix to its namespace + foreach($attrs as $k => $v) { + $k = strpos($k, ':') ? $this->expandQname($k) : $k; + if ($k != 'location' && $k != 'soapAction' && $k != 'namespace') { + $v = strpos($v, ':') ? $this->expandQname($v) : $v; + } + $eAttrs[$k] = $v; + } + $attrs = $eAttrs; + } else { + $attrs = array(); + } + // get element prefix, namespace and name + if (preg_match('/:/', $name)) { + // get ns prefix + $prefix = substr($name, 0, strpos($name, ':')); + // get ns + $namespace = isset($this->namespaces[$prefix]) ? $this->namespaces[$prefix] : ''; + // get unqualified name + $name = substr(strstr($name, ':'), 1); + } + // process attributes, expanding any prefixes to namespaces + // find status, register data + switch ($this->status) { + case 'message': + if ($name == 'part') { + if (isset($attrs['type'])) { + $this->debug("msg " . $this->currentMessage . ": found part (with type) $attrs[name]: " . implode(',', $attrs)); + $this->messages[$this->currentMessage][$attrs['name']] = $attrs['type']; + } + if (isset($attrs['element'])) { + $this->debug("msg " . $this->currentMessage . ": found part (with element) $attrs[name]: " . implode(',', $attrs)); + $this->messages[$this->currentMessage][$attrs['name']] = $attrs['element'] . '^'; + } + } + break; + case 'portType': + switch ($name) { + case 'operation': + $this->currentPortOperation = $attrs['name']; + $this->debug("portType $this->currentPortType operation: $this->currentPortOperation"); + if (isset($attrs['parameterOrder'])) { + $this->portTypes[$this->currentPortType][$attrs['name']]['parameterOrder'] = $attrs['parameterOrder']; + } + break; + case 'documentation': + $this->documentation = true; + break; + // merge input/output data + default: + $m = isset($attrs['message']) ? $this->getLocalPart($attrs['message']) : ''; + $this->portTypes[$this->currentPortType][$this->currentPortOperation][$name]['message'] = $m; + break; + } + break; + case 'binding': + switch ($name) { + case 'binding': + // get ns prefix + if (isset($attrs['style'])) { + $this->bindings[$this->currentBinding]['prefix'] = $prefix; + } + $this->bindings[$this->currentBinding] = array_merge($this->bindings[$this->currentBinding], $attrs); + break; + case 'header': + $this->bindings[$this->currentBinding]['operations'][$this->currentOperation][$this->opStatus]['headers'][] = $attrs; + break; + case 'operation': + if (isset($attrs['soapAction'])) { + $this->bindings[$this->currentBinding]['operations'][$this->currentOperation]['soapAction'] = $attrs['soapAction']; + } + if (isset($attrs['style'])) { + $this->bindings[$this->currentBinding]['operations'][$this->currentOperation]['style'] = $attrs['style']; + } + if (isset($attrs['name'])) { + $this->currentOperation = $attrs['name']; + $this->debug("current binding operation: $this->currentOperation"); + $this->bindings[$this->currentBinding]['operations'][$this->currentOperation]['name'] = $attrs['name']; + $this->bindings[$this->currentBinding]['operations'][$this->currentOperation]['binding'] = $this->currentBinding; + $this->bindings[$this->currentBinding]['operations'][$this->currentOperation]['endpoint'] = isset($this->bindings[$this->currentBinding]['endpoint']) ? $this->bindings[$this->currentBinding]['endpoint'] : ''; + } + break; + case 'input': + $this->opStatus = 'input'; + break; + case 'output': + $this->opStatus = 'output'; + break; + case 'body': + if (isset($this->bindings[$this->currentBinding]['operations'][$this->currentOperation][$this->opStatus])) { + $this->bindings[$this->currentBinding]['operations'][$this->currentOperation][$this->opStatus] = array_merge($this->bindings[$this->currentBinding]['operations'][$this->currentOperation][$this->opStatus], $attrs); + } else { + $this->bindings[$this->currentBinding]['operations'][$this->currentOperation][$this->opStatus] = $attrs; + } + break; + } + break; + case 'service': + switch ($name) { + case 'port': + $this->currentPort = $attrs['name']; + $this->debug('current port: ' . $this->currentPort); + $this->ports[$this->currentPort]['binding'] = $this->getLocalPart($attrs['binding']); + + break; + case 'address': + $this->ports[$this->currentPort]['location'] = $attrs['location']; + $this->ports[$this->currentPort]['bindingType'] = $namespace; + $this->bindings[ $this->ports[$this->currentPort]['binding'] ]['bindingType'] = $namespace; + $this->bindings[ $this->ports[$this->currentPort]['binding'] ]['endpoint'] = $attrs['location']; + break; + } + break; + } + // set status + switch ($name) { + case 'import': + if (isset($attrs['location'])) { + $this->import[$attrs['namespace']][] = array('location' => $attrs['location'], 'loaded' => false); + $this->debug('parsing import ' . $attrs['namespace']. ' - ' . $attrs['location'] . ' (' . count($this->import[$attrs['namespace']]).')'); + } else { + $this->import[$attrs['namespace']][] = array('location' => '', 'loaded' => true); + if (! $this->getPrefixFromNamespace($attrs['namespace'])) { + $this->namespaces['ns'.(count($this->namespaces)+1)] = $attrs['namespace']; + } + $this->debug('parsing import ' . $attrs['namespace']. ' - [no location] (' . count($this->import[$attrs['namespace']]).')'); + } + break; + //wait for schema + //case 'types': + // $this->status = 'schema'; + // break; + case 'message': + $this->status = 'message'; + $this->messages[$attrs['name']] = array(); + $this->currentMessage = $attrs['name']; + break; + case 'portType': + $this->status = 'portType'; + $this->portTypes[$attrs['name']] = array(); + $this->currentPortType = $attrs['name']; + break; + case "binding": + if (isset($attrs['name'])) { + // get binding name + if (strpos($attrs['name'], ':')) { + $this->currentBinding = $this->getLocalPart($attrs['name']); + } else { + $this->currentBinding = $attrs['name']; + } + $this->status = 'binding'; + $this->bindings[$this->currentBinding]['portType'] = $this->getLocalPart($attrs['type']); + $this->debug("current binding: $this->currentBinding of portType: " . $attrs['type']); + } + break; + case 'service': + $this->serviceName = $attrs['name']; + $this->status = 'service'; + $this->debug('current service: ' . $this->serviceName); + break; + case 'definitions': + foreach ($attrs as $name => $value) { + $this->wsdl_info[$name] = $value; + } + break; + } + } + } + + /** + * end-element handler + * + * @param string $parser XML parser object + * @param string $name element name + * @access private + */ + function end_element($parser, $name){ + // unset schema status + if (/*preg_match('/types$/', $name) ||*/ preg_match('/schema$/', $name)) { + $this->status = ""; + $this->appendDebug($this->currentSchema->getDebug()); + $this->currentSchema->clearDebug(); + $this->schemas[$this->currentSchema->schemaTargetNamespace][] = $this->currentSchema; + $this->debug('Parsing WSDL schema done'); + } + if ($this->status == 'schema') { + $this->currentSchema->schemaEndElement($parser, $name); + } else { + // bring depth down a notch + $this->depth--; + } + // end documentation + if ($this->documentation) { + //TODO: track the node to which documentation should be assigned; it can be a part, message, etc. + //$this->portTypes[$this->currentPortType][$this->currentPortOperation]['documentation'] = $this->documentation; + $this->documentation = false; + } + } + + /** + * element content handler + * + * @param string $parser XML parser object + * @param string $data element content + * @access private + */ + function character_data($parser, $data) + { + $pos = isset($this->depth_array[$this->depth]) ? $this->depth_array[$this->depth] : 0; + if (isset($this->message[$pos]['cdata'])) { + $this->message[$pos]['cdata'] .= $data; + } + if ($this->documentation) { + $this->documentation .= $data; + } + } + + /** + * if authenticating, set user credentials here + * + * @param string $username + * @param string $password + * @param string $authtype (basic|digest|certificate|ntlm) + * @param array $certRequest (keys must be cainfofile (optional), sslcertfile, sslkeyfile, passphrase, certpassword (optional), verifypeer (optional), verifyhost (optional): see corresponding options in cURL docs) + * @access public + */ + function setCredentials($username, $password, $authtype = 'basic', $certRequest = array()) { + $this->debug("setCredentials username=$username authtype=$authtype certRequest="); + $this->appendDebug($this->varDump($certRequest)); + $this->username = $username; + $this->password = $password; + $this->authtype = $authtype; + $this->certRequest = $certRequest; + } + + function getBindingData($binding) + { + if (is_array($this->bindings[$binding])) { + return $this->bindings[$binding]; + } + } + + /** + * returns an assoc array of operation names => operation data + * + * @param string $portName WSDL port name + * @param string $bindingType eg: soap, smtp, dime (only soap and soap12 are currently supported) + * @return array + * @access public + */ + function getOperations($portName = '', $bindingType = 'soap') { + $ops = array(); + if ($bindingType == 'soap') { + $bindingType = 'http://schemas.xmlsoap.org/wsdl/soap/'; + } elseif ($bindingType == 'soap12') { + $bindingType = 'http://schemas.xmlsoap.org/wsdl/soap12/'; + } else { + $this->debug("getOperations bindingType $bindingType may not be supported"); + } + $this->debug("getOperations for port '$portName' bindingType $bindingType"); + // loop thru ports + foreach($this->ports as $port => $portData) { + $this->debug("getOperations checking port $port bindingType " . $portData['bindingType']); + if ($portName == '' || $port == $portName) { + // binding type of port matches parameter + if ($portData['bindingType'] == $bindingType) { + $this->debug("getOperations found port $port bindingType $bindingType"); + //$this->debug("port data: " . $this->varDump($portData)); + //$this->debug("bindings: " . $this->varDump($this->bindings[ $portData['binding'] ])); + // merge bindings + if (isset($this->bindings[ $portData['binding'] ]['operations'])) { + $ops = array_merge ($ops, $this->bindings[ $portData['binding'] ]['operations']); + } + } + } + } + if (count($ops) == 0) { + $this->debug("getOperations found no operations for port '$portName' bindingType $bindingType"); + } + return $ops; + } + + /** + * returns an associative array of data necessary for calling an operation + * + * @param string $operation name of operation + * @param string $bindingType type of binding eg: soap, soap12 + * @return array + * @access public + */ + function getOperationData($operation, $bindingType = 'soap') + { + if ($bindingType == 'soap') { + $bindingType = 'http://schemas.xmlsoap.org/wsdl/soap/'; + } elseif ($bindingType == 'soap12') { + $bindingType = 'http://schemas.xmlsoap.org/wsdl/soap12/'; + } + // loop thru ports + foreach($this->ports as $port => $portData) { + // binding type of port matches parameter + if ($portData['bindingType'] == $bindingType) { + // get binding + //foreach($this->bindings[ $portData['binding'] ]['operations'] as $bOperation => $opData) { + foreach(array_keys($this->bindings[ $portData['binding'] ]['operations']) as $bOperation) { + // note that we could/should also check the namespace here + if ($operation == $bOperation) { + $opData = $this->bindings[ $portData['binding'] ]['operations'][$operation]; + return $opData; + } + } + } + } + } + + /** + * returns an associative array of data necessary for calling an operation + * + * @param string $soapAction soapAction for operation + * @param string $bindingType type of binding eg: soap, soap12 + * @return array + * @access public + */ + function getOperationDataForSoapAction($soapAction, $bindingType = 'soap') { + if ($bindingType == 'soap') { + $bindingType = 'http://schemas.xmlsoap.org/wsdl/soap/'; + } elseif ($bindingType == 'soap12') { + $bindingType = 'http://schemas.xmlsoap.org/wsdl/soap12/'; + } + // loop thru ports + foreach($this->ports as $port => $portData) { + // binding type of port matches parameter + if ($portData['bindingType'] == $bindingType) { + // loop through operations for the binding + foreach ($this->bindings[ $portData['binding'] ]['operations'] as $bOperation => $opData) { + if ($opData['soapAction'] == $soapAction) { + return $opData; + } + } + } + } + } + + /** + * returns an array of information about a given type + * returns false if no type exists by the given name + * + * typeDef = array( + * 'elements' => array(), // refs to elements array + * 'restrictionBase' => '', + * 'phpType' => '', + * 'order' => '(sequence|all)', + * 'attrs' => array() // refs to attributes array + * ) + * + * @param string $type the type + * @param string $ns namespace (not prefix) of the type + * @return mixed + * @access public + * @see nusoap_xmlschema + */ + function getTypeDef($type, $ns) { + $this->debug("in getTypeDef: type=$type, ns=$ns"); + if ((! $ns) && isset($this->namespaces['tns'])) { + $ns = $this->namespaces['tns']; + $this->debug("in getTypeDef: type namespace forced to $ns"); + } + if (!isset($this->schemas[$ns])) { + foreach ($this->schemas as $ns0 => $schema0) { + if (strcasecmp($ns, $ns0) == 0) { + $this->debug("in getTypeDef: replacing schema namespace $ns with $ns0"); + $ns = $ns0; + break; + } + } + } + if (isset($this->schemas[$ns])) { + $this->debug("in getTypeDef: have schema for namespace $ns"); + for ($i = 0; $i < count($this->schemas[$ns]); $i++) { + $xs = &$this->schemas[$ns][$i]; + $t = $xs->getTypeDef($type); + $this->appendDebug($xs->getDebug()); + $xs->clearDebug(); + if ($t) { + $this->debug("in getTypeDef: found type $type"); + if (!isset($t['phpType'])) { + // get info for type to tack onto the element + $uqType = substr($t['type'], strrpos($t['type'], ':') + 1); + $ns = substr($t['type'], 0, strrpos($t['type'], ':')); + $etype = $this->getTypeDef($uqType, $ns); + if ($etype) { + $this->debug("found type for [element] $type:"); + $this->debug($this->varDump($etype)); + if (isset($etype['phpType'])) { + $t['phpType'] = $etype['phpType']; + } + if (isset($etype['elements'])) { + $t['elements'] = $etype['elements']; + } + if (isset($etype['attrs'])) { + $t['attrs'] = $etype['attrs']; + } + } else { + $this->debug("did not find type for [element] $type"); + } + } + return $t; + } + } + $this->debug("in getTypeDef: did not find type $type"); + } else { + $this->debug("in getTypeDef: do not have schema for namespace $ns"); + } + return false; + } + + /** + * prints html description of services + * + * @access private + */ + function webDescription(){ + global $HTTP_SERVER_VARS; + + if (isset($_SERVER)) { + $PHP_SELF = $_SERVER['PHP_SELF']; + } elseif (isset($HTTP_SERVER_VARS)) { + $PHP_SELF = $HTTP_SERVER_VARS['PHP_SELF']; + } else { + $this->setError("Neither _SERVER nor HTTP_SERVER_VARS is available"); + } + + $b = ' + NuSOAP: '.$this->serviceName.' + + + + +
+

+
'.$this->serviceName.'
+ +
'; + return $b; + } + + /** + * serialize the parsed wsdl + * + * @param mixed $debug whether to put debug=1 in endpoint URL + * @return string serialization of WSDL + * @access public + */ + function serialize($debug = 0) + { + $xml = ''; + $xml .= "\nnamespaces as $k => $v) { + $xml .= " xmlns:$k=\"$v\""; + } + // 10.9.02 - add poulter fix for wsdl and tns declarations + if (isset($this->namespaces['wsdl'])) { + $xml .= " xmlns=\"" . $this->namespaces['wsdl'] . "\""; + } + if (isset($this->namespaces['tns'])) { + $xml .= " targetNamespace=\"" . $this->namespaces['tns'] . "\""; + } + $xml .= '>'; + // imports + if (sizeof($this->import) > 0) { + foreach($this->import as $ns => $list) { + foreach ($list as $ii) { + if ($ii['location'] != '') { + $xml .= ''; + } else { + $xml .= ''; + } + } + } + } + // types + if (count($this->schemas)>=1) { + $xml .= "\n\n"; + foreach ($this->schemas as $ns => $list) { + foreach ($list as $xs) { + $xml .= $xs->serializeSchema(); + } + } + $xml .= ''; + } + // messages + if (count($this->messages) >= 1) { + foreach($this->messages as $msgName => $msgParts) { + $xml .= "\n'; + if(is_array($msgParts)){ + foreach($msgParts as $partName => $partType) { + // print 'serializing '.$partType.', sv: '.$this->XMLSchemaVersion.'
'; + if (strpos($partType, ':')) { + $typePrefix = $this->getPrefixFromNamespace($this->getPrefix($partType)); + } elseif (isset($this->typemap[$this->namespaces['xsd']][$partType])) { + // print 'checking typemap: '.$this->XMLSchemaVersion.'
'; + $typePrefix = 'xsd'; + } else { + foreach($this->typemap as $ns => $types) { + if (isset($types[$partType])) { + $typePrefix = $this->getPrefixFromNamespace($ns); + } + } + if (!isset($typePrefix)) { + die("$partType has no namespace!"); + } + } + $ns = $this->getNamespaceFromPrefix($typePrefix); + $localPart = $this->getLocalPart($partType); + $typeDef = $this->getTypeDef($localPart, $ns); + if ($typeDef['typeClass'] == 'element') { + $elementortype = 'element'; + if (substr($localPart, -1) == '^') { + $localPart = substr($localPart, 0, -1); + } + } else { + $elementortype = 'type'; + } + $xml .= "\n" . ' '; + } + } + $xml .= '
'; + } + } + // bindings & porttypes + if (count($this->bindings) >= 1) { + $binding_xml = ''; + $portType_xml = ''; + foreach($this->bindings as $bindingName => $attrs) { + $binding_xml .= "\n'; + $binding_xml .= "\n" . ' '; + $portType_xml .= "\n'; + foreach($attrs['operations'] as $opName => $opParts) { + $binding_xml .= "\n" . ' '; + $binding_xml .= "\n" . ' '; + if (isset($opParts['input']['encodingStyle']) && $opParts['input']['encodingStyle'] != '') { + $enc_style = ' encodingStyle="' . $opParts['input']['encodingStyle'] . '"'; + } else { + $enc_style = ''; + } + $binding_xml .= "\n" . ' '; + if (isset($opParts['output']['encodingStyle']) && $opParts['output']['encodingStyle'] != '') { + $enc_style = ' encodingStyle="' . $opParts['output']['encodingStyle'] . '"'; + } else { + $enc_style = ''; + } + $binding_xml .= "\n" . ' '; + $binding_xml .= "\n" . ' '; + $portType_xml .= "\n" . ' ' . htmlspecialchars($opParts['documentation']) . ''; + } + $portType_xml .= "\n" . ' '; + $portType_xml .= "\n" . ' '; + $portType_xml .= "\n" . ' '; + } + $portType_xml .= "\n" . ''; + $binding_xml .= "\n" . ''; + } + $xml .= $portType_xml . $binding_xml; + } + // services + $xml .= "\nserviceName . '">'; + if (count($this->ports) >= 1) { + foreach($this->ports as $pName => $attrs) { + $xml .= "\n" . ' '; + $xml .= "\n" . ' '; + $xml .= "\n" . ' '; + } + } + $xml .= "\n" . ''; + return $xml . "\n"; + } + + /** + * determine whether a set of parameters are unwrapped + * when they are expect to be wrapped, Microsoft-style. + * + * @param string $type the type (element name) of the wrapper + * @param array $parameters the parameter values for the SOAP call + * @return boolean whether they parameters are unwrapped (and should be wrapped) + * @access private + */ + function parametersMatchWrapped($type, &$parameters) { + $this->debug("in parametersMatchWrapped type=$type, parameters="); + $this->appendDebug($this->varDump($parameters)); + + // split type into namespace:unqualified-type + if (strpos($type, ':')) { + $uqType = substr($type, strrpos($type, ':') + 1); + $ns = substr($type, 0, strrpos($type, ':')); + $this->debug("in parametersMatchWrapped: got a prefixed type: $uqType, $ns"); + if ($this->getNamespaceFromPrefix($ns)) { + $ns = $this->getNamespaceFromPrefix($ns); + $this->debug("in parametersMatchWrapped: expanded prefixed type: $uqType, $ns"); + } + } else { + // TODO: should the type be compared to types in XSD, and the namespace + // set to XSD if the type matches? + $this->debug("in parametersMatchWrapped: No namespace for type $type"); + $ns = ''; + $uqType = $type; + } + + // get the type information + if (!$typeDef = $this->getTypeDef($uqType, $ns)) { + $this->debug("in parametersMatchWrapped: $type ($uqType) is not a supported type."); + return false; + } + $this->debug("in parametersMatchWrapped: found typeDef="); + $this->appendDebug($this->varDump($typeDef)); + if (substr($uqType, -1) == '^') { + $uqType = substr($uqType, 0, -1); + } + $phpType = $typeDef['phpType']; + $arrayType = (isset($typeDef['arrayType']) ? $typeDef['arrayType'] : ''); + $this->debug("in parametersMatchWrapped: uqType: $uqType, ns: $ns, phptype: $phpType, arrayType: $arrayType"); + + // we expect a complexType or element of complexType + if ($phpType != 'struct') { + $this->debug("in parametersMatchWrapped: not a struct"); + return false; + } + + // see whether the parameter names match the elements + if (isset($typeDef['elements']) && is_array($typeDef['elements'])) { + $elements = 0; + $matches = 0; + foreach ($typeDef['elements'] as $name => $attrs) { + if (isset($parameters[$name])) { + $this->debug("in parametersMatchWrapped: have parameter named $name"); + $matches++; + } else { + $this->debug("in parametersMatchWrapped: do not have parameter named $name"); + } + $elements++; + } + + $this->debug("in parametersMatchWrapped: $matches parameter names match $elements wrapped parameter names"); + if ($matches == 0) { + return false; + } + return true; + } + + // since there are no elements for the type, if the user passed no + // parameters, the parameters match wrapped. + $this->debug("in parametersMatchWrapped: no elements type $ns:$uqType"); + return count($parameters) == 0; + } + + /** + * serialize PHP values according to a WSDL message definition + * contrary to the method name, this is not limited to RPC + * + * TODO + * - multi-ref serialization + * - validate PHP values against type definitions, return errors if invalid + * + * @param string $operation operation name + * @param string $direction (input|output) + * @param mixed $parameters parameter value(s) + * @param string $bindingType (soap|soap12) + * @return mixed parameters serialized as XML or false on error (e.g. operation not found) + * @access public + */ + function serializeRPCParameters($operation, $direction, $parameters, $bindingType = 'soap') { + $this->debug("in serializeRPCParameters: operation=$operation, direction=$direction, XMLSchemaVersion=$this->XMLSchemaVersion, bindingType=$bindingType"); + $this->appendDebug('parameters=' . $this->varDump($parameters)); + + if ($direction != 'input' && $direction != 'output') { + $this->debug('The value of the \$direction argument needs to be either "input" or "output"'); + $this->setError('The value of the \$direction argument needs to be either "input" or "output"'); + return false; + } + if (!$opData = $this->getOperationData($operation, $bindingType)) { + $this->debug('Unable to retrieve WSDL data for operation: ' . $operation . ' bindingType: ' . $bindingType); + $this->setError('Unable to retrieve WSDL data for operation: ' . $operation . ' bindingType: ' . $bindingType); + return false; + } + $this->debug('in serializeRPCParameters: opData:'); + $this->appendDebug($this->varDump($opData)); + + // Get encoding style for output and set to current + $encodingStyle = 'http://schemas.xmlsoap.org/soap/encoding/'; + if(($direction == 'input') && isset($opData['output']['encodingStyle']) && ($opData['output']['encodingStyle'] != $encodingStyle)) { + $encodingStyle = $opData['output']['encodingStyle']; + $enc_style = $encodingStyle; + } + + // set input params + $xml = ''; + if (isset($opData[$direction]['parts']) && sizeof($opData[$direction]['parts']) > 0) { + $parts = &$opData[$direction]['parts']; + $part_count = sizeof($parts); + $style = $opData['style']; + $use = $opData[$direction]['use']; + $this->debug("have $part_count part(s) to serialize using $style/$use"); + if (is_array($parameters)) { + $parametersArrayType = $this->isArraySimpleOrStruct($parameters); + $parameter_count = count($parameters); + $this->debug("have $parameter_count parameter(s) provided as $parametersArrayType to serialize"); + // check for Microsoft-style wrapped parameters + if ($style == 'document' && $use == 'literal' && $part_count == 1 && isset($parts['parameters'])) { + $this->debug('check whether the caller has wrapped the parameters'); + if ($direction == 'output' && $parametersArrayType == 'arraySimple' && $parameter_count == 1) { + // TODO: consider checking here for double-wrapping, when + // service function wraps, then NuSOAP wraps again + $this->debug("change simple array to associative with 'parameters' element"); + $parameters['parameters'] = $parameters[0]; + unset($parameters[0]); + } + if (($parametersArrayType == 'arrayStruct' || $parameter_count == 0) && !isset($parameters['parameters'])) { + $this->debug('check whether caller\'s parameters match the wrapped ones'); + if ($this->parametersMatchWrapped($parts['parameters'], $parameters)) { + $this->debug('wrap the parameters for the caller'); + $parameters = array('parameters' => $parameters); + $parameter_count = 1; + } + } + } + foreach ($parts as $name => $type) { + $this->debug("serializing part $name of type $type"); + // Track encoding style + if (isset($opData[$direction]['encodingStyle']) && $encodingStyle != $opData[$direction]['encodingStyle']) { + $encodingStyle = $opData[$direction]['encodingStyle']; + $enc_style = $encodingStyle; + } else { + $enc_style = false; + } + // NOTE: add error handling here + // if serializeType returns false, then catch global error and fault + if ($parametersArrayType == 'arraySimple') { + $p = array_shift($parameters); + $this->debug('calling serializeType w/indexed param'); + $xml .= $this->serializeType($name, $type, $p, $use, $enc_style); + } elseif (isset($parameters[$name])) { + $this->debug('calling serializeType w/named param'); + $xml .= $this->serializeType($name, $type, $parameters[$name], $use, $enc_style); + } else { + // TODO: only send nillable + $this->debug('calling serializeType w/null param'); + $xml .= $this->serializeType($name, $type, null, $use, $enc_style); + } + } + } else { + $this->debug('no parameters passed.'); + } + } + $this->debug("serializeRPCParameters returning: $xml"); + return $xml; + } + + /** + * serialize a PHP value according to a WSDL message definition + * + * TODO + * - multi-ref serialization + * - validate PHP values against type definitions, return errors if invalid + * + * @param string $operation operation name + * @param string $direction (input|output) + * @param mixed $parameters parameter value(s) + * @return mixed parameters serialized as XML or false on error (e.g. operation not found) + * @access public + * @deprecated + */ + function serializeParameters($operation, $direction, $parameters) + { + $this->debug("in serializeParameters: operation=$operation, direction=$direction, XMLSchemaVersion=$this->XMLSchemaVersion"); + $this->appendDebug('parameters=' . $this->varDump($parameters)); + + if ($direction != 'input' && $direction != 'output') { + $this->debug('The value of the \$direction argument needs to be either "input" or "output"'); + $this->setError('The value of the \$direction argument needs to be either "input" or "output"'); + return false; + } + if (!$opData = $this->getOperationData($operation)) { + $this->debug('Unable to retrieve WSDL data for operation: ' . $operation); + $this->setError('Unable to retrieve WSDL data for operation: ' . $operation); + return false; + } + $this->debug('opData:'); + $this->appendDebug($this->varDump($opData)); + + // Get encoding style for output and set to current + $encodingStyle = 'http://schemas.xmlsoap.org/soap/encoding/'; + if(($direction == 'input') && isset($opData['output']['encodingStyle']) && ($opData['output']['encodingStyle'] != $encodingStyle)) { + $encodingStyle = $opData['output']['encodingStyle']; + $enc_style = $encodingStyle; + } + + // set input params + $xml = ''; + if (isset($opData[$direction]['parts']) && sizeof($opData[$direction]['parts']) > 0) { + + $use = $opData[$direction]['use']; + $this->debug("use=$use"); + $this->debug('got ' . count($opData[$direction]['parts']) . ' part(s)'); + if (is_array($parameters)) { + $parametersArrayType = $this->isArraySimpleOrStruct($parameters); + $this->debug('have ' . $parametersArrayType . ' parameters'); + foreach($opData[$direction]['parts'] as $name => $type) { + $this->debug('serializing part "'.$name.'" of type "'.$type.'"'); + // Track encoding style + if(isset($opData[$direction]['encodingStyle']) && $encodingStyle != $opData[$direction]['encodingStyle']) { + $encodingStyle = $opData[$direction]['encodingStyle']; + $enc_style = $encodingStyle; + } else { + $enc_style = false; + } + // NOTE: add error handling here + // if serializeType returns false, then catch global error and fault + if ($parametersArrayType == 'arraySimple') { + $p = array_shift($parameters); + $this->debug('calling serializeType w/indexed param'); + $xml .= $this->serializeType($name, $type, $p, $use, $enc_style); + } elseif (isset($parameters[$name])) { + $this->debug('calling serializeType w/named param'); + $xml .= $this->serializeType($name, $type, $parameters[$name], $use, $enc_style); + } else { + // TODO: only send nillable + $this->debug('calling serializeType w/null param'); + $xml .= $this->serializeType($name, $type, null, $use, $enc_style); + } + } + } else { + $this->debug('no parameters passed.'); + } + } + $this->debug("serializeParameters returning: $xml"); + return $xml; + } + + /** + * serializes a PHP value according a given type definition + * + * @param string $name name of value (part or element) + * @param string $type XML schema type of value (type or element) + * @param mixed $value a native PHP value (parameter value) + * @param string $use use for part (encoded|literal) + * @param string $encodingStyle SOAP encoding style for the value (if different than the enclosing style) + * @param boolean $unqualified a kludge for what should be XML namespace form handling + * @return string value serialized as an XML string + * @access private + */ + function serializeType($name, $type, $value, $use='encoded', $encodingStyle=false, $unqualified=false) + { + $this->debug("in serializeType: name=$name, type=$type, use=$use, encodingStyle=$encodingStyle, unqualified=" . ($unqualified ? "unqualified" : "qualified")); + $this->appendDebug("value=" . $this->varDump($value)); + if($use == 'encoded' && $encodingStyle) { + $encodingStyle = ' SOAP-ENV:encodingStyle="' . $encodingStyle . '"'; + } + + // if a soapval has been supplied, let its type override the WSDL + if (is_object($value) && get_class($value) == 'soapval') { + if ($value->type_ns) { + $type = $value->type_ns . ':' . $value->type; + $forceType = true; + $this->debug("in serializeType: soapval overrides type to $type"); + } elseif ($value->type) { + $type = $value->type; + $forceType = true; + $this->debug("in serializeType: soapval overrides type to $type"); + } else { + $forceType = false; + $this->debug("in serializeType: soapval does not override type"); + } + $attrs = $value->attributes; + $value = $value->value; + $this->debug("in serializeType: soapval overrides value to $value"); + if ($attrs) { + if (!is_array($value)) { + $value['!'] = $value; + } + foreach ($attrs as $n => $v) { + $value['!' . $n] = $v; + } + $this->debug("in serializeType: soapval provides attributes"); + } + } else { + $forceType = false; + } + + $xml = ''; + if (strpos($type, ':')) { + $uqType = substr($type, strrpos($type, ':') + 1); + $ns = substr($type, 0, strrpos($type, ':')); + $this->debug("in serializeType: got a prefixed type: $uqType, $ns"); + if ($this->getNamespaceFromPrefix($ns)) { + $ns = $this->getNamespaceFromPrefix($ns); + $this->debug("in serializeType: expanded prefixed type: $uqType, $ns"); + } + + if($ns == $this->XMLSchemaVersion || $ns == 'http://schemas.xmlsoap.org/soap/encoding/'){ + $this->debug('in serializeType: type namespace indicates XML Schema or SOAP Encoding type'); + if ($unqualified && $use == 'literal') { + $elementNS = " xmlns=\"\""; + } else { + $elementNS = ''; + } + if (is_null($value)) { + if ($use == 'literal') { + // TODO: depends on minOccurs + $xml = "<$name$elementNS/>"; + } else { + // TODO: depends on nillable, which should be checked before calling this method + $xml = "<$name$elementNS xsi:nil=\"true\" xsi:type=\"" . $this->getPrefixFromNamespace($ns) . ":$uqType\"/>"; + } + $this->debug("in serializeType: returning: $xml"); + return $xml; + } + if ($uqType == 'Array') { + // JBoss/Axis does this sometimes + return $this->serialize_val($value, $name, false, false, false, false, $use); + } + if ($uqType == 'boolean') { + if ((is_string($value) && $value == 'false') || (! $value)) { + $value = 'false'; + } else { + $value = 'true'; + } + } + if ($uqType == 'string' && gettype($value) == 'string') { + $value = $this->expandEntities($value); + } + if (($uqType == 'long' || $uqType == 'unsignedLong') && gettype($value) == 'double') { + $value = sprintf("%.0lf", $value); + } + // it's a scalar + // TODO: what about null/nil values? + // check type isn't a custom type extending xmlschema namespace + if (!$this->getTypeDef($uqType, $ns)) { + if ($use == 'literal') { + if ($forceType) { + $xml = "<$name$elementNS xsi:type=\"" . $this->getPrefixFromNamespace($ns) . ":$uqType\">$value"; + } else { + $xml = "<$name$elementNS>$value"; + } + } else { + $xml = "<$name$elementNS xsi:type=\"" . $this->getPrefixFromNamespace($ns) . ":$uqType\"$encodingStyle>$value"; + } + $this->debug("in serializeType: returning: $xml"); + return $xml; + } + $this->debug('custom type extends XML Schema or SOAP Encoding namespace (yuck)'); + } else if ($ns == 'http://xml.apache.org/xml-soap') { + $this->debug('in serializeType: appears to be Apache SOAP type'); + if ($uqType == 'Map') { + $tt_prefix = $this->getPrefixFromNamespace('http://xml.apache.org/xml-soap'); + if (! $tt_prefix) { + $this->debug('in serializeType: Add namespace for Apache SOAP type'); + $tt_prefix = 'ns' . rand(1000, 9999); + $this->namespaces[$tt_prefix] = 'http://xml.apache.org/xml-soap'; + // force this to be added to usedNamespaces + $tt_prefix = $this->getPrefixFromNamespace('http://xml.apache.org/xml-soap'); + } + $contents = ''; + foreach($value as $k => $v) { + $this->debug("serializing map element: key $k, value $v"); + $contents .= ''; + $contents .= $this->serialize_val($k,'key',false,false,false,false,$use); + $contents .= $this->serialize_val($v,'value',false,false,false,false,$use); + $contents .= ''; + } + if ($use == 'literal') { + if ($forceType) { + $xml = "<$name xsi:type=\"" . $tt_prefix . ":$uqType\">$contents"; + } else { + $xml = "<$name>$contents"; + } + } else { + $xml = "<$name xsi:type=\"" . $tt_prefix . ":$uqType\"$encodingStyle>$contents"; + } + $this->debug("in serializeType: returning: $xml"); + return $xml; + } + $this->debug('in serializeType: Apache SOAP type, but only support Map'); + } + } else { + // TODO: should the type be compared to types in XSD, and the namespace + // set to XSD if the type matches? + $this->debug("in serializeType: No namespace for type $type"); + $ns = ''; + $uqType = $type; + } + if(!$typeDef = $this->getTypeDef($uqType, $ns)){ + $this->setError("$type ($uqType) is not a supported type."); + $this->debug("in serializeType: $type ($uqType) is not a supported type."); + return false; + } else { + $this->debug("in serializeType: found typeDef"); + $this->appendDebug('typeDef=' . $this->varDump($typeDef)); + if (substr($uqType, -1) == '^') { + $uqType = substr($uqType, 0, -1); + } + } + if (!isset($typeDef['phpType'])) { + $this->setError("$type ($uqType) has no phpType."); + $this->debug("in serializeType: $type ($uqType) has no phpType."); + return false; + } + $phpType = $typeDef['phpType']; + $this->debug("in serializeType: uqType: $uqType, ns: $ns, phptype: $phpType, arrayType: " . (isset($typeDef['arrayType']) ? $typeDef['arrayType'] : '') ); + // if php type == struct, map value to the element names + if ($phpType == 'struct') { + if (isset($typeDef['typeClass']) && $typeDef['typeClass'] == 'element') { + $elementName = $uqType; + if (isset($typeDef['form']) && ($typeDef['form'] == 'qualified')) { + $elementNS = " xmlns=\"$ns\""; + } else { + $elementNS = " xmlns=\"\""; + } + } else { + $elementName = $name; + if ($unqualified) { + $elementNS = " xmlns=\"\""; + } else { + $elementNS = ''; + } + } + if (is_null($value)) { + if ($use == 'literal') { + // TODO: depends on minOccurs and nillable + $xml = "<$elementName$elementNS/>"; + } else { + $xml = "<$elementName$elementNS xsi:nil=\"true\" xsi:type=\"" . $this->getPrefixFromNamespace($ns) . ":$uqType\"/>"; + } + $this->debug("in serializeType: returning: $xml"); + return $xml; + } + if (is_object($value)) { + $value = get_object_vars($value); + } + if (is_array($value)) { + $elementAttrs = $this->serializeComplexTypeAttributes($typeDef, $value, $ns, $uqType); + if ($use == 'literal') { + if ($forceType) { + $xml = "<$elementName$elementNS$elementAttrs xsi:type=\"" . $this->getPrefixFromNamespace($ns) . ":$uqType\">"; + } else { + $xml = "<$elementName$elementNS$elementAttrs>"; + } + } else { + $xml = "<$elementName$elementNS$elementAttrs xsi:type=\"" . $this->getPrefixFromNamespace($ns) . ":$uqType\"$encodingStyle>"; + } + + if (isset($typeDef['simpleContent']) && $typeDef['simpleContent'] == 'true') { + if (isset($value['!'])) { + $xml .= $value['!']; + $this->debug("in serializeType: serialized simpleContent for type $type"); + } else { + $this->debug("in serializeType: no simpleContent to serialize for type $type"); + } + } else { + // complexContent + $xml .= $this->serializeComplexTypeElements($typeDef, $value, $ns, $uqType, $use, $encodingStyle); + } + $xml .= ""; + } else { + $this->debug("in serializeType: phpType is struct, but value is not an array"); + $this->setError("phpType is struct, but value is not an array: see debug output for details"); + $xml = ''; + } + } elseif ($phpType == 'array') { + if (isset($typeDef['form']) && ($typeDef['form'] == 'qualified')) { + $elementNS = " xmlns=\"$ns\""; + } else { + if ($unqualified) { + $elementNS = " xmlns=\"\""; + } else { + $elementNS = ''; + } + } + if (is_null($value)) { + if ($use == 'literal') { + // TODO: depends on minOccurs + $xml = "<$name$elementNS/>"; + } else { + $xml = "<$name$elementNS xsi:nil=\"true\" xsi:type=\"" . + $this->getPrefixFromNamespace('http://schemas.xmlsoap.org/soap/encoding/') . + ":Array\" " . + $this->getPrefixFromNamespace('http://schemas.xmlsoap.org/soap/encoding/') . + ':arrayType="' . + $this->getPrefixFromNamespace($this->getPrefix($typeDef['arrayType'])) . + ':' . + $this->getLocalPart($typeDef['arrayType'])."[0]\"/>"; + } + $this->debug("in serializeType: returning: $xml"); + return $xml; + } + if (isset($typeDef['multidimensional'])) { + $nv = array(); + foreach($value as $v) { + $cols = ',' . sizeof($v); + $nv = array_merge($nv, $v); + } + $value = $nv; + } else { + $cols = ''; + } + if (is_array($value) && sizeof($value) >= 1) { + $rows = sizeof($value); + $contents = ''; + foreach($value as $k => $v) { + $this->debug("serializing array element: $k, $v of type: $typeDef[arrayType]"); + //if (strpos($typeDef['arrayType'], ':') ) { + if (!in_array($typeDef['arrayType'],$this->typemap['http://www.w3.org/2001/XMLSchema'])) { + $contents .= $this->serializeType('item', $typeDef['arrayType'], $v, $use); + } else { + $contents .= $this->serialize_val($v, 'item', $typeDef['arrayType'], null, $this->XMLSchemaVersion, false, $use); + } + } + } else { + $rows = 0; + $contents = null; + } + // TODO: for now, an empty value will be serialized as a zero element + // array. Revisit this when coding the handling of null/nil values. + if ($use == 'literal') { + $xml = "<$name$elementNS>" + .$contents + .""; + } else { + $xml = "<$name$elementNS xsi:type=\"".$this->getPrefixFromNamespace('http://schemas.xmlsoap.org/soap/encoding/').':Array" '. + $this->getPrefixFromNamespace('http://schemas.xmlsoap.org/soap/encoding/') + .':arrayType="' + .$this->getPrefixFromNamespace($this->getPrefix($typeDef['arrayType'])) + .":".$this->getLocalPart($typeDef['arrayType'])."[$rows$cols]\">" + .$contents + .""; + } + } elseif ($phpType == 'scalar') { + if (isset($typeDef['form']) && ($typeDef['form'] == 'qualified')) { + $elementNS = " xmlns=\"$ns\""; + } else { + if ($unqualified) { + $elementNS = " xmlns=\"\""; + } else { + $elementNS = ''; + } + } + if ($use == 'literal') { + if ($forceType) { + $xml = "<$name$elementNS xsi:type=\"" . $this->getPrefixFromNamespace($ns) . ":$uqType\">$value"; + } else { + $xml = "<$name$elementNS>$value"; + } + } else { + $xml = "<$name$elementNS xsi:type=\"" . $this->getPrefixFromNamespace($ns) . ":$uqType\"$encodingStyle>$value"; + } + } + $this->debug("in serializeType: returning: $xml"); + return $xml; + } + + /** + * serializes the attributes for a complexType + * + * @param array $typeDef our internal representation of an XML schema type (or element) + * @param mixed $value a native PHP value (parameter value) + * @param string $ns the namespace of the type + * @param string $uqType the local part of the type + * @return string value serialized as an XML string + * @access private + */ + function serializeComplexTypeAttributes($typeDef, $value, $ns, $uqType) { + $this->debug("serializeComplexTypeAttributes for XML Schema type $ns:$uqType"); + $xml = ''; + if (isset($typeDef['extensionBase'])) { + $nsx = $this->getPrefix($typeDef['extensionBase']); + $uqTypex = $this->getLocalPart($typeDef['extensionBase']); + if ($this->getNamespaceFromPrefix($nsx)) { + $nsx = $this->getNamespaceFromPrefix($nsx); + } + if ($typeDefx = $this->getTypeDef($uqTypex, $nsx)) { + $this->debug("serialize attributes for extension base $nsx:$uqTypex"); + $xml .= $this->serializeComplexTypeAttributes($typeDefx, $value, $nsx, $uqTypex); + } else { + $this->debug("extension base $nsx:$uqTypex is not a supported type"); + } + } + if (isset($typeDef['attrs']) && is_array($typeDef['attrs'])) { + $this->debug("serialize attributes for XML Schema type $ns:$uqType"); + if (is_array($value)) { + $xvalue = $value; + } elseif (is_object($value)) { + $xvalue = get_object_vars($value); + } else { + $this->debug("value is neither an array nor an object for XML Schema type $ns:$uqType"); + $xvalue = array(); + } + foreach ($typeDef['attrs'] as $aName => $attrs) { + if (isset($xvalue['!' . $aName])) { + $xname = '!' . $aName; + $this->debug("value provided for attribute $aName with key $xname"); + } elseif (isset($xvalue[$aName])) { + $xname = $aName; + $this->debug("value provided for attribute $aName with key $xname"); + } elseif (isset($attrs['default'])) { + $xname = '!' . $aName; + $xvalue[$xname] = $attrs['default']; + $this->debug('use default value of ' . $xvalue[$aName] . ' for attribute ' . $aName); + } else { + $xname = ''; + $this->debug("no value provided for attribute $aName"); + } + if ($xname) { + $xml .= " $aName=\"" . $this->expandEntities($xvalue[$xname]) . "\""; + } + } + } else { + $this->debug("no attributes to serialize for XML Schema type $ns:$uqType"); + } + return $xml; + } + + /** + * serializes the elements for a complexType + * + * @param array $typeDef our internal representation of an XML schema type (or element) + * @param mixed $value a native PHP value (parameter value) + * @param string $ns the namespace of the type + * @param string $uqType the local part of the type + * @param string $use use for part (encoded|literal) + * @param string $encodingStyle SOAP encoding style for the value (if different than the enclosing style) + * @return string value serialized as an XML string + * @access private + */ + function serializeComplexTypeElements($typeDef, $value, $ns, $uqType, $use='encoded', $encodingStyle=false) { + $this->debug("in serializeComplexTypeElements for XML Schema type $ns:$uqType"); + $xml = ''; + if (isset($typeDef['extensionBase'])) { + $nsx = $this->getPrefix($typeDef['extensionBase']); + $uqTypex = $this->getLocalPart($typeDef['extensionBase']); + if ($this->getNamespaceFromPrefix($nsx)) { + $nsx = $this->getNamespaceFromPrefix($nsx); + } + if ($typeDefx = $this->getTypeDef($uqTypex, $nsx)) { + $this->debug("serialize elements for extension base $nsx:$uqTypex"); + $xml .= $this->serializeComplexTypeElements($typeDefx, $value, $nsx, $uqTypex, $use, $encodingStyle); + } else { + $this->debug("extension base $nsx:$uqTypex is not a supported type"); + } + } + if (isset($typeDef['elements']) && is_array($typeDef['elements'])) { + $this->debug("in serializeComplexTypeElements, serialize elements for XML Schema type $ns:$uqType"); + if (is_array($value)) { + $xvalue = $value; + } elseif (is_object($value)) { + $xvalue = get_object_vars($value); + } else { + $this->debug("value is neither an array nor an object for XML Schema type $ns:$uqType"); + $xvalue = array(); + } + // toggle whether all elements are present - ideally should validate against schema + if (count($typeDef['elements']) != count($xvalue)){ + $optionals = true; + } + foreach ($typeDef['elements'] as $eName => $attrs) { + if (!isset($xvalue[$eName])) { + if (isset($attrs['default'])) { + $xvalue[$eName] = $attrs['default']; + $this->debug('use default value of ' . $xvalue[$eName] . ' for element ' . $eName); + } + } + // if user took advantage of a minOccurs=0, then only serialize named parameters + if (isset($optionals) + && (!isset($xvalue[$eName])) + && ( (!isset($attrs['nillable'])) || $attrs['nillable'] != 'true') + ){ + if (isset($attrs['minOccurs']) && $attrs['minOccurs'] <> '0') { + $this->debug("apparent error: no value provided for element $eName with minOccurs=" . $attrs['minOccurs']); + } + // do nothing + $this->debug("no value provided for complexType element $eName and element is not nillable, so serialize nothing"); + } else { + // get value + if (isset($xvalue[$eName])) { + $v = $xvalue[$eName]; + } else { + $v = null; + } + if (isset($attrs['form'])) { + $unqualified = ($attrs['form'] == 'unqualified'); + } else { + $unqualified = false; + } + if (isset($attrs['maxOccurs']) && ($attrs['maxOccurs'] == 'unbounded' || $attrs['maxOccurs'] > 1) && isset($v) && is_array($v) && $this->isArraySimpleOrStruct($v) == 'arraySimple') { + $vv = $v; + foreach ($vv as $k => $v) { + if (isset($attrs['type']) || isset($attrs['ref'])) { + // serialize schema-defined type + $xml .= $this->serializeType($eName, isset($attrs['type']) ? $attrs['type'] : $attrs['ref'], $v, $use, $encodingStyle, $unqualified); + } else { + // serialize generic type (can this ever really happen?) + $this->debug("calling serialize_val() for $v, $eName, false, false, false, false, $use"); + $xml .= $this->serialize_val($v, $eName, false, false, false, false, $use); + } + } + } else { + if (is_null($v) && isset($attrs['minOccurs']) && $attrs['minOccurs'] == '0') { + // do nothing + } elseif (is_null($v) && isset($attrs['nillable']) && $attrs['nillable'] == 'true') { + // TODO: serialize a nil correctly, but for now serialize schema-defined type + $xml .= $this->serializeType($eName, isset($attrs['type']) ? $attrs['type'] : $attrs['ref'], $v, $use, $encodingStyle, $unqualified); + } elseif (isset($attrs['type']) || isset($attrs['ref'])) { + // serialize schema-defined type + $xml .= $this->serializeType($eName, isset($attrs['type']) ? $attrs['type'] : $attrs['ref'], $v, $use, $encodingStyle, $unqualified); + } else { + // serialize generic type (can this ever really happen?) + $this->debug("calling serialize_val() for $v, $eName, false, false, false, false, $use"); + $xml .= $this->serialize_val($v, $eName, false, false, false, false, $use); + } + } + } + } + } else { + $this->debug("no elements to serialize for XML Schema type $ns:$uqType"); + } + return $xml; + } + + /** + * adds an XML Schema complex type to the WSDL types + * + * @param string $name + * @param string $typeClass (complexType|simpleType|attribute) + * @param string $phpType currently supported are array and struct (php assoc array) + * @param string $compositor (all|sequence|choice) + * @param string $restrictionBase namespace:name (http://schemas.xmlsoap.org/soap/encoding/:Array) + * @param array $elements e.g. array ( name => array(name=>'',type=>'') ) + * @param array $attrs e.g. array(array('ref'=>'SOAP-ENC:arrayType','wsdl:arrayType'=>'xsd:string[]')) + * @param string $arrayType as namespace:name (xsd:string) + * @see nusoap_xmlschema + * @access public + */ + function addComplexType($name,$typeClass='complexType',$phpType='array',$compositor='',$restrictionBase='',$elements=array(),$attrs=array(),$arrayType='') { + if (count($elements) > 0) { + $eElements = array(); + foreach($elements as $n => $e){ + // expand each element + $ee = array(); + foreach ($e as $k => $v) { + $k = strpos($k,':') ? $this->expandQname($k) : $k; + $v = strpos($v,':') ? $this->expandQname($v) : $v; + $ee[$k] = $v; + } + $eElements[$n] = $ee; + } + $elements = $eElements; + } + + if (count($attrs) > 0) { + foreach($attrs as $n => $a){ + // expand each attribute + foreach ($a as $k => $v) { + $k = strpos($k,':') ? $this->expandQname($k) : $k; + $v = strpos($v,':') ? $this->expandQname($v) : $v; + $aa[$k] = $v; + } + $eAttrs[$n] = $aa; + } + $attrs = $eAttrs; + } + + $restrictionBase = strpos($restrictionBase,':') ? $this->expandQname($restrictionBase) : $restrictionBase; + $arrayType = strpos($arrayType,':') ? $this->expandQname($arrayType) : $arrayType; + + $typens = isset($this->namespaces['types']) ? $this->namespaces['types'] : $this->namespaces['tns']; + $this->schemas[$typens][0]->addComplexType($name,$typeClass,$phpType,$compositor,$restrictionBase,$elements,$attrs,$arrayType); + } + + /** + * adds an XML Schema simple type to the WSDL types + * + * @param string $name + * @param string $restrictionBase namespace:name (http://schemas.xmlsoap.org/soap/encoding/:Array) + * @param string $typeClass (should always be simpleType) + * @param string $phpType (should always be scalar) + * @param array $enumeration array of values + * @see nusoap_xmlschema + * @access public + */ + function addSimpleType($name, $restrictionBase='', $typeClass='simpleType', $phpType='scalar', $enumeration=array()) { + $restrictionBase = strpos($restrictionBase,':') ? $this->expandQname($restrictionBase) : $restrictionBase; + + $typens = isset($this->namespaces['types']) ? $this->namespaces['types'] : $this->namespaces['tns']; + $this->schemas[$typens][0]->addSimpleType($name, $restrictionBase, $typeClass, $phpType, $enumeration); + } + + /** + * adds an element to the WSDL types + * + * @param array $attrs attributes that must include name and type + * @see nusoap_xmlschema + * @access public + */ + function addElement($attrs) { + $typens = isset($this->namespaces['types']) ? $this->namespaces['types'] : $this->namespaces['tns']; + $this->schemas[$typens][0]->addElement($attrs); + } + + /** + * register an operation with the server + * + * @param string $name operation (method) name + * @param array $in assoc array of input values: key = param name, value = param type + * @param array $out assoc array of output values: key = param name, value = param type + * @param string $namespace optional The namespace for the operation + * @param string $soapaction optional The soapaction for the operation + * @param string $style (rpc|document) optional The style for the operation Note: when 'document' is specified, parameter and return wrappers are created for you automatically + * @param string $use (encoded|literal) optional The use for the parameters (cannot mix right now) + * @param string $documentation optional The description to include in the WSDL + * @param string $encodingStyle optional (usually 'http://schemas.xmlsoap.org/soap/encoding/' for encoded) + * @access public + */ + function addOperation($name, $in = false, $out = false, $namespace = false, $soapaction = false, $style = 'rpc', $use = 'encoded', $documentation = '', $encodingStyle = ''){ + if ($use == 'encoded' && $encodingStyle == '') { + $encodingStyle = 'http://schemas.xmlsoap.org/soap/encoding/'; + } + + if ($style == 'document') { + $elements = array(); + foreach ($in as $n => $t) { + $elements[$n] = array('name' => $n, 'type' => $t, 'form' => 'unqualified'); + } + $this->addComplexType($name . 'RequestType', 'complexType', 'struct', 'all', '', $elements); + $this->addElement(array('name' => $name, 'type' => $name . 'RequestType')); + $in = array('parameters' => 'tns:' . $name . '^'); + + $elements = array(); + foreach ($out as $n => $t) { + $elements[$n] = array('name' => $n, 'type' => $t, 'form' => 'unqualified'); + } + $this->addComplexType($name . 'ResponseType', 'complexType', 'struct', 'all', '', $elements); + $this->addElement(array('name' => $name . 'Response', 'type' => $name . 'ResponseType', 'form' => 'qualified')); + $out = array('parameters' => 'tns:' . $name . 'Response' . '^'); + } + + // get binding + $this->bindings[ $this->serviceName . 'Binding' ]['operations'][$name] = + array( + 'name' => $name, + 'binding' => $this->serviceName . 'Binding', + 'endpoint' => $this->endpoint, + 'soapAction' => $soapaction, + 'style' => $style, + 'input' => array( + 'use' => $use, + 'namespace' => $namespace, + 'encodingStyle' => $encodingStyle, + 'message' => $name . 'Request', + 'parts' => $in), + 'output' => array( + 'use' => $use, + 'namespace' => $namespace, + 'encodingStyle' => $encodingStyle, + 'message' => $name . 'Response', + 'parts' => $out), + 'namespace' => $namespace, + 'transport' => 'http://schemas.xmlsoap.org/soap/http', + 'documentation' => $documentation); + // add portTypes + // add messages + if($in) + { + foreach($in as $pName => $pType) + { + if(strpos($pType,':')) { + $pType = $this->getNamespaceFromPrefix($this->getPrefix($pType)).":".$this->getLocalPart($pType); + } + $this->messages[$name.'Request'][$pName] = $pType; + } + } else { + $this->messages[$name.'Request']= '0'; + } + if($out) + { + foreach($out as $pName => $pType) + { + if(strpos($pType,':')) { + $pType = $this->getNamespaceFromPrefix($this->getPrefix($pType)).":".$this->getLocalPart($pType); + } + $this->messages[$name.'Response'][$pName] = $pType; + } + } else { + $this->messages[$name.'Response']= '0'; + } + return true; + } +} +?> +* @author Scott Nichol +* @version $Id: nusoap.php,v 1.123 2010/04/26 20:15:08 snichol Exp $ +* @access public +*/ +class nusoap_parser extends nusoap_base { + + var $xml = ''; + var $xml_encoding = ''; + var $method = ''; + var $root_struct = ''; + var $root_struct_name = ''; + var $root_struct_namespace = ''; + var $root_header = ''; + var $document = ''; // incoming SOAP body (text) + // determines where in the message we are (envelope,header,body,method) + var $status = ''; + var $position = 0; + var $depth = 0; + var $default_namespace = ''; + var $namespaces = array(); + var $message = array(); + var $parent = ''; + var $fault = false; + var $fault_code = ''; + var $fault_str = ''; + var $fault_detail = ''; + var $depth_array = array(); + var $debug_flag = true; + var $soapresponse = NULL; // parsed SOAP Body + var $soapheader = NULL; // parsed SOAP Header + var $responseHeaders = ''; // incoming SOAP headers (text) + var $body_position = 0; + // for multiref parsing: + // array of id => pos + var $ids = array(); + // array of id => hrefs => pos + var $multirefs = array(); + // toggle for auto-decoding element content + var $decode_utf8 = true; + + /** + * constructor that actually does the parsing + * + * @param string $xml SOAP message + * @param string $encoding character encoding scheme of message + * @param string $method method for which XML is parsed (unused?) + * @param string $decode_utf8 whether to decode UTF-8 to ISO-8859-1 + * @access public + */ + function nusoap_parser($xml,$encoding='UTF-8',$method='',$decode_utf8=true){ + parent::nusoap_base(); + $this->xml = $xml; + $this->xml_encoding = $encoding; + $this->method = $method; + $this->decode_utf8 = $decode_utf8; + + // Check whether content has been read. + if(!empty($xml)){ + // Check XML encoding + $pos_xml = strpos($xml, '', $pos_xml + 2) - $pos_xml + 1); + if (preg_match("/encoding=[\"']([^\"']*)[\"']/", $xml_decl, $res)) { + $xml_encoding = $res[1]; + if (strtoupper($xml_encoding) != $encoding) { + $err = "Charset from HTTP Content-Type '" . $encoding . "' does not match encoding from XML declaration '" . $xml_encoding . "'"; + $this->debug($err); + if ($encoding != 'ISO-8859-1' || strtoupper($xml_encoding) != 'UTF-8') { + $this->setError($err); + return; + } + // when HTTP says ISO-8859-1 (the default) and XML says UTF-8 (the typical), assume the other endpoint is just sloppy and proceed + } else { + $this->debug('Charset from HTTP Content-Type matches encoding from XML declaration'); + } + } else { + $this->debug('No encoding specified in XML declaration'); + } + } else { + $this->debug('No XML declaration'); + } + $this->debug('Entering nusoap_parser(), length='.strlen($xml).', encoding='.$encoding); + // Create an XML parser - why not xml_parser_create_ns? + $this->parser = xml_parser_create($this->xml_encoding); + // Set the options for parsing the XML data. + //xml_parser_set_option($parser, XML_OPTION_SKIP_WHITE, 1); + xml_parser_set_option($this->parser, XML_OPTION_CASE_FOLDING, 0); + xml_parser_set_option($this->parser, XML_OPTION_TARGET_ENCODING, $this->xml_encoding); + // Set the object for the parser. + xml_set_object($this->parser, $this); + // Set the element handlers for the parser. + xml_set_element_handler($this->parser, 'start_element','end_element'); + xml_set_character_data_handler($this->parser,'character_data'); + + // Parse the XML file. + if(!xml_parse($this->parser,$xml,true)){ + // Display an error message. + $err = sprintf('XML error parsing SOAP payload on line %d: %s', + xml_get_current_line_number($this->parser), + xml_error_string(xml_get_error_code($this->parser))); + $this->debug($err); + $this->debug("XML payload:\n" . $xml); + $this->setError($err); + } else { + $this->debug('in nusoap_parser ctor, message:'); + $this->appendDebug($this->varDump($this->message)); + $this->debug('parsed successfully, found root struct: '.$this->root_struct.' of name '.$this->root_struct_name); + // get final value + $this->soapresponse = $this->message[$this->root_struct]['result']; + // get header value + if($this->root_header != '' && isset($this->message[$this->root_header]['result'])){ + $this->soapheader = $this->message[$this->root_header]['result']; + } + // resolve hrefs/ids + if(sizeof($this->multirefs) > 0){ + foreach($this->multirefs as $id => $hrefs){ + $this->debug('resolving multirefs for id: '.$id); + $idVal = $this->buildVal($this->ids[$id]); + if (is_array($idVal) && isset($idVal['!id'])) { + unset($idVal['!id']); + } + foreach($hrefs as $refPos => $ref){ + $this->debug('resolving href at pos '.$refPos); + $this->multirefs[$id][$refPos] = $idVal; + } + } + } + } + xml_parser_free($this->parser); + } else { + $this->debug('xml was empty, didn\'t parse!'); + $this->setError('xml was empty, didn\'t parse!'); + } + } + + /** + * start-element handler + * + * @param resource $parser XML parser object + * @param string $name element name + * @param array $attrs associative array of attributes + * @access private + */ + function start_element($parser, $name, $attrs) { + // position in a total number of elements, starting from 0 + // update class level pos + $pos = $this->position++; + // and set mine + $this->message[$pos] = array('pos' => $pos,'children'=>'','cdata'=>''); + // depth = how many levels removed from root? + // set mine as current global depth and increment global depth value + $this->message[$pos]['depth'] = $this->depth++; + + // else add self as child to whoever the current parent is + if($pos != 0){ + $this->message[$this->parent]['children'] .= '|'.$pos; + } + // set my parent + $this->message[$pos]['parent'] = $this->parent; + // set self as current parent + $this->parent = $pos; + // set self as current value for this depth + $this->depth_array[$this->depth] = $pos; + // get element prefix + if(strpos($name,':')){ + // get ns prefix + $prefix = substr($name,0,strpos($name,':')); + // get unqualified name + $name = substr(strstr($name,':'),1); + } + // set status + if ($name == 'Envelope' && $this->status == '') { + $this->status = 'envelope'; + } elseif ($name == 'Header' && $this->status == 'envelope') { + $this->root_header = $pos; + $this->status = 'header'; + } elseif ($name == 'Body' && $this->status == 'envelope'){ + $this->status = 'body'; + $this->body_position = $pos; + // set method + } elseif($this->status == 'body' && $pos == ($this->body_position+1)) { + $this->status = 'method'; + $this->root_struct_name = $name; + $this->root_struct = $pos; + $this->message[$pos]['type'] = 'struct'; + $this->debug("found root struct $this->root_struct_name, pos $this->root_struct"); + } + // set my status + $this->message[$pos]['status'] = $this->status; + // set name + $this->message[$pos]['name'] = htmlspecialchars($name); + // set attrs + $this->message[$pos]['attrs'] = $attrs; + + // loop through atts, logging ns and type declarations + $attstr = ''; + foreach($attrs as $key => $value){ + $key_prefix = $this->getPrefix($key); + $key_localpart = $this->getLocalPart($key); + // if ns declarations, add to class level array of valid namespaces + if($key_prefix == 'xmlns'){ + if(preg_match('/^http:\/\/www.w3.org\/[0-9]{4}\/XMLSchema$/',$value)){ + $this->XMLSchemaVersion = $value; + $this->namespaces['xsd'] = $this->XMLSchemaVersion; + $this->namespaces['xsi'] = $this->XMLSchemaVersion.'-instance'; + } + $this->namespaces[$key_localpart] = $value; + // set method namespace + if($name == $this->root_struct_name){ + $this->methodNamespace = $value; + } + // if it's a type declaration, set type + } elseif($key_localpart == 'type'){ + if (isset($this->message[$pos]['type']) && $this->message[$pos]['type'] == 'array') { + // do nothing: already processed arrayType + } else { + $value_prefix = $this->getPrefix($value); + $value_localpart = $this->getLocalPart($value); + $this->message[$pos]['type'] = $value_localpart; + $this->message[$pos]['typePrefix'] = $value_prefix; + if(isset($this->namespaces[$value_prefix])){ + $this->message[$pos]['type_namespace'] = $this->namespaces[$value_prefix]; + } else if(isset($attrs['xmlns:'.$value_prefix])) { + $this->message[$pos]['type_namespace'] = $attrs['xmlns:'.$value_prefix]; + } + // should do something here with the namespace of specified type? + } + } elseif($key_localpart == 'arrayType'){ + $this->message[$pos]['type'] = 'array'; + /* do arrayType ereg here + [1] arrayTypeValue ::= atype asize + [2] atype ::= QName rank* + [3] rank ::= '[' (',')* ']' + [4] asize ::= '[' length~ ']' + [5] length ::= nextDimension* Digit+ + [6] nextDimension ::= Digit+ ',' + */ + $expr = '/([A-Za-z0-9_]+):([A-Za-z]+[A-Za-z0-9_]+)\[([0-9]+),?([0-9]*)\]/'; + if(preg_match($expr,$value,$regs)){ + $this->message[$pos]['typePrefix'] = $regs[1]; + $this->message[$pos]['arrayTypePrefix'] = $regs[1]; + if (isset($this->namespaces[$regs[1]])) { + $this->message[$pos]['arrayTypeNamespace'] = $this->namespaces[$regs[1]]; + } else if (isset($attrs['xmlns:'.$regs[1]])) { + $this->message[$pos]['arrayTypeNamespace'] = $attrs['xmlns:'.$regs[1]]; + } + $this->message[$pos]['arrayType'] = $regs[2]; + $this->message[$pos]['arraySize'] = $regs[3]; + $this->message[$pos]['arrayCols'] = $regs[4]; + } + // specifies nil value (or not) + } elseif ($key_localpart == 'nil'){ + $this->message[$pos]['nil'] = ($value == 'true' || $value == '1'); + // some other attribute + } elseif ($key != 'href' && $key != 'xmlns' && $key_localpart != 'encodingStyle' && $key_localpart != 'root') { + $this->message[$pos]['xattrs']['!' . $key] = $value; + } + + if ($key == 'xmlns') { + $this->default_namespace = $value; + } + // log id + if($key == 'id'){ + $this->ids[$value] = $pos; + } + // root + if($key_localpart == 'root' && $value == 1){ + $this->status = 'method'; + $this->root_struct_name = $name; + $this->root_struct = $pos; + $this->debug("found root struct $this->root_struct_name, pos $pos"); + } + // for doclit + $attstr .= " $key=\"$value\""; + } + // get namespace - must be done after namespace atts are processed + if(isset($prefix)){ + $this->message[$pos]['namespace'] = $this->namespaces[$prefix]; + $this->default_namespace = $this->namespaces[$prefix]; + } else { + $this->message[$pos]['namespace'] = $this->default_namespace; + } + if($this->status == 'header'){ + if ($this->root_header != $pos) { + $this->responseHeaders .= "<" . (isset($prefix) ? $prefix . ':' : '') . "$name$attstr>"; + } + } elseif($this->root_struct_name != ''){ + $this->document .= "<" . (isset($prefix) ? $prefix . ':' : '') . "$name$attstr>"; + } + } + + /** + * end-element handler + * + * @param resource $parser XML parser object + * @param string $name element name + * @access private + */ + function end_element($parser, $name) { + // position of current element is equal to the last value left in depth_array for my depth + $pos = $this->depth_array[$this->depth--]; + + // get element prefix + if(strpos($name,':')){ + // get ns prefix + $prefix = substr($name,0,strpos($name,':')); + // get unqualified name + $name = substr(strstr($name,':'),1); + } + + // build to native type + if(isset($this->body_position) && $pos > $this->body_position){ + // deal w/ multirefs + if(isset($this->message[$pos]['attrs']['href'])){ + // get id + $id = substr($this->message[$pos]['attrs']['href'],1); + // add placeholder to href array + $this->multirefs[$id][$pos] = 'placeholder'; + // add set a reference to it as the result value + $this->message[$pos]['result'] =& $this->multirefs[$id][$pos]; + // build complexType values + } elseif($this->message[$pos]['children'] != ''){ + // if result has already been generated (struct/array) + if(!isset($this->message[$pos]['result'])){ + $this->message[$pos]['result'] = $this->buildVal($pos); + } + // build complexType values of attributes and possibly simpleContent + } elseif (isset($this->message[$pos]['xattrs'])) { + if (isset($this->message[$pos]['nil']) && $this->message[$pos]['nil']) { + $this->message[$pos]['xattrs']['!'] = null; + } elseif (isset($this->message[$pos]['cdata']) && trim($this->message[$pos]['cdata']) != '') { + if (isset($this->message[$pos]['type'])) { + $this->message[$pos]['xattrs']['!'] = $this->decodeSimple($this->message[$pos]['cdata'], $this->message[$pos]['type'], isset($this->message[$pos]['type_namespace']) ? $this->message[$pos]['type_namespace'] : ''); + } else { + $parent = $this->message[$pos]['parent']; + if (isset($this->message[$parent]['type']) && ($this->message[$parent]['type'] == 'array') && isset($this->message[$parent]['arrayType'])) { + $this->message[$pos]['xattrs']['!'] = $this->decodeSimple($this->message[$pos]['cdata'], $this->message[$parent]['arrayType'], isset($this->message[$parent]['arrayTypeNamespace']) ? $this->message[$parent]['arrayTypeNamespace'] : ''); + } else { + $this->message[$pos]['xattrs']['!'] = $this->message[$pos]['cdata']; + } + } + } + $this->message[$pos]['result'] = $this->message[$pos]['xattrs']; + // set value of simpleType (or nil complexType) + } else { + //$this->debug('adding data for scalar value '.$this->message[$pos]['name'].' of value '.$this->message[$pos]['cdata']); + if (isset($this->message[$pos]['nil']) && $this->message[$pos]['nil']) { + $this->message[$pos]['xattrs']['!'] = null; + } elseif (isset($this->message[$pos]['type'])) { + $this->message[$pos]['result'] = $this->decodeSimple($this->message[$pos]['cdata'], $this->message[$pos]['type'], isset($this->message[$pos]['type_namespace']) ? $this->message[$pos]['type_namespace'] : ''); + } else { + $parent = $this->message[$pos]['parent']; + if (isset($this->message[$parent]['type']) && ($this->message[$parent]['type'] == 'array') && isset($this->message[$parent]['arrayType'])) { + $this->message[$pos]['result'] = $this->decodeSimple($this->message[$pos]['cdata'], $this->message[$parent]['arrayType'], isset($this->message[$parent]['arrayTypeNamespace']) ? $this->message[$parent]['arrayTypeNamespace'] : ''); + } else { + $this->message[$pos]['result'] = $this->message[$pos]['cdata']; + } + } + + /* add value to parent's result, if parent is struct/array + $parent = $this->message[$pos]['parent']; + if($this->message[$parent]['type'] != 'map'){ + if(strtolower($this->message[$parent]['type']) == 'array'){ + $this->message[$parent]['result'][] = $this->message[$pos]['result']; + } else { + $this->message[$parent]['result'][$this->message[$pos]['name']] = $this->message[$pos]['result']; + } + } + */ + } + } + + // for doclit + if($this->status == 'header'){ + if ($this->root_header != $pos) { + $this->responseHeaders .= ""; + } + } elseif($pos >= $this->root_struct){ + $this->document .= ""; + } + // switch status + if ($pos == $this->root_struct){ + $this->status = 'body'; + $this->root_struct_namespace = $this->message[$pos]['namespace']; + } elseif ($pos == $this->root_header) { + $this->status = 'envelope'; + } elseif ($name == 'Body' && $this->status == 'body') { + $this->status = 'envelope'; + } elseif ($name == 'Header' && $this->status == 'header') { // will never happen + $this->status = 'envelope'; + } elseif ($name == 'Envelope' && $this->status == 'envelope') { + $this->status = ''; + } + // set parent back to my parent + $this->parent = $this->message[$pos]['parent']; + } + + /** + * element content handler + * + * @param resource $parser XML parser object + * @param string $data element content + * @access private + */ + function character_data($parser, $data){ + $pos = $this->depth_array[$this->depth]; + if ($this->xml_encoding=='UTF-8'){ + // TODO: add an option to disable this for folks who want + // raw UTF-8 that, e.g., might not map to iso-8859-1 + // TODO: this can also be handled with xml_parser_set_option($this->parser, XML_OPTION_TARGET_ENCODING, "ISO-8859-1"); + if($this->decode_utf8){ + $data = utf8_decode($data); + } + } + $this->message[$pos]['cdata'] .= $data; + // for doclit + if($this->status == 'header'){ + $this->responseHeaders .= $data; + } else { + $this->document .= $data; + } + } + + /** + * get the parsed message (SOAP Body) + * + * @return mixed + * @access public + * @deprecated use get_soapbody instead + */ + function get_response(){ + return $this->soapresponse; + } + + /** + * get the parsed SOAP Body (NULL if there was none) + * + * @return mixed + * @access public + */ + function get_soapbody(){ + return $this->soapresponse; + } + + /** + * get the parsed SOAP Header (NULL if there was none) + * + * @return mixed + * @access public + */ + function get_soapheader(){ + return $this->soapheader; + } + + /** + * get the unparsed SOAP Header + * + * @return string XML or empty if no Header + * @access public + */ + function getHeaders(){ + return $this->responseHeaders; + } + + /** + * decodes simple types into PHP variables + * + * @param string $value value to decode + * @param string $type XML type to decode + * @param string $typens XML type namespace to decode + * @return mixed PHP value + * @access private + */ + function decodeSimple($value, $type, $typens) { + // TODO: use the namespace! + if ((!isset($type)) || $type == 'string' || $type == 'long' || $type == 'unsignedLong') { + return (string) $value; + } + if ($type == 'int' || $type == 'integer' || $type == 'short' || $type == 'byte') { + return (int) $value; + } + if ($type == 'float' || $type == 'double' || $type == 'decimal') { + return (double) $value; + } + if ($type == 'boolean') { + if (strtolower($value) == 'false' || strtolower($value) == 'f') { + return false; + } + return (boolean) $value; + } + if ($type == 'base64' || $type == 'base64Binary') { + $this->debug('Decode base64 value'); + return base64_decode($value); + } + // obscure numeric types + if ($type == 'nonPositiveInteger' || $type == 'negativeInteger' + || $type == 'nonNegativeInteger' || $type == 'positiveInteger' + || $type == 'unsignedInt' + || $type == 'unsignedShort' || $type == 'unsignedByte') { + return (int) $value; + } + // bogus: parser treats array with no elements as a simple type + if ($type == 'array') { + return array(); + } + // everything else + return (string) $value; + } + + /** + * builds response structures for compound values (arrays/structs) + * and scalars + * + * @param integer $pos position in node tree + * @return mixed PHP value + * @access private + */ + function buildVal($pos){ + if(!isset($this->message[$pos]['type'])){ + $this->message[$pos]['type'] = ''; + } + $this->debug('in buildVal() for '.$this->message[$pos]['name']."(pos $pos) of type ".$this->message[$pos]['type']); + // if there are children... + if($this->message[$pos]['children'] != ''){ + $this->debug('in buildVal, there are children'); + $children = explode('|',$this->message[$pos]['children']); + array_shift($children); // knock off empty + // md array + if(isset($this->message[$pos]['arrayCols']) && $this->message[$pos]['arrayCols'] != ''){ + $r=0; // rowcount + $c=0; // colcount + foreach($children as $child_pos){ + $this->debug("in buildVal, got an MD array element: $r, $c"); + $params[$r][] = $this->message[$child_pos]['result']; + $c++; + if($c == $this->message[$pos]['arrayCols']){ + $c = 0; + $r++; + } + } + // array + } elseif($this->message[$pos]['type'] == 'array' || $this->message[$pos]['type'] == 'Array'){ + $this->debug('in buildVal, adding array '.$this->message[$pos]['name']); + foreach($children as $child_pos){ + $params[] = &$this->message[$child_pos]['result']; + } + // apache Map type: java hashtable + } elseif($this->message[$pos]['type'] == 'Map' && $this->message[$pos]['type_namespace'] == 'http://xml.apache.org/xml-soap'){ + $this->debug('in buildVal, Java Map '.$this->message[$pos]['name']); + foreach($children as $child_pos){ + $kv = explode("|",$this->message[$child_pos]['children']); + $params[$this->message[$kv[1]]['result']] = &$this->message[$kv[2]]['result']; + } + // generic compound type + //} elseif($this->message[$pos]['type'] == 'SOAPStruct' || $this->message[$pos]['type'] == 'struct') { + } else { + // Apache Vector type: treat as an array + $this->debug('in buildVal, adding Java Vector or generic compound type '.$this->message[$pos]['name']); + if ($this->message[$pos]['type'] == 'Vector' && $this->message[$pos]['type_namespace'] == 'http://xml.apache.org/xml-soap') { + $notstruct = 1; + } else { + $notstruct = 0; + } + // + foreach($children as $child_pos){ + if($notstruct){ + $params[] = &$this->message[$child_pos]['result']; + } else { + if (isset($params[$this->message[$child_pos]['name']])) { + // de-serialize repeated element name into an array + if ((!is_array($params[$this->message[$child_pos]['name']])) || (!isset($params[$this->message[$child_pos]['name']][0]))) { + $params[$this->message[$child_pos]['name']] = array($params[$this->message[$child_pos]['name']]); + } + $params[$this->message[$child_pos]['name']][] = &$this->message[$child_pos]['result']; + } else { + $params[$this->message[$child_pos]['name']] = &$this->message[$child_pos]['result']; + } + } + } + } + if (isset($this->message[$pos]['xattrs'])) { + $this->debug('in buildVal, handling attributes'); + foreach ($this->message[$pos]['xattrs'] as $n => $v) { + $params[$n] = $v; + } + } + // handle simpleContent + if (isset($this->message[$pos]['cdata']) && trim($this->message[$pos]['cdata']) != '') { + $this->debug('in buildVal, handling simpleContent'); + if (isset($this->message[$pos]['type'])) { + $params['!'] = $this->decodeSimple($this->message[$pos]['cdata'], $this->message[$pos]['type'], isset($this->message[$pos]['type_namespace']) ? $this->message[$pos]['type_namespace'] : ''); + } else { + $parent = $this->message[$pos]['parent']; + if (isset($this->message[$parent]['type']) && ($this->message[$parent]['type'] == 'array') && isset($this->message[$parent]['arrayType'])) { + $params['!'] = $this->decodeSimple($this->message[$pos]['cdata'], $this->message[$parent]['arrayType'], isset($this->message[$parent]['arrayTypeNamespace']) ? $this->message[$parent]['arrayTypeNamespace'] : ''); + } else { + $params['!'] = $this->message[$pos]['cdata']; + } + } + } + $ret = is_array($params) ? $params : array(); + $this->debug('in buildVal, return:'); + $this->appendDebug($this->varDump($ret)); + return $ret; + } else { + $this->debug('in buildVal, no children, building scalar'); + $cdata = isset($this->message[$pos]['cdata']) ? $this->message[$pos]['cdata'] : ''; + if (isset($this->message[$pos]['type'])) { + $ret = $this->decodeSimple($cdata, $this->message[$pos]['type'], isset($this->message[$pos]['type_namespace']) ? $this->message[$pos]['type_namespace'] : ''); + $this->debug("in buildVal, return: $ret"); + return $ret; + } + $parent = $this->message[$pos]['parent']; + if (isset($this->message[$parent]['type']) && ($this->message[$parent]['type'] == 'array') && isset($this->message[$parent]['arrayType'])) { + $ret = $this->decodeSimple($cdata, $this->message[$parent]['arrayType'], isset($this->message[$parent]['arrayTypeNamespace']) ? $this->message[$parent]['arrayTypeNamespace'] : ''); + $this->debug("in buildVal, return: $ret"); + return $ret; + } + $ret = $this->message[$pos]['cdata']; + $this->debug("in buildVal, return: $ret"); + return $ret; + } + } +} + +/** + * Backward compatibility + */ +class soap_parser extends nusoap_parser { +} + +?>call( string methodname [ ,array parameters] ); +* +* // bye bye client +* unset($soapclient); +* +* @author Dietrich Ayala +* @author Scott Nichol +* @version $Id: nusoap.php,v 1.123 2010/04/26 20:15:08 snichol Exp $ +* @access public +*/ +class nusoap_client extends nusoap_base { + + var $username = ''; // Username for HTTP authentication + var $password = ''; // Password for HTTP authentication + var $authtype = ''; // Type of HTTP authentication + var $certRequest = array(); // Certificate for HTTP SSL authentication + var $requestHeaders = false; // SOAP headers in request (text) + var $responseHeaders = ''; // SOAP headers from response (incomplete namespace resolution) (text) + var $responseHeader = NULL; // SOAP Header from response (parsed) + var $document = ''; // SOAP body response portion (incomplete namespace resolution) (text) + var $endpoint; + var $forceEndpoint = ''; // overrides WSDL endpoint + var $proxyhost = ''; + var $proxyport = ''; + var $proxyusername = ''; + var $proxypassword = ''; + var $portName = ''; // port name to use in WSDL + var $xml_encoding = ''; // character set encoding of incoming (response) messages + var $http_encoding = false; + var $timeout = 0; // HTTP connection timeout + var $response_timeout = 30; // HTTP response timeout + var $endpointType = ''; // soap|wsdl, empty for WSDL initialization error + var $persistentConnection = false; + var $defaultRpcParams = false; // This is no longer used + var $request = ''; // HTTP request + var $response = ''; // HTTP response + var $responseData = ''; // SOAP payload of response + var $cookies = array(); // Cookies from response or for request + var $decode_utf8 = true; // toggles whether the parser decodes element content w/ utf8_decode() + var $operations = array(); // WSDL operations, empty for WSDL initialization error + var $curl_options = array(); // User-specified cURL options + var $bindingType = ''; // WSDL operation binding type + var $use_curl = false; // whether to always try to use cURL + + /* + * fault related variables + */ + /** + * @var fault + * @access public + */ + var $fault; + /** + * @var faultcode + * @access public + */ + var $faultcode; + /** + * @var faultstring + * @access public + */ + var $faultstring; + /** + * @var faultdetail + * @access public + */ + var $faultdetail; + + /** + * constructor + * + * @param mixed $endpoint SOAP server or WSDL URL (string), or wsdl instance (object) + * @param mixed $wsdl optional, set to 'wsdl' or true if using WSDL + * @param string $proxyhost optional + * @param string $proxyport optional + * @param string $proxyusername optional + * @param string $proxypassword optional + * @param integer $timeout set the connection timeout + * @param integer $response_timeout set the response timeout + * @param string $portName optional portName in WSDL document + * @access public + */ + function nusoap_client($endpoint,$wsdl = false,$proxyhost = false,$proxyport = false,$proxyusername = false, $proxypassword = false, $timeout = 0, $response_timeout = 30, $portName = ''){ + parent::nusoap_base(); + $this->endpoint = $endpoint; + $this->proxyhost = $proxyhost; + $this->proxyport = $proxyport; + $this->proxyusername = $proxyusername; + $this->proxypassword = $proxypassword; + $this->timeout = $timeout; + $this->response_timeout = $response_timeout; + $this->portName = $portName; + + $this->debug("ctor wsdl=$wsdl timeout=$timeout response_timeout=$response_timeout"); + $this->appendDebug('endpoint=' . $this->varDump($endpoint)); + + // make values + if($wsdl){ + if (is_object($endpoint) && (get_class($endpoint) == 'wsdl')) { + $this->wsdl = $endpoint; + $this->endpoint = $this->wsdl->wsdl; + $this->wsdlFile = $this->endpoint; + $this->debug('existing wsdl instance created from ' . $this->endpoint); + $this->checkWSDL(); + } else { + $this->wsdlFile = $this->endpoint; + $this->wsdl = null; + $this->debug('will use lazy evaluation of wsdl from ' . $this->endpoint); + } + $this->endpointType = 'wsdl'; + } else { + $this->debug("instantiate SOAP with endpoint at $endpoint"); + $this->endpointType = 'soap'; + } + } + + /** + * calls method, returns PHP native type + * + * @param string $operation SOAP server URL or path + * @param mixed $params An array, associative or simple, of the parameters + * for the method call, or a string that is the XML + * for the call. For rpc style, this call will + * wrap the XML in a tag named after the method, as + * well as the SOAP Envelope and Body. For document + * style, this will only wrap with the Envelope and Body. + * IMPORTANT: when using an array with document style, + * in which case there + * is really one parameter, the root of the fragment + * used in the call, which encloses what programmers + * normally think of parameters. A parameter array + * *must* include the wrapper. + * @param string $namespace optional method namespace (WSDL can override) + * @param string $soapAction optional SOAPAction value (WSDL can override) + * @param mixed $headers optional string of XML with SOAP header content, or array of soapval objects for SOAP headers, or associative array + * @param boolean $rpcParams optional (no longer used) + * @param string $style optional (rpc|document) the style to use when serializing parameters (WSDL can override) + * @param string $use optional (encoded|literal) the use when serializing parameters (WSDL can override) + * @return mixed response from SOAP call, normally an associative array mirroring the structure of the XML response, false for certain fatal errors + * @access public + */ + function call($operation,$params=array(),$namespace='http://tempuri.org',$soapAction='',$headers=false,$rpcParams=null,$style='rpc',$use='encoded'){ + $this->operation = $operation; + $this->fault = false; + $this->setError(''); + $this->request = ''; + $this->response = ''; + $this->responseData = ''; + $this->faultstring = ''; + $this->faultcode = ''; + $this->opData = array(); + + $this->debug("call: operation=$operation, namespace=$namespace, soapAction=$soapAction, rpcParams=$rpcParams, style=$style, use=$use, endpointType=$this->endpointType"); + $this->appendDebug('params=' . $this->varDump($params)); + $this->appendDebug('headers=' . $this->varDump($headers)); + if ($headers) { + $this->requestHeaders = $headers; + } + if ($this->endpointType == 'wsdl' && is_null($this->wsdl)) { + $this->loadWSDL(); + if ($this->getError()) + return false; + } + // serialize parameters + if($this->endpointType == 'wsdl' && $opData = $this->getOperationData($operation)){ + // use WSDL for operation + $this->opData = $opData; + $this->debug("found operation"); + $this->appendDebug('opData=' . $this->varDump($opData)); + if (isset($opData['soapAction'])) { + $soapAction = $opData['soapAction']; + } + if (! $this->forceEndpoint) { + $this->endpoint = $opData['endpoint']; + } else { + $this->endpoint = $this->forceEndpoint; + } + $namespace = isset($opData['input']['namespace']) ? $opData['input']['namespace'] : $namespace; + $style = $opData['style']; + $use = $opData['input']['use']; + // add ns to ns array + if($namespace != '' && !isset($this->wsdl->namespaces[$namespace])){ + $nsPrefix = 'ns' . rand(1000, 9999); + $this->wsdl->namespaces[$nsPrefix] = $namespace; + } + $nsPrefix = $this->wsdl->getPrefixFromNamespace($namespace); + // serialize payload + if (is_string($params)) { + $this->debug("serializing param string for WSDL operation $operation"); + $payload = $params; + } elseif (is_array($params)) { + $this->debug("serializing param array for WSDL operation $operation"); + $payload = $this->wsdl->serializeRPCParameters($operation,'input',$params,$this->bindingType); + } else { + $this->debug('params must be array or string'); + $this->setError('params must be array or string'); + return false; + } + $usedNamespaces = $this->wsdl->usedNamespaces; + if (isset($opData['input']['encodingStyle'])) { + $encodingStyle = $opData['input']['encodingStyle']; + } else { + $encodingStyle = ''; + } + $this->appendDebug($this->wsdl->getDebug()); + $this->wsdl->clearDebug(); + if ($errstr = $this->wsdl->getError()) { + $this->debug('got wsdl error: '.$errstr); + $this->setError('wsdl error: '.$errstr); + return false; + } + } elseif($this->endpointType == 'wsdl') { + // operation not in WSDL + $this->appendDebug($this->wsdl->getDebug()); + $this->wsdl->clearDebug(); + $this->setError('operation '.$operation.' not present in WSDL.'); + $this->debug("operation '$operation' not present in WSDL."); + return false; + } else { + // no WSDL + //$this->namespaces['ns1'] = $namespace; + $nsPrefix = 'ns' . rand(1000, 9999); + // serialize + $payload = ''; + if (is_string($params)) { + $this->debug("serializing param string for operation $operation"); + $payload = $params; + } elseif (is_array($params)) { + $this->debug("serializing param array for operation $operation"); + foreach($params as $k => $v){ + $payload .= $this->serialize_val($v,$k,false,false,false,false,$use); + } + } else { + $this->debug('params must be array or string'); + $this->setError('params must be array or string'); + return false; + } + $usedNamespaces = array(); + if ($use == 'encoded') { + $encodingStyle = 'http://schemas.xmlsoap.org/soap/encoding/'; + } else { + $encodingStyle = ''; + } + } + // wrap RPC calls with method element + if ($style == 'rpc') { + if ($use == 'literal') { + $this->debug("wrapping RPC request with literal method element"); + if ($namespace) { + // http://www.ws-i.org/Profiles/BasicProfile-1.1-2004-08-24.html R2735 says rpc/literal accessor elements should not be in a namespace + $payload = "<$nsPrefix:$operation xmlns:$nsPrefix=\"$namespace\">" . + $payload . + ""; + } else { + $payload = "<$operation>" . $payload . ""; + } + } else { + $this->debug("wrapping RPC request with encoded method element"); + if ($namespace) { + $payload = "<$nsPrefix:$operation xmlns:$nsPrefix=\"$namespace\">" . + $payload . + ""; + } else { + $payload = "<$operation>" . + $payload . + ""; + } + } + } + // serialize envelope + $soapmsg = $this->serializeEnvelope($payload,$this->requestHeaders,$usedNamespaces,$style,$use,$encodingStyle); + $this->debug("endpoint=$this->endpoint, soapAction=$soapAction, namespace=$namespace, style=$style, use=$use, encodingStyle=$encodingStyle"); + $this->debug('SOAP message length=' . strlen($soapmsg) . ' contents (max 1000 bytes)=' . substr($soapmsg, 0, 1000)); + // send + $return = $this->send($this->getHTTPBody($soapmsg),$soapAction,$this->timeout,$this->response_timeout); + if($errstr = $this->getError()){ + $this->debug('Error: '.$errstr); + return false; + } else { + $this->return = $return; + $this->debug('sent message successfully and got a(n) '.gettype($return)); + $this->appendDebug('return=' . $this->varDump($return)); + + // fault? + if(is_array($return) && isset($return['faultcode'])){ + $this->debug('got fault'); + $this->setError($return['faultcode'].': '.$return['faultstring']); + $this->fault = true; + foreach($return as $k => $v){ + $this->$k = $v; + $this->debug("$k = $v
"); + } + return $return; + } elseif ($style == 'document') { + // NOTE: if the response is defined to have multiple parts (i.e. unwrapped), + // we are only going to return the first part here...sorry about that + return $return; + } else { + // array of return values + if(is_array($return)){ + // multiple 'out' parameters, which we return wrapped up + // in the array + if(sizeof($return) > 1){ + return $return; + } + // single 'out' parameter (normally the return value) + $return = array_shift($return); + $this->debug('return shifted value: '); + $this->appendDebug($this->varDump($return)); + return $return; + // nothing returned (ie, echoVoid) + } else { + return ""; + } + } + } + } + + /** + * check WSDL passed as an instance or pulled from an endpoint + * + * @access private + */ + function checkWSDL() { + $this->appendDebug($this->wsdl->getDebug()); + $this->wsdl->clearDebug(); + $this->debug('checkWSDL'); + // catch errors + if ($errstr = $this->wsdl->getError()) { + $this->appendDebug($this->wsdl->getDebug()); + $this->wsdl->clearDebug(); + $this->debug('got wsdl error: '.$errstr); + $this->setError('wsdl error: '.$errstr); + } elseif ($this->operations = $this->wsdl->getOperations($this->portName, 'soap')) { + $this->appendDebug($this->wsdl->getDebug()); + $this->wsdl->clearDebug(); + $this->bindingType = 'soap'; + $this->debug('got '.count($this->operations).' operations from wsdl '.$this->wsdlFile.' for binding type '.$this->bindingType); + } elseif ($this->operations = $this->wsdl->getOperations($this->portName, 'soap12')) { + $this->appendDebug($this->wsdl->getDebug()); + $this->wsdl->clearDebug(); + $this->bindingType = 'soap12'; + $this->debug('got '.count($this->operations).' operations from wsdl '.$this->wsdlFile.' for binding type '.$this->bindingType); + $this->debug('**************** WARNING: SOAP 1.2 BINDING *****************'); + } else { + $this->appendDebug($this->wsdl->getDebug()); + $this->wsdl->clearDebug(); + $this->debug('getOperations returned false'); + $this->setError('no operations defined in the WSDL document!'); + } + } + + /** + * instantiate wsdl object and parse wsdl file + * + * @access public + */ + function loadWSDL() { + $this->debug('instantiating wsdl class with doc: '.$this->wsdlFile); + $this->wsdl = new wsdl('',$this->proxyhost,$this->proxyport,$this->proxyusername,$this->proxypassword,$this->timeout,$this->response_timeout,$this->curl_options,$this->use_curl); + $this->wsdl->setCredentials($this->username, $this->password, $this->authtype, $this->certRequest); + $this->wsdl->fetchWSDL($this->wsdlFile); + $this->checkWSDL(); + } + + /** + * get available data pertaining to an operation + * + * @param string $operation operation name + * @return array array of data pertaining to the operation + * @access public + */ + function getOperationData($operation){ + if ($this->endpointType == 'wsdl' && is_null($this->wsdl)) { + $this->loadWSDL(); + if ($this->getError()) + return false; + } + if(isset($this->operations[$operation])){ + return $this->operations[$operation]; + } + $this->debug("No data for operation: $operation"); + } + + /** + * send the SOAP message + * + * Note: if the operation has multiple return values + * the return value of this method will be an array + * of those values. + * + * @param string $msg a SOAPx4 soapmsg object + * @param string $soapaction SOAPAction value + * @param integer $timeout set connection timeout in seconds + * @param integer $response_timeout set response timeout in seconds + * @return mixed native PHP types. + * @access private + */ + function send($msg, $soapaction = '', $timeout=0, $response_timeout=30) { + $this->checkCookies(); + // detect transport + switch(true){ + // http(s) + case preg_match('/^http/',$this->endpoint): + $this->debug('transporting via HTTP'); + if($this->persistentConnection == true && is_object($this->persistentConnection)){ + $http =& $this->persistentConnection; + } else { + $http = new soap_transport_http($this->endpoint, $this->curl_options, $this->use_curl); + if ($this->persistentConnection) { + $http->usePersistentConnection(); + } + } + $http->setContentType($this->getHTTPContentType(), $this->getHTTPContentTypeCharset()); + $http->setSOAPAction($soapaction); + if($this->proxyhost && $this->proxyport){ + $http->setProxy($this->proxyhost,$this->proxyport,$this->proxyusername,$this->proxypassword); + } + if($this->authtype != '') { + $http->setCredentials($this->username, $this->password, $this->authtype, array(), $this->certRequest); + } + if($this->http_encoding != ''){ + $http->setEncoding($this->http_encoding); + } + $this->debug('sending message, length='.strlen($msg)); + if(preg_match('/^http:/',$this->endpoint)){ + //if(strpos($this->endpoint,'http:')){ + $this->responseData = $http->send($msg,$timeout,$response_timeout,$this->cookies); + } elseif(preg_match('/^https/',$this->endpoint)){ + //} elseif(strpos($this->endpoint,'https:')){ + //if(phpversion() == '4.3.0-dev'){ + //$response = $http->send($msg,$timeout,$response_timeout); + //$this->request = $http->outgoing_payload; + //$this->response = $http->incoming_payload; + //} else + $this->responseData = $http->sendHTTPS($msg,$timeout,$response_timeout,$this->cookies); + } else { + $this->setError('no http/s in endpoint url'); + } + $this->request = $http->outgoing_payload; + $this->response = $http->incoming_payload; + $this->appendDebug($http->getDebug()); + $this->UpdateCookies($http->incoming_cookies); + + // save transport object if using persistent connections + if ($this->persistentConnection) { + $http->clearDebug(); + if (!is_object($this->persistentConnection)) { + $this->persistentConnection = $http; + } + } + + if($err = $http->getError()){ + $this->setError('HTTP Error: '.$err); + return false; + } elseif($this->getError()){ + return false; + } else { + $this->debug('got response, length='. strlen($this->responseData).' type='.$http->incoming_headers['content-type']); + return $this->parseResponse($http->incoming_headers, $this->responseData); + } + break; + default: + $this->setError('no transport found, or selected transport is not yet supported!'); + return false; + break; + } + } + + /** + * processes SOAP message returned from server + * + * @param array $headers The HTTP headers + * @param string $data unprocessed response data from server + * @return mixed value of the message, decoded into a PHP type + * @access private + */ + function parseResponse($headers, $data) { + $this->debug('Entering parseResponse() for data of length ' . strlen($data) . ' headers:'); + $this->appendDebug($this->varDump($headers)); + if (!isset($headers['content-type'])) { + $this->setError('Response not of type text/xml (no content-type header)'); + return false; + } + if (!strstr($headers['content-type'], 'text/xml')) { + $this->setError('Response not of type text/xml: ' . $headers['content-type']); + return false; + } + if (strpos($headers['content-type'], '=')) { + $enc = str_replace('"', '', substr(strstr($headers["content-type"], '='), 1)); + $this->debug('Got response encoding: ' . $enc); + if(preg_match('/^(ISO-8859-1|US-ASCII|UTF-8)$/i',$enc)){ + $this->xml_encoding = strtoupper($enc); + } else { + $this->xml_encoding = 'US-ASCII'; + } + } else { + // should be US-ASCII for HTTP 1.0 or ISO-8859-1 for HTTP 1.1 + $this->xml_encoding = 'ISO-8859-1'; + } + $this->debug('Use encoding: ' . $this->xml_encoding . ' when creating nusoap_parser'); + $parser = new nusoap_parser($data,$this->xml_encoding,$this->operation,$this->decode_utf8); + // add parser debug data to our debug + $this->appendDebug($parser->getDebug()); + // if parse errors + if($errstr = $parser->getError()){ + $this->setError( $errstr); + // destroy the parser object + unset($parser); + return false; + } else { + // get SOAP headers + $this->responseHeaders = $parser->getHeaders(); + // get SOAP headers + $this->responseHeader = $parser->get_soapheader(); + // get decoded message + $return = $parser->get_soapbody(); + // add document for doclit support + $this->document = $parser->document; + // destroy the parser object + unset($parser); + // return decode message + return $return; + } + } + + /** + * sets user-specified cURL options + * + * @param mixed $option The cURL option (always integer?) + * @param mixed $value The cURL option value + * @access public + */ + function setCurlOption($option, $value) { + $this->debug("setCurlOption option=$option, value="); + $this->appendDebug($this->varDump($value)); + $this->curl_options[$option] = $value; + } + + /** + * sets the SOAP endpoint, which can override WSDL + * + * @param string $endpoint The endpoint URL to use, or empty string or false to prevent override + * @access public + */ + function setEndpoint($endpoint) { + $this->debug("setEndpoint(\"$endpoint\")"); + $this->forceEndpoint = $endpoint; + } + + /** + * set the SOAP headers + * + * @param mixed $headers String of XML with SOAP header content, or array of soapval objects for SOAP headers + * @access public + */ + function setHeaders($headers){ + $this->debug("setHeaders headers="); + $this->appendDebug($this->varDump($headers)); + $this->requestHeaders = $headers; + } + + /** + * get the SOAP response headers (namespace resolution incomplete) + * + * @return string + * @access public + */ + function getHeaders(){ + return $this->responseHeaders; + } + + /** + * get the SOAP response Header (parsed) + * + * @return mixed + * @access public + */ + function getHeader(){ + return $this->responseHeader; + } + + /** + * set proxy info here + * + * @param string $proxyhost + * @param string $proxyport + * @param string $proxyusername + * @param string $proxypassword + * @access public + */ + function setHTTPProxy($proxyhost, $proxyport, $proxyusername = '', $proxypassword = '') { + $this->proxyhost = $proxyhost; + $this->proxyport = $proxyport; + $this->proxyusername = $proxyusername; + $this->proxypassword = $proxypassword; + } + + /** + * if authenticating, set user credentials here + * + * @param string $username + * @param string $password + * @param string $authtype (basic|digest|certificate|ntlm) + * @param array $certRequest (keys must be cainfofile (optional), sslcertfile, sslkeyfile, passphrase, verifypeer (optional), verifyhost (optional): see corresponding options in cURL docs) + * @access public + */ + function setCredentials($username, $password, $authtype = 'basic', $certRequest = array()) { + $this->debug("setCredentials username=$username authtype=$authtype certRequest="); + $this->appendDebug($this->varDump($certRequest)); + $this->username = $username; + $this->password = $password; + $this->authtype = $authtype; + $this->certRequest = $certRequest; + } + + /** + * use HTTP encoding + * + * @param string $enc HTTP encoding + * @access public + */ + function setHTTPEncoding($enc='gzip, deflate'){ + $this->debug("setHTTPEncoding(\"$enc\")"); + $this->http_encoding = $enc; + } + + /** + * Set whether to try to use cURL connections if possible + * + * @param boolean $use Whether to try to use cURL + * @access public + */ + function setUseCURL($use) { + $this->debug("setUseCURL($use)"); + $this->use_curl = $use; + } + + /** + * use HTTP persistent connections if possible + * + * @access public + */ + function useHTTPPersistentConnection(){ + $this->debug("useHTTPPersistentConnection"); + $this->persistentConnection = true; + } + + /** + * gets the default RPC parameter setting. + * If true, default is that call params are like RPC even for document style. + * Each call() can override this value. + * + * This is no longer used. + * + * @return boolean + * @access public + * @deprecated + */ + function getDefaultRpcParams() { + return $this->defaultRpcParams; + } + + /** + * sets the default RPC parameter setting. + * If true, default is that call params are like RPC even for document style + * Each call() can override this value. + * + * This is no longer used. + * + * @param boolean $rpcParams + * @access public + * @deprecated + */ + function setDefaultRpcParams($rpcParams) { + $this->defaultRpcParams = $rpcParams; + } + + /** + * dynamically creates an instance of a proxy class, + * allowing user to directly call methods from wsdl + * + * @return object soap_proxy object + * @access public + */ + function getProxy() { + $r = rand(); + $evalStr = $this->_getProxyClassCode($r); + //$this->debug("proxy class: $evalStr"); + if ($this->getError()) { + $this->debug("Error from _getProxyClassCode, so return NULL"); + return null; + } + // eval the class + eval($evalStr); + // instantiate proxy object + eval("\$proxy = new nusoap_proxy_$r('');"); + // transfer current wsdl data to the proxy thereby avoiding parsing the wsdl twice + $proxy->endpointType = 'wsdl'; + $proxy->wsdlFile = $this->wsdlFile; + $proxy->wsdl = $this->wsdl; + $proxy->operations = $this->operations; + $proxy->defaultRpcParams = $this->defaultRpcParams; + // transfer other state + $proxy->soap_defencoding = $this->soap_defencoding; + $proxy->username = $this->username; + $proxy->password = $this->password; + $proxy->authtype = $this->authtype; + $proxy->certRequest = $this->certRequest; + $proxy->requestHeaders = $this->requestHeaders; + $proxy->endpoint = $this->endpoint; + $proxy->forceEndpoint = $this->forceEndpoint; + $proxy->proxyhost = $this->proxyhost; + $proxy->proxyport = $this->proxyport; + $proxy->proxyusername = $this->proxyusername; + $proxy->proxypassword = $this->proxypassword; + $proxy->http_encoding = $this->http_encoding; + $proxy->timeout = $this->timeout; + $proxy->response_timeout = $this->response_timeout; + $proxy->persistentConnection = &$this->persistentConnection; + $proxy->decode_utf8 = $this->decode_utf8; + $proxy->curl_options = $this->curl_options; + $proxy->bindingType = $this->bindingType; + $proxy->use_curl = $this->use_curl; + return $proxy; + } + + /** + * dynamically creates proxy class code + * + * @return string PHP/NuSOAP code for the proxy class + * @access private + */ + function _getProxyClassCode($r) { + $this->debug("in getProxy endpointType=$this->endpointType"); + $this->appendDebug("wsdl=" . $this->varDump($this->wsdl)); + if ($this->endpointType != 'wsdl') { + $evalStr = 'A proxy can only be created for a WSDL client'; + $this->setError($evalStr); + $evalStr = "echo \"$evalStr\";"; + return $evalStr; + } + if ($this->endpointType == 'wsdl' && is_null($this->wsdl)) { + $this->loadWSDL(); + if ($this->getError()) { + return "echo \"" . $this->getError() . "\";"; + } + } + $evalStr = ''; + foreach ($this->operations as $operation => $opData) { + if ($operation != '') { + // create param string and param comment string + if (sizeof($opData['input']['parts']) > 0) { + $paramStr = ''; + $paramArrayStr = ''; + $paramCommentStr = ''; + foreach ($opData['input']['parts'] as $name => $type) { + $paramStr .= "\$$name, "; + $paramArrayStr .= "'$name' => \$$name, "; + $paramCommentStr .= "$type \$$name, "; + } + $paramStr = substr($paramStr, 0, strlen($paramStr)-2); + $paramArrayStr = substr($paramArrayStr, 0, strlen($paramArrayStr)-2); + $paramCommentStr = substr($paramCommentStr, 0, strlen($paramCommentStr)-2); + } else { + $paramStr = ''; + $paramArrayStr = ''; + $paramCommentStr = 'void'; + } + $opData['namespace'] = !isset($opData['namespace']) ? 'http://testuri.com' : $opData['namespace']; + $evalStr .= "// $paramCommentStr + function " . str_replace('.', '__', $operation) . "($paramStr) { + \$params = array($paramArrayStr); + return \$this->call('$operation', \$params, '".$opData['namespace']."', '".(isset($opData['soapAction']) ? $opData['soapAction'] : '')."'); + } + "; + unset($paramStr); + unset($paramCommentStr); + } + } + $evalStr = 'class nusoap_proxy_'.$r.' extends nusoap_client { + '.$evalStr.' +}'; + return $evalStr; + } + + /** + * dynamically creates proxy class code + * + * @return string PHP/NuSOAP code for the proxy class + * @access public + */ + function getProxyClassCode() { + $r = rand(); + return $this->_getProxyClassCode($r); + } + + /** + * gets the HTTP body for the current request. + * + * @param string $soapmsg The SOAP payload + * @return string The HTTP body, which includes the SOAP payload + * @access private + */ + function getHTTPBody($soapmsg) { + return $soapmsg; + } + + /** + * gets the HTTP content type for the current request. + * + * Note: getHTTPBody must be called before this. + * + * @return string the HTTP content type for the current request. + * @access private + */ + function getHTTPContentType() { + return 'text/xml'; + } + + /** + * gets the HTTP content type charset for the current request. + * returns false for non-text content types. + * + * Note: getHTTPBody must be called before this. + * + * @return string the HTTP content type charset for the current request. + * @access private + */ + function getHTTPContentTypeCharset() { + return $this->soap_defencoding; + } + + /* + * whether or not parser should decode utf8 element content + * + * @return always returns true + * @access public + */ + function decodeUTF8($bool){ + $this->decode_utf8 = $bool; + return true; + } + + /** + * adds a new Cookie into $this->cookies array + * + * @param string $name Cookie Name + * @param string $value Cookie Value + * @return boolean if cookie-set was successful returns true, else false + * @access public + */ + function setCookie($name, $value) { + if (strlen($name) == 0) { + return false; + } + $this->cookies[] = array('name' => $name, 'value' => $value); + return true; + } + + /** + * gets all Cookies + * + * @return array with all internal cookies + * @access public + */ + function getCookies() { + return $this->cookies; + } + + /** + * checks all Cookies and delete those which are expired + * + * @return boolean always return true + * @access private + */ + function checkCookies() { + if (sizeof($this->cookies) == 0) { + return true; + } + $this->debug('checkCookie: check ' . sizeof($this->cookies) . ' cookies'); + $curr_cookies = $this->cookies; + $this->cookies = array(); + foreach ($curr_cookies as $cookie) { + if (! is_array($cookie)) { + $this->debug('Remove cookie that is not an array'); + continue; + } + if ((isset($cookie['expires'])) && (! empty($cookie['expires']))) { + if (strtotime($cookie['expires']) > time()) { + $this->cookies[] = $cookie; + } else { + $this->debug('Remove expired cookie ' . $cookie['name']); + } + } else { + $this->cookies[] = $cookie; + } + } + $this->debug('checkCookie: '.sizeof($this->cookies).' cookies left in array'); + return true; + } + + /** + * updates the current cookies with a new set + * + * @param array $cookies new cookies with which to update current ones + * @return boolean always return true + * @access private + */ + function UpdateCookies($cookies) { + if (sizeof($this->cookies) == 0) { + // no existing cookies: take whatever is new + if (sizeof($cookies) > 0) { + $this->debug('Setting new cookie(s)'); + $this->cookies = $cookies; + } + return true; + } + if (sizeof($cookies) == 0) { + // no new cookies: keep what we've got + return true; + } + // merge + foreach ($cookies as $newCookie) { + if (!is_array($newCookie)) { + continue; + } + if ((!isset($newCookie['name'])) || (!isset($newCookie['value']))) { + continue; + } + $newName = $newCookie['name']; + + $found = false; + for ($i = 0; $i < count($this->cookies); $i++) { + $cookie = $this->cookies[$i]; + if (!is_array($cookie)) { + continue; + } + if (!isset($cookie['name'])) { + continue; + } + if ($newName != $cookie['name']) { + continue; + } + $newDomain = isset($newCookie['domain']) ? $newCookie['domain'] : 'NODOMAIN'; + $domain = isset($cookie['domain']) ? $cookie['domain'] : 'NODOMAIN'; + if ($newDomain != $domain) { + continue; + } + $newPath = isset($newCookie['path']) ? $newCookie['path'] : 'NOPATH'; + $path = isset($cookie['path']) ? $cookie['path'] : 'NOPATH'; + if ($newPath != $path) { + continue; + } + $this->cookies[$i] = $newCookie; + $found = true; + $this->debug('Update cookie ' . $newName . '=' . $newCookie['value']); + break; + } + if (! $found) { + $this->debug('Add cookie ' . $newName . '=' . $newCookie['value']); + $this->cookies[] = $newCookie; + } + } + return true; + } +} + +if (!extension_loaded('soap')) { + /** + * For backwards compatiblity, define soapclient unless the PHP SOAP extension is loaded. + */ + class soapclient extends nusoap_client { + } +} +?> diff --git a/classes/lib/nusoapmime.php b/classes/lib/nusoapmime.php new file mode 100644 index 0000000..6493863 --- /dev/null +++ b/classes/lib/nusoapmime.php @@ -0,0 +1,501 @@ + +* @author Thanks to Guillaume and Henning Reich for posting great attachment code to the mail list +* @version $Id: nusoapmime.php,v 1.13 2010/04/26 20:15:08 snichol Exp $ +* @access public +*/ +class nusoap_client_mime extends nusoap_client { + /** + * @var array Each array element in the return is an associative array with keys + * data, filename, contenttype, cid + * @access private + */ + var $requestAttachments = array(); + /** + * @var array Each array element in the return is an associative array with keys + * data, filename, contenttype, cid + * @access private + */ + var $responseAttachments; + /** + * @var string + * @access private + */ + var $mimeContentType; + + /** + * adds a MIME attachment to the current request. + * + * If the $data parameter contains an empty string, this method will read + * the contents of the file named by the $filename parameter. + * + * If the $cid parameter is false, this method will generate the cid. + * + * @param string $data The data of the attachment + * @param string $filename The filename of the attachment (default is empty string) + * @param string $contenttype The MIME Content-Type of the attachment (default is application/octet-stream) + * @param string $cid The content-id (cid) of the attachment (default is false) + * @return string The content-id (cid) of the attachment + * @access public + */ + function addAttachment($data, $filename = '', $contenttype = 'application/octet-stream', $cid = false) { + if (! $cid) { + $cid = md5(uniqid(time())); + } + + $info['data'] = $data; + $info['filename'] = $filename; + $info['contenttype'] = $contenttype; + $info['cid'] = $cid; + + $this->requestAttachments[] = $info; + + return $cid; + } + + /** + * clears the MIME attachments for the current request. + * + * @access public + */ + function clearAttachments() { + $this->requestAttachments = array(); + } + + /** + * gets the MIME attachments from the current response. + * + * Each array element in the return is an associative array with keys + * data, filename, contenttype, cid. These keys correspond to the parameters + * for addAttachment. + * + * @return array The attachments. + * @access public + */ + function getAttachments() { + return $this->responseAttachments; + } + + /** + * gets the HTTP body for the current request. + * + * @param string $soapmsg The SOAP payload + * @return string The HTTP body, which includes the SOAP payload + * @access private + */ + function getHTTPBody($soapmsg) { + if (count($this->requestAttachments) > 0) { + $params['content_type'] = 'multipart/related; type="text/xml"'; + $mimeMessage = new Mail_mimePart('', $params); + unset($params); + + $params['content_type'] = 'text/xml'; + $params['encoding'] = '8bit'; + $params['charset'] = $this->soap_defencoding; + $mimeMessage->addSubpart($soapmsg, $params); + + foreach ($this->requestAttachments as $att) { + unset($params); + + $params['content_type'] = $att['contenttype']; + $params['encoding'] = 'base64'; + $params['disposition'] = 'attachment'; + $params['dfilename'] = $att['filename']; + $params['cid'] = $att['cid']; + + if ($att['data'] == '' && $att['filename'] <> '') { + if ($fd = fopen($att['filename'], 'rb')) { + $data = fread($fd, filesize($att['filename'])); + fclose($fd); + } else { + $data = ''; + } + $mimeMessage->addSubpart($data, $params); + } else { + $mimeMessage->addSubpart($att['data'], $params); + } + } + + $output = $mimeMessage->encode(); + $mimeHeaders = $output['headers']; + + foreach ($mimeHeaders as $k => $v) { + $this->debug("MIME header $k: $v"); + if (strtolower($k) == 'content-type') { + // PHP header() seems to strip leading whitespace starting + // the second line, so force everything to one line + $this->mimeContentType = str_replace("\r\n", " ", $v); + } + } + + return $output['body']; + } + + return parent::getHTTPBody($soapmsg); + } + + /** + * gets the HTTP content type for the current request. + * + * Note: getHTTPBody must be called before this. + * + * @return string the HTTP content type for the current request. + * @access private + */ + function getHTTPContentType() { + if (count($this->requestAttachments) > 0) { + return $this->mimeContentType; + } + return parent::getHTTPContentType(); + } + + /** + * gets the HTTP content type charset for the current request. + * returns false for non-text content types. + * + * Note: getHTTPBody must be called before this. + * + * @return string the HTTP content type charset for the current request. + * @access private + */ + function getHTTPContentTypeCharset() { + if (count($this->requestAttachments) > 0) { + return false; + } + return parent::getHTTPContentTypeCharset(); + } + + /** + * processes SOAP message returned from server + * + * @param array $headers The HTTP headers + * @param string $data unprocessed response data from server + * @return mixed value of the message, decoded into a PHP type + * @access private + */ + function parseResponse($headers, $data) { + $this->debug('Entering parseResponse() for payload of length ' . strlen($data) . ' and type of ' . $headers['content-type']); + $this->responseAttachments = array(); + if (strstr($headers['content-type'], 'multipart/related')) { + $this->debug('Decode multipart/related'); + $input = ''; + foreach ($headers as $k => $v) { + $input .= "$k: $v\r\n"; + } + $params['input'] = $input . "\r\n" . $data; + $params['include_bodies'] = true; + $params['decode_bodies'] = true; + $params['decode_headers'] = true; + + $structure = Mail_mimeDecode::decode($params); + + foreach ($structure->parts as $part) { + if (!isset($part->disposition) && (strstr($part->headers['content-type'], 'text/xml'))) { + $this->debug('Have root part of type ' . $part->headers['content-type']); + $root = $part->body; + $return = parent::parseResponse($part->headers, $part->body); + } else { + $this->debug('Have an attachment of type ' . $part->headers['content-type']); + $info['data'] = $part->body; + $info['filename'] = isset($part->d_parameters['filename']) ? $part->d_parameters['filename'] : ''; + $info['contenttype'] = $part->headers['content-type']; + $info['cid'] = $part->headers['content-id']; + $this->responseAttachments[] = $info; + } + } + + if (isset($return)) { + $this->responseData = $root; + return $return; + } + + $this->setError('No root part found in multipart/related content'); + return ''; + } + $this->debug('Not multipart/related'); + return parent::parseResponse($headers, $data); + } +} + +/* + * For backwards compatiblity, define soapclientmime unless the PHP SOAP extension is loaded. + */ +if (!extension_loaded('soap')) { + class soapclientmime extends nusoap_client_mime { + } +} + +/** +* nusoap_server_mime server supporting MIME attachments defined at +* http://www.w3.org/TR/SOAP-attachments. It depends on the PEAR Mail_MIME library. +* +* @author Scott Nichol +* @author Thanks to Guillaume and Henning Reich for posting great attachment code to the mail list +* @version $Id: nusoapmime.php,v 1.13 2010/04/26 20:15:08 snichol Exp $ +* @access public +*/ +class nusoap_server_mime extends nusoap_server { + /** + * @var array Each array element in the return is an associative array with keys + * data, filename, contenttype, cid + * @access private + */ + var $requestAttachments = array(); + /** + * @var array Each array element in the return is an associative array with keys + * data, filename, contenttype, cid + * @access private + */ + var $responseAttachments; + /** + * @var string + * @access private + */ + var $mimeContentType; + + /** + * adds a MIME attachment to the current response. + * + * If the $data parameter contains an empty string, this method will read + * the contents of the file named by the $filename parameter. + * + * If the $cid parameter is false, this method will generate the cid. + * + * @param string $data The data of the attachment + * @param string $filename The filename of the attachment (default is empty string) + * @param string $contenttype The MIME Content-Type of the attachment (default is application/octet-stream) + * @param string $cid The content-id (cid) of the attachment (default is false) + * @return string The content-id (cid) of the attachment + * @access public + */ + function addAttachment($data, $filename = '', $contenttype = 'application/octet-stream', $cid = false) { + if (! $cid) { + $cid = md5(uniqid(time())); + } + + $info['data'] = $data; + $info['filename'] = $filename; + $info['contenttype'] = $contenttype; + $info['cid'] = $cid; + + $this->responseAttachments[] = $info; + + return $cid; + } + + /** + * clears the MIME attachments for the current response. + * + * @access public + */ + function clearAttachments() { + $this->responseAttachments = array(); + } + + /** + * gets the MIME attachments from the current request. + * + * Each array element in the return is an associative array with keys + * data, filename, contenttype, cid. These keys correspond to the parameters + * for addAttachment. + * + * @return array The attachments. + * @access public + */ + function getAttachments() { + return $this->requestAttachments; + } + + /** + * gets the HTTP body for the current response. + * + * @param string $soapmsg The SOAP payload + * @return string The HTTP body, which includes the SOAP payload + * @access private + */ + function getHTTPBody($soapmsg) { + if (count($this->responseAttachments) > 0) { + $params['content_type'] = 'multipart/related; type="text/xml"'; + $mimeMessage = new Mail_mimePart('', $params); + unset($params); + + $params['content_type'] = 'text/xml'; + $params['encoding'] = '8bit'; + $params['charset'] = $this->soap_defencoding; + $mimeMessage->addSubpart($soapmsg, $params); + + foreach ($this->responseAttachments as $att) { + unset($params); + + $params['content_type'] = $att['contenttype']; + $params['encoding'] = 'base64'; + $params['disposition'] = 'attachment'; + $params['dfilename'] = $att['filename']; + $params['cid'] = $att['cid']; + + if ($att['data'] == '' && $att['filename'] <> '') { + if ($fd = fopen($att['filename'], 'rb')) { + $data = fread($fd, filesize($att['filename'])); + fclose($fd); + } else { + $data = ''; + } + $mimeMessage->addSubpart($data, $params); + } else { + $mimeMessage->addSubpart($att['data'], $params); + } + } + + $output = $mimeMessage->encode(); + $mimeHeaders = $output['headers']; + + foreach ($mimeHeaders as $k => $v) { + $this->debug("MIME header $k: $v"); + if (strtolower($k) == 'content-type') { + // PHP header() seems to strip leading whitespace starting + // the second line, so force everything to one line + $this->mimeContentType = str_replace("\r\n", " ", $v); + } + } + + return $output['body']; + } + + return parent::getHTTPBody($soapmsg); + } + + /** + * gets the HTTP content type for the current response. + * + * Note: getHTTPBody must be called before this. + * + * @return string the HTTP content type for the current response. + * @access private + */ + function getHTTPContentType() { + if (count($this->responseAttachments) > 0) { + return $this->mimeContentType; + } + return parent::getHTTPContentType(); + } + + /** + * gets the HTTP content type charset for the current response. + * returns false for non-text content types. + * + * Note: getHTTPBody must be called before this. + * + * @return string the HTTP content type charset for the current response. + * @access private + */ + function getHTTPContentTypeCharset() { + if (count($this->responseAttachments) > 0) { + return false; + } + return parent::getHTTPContentTypeCharset(); + } + + /** + * processes SOAP message received from client + * + * @param array $headers The HTTP headers + * @param string $data unprocessed request data from client + * @return mixed value of the message, decoded into a PHP type + * @access private + */ + function parseRequest($headers, $data) { + $this->debug('Entering parseRequest() for payload of length ' . strlen($data) . ' and type of ' . $headers['content-type']); + $this->requestAttachments = array(); + if (strstr($headers['content-type'], 'multipart/related')) { + $this->debug('Decode multipart/related'); + $input = ''; + foreach ($headers as $k => $v) { + $input .= "$k: $v\r\n"; + } + $params['input'] = $input . "\r\n" . $data; + $params['include_bodies'] = true; + $params['decode_bodies'] = true; + $params['decode_headers'] = true; + + $structure = Mail_mimeDecode::decode($params); + + foreach ($structure->parts as $part) { + if (!isset($part->disposition) && (strstr($part->headers['content-type'], 'text/xml'))) { + $this->debug('Have root part of type ' . $part->headers['content-type']); + $return = parent::parseRequest($part->headers, $part->body); + } else { + $this->debug('Have an attachment of type ' . $part->headers['content-type']); + $info['data'] = $part->body; + $info['filename'] = isset($part->d_parameters['filename']) ? $part->d_parameters['filename'] : ''; + $info['contenttype'] = $part->headers['content-type']; + $info['cid'] = $part->headers['content-id']; + $this->requestAttachments[] = $info; + } + } + + if (isset($return)) { + return $return; + } + + $this->setError('No root part found in multipart/related content'); + return; + } + $this->debug('Not multipart/related'); + return parent::parseRequest($headers, $data); + } +} + +/* + * For backwards compatiblity + */ +class nusoapservermime extends nusoap_server_mime { +} + +?> diff --git a/classes/test.php b/classes/test.php new file mode 100644 index 0000000..c57e72a --- /dev/null +++ b/classes/test.php @@ -0,0 +1,70 @@ +soap_defencoding = 'utf-8'; +// We define the parameters as a string array. Each Key/Val represents a parameter of the soap call +// On défini les paramètres dans un tableau de chaînes. Chaque paire Clé/Valeur est un paramètre de l'appel +$params = array( +'Enseigne' => $MR_WebSiteId, + 'Pays' => "FR", + //'NumPointRelais' => "", + 'Ville' => "LYON", + 'CP' => "69008", + 'Latitude' => "", + 'Longitude' => "", + 'Taille' => "", + 'Poids' => "70000", + 'Action' => "", + 'DelaiEnvoi' => "0", + 'RayonRecherche' => "20", + //'TypeActivite' => "", + //'NACE' => "", +); +// We generate the request's security code +// On génère la clé de sécurité de l'appel +$code = implode("", $params); +$ip_address = array("78.192.80.40", "127.0.0.1", "::1"); +$ip_key = array_key_exists('HTTP_X_FORWARDED_FOR', $_SERVER) ? 'HTTP_X_FORWARDED_FOR' : 'REMOTE_ADDR'; +if(in_array($_SERVER[$ip_key], $ip_address)){ + echo "
";
+    var_dump($code);
+    var_dump($MR_WebSiteKey);
+    echo "
"; + die; +} +$code .= $MR_WebSiteKey; +$params["Security"] = strtoupper(md5($code)); +// We make the call and load it in the $result var +// On rƩalise l'appel et stocke le rƩsultat dans la variable $result +$result = $client->call( + 'WSI3_PointRelais_Recherche', + $params, + 'http://api.mondialrelay.com/', + 'http://api.mondialrelay.com/WSI3_PointRelais_Recherche' +);// We check their is no error during the process +// On vƩrifie qu'il n'y a pas eu d'erreur +if ($client->fault) +{ +echo '

Fault (Expect - The request contains an invalid SOAP body)

';
+print_r($result);
+echo '
'; +} +else +{ +$err = $client->getError(); +if ($err) { echo '

Error

' . $err . '
'; } +else +{ +echo '

Result

';
+print_r($result);
+echo '
'; +} +} +echo '

Request

' . htmlspecialchars($client->request, ENT_QUOTES) . '
'; +echo '

Response

' . htmlspecialchars($client->response, ENT_QUOTES) . '
'; +echo '

Debug

' . htmlspecialchars($client->getDebug(), ENT_QUOTES) . '
'; +?> \ No newline at end of file diff --git a/config.xml b/config.xml index 32240ea..8ecf352 100644 --- a/config.xml +++ b/config.xml @@ -1,12 +1,12 @@ - - mondialrelay - - - - - - 1 - 1 + + mondialrelay + + + + + + 1 + 1 - + \ No newline at end of file diff --git a/config_fr.xml b/config_fr.xml new file mode 100644 index 0000000..345b39a --- /dev/null +++ b/config_fr.xml @@ -0,0 +1,12 @@ + + + mondialrelay + + + + + + 1 + 1 + + \ No newline at end of file diff --git a/connexion.php b/connexion.php index 1b794f4..f35f265 100644 --- a/connexion.php +++ b/connexion.php @@ -28,33 +28,34 @@ include_once(dirname(__FILE__).'/mondialrelay.php'); include_once(dirname(__FILE__).'/errorCode.php'); try{ - if (!Tools::getValue('token')) - die('{"error":"Security error"}'); - if (sha1('mr'._COOKIE_KEY_.'Back') != Tools::getValue('token')) - die('{"error":"Security error"}'); - - $webservice = MondialRelay::MR_URL.'webservice/Web_Services.asmx?WSDL'; - $client = new SoapClient($webservice); - $params = array(); - $params['Enseigne'] = Tools::getValue('enseigne'); - $params['Poids'] = ''; - $params['Taille'] = ''; - $params['CP'] = (Configuration::get('PS_SHOP_CODE')) ? Configuration::get('PS_SHOP_CODE') : '75000'; - $params['Ville'] = ''; - $id_country = (Configuration::get('PS_SHOP_COUNTRY_ID')) ? Configuration::get('PS_SHOP_COUNTRY_ID') : Configuration::get('PS_COUNTRY_DEFAULT'); - $params['Pays'] = Country::getIsoById($id_country); - $params['Action'] = ''; - $concat = $params['Enseigne'].$params['Pays'].$params['Ville'].$params['CP'].$params['Poids'].Tools::getValue('key'); - $params['Security'] = Tools::strtoupper(md5($concat)); - $result_mr = $client->WSI2_RecherchePointRelais($params); - if (($errorNumber = $result_mr->WSI2_RecherchePointRelaisResult->STAT) != 0) - { - echo '{"error":"'.str_replace('"', '', $statCode[$errorNumber]).'"}'; - die(); - } - echo '{"success":1}'; + if (!Tools::getValue('token')) + die('{"error":"Security error"}'); + if (sha1('mr'._COOKIE_KEY_.'Back') != Tools::getValue('token')) + die('{"error":"Security error"}'); + + $webservice = MondialRelay::MR_URL.'webservice/Web_Services.asmx?WSDL'; + $client = new SoapClient($webservice); + $params = array(); + $params['Enseigne'] = Tools::getValue('enseigne'); + $params['Poids'] = ''; + $params['Taille'] = ''; + $params['CP'] = (Configuration::get('PS_SHOP_CODE')) ? Configuration::get('PS_SHOP_CODE') : '75000'; + $params['Ville'] = ''; + $id_country = (Configuration::get('PS_SHOP_COUNTRY_ID')) ? Configuration::get('PS_SHOP_COUNTRY_ID') : Configuration::get('PS_COUNTRY_DEFAULT'); + $params['Pays'] = Country::getIsoById($id_country); + $params['Action'] = ''; + $params['RayonRecherche'] = ''; + $concat = $params['Enseigne'].$params['Pays'].$params['Ville'].$params['CP'].$params['Poids'].Tools::getValue('key'); + $params['Security'] = Tools::strtoupper(md5($concat)); + $result_mr = $client->WSI2_RecherchePointRelais($params); + if (($errorNumber = $result_mr->WSI2_RecherchePointRelaisResult->STAT) != 0) + { + echo '{"error":"'.str_replace('"', '', $statCode[$errorNumber]).'"}'; + die(); + } + echo '{"success":1}'; } catch(Exception $e) { - echo '{"error":"'.str_replace('"', '', $statCode[99]).'"}'; - die(); + echo '{"error":"'.str_replace('"', '', $statCode[99]).'"}'; + die(); } \ No newline at end of file diff --git a/cron.php b/cron.php index fb55596..05157f8 100644 --- a/cron.php +++ b/cron.php @@ -28,7 +28,7 @@ include_once('mondialrelay.php'); if (Tools::getValue('secure_key') != Configuration::get('MONDIAL_RELAY_SECURE_KEY')) - exit; + exit; $account_shop = MondialRelay::getAccountDetail(); @@ -39,10 +39,10 @@ WHERE `exp_number` != 0'); if (empty($expeditions)) - die('No order'); + die('No order'); else - echo 'Start progress
'; - + echo 'Start progress
'; + $params = array( 'Enseigne' => $account_shop['MR_ENSEIGNE_WEBSERVICE'], 'Langue' => 'FR' @@ -55,34 +55,34 @@ $i = 0; foreach ($expeditions as $expedition) { - if ($expedition['id_order'] == null) - continue; - $order = new Order((int)($expedition['id_order'])); - if ($order->current_state == Configuration::get('PS_OS_DELIVERED')) - continue; - $params['Expedition'] = $expedition['exp_number']; - $params['Security'] = Tools::strtoupper(md5($params['Enseigne'].$params['Expedition'].'FR'.$account_shop['MR_KEY_WEBSERVICE'])); - - $is_delivered = 0; - $result_mr = $client_mr->WSI2_TracingColisDetaille($params); - - if (isset($result_mr->WSI2_TracingColisDetailleResult->Tracing->ret_WSI2_sub_TracingColisDetaille)) - foreach ($result_mr->WSI2_TracingColisDetailleResult->Tracing->ret_WSI2_sub_TracingColisDetaille as $result) - if (isset($result->Libelle) && $result->Libelle == 'COLIS LIVRƉ') - { - $is_delivered = 1; - break; - } - - if ($is_delivered == 1) - { - $history = new OrderHistory(); - $history->id_order = (int)($expedition['id_order']); - $history->changeIdOrderState((int)(Configuration::get('PS_OS_DELIVERED')), (int)($expedition['id_order'])); - $history->addWithemail(); - } - $i++; - - echo '

'.$i.'

'; + if ($expedition['id_order'] == null) + continue; + $order = new Order((int)($expedition['id_order'])); + if ($order->current_state == Configuration::get('PS_OS_DELIVERED')) + continue; + $params['Expedition'] = $expedition['exp_number']; + $params['Security'] = Tools::strtoupper(md5($params['Enseigne'].$params['Expedition'].'FR'.$account_shop['MR_KEY_WEBSERVICE'])); + + $is_delivered = 0; + $result_mr = $client_mr->WSI2_TracingColisDetaille($params); + + if (isset($result_mr->WSI2_TracingColisDetailleResult->Tracing->ret_WSI2_sub_TracingColisDetaille)) + foreach ($result_mr->WSI2_TracingColisDetailleResult->Tracing->ret_WSI2_sub_TracingColisDetaille as $result) + if (isset($result->Libelle) && $result->Libelle == 'COLIS LIVRƉ') + { + $is_delivered = 1; + break; + } + + if ($is_delivered == 1) + { + $history = new OrderHistory(); + $history->id_order = (int)($expedition['id_order']); + $history->changeIdOrderState((int)(Configuration::get('PS_OS_DELIVERED')), (int)($expedition['id_order'])); + $history->addWithemail(); + } + $i++; + + echo '

'.$i.'

'; } echo 'End progress
'; \ No newline at end of file diff --git a/css/index.php b/css/index.php index ce38668..dc40d62 100644 --- a/css/index.php +++ b/css/index.php @@ -24,13 +24,13 @@ * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) * International Registered Trademark & Property of PrestaShop SA */ - + header("Expires: Mon, 26 Jul 1997 05:00:00 GMT"); header("Last-Modified: ".gmdate("D, d M Y H:i:s")." GMT"); - + header("Cache-Control: no-store, no-cache, must-revalidate"); header("Cache-Control: post-check=0, pre-check=0", false); header("Pragma: no-cache"); - + header("Location: ../"); exit; \ No newline at end of file diff --git a/docs/index.php b/docs/index.php index 9d353d7..cd81008 100644 --- a/docs/index.php +++ b/docs/index.php @@ -23,13 +23,13 @@ * @license http://opensource.org/licenses/osl-3.0.php Open Software License (OSL 3.0) * International Registered Trademark & Property of PrestaShop SA */ - + header("Expires: Mon, 26 Jul 1997 05:00:00 GMT"); header("Last-Modified: ".gmdate("D, d M Y H:i:s")." GMT"); - + header("Cache-Control: no-store, no-cache, must-revalidate"); header("Cache-Control: post-check=0, pre-check=0", false); header("Pragma: no-cache"); - + header("Location: ../"); exit; \ No newline at end of file diff --git a/docs/install.pdf b/docs/install.pdf index 663942b63679d16c938456183d45e494bc52f267..bd2df23a4b3bd6c2d595f2985b70ede875c4473a 100644 GIT binary patch literal 2343025 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⓴i@8*y$`&HjptT5r0V%8cdaqivKb#<2a zvO>?>T$4ueR!i`km`6pbul6_I3>isOC7lXAzn~c=efsHf=6l6KBE!n%BM`^ulrh-Z z;nBB`b(6Stf^wDw?Y@cL10Fn7yaZ(07MhcQ^w25KP(~MtGDsR+93mWaOj>pc7~(VY z-1AuT{e_VDF@7RP{k`vW^Mwhf$pd}91jQv>0wTd2O9!nd7#ZH<}5hyXyd)D#E%jmkvGD|I8A;e4cl6J zH1Chn9osya{y3w9DWR8&^b4YR#y2}m)`h5->i3|8V05#xq%Q$jr>0Qzg$WQE0L6F)n%TzET=)2bn2$Kk z!tk^)K_ly-OG3BogItfjbMyMW$WrUfElW8#c*w}UJN~*^dO_Yg$+&WAEi2#}$wTv; zW4iX&>wgW%|0>#q(J1I>hgc`WlkXtyJb_aa%47O+RYp4(bKAKSxBU1J=cV^?4pxVy zxUZ=10w}4l9KH?Gq|LzI!#iZFxvO9tt>scs+2S4*7K*eD6DJoCs#l3aZzpX~TjEtJXTTA8%Kb}#_1JUAemr=sUG<#zzX<6+=08Fs z{hhisiI0I=G@VMgzK0)eN#bFN-%UZqxtNj<(0y%-1_OK?EWcAx6Jm%ZOeI%%E&=hu z!=P=$@=L(*$J)8=2AYkMt4#!a6V5ynB)_RK^}qVeKeU7Yc$V0C`1brxEMcYZNB{IW z=U+IJH~Q+-L@2iEgZ(Aohi{4AB_KO%^X;H6kT!_w640!A30PhfgPqekgAOxys{(|c zoH;g^oYLuD0_fLah}!sLg@0%NPhtFzGXK2kZO*YN6ueN8+YWqtTQPSdDeEO#AJ>h% zQ0o3f^oW~&xvi7uyKa13_E7O04Fa1REV9e_BFiM9>1$8}-gXD}dto{r>DuYYn}x;~ z@I$oon4mP9oM3mxU4vAW8ayXYrJHZQds7Qk5(B(y1Cf;6$?y;4tUNu&SAh7Ti`kce zeK#iX#YYMFnU;@{e0um!5EZnmI45ZunsIuh9n|&jj`^SV)}J@Yc}C6Mc$th2l<2mF z_R8yeox#uRlSeeG+&LvBh8dP4n!BuDDU$k!Ci7c|vAGfnEzctosBuY5M%c+1jZtU0*)5ijgxFK*SkL z{%yH)$?epc+(KBSoNjGca-mdXhwF7f)+DI4hCA?SOx%o_BB$F8k*5Pd@?aXy#dIQ` zNM|vKDd-l~TQgqo5EhS|u?bP<^iTnu7^ZOZ8__T^}~WnyQi zCYa$P<~^kLd+~>L*FtEF3MuhJ6cfORAlVi2R&|XiX7}w%S`%}Yo!TmFZod+C82q_bnf$qY=tL* zTkC;9By37(X)g)_q>mO8BI*|mcc+;acvp3!U3}DcU>#*csmKz26&WIOtyjx610%I? zLxi7A0Qq3zB))8@yuqw<;6#6d&VZiI$4!-LmU>8?vPW;pP36Jw{cG$YH0+TnaBH;+ z>BBKKmyI-6f<7JID1gmCIhvDUIn?n(m@9p*{N9ZYN;O*Ql6}k6fTQnjtEU~eIa<}} zKf(Fw%}r@kFnin0m=WankCGqi%@?oNIa9OvO(Y&Xc@q=bVcz5YKr~u~B)xolJokM9 zW*nS6uKVz)L~`hRlj!f}j{CsZ{f?qdzp$^DoSz_fOE799$_tBuA{+e06+mg>mA<}6 z`q$2#+)o(+(f(-r{W=qjE&P?e4Z#DUv7l_-|Z`m-nJC?nl;mpDSCLlig3X`{EqrBY>UG6cT#GpjaD90dwJ9)5Lj z^!zbO#@Np1$^n-*MPZx*BPV4Xpr5YBw_cBh^}fN69flM$DKt1Dh{ZQc7i}Bmxnzlw zlj%Kwo|_!!7i49B57(uZnw7tpYD*SlXWyypVQpAU|EQ&t@m-SKBQu0^T9at(x5GO# zwG>zXmUcm3TB^Dtni|kzdL_E|{4wY7;}U_!@Bsd2zi+|LE4mJ)Y=DpLJ5eBhjM;Om z`iS*eSHd#GG2KXt17ip)PP4`gpKc>2ti&U4qf}KcZS=%t->_@LJuxDJi~5fLD@saB z+JsrdeHNv-Mc&n^=hB|TQ6o)haaFT^CvB|edKisuGW5br40n!ufkP$!K_c&-P_{@< z9@B=xd|Mnbrh6T*eZK^WLul}}>iovEt1)=>(qHj90j7(=rX3fix^sr`;0@T09}38b zl|i0tV{#ypV_sB3NT*~{k(oKWGF9SPlby%1osY?7Bz}_a8zOi(_0+Rtv9=^gHwIkm z!*r|o!oG?6V{_2f6QSdLxWPEoMq{d^4SG{Ayqz)GZeBfS#$7x^|1^77^}181-0UHD z*xntFs<#BXRGVKIQ0NliW6~ILR5fsN2zsP*Wz>>ARy(LS(mO+Y4!#`JjWfcSN0bZA zFdx4`SAHxppYpXotm6#i9!D-!#+s?W3mgi$^Q#~$##d{d4~%(=ckDsyy0bj`YT=-K zpzRM&ZK}9aPq$Fc(_USKdYOTrOsLFT;v{|{*Uhu(z=aV#jwVXYZN(aB9m*LW6CrS7 zC1Ku2=U4Ecy`Foxf$q8TR!aKbG_cuCEyOk0gFVI&^sDcmY}<)9UKFx zOJ$QJ#+OZ;KY_ofJj;l2W*{Y5f2i1C@C1o%x{~x-WcH5JEwzRvM;Aoz^@_JH#fd{7 zjebONSdM<3UvKusmC}8d^>-)2l_dxl6^IBo&ywYx&vA{p1_v zKTnUc>kM1h{ygjhC!CG74C=_f5HjU&dHc6=czr%tf7Lc0$BwN-!9vUgpp01MnHO+< zM^&dt2Y1<6r@^%RmrAT*0$oL7c_9)W6mV`y;iJuF|VEP*1?qS z%D?vYpu*9UFnh};oesZP8+EFbFT`q{zs4D1HITmb^pIMdQOyt zflgFvuqsLAgU>~)L4j~zpWuN~4MuWlFScF53E31Bq65T=bHFh9CUyEJo0zl%7b}EX&9%%FiogkzJ~V7~b$u{X+cD5%rE}lH5`dHmAU`U6Y5ksKG|TVa%)K28 zJw{cjjjpxvgzeqv7o1&o7;55|{7;iVR?fdztA;3ER0fGd9-{|xk&k8`4<4qeKJy80 zJ=Sm)7`_?uV~-=|+Ts#vG`DVUV@Wb+o98#vm^iV=->6)DT3f;@5esfN2gF$1DmcuiVru8=PubhS3s^+4KP zm|FD)^4CP-k7M-JGnVT;RN?Aeo-^KZO>LlZVB2$_-)2{^uC5-gnOMh`(qGfX?`$jM zmVW~3cUEuopTLNeO`{(%IL~oSp7INkE&iN5JAJPa z#%OMK($v^&Y5;9!-1Vzn?Aa6LO-0IU>xzKT9qmB*d!PB*NAeoR17i#Ea|=xMiby$d zi_vZxQXMPw!)j!0)Mg~dIREBghI22k<|OAbFXI|(!RTBiNGt~#W*XkX|AHwyi=lkf z^?USMJMJ(K^y1U7mMQ7C*MC`Y#FqeRvTV4R)x zSe|!gcZbCG7$6P}4Q0k{hTqU*AN@r5t*n?MgcCSfP92Cy7@bxWGiPzPKh_(kQS7%^ zlLr*f?j4%vADh5`mTdp7biILn^E5K|HkI~?&%}ibNKMVayYzG!qJ}befRCHP)%k+J zi}mv4W3uWPHdg@lar3ShbAyqoe8(h9I_HBr*egIc&o|Qa&%>a6u9Q}igdahIW}Ba8 zPJyLxO3-2|ltPU4-mrOuq`^EV=5`0=)}7Yr>9z~Cj{I9*fI$dOiELCt9IjW<3awOrl$zIuDc+~g= zmJ7aOkSO2{M!+jOTM(oWc5G9wukml`MD?gvk12{jAz49y)tzAt$1IJh7wi_y{CgM!Q5_XqA3sG->vwV zar=eAy?OTQ-P|%eN;VzJDkQRlz7TNgNY|U`>Yn6%0oZJsCH0Vdoo${w*YMqb<5Mlsz})<(zBRCy9Gx+C>#|e6*Sy*g&RwS(a=Nd z`e@JDy-}{JwVqvcO`PfmJYu2Kr_2r}nn|Txl+QgBBE|6g!UaD0ZD`qZtu`S%HldSH zq|f#_rbG=x|2~Kv`_#nuL={@zF1;|@;wr$hc;h2G#;Hio=n)tQH=%WzDO4LOQ+;#kCg;`IxF^jWDL94xxy2Iy7}!gN|nP)mj$k}B?{Gsa!|TRv<&LU5>SKuaZ>}&l=H+c7|FUlI6H4z zRR622(~+6(C2ibe;KAPWXBpeDdEDj7ip>izVG|Dt=*fbVsZKhA+h%5M=$C()w<0jgna?i39 zyBA&~NFv>5D%-lK?l_5qUjoAFFN&b+8CyW?{R%>GRctqC51)yS9GPlw!mycQM3>+l zz({X>X`wa*-JC;Z;_bl9>y9Ze*@abfi}&KhdBQlzIFh{^!-uR=h2yOT^!BIK1dYr0 zO3!jG0i=Zfj?-9LIA=(?1gI9RC$%1c$S^Rxa`^>FXL$j8AB;<-j=uz0^ylI~o9Yle zD7!eOOF*oiIR+YgdZcm@#Y=L;j3-Y)FPy8lr;B4V{AhN?K6(ysr-eOvet+RUS*h+* zpsHP-hCchAG_rQ8PY zW(#3i;pC3*Be?=l^9CSiQ1e1r zPzgG-vmGyj=}0+trJtW8SSQL$Uz}gZ6iTm^|GLk9qWf4%OwtNbiQ$OifU8B*Q|!HX zu-9L47L<#CqP6y-fzxNl31|()y8f`w`saprGZBIeHoPxDwc&oOqW4aW0_+0A-h>j4mVS#{DD4;6S&BNOTb4Q3{e2yeyu2)#AyP5a`yNl8qW+1g97UBe4jP;GwR4C zA1eu)6;6amQOfCq1Zd6^M4b(R9kV_uP$%1j&D`DGols_ zwuG_#ecVJFM2Br^Hc%tplJ<;M-oJk_n&ZK2Ic9SI2vrun1B|r#8ny2)3kMP(MP_fYOQ%1XAO=JjeDX!Z>Qb+yNoy|^b-*0-(|q+h}^9dcruT@MGJ1$Hhp zF*ovVK*{78vGC5?F9zqNSDcHwo2#p#iM*X-U5IbpJ34G@E3-23x`?s|FCRedx7Mpb zUz%<>PUl8?%~`f3uZ);%G3E3n`G{5-#7>q0U&pyg69r4_!KeMaucjM^g)v2zTf_-t zn#EYV4LyYa@-vb-UI8pT)Kst42hYLLFPcuJdd<&C%%D;mULZbIVnMWnPy_SlG&N0&>FIZW4uR}am}RE) zMSs})=xfqTQ3-YPnzviH4*Fzu;Y!+n&|)636pT#7=3?P_3zd?;U2o$8u&z1lY}5_E z!c9iJIGdv76sM)uG^3;H5>%-ULZmuL-BU-~H!RTuS5UH&)Hd=H^vo@4h$2`Y2|+Tq zF0#mQb-q5AfUDq3z^5@_CA3Wsxq1$rDZ#;*vHj-{A)45m+4j;4FpJ^gPOTb=n81+j zzK-WPr_5jmoqkrqKoAwC*to5N>&aC-v!^38_UtYp-`^A4oM_v&5{d|22mR@6gH;hf z;qF@<*MKioKw4XB#xHT<9Z|F!OLi7aCsxVlpI|dG$4{}bm@3rO@TC$W(+zEYe;LZg)$yB!a@n(AZt5^q3(jA6uMidnOHx1GhN=YdVW98u%vhVHwjhDAqC*(<%WK2N zHT$>Z`tq^>w|fcTyDUQq#4;r}+3i$|z(giNFHT=LP6D`%xCAH}tDJ2oT>?I2B5Drd zo4{L+_#Qm=67Y3v9)N`}f+CYm=SvrXw~V%=t;;*64R?Gj9!Z2fPz0<|=H~kAJL;?* z$YwFe>*`|4X9ghkzFL|{ z*$P@aqJMwdCdwa8`+e_$KWGG9T1sf6b3%+H2|W&4Ya#r4n#{J!CIIaQY58?t0@T3k zNjO@_C7?rIne2j$AF;v3YkwPa2_T=qS=|WII0Rj>hmZf|`FB?U?Pks$rJi{mt-{~r zxH#wdTIo!EjsdSyk!mI96-R!iXJx2|b-c|TJu^7g#5N(}Awas<7{o_`y|rN-jp~a1 z!}T~r$u0vj${ykU)KokzpSccF>O34H`y`>4{9Tp!IKJvY{_{milOrMw&KAUE-*^KZ zmR8(cV7xiFAnKq$qy$Wi?aLx(AGrabUwH)}V^-j{68`{|3K9$mi|=|0Zlp$J))Hs!+n zMBNucSsMov`={vz1ihh&_yCRt<6gtgFqMS(P^8JvT|_!z9H_!M%cC1zaj;L904Ml# z6>@Lq3Q~xC-Hd9)tJkqXR9o^*WuYsrnof^b%jekcN3WX!mJJ{;K8{0kYAjF~S^wOq zdd5iA2vLDc@>q5aCB&HOP0<=1iDqJGub%7GqwVhY^3M!n;;t(%-tc3;0cH=jcM6JV zOMUbX^^BthrQZP5JPZUSk2fo-)xh2?&+ll=53wo4WVfj=Yl)z$k+o8Rn}hC;;Fz;~(`oLQO!ia5-F@tdm1wu$YfUBE zu-|7#)2P`iITV}eAO&4D7}b1p?mQQpubNqgh@Jx>_E>u~Plx0b^LB=S_D=4WI)tFt{%Z2wQtxaU@?B{Y%#1ruChNU(`Li z3(dQ~2O6Fm5ioj`LDCR@b5bl=4RfWjK%6)Wd=>asfy(pA^w<-FR%G>Hmd{*C%dEg+8+u24&V=adI<;~ zaoN2v4dsULyrY4yS;+K5!oUNrBEXm=I`=tT~zR@Cy5W zF|As3)`K_%=ivz`m$HvIPc)}dZa8}sP63Ve`$5!_(lsF4`(~~zST{XN__u|lRNcC7 zIvd8b+L3j83p6`gC7EQ4hoWiL2KEQ`Uewk892KyxY^;pUOrH1T#Yo3d{7Su{NP5GM zR1Y{_E_|b1N6)^l{pi7<)Bh$``taN1wPOE4nW@Ua>*taXA`DIE0?^P-->sMIz0(}` zxVUDvK>efhNPk9iQr@%p-(muRG~r8v{H^E#3O(iqReOdLP&Sli-QP7#%v7j#TD-t$ zL)xp}d;Azf$?u-|UQ<4pB5W72gfrtVmZ;wv^ZA^%&^OhoH97pS)(B28Et^VhL-0~^ zosnYXOX!of=U*f-owe8ZuL7zSqtb&_*bR|qbAoE!s)zod zw$roSp4|?cs>X`sd1TO`PKQ>~W;QXed~LcAjiJY5$2}znswHhX22E|}?U1*H55K8( zzb7&HsmWPEK~_jXI!M4OC@S2)LX=5CqEAb$ufj|Fql$v4!kI+OBwSy3s5@|dqa1j} zx3gU&Tb>d9y|hrJlcLr+Y65shoJ?28<}D=Ci@y1$M31w6=!B*jj^(Lp7h)#t@DIHu zj09d^7H#F=uNo;a;eQp&=5IX!KA~dEU6oZu&6_86=&7=j~;{|EG*det#6NQgM?jvD0ejlIhg&*!bo;`}*AAj@~ z$G}wVQ!^IUC+uqCRL8fiXc%}w~InZW}0iS@|gYLfnym=o& z&_A^b2?mJ}jz-EO1NVGrd_tp$?%3MYp37x*1bABI5;Mpy%N3Yjdr{#^Rq8NN3QuaZ>RsU!Lq=d9S`U$fmkb$8D z1Gddt0x8=^gE$Pud+TH&8lS{qMZjV-i{Nie-;r+mh|>sCCMV~=L2|0B zv89>n50{I?gi99XFz^O}mi_VX&&h)NrFp^ezYiQl1my$4n$__>qhut9nOm8%EE*B1 zO2!Vj#)zOQxx!Y0(@mbzS1T)!3>hA_y{vsLQBLC4V)S`rJRCAK0NLe>@PGs~K%T+} z77}3EAp^r>q~6Cv%AuK=S7>Xp&(h^gl+>aR;$258-K1D(9E`uz_)snmy=tsvRmr-X z`eQ$mzd1I4Q-%KAz2tAQk2YcdSK&WNM?%`d;uOMvvRw&3r6~U5R|{!BqWE(^1;RaH z0$J)0YU96YLw|Cd|CQ7KNILq1Ec>sg|0w709RHoop9I=}z4$+5^XK*;|9UDaN%0p! zOGsN(g5ocx@jo*92VLsFL1U75_~_p>CQy`$J7BOn{ode0^61_CDZ1-{*?LGKwZ=%ql5n5N;oK(!XeX z^aGs#h2;CgY*gY$w^-bM_Q5*v18ea7BoE2xBAZ+uu@S)bOA4-NYt_=b?*L}vuSr~% z`B~rXdMYmubF}DNEXk=RN!~y3dH;lW{bvB({|6}qVR?e3nd2Mj38p((fw6YtBaR2z zbjnb#k-Y)2#dAxR8WT)nlGln;VZ9h%#EF9l9BZ+#94!lR$MRe4hqoiHGJ1Tuju*;BOo0@qm{@#eV7>T=d;H(dT#yln&{59e?>Zi+O zq;@zqb7J+=G_?+VwER4U0Fm+;x|b3lnU-VWreN0-MU6`a9Gv%G?~K`yR%&>EG@1-c zw63WRK)p0^F{6G-!{@RKkUd@#Bg*&4z~)}aEscs3yU35Wzpm@nIsP_CO8J|8--o0; zG+H!O^Quxgn^^r=@nVSmPVtUDsXY@WyDD6w^Ubz}dfaxdJ3a+k+;t$Tzy(H6fv$Kc&7=B-^}SV)ny5y3;&<9z1zC%W#Jg5E~lBW=9;kA-z))hP!)XWUX%W zur4pVI?TA;C&|ers+Xhk8rNGuY$uE6Rf*b0p`S40F}8q0->+5=796P9SUT=~(qwsR zuu8?lVzs;$Ofjuj@}a_1Vs*7=OOwYcHc9>G&gy9o(lVyY=jrX0F31sMKfsZdrh|Xt zO$(t)qCW~b%*uz9@F7Fanr$&pCm(e_8hAkk(24{xN;}5bmoA*fG_?ORo?Qs{HBvYB zU_O19`X2fat$HPoByUIzaa$23_ju2ssV=VVt89YmjhSD!>aMo<@Z}-cDG%a26j)dO zLAm+M+wxB#`rp_U|EGT-f?Hn#fYMDD5FvbIbTBBfkT*e1-*=8ojGiomq_+Q|d+sic=`fELeKMOi z)X_drc$uTK-_{*ne5dQtW_70+5n=;GFE*#Ppk3q4gxwkA8adnw;5vUcoqUh%UM!{6o&SxCx z`fRwoK_2C(>MB^oJ!<=Qd@lJKcbrm0=e)JAce-$^C8y@qQRt1sck;KR_nC8~4<+^$ zy;wMZv%TKGYZ*qGPS)F@?5@B#J`bvQ4NGj4PI+D_`HK(~$P{l5WAB&zEP7Y}K^A*_ z=zQ?~X`Io>>+%Naoev+is~R0?L)EH{C-)dFRKG69yqhhEmb4;fxU;;(PItHv;hh|c zO+FhR+w){*a1!KS9hrb6Y0b9ROE3fr$Ib=}UQNhtYob^%yr`THhZY?}**^^Fy4E}^n{|#Ghmn}Qp|w95g095UtJw7vU32M zQ_wBGO6|ATx$#wlda%X%X5Z$>C$+LNHRt{8xx|^qT;%B`fDz@6Q{s<)Z#a~p@l{QC z*yD2+-F%5va%CbkHxivql0I9*5;)$d(2^`O&52VJF&#%)3(BYZt_#$!haC zftI00gFU}kp0cWW-mfmM&lhTE!4|WlW?7Y#D+LQu460;Ycc0G;ea%I6cDVnf0b*l& zmDVg|rdZx}GfMHW(iqL0UnfN4zBvTUAdOQOwrp?PJ2@NV9HyqH9r^>GK(1g zcKEB9-7JaR+^wrpi^=G)uF^fV`h#vhP$63$(UlrkogrNm5L%Tr66QMZXN z8_6=-nY_3jj6IRaO&;zk^Q(<1v`TH{t>HxNjmZ?Tp46NPna9G1{!i!a|DZETB9hu=51Uqf0(S(Ei!zpOHYJ$Tg@j#`Ov~9d$Be*S z8{>xeN)diHem;^T#)RmQ7)NF0U9pqE1$WrPTocMRx=CKZR3@(|j-!$0kX9 zIq7$IM0uA#oVMS2LxJ$Rw>!%K`Az(oGLfP)nEc0Hp;_*6sz%1`by6dA1+`R z`SiHIT*{PvowsDrT|4s|ve0~Abwvzm*}QMnWAvGQtqa^X`&YMzwcUhbx0OZF$~89= zFT|VN`{G^%Hq((~*s8~>ue!$`(U ze+)RRr-gIyJBey!o5c3+6uB3e8Jaw|Nh~!nOt@t%(!*tF$;l$c!S;n`Jox@|^uRFr ztNKB4`|<|0ad&}KOe;&F6Wmta8)iu<^7)g7Y#88Nlh_c)H&lKhYBs z?Oht-{C4{HQlfKPsoa?+sQ|i$=}dyqDRGB(i6=fum9;M;*?+2g#`8DHONy+blr{ZX zC}S09UtwilyB64;g=|#`P=y}{TuYy)^A33WRDp}HMk|E4tC~52gYjOlv~NAp_uLSH z`s)ItW%i{`eP#EAWB6N4L}JTBl&^KF0ah!3p~+mGNf&9JiLul3&jVgN3VfE7IOet{ z_8q5ZR+FK^E;-&(B#8vTwXs@`kl|VIk9q@F@znF@skans=gEReh?ps2?>a%RU*X6B z*w_Q9fEpN3=-BI&bDEap5vQi=M3L##U&2=U5rE$x>Z8a>RyjzD0RDox$Par*c1L-x ztCe-pbD3I9g*+)?H~Vy>4N1DL`koGWy!~T^rcM`NSg(@aj%!hWl;AwXy4>@tt24FQ zYgPl2I!N5TIG)_%c)udT1R**7-8Mv|?0LP!>f?t76!f;wh~|UEw;|%WM)uQYaOuFj zm!PkdaZyf?_ym&Rt8Qcp09qo%99DWucl2mu_vlg4k7B`h#~Ti`Qm(%^*=+FNqMCZQ zsQ|` zx({S=k%hF{@2*&|YyU!9!|lA5DSM(ut4)i#%n%uM9kyUsbmT(P%L{4N3d3eUnA z*;5CvoZ@cUiaCUwdBw7!bmJ-1>dQLiUx527GPOcSZN-RUWXa#0Wu4Z>r%9-26?0yD zyK8-}KF|vMEn<-C8e~UOo%Cebc5KIMW72hKP@*@@xBjF`orG*>iklV&H0>KOI(&Km@d zo%;cAChMX4MkJ!`jmh*)KJD|UsSP?e8rT)CPdDtXTB>J3UWT=M7SSLLJ{&d(2nY)3 zGYAMVzD<7W6H~*;b7BWr2OO=|a(w8q205BDlJ{)PRR?|^)<3P9T}h|^a93mU^_%JP z#Vp<_<(!Mv6rai_3jOKc#_zBsOq}t|OdaC=JV(loCW7?6fGbCWzG|XtoTel9|yYTK!m#nt9!Uq*1nax* zP;sR&LS!q?x`K6yVPR@uE1^3#$N)F6IquJvf(9?V$-b{BcqE5C3l*1|)n2mjFG2jb!cyUAG99wOw+F zDC*54;FpWS!*?M{Sy&DIxDze(QSy&?6V4b}Ravd7TdE{dZfP1)%M^eEM5x&fbL=xG z0s)2$`@|eQ(K<)dQiPl&izu2NKQa6~z@_X9Un9RpU9d~UZ3B2^6D;Wjkwf)5)4Ygp zF{29PFdFfs``H+fml1xhY_orLOvy=2OW%U^10y@h0TW>JumZE1LKB)iF=bfXn4PryLql0s`Sct@4W|vO8QY*f^>TCl&WEct5;>J>-hcRLd*COc^3Q}lSGO0 zkM#v|&ly(lIhVVkI?*y@alG7cMBEKCo2w!#XCVsSjH_^thC?}u(@r9kU9C9gSAt~E ztg9CH5}TgDy^4zZ;>2(-bnY?uBJ*hPBm6qf4`as4r!-g(8$PkaRL*rZMeikjmJLooa3aC1yd+!@sPOw&p{n#u*%ma?+|}1^Ji~DE8@oKj z+sjGqFAN9s^F+H);frh~5-4xj_iVZQ$xW&(#ol}wN3pv+JyJ-+w1MGjE=M=iS+i?K7Zh( zt0#+k_@<4LEjtpBw*H)}@{5@$-z>lNvi3LPY^(c1tsaM~!CYeya3Cn$ zrPxx{S?JX$>gVT|B7JKo>z`JVG|3;#T2Yr1>G!rLS0*1zzbJFyte?Bp%lWI|g}%M1 zMVmvNX@Z`5i~?z@rx+0h7LT(J!-(Z&D^;2P>UIx{v$Q-O(9$7tqgZBZxXMeEE;8X& zEg+_zCclF8<1cnu#Um1Vlz2H>6TNyn>bmbLa0c=M>M#Qt9&|;nmi8-LsS!6vpMH4L z@^T24=tt2!FoIw>q9w8r`k)?=r)uf!SSg-PM7zN*4{;S$>Uy29qJbT}s$8+;?7yX^ zDwblmIQnj0XS$u&n`WQ&{nX=-J0GpAZb-@5kqkkEp#)l<)~qQgxp_+8tqwBAis^(z zhst=&2TL>kCtCD>dltQqfI7S2b&^Dg;z~OZu;M{?g&UUuhv`dz_Yxrxl|#__?Ev_( z3j9tdo<#i;&^AbPQRsLv1H)Y<;H4tIk(}#KoL2#{R0RIqZ3VL9qLLFA5Sqyx&mAm! zq@K4Y0I9Q0mig?NC=p<*auAqaUPXl0-ET7IG13W9ndZRY3Ra77+#W) z1w2B|8MN0<06Q@gve#%!uY{kV2$lInC^{FVVXSff2Y9bz9e^Lf@D$}>t0q_cze-RzU{$NAK(G_ zzL}eg(fVKK7Sex*_`YTL_MT`Lx6}rLcAgUyNb4A<;|Bm=*eZMI^afE^P?v;O9|G7n ze!-!)y61>ii{A5Je?6@!@JvcenNAS)Q9)RkoS}YZ*6nRvp88b+e<*YespbX5nwZfg zD$r+Qv6k1$TF<2zeR3YY&xNa~$X-2D2BGQfQc6bQ4;5|v0tEIB80--`p;CO}30q{% z&t;@QLdFMdTUavc#e+~%eQRXP~b(Iw{kcR^*sW z@J2M`1lQ^y`#pQ|CjD2~rXsy>oK++kPrl;oH~yIvM=0UFb%zf?v$cTJ+~Ca5MFF-o z{R5EPJsyDl%qA?JzFvX!qqGG0o%$Tyl8*|anerbUUANjMJno;|D2vXjQRut5-MdRF zfMi0h`dErz@2~j}EutkYCtW=E4#3!;74Ovy=|4?`1s9xQDJJ4=&Jlq6vXZi}JXIO^ zAF$I*_`ihE{4Z{D^bEqu{7Q}obJ#LVR|0JRFMwLOM9bxQx8U3Bu3J0_(m6Oo6wx$C zy7e4!Nd~S5e`)=I-IfT$G5q~8^}Z?)x)th!d5_7YYI63wM1QczTSv% z>`E1;{>NwxE!BB#dlpAS;(R<=rNhSlWav1`FM!c+Zj5k*%9oZhkY1qc-d3)-tNrpd zZlHjEZuawvc~B;z5vnBhWrVp6#zA<-yL_ zxR%wAT<(uIc&5P;BRLuS!+Qv_D$to7Vo~{Wkgi9_!l82D=*c&bN%F_a!l2!uedtdG)P<%w)isI>@U?cM9J_+1ZB`uQiA32Hz&$K|k@v zMS=!QRr+Ff<)Q<6XblKuWwXC1PMBUhWxv1d`wq{P&gh~=R%8`TmWN#j*opw$Vqtlf z542Xs#x^LNim@+j%D1=ILe4iQqFTW52Z}7@cBa5!C%~kV6F~IDG1~t_V_=_ql9e;t zdMz=%f>%6yRp%x}+Yli|Us?bD1Cr37CkX(d$S91GS2-lTDTZ;@^?ok;xTyw`AL3jK zYtYNnW@H7!vjGCCgd&zOejw zWipFpa^a1ffew@xY_ZNFzMhca65#^o4jK^}!iSSt-9dDb&g&SA*Y*DZHB(76gms04H`-uF;BU+{vLhb_+VrutA#^X$+U5e0B(-W7Mv3AM(hO26=ciT zKj_I>q|;j$$ooTT`JBE5^6xd1@2R}&*=;kAfUbj5u-A0y&RL~r{+N2sfhBvU(hK}B z05s6OudSKM{*-eUZ09=hj4^n%rU_n-L92*(n_xu%%$RTCSiE8l=`j&|oh*o^lGsoN?`N1z?8_ab2BL?4;#O)VTaXI-`;s z!07^*V`{g}HAbsxwyKEJUN66ez;3NBu(r`(-^)A^^3H2d1-?2)&8y+_pJ_LiVb+%c zSdT6}D~}Bx#!`C0$pl*?l+C&k-x-Lnszg!igt!+3N)(XeG&{$^RxkfQSL*)>jRbcX zKqyL9=_?8K*@;E=3>febC!cpyFhlolD7)}%+4l}405cEB37Q4zr=E#kX?x8Si_0t= zPCHdOhYa&XiJL|CG2b4KUSL@r&Ko#XrMGGU#YK6ZKl$3fCcBk$g#H7luL||3@}z4@ zEQSsar|n%2NgV`?86$C5H>!wvBJW!tG_NJtVx>usQqaMQQt0D}|8trX7P@CvNVa2- zM!qaT`;o%B*6lM^UG&yVgVixnP`mv$FiaSuIJ}*tTG!@@V)&80Vh5EQinr$5ye_v|vh8#6}?lYZZ zP274U>n)vwmUuF=Ede;G7cf94l`@C~8ud5A#)L}&`DZNeUt6}-)v8DX{s7t|PLi+8 zv-b_z$z2IXmn-Q&EO9#J>W!+%@{4D^$4LA{$$PJ#HP=@PRMh;CW*o4DD7?_Ei~e;H zcl)Jwvx{cPF$|ZTdF1_mK;p`zt{s7S8Q^hu;=||1wVV2&>k#Zwrn_dStE*7no3Rc0 zltv(Vl6wPIHte5%XU$86HX=M`UkI9Vw&K7bxBiNYw7HrO@8JW3a6ViKL*?r^n3xYoj8X}fBzK?N{g@DP>Mo~#vRxFo%UXW@Jsj2 z2^0L?WN7||uHMo*D0z0dCzhEgj35?)is^i)5b%XJi<7SpLwwWqnyxm7)&B}Yru`KE zBj{WLjX$YKUy;85$*(;H_e1!e=Um+fVrFG0S>oLHU6(P|l)j6=r3EAFR01#2q%nl3 zpdr8VN31V^e5-9SW-`5Dj=Y#Rg|?#h=7b&k*Rz6mlha(iVBmW|=Nr}ZhHZJsY^Cq% zuj>P6VkGI^kh>$`2MJQb#^eP~Sz9Yda{iepR#heqqi&UV5&x@QHD|lRb^s=HOuFOp zZ$!PVqLx&fL7k3aKbP80cC)G;D(=J+s(8r06R7j%^|t2xQL62r-u_F&YYze*ylisgCbA zZ*DKj@85T^cZ+;$czLFp(UA?$1nwZ=3UN@XM%mcEKmDBJzVOFy<4*vH&Znz8c9o^O zi=YZ7f{rv6$A+dx?~N4L$c{xEsPg7RJku{#4o|Oi~frGx;i)}Zvaj!XyiPGAjnQ?#8s~Zq2 z1I;S8$)>ubf35y$ImZ|6Ar-5ey)w8XnEb9^Z(g()jeP7n)OU(#?$ZGI7p#}&tK{mXcx|s zNB2Eg#QLoeWe<|*aJjKB1nJDOQ*)74p{G5I9;6zDP2u&&4tHXMvxv=V4{&<61p0g1 z&ElaEfEpN-5fD6ZKA7qDjN^lNwJMLACaF_kUrO>10F(h1K8yg^r$oIlmf8@mDCO*k zi65#rhfNSvcJ#Kjn`9{fu-4bfgTzbvYI5JZ1F?MxN_CGH8^sxFl4svM8XAAe|KJ^d zCLt2*^KHJ%#Z>+Ro!GXwlAGZZAxKb&d{v@gS9q7e!#OjdNnFnW+c02psAKt^5Q9DtetqvtISacm8=(?y9rMZ^ISR6uv z7^32XjkRZuU?scA8;h+=c21-kct0)_JK1DE)@()#49msPg|#3#kYahhzc{_Qf5Y@H zrj%6D0Y|WUjTz9NP50+=B6O8QK%O^xe|1GFh<+}0_%qcHx@-Vq0)U~#IdxQqoaj&-82huicdGT{R!N{Awd8qvT~P8HM8zKT#{+nXJ<6R{DY3 ztV8mF4qQ}D`!WJuGOLn~?Kw9l@!)>T&#R@CGW&At)i%GsOIJ0I9pst>Dusj%&k45| zemX`@p2$CaWnhL7ASuXSeA<;|0%q`)fGDl{$UX3#xhOX3xrqr7uuxOhL;&_-F&yZ& zouu-)^Y(YiGk^KQ9UEG1rJIR}zK>Z)QJ_<`b43P@y1TCAzQFW9gp^cQ2?nl)G*G_N4ESV#0z&+JGSE!8{9ZJ^>v=rjUbt> zxhW7-*lsJ`0&f*u^m_3C7GVn5!07hdVnT>oJmb3&FD`-N_UXk;A2qrkI|pE_t`QIB zo;w9iSfq~ZrF`%}?je&C%ti6<+hODQaydUvn%z-_;$X@DM05O9m01-ccVC+5<$B$1 zT(qA?q8$`v2^QD8WHk;reDYuF`VksCiFNT8OV zrr(M)`H3jvPN3r~kKD^udQ|+Dr^h8q`E8&r;9 zQ#vxUwzB%lT|#d_W3WWaHV11}U-cyC+^C58ZdFmv&rRx+9AWFiiSMPe8wOW@K_+E> zD~173(}O8>24F&%@$aL#>pkQTJYqpf^4e8LBxagS0LBATp-E+Y!0o)R(f#m(y6^qv z38LKnJ+XWq*Qf?QcLSAJHuz&d_S zS*dX`l{hCEG6R^8t>7vt_CEMEIfvEqM5^ga0`)1XfjD=8{34|d;?O4-;Ts8T1JBrj z8sbWm^z#DOwuA-Q*(C)}Gwt^*L$T{sj}!{VPH@Ag5|lk8-^ned(LSi?NKRsT1N{E` zoba!`(*MCLD$W^a}25^jOfMpQs^Ma`j}04mqW z9D)~4D{O7gvf(uI5U$?fq?#^()o2Q)2p2JOZ(-{0HA$Hu^k(*${w*MX?p2Gdr=4+U z0`)+jQNyHWq5Wv=^QPW_;mT{XAxBxulh_t8%pV<^vHk3b2cYC*%<5xracj0VOH6b?4XhFWkw}wDnY;AVY}& zFv$PLYCg;5Z*@zt@-<@0omO&)cDTrzniYfOoGM&yM?z(ZN8+p^!>| zma%yN3A(E`dPxPNxj=dhAL+_ZzYgSsiJBNqGq6Uv{2pRS@<7a;H(5+13amT2L*=aw8jo!+xUV+A$x; z61@QszC1xkKX8J z!kI$0LLwdS@pBC3s@N*nY10=NaX1npo#}g`l2o*LhGmqg;ezJkkdKYt@!B&$r0bjJ z={07n5RvmLW`*`2Qy^k4{RzZzYN-$U~s0DWVjQA9S}WlG;Bil^0A!Wjjz^FFlmPg-2^KFpsl&;*4LoXzTS(jk$~ z1cJ)U#iG?~NppJgh6+h9N-Jkds_(LPU?KF^4YTuwWy|_|Kr2U58$-scg|v!Ocm9=t za6YQ~`TBmzgMFwDq`c44eEwjj(Q)Gykyy~l(9|XcgEy^zek13cqh9XV42~iRP zosf0{sFfk<02>%PrskJ2wos|9pQ62N^dW-D@-VkI&g;w?{^T@W1T zUTDau8XqoFAnLXx`9N`OPudwD-YQ;|TolA`DgRtnJ>}1YU^)8_K&GXuLxCj&#D_Ak zxz#UeoG&7UbKLyOZ4H;~|6#fTY1yJ&cl`OKqh=U&y&)BAKy_+H{#*hpQXfL!)X_l{ z7fEJZ@xUOx+>oz>U{0A~pbXrWAQ*}e7548(Y5--lKO#&}wfEV>n&2PKcROGTs_=Re z*WL1}ascFW5uVdTgYU$u`^~1PDVPi^!dJ){W1^pQz93F77(_vjNNx7xFhISDB8H3-oC|EOz?v32HPXl+3xek(Z=TTQq7cl z+{l1?;78=B2tXG@OTH9&!dRJZh3duHfkyASGFPo%T!{GEGyG{*_ImU8nWN(gKl{N$=-L-^OL2P*K}I^ ztQ+R`Gzn(Jk5Dn8Au*I(_{08As`}3fhdTAq6sk$-s-w;H%F|#aKO}2-4(OK`L5762 zQ~ohweKK`2anuyR8Q@Nk`bq*UHnvp675;O~D>4RBG zF~*8}U`fm%ii!$so>3$!Yy09ggq&htIGcxlZ^A6ZMS=9ncBg)Q5u(Z2<~2^CU6(@$ z4H%Xo@UvJ_F~@rDe2arciYkLSmNO8U{OJ$*Qv{%ip)FsUY>c7Uj#k5pah#mV@8=uV z^{ZztT4R&@;=+}|@+3@H%AGK{8iZ8|(EgX?T?9shX;)>uV}TW-u=;WX1(|j!@_Vfs z)|%1c8ubAy&0j2%kdkVmnJiCocShEJDT1Jqh4;V?d=41D#O1h!X~<(96LX;?qO^H zAnoYJxm98JGWZYRcH;32P0L-UpSMQso;d03q>}aC@%Gkg?5Zm$^(7>6f?NL85q^>T zm)$;bXC)h5R|kb~eQcBM(bPcTe`h+lVC2~2d)t2icMBY^`1Nq(Hk){&90j&SPx$et zTIos2Q}sphd7Cz94hB+XZ9RA;riFSSp&n%NX@py&aB<>AzDRp`#054!z0`tq6gNM@ z2W6u7shj)tS2Q&SqjHFuUZF8y4!@^iIv~PYKo(Xv)38vbt(f76nPKG6lP3?o6O;tjnrMxBGM2zE-!agV|2M zhFTe@n2f|EvxcDb2A9HK$l*up)c~ISa=LxD0A%Zx^NIC?Qk3i+IZa|ZH?;+0T#wJr zeGVV$PV#5L)G0m5-&ZFPn-&!hhCIkRwHVKFS!2A-s7rs(BA36))#v}p`dTkyVkTC zF@jPKW6VFI4?S4D1YyPl&5RyWgWmB(MG;xnaM}`Pp2nqBGiukR{#U=|T$H@aZ>nEX zl*{!M{aS*?SXFVDiIdr)GTe7q3k8j|nL zzIW}g%hizirRFo-8%-IK9=U_)4p^v78Npz69A8+|kGkR5DShQsN zKbhhv)TDk@0(9?7bnjBWOd~}Z5;w&RLX>?*Hqi98eF(Q&)acl;GhMiq#r%#CNCQIC zzujL-I8?#?!2f)P6Zj{s2>n|X)_6a*3<^vd%FY`tdJE#<>)Xqmt@avmD**I?fc;wpVILrwh$j;dqERwu1qx$_8)kb9>6akVP zf#>GU^00uk@Xv|Ez4X#nHwJ5YzE;NU{)ULEncx+2088ug?o_HR3Lj@x@8uHsK7**Sd9YG|PUsvGu&2A1{yxi@Z|P!R z9#<^KGFX!@BMOcdE(PI_7!18UWc4KzJtbIwU29Ci)h9Wu2Ny(~G$j~(E{r$~go-$) z11$c6J#;o+Bej|p?sa}r)7j#i%8hcf`nZ>f;z~?<)SPNXiG z>FDBz58FA=q7I22!TVA5EVPQ(e6J|H>%SQzuX&fs`2HFdQyXJk5&++SH2_fg2N3LM zLeM4+D&3IcO0ZMD7GdRPpQ1xj<7a-Saly3+>wA_x#d`ttn(7&X`1{B%{WL0 z*LFRmDW1~-vGSLiIRzl^_;%Bz0Ji~^)1229up4h(x#j^?lP{t#D zoE<}t?s>Id z@ps})#LVX7_CEkenZu*SzSszHL}*>E)Q&P7G-OpBvc!==ZXaH$9d(w@b3^O472`Z8 z%XioO)gIjq2>PUD6me&Ob(sBOJ8Ci5+3{WawCiDI2Gl%7dkn;(oRxM&Fz5N(sbuBr(*D$K=-eB*xk2Hn2I8|cFGHQKHQW9Ebh4xYqKC2VnXFrK_stlk5Lpn zQ8;Y}@L&-GBGs#dc(biYS0W;Bmk~PdWzY)ieXXcuckBdDe>t(nr2O@moBlMCc+Sq> zNRRTeqC$%@(366qr@Y~1wE5_jmn_Pg-d7!k z=(z^+y1dUCCFwJMy$}Yt=uSoZv-R1QNfmfHstYGPJ`k2W7d{3JlhP`XwiOSX3n!d0 z7X$miD7>&4Gx>0Eg(KueG|ncaNuc)Y=8AA(%&#V%{?2bPKiGcZ1W`w$_E5WtCIiTS z+foskH_f|=$(|E(vAqVT*4EAj_pPpW6jr1V;k+LFs`xAF2?&O3Hf_npBR=j!xj^4F6ljD!PpKN~M-oOP-`=sV7ZK?)Aev9*lvZHE2Zs*S;5INYzo-)jVCy zE%lly*UH}dD;6#LQcOmdi6kQc6_)H4>=eXg`?wu-v&y0_|IgE;k%ZXD+H zby)^J1hARKs0&$eiIn#4T2W6UHN4gD?fhry`RZlOZKq;a=U=j@2@)H5&0;bb z09SY5HSwZ&+&_RL1~7jKJYzP~dQXGN-V1rF0cP@;qUM`WlWkha%NdivKQ~^=4jJ5O-1d zws_M!)#_c>0i}Povo@rk(}ET8!Ag-g?AUP4akf2y6XW{Ulpj%DoGrlKHOg_9cdq;G z((h-VI{AEr%N1RfUvjE9Jl8;53oLATuQh#q;w?WC4)i;3cRGzo4R)(N@5GN`I}&+9 zpHlL!y0`{v|37a>?%NSuMP(zV?pS{IoVyVa`r5w?VgKsoMnIa>UesHd$wY$1j=dmG zBi;Q6N(?u?=^3_SyP%7&X=t7(Q(HefSpx_T6M;MU#GfE>gmRaQTG_6#eL7sh*feiq zU9H5nwC@YaG&Xme!iO`YBJp(be7EOa05mn1l^^N$8|a4fzYl;3!+l5rah^>Qpo3sO z;@G%Zx{Gn_PpSxw-=kg%D0w7cF=gyOoDuZ<%2#>cSDn2XKYk)WS1v+>MYTv^B=&Dm z1^=Z@(Q4FTQ({ni$(!8BdNW0)faanRdBaW#kfWbhi4;Zw^m;FDi(e)n3BbQ;G;^^# zchJ-oy#q;0*dKJpQBBMi+RbJ{pd1@qp=y6mAEBlT!Ia{ zWuC?I5ZcbyrzsDcNZOUbZXvaA=2j(-p@$NLjIa-B7dOIRX;;o18jF>1A`buyi3UBA z0(5*8awYjD+E*HC6&FcVN7_L*-xloz{jpc}MC|!M6_*g#Sh3@UJWL zfB)*zD7vdIwof_cNhfH)Tf1p-=Tl?)YeboW9yvMu((8^@R&@Mv(1e#)vTDfqu1y&X zP>01L^6mL8zJrElIf?oEzEiScd!F0(K=th$d%Ldt>y~%9pAreQo?1%3#-JL!*P;}I z5?1f8o-{tEozYIg>F@Qz3?^D1n4Eu_j8tbt`woRt(Yu{9x%zdD%^WZ1G%SoZ3k-TY z;v`KN*XbFmxPNh+;D`?JCQR5+wL0?Xor(&;^5;JKSPexpjJT&qI45-c*-~rv!Xuqo z`mnETD(z>8#@Tm(|5}J@)OymP3Pr}d3~}s%HvOC^X$ID@ZPRaXFTdHA$rdkyZW#D; z{sDYY^m%KA(KEl3!Qx(5SySgC)xO{6e95-vW<@_RGFRYm^UK%%CT3#npAP%uvU@~N$ixN6r0 z%%zFmvJ2zmgarmMn4jOUm)sa?YugrnbMu;l=!m^YMXaJ8&A292YI)8cod>Pq_X0>> z@EFqWXG*AmXYjYxiNFNZ+GnTO$?N+I{;gr;jTO`(;#@R$AfYHniD5@3_ty}@PWg0C zi&zYsn)*&dbzCOgYU(#DFkBMRpd*%{t+#!0`plYjQ(V!yL|dL-kauzj9?91b^w+E5 zA;1Bc|H7XQ)_BR+E^@eqHbERo2HNXZ#zWjB(1s(l*hoW2ocN<)^l|K`EBD|Xy$;hU z>E`t9`j(Z21IM~A@vNgxGZj&J2BA&`yR-{nVHm~xKkPm(yMR5es(@9hS6F$N|IhL; zWlKp#IzN!Oc7jKr)E>^UY!)NRlaHjiq2+yzyiQ9Sa|;*Pg?09MML)L8P@dvP&}fWw z*tSW^coae%%M@Z1A;78-Am@t;y63Ux6UqJ%u}tq8p3bxjdJhXMH93fH{@#5kl#8sq z#U_3@rPF}67$f5Ww=OU1IZx7LKLVs_5;}wp$P=O6>T6ZM`PfYN%OfM+pTUJ}y@~X?;>uG$BMz0B5|7E|Gq;WqyRS8gc4D~i!Uo#NT^Bnvf z4-hx}CL%L*xY`UhB}R;cqjt|lv3tRzA1JDFL*1A?c)F^>G5*M+Gsx3G>(cdc?OI$5 zkpv5-|KorMHQv}H^zlnyT=(v5pr#pI>NM373bAD3$^yRtj&HLBLArh&f$PdnG>BeJ z94)JvcejTCcVhhiRrT5bEUqG`Wi0#uJE*F(QXMGr#_T^xIu(3(04;oG^9(dXgZ8eakxA&ZxA{aR z=$M$r|6azeCyK|Zfi-KXKoY{TIB}~*F(n)jVelbDOQT}soPkLCAmNhB!AxNDWs1e0c`J}fwZ5$^X zB`;FI;j2u(G|kbPs|H=AsX7C?wn2q&!<{s~eC=0j>29#gAs7eVaJuR=qm;KJhx2u2 z!sz7jYevW@1?}5H1!-Eb$P@c=P+rKk1JJZR6_f(66B|ijSoeTtQJht9QV75SowlZ4S%@fe3Eo{T# zD_4KuP14*@AbHaDka>_G$H?Wvk8K?W+F3TWM66s@nYKJzr9UVsOx!oLv#++YN-?o$4N3WE3 zf*$AMcXzfIer>I)8llj@_tX&*qo!uQ~mnuhtI!_V)uhidXM_> zN6amNallX2S8_+N%CWwr-VfUb{%zUbpo$G$4YBD%`{u^uk09(4{zDLLB|xkGsww8q z2;0+9&i>0_uQlJu8Ap5toPb;-&9=(#HNoh?9Zot2_XK1X2|Q~m{B}_3aXd8Px$loI z)aBu<+WtE*Ia@N}L{OJuRirL1X2?tXzILk`M$I|z{>9mV=Dl$J&SKzR*?ZD%%NAm| z&W{-sNf;m)JX{-aj^m0|k`U%V^Gq>nyJD!$h2~M$&EZh`=%G{+BRA=|qiXJsTf||j zvow$>7zYaFVsQsVi+_l?P$1#06rCa)`CS9Myy%*Y2M3>c{ecvlZfN6ih!;+_p9)9R zxx!Ox$or?Rg0?lb?g`gWNqJ%0@`NKta+mPr$&MXIjHP3bdwICoJgr2n`F9!muSo>o z{^~h1b4lGKNO7qkkFLeRjg4F(4-z#!RfqZl3qcS5bP%)VmNeqpg5f+P>NHHJdkTL?_5JL>xzaTxT++i>pp1b07m_P7V0e%vatyVjYnZEaZR~3T-{S z7oQ?{;~$++y4)kG(%f$(C;c^KV2Huq3S(ruSw0lFeRp0t-dedBVO-zXh)c5;sioj$ zku>6EdPDjtA25tXa!5=~@!1GhREMx_dkXX9i9g4p)P^7aX+)RkfWHX2E_WBt6nhiudQR?6oannY!qlX*%3)AJT>B?*(JUvAVe zsPNTiM=OlFZqdQF4fy9PUz?t-_UG{LmiHe&-dMx|*8^B`HCPT9+0p^YkU{^C^{rRM zD{gI|NE=OWhgj2eQ1a(w1#Qb723Jf@b0C*woYKV{+_*r$5y?sNQ}Q1^1!C9JfcJ(* z^2L2<2yFcVJW?GDI`Us1Z9Lhcw(uTG5E@c;_&eUc%(4>7eu-4IC)VM0aQGTHbq=)V z=py6hs&ia_Y;w=Vn1YAa^{)(UL=%Mp>nO#{KF8|(1YOCKG|=T*r`9#40zFY2Q}T%a zN)R>#5O3-qJ>6J4S5_4keKK!J*h7`BE3ZwB2pYo<{&5_lzNUf%%WHK*%P`<0Q<@tm z&F3Fx+li+4DgCl<)@Oy#B5EQjgpdv>-kDI=g7A*nD~+C&uO<=6zn8iCNbf;{MzIZ8 z@AX}a0GvwS+WRiRlf`n%9(WZYUx(e|nmPE@r31EhpdksmeII5D^x9HQnj0GMkU_g~ zLQ|ud#3*a=F@Vz}xF*<;jGu#}_@N#`7pp8sopG)<++JTpSC)q?${NJDxB!N6)mWZ& z{gt*R-#tL$g_H#*5o=?lx~A^(=5Zgp*KsS%FaljXVTosbyCYTScVulq^b;Oky&9ZJ z{NNN^;?+hO6h`pcdw`kegPlihQEK9E1#->amBVoXi(H+h60{kO)@S!z^em|X?{-e* z%GWYmKmG@0+h}IK5XSJ;vm%w+#G49m2yl%WZUM|!c(vD9qew9r&UhdEC;s9C5o&OZ zV181nfQ*Qxa>}Auh&6)x*DGJ|GPFWXb$_dyd9(Lc#Y0d3zV7tIKSMq;oR_^^xT61s8N{8>O)h9UUYR< z$Rs7#kN#~hu}h*HSK^_e)746igc=>?N+*R03crJt1pF-8W?TiUm$kM82D_FY2GakA zR{Kik+8UuduKKMxDKIPAyU@O42q)nh?iHM(MTUCy(T~=&D9WOK;Vxu*X!TpjVermo zxOzbM3BVo`lvoat==2!QFZl6ums z27FQOT3U+aj#-7{s(7D1>7?6`7xY~VtiRuug_4*430SY7@r@PyaL}WDCB^I1ta92 zxvS7P0hum7)9}-968PJ5tn7?Fwmzp`4(jel`AIq{w)S@5?|n{wSom-*|DA~a_a`o- zNc$!eOXSA}yw%CYtb+aaIskL5Q12++p}cI3#c(q@ErphiwuMnVGgGVdcb3zk zXD{6I@#b$jAbqG0c04Vt^R8nl*Xy}+U^h0#06#{Y(K`v!`|HQ7sUYe)#BW#fsLo}` z&E7s6XgbvybX1^{Cxozt#QjK2s2;h%0B8$ihD^@#N1K}4=J{%`GAItieO?}V>IRU# z-6QJ)z)+(;MX!L8rqFswfOodR#7IL_N3ZjBn;EMhIhCXY;cW+*+zfTXs?2O9E8E_8 zmH{jHPZfvd*tzC8x_~Jd93a(e;`WV_WVX>J;OeQ%ERx9g@FAZHD0-6(^9sUdjTf=9 z0W+lHJkW#FGPZqwOQSsD8W^yIBI1cqTnMnx@#Im6Fv3wTtC>Gsh^U;Iqly02op!yA zQbuIzU}ui2fGf`c=H0m*3fVGXqrQC0B0VmQPF2ueJPQsX8|!}L*(9C-uxG*UCITUl zYW^tJi4~X{sH|}Ie|YC{i9FGeYE^|waRfg+Qy&~|Y`{GJsivKV3*H{5WvqznK^rW0 z1Pc|Dy95Tk>&QyI%#OWRkVl`Ex+iXw`Y@=Y<$yqrDVv*%rW>6S((o)z+K`=7qNAs8 zBE2WiEX`e`Bmj?qH2MS+uh+QcT5GkM9yO)&MLh|F-$gYZO@oC^P*#T=nBeiYD*?JA zR+zCC=&aaq7_IERkqs!jf%(B=Z7N8Vp<7c(o?41Em#>W}CK+M7O;*_(9Q-f+El8j6 z9gT_H{7XQpk;ADqWvVR8K86pENft z43G!6K8-AoGKefq15<^IHmuP_KdLm=pQkDC{UJpO{4J?paOscA3i}=F56_}9 zOi8}Y&5uL~!COv(TPpDX0IZfwulxrb8_zD9DRtjow%CngQ@7xzjG5q*{)X05$iJ-1 zO4qceh%~L~$;!Kji$K3r`!!o!^8QBZ3E`VI`;6tJZIQXcj;7?seyMQtuJ&W_ulg zSsIhJGuk2}8E0>g9cZ-2<2qV#%ivJsWF-XPpb>ySycnpKw!t$MpU;Wn%n6SZDc9S0 zV%wUcTw!w@+hlCP2D-tqdm_e;zQX&aNr1{)Oq&GBEkFh7D~$VZ=b}Hz`xr=;v0R*X zaqym^mQ>4NX>z)3h%)kAf`an{*w_V&dKzA&!g}(I03TQWj0qmUts!BCV|Itfd?x(o zbEn!*D|bJx$^T}*1CXhsCR^>Oi~lx7rkK<~w{iPHM2MlmvEh2)fwF%I!>XL0#mTq;{6w>{T13L zDE+Scl|V0X`-hT~H@>C?`*sq`K>Wa2jv5v(=P6nO(O5Ebcj~@R1`#V09+qkwOgkwiNgvS7Wj!>$&&#jD7%=v{{1>?t!%RKC*Nv># z@**V%M~kLtT$Bq_9#)kQW7%JH^l!3faImI22v!zN>!)c$o>dnv?vNn$8R4`s7puOl zp(#!rrZ)(TNtjpmqZfcfYhzt7^Jyz^u+5KlfWH;*q`E@iMmKmrdZsJHJPaSh3O6*K z3u$Nc5iu}--`EAfv)T>BQ+zRuZ98Ty-)LkxyS&Dy1HouJSk7g@e`gEnsLotEh{G9Jh zuYEO%$pXoXvPq%SYVX2JSKSL(e~Em8vC|)oEm~_jXBT7)qTR^)Es}gJLdU(|pXP@g zXqCLYbPZqC5Fd`u3!Xf)DHx*F&AljB=t9%qHne#~*d{C!OSM{mMR!_4hE)oFWEUK? za4kjH`!EYvRh*6eX)t~5@S~Dmx-YxI(%uqP+|E+hgAHoG=Yn$~zcp)AO12NsDbgN3 zGINJ@eVm-#XwF4v6H&avEQ4i*@CY{fq$CLVl$t#=M~)bT#S$l(hm}Pybt4o46p2FG zRfS;Uq1tbdm1#txYs;;n!*DuA1jNUhO!7lZ)ME)!ajMJ1FuVG5_f6F~2P*YeaDNJ$ zTcN4clzy8OZu<4RdIiS-zOk=Y!+%%oCa$Mh_@?$2$8-x?KB^+&oJ+E|a*s?8rFUc{@EE`As8lE{s=K9U3BWU;`7csWakXuno^1E-*$_Rv; zZFR4oF0NLPI)xtHm^>y_=u`q%#}lYipCXyym3|;1Tc2$1a~ux(%p=Pa=)IrKKO|L` zdjS`qJM*ID;ZY`S;#9LdMF){~zHgFIT#zA%H718+rxJRAu>lm8eQGnJJUfE+mYEez zTx4IBSwrYpP>e5JMhp9YZe0?`$8-~~U`AJLE-RMk%JaJP**go(VvIIlb(O1P-2Hex@8+RwXU^ft^Sa!q>d4GmD z3elo`NqTgS0>C7?QeQ5oB8=x<^*XfFvbBvvID0p4(D0(4=ab^nG{OyCuqfvM6MDVb z^c@S;j+G9xLf>5$7AIWxdMP)@KI52Kuk2;@Wn05d!y=cl`|^2Zw$>zFW<|AH!;_h& ze@&s3>467iJn0UpVF93S99X9iTMyEX;7eKDfjzn=TrXSV@cBL&K_Qpo#h83p7MnIy zYcOtg5?J3}YMEyCk$!h%zx%3ed@LBj)1(EMI+BZC`2|CF$grj+(@@bKy;oYUiUGZ+ zs=yUz7jCdOP;os4fx;R=bE?;$**3Uko=zu;{k%%CbyHB&?WVt?S+zkqjpY6JtW*Xt z8_1vH$~`@PP0@pI{YA@pjCmv=tQw!SY(QozF5%=$W>7umaxSvuHigGC|K$l$6VFMk zJqX=jCXc4A?rjaaiLfQ>p^Yb@OT7T94Xp~==z5Lz7kva}V5A`NsYTgYNgOQ>yJli?gAYH}R z&=uTK^5Lw&wy9{Ma z+eQe~TRVNbbApy6zjF?~l$2$4U(nMEwPB$buEuV=NTyY?e{7RId*`+7*r8A7LO z=5Rd+x;n?9e%)4p~l545T8LgX84un%{(5_mJ7$v z#t#5Tt?{cM8YoeScDgzOS=-2~&hUhm;u&xuzL%LpZL zGxP)ReBZp7$zF@WU*h>)lZ?nr-vFuU_w3RAywshI`Ki2&L2NOD4MG4n7NKad(fKhX z*v|gw3Wa%sxUB3o#w5R(@(BTakNa`kPOKQYes9o&9F=!6Y;;!$nE=!9F;aP0s^Px+UpN0;WE zK}gap&rE7{Zf+NpNoiA-wzt|nssCUpJ-TTOB*a}P8Z47SUFTih9KI>(;-_^4c|XAP z>z5cqNi-i2C_T^v1x1SM;Au3no~D&|O4{y;`gNnUTfN9FR`3=76~_Uu3$FMe2QH4f z|LRr|1O-3>49|%VR$J1Zb4EoNK`<300t5WhF8qjZKEnBQZGxX8>;i%g(p8XPfb@17 zMKFjNP3c9%D8T#9N)6izhmRcejz#~B(jjFp@ z&R|akHD&Pp{=Up~d2k=hi*8F0n`3MbX21QWIKqe8PY?e|;7p7Fe3mojsRo(O=z&y6 zJPM!SEi5BVzr}Hji5^~$NLWhHTwwvgr@@w10f zUc!~QtQRrrQx58Q>xS0UJBF7Nr&+iR*7=6>Z6wx+jU_p6Wi-yZ9bIZLitGm8p zw&7=3u z%z_A`XIaMk0+bnLh&Ej=Fry}^Jub7*KYBz~J<537x>YoXC}h6>*p(DZs&s+|n^RSoV@91<`K=85^$UZU0O??Bdz zAIBrtH^hEW{SE#oJsOsUDgV!*wSS+}{x`hsKi~Ktnfj+hNB8#-A4S;9HC+m-4oXVh zH$sYEn3`;o2O9=F=OAE1%f;_K+hW(o3a2y%B#_EQ3Tl@2U1TCQOrG=1%)&x z%-sgw(=HS*b%{@b-?bRX%O5J>%GP3{lQb7tV!TUGa$5asW!)RhtJ*1bo$wLAC{%}R zWiZ*3$4_AaC1Z84{2LdEZjg)7>0`OzSdQZR@s- ztI%C(CMv>EU}8~df$xQtCJUH>gM9K_T?B4Aib;j{sLQCaW;|#peWnP zHC=(=zXfejCIb$CdoA>}O%6E9R+edp?&F8r8c6k?HN~UVGcPTBHrfv25J9f^59+6v znkSZ+N!e}~s<$pHi?Spk2p1Z-Z|U0KZpXF0F+FGRL6Sq_Zta26oH03+TnZamCu_{! z;DlC7GA}F)W3Y@f^f@+eKe5%rdx*!u?SB+0M5@l6x2f4xB}>3#Aff$QR&F()keQ7u zM*6Qg$A6|E^0#Y+gO!VdR;8(Sij^r&p$?7UYaHAA+EOt-LEYH&KVxv#KdgCh4RjZD zP>zlR@j9Esaa_Io~DPNdhcmiE0M5kT`UFNP2F7pn(5L8xk&)4 z;@TtWIx2I{@0fnCmN5yu&yWD%os8qi{uk83n2BMS zSy28|R&phPQb;g6XO^?q$|P=0sNN^VfNcY02?|VqL)LIM6M%HO9e!uByWNM$g|{Lh zSYYC;w2r0A&)?5K$_1yo)4oE|cp-HsC2h7`ubv{l^h3)ChwTGMRuXuuRrzrLNU=!Q zVi%D+{TC_{^x5^954-_4ee;54E$l`T9?p;!-D!m#PL?>Tr$qt*;%;+WYPJ@ z5WCySXMK_<869cSXaqr#>KmNKa%^HkDG~^tVi#V63ezfSqIhP823bqG^%(5g9?8;% zf&d@fhHwrdKNG{>yQ56Z<+(@a4!f>M!sx2mUV?znA;$nM-sXSi9(O$zt>(TsU^2XW zYXy(por(E?ywP}sta6qg%(d+7`!d&?V47O@%h8H7+99o7p-DCgb?hPm9DQgDC5*Ep zgQW7*63E^`P1kfGP4~VmASpK9v>l(K45Fdin#*edK1nNi;GYl@Utbi(+ZRz=ls0v; z%JfSk9@L=tpOYhRC%DhK0BUOkPm@Ejf_Otj zE2v2^ijQY(6ZJ=5C4Mv7q+(0z<42AS2erqqS$6KJ&hY!N+YBO9ylYJ9xAc-4(mNj9 zR@c0(yubi5VK5>3wLvXzGF@Mq6+v&9V)MisYCRbbGtoj3)6EQ}k7I~jr}UrIv?C1l zv9OP>Hisl z|K1YrMfSma=$b1Amfu5}yz%Foz4 z02Fv-{e5aJ1Sm3}5tf;*>oU_S;mT3Ip}T)u>)~}X^!^#-iA9SRP$MV&<^>t{myeFM zThgRvDq!mjLAXBKGhT2IdSgY~6cHG| zBoE`%L&(j0aOEf*m1N+uFbH6QTYJe+Uz<}K@jP7%+|cMh5g~y*0rxG}LqWCtU?(w( znWzFxwRcr5=XsF>O}Sk%uMx<}3rF~o$uro2I(32nk(b!t=CT-2(I<)2XV9Zt1R#dV z46*})oPShr`uiGOn2Gp|+ZamUIft-_ni!euztOA^jcsjMNiU@`p;n(|4A61bkyu3{gCxM)w@nPQ`vk zX$&L8eEKQa-#fS9K3)=MVKNTWD>N_7);KAAdxw}q@;Lu0Jk#!1W=8<$@dNYP;Jnn$ zNBzdW2@-Vjs6#o^bgHyOwV(`XkWSs{QMMYbzCmRw@Sb!)~uXUixcAb?i?y^4M3mKe5*JfRn-;N^#Mbg_)*n#Z~JxFhA!&^k3&c69Rdt6dWQqb!#Aq@y99^*Gcs3z zYGxe3R=fYJ|7b%i3`6vm4ak=a!+;&dGV%QXfJGnNWBy&kRDW+55FmW5Q}I~thqtWP zi*S8+m1E~N*(lB&Q zd%(_jZB|p7xjYaylxq$@dDj@JfH;I%4^|rsG9)qxe#Z@YUqVD8J)hrTxmTyBP7WnD zVY^WMoH(h=Wmp{5@t>Zlf5}4hOai{)Z_A!Rvs$f}s$kMH z)+94))}#JG$^%A9!E~X?8M$k=eqdlS$gXTpkTy=#x6cQ>LTR$z&(ACFogzHv6 z^~S4ld^_cdD<>WZK-$Ovb%Uf`&L$MhqKQs(ELGn+IgVp$u)Z}4pCS7x)#&9yzRzQN z0zV>R1Jak=@YdB?J&^5;m(H5o_qcvxSk*JJ!d((Py_ES{)ICS{2%((+C|V8yh)fz6 z26R`CMo|@Ptt|x?6q!rbmul0wW~QbX5LMe23lTPrPuXOL#YlBDyP<~aQ%#IH`GNM# zCvLU%uDqH>U|FX)M6hkX02{-`=bT`719fU(e0UFV; z>h*q)ur;?^jTNiW5$HT8x>Q^Ek-X_vIW?{>uPHJSX)pk+ftK9qEODqH@)-FuvWUQ}#4M?|8 z!h&~}0}?HxOjR*>%7rjinQ5*g@xvy>Lfu7Oy(;Bem6ejMA?!1hqnd2|@#RWD-a*H9 zMPO=UHg7V27HZlQ-JwR5?83NrA^c#?B|j+xatr>(CjJ{P_CSmRajP~;NOXgWK=x0~7S+$TK=b4$6rS9DQMJtiZV zqRD9cwyhme8FiSu@Twf{19fbGC#W8&r1XGip_u1mO>4n^+;FMRJ`ZOvtq$F%l8Fwr z&BZ3Un*Bzl>p}PoN4O$rvF9%e|8@cUOov|!X#|rcbk*h!?0RA|`vw|{8S+`~b6Rn0 z@zo%4p0ag+m=sq(lpE@J5VzbWq`L6Qfc4smU0&NrYl(8UKd%@Mk%G)KnCoIu1bXu&4-m6^%S7MzTVZv~nXc#Y|n-QhV>M2*#0ljcpc)V~5Ar zXYb+PG(?mOa`C|3?-=Z~rP()JpnX?K$amq{aDkk*O{Jga(h74q5u+e1bE7y3^WpZ$ z_5G25F>Q%X(IJ|60Y8P(;l>;rhfD$Z5YANVtGye4P%L;1M>7`AG}&98^Z! zPlpriBTn&w?OAASo@L$8obCd>2z3|7@KbSXL8Yub9kxgULd+hQNXzswgpZ*SO=|gz z1Fvem)3zEK1SvbDk+_oWoG|MLIdB&1h)-h02v6Lo@b(41PX76x9k;3;W8Os=M{F8_ z7s(GM;)ACRMn=FF!!RU*4kvS1&6HyD`#8N%PddR z_v4p^S7Zu|F+At%!W#Sg4~zYIV&#QV>xu`h{O%(&{rYt;ulSP~U&>T%C@Jc&JIeE_ zd3Y$!FaBKC7R*G9+q(6m#Z+?3CNWS|2XZ}Y1j&ry+nW2=i3?k`zL=Z}FiW2AmIyVY zk2%+b_4OIMh!Ks!ZbBU&%Y4bC##;6Ueq8B4(2} zZp(+MtF~PtD5pt**~1=|>mR0BHh<&wRs}1wHMb6Z;}?Q39MX!i_@&Ri8zc%Z{vn_j zCO_I-!c4XFeb$@8D;kn)#5R&EBvD9@UK)NAQe-fqka&>$D02K5(^DXV=bs;P|7xlf zGYRlr|J7khxnh}eH@i*lf7n|64Dx7Y@@jT_Wb!*$Lo2QGzFEbtN@j(*wmvBi`6?UY z_~j7%+XVQZPMVR0bLEaoJb#b`en`d1dV%sdKxqX}+trHsK(u}jt5(Lb`nmBw8W&U- zzHUX{gKAW4YQ6+#LCfE>5uF#nN+0+@-hh}KYPg#4NnJ6`?7$VFwbN3btZaMWNvrVXhvxzfZM-$(XLtDDf2GD9f?H6% zV=&&iDmc(fM7!2jozt9~S!-}xgB8D7b}5AX0m{5u^zmg<`Cp~URm2g+K~gA}Q7qle z+-b=x87tzaLa0v_K|KLA0_FElHVoOk>EJz}G(5 z8>{5|nZ(>>Uyu&gF;4=XK^CoW%ilS*XRAW2%9uI4pyKc_*j0i-k&#@t$SSfCX zw>N4}<6BDz+S9yWDLNNSxHxz^PdBF=mgt@IM{4rkD8ul)yZOV~-E4aApz$4r<|Cvqy-Qa|#x)GC9=IOK=Ur(R>)fwDoqlR;Mchq516iDsUb zyoIogNrkBr*ZN}axArWaVI?J$QZA9Pbxv)7D%n^Vt%*cK9M)ve*qsU@v+RfRiNj;o zGD}nkG!o*NZ$}hz@bO|qLc4M@czLsYYIQ!n3jr_9!v+y!AqH7EPGSVP(@Z7}6_wV3 z83#k>HRo7u=w_FIZ!b$#d7-*B0U;kKw*N8)b?)L%XK(2_9wX zUIih3Wnocg)SGLc*;w_2nja0>AOUWaH;N0_A$J)ykIk^77G)jzaY-tGQb|O55N;HZ zrD~y=@)6wDwHv@}OwrnM~BC(BOAsv(?BQ1L1!zeuol5fif*zppaV@hWeRE z^bM7{_U1+X#(-Zx{++)&5Jz+FTEW{5q_9d4f07kTBvimV3{l=@0 zp8zzIL9pCnrswF~W)eVd7NxEJU6NN!nSM_Uw|TnC^MZv&uP)Nwkz;lF?p_6cXe?lJ z;G1NKU?_lfyg+KH($>Hh)-f4K!#QS<1Djz51Wt`1+72FZ^*iJ(3$!kF#WI*W*QwLB z3nLE#g(S|jP{b+|!YF1_m7=PsU)ceiVz?{1b2dD)q|i&1C7q?7@j)mXM#T?e>cV{# zZr6RKglT#E37xzKP60qR`t3lXR-ugiu&|o4>u7wbsD(q&$C2v7y&5*y&w&;Gup~jq zzcAm&jv(5FoCE| z2qs=7dR_K~2R~}nJ`_k+w0`jKk{oVLqJp6Vp-|8h^$8Fu3L8G4i9Q6J-IM#!vh;DY z;-rB34Qo1qd;e05LqFr~qGQQ}F zsB2M#(@?1E9F8mkTS5rmJ%SySZ-Ywb|BN!I~SpM@Gz$?4WFN5lS?+ z@CpT~SRkgn=NSm~b6*QwzPu`q8rbu7pgX+tWMMIp{u-hR&uEFLEIGDA@#e*78l|>R z_fj_4%n^{*VRy6BHzC6Hifrs~AYq*3yS&LlE-vR+*TyL)3qT-`G0X)aS&2KEi>W0c zh7Mi*8Rj=&NI(LjFW>Lt70Jf{-Y)$>j-IdI|webk_xLo~wE;K!02# zAsh)~3G)fvt03v!K~Ed%8z!&lYA>#nA=G%0fsxTNe7##@xV{lxqL-9_nnoMd(?|ez zxo7B8&F;U@!u78cm@TCK7I#LnVexiA_K}Dr^rAxX%===HTHtqI%Z8{!EREjNUReR z(Zsy;7xQIy?RU0qe);e*YKGrU_*U^{@r8ug&Y+NPo8!a71~(zp9d6q9lTloUM~#B? zu-JQ9nHbs!mH?VhUAOP#sKi-pn|J2-HN8BZ-VHxBMj2jU!!ld|u|4GtKpP!?xAo@O z@QJ0#AHWK50T^T)=xF9GdFEmwkaf79^9RWO_fG+LtdIA}&!C9xCmJN$r@(ALi&69( z`)DEa;>h<#BH_qO3b#{4`L-AQkK(5GKVdd2vtBMQR@ zO6P^H|JII3&*|Y4c$SNTOgmnyI$YrZ&?5p@^hpemfs%JQ4Rgl}_9ud6TELkrrM?7o z!!KEO=l@~YtyEH_@WcyjMXeGo8clJ%rg`kiJjt9t`g)Hci;H0z$^TXhp$*y-qssJ$ zcdPSZzvqBmK49BrbX3eI8g&;_MEUrM zUZKtUX@ly4>=}e`!y3lXS^5NE4iz&oIZU+zD-otewxp5gm~rjKbPXMO#(`B$b$4GnWPG{js1Wh#X`NWPQ5$zdOsAQvDpn(5ZQ)3#oEx!% z53M+*%+CL2S<_NZ#4{l_zK*0`cm6PDV8^2)gYVpV-|_&GYQ<(r>ex{BZY1gM$w+c= z6Rzjz&|v#4yEFRx>@w%SY|)2)C^fgHUOrxxV%|XXs+^v1fer={*CD z8Dbi0FL;h@WtGQ0gVaKdVoXuP=AcGjoSk|;-k2!+f!K~jC=L4af|K?qCcKQyd9KG^ zM)R=!v?Mu582tED1y@KE#4TE*z0YZ&m3G+@ceJgg{fV(6?n|-U?zbf`3Yj-A^flY@ z_jQJQvTDaV$tSpeu9>{vCSMdH!@cNuv3PcnSpu>Hq;5kyQ+=*WsV{OJN3M@vX?6rJ zNtU8gU-uAFMNpsqF8QgXaAaKj&}qqX49!$_)ISmrLLU9 z@F+(t>k370D+oQ`hgZRvT(eSlnMS``aFC(z$USTuhfc$!vEt7r*6KTuz~b8G^){#> z0Z3|hE_I@6heZ=bgp9spGv1X3$(o+-9od=G#3^XF;uQzJTeJ_7+%m72S6e#D!W3*p zT3Lo!Dvg^>QFAWnp^E@RqFR<$zloK!fKJK}=d- z-@egktc^Q2YeG4dke$zPp`;Y<`cn{7W&n^@1l|5nyo2N~fCX&38I{b??WC(~kMZb? zQbxbYF=rYAh6*Lv?GD)o7yFa?5yR~@dhgD?1{2j8{GgGoZ+l5d9<1QQ#(iG-0?>Z! zekzAFLM79Lf(tT3gzM{b1^+?)IZ+-ZHbHU~WJ$Nv>$@G*DFAJ+HjYMJPbHqP{Q{ccd^)LL6_-wuig9kAc>a&B+Gq9;sBja-yhAe zfBoJcx4)ok=5)YJ>zd6s1fMFoeX)vtHI8#3fb&Fz>hY(dglE~S==G!H6~bp^6+248Vvjm$lQHh1M;}8+WH0tlE>b31*lKbC(`bXG4oU$q-OMIw}jo8|}s{ z=`peu3JGETPCAQ=a!sv@lTXr4q4j9>B6u~hG{14${#8ad^RYc`Jz<4}8D!be=^{)p zJo7lHikw^pK?O#nRuMgaSgl~{h7t+K#k>_MEo2A6{F3u(^zM?a{J*w+GIp-{i1HVQ#-_RPXk5)Dmlppf32Va~Cw zL`mhu53Zj(XJ@_e$vH7>jI_Jtg3HhMWK}Cq?xek!n3hQ7Y zW62#2gCq+dMC+%xh2_uOh>djtf#{_i`lC1Ip#zJpqE1dFLeCAKHXJfYtTE8>T~ym)Obv^$M5 zH=>(JOAK;d4`5~O91JK7yS&uePWka!Hwl+1mH^Bz7-9Aam7cg81bzl#*<0S*K?@c? zr!KEwbkUFaj)To9Du+xhBp!u1#CTbnNGGfsW@4?~lg^e`BI@G6Z^>=YcoWp+ZXuHC zrYEGJ_|7N%r_L$bX1U@7GVU6;DE$-?v)CtD6Q#-R^q|M_=r`~+f6x2^SuObUZEuHUhY%9_^=H~BP36e@0%e)hJXBl)14o0@iwcIT8PP`AA zn*~r}VMOmHFYg-_Wx5U+B4e2F`B}Ghl)#9nf)WF!K(tAH$)A(-BA9OkPwz?b>T_9M zO;vHSqx@%@RGVke_IJPo^OYMf%-;)IV8aU5{8)VPGB#>Ha1GAngXd&+DetB!KXN|O zcaLQC$X|l;(1ViH2_9=V-PMBaT?oJZBXrSzC)G0!%HeDHL4Z4wr$JQ#?7oK(Cr8QF z#hBy_0UKT4p`Ec$=AnwJc4E|A zcGjeCuixRue_|8r|2)9)1B-wmJr)Kph8@#;IEH@pdpJJL`Go5S-Z(heZ1AN9 z*t~r5>_q?>YnL(I@^D^eUhf-iTAU>XM^*mVQq|=&L5@1h8*)-mIdmhBQ_}ugLi(ah zbzqW#Z`BQqx|K!M)E+~RVDu3%g*%RGc6|8c8rBOP%8NseSm?lKF@MmY>Zqf5ank#P>`my%9kF_Xe%^6JG1{2(0HWMxH$Y~Rw)0xxfzU}AVK^*>-k9PySuH2e@EoF}W6Cf9 z7x{?S)`q(WDPQbJIv3$BF(jYohO;@#!bP@y`e?cmz~mXxb(29E|E{4a=tgE_UHkB8 zacG&Q3GJJ6)*liqC1hkk_JxwYfpd4<>*&YwUUAxSKebBJNPOLAr(rA#u*J5tU?f(-lxBiRbOQmx7M%IV;#h!F8H=0X|(d z_u`SC*uU42Ae>8s7-8EN@20N?p%&eVP&?I2-Hx>xHar<~%>~~2g?tAi)DdKAJjliY z%=litH}o?bUGCN*DoYy&(+duv*5vOi7W_SI%CrUW7H3mqt5j9u1hx+3XU$b=sH$GI zI=8xD^o(Q#N`VX*QULSblkn5HRw^?SwOnrMrh-$5IC+JPltL{>jfuU8L3VvNNHcUD zajM~iPFDtnw>MF&=mdS;3$Czuk8kpY_IwD?USS{&lTb_|`4&;GkG2_L$N%2|=>HT| z|92aGnAer(BYKHeUd=jO4x38*ikzR@ev2B4m!-zz_u=?5XJ+4vT3!8l0%|9 zo1*6q=h%nx&!C}Js&j0Zc?=N4UlN?&JRv9pqL2m8Ae9Sj;Lsk@fRG-q^@6qcA*A-O z{EWN^`$!qvS#)RJ|A`xNN@+CRoby*x$Z?ua<}koQ$4^}HZcIiuN|809<<_-F7 zoKN=$jK@`*N2Sjc3@Ujy5Y~FFJ1rKif|fAS`zAmxN2qG_9@zIm(dNCkLUl{n2}?E6 zmt{SUE$aRcXl(p^!ywzgGlnRQH?S$KJ`y&XXG^d7Ds=h1jfVGR=CYOBNgBb}7_x9z z35X5gjE{yZGlY+y>Ur-OHWek{QOmUmX&LCR-N}u;s4v5NKj_4WtP~}GRWh`p_?yC4j+dCqtH2=_$s`vzg(EV~jG6dJ>yCA0 zg(D(QNi~J578%1Lk%#S;o=ooW_worxkk^aW`ILrX+zmDh*`?#hRr&_gtgekt*KR(H z5Svq+0X7s(6;EW)M!x)ZnS`hH`G?j1{97LPH7D2dgvS!XqwUlOa6F4hVs0NTo^?$z z?W?a`4DL8=C>xP*;az(;d!!IvCf7m5S*nAWxXk7qQC{+M&S4Obt>SCsn)=jeGF zB%@TljC&8k#wV@oeZ>zZTR){noB#?BGnWvSBjmY$%+T%v;cX4Gx!c8LwFb> zBQXba)@E_#o;)PU(mFP)Jjb^QT`Jgeip*qg6Fr=6a8Xewz0n1Ds`Jy%*U|ZC>yjVM%6oo|UQwG(k;W?K0&c5mwow8zy1v_n407tp zUf`s5;(qYOi5OmUR6_UxT{=ct9h=ou$ns5PuMfuE7y@SY9@e?soqiewY(j7P0&kZ+ zn4UZunSzf1bjvl&qw5JZpFGN#p}}x$l7EkKN!$ilc5^CTBOi`mBNRH=})1wz@+>pV;?$nKlfB8V=U_Hs9~_O-K6ABYUEC zqX*8M3})<|)$wl_1Ztr<)iI3YMb_Dx_03*?p#C2!11&NSXEkO#*cZdxY|}cDS;5TY zc^c}bfn^G`$HvQElvt?=xHL?-iYI>td?;{f&R9&hT zgCgrwl@&x%4Hf5`*Of63YM-d9W?Ug9Ka&_OLWf%tH>JQLXdMK`6@y8ulQ1Pj=Rao& zZ;iKP8lb%1;P}0!vYIqqzkEOQr1gUh+OUqQ)CkRZC^O}_f_HTp&oW7$^(wZIzO^lv zLUA{|p5Esq(dzy;3j8!tmM9X`cn%VM?va-92ElfVsH%`UgF!{Sn|OQP={-x!(&iXi z?9TZp2788IF)J)~nk$!&P!IGW0rCa#@B-R1X zxLK~_W!O8T7vjtPFMb!MtmP}pCe~Wi7#uh{jbAloayFOjyN>srRUPmb=G4bKq$&eEAHjNv!)8k$16MrEWo&)LekX2pA<$KYO zv&-j#2f26qiWq5B!Rd?=@9kMcPPj_UkD6C(d8X9m77h&blY&n$V3G#o)lskSj@MDM zBNW4Dj;&e1-#24vq=)1`*dZpwC)r)KfoHUqd@-a+I#7%HtBT_wHCNNCip7ad!{MXHcoCH8n{XJ|q0ab7Y*Lt~@IN`FSS!Kvpd}LJes+^nTxBl zxiR#wB?l85G)^9BHtN3?goIet+)P}(9L-rFP-9DTG*(FmI|pYqM`KfSRw;9LYg2Po zSqU^&O=~k(D{6Kw4lXoSIdf}ED_3f6HeNJV32Rpu6?11v2dJZiy}7+BH6I$QjJ2Js zxihPjs z|Mr20e*uqxgn$4KkARGbgn)#Kf{KcYf`WpEj)j4ShKYuPf`Nm9iG_`ggN=%Ti-(Ji z2P|X%)d(Csun({o0s=BN8VVY)_5bDPxebJi0(X!26&?;3^a2+S9vAMp3q%DRBO=`2 zK7SqWUmrN&5D}4(QBcv)fge=kfL;Lq`vn3#A|e6;@U1WKJqQ685$_edI1>JQV`Lg9 z0*=7gA1JgEX=QEW;_Bw^;pz1;=yPyL=$EkYxcG#`q~vcYsXw!Ga`W;F3V&5pR#n&3 z*3~z3bar+3^!D`+OiWHq&&kjx&{3G zr~Lv30qzBGCV&$G^b78V$6p=CML>MTj)W)v9@*FlpN1n4g+LW@eZ(8r z?R1H5Qc0H4Z;p;U8CO5^-JIqQtCl4wRC`vQme|6LzmgSD|A`qQ4JkgPxuOP+=LNd$ z=Z2`>xoWNeU;*UkE=@-=`k3PY59b}^WIArZ738;@mfF}+5w{#V( zeEN3mEa4g*QE$sT;>RqSiZvu-I@F^`CL7}`Y(K1)DSxk0Jan0E*UY6urnoNewYihY z{$Zo}QKrNWdPQcj$V8V|lMX+HhmGLMy}izM<(Oy=sMu#W0C64vzFOj2K1J z4mF(UKf3Xwx1fU4#HX~HXXOM0Y(gB)dLI#8S?`}ge+7tT%8!sC(F`h|)?57idzw}^ zAT;|r^O!E={A-9?81oC2n`IjPMR@$5;&#^PzkY@D)K|9bC%WnBo}Xv9yAZsR{7a{~ z`LXibR*2HC&P&=l+D}-rFVCxYKXiUbBrUJX&X!H#lTS}KD;}4r0RLkT>+|<+7OJmm z(g4{LCtt@knh^H5O~Bitxk!i0#)Ls8@y&{|RIJM9d^+Ny8gJj7j!Y~Vy+X}Y3-};; zeAF2`(fp@)>o$2JCr84PI5|c0sT@gJVNoYcuQa?URXxsmUfghNXu9miXH;H`)YGca z#O!Lfb<_kCz1Rk%&D^(dy^5Y>Q$1_j8%{n|vmOpR&(Z!~COE?zA89F=Be_9% zAsBvoL0*fSIDM@ZygM^Gp6+&f#Wt~(%5U?BO%&6$nd2FxGj(}HrBGuVrS#-^R8lfY zmYX=o@MhGx3%jQ^SGT74ZsQVb@(DHKUS3~kaVh127A_I~mUG`ZG=`SX=oKyPftIfY z;yn)#zGF2%<^T>M_wAW5uC!-Rr0U&}AltQ_=-O;+RptXw4aNBkLW=i43m2)x8WK*! zhPj;_0a%0R3dS?2J!kd7B&N8t65FEliNgCH0=SUe1c{zn^FD)!vk%w~JLfCos7{sr zqwL^WzX*|w?@BN4063TWul@rI7DIObwUt&f(OuC$Ks=A$1WPEQP@GB2r4{htt5{Li^5XZu6{PxJqs!Lb}zB@iL@EL$TAKNh0e zK=)Krm5cM-u691tlbVOyFo9!CH10!Y@GPOFqjP;->=*MiOm!~R^b&A>%DmGQ_IuSs zbuLi$46=U)?cs{JP(7WoCU3^Lm!h{6Bn=W(lq-S&K=<_1uO*Qlx-f{ z?1^;98YR5eD@3+GolYiB{Nr91r*0>BOrDcLg$`^MB1Rc(IjrKED$b+Zlo0HdRpkRm zoW+n^u?gYL*@R!|YGcW?MUsJ1UPZ(=#5v;#${(Qvcd0)-#}LMOHs#Q zT(g&c3Ei({o0@4q)4U`8#zooN*m>Jk?yJiEhWtCp?n(_YpHnev+NjOLetNX|Tkjn> z)$W5g^@Fu7xl0mE?VJret``m@ zT6fqV-&K;vI;APQaQyzS-&+4{^7D@`f&X9Duzx*~9#CSy+)keW!}|)GRJYmi6Iu@L zaQz=?pQM}+NX*HPO`~`C(b#WpU(>_KZB=yh_o(NT4GxuUk=Zvk3%kqK2NlYqhPvr0 zIpkiQ%SPJx6N*spClC74hn+AF@VkEMfA|ug9=y=RMhw5b+^e@aJ2bmaK8UNfATaF3 zOq2^y{RJ~z&*s7g)4rD}ik78ZYX(2q{?OeeH8TLig4XVbt)wt6dc6>g%6EvDr(8#n zoYJup?+oC%Iy*5D!@JcI6>M&Qwi=#a%8re7O@5dtRAn(Jfc36_ze>v8cn0CETF*M^ z%@1-MW*}q5e3>F=`*V)zXPG&jZ^%)invn2wp;D(L_M&cH#xrbyW%uIlY((WBlB)ml zOkub9VJ)#B_;BPVd?3#-247QrEGb|)T7;&w{9Z& ztZ~tJEJ}lh!x_LNV;vt5CPgWGcxAvY8CvI^c^ENmFPm67H22XNh8#4iry16*-5K-y zE`;{Bte@_2(O`5|Hk zRv%x}4_g?XsNMR>ou}SjeE!D^@1`}FH`VZyk6@_}WU3^1=xn(=ccG2U)@RW`HRn{< zxbGR{7#X1G>w!I;ow#PRov6vFs-iG6qH$5Xwf*rMi7cj)Rtn>R`P~z8&BHrb%329) zr;cDt3|8f1C7!;n_Db)4D{BbWTHqBi@rdm{=gr79W%bGB~>{MA#-*J_<6NU?0KgwV~xg|1vru+q;he+pim#@JG zS|ykHc5Ttut$)(zFzo0=WDyDP8Hrk69W-EfK}CBr$ZG=fve)FI4tY5oC%DW%|6xV8 z0qsrLUjfP77%eqOWAt#~*LFF$*#`>)+9wxmmAosHU!vJ}zcbYHs(AW=8uX z`fpbF&^?37(-eR(rJ(3eDZlLzyDWP5sh)92Ksm9j)vEQSEoo^pRfpjxz*6pk^@l#h zvcUFqU*j6LX*_d<`KKJZUgF;Q27SJY9CED>FDz{BB-{XZvdMHUFCB2Lj#jX(I^U^E zAuf)UPZ8ADGK##z{VEMIeFk-0z~~w+A6Qrs97cG6RY~*oJOAP=Y_%-xl;YNniPgt; z{aD!hpyiYbSOg^GPG3YjPkSTrl?TtnErd3hAy2;%?$u<}YS)`>&EMK-u3ef9jkT3g z7WMIFP_PsHC+Fie0;m0f) zP_goV7C#}c$2<_oJ}E>8J%dc9Yo8MJXA&Cjp1!E=dWRkY%uBFByWusE3d(hvUH1Vd zLbSi0LDwfwvH06Sg69MexF~OIZnMAM#?q(0`jY2L8Q!I-9zkniLH8}L7w~O25*lV# z3DJDRho<#M^*80gpE22x|BJo%jEbVs+67TjP!t3tCzYHtNLG~4ARt+28YBq~G&!eM z6p*XfjHaEIBqgLz8Jz)9=)`X3pGmzRNrF-C6VF&YklE7PVFvRkdsPj?aGf z@gF}HxpUIOG&nhHs*G~L2ccv5*>N(ixdeXf8@F0ZSM24vF;qR;DW>o>KPpO7nJdft z<{bh%UCBzD0reS&A-m?6Yku9#qt(>*w7cAwaSdFL`eMqQpHZVymOq}~%bO^qap_c3 zZ9;YCvh1d1%&q zo(TezdWeN?488r^VElvV<0!1T)cnGinAi2)Xn#8MU*`S0Uz;No?iT;9l{&!@^SK zR%W305-b-tq;^!r`kjV4O@cpm8(DokrZ^HE z6V+1*ZRA7yq5b%gF9*`OVpnH=sQl*)@?UK@$E{tBFF1y>1FK&$Ol=pLuWQ839MQLK zyUn=o60(p+>A2l#(d`z{IlBKPjkfsQ(hoTd!&zS#F;GwZQcS7wz)k^)47ESq2Arg2 zkpb6P-<*v83(xvUcIK%pD$Q67t$;fpaG7pa4HkMWtFhDcIqUqq)V&^T%Q|~_be~=z zr7?Wl52rLV_vnm!QI23cKJD>HsVJzl_|w<%UF)ekt6b_7k7B>bTuw}{Vg*0-I+3;y z$E9TYKniV&hxo!U9G0VHN4if@6Yw+h)t2!2Lmg=#!Ly&g(4g?8dIY3V)5xoazwol! z4}|$o^RX=~UTVJQt^Zoe@yQLS;>0@bcNy*H#JsePH|&!Pk?(sbBuNNj!Qe^JyZk)C zyE4}Q9B&&p`fCWsV#CQ=6YhM~tLN=$qd^{s;P6!eU0pDKI#61qM8Y#X)z@DEw9{Hc z#~ZFQUo+1Qt(Td&AG6bwO)+?3O3h^#XBCWO?wVemkA!@J3{RD|Z*?xPbG&HNf0Qum zlztaSewMV{K5g7kvgtwVo{;+*`NZL22g~r2o)1Cy1%8q#cM|wcB(}}Ugr@OPhrObI zLg42LE3TUNbCcMAMq5&luW7*RCV6H4>(rQ_76^9G#*4JQy5(s^63m<2kl!G!rkC8e z8NW%KbY%zkS|L;gIw$WnAcc)z#;@*?kr$RL+r@hM4VEtHVuQ-iliX(kT!3ma5~HMY!zA8(GKJLBSJ_6vHX|c zU0TlEvkW0i)jJ{^V?d9L z4B{Qcn0T3-=6~`dUF@G|u#iWy?cAoDwC59vr1<4VSQNF<|-m&5K#V+Q~FMi z<~HK0-CKvKz$V6^H(xwOkGoJW{JW>6z%T%d^jpn}%pIOHt z22Fwwg0K;V02M~d#Vd{EE+A1;T|H+;6|P0RT)o)lIp*d5>1;Cj!bkSUO4Swvsrh`M zbbz{o#g@UO{<9{PRv6#KQmga*vJ|o=LgvS~S9-xHqX)oBVa6vT$NBHd!^15QJ-e;3H3VlQqm92VK-pYHUc{h^V<35teTLX({b;2 z%vcAazerDbkaDv0sj&PMfj5C?_i}DOU4);EprLx)W?qjfh`Us^`aDNFG(-)UPWi$$ zZV?D9(JC#qMjA7Y?Nx!Np86CjP43-bz57#|?8e?Egu0Pu-z{4{Q?09}69KK)c8uTn zUE(6}-%=RS8HIYt9l3{zPcO+))lsigFUKglI|Y&VrPgH%e=NQ)+a`DGS?yhSjlHZE z!8lA^swb338?C+n>}_|rsbAmPXf{2)L}#U?zBF7^ly%>nIKI5qeN5(_PgG8H>_K`O6Nk(@a9NC=L z4s_-B9i^LZ;7(;TLoTMJAz$0HG8GY`z4)=sjpHLd^TAs$Me@}JKARN*Fd?Z;SxH~9 zG5>C#Qct!enBGGggJM{TZ|(v%M)=k!v7@AGDdfOd|Lbc0*EVs{tI3|h?wa%kH|fC# zQYzUpe&kpUxwGH{pv2wbF0^6zAbGQ%<&#}s-~EZZk+n{({CW5*PAOz0(J2RNuUnJb z7MHu#_E05rs@)EA6H09SLI}@GNt+?8!2*zMfBU}?E5T3;5l#%+{BZx+pMK)FHy?(E zOi%mZg>^teDcs&0hk@`JgQ%&yFJA|Ra9Y+{2DbmIrkmq+ER#>SH5>sMZgIq$5^b z2SwV{XaCrvh5-oHk^ivl-FqD(sgBLh9^8LSesW~1-#JMHRfoI6&z}N4at=5*R<7?{ zykm}~_Q2!oi3us>c~r0G!q+z|iUmJ(tm^J%vWKNPO6srIMTi+haCznzO2{;@6t&=c zz6}{9)g1LxcdiYS{};j-;@n@&yrYd2B{Q~3@5f#5NW6nLNL$fGUAPj+e7)0fINMpG z|MhK%akvLWvzf86Z0ymJpJ)m8Yt@*Oq$M03Ldvp-$=7QMG6*Bjg z~-B|8>MrdRK-hhfydztoTF{j z^ZmMEeGJ;);mo|JnbTLR?(CzB0~BhHX=bX19lT%@?>S@kS^nUtjOW_Dvepcj9n4Mv z$rHt=xI@6Z1N8QyOGzL@jzh`wkq=nQGwuAzjh09LbhfnFJz!`&EiT=~$>~XJ2bq!L zK>NjQd>q9UyQpVXWC@VAmcaayQ6@ z;w>EcAPIbM5GM!Jwke)7GDBVLYs$DasNZEiE~75V>o%}48>zEG>$MymQC(rU>N02b z{678TkYg>ZQ`1%_E<&I`Q zirh#-Ug_X=^j*f2 zV%}snr9bokRd>9`9-%xiMT%&mHmeVnscfA%ja>XF9ba-d!(60%qpv4(wF~#@Opjdk zTf8S4-7%i&gUi7^p*<91`v` zT?JSG<&^FEz0SYzZV}-K{=&=Uq8mTsynv&JpH>Il*>`Vp{nKf0KDxsU3JLEirdYHj z$ivTwkwP;D5K^4F3=c}uKUjg>Y&F<-oT*-CWd zrj!q%>_o1@hacHI&He|U62*mLh#Un7N<+0$xO9N@X9JvN-cM1z>Ne^BLO42Q*hx!DL+*eVDs;TmLM~LW^|6GO7NHK>8TjE zn{!d&+V9;%uisNV`tN5=Jx@-!O~=W}%6cAM#o46`=l1O;2*a8!POFPyB9d0ORWfqo zy!1|;8urGwSIs-zLTy!Lz&e#>bySoBM&0znUmmP=7RlEr5j?&Xy=@{G{FzfPg|neU zEOs|`2s4|LgV);`))d-f07Z>fH7Eekb$0l2=wL z$mEXsN204$Wpzy>Imn3N2ZnEBW~Cdc;DU&^1(~LxPUVHACLTRTq0VKedxCM_mol=3 z!&k>pSv#>6e%`{~QR>x(@oI&Jn40EXRxgK)>Y$(#e)60MJ zsrS=GSwdfKfbI*&+$fdI;*fMLSUQ)88;Y{zlT z6urg6?kbvSs7dtQzNJL?=k&U+n6=pn14fVUG_DxS;aIK#N zgVNKoZe4zumhQWp%)1S8tj<7seCVtX60_R`a?;4aMo5u~H7)m+q&B!ZE_(A%dwHT! z=dYnhJRgXkJI)K>uV=fN9takHE;Y{PkkDRTJ$+i-x3e3gqK9%Zf$T!>g}CNQC>V>? zgqEbsCE^>pAwyjw@0mcrhSOW(hU=JDl~ByV3{SK`_$TT=_;WdmH1~uAQxoHvK)*+|XQw?|bM={xem%MZjWzwo(LsIiLZf zD?Vv{)L1I~ey_^B|H%EQ!C%}ZV${!>$>;)E9#pZmisWi4wLS7R8sGN2Aeru(z67`} zd|<^*9xZ*a@nq=26>~cvrtwqn6z`SkSHd=w2eT}Kuf&B3XCLvk=XGm;AQns+()uhk zO=0tbQ%%QF9Ry-!09WcYjOeAtkJqM9GLiw)o&B~Yp}pqdOT`BsznV$Csv4xc;ET+M z_LSqdL%3sCJC3MFZ{z3VeE=}WqC@D+(4T*t12m?mrdZOV$9olWB6>Pgwu-4Ctb4ZW z85=HgW|e>81(sf=VwB;)UyDx;WqVg6`Fk(bQOVx0F6zyY1P0mAbE}@7*+ccVkl1kn5SRib}U`(5enwv3iC{ zUkhfrakMJ$nE&C-nLDp|D|#{cB|Vh}+{Fy3&(+gx7qQ2l5+2jx4(p_fG|{VJFcsv! z|3hO+vHM8UcVN>+Y-UZv$8db)Wr3qk0T)yW;ow2nd}ZIPCvn9$p&G(qtGqvk31(}d z%ol27tHdWK+E%z>_OP+X^gh^$8LwvbSL?!|>E>{ljb>{PaYiyyGIT9uSh@uCOKQH- z!*GhaRZ!(k&V=Y3#sk9ZC)anhN6Pm-X$SeXFHmk8NJ9PRrV#QuM=8@IN_O@l56KU%JCrc(1 z6ecrgY;R>>GNQi+)6jbBsiQNk2jX*3HU0}P5g3jqDjUTrEXnAAV42oYO(~jfb~Qt# ziLAhAeo?Ia_xogy&Z>?ieTvVp6{)^zHWNCVx%e@whPCXuBHvr+wrem+lb!=vx%*w} zDBX)Hb3;$2HeRpqZ)ZJ2)|S9m_G&yDxi9FWdO~3PJ*zmQ;I3!(&Vq-lb@{7r^(A#y zb&--0R3U02b)xDQzTl|~s7H$9=pJ>Q@nKD}>(LRe{%Cu#i4yiyMt$C>(aV0%vb?-f z>|UvKFgo1ph8De5(W6_U4xVVaJ#8%m)UI%F}!NYNXwLf;JHG6B*yvR0}13E3C+zICD=wYAXoeDdl616nE~Y z&q+lo89NgV9!+Q{XybHE6CT1~Cjw>PgXG#m&kR~Rm{mqv3-dfx{up&T*aG{P4O4D^ z50J#U-xR^+OfA3G?tnK6opYsRxueI|CrNgNE^st)}%o z?`ExTFuFanCiXIKv9i;PW?}OxQ9X;okizK4-q!N_l&9;qE^@(cn`5p_W6P}lcOkaJ zGu)?JdLvj?bD0$Hi0tB~>;%k9o06gF^FBdO*ejKWPSE3rpj+$&x7PA96SPw(467x~ zf3NS)CKl^j09ci|N%&65+Jp?@{5LSNB zu4(z_H{P>2-yaRJwdgj>z&6uuuEUg-IEt~DhSN+2eetx3^Gz#}%~l&2(xMcZ1i|)) z&ffx0Pj5wa6@l2ly3P=~5fw{M2ZobkD|#xuf?OUWKy6zp_R zE8A@Dtzp}orU$HFG}SnLy4l8Bz{hovMjCv>G^D9ZNr!_&&bAYj#6ueVCP@5Nznpk) zWaTkClN=8o+mF@gaKpHDUDkUcRJLkfSLow2_oJ~wBNKfUtx!Zv0x#|gPIAVkA0jO) zE#+~$?9z*j?SOT)$gwc;?G$S?#IMb5sqWxRF2Dcf+?X54WGEjbx|Wz~W89rx+7I5X z^pGLYJ%a-`VLO5JuC9s987!VRG-SUJQleGjBYJqGDF5K6DaF@&o|oS*sl(Dz4k)Z7 zLsB51PPuy^_U6inkV^&eoEejn97;ZCd!zjBY^2iK#G*@V?LMrLkpX7^K;8EAd8=m5 zOxFHPnY)n+&f1mwjR!Rb+Z*7LbhIAdN$pUiXzxCcV2dxdIgf?x^}=+M1w38zk8+(RsD$X3y~y2@p))tQoG_G zVD;qh-SYF#wWeG*dQwhqmZa&cAbB=*?bBP_mu)#%W>gbVvX-!P*C2WkD=QkGdelsX zhV6Nb_(wY`HQA@Mt8Jd|40tD|^}2lz*Wi!4RuY|}X5;6>TnANh<3@CvE7439t4-&A z+egkb2}#qkjpH>FB!x-|(=I+W&C`3fKmwId5+*`N=iV~vI`dgf&&e9IkxziYM9Q}R zwq%y$WFu2viG9Md;vx}GmLgFw?7ySST3y<&j-4}kFzm{X8qvmF=oXN`kN*g22+8-iixdM|<+s^+JEW)khQjZ5H$5 zE!-VbGNc=e8;UwbXfIenea)PAlZZqzoCrJzrKGJs*_zsPzW_C+`G8Ht6wQ4^2m@b# z@*!*S;kx;O@OQ6c+YQ<{bHl8E}D)Rz7(Oc~=?zjO{ZLLA~OnMr|SmEA~?N&RJDb4!sWsJR6Z)e-H{%U9&au^(mGt zr|wAJ;;UzcK^SPaR59->fTXdly2QtS$b7;dS#!<>(lw8npz34Hu-r;F33DpEhNl1 zaH~Zk?9-g}?q(yE-$9W(0bVb(9+uAGlb&kO1jY@;Eg{^j`r(09nN-}<SD`HpL9n3Oy`yO$O|is_N=NyRdO_I2&q>>y6ZnSQ?{U85gv%ACHXW zNw#`iI#*cgbmghpYK8qoHPR0o#;h)!9A+HvVBd4q??ZBTO3jinGjCf6Y>>)Ytt4pp zzZ>*-4n{H0?P3U?otA`1_(^E%+KjG7vdcy{;Mgl`w*B^U9fXztghq;FTiT+pcER>~ zvQ*(%aOTs7NyPqEMU<@+scJQ=YVFA_E26RFGr z`g<=~YFgRdsWfM#U;mhaYO|rI9xvZ2r5Worr&Vu~n4?eW*&1Aa11)SYJZ(l|bKbgU z4pO<@9ub!Hbx5h7^5m&zw1u>KD9YnMPM>6!EN3 ze9KSjtXeqZ=Wk~p{3MT>M8=N1(MGt|#X7ZcsX?Ys(}mWM$_)_iJ)4Unt%lUnf|&u7 zLun?bi6@0!6*pR44K$)vSrxDglePG0pr;hVh1#4)oE>yxYf@qB{!L-w=50(_*cIJ{OxVP$j(o{UKpT=gly4D`U?h zV+ifHU1eEa$&mmM^iehg{18?(v+L%#rCXF5n;e-_h;6Ul50hL=SiCHic|%}S6{V*Vp*c|&BVegBgpAfzsDVJEaeTSj+)bY#Gbm@7cC*Gd?c}t0v)K68fxs2uH_jJ!+oa5dzI49E0Q4NilOdR(EiwgtB^?9Xtw*olcP(>rf zZxI$bdoCw!|1^!~C%-4;uC|4#FhqLf1k3bWk6@}F(N$bYrbRD72s9cdU?<^16R&H^ zMqN?ziWSxIba^lpkWM#yCQ2TyGv{Rl4_-{sQH=|QAwclOrp zzi0$El3OlrgHJU`XN+tp^>5CBg)oa*67Tw{BdqK=jb9eflXf~2$o@?hAYA+sZ3um1!`@h|uPR}?POzo2kE{uzb)7}#+97$bsL z^^b{()NJN1Tdv<>MfUb|_XU3?{+5#`lnWQHWegB)A%;McSmVooY-t;9*6i6;8f%@t3JM*(bQ=B>hmd{_?2E;Ixl8%wSNo`0+Q9xs%A8twMDw$56GLYLDvUoqDgh z_3^4?6p`vksjJVY{LMcghui3;g;$nPW6iZ!=CDa9QzqXFOwoEsras9%UCw4twpgu- zN_)c+eIGH5wR#roZ5k!r?7elr;x+3z&-CZx*`MAVPzBkShoG> z-bV4}uAWg!%1vAEZ#!a~1>cf*M~Bg>2$g9_E{!d0XY7Xe%48q@u|xd; zBt86sB$h~mlX7X!F!pEn%7RnU;o4}{tZssRmsF)ULpzRV$c=j&W((OLO{iabdN-B- zmENiSC!5BobBmP^4FUB5N-tuKiz@F?Y;m21NRLsJ?imW%zMAy{qkTZ^Qw)5K?5vVe zjZLop1@rm5gORfHC1(k5MnwYCl_yk^o1_LgoNGC{IcW6sXbAA%MZM^kSeu(5HOyA= z2n4$*Ue!Qn6w?t%wObu7>dtYl@!Pn&VbhVHV^rlTJ3ziYIOirnp9~Sv6Nx89;0ctY)k7d_xO@aYvLkiDq1I- zE7Zk&#g675(ZL-FQ3KiD^{blJr7k**-I2ciZqT#s2;nVmdPeT82#0v=P@JCxqV$jr zp<(GKuI9J2IlVV2!cS`5VtFK2?LT;lK09p8Y9Kq5Im@*8otOPOX_f@>~WPT=ipG`mn+pc&;EYLe%&e&StHot z_7@)1v$Tl0t}7lfH!0Fy$E2iTE;s!#$VC^fkq#o(h}`V6F9T|d zt%uv_j*Jv=KgFP;n_rkfkFq6~lDvSTZCaXKQp(1X`5=ufj3FsOFEwe*dPJkA)2Z0A zc2r+&zOrTcoJy3R+EDe!rX*!>2HfgJ?i}6Zx^1K^h=uEhmDD53o`~nS@b2qXA91LX zXpjWu{{F#dvFDCLdULn5Wrw6ad8YUeK$wG1#@MCbduSdH!Y~oP04P55JI4UHyjW zm^QfUwQ89c)|Aw|7E`RAxt34Y+dcgk-Y4w+-ws%|KXFa_sM8dd z=y+A$*9vj$Tt$pD!c|VuVW%aYhb3!w#Yw`$gpCLFq4jLzl246a8 zCtbnF#+mpyp4NmXe%4f=?V#P2jv=LDIgyZdEh_hnEY@|C@Y0P@tq9Rng&eCIXN~2f zS^I6_KlK!4TxkABJj8$9m;6^h$v^`%ru(bMzKyYfZ9|_GvA)uU>?@o;j1um8eeyU8 zgg;^1=cG;+BpboS@9;&6e_OwDc4lU@GW;0IAH!xs>ltn}YR`B`lXPXO`fV5XI7#BO z3Z-=ChCUYo0S$I5-YP^ZB_(#fdXKv5+|^KIJnhp(hbj_)`H|1S?qP78|W< z9_iDhc2ys!*?Sm<7!t$Yi=6ARG6TYfJD?{|o-q*GefI@e?pVmJ(KF;fBJ zu8JLE9p=8UOVo)QOPdRJM{j_~rPYdTmvL;vU=6`{XlI^<2q+;n-Kq}pEZj5g(;vNW zDQ>=22T2YsJlg&hAn_whonpxrrj^puUBgeEX)MSxT37v{s}w_-uO8KbtCV{UuEtRL zOWF57Q6FchDYAs6bvQ3sc_ob8!_OhRb;Ulm)yErJ?K+yP8rd~q_vYoI>Ou&28^AI< zvTNU2e-U1cIl5Qm-g!HPZ(>fB?7enRiC9|IrrD36Hs@i7X^BoSH=nVs0cw6p!_wA` zaP&>CHL~CJiWh#gL+&}z?m;D{?+lp<=JovxkCV9qsr(n7Z-XU@`gwRGz1V^?M?5qn zWm%ln^9YOzF~-Eys|;-W>PyZcVy4zf_U zxYrN4IPT$p5XWOgJuBLNPaSfq9UmcG&yv8EAX*etQ@^=cE>tS9djST<{?FrF`;9M^ zeGCI=8DuAUMn1IlMG+n_o6bm8rX1;O zi*)GeC99bvFGf^M=jScvY7%dWt0m;tFCdg@_8Lf^?AL8VM^l{Nd8_a#i?9u?f;S zRMYX$+}oMiC$;dV$NKV*(lO7A$E|`-OGegWV;jvTgi%vD2|b$yL$y1CP|!1 zOKOG>Bw>6g^!J*0{-;U-1B9zF(gC_TI%E%(X>QkTxEOTN8H%KGRK@DKhiThZ#uyC( zjlY;efYkxE0qErms}h@drYRGP`a^(^*uMXy^mlGg%DI=llH8X0!isN`ghYsE!Kjx6 zt3Aktx5^v955yE7kBojBi{rJbtUnpSMzf_Z@tT7!2`2fae^~O2$ltgAWvugd<@e*= z`(M9*ivBnfo0J(|8nlXWMsmZfkujj%>UxmD#xuQCDd(orvyEQ#vIeO%S_%a&6YG5s zn;w|`X{tAuzp`_{ z;Qk$!UV8b!Sy#wrQ6djG(+1`gQ1>1MBMj~pa>d+uL&BDh$>C1ZrH^$6%u7q4Aulk{ zWyn^NP!Ksz=rtti)k%vP<$rV<79sDPwbZ4Px%6c!Ym zb2D+^-J)l7_F|7s+KA_?TE7=z_=}}xh!+@n8yZWt(I0~yN*04VV~Kj{!pRN|80;*o z>XR-yZ&Mjt_Dzs{6WX8>DrGDLhKn}Lge6=$-+GDf)^_&@p4R1Zws_3xP3&*Lv>)!K zFsVvq7ti?E)F*N;n~;V!Y_By0sD>iHfL>!9RT?t1$}0+==x`N1=el#F#4X9JZdJ2e zoLk(pW1GTa*rumf!ItzSDZ#n91VyD*@A}k%>g;10)bQl~p@~@bI-O@&^lT-!$k$7c zC#>X8lnJb9ecxzS*6J&NuvZi6VwuMv1o(qO!fbHrr=*J| zOk{vJFp9>>`NmMHU_aBR**%3h7U3*<`dVQ{Mfb|M`UoF~(XRh6_Vg-n-y{mm1OUA#Sf}UXlWh}v2Ks1+p@AsZ55x{fpR@V-wyl#!VnE|7^sT; z`9v$AkD!zgB9!{{l;iQrJJ*%9yk*=VXwR`>AuFt?3S6volGHe$KUOFwU*MVi7Q)6$npKma9&Di;vo>%y32!C-5cQ|R zBF0}!V#URv$jwc`bVi*E1K=^6F)*=aHF9)rclXE;WeFC#q`FPiB(`-SUegf4Q9`#< zR)i#?(Mq%UAzlXw4R{L>TS2vjJ9KlowButyGR*FXVh`H}1N)x%r&$?GbCG_OHAl0N zdI#=J#nY;mc_?|z@GMcC9-ZRGE?W8PXT+*Os!t{z<#Hj|{;(ci9!X`I& z5VCMqmwPm?&f>TUqiPZ@FXN&Uy5kQSm+gg$hRHomjZ$4Z4;@K4KRooJt7X1L-9=$2 zU6as8MNu=nR)2mZC*!&y4~WBE%{O)LyrMrL_@qhhH{}GVf=;RY?P>t$o1eoXMPWr* z0&{)y0_?fpJLAevHfCbL3SBx$tFZ2zB94DEU1_8dV@vikF8^%&mcbtuLLkk{qixCup;2Ad*x8wJwSe^m|`C(~MKi zX+ukUEQQkLJHYl9FD(*cOwJFdW_mWA*u?88<=@nd{Wc=LE$LOm7l%^rc9D>Pbn+g_ zOxL?NA<(8>6ngxLG7f(6dn<3s4;1TilHnD`9B*Na9p*8FD~d=ctzI}HF6cHYd5z$h z0>R_|G_a1f%E(>Kxn^ZVP2>c&?aXZKSe>rwI(>@mOP=X=*tKj(eQaRSsW(ly@Ztjj z;RlY*NoTKZqZ1pIs@YZB=5E$gmV|{@Su4AL;q@K@VBv%vQ7N>52@wspw0fqxsGTe3 zK=5_~3otUNNGv2t4%RBw3KFk$UsID)s^=1p&%7NK0u2 zkU~cjQ_N;fLzFEe+qft&@kI{h&HYy9UPtMuB=Y(GgTn#>d$~r97aLrH&$iA6mqq6N z-{xFd#5k;VXjN@t;V~`qbsvqsC@r#2R!5$nI9zVY9h7c@l`m$#Us9I;g(nMyXnsmK z5yKa*OlIS9>tii@0IOeTs50ND9m6i{1@h{I>1+sk`;TAfTL4I?2cZ2j0rm&p$Mq!T zwoFG`^QWWmWrZxN7Z_f1oF5o>5s9^~3fPeCD1r|b!sh`e8BQ4mA^2|>&lo29_mu%@ z`&an);YiM+;rpt;^u6_x3|lp7yzJiB&~(f$?1N=qly-Y2KkhrIE4Df2G$x53H~=eh z7dCGklzZ~1*$k&XLrJ+onlxNw@0=B|yp2dWD&rwYxBX2$c;FMV4d>DX+XaL{1PA80k0$4g6F^{|d8IcXw?2qdBf%-lRXU}2pOpe@AfDrR;D5M* zffpd7JKyy(^T!?3RWNBZg>o*l-r;H z0P$$}S%KU?-}a|VaT;uT$X|E>TjghxrLL=+Er&9t01j5^qBsRUn2t?i!bZX0FU!Rq zm;h`KAF+UXe%Hq-0dUtPK!bHFBhQci!i#+g#G@qthXC4e59LCcj_(2UP?#31F4Iao9M!bG6!F zMLj6*r*NIQNleBt(E*rxeylgs!L|0d>}($A1z!dXdHA*efJf3KVwWvsj#^xm8($ZN z*UgUScHKV`Ibpi%t1-O8FUsA|_rlhePW4IP_e4xy_w-j)LChP_4yP>D09gxQvbzEQ z-c3PYN+ZFM=dez3hP3cp$MSRsVe36(f!cI9U{RyD(=Q1`0Gm&C8Ts<+ZQrFfzz8%7 zKYs^r?Mue_`2uV}pF07M@%tG5ZY}+2$;1&}NRw^@Ka&IoB6vv73}WGfrNMIh-$v!m z86$V-M{vHXyCf&(!e|YE-v@{pR)Y){8BE&eB%0IJ_t9U9PTzE`A!m;Bi^%PtFYYoc zu%~@kpRUSntE<+x{sWid@6Wui`0|@+Mz$ywd^KO)-p2K--rLZQh&xhdw@e|Q%` zx}Pl+(FVz?H=cL1E&aih+xr_gB#a03mlE^P2a0P?hvz!nI2pp2Df_5{@KVx9Yw@BZ zQo?}t_J8kBDmP_iYev-(qA3A8s`U4t2WEm;@G?X)SM=;kZoKn1-Qu|3S9N!OI=CA% ztx)+M9GbtAaqkb=(aW{-uXqy6zZ24e9B6)bU+YohOe+BX2}Jx4hg@S-2hT6c_GBb5X6r(TARtTa0hv-YlsA$r2!UM=1%QDx%!vdoM${+s9POy%#Ie_vf6sZopI zyPxswdoXLlDXijk`}caZ1EL}m|AW`#>w|`b$ROFL4`fGlDf6cNM&zRgV!;9~+yzQu z;_hyYQ|t6Y*9(Sa#Mg%@p0ahx$|FsXAqyn6Msr`w@(mfDqdu@{fbH5K#%UPq&oa6s z>G#u5W}G{$gPMpLpDV;E$o+`9wFERP@HfxaTkr9unZ+i076i?0xsW<{QIdLbt9|mp z7o{f&TrX(o0|=L{yX=0`(zK5k~4sk*#DjK;}whR1rm8l z5Yg^Ij1d=%gShvfJYAMvd#eo~WfMhc-5Ryj zxM#nbTD-z97p!6WaCdXi?s`FfD`^%E>#Hz?Fw3Xe{Xn;#Yr+ThexI8!;P$bNjGljU zF~mUl!OemF$yo#CilSih-}t&G_Oe?Y4m;Jc)?{9L*3CZqrKS}De_E1rF{^0c$($uiJ;6})njGK70HQB@4JZSM}Qi&$;ut(i!xP(m`sr>|>6I(qQj zUkwmNJ)-U!xXW_?p~UrKw9vAif4G=5eYdKiHpzu7v-cj4Y1U5#D`uN=o=n?^&d)p5 z|3)Q$7rV|g8XJca^0Epi2g7tz&6KCDdkMlV?4FpGpAoQdGBf{;SrAOJjEr#mT$Z3w z9k1+=MG98wriV&V&lxd`-DrJv{%fIxnE3X!rhzpl;o#;4QD~uz(4pz&2JLqg`f>--y~ zj9izCs_A`q?W%-OZbf`2Yz8}NcjNM@4}Bo)Y+B>lbtmydjTz5ki!wo`St#m&!eI7@ zXB4By9D`Lr&fy``WPQD9?s0-POQpX-jy$bGl;kF3 z-euZ$TMHS_2{!{93|Q-k$^<=f;?cTU&{Ncr!1bN#bv!d&;I(?9aQqh@<16H#On5sH z6vn&qWsN0NpeuYg`NJF)cWT{b+bA&Sc3nQ#5vq2uk|EE_8kYHs1~ks`EisFSinHAUO;;-AE&N*l1|E(gSgh6d2(0Y(}B6DQwoW@2(B?j&oAJS zPr>VHolCc?YT^%Hx{xV+Gw(cA`{_W07?{0U+!DIp%(i+eEx9I4NZLTpn*uo2W8}nU zRzXAs^t->hgU<-$`2XgW{|26I_9C!3ks_Dsf}?(0g$+cayd z;3v_qih8LDe+pAtKE90~8zDh+{TEjN@UhrZ;T>@{4Jlwh_j}SODWFRK`_GODx{s{v z1zv3Yjjr|6r9Z%eDo2(_cU`+PYhvH&IsjZ^&NuTy_jXw#6YTx|?na?mzAt@>C3`Q~ z&h7UQbJSTiI%au2Mg37?cn}FYl5dP(u62F^V15R0mmhC`;OJeb1MBD)PfF?5&jhZ& z>Bc<+u8$$&azi`yFwrL6_j3kRU$q=% zD6hOl&yqzxdE;C5livQxt3+sI1**+le2;gad-brfdV9e4td9P{ zZ1ks3*SL1>aQ3dw{kO?V2CpOU^|Hs5HGaKoVGz07`=B(6PLA7~{yLpbG*{U_ZBMnN zReiv=(N19ml6Lx8lKVr^??=#O9eVpZi);Ju;?ckBYyU1m{;yS~E%sX23vs8cgbZf( z4ZRZTby!hfzZ#V{X#PN(xIf^a&Ziz)v9mNkn{4Lg&d0UO1XQer6K0m@FQ}w}N=blf zBu>;QeR3+{>ek?2csJlHmM5<@4&`da&Q5WGgAV~NWFtW)%#ccpu+CV z^F%eTyUP>=lKCbwzAC&p_^_myEnu2BL$qDbeI&dn%{xy+AeK=akNI|Y7m8-HU#ifE zr*E~g!3VTAJpR7?%d0P{2zm1eC1Op3`a7odpKo;&PHtG=${4{CE&GAhAm*z3?sZ;S zLY1N05Lu`xSJsy&V=4;|U#tf_U}vea<7xkcC0RBhpHcN$EG5|Xu1?YN(vVHe?RWlq zMgXHjkd-4 z7q#pmfd-#7@Ldk{D~1n_C0t?tVG?$k(4U_F3orQlEgS^~Xa&mYnVil5 zjZ6_dcx&@`%lcL??h=k;`#^H0KRtoHGJwxJ0CXyUZv2IJ?-H2JOfTfWL<4j^NqGOh z{{PbQm+oES|8VlPrTo-r>S*oQ11LycCE*>(oym(joSy;M@PBC0!|?x&y|)gFkhJWH4 zQ`eO<(IPhfZM@&pe;d|jHb&TPi$?ES#>Ulu){@C>h-NiDrVw;Q{~e&^h*2T5MV^H( zgeYi#&Ra^PSr4Cr7U&x4?@Xt8R{lP{F!^L28l-ugbLqGnB;uXJhDB8=NyEI{j!&?# zxLoq-JcBmE#|!tiJ2hN7E;nXSP{*0Sm^?PF3fdgN{SuVi`k+bGq0p*QAhfDyY~PKw z`5miSZJen^y1u<;0uur5pvfaa5cOFWPC3$|*>Mi+PQhn~y1OP*%}?<4R%|O=-kaV4 zkv#H6^oK|BGa(6%XK3Fi#0hLt(n!kU9^NI`@HNgWQnh1;YRa0)Ni)z8RDG~pOs8$$ zM&ln@frc@*M5whO&@;qlCZh}Q-gCbxy$iB?@PV)k^m3Nz6mSqXU-TVm$Q`kAZio)! zTOeANi+a~zmhD%XNDUMSgiFafT2CcINl~DfQ4KiPz zMynOkifcG0L*7O_CAtmZdyqdWL-u!p^}Yd;Y^`bKS`g_kd~@uRMR} zLX*3H_4H)67GkC=7Ekg5gEeK)ZA(1esSo3&I0ziDIYuL*fuMzoL(${JV;%vGf<5X? zR8MNK>2-sEQ_lwns6f188Frc|B{b zsY)EX67i(+{e5yu)w;HJh`10wX+!t&#+;b$BKtHUKuZ%Z(inPZ7Jb)V_EcI!L;U@$ zS}G=HpDjONkBe!4hq9-o>2VI7pOQcSs`zmllDy?Gzok=a(wb6hFA*Vh`AOx$FF2#R z5rM&;$^zJ3_VAFgK3U`%y)KnP`f7jqOdjRs#JPEdp&a1HqcfnNOt)__3u?5j82=v?F3xmC34a0Ju5RDlb8># z8fMQHkICcW#kNs5M%tTw_d4Ah9$cL@Rlc#CEw`|UTj%PFcZth%H(^Q`Vam)RC%XrM z_! z+Oegfuw_7y0Sv>m0@-aisIw@uoqyoSDF9(7}b35;luX|J6Z+Flxi=oR~L%;uanFWa4Eq~}9U~>Sp+0U zu(i6nn*ZYbSpUs8il;u^uk;hPoch`&J@-*C|FHo6`j3SsZnN?#OK7>9qQLv=DOtm1rLh+A>SLPb)!^Bl78Xh#ZqM=*{Y}pE zZq|e`hLeQ}t?qP-o@(5i0Ks=VR67R^t(tYv+2^k!kRuE|D0|!UD1O#L=;2S$8g_f% z14@TBF=d6;x=ie5&|E+730r=5@cvV^UMy#ch9SpyMA1A;e%y8t3!0D5?6aY|zx}>S z*ZrQ8XC$%K|?=}qvlam|G%|GNVnQCRH zo~DMNa40GCwmS5o(c=4OGK8c@3 zsK!b%$E;-jTq2!l;`1!keK%d|er(V~$xZ2LniyNh7|5bkJwo+RZFJfe$pb%s~S&4Bw{BZ^S&%rdt@rzY09|2W=RkU5O}LA)nD1wRDs zM%Dc4eK9OTI&+G(*uz5S>jh7fk|u+8m6>SLBONH3s4EB!Z~EM6iXmi|;;fV$tI8&d zCiiEBjYsS|MszDZHbdpbibC%8%1w6nE`Rzq2!i<^&?jSZ8_>^r#crcUnS zM#_k|W7}f8!ul2nRZL(78qPZ(MR?#XXTm!r=Yn0b!&5B98z&@t+@0VMpDoX`Le#4O za!%W7YbD*j!*QnQbOhJGA@|%JmafIm|b$~KU9_VfE4aTIaos!<59u!ZkKGP=1 zs_NXPZtnFje@DzdoL&kwcSPnX3V#w@t2<48anK5eOS_<8++CVfQZY}jwXptXxJ{%? z%Q>l64GYyz1oF>R`=6!8|4XG7@u4rB4TGJ;?bE^37)0yM3FO=ob?a~IPqfPq<+d>K z@rjU(RR=7awDdV*sCfu+MO8I7cA>p0WMatVx~P7hg^`hBJ=0OkzI#8~2G){52v%2b zNFKIQ4Q_^6YY9+DShB_O+C1JsiD7f{kBfACxpIbO3(ijkII_^5)^je))+@#DldWL@ zm-qE2+Ff>0VQ(>@oS+(>kXU8C`*p2+?m1q113g%TS}&fLOSs>IIB&6OwQBZVboP9G zp#^6}x_XJ*({D~bj-4^C9$5coK|0YCBg?E>VOq9P1qWu}o9cxw!ayE=n#lmd9Do`7 z1z>Hhmo;(0v=B#a%0va9tNGz$I^d7|lfk(mvwAPfaAs!kVCXy({)&8q%)6{2`D#sY zlBCuylhVCbJa4^kU>SwF=E*agDA&?1-Jq8>@K{#8wmOe_+OZL+kf#b3yZqwMPr=nQ zd#65HvIwK78+^pmk@xkD_4SJCoeg<+c~=80$w3QyFGpp|QAk%LNH zPLv*2nKXq+8$%g^>*?rBENZ*h9LVMZrKCf zr+Ms{)yV~R4y!S=Hiq~}l0q;;&#k@fYAcJDzpfw~)xmMb@kmrfA$5FjL79^}xPZfW zwyMNKcq#Q8a-`GnWdr=k-&-E$L($|>sQAE_=<5JiNNpfD-Ko_*$i0_YnhX?^mAIhW zSQBhtB^t9*lfmA7)OEn&L#Eo2j{LaGGR}q-y{SpYKl^4toQm=KbHTf@oY~6++Jf(U z!nS)k@~gMBovPzEWF=E)=6p2<_{cZ%-P+ovrmd?+?Z1#E=SMKRMsJZG-E)!gf7+<{XqiV1q z$+cadn^AsS1ar%N@;8e37^nW%0KC~>;Qjm_R0q9FFWVdJ0=V4wAOpPbkVoQG33sna zThDroZXXG^{oMHfA$0Nghm%n@AVdBkGJjtT+QDOl4Q@&koO>9F%o{}Z3G(xf2*xUNS6{n zE_@R$GOM8~0|HU`%O|;G|17-+g*LtV-cd7`Utegb7qZ0A&=9YIyBES_k?>m1mW*r1 zPvvh>y#L@6-5AC`5y0fnfEV1sAXmy1e z604%{*4wuda8k}Y5t*wEzdO0x-@xER;I(1Qack$zFDM>(x^vp_$*5gv$TxfQ<^aL2 z8pQWxjx5tKEHsuf{L!g8U$!=w&Fjb~BK^5#DOwJj929vk;#K4p8(o2R(4N=@^rVCC z`UZkbyNbe>QCar92Z=tp2ekqt8DTk+69P++5lqMt;tynVln?hWNAu!J`E1?5KLg%# zbazjq(EfSmKcCP)BjKO#%0JhH|9PvXJa(hy0?5`Gr4K!}JL{2$(cbCN)js4@Z}i~+ z=uY&m6XW7g0?wd(_o6xTy_3H9Up_~_C&T~IetR8rg9%Jngy$qZ?A(6|@dbDRs7!xM zvu(U`yvCtht^;Afa1;paxLA0AJw`^ zcLy|#=9P&A??EXLiP1~n797NDKj9cOpbFbr#lL<8q*B|HWjDpQ_aOW`;HVwhdE6WD zr}Cj&^71+5@;@i8{nOQ!r!+*GQ=0*D-+t7_uYL>i9ww1%yJ^TwMEUFh3$u0InrzbN zjp9`B2xdP#aC_Pitc>1?J!eV3-SJ4K^ zuteQZku*(PbORdwQcRA6Oj=HLVe59GR8}I+UYUYSaI7qB33$SGMQ5R*p|v}IgIm=O zW>ebnW9nd7^jncy?|MQU^mfJvxFxxMmb$xh8W*#7-9>ZyKG~+=rm&=&$*2G!ecIQR zFXDv>QPxKv%H7DX4!$4Xs7IiGCHC0kFds*3iRst3b&T#SPcv&6rtjpvDxN?N*&&xJYAASl&8*A{WKFe{W$H z`t05nM|PpLuwrtN9e=@xc@8@@Nz>3(y`;TJ;gfL|npeaqF#u%hN(cV}4B0+Emp*QS zUSir`ici)KUGsBY+(4JM#GauU;u9c!cW+ON4P2DJzE@i<1c)`;wywBIlipN8(bEHdJ z&~t-3>$Ty<%E4jZyQ35beZ-XCGd*xlr&gTdh!u>T8_YKCGZeenvuEFQyiS+s=qVoJ zhX#wmDa&lA1V<=Ps>^L)cY4qz8eKP@L@m(rWCHg&x4Cq@MAaxCx>cPj)yvC4!=&E# zqB8)$Fbk{jzf!sUIbQz{Y1V`O-8w6=H!m3TO`HNO*&1}%BOr!k z^EZn=m%9>2p>Oyq7Ayec=)%8=YxU^SE-iPU{sdo!FM5kS`_n@z-k((`hD`1rAx2ya zUHb$NJJwjzJQC~|ADY&(fh|_2zQQ;$zzK#n^#^W6x+bfOe7QIdnv<+?SLZ73QO{$~=$lehyJ5bsNJ6Qk-(cm2+w6-4zNytsmJ?Lkxck3*z!)((*qld$_ zjF|f+gpc~}tidMvC-k`ab>Krb$a5s5ACNuP;TjsV0Mu3L^HzA;~1BFV^#S%iHhq?H7gQxq}w+c1pcZ-Q1b5ewLsT-1M!73nKCzjvvy>Q&a5BC7x#63 z!Qow@Wmcau(n*FJI=rg77AmkqkNgURd@p{Nw6>P)Q%Hhq#jI6}!k9Ep;C}qdL&<|w zvdB~F;GxU325c*r4jZ+<^~L(LM}kBy{tU~VqR6W9Er3>>Zg?0PvLMT^w%yc`s%N>- zV*-F-QpOD|(W(Gr<-Z=%_`qIcMR%DXac~5P3s1KrYHvD$?cpADZ3VNSJ3iXFqT`%y z&wQqWp}GROr1_(QG?q8IrL0~~g0uo~P%qu>b1LK37<`ROXb#D>+}Y~CZdxRVa|d?z zlpW7Zn=!o$w_XYmFlI{*6ht7ffmb#xZpwc3s*xp6!eC5mk!gUc5vp#Teg zYyp)d?}7L8l5UP9oShHn!oJOr@2sA~x-izn=1U43u%>3?t4aSyz4WWH=+3|;r4;MO z*OG^E#j&ccBWO4bUfWbf9UPi`DbIwLghp1p0KM^ZBj1+f7+f{*aSQX7Lftv~#OGhc zoR~t$2B4U4EeA{=$CGn6qW#!#6j$rDL}v*)EhoU_Ep!N2 zzTCiFQSl*vAu5+c3Qw9#^05?rS-YxgtTb2NP6;Jz)`~3I+4>^Q+bc^(^TkIsrl_E( zCKvH0QDGr?)g4`0k`vaxF6fF9Z1xNN1K`K!s)T2NN2ZRM0)b znkWjbKb>b6bw1Dy$tcwBHghs|DPG)Jea#C!>DHEwWd5L$5|~c+B^0leFakEYFVPxgkul9}Aj%)w zQr~Z0Ph^dk*>T*6m_n+`vR;=J6(xE(u=n-RHLC45OBsg_qDkTc48LdfW1OyWUbx8_ zM7oM51sr)!t`$w(CBeSGH+o+@!Tb(ld+#?GX-7{s62uvjc`TJZFI6VCHRn5;$=Kvc z9NJVtUk8>?om}z@5ZvbtK4Im3{}Qj zekVUd zJ$@k-AB{vcDrm7k8&Mu|CV^+EiywKz>Q%U~T?p6S{bX2JqaNYz9xKI}`e0zU>`)6u z7B>A5b6M{46>l}$~|_f!MC`0ZdZj>KUFc^k$H}dDe2)bNAF1QRSQ&r z#7-UiRHPkIY(TlRcvW!2I`R`@4kSaAZk~68=gO5nP;=kI+g9=0)Dv-A^Mcu8&kH&p z)`c6Tv8a(i@3;A2FV!kU?Pqr0Ydx>cNt5_tqo2Y0&9$?gvAek>Clx0i)I@Q+U*xcnxdN>dsF4@m-)&N26LZp9|U}b-r=$u zy*hEDFheNIh8%TdGPJ-Wrww`G8XND*BxcKE@?)9jGoVMcV+wtS5q;(bT4Rvjqd=c3cL! zyAb|rZm09hYz0r1NOfb6WK<@VRaNnN>n&=YKa|yzb(zTHJjG?uNnOU zhW8s-;df>s1uv?f>vB!*krnjUSc&2>r0eI=kfm`V>F#8dF(ET*)Au0hQs)h$BP0X? zV5RS*wH?+vCw(oJ#a~S40FM~he+lL7$9wa22Hihs&Y8{R)dUXnM4GpL=z(eC<7yF3 zPB3iPpDRM`Lb4Eit8YbIcv~(^HY3XCKJ5x z9#YinJ77oGv;X2{LhPxMxfmx1x0_CuD_u%YXdL8Q#d*;pA%U1xl1ir zTC`3{zEJOoVXx9PIP3H8qslp93@RoOQhT+F>kCcZ0Pl}Hl%jd08Ko_4CG<)}>4m&| z=19e5jf7yE8M0wUZo>Zk#xs%Ec82WTyWghv>i3rD5P(B_2E(|)sKeW-6lbczFN{x^ zwTn?p&{)yc9>rqP2e9Hu)8>=rtxPY^vR#WDiHrZrv_zI}+oFrMaA zZFGZ1J$gTBytg2I_;To}1DU0+Lzt+TyM2|xYYG0Pl`aGY8Iy&HUuP_so)T0qo|SwR z0xjSx9dDlN8{}2t=_YN%A`~Ql?ctqu*53OLw0g=JPKgl;S$%j-l9>gCC$)PxnQirw zA15!{BRHs6GCHX|ykLG}wEq(Lcw#puMBwHd8sqF;t!aMvTPGig!?|1Sc(M`C0AWg! zL4+q~mnCwg1_j+uCP zAFj{l%rFqX`t)^lJw@m9bvhM*(l+tuJ?EiWbEQ|k>uFA{k{!y_ z=y=G77rQJdD1bs0S8zRAdrUjSkOd`abp53mrdT&f{Ex?j1`X_PA*oML37_wpQ}{U} zePWR7QNdLm<$EHF<{d7Q;P(tI>%XBPhQ^|oY*}?opY$zWXC-h*x#^pnDi$r$Bydmi z@jd9n44{4DBXbWz*OIt#_Isv3k8~ae*155=v!bktGkl)?WEUHv+*(83LkK%gs?YaV zf*5ECl9Y5a{1PXBXp6Nc0V@P`7TPs>@157K1d_Yq9<-JSg8bEmjerZ|?^DrT{-JBO zGO%|KidI3n4K%q2iJj5iP#8cE10abXwveqqbj<=;%kP9FG0t&gZU9{~xEb*B_dWyN zwO8DOGOuFpaLQVd8=!yt+i@CkpDx*y+6&oNlgfMLMRVQeIP({UJndcH+B6rv8bvSo z&#%X$tXVyAMk8dNCjUMFYZUOT=rhPu6X0TsSq$tKQv}%qZ8_q@*6E$)GvIk`*JfcS zqTG1i=0mP9^#7!=hH%?oJQpmXvx46FPtyT6eq%u96VQGRAWhpez{35<6Yl=)F~j!H zBmM_GkKWUSYt%}K{S5sEN3$`4ap!VCY4uZrj8+fuczmIEvUjQw1pk=X1-np;UlGcv1y2DV`4=CfvF=_CG1REZ(6LM=z|caa6fJ9cRoEe#=N_+V1u3DaSE z^Ll+u?p}x3Nh+fJCai`19`wU(`YzlWbm<^n*-|U4+^$`^;ed}E5MlRzSGc54=@cnm zfMOr$jrbO~d@Vn-g2t*UX9_>+Ag?}<=}eZuH=NfZ)1u`Vr&1j!y*|KN_sN$KCss4L zR!%1jDtCrS%3_9iF+XJI z^0xN(+`Qq$(_?0x)z+kPnq1W<+!!x|hb&DnbJ;-#H3;R;TX4>H3G~kI?JNNur`gLXx^R*taugz0(|jdU75D^3j8m+Q#DtY+WL z@!}m)x3dCH!M*pW4QEEj}P8fyKs~61SMsNj>DJNY{`xp4oddz_}4?Ei#NO| z6TNH7kC3&!5R~yw;e-7ADX2Y}k#Vg2xqz@2OelP7Fd^i2-nd0`El`ry(`q#eZ~ol8 z20={e4Jh3r_l=?2`Vlpu)+)h~$`_NwFAh{B4YK_3c~KU@^PRM`aJP$SHt**-b5@kT zc`Gy@y#^J9nFCl;zi|a6ztKmJ#mc4XW0U%jAW2;wMbv(!0S&%UE?EY18cscdPlkSO zyL-;XH_^dsfuFx#*((}6u<~YpmXRvO4&(q1H^SJ45{(;pHZj5=gu9e^{*>rh3=RaA zW?hfbtLPg;M?ac}egld2oCsy%$taHX6s*a&BHxL6uHs_AL}}ULWlfrYFJC)*nKl1v z(!5{?=gaHZHPy9gKYC#PP`+3QG=^vm_m(KQ;X<~qG%jjlHhs7n&f&JSU*2)RNy&6p z_;GvkIIQ#1&lZgZpm(2^qIK$`S0ij-hXtiGuiTvS7Oj5H%DaDiRnTXf^VCwx%p_&Q zXbGk95xSEk^>lmADh+;j(JB;Ier1_RVa_z)fdZ*7?LajMmPsi}=JfOqffYK8MUAirqady%4)RSVL% zP&?Ah$JSY>Ea}A>`C(?^-h-%WqF@pa!2?Tf(VkWFa+x;fAALt0*>Ae=gbC4#an>y` z3RlodYrSSpu?5CUS29oaWH!28cwR@lM^khNsU8xKVu-+QO|-_m8PXD`39NME8Y@CP zOBeKeZQ~a^iGy{1dw54LBod=^>VwCwmaqo}y%jjv=rl-ce3<|TJ@7khRi2WBP+AT; zXWWYQxLP4KOVr-aZX-nCjHV|x0Om|x6SvS_((mGAgF`6RSKSj9EY4yBdRK zLrr=VFQ)r5AQ>0b+dh~(H>Ynytw$vU-y4VVP4xFF^~P=*zIOyAfb|>x9h~AX`{Xeh1{saqI7$X4;?5hRSao3 zbP9epHiq`+FL>9nlf_ZJ4((2A>g3>VN+)c?i|Lvch(kKdiJCzi?C|QQYUfg*Cd`e` ze`ZXoxdut^Y-09MNTGWZ;B|nQD-fl3Ik3eSeY=36DFotW;gqN7f|WKVm|Z6Xj(-SN z+I}A}&h;b)enYLSTz<}D7HIHa$|HKyqvLMYQ~L_U8jD}~!$v!2X^qk?YQ z!qK8p6$Bok#L0ZZj|~$`F8CF=&po8&KEk?@`r6aqsRv)W591q>MZIaVO1i$W@%m%l z;?PSYJB@2oES?hQ8^7lZSu_KvnOUH>Ah*AiF#jjuFO;ZqNN*(F*|o(zDDUwoIwaa# ziZjTYXpN4f-O_&Rw`+0pTVUG~k;3jHiczb(u|!*=!?@u=eqOr(CPbO6GubEkTpNB& zpV@in%Wtoy$l7TsMLh}c|I|}a`{+BSjHW1>AIf$sR?8D`&&5hixBKK-N-ILfkJGIg z9iO0ql|L7Fo2lY4Uu@xI#pA(((&L>`cAgi4p&gV3eusP#;kM!-=zN5ZmZcd4$8Me507S+!Q(Cmg?B_0ZNEeZpVIm?Gc_S zj(a*?)){8 z6hz`6{=ARFTitvPJ+D9}8yO=zYB~W}s(jgsKUS2$d~Bhqrlq2y7n{Q&@Z&fXy}Gv> zimkIF>|5!ZQd3i@XD#5t%4^lC7~PfBz~k3T#XSEQt0~0|jeZ^UK?CK?F>>h;o{(DWe%JEQ8Gvsdh*9 zY#g>ht4i1m%9K1$ozYOLVjY!mLH6x{EHPdYkRfWeUeR=eY)Ai2VH9FjL$uov6_R58 zUVlj`R$716L*yZacq-q4fSnSf#Wlt|Ag7)NoY`BomTzL-9sSUjYZAfyIl*ZQfRM{R z;e2V@cF7z1PvRICMEery(%!BKZAM%^4B7U@LwJO(Wg6jv^|U9y`N6ct+05!6XV!fT zcS4S?C+`zFd^8Yfr{$gc*aDS-ht&GuCPtAAC4cfBXKyUmaQ^Q8;}8!QnEUSd^<{Zh zx8U69eEHmN`kWJbZd7~8zV3PL;puD6e>8t$H|zuqrO#lWXObcSw)eT<5BO%0vzvp! zKJDA|pFWL)BdP1F5YI{s_k}fTShQ(FaO&&Mcawa|HGnXYRjn4p#Q(5Nd=Ojy985-) z>yvfxDlSR$T5q0+f6jI=x7fLu`}uK|d}N(VN7AsDc|;Z;z-vTBE^Cf!X^-8|lo?v# zl)$d0mD9A}6+H=cQ>%MG;JFeg*UwIc&BZH$hMev?A6r7&v|lZiS`cTdkK|jO=zkMO znbRTmb9~jS|5z$s?}uD-5Rh8%){k?#6+oVTZZE#^4a#y2fL%w}A#V^_PcY_UYT z$Z$88ky>!R|GUf9e>2aRmJA_v9*^XK2eU-<(DGGMb^%1rFpl(&LwMXwSL*Y0xak}o zzNl7e)Gs&~`}-uxHM`N`_?F25(xS7B2{x6NV$8h1eAARtkDmzb-l4Tv|3ucgOoN2L z90Hnz)|RmqjxBY6{iq94AeMXFuN5ts>$knz*G7o;yj{$u94o9KGKccCg#yS~+s^cO z+D48=jd0D~j?s(9Q?K#l94bq1$fF>e3c>546y$ClaBeWT=>%C(`L2{zR`F z6MtJbId9F5c0{eNDqJr@$F-0mJF$>0x2PS^;&j^4zX$D30cni5#IY6dr%5l*li!0b zuaTU`q8KoUzo;jC#Bi+2;1wUcx>N>z8sMoicPYuqR0{si*6$$U^7=OrJoTM|LiA}@ zpUC&6sqkg6q;sN#RU;V^s&j~QNPHIK<(KR(#NErZ0!t0cUX(r?$kP#$tM(dD?61lU zKd3#-^|84Y0#f0qRn|O&M-*q(QI(A@UzNa=`*|4kAh-86?c0xdolI-~fvsY}#)g$$ z?~|;0M2|fZ6F=s$GL!sbN=S;Aa}h8tDREof@zD%&tlHu%mjj zan2hW+iXs1sVRy258C8^m({_;=ksD&r#gIiXI(p|p{5a?0cH6?KR4d1l`3oe3PJi4 zNlMp0!>E6HnNd<9d3w77y3FfG41;-#d<#!7QPMlvnD}KFZHK_U^e&MBCxREBSx#b=Qc-;AY(HtHQpUpL$qD;7Q!KhHix3NwpO@C>I})UP z$1)x>(jfbllg(krZk3YiNTi&^8OVNC<}|X{Ih0qS|;@So+0Cu zsFYKIG(uaZgbMIu2Y1=42|fwa3AZ;mr10}ld0p`UWr-F}yhJuWFEiHU0DJtc)8d>J zo8qpUdnfcIK{umbD)qOh;w{lY8YxFfbT$YkZy|GxYBl0%r2~v<0{WhE2+K4+HEm(O z<|FCdD|E(yCCw8*c_&Fiog1cc*RNvSV%Xi3cVB_=Wu5VY{iwjHvmWC|o zA1UNwoDV>>dX5hVM}n^u50fKXRQ=5jbeOLLFfOsIfy_{ z3p)IB7X)t!Dc>tjS2@)r;;xZb(X7}vl*|3&umrP@KHwQzPE}Ra_yM~u8~ewaikc|n z5WpPhR6m{%0Fo8)9!PFjjc)N^e*A_1o^d4SO#-APDM79KEI{#- zquHElJIq|aAGk&rGe^Nf>PtEk%ifN@gGNjri+Y>Ge5am>=D0?0YA%-kZquAJ44BTBSVX&wes4G1hxs}zclo7GqxQK@!Yf2g+}iRZ zOXq?aQ61Q=E-r`V;v3FSvAPSdSJM6B<*?})krpd>vwNgpx5JmVD`|^NIO^ff5_krc zJCxku6vgqw*rF4)d1cwIwrKn>ePdgb+coj6vFot%UNPs+GOEUdIJ#3l9R)*^0S5P_cJM@ws!ZEJ8Gr zSl*UxKew?OK*0)>@LB2m7T+1}IyARi?>kQ2ks~&%SMEXnx}O8s9HushsgB*iBsl@? zEz8fB*^u*;{{3v9K5da`g*$JOe0|sJQo57I8F|CEhFy+_B|@fU z`ztyrw~dGWFvl?&-Xk&R@k9n@{X!#{ynZ5HzR_Jq6CW*n$VLV~Fz-bY?e9qa+*?A$ z%2lIqBe=>@kT^b>FvM^FNYteC>FYsz+`RB~kJO&c_TGip_!2M6Q+p7GMEKxQrQDW{ z3t%|s5?TxI{S6E(x%leNmgEHIUP<^C+@WTq+%_{!A6IU^f{n~4oR=T>h8%E+vaV1a zKKvEu!_c2?9M!WLmbogs8f4bqe<`^FURo9zkqD`O-ms)rP-uP9#)cl3zgv^0H`9;(wKztke=z6sBZ=vN;va{Yo)jynldTbMtZ}O| z0ke5MdF9rhbOyNQNm}RK1r6Gge^u$#w=c}}NP~oYM0$L=zskT#8e|;2%52h<&%f%+ znEJa11tmUio_O_@JK0>58YKv{At^F=>!LH>#Fw+{(cn!w*LCs9t@>B7Kw2EdVRncl zg)$Qsd0@IJ&Q><4vk75d&tJ|TlgFPPPe*VMGG*@WQht#ur9c)r^nEXd5Zy4#B)Vx7 zT@}$Ac1R^NR>DS~qEnZkF84HiQCCR3*VXP$cD+7=s^yZ_goN6-vJPaAOtX{T>YyaP zYL1_?j`?m`>SP;_MfzN#ioN!kaXUp8jyg>Fv96Vj%Fo&WTn2V2O})W!8@|ih$A$yp z3WlG=$G#7}b3h}1RO|;LJnH#$2PKQFX0ESn{!u*%&}oRHXE;-~I?X$z-BUGUsX_#q zot;h!87(oavUbIpyl|Buggf#MVvPwH$%P@XmwxL#KL>~p7h1iyK!|h@K4(hzr(e}m zVQXT_`vMSzthI0nspex*>6arPuW3@}9jS3wI8ma1kNFAD+u6XF8hmqJj+U;+vf*1v zq!4=gLkT}JH^z!jbfTIm&h|QdLA_~VZTQ?K&Vb-mpI_WfGss&niLzk+UNV{^kc{A| z+;6Q-!AG``(xg^bbAvQx=S zl$@sWZnG^tx8M%-5S5gx;YvLYtNuxRv#<`bokiAMt={la$IX47aJ!Y4kCXiHhJV>^ zZa~22=v2FwR%U1hjS)oNU=h}2=aUV_R!z3U6B!|v!+awzl*-O%BXo!*(eiNSQr`dA zKc0Jm4hFJ_|7+Fd4W__6j7uY}r7IoVD}@<2)Ar-+d-H>#=%cvMD90ox~A zvL1&@HhHkA71^Vo3q9~cE&?TH`ici;j%`#ahMW_2;|81$zsp;c?=&c=wkVm@kv>(( zSg5;x4_N4J=m!SIK00q$j;_Y#)SWE(Ft(}fhF#36_pEd=?>X*ThncxmoKB5&@8Cmc zNs%6R74&r9XEn4qlYEP6hgAMn)cwv6gJK`JF)P@iHS)jeh-<_s6r>+T_waLLm*Y5d zz}zK$Zri|Dn$zL``X^Jq8Kz_%)bGgyv-VDuDi9WEpbi;aJg;k1Fmu2>StYNx7iCB+ zhuZUz*?2zTn5~{Lz~dvIJ(3sHP#bn*@NxQ+@_9(&RicaKVaj>3@&@K%`2)Nds&`6Y zCW6ivO8l{uejH2S;;ySt$P2X$*PSXT4r&Od-8zw>;Li|e4+{RS?2Wz8m*ADMP0%vD zEDzRrX%94cPiJx}xMY~C7p$lat%MdD31Qxmc28Oi@? zrw;bv{8k+FK)jj>8ckgHi#yl0hP z#1?5BAfH2-JYUD9!A;GvqKxJ^Y>5^d*af6AJ}?{Y__+(ci5sOFh-Hl*=KHc#+Z!3C zos-A3i}|XO*oG^j!K|DJ4ngvvA4sV2?*Sj_;0ai6S$r zP>fU&kkG1#hy#w*)5fn;G0O2v=j2S$nBtR;qrPVfkvdxTEA1)nPQiPU4>DgMwB~^c z;(0kA?LFwMgYVRFgbPJQ{GMZ^tlp487RhqpZsX4^3Sauk>VtRBv+Ekh)jAas95Drh zg!8gL7i2kX^SBu)WK|T>r8S~|XY}%-EZ6|>IBm0WwiS`K9&fS$+3~_ILDP3lfiQkh z*;mNadOZs{-SZI;t=VchF*2VMA1oyaZ;4G2;P)jT=cF)~9ht+4BLVT~zfqM*30O7V zXz?Pc&>0jughBlW;(8FcsO^W+d9REO+`*W ze(c@oc}P-gUl*m^kJ-*vcMq~Xk;H=^h2O}*Xp}qr^mX*+7Up+LJ@991FH5aFaqFH9 zKF8D+V#L|y_VmRBmF9vAi~`@l#j~Agsy~O6oi>ZhapIOte`k)9-k!aIBcfF>++w|F z&G#e;XTgC6tXT%T<9dcz-fxR$durfvXfiYn*7UBi#qso#XdEEXkPp-#wUpi#ma5-9 zr6QImx5XW`Eey3G@bhu{fMx8BZu6YP7Kz_juM2NNVSCC<>BFFLmUve!AqOIOuCzP{%8!hy8k*%SYG zML~}4rJ*B8L=j)3X7Y5Ns*n$pV@aD(Gahq}p#7(Sr-D2^v$k>cD>dOjNveMo&miU# z!8{XrUXtrBxuGq5rm2ZjaDwV5G=h}5k(%!Y;VW1616+$j5YT&rbV;1@0#oiy(3?+y z942tUJxEIVPX2$)0jQWwTxFfiLt(H;-a{tHsmJ<(20+7V34ewP`Cr{G-)R(sqEJ~G zhXd~9L7RrBdlHqFh~$HW8^z^jklo*F8~DFv`yo#~+V}ex6}lWjl9_QIeRL4z`7k5E z3JaR##IsMd2W_nq#>J!a*soWDAZ*4l=>ge zhAI4ch~)30V}JhgE>_|L^pf`|SmFZER2WZM^aMj;t$W#jVgbefH4BLJA7%j|@Wbvw zRTk~7LC<-8c@Wi!x=kjG(iINXhFtqN&*M|~jjYeM!cUy)Tkuixtix}U%MXo;&eQo; zj~*jz)CL{nUH`zS8v({KYEnY2230HL2|$Se6o^&m!XyZ))mJ%Z*H%mWn(O*Pc8_Ov z$%g8$ckF0QVyI0k;v`uLbT4gXh+$6Z=Q=*@Ms6M#>|`+CvqU6z{5m=00PkgQnf750 zr-jmO`i7PKzySU+H?Q(c?|Ce8qfih0_1qsB=9D*IX|E^07jr;WIC>JgB2Ca%Ackfp zC!_#(Dd?PyHe=R$S?s`4e94}2mOUMXhzJyX8u>$?(O-k^=EP#8-p4Njr{$ zMI&s8DV@L3BTA}YtQ~U2d%yjojJn8A^Il8DgP=zc!l_0cDZ<@~u<+^L;_5a)Bba>kv3bLC(E9tZtjW9!Ga-W0H4kQ?pa zlA{bRwXW~zZUC0vSX>Pi5`Jcsdc|c_1vUKFS03fzuhQyu!?%k~>YepQgQ;j`8y^N7 zy+S~NGeG|=69M^*AI@u2`s8V~e;H#kdVO8>wNy8CMUxtNi`mSEzTZN$EPbFPrHiF5 zb59Owg?N<7(^Aq09zXSR6uu09hKUx@l-~{&QgzvH!cV=55c84~lJ|$O#MG(BN za1<~NF-|{aneuy*(BVs(HgYZQfNP~}yqS78bnZlc(>Zy5(6hET<;TlBR@HyHnyXl# z+n*ac#aSWx!gz)&ct(0L2MvuJ=0{&S>MADoB)U_&q9&Tc8#%SK$oP2hM{lzvwLtPa zQ0%Fko2p$rmQbVeBMGAE>XZGwOBdzEQkoh=tE!(qc{!v*?J7LO?17b1b6Tj5C z4@^%O*B%dP-l<(Wd7AQiX^~UCE7EuU|JZx$sJOl@-?y;fPH+nn2pU|2gy2DgYk~wV zG(Zsw3GNyoxI+l;?(Po3-60eNDMG>T?wr%zxBK+zbGrNWeeaGp&OZ#srr5Q{-fOSD z=68PQXR=`&N>SXHki+I~60g_sZIWpXhZsDsGM} zJ(<}6qB+d07#^?H9MnUg$oPU!ic;fHRLj85ddem#ET11tte4OFgmrPHP#oMfG}w=) z0+R3+Qf!J(LAioyVc98$V3A%zG( z63yQ`1&SH$EM#-mP&ee|%=TQ$Xz&%MIWZ}HvDt>h5KfQCfm#`ea{?H~GP{c4Pnnth znX;Fqq&0?e=bgx>NCc6r*qxn+eIR3RiEd?u6WZa`QgaNV#k@C^sPu(ozwa9D7xF`? z$L}X=m80Z1&Aci5RSY;V&MX?_Qh3te4X*GctT$z2Z2jFa7{#c}}J&#EYJ+MZ`!*unM}F`?`r=CnN>2q9 zLYX&pYK%o%`SLSfSny%Lu_Q}kVnp*l?cWlfFj7ZNUL%LC71892CWq9HG=g<4FkNk^ z{n0kwA)#AuIK5y+`U&^wxiRoRS`a18;`&-ZZlY{QrG!PGb;c-8fUzHm16JR7fO0D_9@q&OC3JjE59f5Dn3XP+0O!x@z^ zQi=0+XU7~EWrWJ)r7?*Tzc+1vuL6nW_tR;b4I(Kqsc~!`x-&WhP-Uun7WGYo#`op2 zu?-DZw%(j_Q|ih52Vyk&aT&SJ5?= z{P;O*PbJ1ha%-y^{GT~lD41#C2WnA(TmxU3-e}?ZsiPTlOHJ0wIDIfC?NQ^4wY+;= zEwi^RyjqL1%|da-kAyZ5)XL}16|^4mp($uI*R!|YSu%qa6&)Ir;`g3H{KDHBi3QdW z%mvP_X@cz~bEZ=vzB1Q@#lJXhx-KTC`hx5{dtr_I6L>np#9eHXqNrg7wcjR-iC(tU z_xDg|ufgARu6V0}tne}58upUaA;J7{1-I?K-}^qB=%z)rT!Z^hoYSpHkT`(5HP_cx zmj6II!&F=69*<#B8x>D#-jqTT`HU%E;YbB!;?4a!S(Wlts$0n+0}n>EwN}sWC%-hF zsB92Vq_Y%BNN}q#$J6PMkjtrp(Je)ezI-38NDxvAkH6D5Uio*2Ql#0_{AtGg2iHr+ z`3BN*k>C4}Ihd)$lHXD}xw!C*tAKO^dNOJ2>)NX7CqEpNR!DB|t%>Q)aS0EMXTNK_ z%Ekl(Q?i>~kK;oGJA|{qW-}W5gKV&zj^+{QR)&(LYu2C5t|EY=;hi_gw|gfcW&H;gNi*jeQ}PS zFD@U^(#&vW*Gkj0dXUBqR?>seq~u86;-MFSR8#Q+Qxoi-<$mX?bWyojrvI`7mTc|+ zk?wXVh1MUCW4zw;ZS|m@*f#c*XHD5YhQmu$*Dfy3U-da88-q)nb2F{#15g@RFv?{~ zJPzDQ#Gw?u*ba0Q<@wNl!m$)FcgW>qLsVm;PUgrcfo~Dko%M0id)Dw{|=@5R( zHLtSkHv}#}ZYie-d1;M8B#CD2{_B!*EIPy7j_iB+DHrG4+E-*gUY)z?kyf+#Jk8-kxlzn+w6RCz@pS=EbqwCyx!0RkU zX8kwntp0kr*I)ey|=mVbaI^GcPu{4+mUmoca=QJ7nxpc#>&$ds&`E9wN{P<>}0 zY|s2mtC%y7WS8Y29-M`P&;)wV1VL$G?;2+igpQuuFKl>GfE;)3BI8H?A3{QojgduJ zUv$UJArCI;Lchy+RSW()`tA-r3bswAwWcH4H8#mWK<+);_sT>|hs1g>9i z-Iqwkbh``DlEIkQ>1<{iYy^WD`&DKV__xt<7&-9NhN96UuF}uMABc7e@4QORRuS#n zm+L2{*a*%AI)Sjhf&4NZkBh=&CORwr)S0!W(?38sz8h%|Sksv=bhq}y9S|zTJnK)> z3X^N<#y#=5po@I>8|LDdXC_J5f!00iePd(Sz+gS#bdP&G6e1@`GVo}72Jmq|@7qia zPc<-kQ)U(aLIECQWC-8pLsGMlKa{8NAoXqkyP2|i?&r}#gB0#Nh*8D;GH+EnTzPC- zrRN$Z3J5Bp2|kWr9rLc@ua4DP^H*Er7rB`&+!C91|Ekr1j{9L+^5;|E<@JZDihym$ z+Ymr?1I$`8z2lO*>l2p}rWFC=>e+aCo&U!5(($icFM|K%dXZzlPB`xVa}nErGHU!U zEFgb%Rr#Mg_?IlgTl{HzypnH+sd_19Ldk^7VR{x%udx#@$L*FJhW81t-0L=t#rhwZ z0(#b%GN=2!*+#_)4;HX28gI21|CW@t-Hy&Q`*#m9HSz%Z_pRh`Echvpmef9DE??msCABiXp!#Z z8tnF>l~3+vF}*0+BNtQr!+^%8 zjmaW>`tY?Q9tY#_Z@r^C-Q*JLZ^KEl1it7S?1#(;2K^0c(f=Up5j_H`dY{vd4}GGa zcis_o03ahf_cJQa$HOT6#4{7gG~r@LO}`F(T&-EX?>RTg-CrQ^*>qn)2{Oax_; zZs6zQj{5s0A0I?%M)TLzTe>VC0KMTK0F^%9D{LpZ&uphOx^Le|3_p5USzl|sQr4>u zm8amC=6-?xTakEd#-sTsMM9_iVK*0{wssK%x`>PpS%7!YHZe9wwq*$H94Sr5d&dX- zJTS9fuNpYzJYUxc=(>EA65_-P&1FO;?cJtt89n+M0-)6L+YC@UHg#WM zc>4~xO^3iT_~dkV(RYIfaLeSu+}pgJx6ZH)haROfCTrHq@z~T?RX)X{5s}Pz67lcr&V3i^o#}MoRs(ccPhi0TxyRhLCQGP4%N%NNpCa2s zPrDzB*r(skbMdxK*_6;ao(BN^`OcZg{np46E$=uq<@v)>2If+MTq2BOYp(Ue&o64=5?7DAAZbTROMV;lE!JbAZGstz;V#%1^L3EWnzWw zz zyF_n&&W8nV-dn%MTzf7QaHaTm7NP95CEQVc^|j1kwH!Hsn5-@tqTT^P8~=!thEpbAn@qr8>&RXp5cd(@2(k=!1pGqqgK1kP;K`BQAzPV)g+wF7HX1u> z`73a2)wb$^uIpYUQN}9i?Y6w6UK$P*emKtyjhoa}Ri4R?cx1DfkFfRr^{DaBF{G~o zU8Nc#)uTJ>4oCtW4*zIvRXaDmn*38Js`zh0QS84Fidxw&^(SNlT|&lNz8Tmw%jS9} zlP&zrC+O^0^DuiX|3dL=u_j6GzDEA<5cK(%*K!iIPTvh&iZxY-c~mtWtCdbWWH!%! zd;fd`OfYN!TmGXyk8NX1>3vnn_cd}fsheG#M>y8UKSXuMwjm|x!8g`x`K`64UiZY3 zc0ddYPY_kAx7ZFW`~#G>_I1GxqwNJVYX{@5`8oFW#(l}-Y}orW=gk=8l`QzL86g{; zLh7iSmnciRX9+@_>F4EUGx@%Xy+>Q4#cPKsh*ja*>8fH8ihho|p zh~hpMnW3?#9jSMBx;@;#ZGVCMi)M2V+>q+y-qZ-86t0wls1?yY10VHk6S|Pfkv|2Ys;iuI{(>jB3p+laAbg#)Sa8pR zD6-B6vY8JmLQzvTFpl?{d;yI3Da#2zc~~;*u7shS)J&eN(z2eu23h|56xUY0j~{AM z%~%Y)ca|IC4P`x<;uaR9cmCEs9S!t#jfG%>l!JhsFc`eI;COju zM^)%_=#bo*qLDi;ITeDn$buV-^b!dhA>URvZK^lhDn>0hbI>3<7vAT!$A5^${$=O> zJ7JZsOqcVl)u&kOn@qvE+VxXq!!x|)D4p+zh3pXSk^B-bm-(TlQRTYCxG>Q3{^y<> zNS5bgtF>e>V;h~43WFm?wL21BzVVud#qGvbis;pRdwJHui$?mN(bgzQv#pM99@eP{ z8xI>237T`98hsf)Iq03@Y3>S6T;y~1r}L1DoN?WFz+zxaD>!?CAL%n!^pf+#{Yx6I zab-md&w^CzvPB{Ku*OH*Onw8qopO>8We#Em_Xrldy%V9&#eHvNZNR#9RrnYn`EnQV<>Nr@Uz(A-bcebw6jQP zNoB={LX<)wwZ2%k3}+hAKTZ>RKTai{&Xaypv_V-RD%;0FV?q4@N&=CUw%WP5c@@^C zifbHD2In{z8JcoV*%&AwIw>|UIh2nS%m2mv+;`hJeGQCscUo?deqz7YpPQ1C?Y%FE0z-pTDZ&J zhSwvpJs%a_j>XgMoj#()PPztI1*R%A;~~W+gRenzrDBWChj#Xv8U*?RHvOnWZ7 zdWJJPtYG5WYveAXUJ)fUN$z4(FU<*Q*5x=M-3f`FB9r92Z$GRY3>1FP)u(ydU4P|P zG6HMgDwPH+XrS=c%O_pnCpPtCf-c#9BYXZYk#zo2sDb~y185+Zc!2rlH~D7kc(LWg zSx;g{@*bsJ@;567-pqA}7I4Z3$d;np55Hpm07c{i)sp}C#QzP~Bj&g6{N8twdsB=b zOhtF97Iz*8l)i~|yp;9)60`MRL0Hp@oeOQBbxQ^kDgw3p>rwXhb&pj>3SO%8?W9{E zp}uWIXT<5`7LOIFkfca`_Z<7?ipaac*F~Zw7)~4tsaL*Z$9&dvyWWDfz7DuWw9>p2 zCnmC}eY;*F?6zs7TiNd<5d1C4>gm-zUfvE13-Qq+;o}@ZjQ54Ht~YWbw?=A@=X;eG zEiW_HbxUq#eY+%~Lr|m<-f&6NtrMsg>3M{@Kj6AiT&z3DsXy7T?O4RV&V~cjjwN`+ z_8*{_f@%Kw(GsvPYinbS_@~F|vhM<^W94?)vl=}gf99p0;EykkDIRXU@@1+u4Qinc zX79^{5=1xv!zPMtnCigTY?D`q-UUFDBY{>eGf=tKI@zm6F;sdaAsf2WZySA4{A<+rl0EIQMZ_abKZL$CQwzZd-A zPHz|5OE24r`NqC1`TSpArT_7Q@OKG4&<@i_kQ^x*`A>jt>jNz0K8Vxz(ssc|8;~;q z^_klDG9MiLApSyk&nHs%lx5*x_6yqW)%CNb75vBFTSvscW@6^8=ze_8*29QuK|HwU z$9hDGm;BAZKyOX@N$}jf0wu*xu!6p{`Vhl&OEEgAsQ^|UhGKOo z;US7WKYBG3h(3p8^@4I=%%USlYlVdAm5?g!rfZ9&7^}#*oG^nQ#~MUgsv|)s{>Ru3 zWoC~X-4Zk5@E`$48VXn+6fLfh{rr0?j1@^f=(5X#Lt?Jv7Woa=cB#p2T4=xcgpkjQ zFP{5;x>YKua*cK>O(8&9kd6P#YfH|#6en}1BNsfymF##mmU0(s5})6ZyCG@fdSkB9hM;$oo~*Mivrcu`65)xXPDgr5O#D+q^CB{oL8rP zvt^j$=0pl7M;$zy3KSy8Qlt(Do}6`NgolpU^mWf2m-AlZI`}6vomO&Qa`gGi)u9xg zBkrNRjyITSk5hWlM8?rmTw{E=MLM3@Df*=!?=VDN3i3;w)~< z*a%ZZC+r?KSCyyIdTW7)nT_ZF|7OCZ%)=9Gj-TcBbnt@YoieHUBwJ*>x8E2Dz+E`% z0Sr4_`9DBt4WKNxu7 z`Y%^J2mz?Ms~7|fK+PGt0ix;w=wYo2@HkS&JYYL?z*j+Z%kz>ydo%#h9e4o%zW|`S zj{^@7TS++QZ_wQbknex-+oQx~3tJSvCZ9~zFJKp~#D{=35b4weK7s0}Ko8%)^;Jmj z;}7%q7J@(S^2AI;%&k}PczH{asJ+yI<`%4fnWT=Rp;8s?uPU%%XANCj>9c2MZ+U-> zo$k^9QMYzAah!3n5dMtVaCOzD{h8f&`yaGxhvqXWCQpqVmI@xARxC8l4&pjKGlS)C z`mdsBZ)DoMsCJB(Wd=A@nnkuH-KILi)Xd@31hUo{L$-ZzD9zS!21Tp9<0ja|6rZi8 zzL+Mm%;B-3&QtXkCk*;@m~_EtgK0$Po&@?^KfIB~0~a&l-{CHuwU z7)aUk^jyn3^W+0xU1ZUH*eqtLAy#n^(}Q_Lw2Ik*eYfzjjwvmpdeDNm)vJHkF?`Z0DhvD=Wju_k_xi(0?bcJMwZb zV}8Rlt*f28VRE5&2L47brpNwqa2a#th`kH}Ntn`U7ZcJ1)AXKhUH61*+PA;D8~%Ta zxy>uK{pb*7?)uG+GN>*(#i3=dr8V(gIP+nWJ3Z2brmdCmOvLBa_@gn{cU$;yRZeg~ z`fhII8}KjY5(x%4@F=1o!#Ot`YxUr-R^T&6F^uoOKqF)w<(k~+qtpB2@jfm95=9YO zaI5vh#XqIVtv6$kAjx98C0`6NfnAeio0#VtH8sUy{J~qYgGR#8y|A&!LQ}oN5#jR{x|>!~hC~b6p;X5Z*g&4ErK6C7Tbn*eemnS+(*9-2Of^ z5aP}DFH7>D#90ch-SGn$Y_5-~ROOKheA^h!qec~PD!%o+V|}|l^b(7GU;>7%D5V5{RkSjI@+tT!o~xsmwF4w(b1W;Q)^5!3 zfr!v;=ag2V;bMrROI|F-o!Z-OW&oB+j2~2DkiI)c-cX`qU9sq6B?~Q26m>~AY}P$| zkZ1n4bp7+i|83FT`6ql~uC5T_((;%qt1GpVexP%0q}0i`>>4^LB$n*oeObhh&bAf; z?Je~j%EUFRAFqI5NtG)W(YfD$QO;*z&gw?BUv>yuiB1-tat|f?Zn{EP9=s8NyFKtX z(Ri@VSG#2Qrs5~#F+bvA|3R+Rln5%quQ5gw5;p3>YAFeeu93pkk@7Y>!kRxn5Wv7|6*oyBxcQ{rO=%_*E#zdczL zrcY92RNIe&m`o^*gQcpi4_!K`JRk zC{10F^VfUxy{YMFnWuZ1tkx3E!x^>Idy)9Lr26sq6kICdCkv=M8z|W`tr|r~K1}D_ zK^wuFZn#8Z`dmzLT5?-%?ka&qs;E{XDD`|&v>zpSA%+U)6EWiK+oq&&JDCWD_))#` z0^i5^4VawGgD23TM<;v)Sbm_5ou5*~5XmjovMv0OCGi>53XpNFkAFn8D5nr_VdrT{t}4X%*trqfI*Dd2!ERIHSgKqKw=HgU{T<5aYgb@LX_8QCM_R9w>@lD8 zqd8x*kKI3%h3Hil;PaDOeIAJ?^(Yh`$8W+jg`n`=pd(ydwT*G&tk_LZjYp4uJTltN zUX;kN3wj?3oo0x|Mv}tZ1Ug-P6bf~`G=zNcHknacfKHqkzrPUHS=Rd=_2lB^;53)H zd>r)q_DZHE{HsxhOs{zcgP#VdTmsx%Y-`eBHD-?MeHkUAFLLMtUj**S;l6f@0ST?=4 z$C~LW{xwM+%Mwal=Q_Kox8dsN&5DArHFt$E|7P<}MND0=Z~kQEi0-}Ndu^TXO8tL; zcyRDA)X|v$YF5TT1fwao4J~7BRlL4{cHJHG=d#@zMJIKJmba%UK6)D)C|w6qoYrgf z@waY`Zif8Tv-~NoC0}#COwi)ku{BG~abPtbW&2|cyp-bOmn2;~(rs3$FUT#3G^k5k z*HcI~@e;Rv!_IbM98<3)j25EN5-lYb4jKsP6-ArR{-sjiR5bRj95(N4)IVK56FmIq z21F!C)U+(Hxxo&>wI?&oq^#4co*vE(i*c?^`CYeCT|>eskNlproeQRsekwm+GM=k1 zz)Qh7V^~^YM`2RX>(_U!YXqIgWqwAADu9n=ULW=J)+c>@UA45lHo&`fJ2^x$Zmw<| z|DvK5ZAqRv7&9BUW@`eQLr@5J%a~Q#E2~Dqkzv_6cnMn5g8S3C-*d~4LuHE_e|fz= z(YgHa+}6)Q(8XA;`cs3uJ8?SrcjG4HKnVdDbjh-?x}9ZuLAmJw_3b2dK*7~p6)j&p;8rb`F znTS-~Nnf5r#Paw0Oq*jPwrXIoGGr%EGe$W$e?tWwR0N%Z^P_r%g_$gzR6wrHj?t~e zrFOcRRMX<-IqQ({Nn+=M#Up|-R}hVIZ>hd>+^k17-ZwwKI%9Li$x_SNt1-|DdM7_XX@RJnjMx*}`Nn>56NVaog{8OCL7oi)I|IAc3xA8r{-;(@w zZ+g$-?Yslm%Ru+3bN;*%U5%E(UQ5wlUQ6c|UOjuE`F85cJvhs+s zrNu*7XYjmx>fRQ|ib$+r-+KHfyc7H{n$9i>CIM~nLY4{gqPmef-Q7P_e7G?o#&rt$ zEkw*~pE*uUHnRiSPU4U|F|B+PGm_tt)HPqd)o7lE%3GbQZ3#sqq-~&ofbh7%b?#t` zD$KtgW^2!!KgXKkofl!#E#6cxT?TXe}Ab|04G#qMt)(trORp;u)Hl!n-fddKMb$ z-Ss`sN|RN)mWeW^+0>Zqhrc-)2#Ry*epazE^v&R|OBckTkfI@S>F$C%(M0nkEqW+h7s-QrR(uKm!7F6sZ9R(}@qN5;sEaEl%CoFjr2k$}ryeuf_z<8)ou7B&t>&QrH za_)eEQ7IEodRHUz(FsgH(~hqRr!99$Me|PUD9-4liX0`F&jx;LuxmdP^NK8%Pf~7w zZfC(+JtCm`UmJot0G%SZ!GkiW>lxaQJQNdS=^x_t5=Bng?CtJ~z9O#kbD{ z|180#T>=`cM9i&^w)`=|I41HPjgi?beMg^;`%GIN-81U?lso2!+4WlH`=U^Z7my!d zIwj7%vic&{rc7}_454BT@4=IkM$Mt1dv>TN!!X9D&-Ue4ddYR^WzrqzH8QTh8)0|B3+FEERAS6FDuaMoS`X7DS(tnMn^Y0;HK*Ak;1n|4XAcnH8Z-8Iy zHsH$-z$OduF5lOl^TphH{Jh7fhOvb4o8l>#NYs4foZdAf%!piMGZklLfe$#$RbZM| zeupw0&V9|}dVghOJ$-hdqic{Ms>&Cydhbm*32EqmAe+C$Ugdi|hq@47Yx!pQ!={Cf zcqL8pRfQe@D9jPXfTxUf#Ufr)WwkIV^rUx-wV6-J&T4k66(4Za6$MJ3JOgazc{&|@ z!yW5@E#gn;^o&1yj3v&_Ym=YDm3xU6ZO;#N!|YEN6ILuLt+)`e43AKqY#7Uug5>qlvY+#d;-2~a0kQ>4cK(7)m7VU) zm`{I*(l^+KxH|8tdIa+%(2jm4$Bo>V5U?E4R33YmQkJZMildy+79rP@Tcw4qox8wUe3PV z^!fAJz#yChEg~rv3W?81+wNHyS9;=>o1E|J*acu?Wr^ua^{HtiCbmgVwSqsNby5iq zC5_{O!7zy{klB$WYPkc4IEsfyHe9#&V?#)GM{Sz?IT2ZPOZcAlXHkX8L9;|0n_xof z5Vr&AY`h62xRo-i57E`WaW5xXl-zc>B&v-6hKrGn6QcPS|D)( zU+)7HiQ#at4?9})h;pX>{KBBV_UFO#Ld2OSmF*RybteZ>$>s$15v6=&I|C$q&(6Ji zp|CoBk>Nd;Kb2cpgFlGElId;c3sH6SSQ%JIpN@g4KSw$L84e_RLD5*n;e(39(T5t| zl~vCvqpt)CO!53HEhaoS*)l*u$Q>2Mb1TJu{XGT_B(iGQ=_7ic0`wkv z9ECNZ-2huF$g!z9Y;c_*xme?PsT`J)BLhHxQ}GT!iof|9bEPGVH^R4rlQ}YGTxGZ&k~ej3+I` z&tIw&DMjM=@vYziNPcy=<95~&Taj4*|Tt#>z!AxS7>4C@E(8Qt#fs0 z@g94-49SO`&j=}6#fK?UZPSxcJtwP>_q!r3DEiTw;!ILbwJ zI-AuD>CA^^`ssYFSA?MmW5k=V>Ai6q`4O64ds^NV;szJL@6^Tb*8GH(*Rdg8AH3OR z>mn3es~c?`>iSZD8On8J%5j~SaNythk9I~P4?l(&cln8Onkt>sR#`bx)K8yU)!2zG zYejDf_!aFN9(Lv>QyRuJjQ@Tn6n|WI1 zdG5S6d8>@9Q=vGJ87o<7%4#d3B+@k&NedxJ7gL^eswDcY}cOA7i^v!q;v)qc{ z(=#G^y#yZWZ`>4gUVfk#hQ`wX>pfT?16@_&t&kwGerLXY^oyy_8h*kWag$DB>gYV4 z8`z|i$ttz}LM@s5DoNLdx4VsZuXGj&l?Dw|ddvG_+3r^w>=UFOLsd4$WZo>);i{4| z%<`YU>}O|>z|Jr^Q^O+62ht5}-LKxUBbT;PZy6 z8>ac!PquN}%RH>Bc}ta&(YB(D!!Q;DV;@1xJVDqV8xsU-o7{MCg+qhKy{SIQXt{QL zYf1@vD;(04dL%CuyVRwB5~RNc5Q~;D_uQ%D?Nh-EHScnpkMZL>!PaH%J*^UCXF!D_ z$O1YtIMj(s=^NTA%;!LGq;{ zgfGPPp~Dd9jkt~p(^G)yC(>eN?T24{M7h}64?--`kqEPI5e(Z$9jt+?X%2op)kfLBeXX)JT zOkGXxj#87&>NR*8#xZX~UdPIHf-HZLpF|(_#s&+=QoCC43h;JCOwid4S(O<=)V8G0 zX;ZnO++eb>SEQP0`i^x9rw;EPkteZ8$gl^o>Ekr9?7aq2mbNp^yDgjItV2fLm}f&@ zhNw2o&SO7u=1|KS_$c1B<0+e@9D?=Ad>1=b&mkL!MtRHfCWJqV|0t7F4c|t0X+7e! zZ$9&vL>A+OW2p)Ws19c6lKWz}D#ZfIvwGJp#SM?xiV1Cfvgu1(Sg?IZaW&{ey=2== z1G{77$|-$3J9=So8p*LiUfM2In&VEC=gEPzctlHo{%aNLxlmj7e(xOm#OZoTGWczc z-+;>>pzqhZrfu)2RGvOMsyX(svH8NX>*^P^&>)P@jy`o^l( zy18=x>z3J#`Y*qQ4Ys_#CrA`R!9)bxetvZ7HiEjM?ipZ9&r;)~WFBPNhx>Q>MLX%0 z!NS|*;}TlbNb67i*bo18ge%T|9evJnN(R)c;Vi+EH_(F-0$a*y@0Y(?Q}$(yE@=EtRueh%=|7yqWG^e_CT z|Gg-OO@=|@bR<1gNePJrAkCv>jvLf60nid3vTsfBBho0iLG>J%9_QVKExu|N% zxvsTTLK#&gpcc1TmJRDI2>j1mYWb>M`6g7suy2v1;cgr|$;#3a3d>_-o^;u3=y1CY z{NQGfYg0c2W1)4DJt*PiIh&${D22t{1)T@e!rZ$`2$b5>8gP&LRCxT9L>Y(22yTh4 ztqb&y*EYKf0tGubKI9dw`O#a=Y9#-$`{b`0RQ_(3=D%P`37bF_QXg`3rW`^Iuw%pt zrVZ|}k!anM+(d;r-ebGd-R!6%0o}D(0(=h)D}mA-1^`MVEl%|Z=;dn2{VfSnK_T2# zdTQ6Rw(aTCybd`x78=lKcMe2?G<+!WeA=zV*yl$Vmxanx&$mee5nf}JRv(n|lXdoO z=pg=RAU7?LI;y%FE?_}eejUF&oU@%Ih*O?#K_HJxIBtz>@E`c}PTQ-tQHX*nY|rnIY;⁡XI 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

O%(5^@{fm;S3Be{<9xXJd$0*t$N@Ls;sk_Ad#B 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 =k`2sjP&jO3_pmK zzh@O=kqs|(XmL*)U)U86%&mo@Vh;){z)s$@?vr?yrGnD5eqnd5{3__>_a6JZ{QF@0ERa-_y&(vz z2atf<4VXg1~>@GPykQXZbW5PuUwrdJJpU&gz+_DFu*hTu1VixEdK*Fqf>* zmpr;^Xpfv4F`_Zc-S?F|HAG%`waxu9`~qP{N9zI%>6U3=`DsTVs(G!$zClxDpQ&Uh zG3qSuE4%)aF{V2VEJvNblCH^S!rcrkeXi99j7ys)bm^r^o-=*!|zu(tp=lI^h{NkN{p@!kNVm2r4_$RnMrASDqT#BZv^?#-X668$|@LTMl*E3~cG@ptddo!Qjty$~U2-zH=fAr||PwXH$XiQW6h z&h@{Ubj8b~OX1Fg7*to$QoOtCjUC4ZeG6ZFy*NpOiNfqgI>OKKBZmCDb7&$wlNR>q z#_8hFt1|IUWd_wdgO3*T#up{Pc19KpABC3f{u6iOX6Is;1TUkrJ7DveMs53bkoSbh z1Dn_%apQk9H2}uZd7{Hb^8=9}eW=^K8V^86-}@ibl=3xPkP#dHM9n!d{Zv}fGv zW*Vm}TsMkwy?DHmJxrF66CjKQRzVeouH^+TqA8g+%V5{%!p**O;K zvqqroKJs{Deyjh#cO~ApMsfx=5}tM#on*?c#J#h-wv%h@MRn}{4@Rd?`#+jDr$Lts zgxv_IC$ik7`C%4Hnw-1h3os_ihd_@C4t=ZtGL#|#1b1F2;4ZCgdQ?+p%jGL)IAF&b zn+Y1Z&Z`ge_Gml}-Ju@;3x2PZEW_yww8_!Dw++$48l1@1qhp_EZ{$AxL0OQFJE1pd z2qA_IR^6J-o3AE-GN-k<`J=G-`~JuR2Bm;S?LScfvqC=yB*oS2A6mVC8)!w0_0n?T zH5>I$0-+J13i{4W*07KM}~dAI2wNHZ$cv% zVFT%nc2GDFz2##5t;9XPrrBHVG=I#m0W-~wYk+ZjScFHzw8a=`Y4HD}mPUxa80V~Z zRH2mBxgL(x?Ld{<(zgBqt=>WFV!TxIV8(7k`3YnZBtG2eQw!hT?tNhGm& zz;~i~-gYzY)|DSYK>+r*Nws_E=cN!%qsn)x?5YD_d+6AkJ4T%8Ly$? z1*AjN!-5L0D345!dg*Q}0n&uOq$K&4^vSS)$`%l6^A%j|nE3>{<3`EplSBWMN!+wwyM)$M*o}9{L0UvMF!p`;O+}phsvu!9j_-6d3maE<806(U9#-qvN+1mt`!**4sI1mLSM@)YEpr)MO6a zInNXEo_s+9ep5Sd!y)82Zr{LvoQ>TAvaxSNS+rVO&*;n`e0gu5a|^j}!=bn1^Nyw} ztK`+>kj1mGkH2fA{`*mmE4cHR<4i`iybsoz8Qlc)C69ETg)s)C`O`*jY*#+fe*%QX z{zLxJ+Isd-uniMdwBe}DwMixIf{kr|8$x~+u)4|AkF)FkcFOG)&e@2&wcC?zt&zo$ z8#2zf9o2Rsi5$!~T7Vg0A6b5o9skIr;L#|w?l75IIua&A^zGLPRhl|aG35()kEE*x zQpX`3mtq?jOWeI!(kc#j@69MU3k$zRPCBa;emB)rCrsaL;k8rYn@xMdUB+u|=U|k3 z2P&A9T&!tY*#0>A&KD*+dg=hM2!sn!r{#%jN&I)0)BP@RZ(lSr(gLec{ME$&|BYn) zcae-QmR8PA{quL8xq>TBvOw3lw-0sJ&*y~<_ewBpANY*;2PQ>&+_9C*u7asU(xjR| zMQN*_VN(+*kkyNSGCxP!uCRE>(XMb;5-#{`YtHZ}#`91SsK zuHfsUAAwTF1BgXEgVJY@`l^B4>q3{8L-yQ)m@6)&I`=rb`Qd*-YRqK8E>Ar7}IMXl`c8N|@$K9Ejz5SzO`agOg4{+k7 z8i5C)UTux5{$K<*Rf;_Z{V<`^L$0eILX88a0HsS*i_f2$GGoJ)zWT>#q(cly3ZT06 zN2j#xdx}Ya>e52sZP0=5Q4YE}x!n3E$_M_Rn-Ki>>&X2&tN1S#o4YEv=0(+AD3|uH zU!3uEF~7fGv2Smk^V`3!*e4_;{OgK+LW0nLcf~#k@ZB1}Td*(0jbW1N-4eHV_uw0u z8~sAZvnP)Yb!y#t7w%J3a`nBI!tvtw4qa*v&#X>*b-%tcls@2KWgn`#nmbgn&JjIf z7rh={He4~W=`z9Z62SqL+?HN6;J?X#0QB`AZK*-oI>=kdX>s`>>2-xXea0-taLq!bg- zUB!A(W^gdoEijlmxil|$5^B)9EJ5i4$vT_^cO9;--j99I!)TBvpsj2=8Yo^&C42a( zM0(JK9mhuI)N@|bdSz!V)#xEkP}=!C6N(^a5XOrr#hQOgYmW7uoH^xfagY>~zKHGN zbZ*NpG*PPoUh3ZOq|#eoi})bLA7w7ZKjoDD$%X~kKh0$0k<|lz`dMv`hr>ajP@m9k zC4;2X>F^?GHUa9Q~85W4Zci@7bACAVP;AC@b|3*Do$kBkSlu z`^yH7vwfbRTMD=8L9(3RU;Epg{&j-@JpCE5&p&%#06$I}7hnem;NQ!Ks8ZeNH1R#^ zv@w}#f)SIg^G=g;O78mlZmQYt5o+p>9coqX4!j}`v^UOx1ICsXMt;j_*J9$vy1()YphuOT%UH-_4pN+Bw>aq?r`n z$*6hWve0+i(#5JaJ_VeM&v_|x=ME3K0n@+y3CGYwS3g+RA$ayAcy0m5KJB^OVm}t% zg&{%$oa&oQ>Bh5hOoBWxtsr~Id$69k4AjxHab6pLI#v(anUo~{CRdvyqb02C&Ur`W z<~w6Fi&hS_2d~wq*hs+R^%=l=x&A1EW-6k!x)tr${2nZk6&EZHcH3FaH)}+iiFv8T zP?w5PK>~_MN5!2}_wEDJwN#V3F&3-|`JB*776F4D1vA`1y%j4qfx5NN^&Nq3jx8Z) z;s!9fUPM2;J~IMfnzB`b`BT)}#R-1qBS0;biWBlkvv zf~j85XrDB!52VyijhhTfXz86$wlD4wYps$Lg_#3iFKL(K^dTOdAi6GX9t2j~{B|ji zW@7}qwp`!Tc)p1rAL|Z`WXO5;%S9fPHc=Vd61+HVbeUN(r0{6x-dzkhPYLGZ6A;%ZIU9{RGRy=#=wBb5+5jPzvM=Gq`;!hFxeyY3ZF%_(thCetV@54b1N_c8 zw~X3*;^@m^0?xlYj*nl4QZ>4+wW~{PFLz+RoGyZ;m7tIBG#2lbH!u!^YhMzo2vb7 z^r5H3nc{c^;T9(2_z}a9jv)NVw)Fh;fg7~IE`%$PB8=@CJg^9DT^T`Mp}yb~T+6i( zJRhQAJ6AVgCL<$jJQLG4-sL-4sXTc3sJf_S^kndSmCLrSZX0*#74azupPu0T{sI1R zup3Vy_sJWq;FYk%ARUO1wS+iL+VfzFLSxMR#{-U^`f{A@7l(y{t5?j370YXrQ<4rX+?REZ;9;$IQyfY3#rRsqV&hqD&n|S&ffRjqYtf)~LE5w8 zQ{zzxOFXIvr(>_7vqqz3+LP+og6>I(5hs(moeHH3&^s8j=fU?u9fItlngIcZMNL?b z1z6?!+ro|2ipSzbyW_pJb}I~Xv)pk($HjfFD%86VUhLc260zs6P?1pS0Waid23QE-JfTaYoR}b zHHmX^J33Wv_$m0?ojE-*gD{ z`phXBdhiNnx!_)cgKekyNqDxuOAJ9UwVaFV5oEdr-1ZV2;J-ql(s5|1mu~X9&fBIf zpsK~x!lJ#FM!>wtdfaHY_MlK)zTP`9*+lxPslVftrDDDJt9C(lahjiff+_kh!-4v7 z0&w#Xc*SKY#l4Qda>CMiO~4jTvX@po9(t{Q%dm3QKTVlAPGoZ|H>o}bQ)S=>F{#aA zi+d}TB-=ToZLza630v~;nuHnca7-<-P{hAIwQVw0FLO;`JB-u4l?GKy)v`}Zi1eHs>_H9kfBioVY2T}~_l?OeuFNA>alrWwg?(SBn8$O4 zEItEqr}h3@Xhr$ngDjxeA)z-4-ze7?Z9ZOoJ)htj4tk&~b1uwGIXZY~ZuWu7IgS#a^H5@Ti*wM&~+*PcZ{Ro4OivtobG4BE+Th zVCs*|Z%uIey`i;Tn2i`i8v*8h?BT&w$Id%tn>QGLiis68=p{AlejerpQ=e6sk2$C_ z24=&axnmDWKOlKw@3n;(ov1t*-}p>l+DgjPDY#0n#2F4?Kz}|1=J8Q$Fpdpj91O*= z@HmvS0h`}&YC-9w0`qmV1?g6};J`_RqQU0k%uWvV;ytYS-hsdcM4`bE;Gkj?{JA4d zz#rvaBci@MbU!>Wm@2OwAPdci`o7$s&hj+bdQNN0)KjP)D5b6Nlk5eqEbfy{zu~~^ ze!(x;_6)E0!Tdf!fNPxf=XDBP_oIG!J_0;$?*>u`Z46!#^9P-8fY*P~HwP`B_iTIV zws36>9C5WCbTF)P9WTKg6-?DYTj|UEuN;M69?V9+BaLe{bp_7mDRa2o$4w0Qe)0Yy zPPuxeH}9$3YTiMxdCWmv&U&y}ZOYFN&9r$Y z*?5M6V<<)jJg=_X;V@wsxpot(Q!16gVpJH{(E^TK#yX|c^IYS|bVkM14>ry7_btN~ zw1=|C6^2xL(hSfyMensLxo=&2o7fe1GzGYKasx|(0%ud0og`|6-x?lEjc`)PE_qz+ zTXe0|WPEJ2KCYRNk37v2Gt1`|1CXhYaUszCHD-!KEt(y(+UU!IV?)=n_&UK@X{+p$ zgM!oJ4ZuU?^crm6FPQD8t0Q0Aal2zKMnUg^gou!ZYSZ;Ca9jb*gaf!X#rt6U0YME5 zr3RbI4#C)>1}7D)G*3tTMxm2MK^omaM1kw;yPW{xlNq6y;P(!APWquPNxG--sR;j= z(4d_g?`EV_vI*!XzfjtMuF~rtq#bzE_<$pKUXT;QwCM*PNK9oNjjwi{!latTcy*!$gL4Ishc37oNv`t z`AZc(p!LpK->WyhdeGUqKVzo`di6z}J1(HJS$qITwY3BftXTHT90Mt=SPpnjZZ85A z`^J59XuBtPzCX*_vi8gMpFuaeqgZkba=^_VRr^6o6zN{8-t9QE-CMv%Ol^~ir+yI= zm-BY$@Aa!^{Hv1sx)%E1Dyd)AX8%n|K`#HQq=2uZ`*)R;ps=u@(C?&FfC<~$laEWm zY~ivehC>U6dW-pa{G ztRX%>)=-VP_0!duW7JR5-_+bZT)f-4?YYt!D9jqfhi};UwD}rCa*=pxZF(Kj`RH-A2?+Hdua|W1R4Oe}70X zqCedcpK;V~XiaqRaiPsPU9VB^gA)jvvwhI3f?WlSq=X!ZsebQ7{Xr`s<*AaT^ml&o z$RYOtip|^jd0zX<9k^tqsU=h z#jgiuy4;aKSC|x4ad!RXn(pz2wO;=9m^FULJ!d12ajC?_A;Oh}DmWZTQ+Za`F+gf- z#mi=HS}N5V*DF)51p$sK!;`VpL#o@T9(0po6Rs#c>I|H3^GI%FuZ6*9X~S+4RhLkg z^&saV`^_Pv@=xS}LHSlTHm+4d3x8up@gSy_#cL7lY;opu&BCzW;^(8z=2NYgN>^js zHW5w++q%}B zThAkNJ-l0-D4g1;fWc|NkxYc_^2F^R8zH(=M}qXK?(LKl%3a6o^~|9R5~|J?m0e&% zRICIlyNfT*99q`smF(hMF+#XfVE{3w%kjJkvW=L`D)Tq4K8%3l^M=bZ>3S|=djd*_ z#7yC33unxINdZRr{N0~bNj(+;E|Jl06-3j;q5Ov{3G2fbtEyHE-BzQXNQhb!&j+6z z8ZAT;(CiV^(l8W}ZigDLho8e+(Zvjx4!0Omds`j3)a!3PmBjZ*+dEDHQ#rxz@T@`x zZcsE@wh`b)1^Q{u6W>DJ#KuZvLW)lv5A3_a$SV3%FNv#-PHnjQ7Eq4by}5}Mf_d=aGN=c4>)u}A zEMn85#o@kP)>9=5R@V6P{i$%!Q^zbgPvzX;#h&O2YU@%Yl1e*K*Qs&>j2SL}zbs}4Lm zLqzM8tyQY_r*FoO&h_ez40E@QW7rR@7C`}Ub6w}?7vY~CuaBOVhMXp!gRjn6&*kzn z@L{EC--(aWdU9JfyP7|Ql4etI4rbBL zNWj`M&u66AN=J|SUZHMM_nAf*y0p&z=i+$J!BhI!xLKopr#|;uBzWiyY8u&!Bs-CC zT3bCZ9n64T&X=%fD#_E9j`{g!L+ORoY$E7Lm|7qGR5BGxa;$9wC4%1dm$>bYb(-&2 zHDc+@_so&JmBT)8Z@edGE@yv^Ue(eiK8sFQM=`84*GC`k7#H&*#|jUr0o}4*^B!HV z`1@oVu}9S#n<@HRH1`r?yK9d zI94XxYZcmMF?1p1iyW8bL|bh6m)&OP1GO!Bko7drE~KTtxsY>5kL6&=Ly#=}z(;+< zOA&?eh^<_=XWJjo(1}AK?D1h!Eo$rvr&;SahPZPfWo_|r%Yd8IUs@A}94j36&l?1F z5fEBsS5j*$V@>dNr`lNdy&Q3E3kWpNhNzO|Bakjuov-+^P&!?DSMbN@Dxi8jLy5%% zqfFbidAcNbp^tBg$bMB&lRo5$SY>K5M<$JJ~Yy%sx7Q?9v-D-0Z z*rsn_JuQY1EnxQJq5Wa-S8=UUR?A?k;m3DADp=tq1*|L_4Z8+E=IY3+y=7@1C~Am% zKVRKMXWpATG9!Iu*U<>;Ij&h~NaU!k43@mBFPc~9%9!kF0iI)8p<~N|Q2|3WhLWag z;Ji%-@31N#-IznFjCGTw7d28{3}QVhVl&{>>jpfzD#Seay=O$irmnmDNzjFQbnLW& z-NT}y#|!)OxbmEMCZ+bpp@%N#X$~LG>nx_B@;>!BSQgYRi}&_i{d9qe-Ig<|c>&M^z>}Msnd!Mg@W>}ul z3;Pja?5wU=I$Zb3vYk2OI)i$`apv*MD5{x@^fD()oJFp@TJ-_VFnFEp?R)(``8B=2 z0fgKNsyUm8Y=ldl5cN>edE(Lp#N#KyH~4{7c~1R5-Ih0ZM0kT z%-ij)2GQHqM%LsH7rmvsIiSjKsL3^zQEE9hwxI4VHmI`4c1QC25Kk$02GDBQ!_`@g zwY0R*a!pZvO|g1U$j}ZRETQfzDAJnJaTjy5IBW6|Bw-Lem&e0^ooA_gWx6@z4aYn2@p<;QR! zEJSMU`RSoBB#{cc-dK4>4y}7pdJxe^g<&EHnq;UozQAXZ zqla{8*9F33k%O2LOQ+3@6*WC=w(n662b67a)QqUM8R|fULLiKHA%^=w?YfExa+*lY z@co74`7h~@V%O}hqUP|3kX95G9#O~03epXDJls;+PZC_&d>di9hGTSZa zOnZxn2$}8qV5|Kb_0E;!yDob31Ez`*Lnkj>#2|y_hgS+HDjVZ6g4?zMxT1M8@k?VT z+H=X>QqBk&PdDceaZfLBYC)Fp&Q&~KTX#^`ybwWKSQ&GnUMzlnVoUkUip=82A~~v& zVJWSFT=vB=pR@OG_E>D0*+=iHR|sx)XFRnR;YxZ@MwY}XDpx0_UAH~P)pK6h89V7?Fo5gKEA0!W%KEJZvk%LhJQN$~p@sS0f z>Y9@zPnUYo?@kDOJ^o-@xc8*V{_EoFxfl9gV$+ku4s~a1=J>KEWe6TPQ^CDpdUJdk zv#&c4`I-~a!;r}Wl~?Z0=Dr0%_(WyusDJLZI3L|MVb74T6`iI5$@E69J=et_rUbqc za9AF>oekYIif!2q_xj)|gYY?;43~PJLsXE4NWWGMG+ibS$Nn5=XjG(v^s^ixKg3Ep*wn7aJCIj@$d(%_Z{$CzBXrSRg!q7>O;rr11ZtxF zREAm4QfsPg?(V#0*|;s)7M>(t2Jg;>3?d&2IgY&aEjXyx^K%n*YxZkXr$@0D<&zwI zCy!8!SB{Gye1@6Zun#(k&{TNB@qBA7VF$s6VH~1!Eb&E-7I)_C!ZG}L( zX`{MVzXL`4N&5<%atPz5bu#}`3PfcK;~Ogj1&=1fXFSfeh09?|#+pG~+;RNuJndhQ za4vJYV>ey-Gv3gx9Plcjb@rd)I1L;wgh$v_u6hj~tHO7aVQi+Wa;HT)xnQTSTIluH zj|%~AqmLU^zE1)qHcelxnaOb|bb6gG?2?2o`7%UTRk1IV#g!d8cZh1;Ok8Y^7Pt~c zysKQh!88q&x*Yhse3TN-WYJB5OFcnqKnfJ_t{)mWfIrcR&$)ic*XtVC#LGgb7EMLy zoN#cN%?u{JFX}RSWZoHxAmH}x+H*(mw#gWMVmN(9#`Uscm%&a;I{R*Om5+4L&YIEA zx}E9OkwcH8+;>NID(stg*S$7ncs!m~kNbZ5q-_$lQ`L%my2Dpzgss|GYLk|fseT>;4sPS!t6SUPZJUUxB$HyVxCm@ArkgfP z?6TWunYb%g+>!_MGSVs%w$su>)h7pcpI0;`hwZ)ZP@)5r582Ue?p60F{r;nRgD-)% zY=O5ZAya~zZM$0`R@MpOCo_owigkuUL0}KTjw*?>KS7n__dzA{?LQQ)JWBC$mOY4w zy0RZZUcT2vnT}N0UGP5E&1*|XX$(?q(!v_Q2*ScxgwY8|u*8CR)XWI@*i$4Yuzu8a zE)#_#FdNK=IwFdewO0+VCOIj7e4AND%sGp2VTJSc^Fkg-tgDWODQ#Hiln~}Z8lY*5OlG<>P1$JPBY&qQAvP|_B~{YM(*&Nr;p(^$*!LdQ8r{Zg5;?0+*F5-gd8{6`Q*R98e*1K)|6*;qy{Tzd&#|-Kde~x~X{K4@>v-eQx3P?nX{fic zIIR8foqV{f7K2&bF~uM=EPSdm_Hk&0zpdKt7PQNbW%1=H^CE2&aZJc_WpW{|(f7_u z&&P0z4Z_MW8Gdl0hot|;ZUOAolBvUspe)s^oK$|E9m8n!pgo%%?}LLXPY1~LNN-qV z#zw8w^A;g1BtF%UDps1m;3aNhXN9zUJ;!@2u1;i+g|I*aUc|AR3^GG>c%>{K-G^ei zt+cSNwgl4lN&vS?!1RbwopohAG9lkw%Q;P~{w73NQ^FcP*}?`vFdY$PrOo_-sM+WaZ*?G3)OV8>6Z1<6fJCX6uVA?Tq^d=-B}5$~=2ydr`; zDnB$V&KV?`{}c{ozKuPH@bR>}S7g?Dv~4GSue8G6KbOXuJqks>&OLplo5V14^f*?V z{ikKO zGIhp)iVsU*C`wRF#Z%RUAUV~ZAS)ze>~>r@ziq&JB7$vkX6$^hc?P^bxGeZu9Q8|f zsItC?aUfY*3(E$TSb8<5P$2dkV^_%Px<5XzU|_5NO3DOfr}IrHr+#p`)Gakxyx|)- zCQDhxN+_Z+#?AEF(CK7mkMYTjB=i2~hP-L1y!^{0HRd9hZr`yK#NXEG$-IVdnhfQ9 z9`tPNw^A4UTIv(UwYEf5LB}nK2JY?6m2(!hl)#H44w{~Ry(*UqPgNBtlhJ7S_zp`h z=}cLEc4Uf?a5u@}&F$B4+hxwW_O(DkGq4%c5g`Qbtq-!%_PqprxRx;+$%xF!QWHfK z@!ZR8HoeJKW!z%{b9q~?+%)AGa*~Hhi6lX$cubMe@d&Y-t}w7Ta6 z$bB`=I;oif`g?=;_}Jk!K|Mz(PqCzR`kSVUIuOChyhmC$6VFF%K77;Mx&!%&aeP-*Y3-!Y@Nr#ts9rX~La_gII-=Qwvjc;%U0TZ@^wTS~ z*q=Q?Ni~aB`oOu^-fXY@ArG?j(ENan3az>0y(5JsPzl)Ec(;0XpsoXSjkg3DYEPWw zf!8v#2+t{E?_1$JDJh|aA<}cq+;&qTIu=kj=T1MO+jJ`aTw!pmOI^0BSOI+M$f1Wu zcv3HuI~1b+P6N9$_9M)k`XkJwqYk&L;nUj$5-;;5CIyT5GF^nj@%+(Jib%WUTzKjf z^mO#~3i;`5P6>uMMP#b+IasES*V_b9tld=5SLBKbjKaGKKpARX)snhD1Pib1cWd>o zeUWoXR&U)b{Y?Iw^CKBzTp`Dl`S=e&oKgIIu{R@f_r-{@@+_hWEu{}EOJ;M3pKs&z za|jkCx{MxrSz7fa`l(fq4ZB{6t<(l0Yg4qafg%ePR$3>`XL>HFqcNWM7~bakGDi(tFcv!Md2Lqt$1%OeEg<+yqOcae& zRu_*R1OPch79UKC&zqM-exnh;0n;~PqA%}hHy)Nx$kx6;zV|8L@QHK7`M~pJxF4!5 zq+_@q;gkyJPP9vSx#d=+iH=e)N}SE)pDdXs=|d>>=&~$Z;Q{7VaTAOhOS%++LovL&wCLW1(!(6-sP$ zP=?4jq%ivjL{wYMGC(43za{*{UgbGD{*dpu4fI#^A+-D{`XKkvN6QvJ>{>xMNx+&; zo+0WH5Np{MBeApYlomU!C(>FdV%!n6mOjyd$YQtl)0sCgx?UWkdi^cfCal~E!_IRpViG&bP_B7Gp$S;fR^mYloOx<`TJKEaKCWW;^rcAq#V;lRqtR#% zk%6aZpMOxB{pI{K`1T`_mK+^%qm%jM4pVu2LA(qcLm&;^4xx%Av@ zX=_u%%Mu6cL5z?BT@2^>RuqVH>;ZuZu}QI%800x*KVVmx4)5V*38nE7v3&hDL?e58 z^(G(b2E<645xV)2lxt}!^K!$yN&~Hh%5lQCtRT2i+^7{oaZ5rz1+lh|8F7}i%^WFY zTDfmTNUuRsLBwt;giM*YG4+=a(_H#*5Fu&`$Sm;UwZuXRo(qWJJ6r zI&2h^FTG{)zH))AGp*JFu#RirC4ajiUiv3*&6Elx)jP!X-z=y0^w;x1^^2S?V%d`k zLyDWoA!5N|s+Dy-vS=i!-2=H<{9-Z?fG=iKdXciZt&gPIJ(59o5{BPje2v-l3#DYT z++`pK%N|(Y6CST7Hsf9drUGE_r3~r>ypSe~KO-eX4mTssq;^b!#uR@jdsfS%XFUOJ zak!f_`To^P8_%~5dP8FdA1g95+v-a|C7cEwdB4$=Sq77Wbqo^l)ci8^xl{1>FNPGx zPjqrppqhrPP_Odx_}bLA{oN!@1QV*XW`YY68;En(>c&&Kc8D5!Zs5{YXKLldo5s$E z%*o;FqIG+-^`nfOjch&j>&7}3|1k+^?6v6qqTP%%AWCt`7u86!MCHDQXYfQG2DFNR zpby$K@aEhNtahkIvnsS(CHTm&;0izb9wEEkLenukS4Y#_0E@W9=~RDxI!n2KaAq)E ztFvGffh$mE%i)hyOwB#AovDQtWsZ-*STpfh8$W0vNdeDp_TXk`R|;HWHKkJiCneEz zA)!Yv%KJ)u!DQE5Y*w`3U06twJV85Cupx4SLa`pIZ$ z43HoP`6`ioJ&2-HmPcJ^-xi{YZ^CUF(Xpp*b@B_un$$%_MJZ|YzS#M_81ef{F_LW* z-w^u)9)yVa9(+ZsX?D>)C2Q;U(M%#b3rnY&?sS9ty~R6g?uDDe9iD9D?p z)znJr+RyS~AzHDW0;Y+%!-+*V)z$ zMS1+8=YS?5R9PZ--^mPGYkdAS1JP0=$UW$?;cJXd{~mifqK@w`J(TQe+k9FPpUk>o zp%lN*Ie{8={4ZrmC$SdF4pqRntMj*t;EAKe5oe%|goR?-0T+bsHe@w2z!&MUZ|Iyc zQ$Pj1Q}>M(jV^aMgZC**b#?AL*iWlVp?JVq?vLyBAmg>y2vr5i+q);EP$ zcn51zZ%}_?yNp`y7Pf{kUH@p&1X`wnWl+bdDeP2CE5GS_t%F!v*m12=@e49nNB?Yz5*X6G`R|(h-EiLhwGfla$X7;#R>;aJU zf8#)C!SK%`_{gPdI*O?)8Str=g~pOd_15?V!S!CHjFwk^yF_XbdokP^*2>qt$7?^_ zf$+dv%|W#e=w!z92l&-&u1=A2!K__ye2WKU=`1(nc>E5S_KzPhErlwv*K$vS_JSI+f5|wv|9@ajx3FrKE7|)ypWP}Fq@qA+~_pqy2PhqyH z9^M3j!#bNY*w^s?!`@rRMb&MO!-F6wh=eo`F-QQf4qOZ=X_Xm=IpiC-fQhMYp>Y*pxsSV^3(Eg zEB#){Q8&lBtF1Els5Vv)%xYt+W}XnNh1U)G+FCH``$Mbw_s@w>q@|L>toZrMvEJ{N zW{MN}X20fgN6)TxKm*Om5y`uES=x2f?z55P>kxUA7U&j&y1>#mjcvOU&|WES*2W^i zwt()NI5#P^n)1krWg2!oO($_lkLAb@jPtTP94RlMk-RAD(dbxI)JDY~YNj?!%2-rf z9O`vR&J6d5*8GZ(o(@ohj{g(C;NOKSzFJCNM=4MbwKDhtiQ#s-*RfJXg@O!iSpFxi zF26x5z&W7$ca}Hq2FRe)9!tuZhxlnxDiPCv-pItEoDvN-~3f=VdW0QYz3RbS20-6wBEPRpQ zkw+Jk<+s+$eHMxys8o;X(<9w;5ul^wXj5wSmyRHInK5k56oEBb8;zfz! zmpq0n0tuB2WykD^w0k8{>{@x^CRm=g^+uv|3zb z7N=SwM?V|ky0TbBZ}^kKpjd;hn#mvOs{t~t`rpSY!mgTP-`}sP4)c-7tpUNhz>q9@3(6+%g{o0)clM@PLWdkdDlij{80WX%4k4Mx7UHuthBC_ zHrW7)1`_EwBPUrZ@Ng&($H)j^jj-gdkPDbY`U_*7)1fSJE`D*pV*V#43CpQhTuw%= zP#KL`r7nwlGfxa^xkyX<(4^_f=NgTYTz8dc8!PUXytQiVng|GGp@!6SbnXxr`^XAM z(g=@fwK^K+oHkce>g5~ zKg>|B%BJi_Nq6Hv>!uaR8UF7SCNDZD?;nQD;2qIB-n*VEBk>o1Wlw&)E`EUPlGGrQ za>jFH>*zqj6OFPyu+08&US9u`^K#n*DMp*~ukH(wz5vwLjw@mVrD0`I!BRJq4f=tf zeWdsPusE2NN@xWctpvmVX2V=7DVaZPn2`_36K?5N5LS(!{HRv`)KvkOlV}f79^l&k zKY22jW2CbEt+V&KI^YUYIxl{ibSyp(V(CiAhfT^J6#ti|i&NJ#lz%?IOdI{Ia_8mx zB0nVFeO-KEG1V3F-->2bnwd{oa(&~ryptnGk^$wm6b!YQJHrXmqup7phtkYkBZ2 z)qKeEaLM-`_^``pu^=`$w$7X(5Q+3Kc&R;T^-h1#^}Xn7iy92G-~*|L)m%-!@}N}V zo?mTz?bz>Nsx?FqGHr>y?-`?05;1|icT-5K{5zdXYcAO3o=Eik!q*7fhzK93O_wm- z{`*~)f6_{jlK;~0Np3LHM(wsDFzzBjKy-9lY=wO?7m4bhIxTL5YRV#8 zb{Olw9~hX$HIFwV?Yg zfC1R02tm2=`eM)&o~X}3%X%>$N~vc*E4d6jD6NJA;`M61gcx1g z9bh;xdU)T|KD?D)zXU2znS|i#DugP>sO8Z^H<@E37%a(LO?fP$xgo03#$5`U`e~?? z4P#3$Zg@$;c{xA32a=b^u+j?wsc&xZ?LvaZi<X1+y|fk1KVmy9c*n=IA#>sA$Q2<@O|&IMsDH| zOWQsDJu;{698@N#jDlu(K{6*|h~JzST5xRNU0c$TwAxNQ{dmhE@oF?OiYSED$Kfz`x-5myYdsuY#$!V{dUl4TbLUi9f36wXyS%A5ce4`xo7sW&THuf@3iB^9h>IS5-j^SjA@Z?cgWnl? zNQcGz)Vi6}7lwr)(^NC~vihsJsM!Lo^6Yik5dt$GHpR+AqHy-RXE|Crd}xClHnH=l zC~IS)e1Pgqq2mik>a_`W9ZC-R?AkBvnf*I+EiF(}xs>LgO@7+eJemm=6goTmZJ}Y_ zJMGL&5wrBKci2@bQT!w**=h9U=vycST-Y+M$La=t+UDx2i6w8MFm*915-eInc$UBa z`J*xz6!_;NMbu)le;Y!+Ug!9?jM9IwtTA=OiYW)r+_u!!qt@p(hzP&VYvbjLl-u)N9GByWj^zGscZgP=72R?BcNDXw}d{}{vD@_b|# z8_bAu!bNddb7CjL`VV^J;P-k~mk8#g9?}x4fE^9vE|lW8pJ;Vz1N%WpG?YqwPac^R z;(MmU@d)mN4VcI(x_x8cSVpEJq~qKX=8w1aGYz}VTRJ0Av4Bs0#Dkrjv<#sSOZgWlwHW^E$Bl7^cKtdxK&`FCTn%ymF=jy=?b^j9Pm< z_+?VThYL!5$xU2qj`?ra(FdGdwF@*M|DXFC`T0=qfcay8qY4)on+puQ6NWN%6tNdBGA=FkW#^;N;{Klahk*bMu3-`FWt+5)u#?3WY~f zTmm>Hpb}6?D5{2}I8nG2f_iaN!3 zq2f>!DJbe5Kc^HwOdQ4sli=cki1CO)#2`|?PjM*;P6=*FsFW0nGcc3~3X$Z5abm+H zIXO{GK&7})X#C=Q;{4)JR248xOi~;o2@ykG@xmmwUNk~Cq5Yz{k6t@_U1WXDl&d<*&!O6qN&xPs*KPL=|`i5!-%F7EtC=`Gas9R7d z42I3g30wjY38*rUAGI|0Isi}gKKGA z4<&#Dum(T?=TCv6gb2{R779>w-RVC&4iLI-8z6gK5rEg_z!jOuf&LaE(Dt=ZfFhtj*ImBu({-x=ye58K9l*IhP(1)z z19$@fIGkeum(Wj3B4X(Wz1n>sH>(&7zVAuc%ApJFzfA;DxasSo_0McJV`Lol1bsQiF-~dek@XzYNH4G-K z_vaJ>OeufPHc;;CDdq1|4Da8{`LKbx>F=d~pR1re*iaszoI?c)#)keeZ9%!PpblK;Nphx|6>zBA2;v+brZj&gqozOv8{H_;+yc;^E=r-M&LWNPtI(y2b;DprNDcplV@YVBulk!baWwA0Ag< zK?JvM3}dXJqY;2^5TKzGpj|bAP}}s-Zle7@{xm1hP+h!hg9 z3VH@cCT12M2rp`m6_AjWf=NG>kyTYw*U)^frEP3tYG!T$w{&!Jc5!ucfBELEpZ~k} z0f7;bQOM|+kFjy7Y3Ui6S=l+c#U-U>tcxcQI^ zlTb_<%h3MbBktF?h{VHFzI?k)3s%`7Hgf30CZXe*rQZcu`_0*Zk1^l>6=(lo>@U8? zKzGp5P=kj~01^RRoPWCU3LC@(`Zph0Sw2668!s!fE`6EM6LvY8Xh6r@9tc}9w|UXt zLK~&FJK8N-H{)eL%@hZa5u(jM%H@o@B({gr*RZ)ETDx#w}Vnb)2Lt+mUhuymi}=O)f^+D-~WkwY*&NzgYDA|p97s< zOpX9g#LP6N6hb6eNGHugN%zZBx?$Vd60MJSKKR2Z-(#5IX=i^|JyvfT(S$hqYy1QGh!Zf>l{^uy)1cY$YY@)C!$*{GkAI;Efbtc&j zEJOc5URTM9V7Yxreu9q#b*6vHvkR zUn_@srt#eLy?nH)b*yQgeMWTDMBjYN*-Cxn0HS-9s|ZSBPG8t~JBb{fyQI0us|Out zY^U~mKcF8xw2Kcgq_EzTS-h(?M1kK;bfZ)4el89#h@m{1BHz^@96O)7^XN>jM(0ci zu}=B1(8|VGE2Z*vWBQLqmi9*9bbK)?d<14e8qeduq=FI-nxZmFGG14p3wxgnjNY5= zpoRQ%_nA$J7J-V!GYkc1ZK9S>%AgphNoTn-ScoB2a4?N$U$? z-+TH^o#;-4%nE2*l$-)9z!N%GgP!YVU@+hu!uhn%t3<9kbd7EODCQ+0H#avpJkB8~ zs1*4&&V$m)|L>0^N)}<4;-m(@S~xDSWkJiHa=YkXz3)U1# zkq4h}*R4svSCsGQYpn`AJB(yRPZJv-AqoAa_Xw^7&3b+i;4m?K7Qm-7mtO=?k<1 zk?nqzHUiQ7f3#`xmm}|-tVNy<7H#kxTW?!`a!-vTy7gl%-S^fJ5!(1)zi?{XUDxL7 zR$t-!$3ach_rJ*X5Hk7pJS+R)r)6tn7CHuM`oMcq!r&m<;vl+Inn4UrKV-0JUpaRi zDoaE(owl}wXlnF1`&I1x3Q4FQuE_7YNXuT0L)JCfwcQL^GZHiqhLb;4YU~I`>gBy& zqf1SVoVFR>m!@^Kx?s47_jD{ez5+ESG4G57T0s!P=&8TLaZ6ICoV9J+TkN4~;sAY5gp5wIawJptBnAAeSv(MWz zqfCY?w0&k|aN8ysrw(Q zX)Mb9_JSk0(6B#)urSK|dbN2DMk=JdLws{4UCtH7`)d{ALY70VGfFv|XFGls!zH%) zK%+W(q%D{eURgHW-b;?%nB0C*20r_U17^YLAG@R84D0v^>ifIVbs6Q!vzj|*MTM=# z#@-UTWyTUK7^Nn4s`)?~phi+Z;7jo7k4O)a1qvG` zVa~6ub|B?)0Tsw~21AamI;Q)OxqWkf0v1E520;bAmwQw5O1%Au$Apy60}Qt|W#xDbf3)ArCKhYMA4kv95N|o5Yi65Q0-xScX%Cw>qHcX#X%m zCLLihn)q{}giwZVPbNc;UIXsx^Kmv`d31Gp5AX98sE`?@wE};n?cSTmYTd?Nr@3EG zw|-jTkD5oU7vxE0nJ*%Cn{BPS^Ji_H&YEqx#rs(qzN5cbz$g8gA(pEwGhSrSmlo)J zFVcMM3iQP}vGed{Pe4IFEIxBRye(JG@P1u7Yq^#r$$P0<{N`%@d@~0X9<0syz{R{U zl0&_QqLCfmw24!JfoHb&kCR*b*5igtY|T^FxZuOuE|IyqtEu#7kMG5%a|-YTZwi9Q zif>AN#d2|UI8+W}(au|oTsw=gG24l{dJ_z?pZ_WO>N=n+>=1x1_V^62d zQsWhy(q6htNIk2Au_L2y#N(dUIhh#0I3_D8b-<#2ug@Zt7?7xv#Ncz9`p9_e_MrSs<)w zQd2ZcyL^|?KR^Fh5K}&*)H^k}^&L&s(i<{`6hvH)ZGuhc$!>n5thzx=EXZF6SuKn^ zqKwx`al#9z4$X5-{pOkiPaRMlN$<1XJ}A&CdJ(Jg-J?;+=7s3`N1^Vf5&*9;z%gQJiVPK>nBPCU%d5sQ(U zRq#pOlD|9+7MS<*^=WD$(%r1N?i53>qER=4#&Y_Cf?xN|79LG}BQUOW^wV@qUw;b;vpo zfB<2zz>AT^Br@eLhx{j2n2z$|c{!|1HR)-lg;yZrczuof{EK;kor?R7=Rzf8#r8)L zNGN?5S$jKo_1a=u=-Rqo-`4iLRxRx=xOHUgGRtj>(01ZhIx;=9+k)rVX2?j~F7xT- zSXZ!(#XwHc&x_>JEMnrKb4s7^6IZ^+iHDRs1I@w@`=mCLLzd&_tRy;@8owmX>A1;AJkpc#$((RvBa&2Iulml3gdM5DCv?e9*8^D zz5->`UxD^%c+2@ksBk*A10q(tQr&vAKED$$PqY?dokP!Hs|~TY%iqH*AIEx3AS%K| zDd^gth-95)dzp8j|11{4in#FXMyS*bk*7xo;@O2LC44zJ<%pIHeb9l-@ z&V^Zq42P(<5F-Ps^3s*+!ME|kD>+{)iSzkFzx!uEh;glp%SY;yMQVx12dWO_M@}yU zFKcKnNPe|gd6t}su1u5t>UrOQQy_fHtweU`C~!b(B)zh3XkP14M6Y57W-z9&VdW1) z5huH>@ZN)7r$PEn;-Qf>Q)QX5_A5{U9t33vdR&2S-o65*uFv?KqoX`XWLcIl=?TrR zea7etpY<)lWWSMQA|b4u`NM$0%ZCU7m#SUCr$bxpg%C=zFV;LksjEG=$G%AK<$Ehx z!GzbH*UV&zSyYuZP^5VIt6@r=y!7{vH-1U* z@ZI)tdpsB$hr!bJ(5TT6!x&>>(=yo9oE%=H(02IK9Dxx9>B8yO8W(Hz^fdl{btcYs+Oer>49O zyUz&Qc2!mn3IufSV@}!P%iCw`C}sp~GjPQV#*{@%@*YMC!b}zJr-}KKe-pGg#NOJL zhYaL4XuL_55AH|~9tlg+I}VfHNq4274|}`eY2b47GN1yE27I%VAXn}ZEMQ_l{wf7v8J3uE>#uLhbGVBoE$K7*yL-f1hRfo z{shPWake>(Mk)08Q~t)ZfT`GH0$JZ+o5iAz^X=msiBl~{uRY-&bJG>02eeP2e zM#!{yck*MKY4rL?C z*TDI<_j8bouFm&`{9IfhO;x+VY6aH9=*xPT{{G9Fh(P@aC;qlC)9$y!3d2jgtKbPG*m%U8SXZ5okYd%J*X?vrbAR^2g)AOC-|-r#d{|^9)6^> z!{X{FbIlUs?F;X|X-MBb#wM7TaP+gEOkW8R zqAybq&a%reyI>Z^iJ;eWuQZTdlDHj-_Mba@2vJP?Tg?>rI(yJPH}+t4@OAwEH?9TZm73*xrIMnu+pqc>-+YNEz zPnB<}2?hJRzxR6e`c_}T$%$KtDa^iGyJM`SpIz|5&c`gSp zSd}q~-q%kQ7#nP~Ji6iBGg=-6CZs%iTdujps!B|(z^+l2jQCaYadINDLXiKG0a3hK zUH)0H>Eepy6m!GVBVTHL!EsGvkW% zRa2=;9Fy7X8}IS*nemNZ3)WMeyKFF=MTId4I%Wk0&8l{~wgY%xodzi|$hq}P-2eVQ zro$nk<)?<7x9J4u?d;jPFv+scN>`XHpJ-3UvHsT?R8?8eq zo_4jpN`ld8vB@S$-|;@*=FKzt6^)3?Uc6L`!& zK7{wM_^9i>a(ejVTgqSeP59>%7iGbVh>W5m{VPyxT%_hXZZhaNt!d21zm{#*T9{;) zBOulpZdx}2fj(fnS+FjS)3MmzxuFk1Cqq+s`W4giJG+9dRAxu@$z5(ZUD?YhPwQRj z=Of-!$4f`w;#5T+?08u2TN19}!tGy}S5$JHpwU|I!3@n9UxHjV*+vIa(^Ob&H+5`= zi83ejYN#WdH0oyCkp!5|;F9j8o40=vMbp;BmmA$;P z!x186ct3ZdEd|aO7cmaDzDH*0e&gP_AXoCsZ0RJ~C(Vo|qsKUB5}q1m$KU30Nt=eN zhih_#D4uD=5F(;^qxIFkYb8cZu{wMe75Y}u=^9D@Mi9h0mZCT+)zXS9<5-i7xB`6x zx3#upw2g@r-xb;6tpekf>|fx1zEG?z!?nMsv}N5*sYFfaBs4*UHSdVHOwhBUxP9de;xvUcQvhglu7l0 z53McZou;y_#%4vTNHF?~TOXEEn{v}(=iW!C7ao(6U-tle5+=V+rH;)XIf)CgKQ z)~~XLJeATx=4r8NGai(K{lT3Le2qSNzlMZJOO$1`zf&>`tJf}iJ2RYQup`=N+eEB- za92(hzRXzb52=?;!p7W+w%)6Ie8G#LjS&6BY$X`-^)AufK+sXGP>V*9Gy%+@@r?p& z>e5oRW=(m(*oEy-GW|Tej{kQfJGVHW<{Wb74!MrVaF|LN@|We|D1EWUZUccE_Y`A!q?Z;C2kBlTAnQ?E!DDA#3%$5)2B@H#os&NsiF$ zJ`)zeZ+@|>@Z5RReVN6xkh-14I@__{#-gmltgK%H%p(GF^Dzih9o!U>%4wXfk$G65 zCw|$|($ksP_$BOUq>WlU)2l;i-Ul|GiQrk*PYOW>F;}ABnseQ_!v$W_B-$ zLI3b#|E5Zvz`oj}d1|Qz_@(zj?kheQ=q&FI>H^CL zBKYG(GX~o$ZVnAR=ItOd*|4ofgH-oanQCbU!_Od$aG4xI{qBiq_)%~=a`*^p`dw(J zQ4UAN*{j5N$&bGp-o`M(ozt0MbCB?0GO10sJ{emGg4+`FWF&}vxv$6?5-T)LW@R41 zY-KgP@MdAMgIuMsmQ;h@-tP__xzN!)rf$yEsJT@(-G0mT3E?6B_SJ$D?e#nbMoBkS z^xFf-XU{TZ?F+YwW#wf<=v6l~awvI*LuIwK`{d=#7+*QnTu?OXR}WKkG?HlFTO*v- zSxwn8W6PNs`yNJ`?2l~6`^cS}>j!16DtFJ&R?iUUT*_k!WQKa=4yHhPPS{h6%HnOd z3t}ESU=#23HV@{ti4*BgAO*Xo2~-m9g_V{>6*O=M8%4NQ@PtUuhQ3J|U)L@#nOiUI zWowC{_v=cEDv`^U_PR4b>n<;FtNlF{e$UUDgEnb_q5!0Tngxf&MHaVXaZnah^IGb* zw<&^SxP{iA^COu?laalOn(>A%6+DYMw>M#6(V4cx6w7IGwg1v~E(G@+JZDSbW+Ug9 zB+qa<*PNw3M$h&1$Md_R;|U%kUwoVLZ78DYS(#h7D-h|M$H{zgFZ8uSi+rQ15}Dgc z$Igo_uRww{Re#HDH+<~bN}HQT1wZE+-X%94(Ue>Uc{$tflD6DnHGT6;BkJcvXQz7@ zHyb?Fq`!z+M}UnfB@PYYf@hk=TzT|1QZ-M^53PEI>D+W?r^06&-cu9xdGc4wXVm#6 z#b?My%5a4|mva_OVXjwEf3Kn-!3DLt^M&wjmYd*2uBD7t?CJl+_SJ5dQVl{Dn2%jp zFUi$JmM^Q@?@DXx;WSYkT$1TnGvKN$i+_&88L6zQsgXPUqKThTvl(0*!?SK*@lB=^%W?H;~Y9OeRp)_G%>!s?rx0GSadt@_vQ; zHc6B0oSh$C_C}&iDWjH3m3^bqr{y*h%gRT-@LAJ2C6VuTwdBq7A#m~Zs(RVYVxER> zN!Phq-^_cKX$Gr!&bbHs+P2*Gu=B<1eHO`8henN}289N}OA-p?0)0&LrlsxeW09t# zB%IJG1LA_3RbG63UHzx+hdp+i{Juk@AjuP#$9@&;vou|$PP9EtIi7+Shig}$AKrbV zf;LtMwe-OogvuuhS)H zw=14wSnU-1mXvs|A~8NovtV=8L^p8kH_Xrr)`e`}IPO1cZm`jlkpD7Zv)RvQ4Yg&6 z*qiottMt`zixd8cVWaWz^HXvzjkqj?;H3fE^LcjTvcDyHf0XR?Tw?1XtYQqXI5hCt zm%`Kn7Tek+dHrDE&^w_o&EpP=k9IjEVhDQAhle-MIjo%KXX^~q2GJ!cHZ0?;T!hu? z`k%xQo&;R>{qz|no~o)&*qX#!nQo<~8CvY~6fvBw+}4pESXOpN+517OM|{zFIH|3; zKb%cX9q-L|%744X4t_JI5~XUR)4+O(8>h7g6W@Do{jqs?6aDT^2w09uf5tf&-D%0{2!S&36_p9iq#>V z+wnDXEZ z?{qHt^j7-sWH)7F@*anU$gf4L%U7jnyA_Qbx7~2&_?oB3u$Si!Lo(KV@Oipk%CX*O zGzefP?2%BDKs?6(f&FTx1pGQ-X2E6wJ?$cM{xE|ko~@S!on*DA7ZDlarWuCrP%ay$g#i9Y)b<)+;*|=V3o9S<*rGn zQE#+eUOS<~IkVtvI`qv=-m$eFh0mpRgLDmbz8Im1)o@ym7;N;X?XOs(A4Cv=z+Z2? zVmkJ@6e?_3Ki$6q$#vL;ww$Vl|Q z!=nk$D$Xwnub9vaVp?PD*EK1mqTe`XOPD$nBZmeFbZz#@jm=DPaHPs4UnTbEe6j|Epl#to+@!#@PexXO%C^DAget%xK$LXP*-K9}6 zZsC#>?UGFvohxX}_B}-{FX<5m7MJ;nAPmL+C|xbrs_KNK=Pmj3k#$LVjYjDYnt0duw|q|Vc)`|+qn z3Or~Ps1-==j7^Hc^`ytUcYN>P#=z9T{`vtX`r`>p3ZH_koD(xWy_siE%4PG^t(_4+A;p;xyg9|N zO(C{9w&XF5+pby2s_}s(UelP~OhfkCf?c0XWw;6rP-;CJUTEJV#e|Z5ZoJ$0=|&(Ck2znzx4{&l@N&jg_CKA$EGc z4Z8@0M&9)M*=K8=)Q@@*IBP{|D8mC};AA>iW3ZjEI_o)|s&nR;>qwu$_Fc(R0%3AD z2<|fpX48jON9czRZqaUIEwT=dP9psKuO1LGSC?3J1&A>^1RLOZ;^HRdWfg{l zpIcIRjy;Rso7VjiuGMi_e2X~!(XH{YXtpn$vg_2>)-N_!LTi@wdxay4hek7)Re=N9{gIByq)4vg6hOTKTm;(cznYi}x_@hv=KI4i&rZmY=Ce-`Tvgi5fBJ2|;CP&jXnW{%#d4dbq ze8%~d48|?HD4OY)!gKXjixmQ8)R6@X!9Pgtzk0ro3@x44P}a?}`i{EjOpChCyaPQ`qA`5b>@&m(`UvwVt7%93Dx_Ej@c344L0kI zf>Nf-R@{P%h{ngovY9xeDv0zKof5a{LY{B6k$wG2N3_;eQ!&2tlju>Xc@xbYHie)k z@B9f>A(LHc(>`#^qk8KFe8Rq_innb%lvM9jX~ZeX*tH9ZlOc=Cea?HM5wn@EKb`YO z$O-285O=xt(y!^mhkK9TDc8lzI|rni%bk!jcH~FgNW&%$+`HYzGIo~ygs`FGh0^v( zBHFR}OrLQkd}nopw{LZCqRZOeJbO}SLVSdf+`RewQ~IV*SMKO<5A44-oxvw-wil|c zQ*?uj%gV|_yNAd6Nsy_&kPvNmee;JfG;;^7Fe=oljD-jU@79(w$=}TbtZzv?S0G=n zWAtWyjv*njtm7J$zEZ>qwL4D`!eU`B-70eNY3rhV>qFUcEKn%duZXz`DP6oFmI0Lr zZP_y&vk{Ft=QW2NKbCX6CcC-EsYR^1?P_DS=H#AAHmm6emSfH71HBs!=3ze@zBQnE z%DK<;?cSe$f3DOgL=wZt+hKh_%C-?H+7)BC7tPlD0n}F1^Vwb3ZYbk@!o<>c-hkJo z)rCjMxq9nv^j+x7)NJKy2bn4;q-H z54YI9-%2L``ZWMedG9j@=fim6_B{TL^ZNb07@{L+80EQ$0l})kJO9#6;r1tt1`VM{ zTD6rmv8Li7Xp?sgpR%{zQfwfT@Naa$9mxAJ7(ZmiED@{aEEwY0SS|hj0Dge0F*+_A z)6uE1-)7aWJk*;W&RtDxqJsSa#>&+7ZJ(_j4l#2~n=SGS$tX(?Dd;*xL^|Ib>TbyH zaZ-(HG zcxU8v=LaGw*n`x!O5-5g#5XUXY8PX^UN%i>+m2vG{T-}#LejaJ72eKn5UC0sRr~aH z%~QA=G8XwmV1X6|}&I5koHQOFrk_o492_YU7ux^MXZtfg$C_JA`k!jHi_&Q_$>gKcb#mfHjrjdWFq3$PN_93VzT4^9mR)|y|+}fn>ADipUCn+Zl z*Zsy5y;tkd=x!_YOsGT973;+d)PDtz>ra$cv>iG4!W|giZE*#{FxmNaSeCOwbMIU_ zb4|Oc-aE}TYvq#CSLei`tKMAxF*zkSw1d!L!y_(BCzfum^cN~q%A{j{;uAi7toTi1 zinM(9jw?lXN}>LGOtQ@&$1lI~eRh+*hZUf70x5iD+*-L;ZvSCB`7MOa1eqe$N+wB$@%pto%RqFIkCab?JrkV_ zVrTuk#s|e4KPS2wlG^8FY@KoPaUyhf83ff;K+{;uLJ!Q)Mikjh@`$5$ z{qJml`vMp6_oEIbm96W0u(Ppqd#Q1?H@}SvIvHMO!$A4^uIpYaI?h=4n&$A)$rb1+ zl(=B;zSqv#_m`+O6U|e}V7>Tw#+ zsP4Hkl`x(SE&gdlQHRueORuALI3lM(Kxtrt9#4BnQnyj zJZ8DlA$?1$&yz8Ag-??Y70{zU*v;o~&Yqr_mZe1zcb{x8l;KxF6H0>1rl+Hp_I2!0 z1j3qp_V7_*he9r&6&1BRCk=YxR?uyJLYfNG6F2AjXJMS7XXVz zoU>cYR4f%HDh@u+qNNR9s>lgl4hmzxG_y}>AE-LTDqNuu2`F9eFY6$xE;iS?QNsOy z*n97=rq(rWJO~P?fG9`@rFW%w5S0?x^xl;s1Pr~msEBlsu5_h@VnXjt>Ae?8=+b+y zA$)6}Y3I!Bncw;5H*;Oz?177al67U}T~FTk>G%Bz+Gp|Ch=1%@d-5>u9YF_URi+5O zXL4Cuc;_&NWbQ)ZoIPU%nKkS{jU6)4(yeRsw6Q{=Vi-X1SlP?p*#?36+c*Hp#& zgS`&!hRTtg=$aDi3+nT{E_^K?|B^V-j`wrEsX-SHBV{B-42RBw&N5E-iv%e!%Q+rihtUPj1??PNJy|p>JU&Zcvu;8yqc7?hnyRD z`E?lQt{n98H_H!i93c27pc_2u3S=CyOzx-44x}r7D zFNYxd8z)iF?1__K&BBJQ6{)U?37wupG080_&liUpqZEHV0LOi%mU81Q%83=jvnTbGcf*tTDB7}z*a`JtKa zx{*aNGHbfM*EPaI>z(7{;LLE>e&Zxnm8|q9<>A$m40D~X65GVmfWf`%Q~SBl>b=SX z2Wg`Z)n4Sy4)Xhx9odSUPL=jIxKPT;NoSWJz26Iai%|!^6o$`ERfovS&kD6Ci z)uwr=41Yh`7W3puSi!URJa1@)uIm2J-k*%vt%=9m@5Pa>%$n1O@F#F*GP^uiEjqJph zYZ|MQtRtrlUIiQ%K6G4V-V^Vj6lM0E;hgg^fH(~2Iy2gl;Cfo9K&6%K2n~ItWDoU` zyu8b4TCO`%wMu&urHa0vsUOpRyz%&V1=KlxfjD~?`kX?B1jFa{3gz-FR}Nk`?s3=1 z(6%yRx93O%@v&)ALoX|HEq2vZ^Fx9XO=gh3SP%b~#H3CM(*~qDAriiEc z?3y5uE6DxZG5f2^Oh^OcU^$FrUH9vG+Tt9#EF$=p~JnK)Z4?|9`Thp7-2 z6bQ6fT_iN%sm;~X{MbJs>zqSy?irmc6ACFWDZ)QKa2HGFCW!FYW$~VMcBve*o$5Nn z1RrUXfAhlyih${u2MuH*;#R+GcFX%xb0=*ph9qh!k#Lfw4t}rxPwkMdfU-9?^Qe6c zCJMH`sc~{n`AY1>k7mbzF0Otjp-}BZAp>>v|s49ylb(zH$=_O+RMp~>?oL$nLkUlfRWwfCM{iUGG!;6dN{1c z&tV^*pak&coBIjZyvu4v7XzD3yFH*VMwW{nN3aV{c(cHh5(1Rm-b0$unCG^{Pg;S_ zUFX8#Tv667mht9BLX&59q(xP4H<1p!bJfMb^3phXb0A3JUb3(U2F&KIxX?NI$N8ZA zUbjtj&iC2Rul9dX-}rjO<1fVZ32~Q9+3V1#{evuN7nM2xMtlhl4`Z=8j=9s*JQg2+ zMKLXL0LySldI=i0fgPBSS>3S{XN{QW5nh+uy%B8%@RvLw+;F3Dt@`kS;03kFbt637 zjx`+Mm#Q&`NKwtZUxG?Sn%svA%cgvuMz!#D!WA+ndXZ?fnsBrQbw{x*gs}xd-!Ie= z%c|*~;Et+7uivX5E|%_-QhUCm*1Spaec8CSG;JOz(GYZ~Ylujv>}0VriHob=LB0AN{yWdDhkUKf zJs}nPnM^jcL~u?;!Sz1FTEA{&>idl7JeOG#f@zuXg{r~PtX-?3(lJV9#^jFYDtAn2 z7EY-?XhD|6`UT?+kS6|gL0#qh+;$B_Kqr0h)~3UukzIh7!#(u3vBX$ZY15*z!o!g9 zo~IhB?OnUWu}VTL*DZ-TwzMlwU~_gfI;F$kw!VEak?vN~Egs>8PCq4e;0o6`7hdh&J=eE~W9+S-P^rm%` z@m*rVE=HS=hJnrZ6%!DBe{qN6eNOS{LEB*TYauB{o*PR9SusLB1n;|PA8--9mFsEd z`fysaQ)N2lp?WTXxddg=7FcBdH3UlNv%)`?O9$xhTx4MxPo6bp{^+Q&M|@>g!BZ}1 z<&Kdhq}&@FdM@##52p_w7X*^ldpwJ&We7d{we)`5qiaaz7y>W!ai|^JILBnRq^z@l zhrL27mBm0@@`N)nd2Jf*CXal0?uW1}(6jBzBj%@mTT7}d-c}r%o<;!#fd=0L2ygR6 z-W8$)9WpP(s13X*(sm@Pk0&3km`18>b4VkOPkHVtbiDG)VG=If+~u)}Gmj~=AP4@l z%xhSdrqIyMPM|Yt54|!VH5&9eE4$2HFF>h;LbuyqyXpRd+!7{R@8opFnGk6eJIBP) z$>D>U>`wD7Ou~#uiSSl#u6QVixKK64(Pnxp-Mo9`dOH8b`j+;>@=*7tU1`m0-%Ajg zB-AN)mHNx*gV1edyP)#>HGbbnGgbNc_?TZZ^w0_~iqTSQbUJFl#f>BK_NMn@{kNM7 zph(jM+vdDhs%)i^V){W2ttF?$_l&V=v2_;Y6g_3}!!?6p&|R6f`>!-0PT9@3y2-y+ zhRGG_TO>XH0T87Sx5V9G>QSfNjd6SokC|OFN(I*n`Fl;l?Q%|$zu--1Q^Vq+dEc&x zi|=tSwseyfKFg`U=0Et1z>h$hdhBiKFx`;Z9j zH**T14*Wjn6p!*kWX8`uBqwNoo{>;!>ySj}-#y-s80^)O?&0jyVbk5xEMUv>C?vmG z=ul2>KR7Myopc{|&(}JKB_Bc^f&BC!iRO(fLVTz<+q1N^mrp)NhbF36SO02%=SQ|On$EON0S>=L{K2Dr> z2)BxrbMdpHHB_uIQnnGS70n2-S62}Kr2CMDJNWUBxPaI-X9db-ptv5Hf= zU)y3PqV-8OF7vOuoWGvV$MgDY=M8HpeO*jiP}i_kmQRALPsQ^{Kk&?No0kZ)Lt9N) z@uu*gnkHt2hg6SANZ+?va9Txwx>o0SeR?YZ)UJ7F1p>UGA3=urGB}G5xy7uvu!dIY&#uet2wpq9$Q;`J`pJ**0w}H zzE1vVla_^t5jjUCf4@XmBRmOgV3ZR&L0ysOhqO&fD9=}0Uh@uYNz@a7YVWf|he<%y zLEU#9LGeFXR!R`IH zn*p{&aPO)R?a;`MKEV-_vvj$!8y}!)(Qtj!HB>})W1?4HSF8!RJ}POIx($vu`;t_F zay6}5a55Pz{SNTRd}-$L%DA?PRI&?JDiZ}vmFekp-HRjU$-1<4nbTdA{ zN5IaFo&G-WLRD8Rr}1{mrs)RiI8k;v5nr=7;LIWday*Ig42e{cZcdy#J(wU#2N$#TzWTTX)M+aD#zi z-M2$kp*gkK01d^Cu(|g4h|Gb^;?lYjYPr;gR9lpPwukM^tAGn_%`#_>&lD+yxBQl{ z`&Q?W+8Jc+LubaR^tTuZxb3+3SUUM3Vzi~CpZh*4e$stNnbo(GsHEc|Z)@27iPUy? z50__otkq@4cGht(9KnfxF0<@g-;h;c&Q?ns~S`a8{>QS$+v3 zUd1w(e;C$C)(mCO+9xmTRb5w$bthO-_96}bA$c##b|HL{ZhRqq>GkNb0Mr+M&W>$h zv1E9$G93&_LfP0agGo}>_Pvk{0)%v=lZyHR>}<@h@&I3adVW!{0FDvfG5u8OgkD)v z_6ZXcT&k$6PFtefWES&e3{|iUWo>#FOs=Ry+4P16A!d)kzW73>U$#T>0dXVkw#f0* zwuNaUA~mhr`aP@1V0-t|A(<}oB%O(4|JT1B+(|V6`Y>ZmUwn-oSQXca49S^*P`_5A zPlr&3Ql{y}wFP|LGFJu7-rfP>zSZCm17ag9OYpzIWH@eD1GO1*Pe?pQ;tTnUC#CNl zecn@LkVu_`?9j|nwEENW;dmY&rwiljXB(@- zRV{GTd-CV39%|pNGJo=;BZFXR$1Dhr9Ru?qU*AsNCT#^3R1CAEurAnw_6+Gwc62RjP~pkw_FHHv0mnVwz?MA@||> zzjInW@bD0|H!z_2v38sjw&C`%JuZ-&sM5_wAe$cy1JhBs}&m6oYHTt@0 zWn)+zBLOF|%TrzAHb{XXP*R2tnQkdKVyDa_uEI%a>F#EvKpGVMPIdMi-kLO9S5@rn8TB}P?r%a6uCVCNOH?VODBH1T7fso(=aA7VJ01kWy zwu_P(f8BV>b_{ef#*l1!)1}X0U;e8bDV%L40)-Lm$|Yz|_M-4vDMqG8W-d#T1St0* zJg^u5M%WId-An-bf`#-c2CSk?`HDL%=rjl;81xoEB9kL8K{LTJCz}lG6=s;&^Gsk- z_(%1`{eXk}_!9Kt6h$6?zo3>f#QL-Zpo_+k)PQoy-s zko5`d6RcU$lL7nIaQosU;1U!$_%G7=_$L=m2ei?q5EqU9fq(R>X4;U`{#+7Ql(PTq z4}N>gnJZ!cckjf{M3tN5vpzna53oJsM%{8MGuCgcaj7mrMt^kDlCO65{{zR~k{>&0 ziXXq3elB1_ua($7F}u8I)qXZ})Ts1t73kF=`X8gtExFF+Jn8INe*axh2elj~W`A9e zgaOdG@-vM;Fc7R)=IY} zj?*(2U~|*YPkYLg3XSfQ#(GT5igvWY#{S6lx!T$PKfTmvGJsL{8q@+5iLtn}e?QLo zHyVa@zuZ4?jAQ@zx}yIze)_}ei?4MgP7aa`6G>~Q!JV}mJG7P-GV6a7g`{7<1T}pF zLJSh`ZS1`w*dEj$ehIpV3xqTScmV4fI{+d(VZc1KWjLS*UMc}a768$8v-J09LTbJ7 zMD+&{u9U%AzAplA;K*QZ$}BMK66V4Nd;k;{*Ci++2*cU`dqi~%Y@j&_AW&fiqK?10 z|3_F0D{xQQZ6G;Oh&5!`Dfm5hdNvKjGw(MTFv$v---rQnuqXE}LEkg6vX`JcNkJF* zjhMTQr#7&^T|2|>V=>qTNbM4IE$S5iYSsUhvW6UI|9g(PS;Ak1oc^c(7zAIr=Kn85 z)r+Dr!H_vRJ)M7CPu!uj- zB?VUR9G_!(fz;N0vtNG{P0P&L`$}N}BvIpbYvRctIYN&nFb+GW>7a_Tnq61N8?SC1 z+2MBcS#%z={@XQww!=~^2f~)mTW3xP;eT{Dk`uEu@=H+qHU(^!HT{oQgA&E$}$mv^E&xke}xT?$T=?Qr@;w|al zf5E5Ep#LKmC%N&@n6yhL(_38b`yF7Cnrn-4k9((lUKUIr>h_0H=)t73Po)Y_A6S^P+kc9zzAs0kIfg?YvMd1+q9?mI;2ct zH}ZOK7dhJ&(chpyY(r%5dh5Zvu{HgpAI_956Zno=WxMF;>3r=)f;K3Gr@@e@H7j|| zEb+obF&LR=wt1yQ2-^FeRQj_2nIQ2 z+mQB%URr>CL)TKS4<~g`s7;(3`Bau;j@jb(_Fb8=-3=7F!u|?pDzgz^RJ!+r&g+(O z#pqzvg)gveTve;E0o-Ac_*8a`|1VZ><(d8QM^%%?If~qlf{4BzJGzf%kcCzltM>t zB5Zw}8Qt9@*GWl{iUk)lR|OC)aP8ocE+Y8VlkBv)K+jD#g<}Sev3$_ zOMP*SqjDi(Zeszh`_p_iv9HD_>w3azkNe3B-!?oBI!`esr1(faIdy>Y{GitX1#@cI zWI0>Vp`y80PAKKzvmz3wyQS|t%=3-7MJ02^+R48axnlvn7G$>g0KJnP0M2HRK6a(G>;ibPcq5O^KH>l0P z*Fp~Hg%^cVN`cB#iPCk76P4@}{AOp{u{4UP*69b~uWYty19jS2*`GWtdNPao$%bF< z|Ng`~QX|mqi^4kj{nbtTiip$;k^L2)LL6EiX*XgoFKqA<=F$Da`3Oy^do5;of<8vK z-tJG!!Ig8ofV%NLulIM=m~a%uwkI8DnamgrUhay$W}+CC9WGhhMqpw}`M$yped8am zvW@kz@$6d69%CLBG2F2c01Lk{<}Uut`6w`wB7Oe1kNjS=)?&SmP9#JC_l3f`sE4LxlPKW;Ni!MQM0kfo%Q;pZ8%!?mp#aM*o5 zr+`4V9I@?icQ}>F+7H@#AjA}spiwNp<-R}1_br@Msm?MyO$r~OndHqkxmiaw4;B(d zt2X$J7a=vZ#&nL4848zd*=TIv4^Hcv^B-J-PR_?=)>mN%&$XvJNS?*thf*}Vw6kP= z?X-d*7OF!SE+DU8TU0H0DVV^BD#07en3a&q6;3hW4jsN}w<9hruIE|%KwBc2`o^R)bk$=sU2bY|P<{Ans zEl2n2r!4}S_jB6d6H%EWG^;w2t%Cin(sgG-D!g!F7X$Mzhad8XW6Bc}!3A7~y@l~1 zxz(HO<&}OBu*%gmJq#ndJ@&|qZ4+i^R(g7}@A2yuY|OWMD%^e3gdP>&03S{mUox&d zDXiRw_-sIWX?z~>Y-b;1+Q=iyVFYXDd;J^kyFb5uv;Rs&rTL{Kx$?HhuTWjp3i?9+ zMJ0;kgoN^g`h$b}DL@xze9hOKv|^LhT{&cZfW92=sR-ku^f10=?j7MJn#T8e=Tq{0 z27^l3g2lv=c@h#xs|mwn?*qHM$7Pui)O1Z^!%U8s*-n@Pz1oCtdie#yzkm5x?@Yw! zOOV0dvO6ET+-@_^Xw6Ry>TlHz3q6MkCpNV1%TITA`>gt1f&kua#lFCtCT1piTqSy3dNLgB(2xH_m zk>6Ul{F+3WFQ(fgH_Uk1k_1sTDbuSaBAF@^Qiw(i+k`x~`(+M=&fxM|9}+>dqM~fLOrmsWq1#O( z@SEg1D)zs!H~lXBUyUr16S{cOsGlU!2tf@!d&bWq2CF;~NFB+lUvo^38dYNUqRb$d zUN;3gYFI-|9h_@I@LNLX3g#SQA!nd4<5TH(PQH1_eqeS2e*F!}v+$1ZD2&Qu>t|2b zXEQwjDRoA6lpE+4cr=hRtgPRtn~>&KR+vP~BcJHXac(f@yK4J|p&xSO?EMsr5nR*T8HV)v?2odAn}0za2X8xBTt@!(T}y&-u*)-2g!i%qMLi`GTAYS*RW7 zo8QzN7jZ$JbMb0YZx0J|I&A&ah{D?ye!VyUdM;LLRR_=@ap2^}8Vv;&i7gcRW-HVN`Im=nnO# z_DUTsCHyAHS{7G$LN7Nv6K={oa9Hbg=x4jEKE#@M!Fj8le^XQ5fUr|j{Eg^l=xI-7 zh*OpE(|FrRM+fc0nfy)rZZ)O=l25wXg3DaUN~vR=-N3QxT{W!}lUyS>hUr-NE{aU` zw;0K54t&YEO&`?pUDDy>^8y_6rCy8VdRvPW47$I1-7yKFGdt7Yc8QT3bC&gEh!fN0 z7PnK#{$D%+oCPydYxj}YJm3q|vn8CZ9w1FPAO{6QoTEoPsj*{z)HFiCQYVXCE&90? zna~U!Bigzi_aua^iXWHf(^h7y z6MK(}@v^)-vt`{>XM8BwGaVt%BI|+j9&jR%FKwT$z66;m15Ln;IY&=yHUDVz#~;oE z`Ln$#6*dQe4dWWvc387HpHYNB@zm8Aw@4=y5~3EjN1{6xpRC!fin?pB*G#zSSs4ne zmBphjK{7f^-jw)M)dPuWv(TSs$}Q2bnfde``+udW2A3>TE1H5+DxpJH!wh6Pdm9JN~@!R9>X-iyvtIC3W_+8(%UFJ z3NE`~Tu~an{@{cE8cv%w?qOj{XO+k8T_qj9$9diP;dJPV-lKi9kRR{AYq{Nvm*aB% z?GQ$_Vn`C;mTECS8Jk|29ov*p;>=uQrT@!PN^kMHBJP)dO0hHAe!`$`u8}^Y<7&f7 zFA3&xsGz^$vBWM}-rO>`(KOm?BkH}~p2gB%ln`zgmT^KR`DJb{D}T;?>GyY=_q+Xd z5NrcBv)qri%Fv&-5X>B$={?q8ju3`wPN~8O9|xp~T7iLSorgvnvZ4f&?f%XPvOtTI z;;3qScX9ATJL8TTHFMOhZ}$A(x}Ln;u-y`XHR-DP6zT`!TM{jc9o*`;aFn6`T>JdD zB`b;cX{+?P_Q`?c`I9ah$v68g zSr#X6`)v=H68C3Kh17JooKJbpypOk;5%#so`4nH**-FbBHeqCJ?|j*PEs)Kb6`6Dq z)h0tG9knf9R?l&q`3)5!o^&kccI{n)Ho2c>EO*t^Z{{m2BhbqJUp{;}3{6R_Og~(5 zIrIOVXFJYdIaGF@j7DVFB`YTBecvvZ6`Ho-bGYek@xSw=qd(U$sE zcGjd{tj_S(Yh=ZTJ^Oi^bo_=f(60bFTXM&}1q43DL{9qrz4v*wDh8*itO2w2E}D%4 z5leyj?O)7HWbe&n7vvKxxS4c6)T}4Lk2b0Lt(4R>o7Y=Ydttu%+vcmG8u#LIZpmf# z=|}P9h}yVqK}ri1{fT}jp3#b&3Q`nLZR01z64c@W&9i&-*DQEq6sCkyjhQv`I?zt( zoVxbM_2sBDn@aEUV*ac|p-R=U%0jb*b_<_b2`TOqYn4%Mp>CgET?yy2yuc(HFDtP< zxvJp0NQ#KBPg-l80#rdJs`+KTRtjxO(LwsiTis+x1Zp3|v7Gg%{{Hz)SM=W)DP8>eO% zI6kKBOj)d)U}M>iAVqG@j#+yzWSYfq)H7E|)9(^3)Ql(W$wG2hyI)tbXcy~5vwpmRg44Xgo3(sZvoh=W zvto5Fzf!X|n>}~B>qte(a024zybt+qLG)S*d9&8On*ynl_VsLSZCI zZ~o?>Z@_6_oai=>ud;18En-6Cl(H#h&6m_+p!(~|{IPcZup3?)ASlGueO4%we?_ZEY>%_buH;ONcuWzNp ztR3iD+!OC>2Jn{^P;o2L8%E4{RWV`Kf>WnWi7IgjrkGa7n6V(Yroud~o7?G)Sn=ri(MyYJiMjk zN5-L@TS!p363n15`YS#oR=Lg~0oQr3jF|H24c{idW4^wvPr079oqJUhsB@{>Gp~(D z)`FYXGYh)!hSpY8p@{5HvQ!CLckk~F+_@zz&a1ev+mRb6Hqyvw-?cSG;jy3;7QYd8 z1`9geH059$DpNlH$s}Q_{7>s~bTS!z|@fB8Yl z4sYFpst(z4l}+6az^5gb3O*(qF0H|BI&36bqvkGLk{>cyUZ|Gci{4)Gi&{5ovz0S$ z3V+LZxAh6r5}iW5dcQ`^?(L-3+yRV44p^LwRB)W&alUAuIPqkP9~TR~i6wZ{)1`T5 zML1A|@R8Mz1dZVpsi5^Ug1G8WA}(L^NdK*S=c5;RDB&j}w^Qb^aU(j{);l$D%gE-A zGEq#ab;V>5{R-F2cfE+4WaMh^T=J-3A2f23PaXCoa(kcN(VVDeTN#1P_4boMj{R?s zU|2Ft@>vTDJVU3D?#0YTMw9Pl-$}1`FFlrOv0HD~B@W-~DtkP9vZfOOAQTBFd{dCy z3lSW$bBi|}yufCIGNUtFqARR1<8$%d6N=^u>xOqs%2dj;f@Nz2ecd#F3&IbNvfY2l zrp6f?P#UkSG^NKgO$fyV<}S0KSpigQMNy!sNi%Q-DNFz zn76(_uYd&+9Qzh#d=fQl-nhO2f-30*fChsnCvuk{Qxx02(iUuw|GT%w z1ySP?V^r4dRHk!rk`IZ6F1e<_qzp@0C*E}XQo)WQd&NmArc?eQTFZsV6g^>@2?fsB zloYRggQ|jxIQ!V+%$#jxj_au|)l|8coz-H+%FIq$d6t0XRd`_*We?^;3=L@x+KuNSZhnk6)QCXqjbiBx ze(4<_CuMK;eaSVJJgy`*1)CMz!!!iE;aalOO=HX~(3w_q_u7k1c8(p5FhY-%CH&xB zGNLk8JnDW(T1ygO;x}7s*Q=#oQdt|b2gxidGZ>rKiDTz~ zWqBHZ%_88HM&vu^XHkUZ<6!c;!q-?XWo=&s8a#C|a-y2d<=oi1WJ+3Y0hLADd zWu~}Kq*l#V^SHbzRNOF>8LhosQ0m8B zxpFhhR=W-s5BG0aKV%{Viiz*)$eB?G-rV;oJT$he3_{XW*4dH?LiA(4yo+(4eS@2(*p`EH1E=eOdD4?G$KYrE5*x^^{Ii@n|I;42rgLeVLEmeqQFk&G!*)6+&O#DYP*j51zN;Y`oXJzTTNPF2bR0 zZ*(p*u%CWSj?2IkYZVdBkm<6d)Ox@jX7%Mq$CYWQT(bITfX&+$gtUDmla;HTGUC77-pK+)_&y|N*9{< z;J#z;$YCKDe~VV@Jlrs*B))QRx@%i`Ypd_|^Iy7|Del%n#;gzjblLnHGanAz#}B6j z6mRQFggi-j@?`HTgJ4wuvATdi`RKc5NmE8LZ;`^7sm7RE!Avz&@3Y2({@3TKA;0Ri znnh6Hy0&P90lGw}#z3h4{ZPIFwV-n;DGj^&_q-dg--t)$E;lcY+KgnvrbgaP$PdKD zgsOlW-3m+$CsFkAb0Kjox6VtH?F>Y6dN=nbI|mMw?WA~7=W090C@6eq?28k?H=BGx zKilm5L7Jv}_PR;3hcCL+_~bWkjv*b6p(WLL`DJ9xVp0XBJ|5v`Z>^LRuANB(yF>6} z^$8UsbCno9qf}~*-F-`l)jmyke5638o)Jko%0x#F0{N4@i2;U-zXzI6@ll;Q2{%|Bg_{^?5nVluZ^A}25?;~S%AHOrBDq%aVn^>i;eNxs;O|sqS zgiNPjtC$Emeb^z;z$}=(%UkPIuzI%Hmd#yL9u>P_tQ^F5s=s%_gij;8K${X91C~&x z3r@8$XAxeeF{p=jS1#^PO>a~h+S_J&7x>eVu2N$WUuX(9(D91Mj|!6ap2y1Z2YjRl z@cDElqMg|v+H{*-eAu$eAX&qQDuUQKtpahqMIX#1=mvFrun^Q0MWnQ7%B9Ws1CNiH z^l8?@`-p4#3y0sAafiZH`70hJqUxExf|(P)f?1BQE0q@5TUU1P$dAa}@ioBf_PC#U zcP3C{Q^q zCuLz+Wo!HN5|qrHerFwDeMm^l3!9$(jS%uEA-(3#uWrgV;>Y3vX{QM3YBQ7;qIdi0 zB(hu8q#nAw&rqH&Xzizi*!!u%)IweH-u^?fa~^pY5I=nd&wo~6^0lWjqW#4bo^GiB z+Uhl%NQt+y>k#BDCkf{GFXA$hemvfa{hTM~dERZH-4rYM&(^Otw6!+lbOn zhuqA|nk&yFi$5M@ZoJk|to0czAyg6KA0%MR%9>?3mQ5V(@kP$@M!XBB8aEBumK&v3 zElrTtcTvQz&;n}yX84wHvaS)Le6n0qi8#rdU+R%|{a~S%`tY<+wRVimbW1E3S0+;d z)4OjsORo_~LDUPih%~fw4o7Wcbs_Lf6^Wd&+=pUXiGm)&uXfWKd9tVCoF@!_xTYD; zOq{tPGL=$C>NE<-r3m^6nCXdJy9HXh?&c(gCPXFNi5RzQ<3M)|&T|U>`r2rjxDc9T z7E+!{KQ`agH_uv>+7bovfRc~Mwc}JMefv^8d3#5SOHx|AftomldeM6#o5lYq#ujVY zRJIByJJ=Yq+oh2S5ef_2-lV7sv6m}Lu;{D|W!5*L7M7D!&mi}pB^HS8z1KFLs%DF- zPjLlv2@dOmd6HL%%Os1>H@p4Syv$46d3f&7qSn!^}7FAKRqOT`P)Sba?*mTyez2{ z3Yp?@t*;fJRWa(_tDRz=0myTR!+B&{la`Y0pjHk}4!~HhvV?Un>+Ag!6T!@Fmhv1i zIHykiQeH?Uu@8*znN)d%=yZNj8D3P!Rst;KIgW**EMx~JL+%F+?JB=W?wJbL&mmx{ zW0JjwJe)n99=G5AR9VFC$Y`X*P^snNxrA=@6c2lbiYDni5+X2x`#}+xAngmP3dYi- zk9kyfR)y(WL>RYu-J<%TUp3{G!^nYlsrvZ9@)9Lt>77WS&RLfc?{Ti)V%3z~JQgaO zp>Xr`$;6rJ*p|^nC)Lg)u)kuS#eA=eT2Yj8s2${BWwOrw_(Jlv9rRKg zB#QfnE3F(d&$_1V;jnmWV=Y$Q0I}El7V^*Yi2rQqXyCzcfxhDp{+FP} zJ`1`8X~>+iU4mZw$ozyI>;t8hcMLoIGl#+e9ul|+&AfPa3Cc~!#9o3bNH%27yiQ<0 zNKUM`&yrz#z?F(YEYPn!qJ{+n^PcgK7%n6+GP6M#f#VC6#?yzudq5YG`Xy)$_y%Sm z>lpw{hfecn*m;JfI>+YBU_JuxmBDghhd@Jf4D9H~1@M(>G9)L!CvRU|g0vj4im)S; z%!tfc$nW^n^B36WOAtIg2y^FepM+tJ;o|x4pwf#X*h_%$wZ9ol0Be?kji7=1GF$+- z5)$lJ00@fxDN}R_T3wz4(o8aQ>5Xep;I<@Kw8CErg5gRIf7uXMa`=aXaV3W@VEqeW z+hxGOLmSW~DA4cgC8&RN`{F1aqXN46`YYjIZN005ccpf&l7x#)}gN zEbkklt4mkXxY`?6$KgsjT+rwDAmRwyGVC8Z0KDWh0F_(@;e*c;iyy2s1U;Dx z<+V~sR|j@CpWL?rW!&`kzyxf_tcSu@7~hEYQ~Syd)luHYR~jv^x9$*801rR|TUJ5L zUM2UfBAJ;V6EWqQf1{8v0@3z2!6LCZCoPFZC+72e;|66RZ0QQ4U+x%xdvwgIP8Fk= z%yd`2r!La}pqAq_(uAW^AtU9g*Su_goCgN7F5FIFvPXW4exEJf(m=VE zlf9e|u7B2kV>ANH+~QJb7!#aQXu0#uE2|}ThIRa<-95@?i6Xq~5!Ua(kxsW=TA3S+ zotcWR*Xy-SQx5V96{x6b?I8~el#S4zbg3+1yh{czD@pV7_&d3az|?Z|t5i+7nkKj) z+m)o=^kBhS6VoP|6$G!y>nP2ls-hIAIo$Q$SH+aPwnZvRrU&ny2mu26AI@9xANi7h z*EKi;<~?uYdbrscSsae@?~VTdGOdLjcRz7{rgfXjzqhfhJ+#iK5TZu`jOM6w$Tn=Y zW52CAZDb?Nu9b4PR4{z~xI(SUa`q0f-mFkiTROe}sJL}22^sg}6MHE}qvHFij!|}Y z@cvubh@x=1fduoI_t84&ZfmBz3=-r)A>n!&_wI4)x`Ep|4eW-I=QwzTSMXpswa~h{ zY}nN*K!cblU1#54E@e`Y%@)xhEoNm!k1?lZ4Ku>Y~Z z+8J;D*J0IAKOw|>r}oE{I~dD?vNz9jbjDN7ZD}opIe}G2W?*MF3^9tyRPL_X4pux4lfS*g1_q9 z)@Z+{C>cRyR)=&PD&R46y&<~yWWZMd-kNpd@VscKEVq-xDhI6qy?bvZ7{m|{vKzqp z(?Od4b5De$DsxI;0vo4nJm6rzwg`Zl)6JR1p+RwLhy^%zcH?`WP*8EjHr5Ada`un9 z1d%_vfo?qACb>A1!RUZ!>@Pvfbuz~*m!Ms35VZCZl(qwenwgiNR&|`KPhCmlYHwVf zlqg~=@M1B7_r!N6og5dGE5D`{M9hO4vir%(m@!;c;< z)HDnqvb>o@XE}#JNAhc=XQeg4cx3j=D7z!tDRiA3r)zw>TxZ7;*eM^4JLPLcgNi14unoyH|%S^#?%M**( z74B9X^##AcQjPPzmXt2;%(JZsdA(zp*~T)d-oxs6XJI3vIKVXgvAt7x^^o&~od=@U zXxlnkkAYe%#h7`7#~oqi=6~$%{@Xgsu36yRDAbjz4xFukG-3A?T&@dNo6fLD&o#OxSW17zn3(uF}|vCUKkTHbsp})Ly`ndWQJHJJQ@`PjA1pYfvN5Ru&>>8E+?a}V zMBYh-FWQrQIe=?MDCr(W+n$@~C+UakY~`sap(o%DMs%C8_bY;nJC|b*ksPb6-egnr z;p^$Alx0z8`+x^9Fq_BSx7!%PE6Fz3ooYX>8hN(LR$du7X3$$B(JSc~F@)!wL4_l# zHJlByu<;kGj@8(8kN!m@qc&(?C*$DY+cXLHYoc4FW1EFU^rE%U7 zIc!Kj9(Z&p#osr7WFkDHS7zY;^jm+e?^|`E@LSb7#&=slDjN4-^#~}yF ze(q|IUZqNHfF-=bN%^Rt?JjpRBf%i`>m7%i#16%$hP`1I$Su2Deu)IW=b!3kgvpkd zq9sF)ADkw3`MxbL!ZG`8SK)(O0s2Bje)s-oSndR^F>1o3RWPC5$!wZ2MsG=%_H74K zImrJ1g^V3e2!PFJx?c#8ow+xj(H?*{eXx=*0J2uJ%msVo8=>q3QKlG3mi}CXvP3nA zoi+x%!j9W1$+8>UWcpx$aaXutp5Zny`y5?e@(3x%)Ooke?(;KFf`yC2hLs+(y~pTyz-?`Q6VHi&IPesGy!Xjq;WI%jt~=j561=%0oEZ%F zN$ksA>mNs^!b84NNC>scdQo|l**kXD>TsNpXiWurqq|RIWF^3D1kAXI0IWQn7Pbxn zJCFzkP5j*jjQ=*D)oRMdn`NU^%_sBcqzd1gPUf+d&4+>AP5ROO2@565TQQ11a^u;- z(;8~_spV!Ks_i=5_N?LBkkL5Jr4mis$+e-1MhJv=UBOjE8yIHCu=8lugsdjb%|7TI zLr~3!;$I}eh{^u*%kLrQ09c)M!)55V#)d&{6 zluSR9gK^c0{fRWTk!;<1YfY7>x`T$jhJ9xy?t__ZEoU+wU z>9H|N!E-5ZWie!i757c%ggsH4r>}8)%x9NlxYEfvU6jCZ;VD#oBU$;uz}ojFgz)UJ z_7IrExuU_zLD|DYYOEbAWsZS;F64#Xld6H;6xf0-m=DRU_pJjH0N-Vlrk}*mCHGT$ zN@xslKPXOHf^4#!OJ^-U_-tMsstYDic);J*eQZ?7_(n2kdG1D|pT&Ie22}9TEu$%w z>`9c3G<{u_GMKHb=KNVNcXT_h0`qrft4x(HMtSa&n;=2v9r`aht#jM=OjdM{Tx@DK z`|9)26YF|4lV{;f3biF>yavA%Af=K@cV_XTKJ?vxBWc~7^s0P*=H|K#@%%`gOunsQ z;=6JZl2s9Jhv55IDQYU7QF8m2p=|42L@31d7MgAB z>0`LN{Xs~}bGW0@QRXNz5g=nRHPBrGJx_ZfVP-#*$cKk zw+wP7NwoU5roZWs0wUmfL-K4F79h#>Yx6FQ=%o8;`Dhu~gxOBHY_fJ_QJ+2|V3PC) z(-%RU0W=zoGWr35;5nk2!f4f7zT6eW#nDj!0e|W@EE)D5ucaR@+FgRaOse1L{ky#( zvR^<}B5?e|3FtX~8uNx1pfV#n*gnPo2^%N-osa%6-qzn$`TVC~{-4ttH!F3cr|@oX zh1XLN^sf=*hfgY|kR1aKo23E(D)C@ASq4xchCbF4{xVC}8x;F8&6t35Mw!#|DuA6H z0FX$PZZtCNle}pBjAdA`vccXOkd&|#+$Qrq5yJ;{dL*EO2VU znzM@K)YL?oW@rh&5GC^0h~R}1Y7nVQxfnPX5pPDU{(&YK|Ayp?=&_IOFk3U&Ky@xq z(djnBN<6_o%09lhl@xV>DF;}}%RpC`uf%e-9j=bSpIkc-!sXmpzvS9_2qRvXDv)v9 z4*z!YblC}|NX74pcW|6RC{$~d+$*m5tt%`$h9h%oATHXBA#&1R5GUv&Z+`oXg7A2T zMJc-4=5l%m$pTXF^ zA-Q^WC5fwDaCIK8biw~xtw?iGm~YhWZ~@P3CHhv9CHE)}(iNZaDsL3)}b9MplHWtO~7qh3l&vqOM@FIWX6;I>T z4EIn$q?T=MT4K`R1IsB~;T?IJg(gUYHvTbn&AP&!R+TO%U07Y{B5G4O`v0)^)?rb$ zect#W3MwUC64H`NONX?i^bjH-4CByUg9XwJN-EtbF*Ha^H^@*jAl*5@F#N82_uW2r z_c`9ZpWWyEt^VTyGjlO>&UJpzZ+v3Pe6CU3g)JFRJeya83R#q0S8jMmlaC}S4e9hW zazuuCEs&)_LzD4TH%&EIwQMlci=kvgveR|seGbrmAxN82dcwBOGr)dmbXGhU(9O>4 zA#w04Z|1P7Tq;NhL%6qFy3$?(KP)>dk`= z7d66{x8~A220zer;ViqP8xV|oxK}^|)?0=-s@R42ZH!BXc|0kGDcnVBJ}(b)ptk#4g4J~Ui>2ls!H57W(ys|`%6 z4d&KF;dv^!E+6V zRu1xte&wlTCOpa#SL@Zf#V0la-fe2RlO&PGoPS?ZIx&6Wvcb{m+wibII1imf@UbdV z!Ao@1=V_}81!4@`j0=mSr8FnL$t)Q0nn=@>ENe7nVWd3Xlv;(7ZoS^s*Qp*lAt`bw z*{1^GTk?8jodKs?N~x@n{5cc$vLA4Cj15->W-pTEm&CW@zDpUQG@NeP1G@Ngi4(KB z8rNBn-<53>e?wuq*2-h92x+peg zhyr;j>)hJ9CC)kDCH#{ zpSc$%&ChRYWeo7y-Kw^Z+K&Iu7k8~flK8SXOE_D(#7<9Lr@pyx&KD3B@_oce3*a5RwyFsI;IX)u+*ThQf`St-%*<#1(8x(`SUqU&2gOnkq$|vl zNIBxd`DcP95;epx9ULqUpawjAPKZ93EN+y(PXabuvwb$sSA5>obtiEid(yCDYmRp1 zDRq0Ay6E)AgW+c1&jG_8y8vz&pXTO(y{-^T-iv$2XPKQ5A+WclMWyn*PsW?jP2*LS z+W}H7L{EOntLJ18r-tmTG*dJA?jug7hRVHQ(oBnnu@Ec2a&yQR>32C_W>h#nG6nBc zsZtpT#&elWzpaRwv3SgOr!dZ2q$e^pE-b0s+$SMZQ+V1_yML#zP?;?4Q%OnHva`{Y zxs%siIjhX-lP|%2Cbd)BQc4gv>d>-sfUKoBR>toLGs_#{W^++h7ZiT)#mb7u9F^$c z>Kc}Zn&Q?JjSDobE+1T0Pt&*ADC8VOx@cDCopWXzndXI^dkls1RmhTe4dJs|6>Dc3)vZJ~6z?t}4 zMiJ{Ms8UrzcGl!Tv05jz$TX+CtS{es@p1hG28t@D?arV7v6k#fCE?NN`>qn%=egI^ z5&iJpH+Py^efsf-KLCe=)p7@SE2XOCR9{Kt$>^q5^6*CceS;4D4z_XAFe5|9DX+>2 zCz!|Z$psVoID8-bqOk|_9~x&ZfPKKfd{lSadS)L$7BRM24*X$Xu$3BphKa^vGO^szP{xI54CsUm z>-2|ZfXys?Xc>OG{0GIx&-erb|B3%4`S1_Jf(wo%ES&WU)WUfM3d=@z*8r0rko4P@ zRDgr?nrT{$>F|u{@(keVFiuLhFrjg_*f9%$O#!wC7&>KszXI*{0Ar$p|MNCUtOQm7 zpM;djy|X(x;BXk0b#_wFe{f|#n)_>Xp%8K-fuuy3FjRB!{d$mWO$mH8I2(9dGv!z@V32ei zjoBNA?}35FWY-!9JO3464$(zp2^?F{b0DUfN!i18-78QlZ0ZU`5A;oayRqI5vS>a4 zHM8Unf;$-lQffrNWbHWB>Zbc!fRmoopmvxPRIBsao;@wxVW(*lbpHSP&Eh!5F7pk97X?lb)=-K zg!4G(L;B5}$~UA9yB}M*^X((N?7~1Tn5dGR-8@}u0XTV2eM117s9sNIZQ}k*yAb-G!7ye z2k;TG%1&g+nb~lj@EP%PLK0WzIJq(_h0n`KEzkSzH|npoODpMpLe^`|_<#3Kr0zvF zl^=jx6i)x~qEEL*0+I5Uxw5CMm}vCK*03LhP@*A}ip7eoB1vCbmFD`Zj5n-@6n^Zr zO_fa%+nk+9$Cj6;^;CuV4x$j&$74UVDzoa3^?ExTX=xc8R)Z5c`-I01hr_&UC(Xu} za~jk8#G08yo>bM2i}0j^H3-}VHQZcL;watmN-_}RN}li|WQ5}kw|BH1_5G^2jc&zq z_Woq&nIRbOWW`N8)ft!93So<8xCe-C<v)I(US%04KPZc_`JLcg=^Uw>!;h8)Zy zb1&PZVrC>?u@$5$R+PCa>^_Mda~{%F`0TzMUxEL=DgkU1AT0*)10dR$z;d%jUX^0CWspua>Xok9Y;7h>eX((#1FP_H+n5Em39G;9<2Jldv)8sPKK>R_S6|ej{u9W?MIwb%REw>>UtlbnOs}p$Ox5 z@J))(`eC+_GH{t2{LxWN)60)rkwQ_tPx20^2RD8`=wWJC#!XE!S+bUJVUfM%I3Km5 zY7EPCCc9^-7mTl#G-8!G3^ZTS@MXM|ubN0=WqzY=@p{bcj6~1f0%b)W!q+!XIP(`Et%&%BEwJ0ARel>9!^A6!B0>Qr(?7 zZIPp#njb=17+i{z_%m zh)A=}_RSBxbYHhE>zM2?YRl)8fwt*Q@ZI(Ctk9Z21viO_58aK_R-BSjbdwDSTh>P} zHaB^ZZ%`p#-r22YK7-JxybIeaD@`vUcp%O|<7gTart`~Ult3AC(XcSOz?w`wq@FWV zICvSUQWWidq(0!AzcFMnCPJj4w=WREzk|_r$+vH&ZvyLPgXNtnjGG52nr*iBh4Wn! z5oa&o+{Wh=X%|Ti?l`(Eb_VAUY&y5ARSE?jCSa9#- z6*{5lX+)a**Xf4dR7*RIREt-Q$30}4?$C7P>pE5ehg^Rmw)a30uiJ*}>6?f&gC+6K znbg74=48Y5&#U7d1_k+)_g#C_a>{!G_@J(vFEWu+t8Py_U!N?fBfgq@`gLZ0J3mHQ z4&3;xB^2i*Sbfp$g$T5#DxWXY91205<%g!>ubQURemB0 zft3#}myUV2YuArqDSnuCqv+Q#p;fc<+chf2&0{yY<=!(JJiVL`6I2~^`OGf$)W6sQ zCbEUuaew}4@wJ-fdS6+pxes{n0mj;ENix#w>0U;n2=+5aZ0?MMXBRYpFYf$TZd$Rq z&&)$I;fE35ioPxH;5&MJrsKX{Qc{As zU(!sGnb9e&Vm{@5>C~ALn3U{!xEc5$cn}4~fwB#kpHSvBu!ylKHl>K@ShCW##mN=D z6W6+vQ2pzT@BBhX+$8dNO;dg1o?gy9_g}i4P)oF~uNx#l;+;$ znO7nGu4FR%_=#>y{ZijZr=&D2?;Q3Ls!{6K+577wHbC471O)W?Pi?)lc_XQQodxh@(W!K0LFrNrx zBi8kDat#!&KzNZ2{Pqjk+L}qt`AXc!#kIO_zXC6p;~JKex#vWRCf3)Ujy39{cF8sw zZx27;f1D(G>aw|Swqfc~TIaX>)g0VTxPSJw{=V%C&f7Y>FG*_qo@T2@aBH@mELXtR z`%@v)<%by6V3sD|gu?sNvJlU>sU$UyvXrUOnVD>pnn1CA%6AE-9RtvS5(pi2xLke8 z=z}pes{$}sg@@AoJFR|0)}0bR|6;@>U0No~h`Rpy6-XEi#iU+=1lhxjZ(gX_adnj; zHg9#^Kl6gvV^uRdWmxw^-tixAOZ0U=-Pp;%pA`AQ=%*noC|R3=Lm0*yDIeh&P}EwP zG;0}I6v-_zZp-c8jInN*p1)|iz`p4)Di2Orq-$KLPfLoOGaXVwoLB~&yUR%LpOk-s z)`WgGS9F8nzwwZU@wVlJvyEuH{L-s>hOqke^8umI?6rsOR-X+C(oGJ##10^Hfy(H9 zo3-)4fjMs1#Ky76%)IjPb*Wn}s51c(uH)(QohrMUnvBsy1MHAVM1;-ZwQyxFDUkf>2RExf?DTZ(1itFGTImM;4TW~Ly( z%uM+=%*+Z|@(rY6WcKX*#(CGr+?fboBV?;CjBxsLI-oyju`NdIJ{#z!xG>IPM*O~P zTl2LMj2%jVbQ8&bc~Xjk)dyDaXMY(xPDNC_5|cX+V!P9MH}Gk#kL<*w*#nt2oGrlr zD0{?uPv(O=6FH=rxhe%(Tv%<+=$IZ;}=0z+A*df}_u>K5F^k5%^oa9c1s!w|lP9}UtRrl)g2&QC>K)>pt@@{yny^!9US2y9 zL;d);>1lKS-gBc@RYbSdUW`bQ=RpqD8O*m}e4qI57CNgh-3z-X)1d5o+pS|Tt7=1R zV}>JxIGx(pJ?=;s9BTX1l4KpR4axWBd{SL)zw*8v27%F0q}rwAD&tKZEX_)Yb`Cmo zC2_lXB`VLS|M8w*5i&?XlPKa$x3Z_;&ApdfFU{6a2fZ-SLnXDNb?b*}P{EG%@ zyF!Ny>LhK#_3Utk5+Y5Q&JEr_?#(t7T0T&)# zaKDLDJEnXL-{_GO71BFdeweqa&-iGj_?G)7fjF~9aE39P;8#Oj)-81F)ATvz2fmz< z9`_~OfNZS+wv~dIw-Xjz8!an-`Z}!AP>p9UKL8W;Mr}{#)u%`C3VVhh^VJYab5;-- z4)Pa4M47ntU7PbQvm?rceWBw0ai<9cOdDS-s%o9kOu`MqU+hl}5#@^9prxDgIxQmshPw#zkXeL!<~?-l9S z<7+{}_J0jB!2ip1iT|uJ{S(G{e*u|lRRnDBL1d&cRyM5me9!F3UJdtF=^e8u^!&oI z&NTq@&A!-jj%x~E$OVdZz@V6HZ{ZTBRCagt?@ygjZzpWfWajBQybZv=JZ==b0?9$O zFOFLNNKRNR=z-iuB>(c z^Bi>T1yCz>6D2#2BIY{wlY(%&xy!_5HClGbTy~S^w_OfxgUkT0ps6K`M2^UEXmY*O zNfN^MM)~^^ln<^3{QCFyzT0?I1|JEP&)rW|ud07OrS@`w0-Vc5z={`JVS@Wk=T;+lzm0^z>@u=M*rcrF=)Fj!!XuC6 zpn8p!=RBa17dzUsb)YkKdF>BW-#|N!&?RU&5$EeMl@W4-hJF5mdh>b>kCVsmt4llE zzHjM9jhy)3p>`%zC6rSJwaJnl)3`g4$`t0VNvMRnYbptE7Q?J9L?;P{Za;};SPV)s zR5Jp#(K|nr>$1lcP(e2pp<~eeQ|--URgL2!Ya*eHip8%W_DGLe(TYrID{D5b(XVQh zf`Ly8h)qC}aB}Z*(>b7~>VOX`MCl=|qauIN7JTn7s8(|ev{i@y>{^XVZy+N9| zPcMR`@a52@h0|z!m62+KwR`(7>O4?lV)Z923_)LliL~q$O8aB`>Ga8zV?QaIDF<#8 zd?F4}n(`1J_s(paN>W~zqRjKw>oa-Ha|I$bM?NXPmq69Pm17pW%>5-rSsTFAJ#+vq zjABK?+e^WH`S!_1DFHhnj<$O{^&&hbEaT4OO;}aGV!JRE7bcuzA&f8oPaDt?hwF4Bu;!FnBHHh(> zGA~8rt2^vnT@cET`MM+uuvIt;t5{_|R&3)=%aJ%2Km?JpQCX5D^DaiQBNCT3x7ppn zefBS3j`sFKt?LJARX<2^80sB7l(bch!lA$kq24B0)Q}}X+v!a)KisH6vX@l?Y$Gpw zna;bd%^L&4PO=aC-n}#bE`RWA_yK;l(msLm$LwH9jV0gnAHzvwee(A{bgza!Y+$sU zZW$FypSRrGIkU(8u$SMNs_8rS%@a{?kzMGJauSli$tMi8v#p?iJGUZCHoN<+oys_3 z=3!*NOALX8Q&%+J#yn4Wo1tK1jgW;IWZzuL1;QfTA&KdH$kyc!>f|Ec=O)W03Q_n* zD@)VNVd-tumPyXM*PL27gfb^@HPHdVhg(UY2jB6n zeD;|Xfui+o^gwm9?2l&VF@G_auXlFqnl4BZ)(;P9up@6=#I36LO5e@m*mX3Eg}2vF zMlR04i8sy%s|%;+7FwaX1kR5|haBUmAi0t91GC1os~PC)xCHGjR7XstkrMX8rG}&3 z`Xjl(_u6+9%yrB|)0ipv_?p7V(zf9$Ij;}dH9_1vIO(|<=e>+lC!p7nJDU=m%Kla} zf5yysu5s6oNAYDL8#S2%fd+jc2}|Nk-IrYBAWK;)Ugpu`OKttV!Q$L>R$X&JXn@}C zlN!5^*(R=W^yNH`J*0KcT3aAhW{_budT4Q5y}g|}g(JRT<0-V%hoL&R>f~X~N2pk= z;4SuA)f_7>W*=>ipJIe%G(nm!`!Z9S6UUJpnqvCn$0TSq^7hFjDym^+ly#0uA?5tx zJKF-gRYMaek5uz*ht zU3I9V;nGGK+hGsMbUTv-d1$ujW!fz5b#0+yN%b#f9g#g8nmJ_@U%7AMzgOIkGWKW9 zZ>}yKutk|GT25Vet~r4eTs6(g#|EbeH*=dJ`=opil zM57E|czev|fXi*;Zieq4dgW>lhf>0>)5}HNp9NHra6S<+2rNav6)~>n2%g{ErV>k0 zN}Jr9HL;+SNc>S%6L50a!?++8_|r^WpA*vS2s$wZ4Na5^2ppAab!$(sk2&q|Er$^) z-&~5_TDHAss~>AZn-KF&Fp=%qYe6pDpCmslmQH#mMJyv~7OGXEb0>I(8J=4b+atYB zL^Gcy>&Z>0oG}u3&!L`K8}~fVp}j>53LsYkT>p^r z{h4B`IIDngW01|HzrsBGm;H>E&+|RDjG0ots+IR$Zc9bg34y=&PA6h*Y^9=>gmDb8 z)b@x;3&xtg$>Jik@2PSy)DNcdB<{YQeV#|0ZSpp0Z`@fNOM_4$tlgP8K8Ap9w;e{` zksL_aGATl&?6*r?Avmz2oUe0xuLrSw9VcPH>3XeBwm&q2@HNi!&2Rmq-cd`+`!6c9 z&7moA4n}Uq>%LD+Z34;nIqDXB_+H){ zvq@Hm+KDCYQ`=7(WYALI%S{NDix7*sNdv->x$muQx^FwwE z`x{?+_jQoHcYNy?^c&q#j|NSzrz0ZU5|2KG>yG-rVU@ohnG-tcof8?G!ZpMbqjN{) z5$M-e;2nsB3=p``@Q!+Hav{XkvWjk?5pifv(O3t71v%3RW4{M0+4|Id)FY8h zO7t8336Br%=$!GLUx+B^i;4`5aL7I5&#EJFCK{J*IR$KY5kK*w-%9BBp{6}7$v4lF z3Q;^@dT6Qo2G~7G2*Oq&&!$0fpH8BxZc#KYOntfT8Hw6xNtye$46=9Euwi`XxgI0- z%*w>>5hpK;>M*0r!Kb@`{F&arK8eTl(NMOE7jucdr@9hn{| znN|Toe?0~SqO;t4ZQrt&25$>!-n;;B!EG=2_fKGRQkNfwGAmF04o_vwbnr!}+oW0e z@LK~ZWtb3liT!mTH4$@Wuc5p?7F72LG(U_XY`#0eQ9mlB zUDE!!&&|bip3$kI$DTbsL+y5@f}M_yr*kovjuwdEU>MISB9IzlAtb{FPIogND{WK+ z$}Z~-#QDpZB1`ZqE}eNBt?%Eox#noig4-RDwV-GNv_Y;zeOGQ_b4$t0^afpXX4%}j z;jSa!j=;--!e9kcRxX;a2t#>hJ#ukE4IO+dx5Wnfa!UJo{y3Aa+&su>{YzaQfrJsW z9w^(pU_oP%G%#@H4aB(K1pQq2+4A<+-f6JE2;Y3(xo60t4~En6$w-Kwn$jo1N4MT^ zU0i3obItWk?f!?GSh*^ z-z+A*f|V(jD|r+I6!E!xzq0m89NWfK!}i`()9aG0#LOagh0=cjSrvI#ASgxljU}ZN z>7w{*(|GlOtYzFJeWW6JTk z(4zCx#0x(siSMRQ#=d7o`b~c_xQglZR*&xR;iltmT_soTs43t8t&r3`%ykmFD zZQoX%!txLw6t73>t1OEu6qr4rkqk5itv6~cLg8c#bW0an7n!vGU9!M{?fGx{A`iXj9&%DA|TyS)~(uV=_6xX114W9PgJ# ztolFaH4P#}21GU};lGl`Bc59zijZQd%9p?^LLRG&O-XQ1) zo;>I?bz3@%#-)+L3B8XC?hyhL6sab<~V;a^}Li6IKLnNtFF(D2FdGHLaJkZ zE*|_+eW52i&xBqb1c7L!KoS|t!#6hmVwa7-VC?rNKjqI?Bly=F^*WhWY(yoFe%3U< z+8z1}7Yw}As3KNo1pnk+%jp%!R65}el7I2?v(x1jXfoQC`6Rp+ZV$c!!H=`2Ri(3b zn2=O}bit+li5`i4L&*QG7ZF^z0n5eME5A)@#i@p8@T$aV@{&6=M=8ZZ7b2v7mt|^k+K(Sy1f_p!hRu0 zKz$=)1h{z=qKtk#%AN)8xqoj2}@$7b{P*oc*Pwe#I6Q1XQhEXx>1#I~U487HE) zA#R64CDxE5)U&|3_m&WD9La6vN8gXRx`ZDbbf|M1LQLk7c{|&7WA(EKo9Z6>r0rc= zVw!WN=fWlB9#fS+NZPlbT!H!lcO3Xau>e*j_cEX9Y@Y;^c?F7RIK z2+^E9!1gBtTPqW*21qayWDgZUWLR4E26nR9(KU#ghNvCe$FWI|K-m7J(HitY%lx*9MRm>h$J<@^p`DJ7= zs9ODv>No%OlG{}gGL%m*Xb^;?`AHtNnigmj3b+it_tRAx9bn z3^MK8r^xiE8op7JYpRdq`>WqyYqfD|YWvJdYj!$BqCH(W77uG+LnU7Farh+c8#Gns z8qzK1}K&(Ll zYwg5x8_HITJolAF8yu0s$6H%RfqAjr!wI%LRas>_DI*?gImkmJ&M)X!i+u9O*F&Dh zk=i*-jj9DerL&|fjx)p(DQ(}oe7sX}@Mu}TkHCIK#qd51Atj$^8|X#+1wbAxwA{nRL#JiDj4c_?6|)!(>hv~IN)7Av^JhNddD z51N~mMmokiEMvFlgpa4EbFm zIB=x+w{(+Sa@eJkoYAOY$N?FuPri{p_+>uc`(9BZBs81n_#qh9&$ITXd=u5x^VtQ^ z${8*H@75nvB;6}x!4AD3JcC)4y(oL!hG>i7l?$fCk{>O|os};&)6OA7b>RbtR$74& z^6#0hBp?0rzte+3G%o&+(QuK(`D~IXe`$_P=(5kLTH(xx#ls+bFT|F>hnqZ^jW=0^ zaimY9Fr;~qNr~p%B|hRYwWjw&Fh93~*1KY)M0M_-&q}g=ZCV| z=GR_GnDtX6MCKyrO)H;KBY)tFi+6(ji@-eC`m>8essVK$@ceFJKjCks!z^51r7ycGV-DWyilROtMe;r-2d#^9*|4X@u}_}Ma}%nOydrNh|vgo zD27`$=?e79Tb(@rzE+N&V=rbj@f2&DpO^o|^w1_#8SAmCu_SHpfAet0>Fj=r(dBCa zz#qvY-Pi5kj|%=5@V&vyX08paQ2b(MkiR_Tuj9lCL__IZm2XnQy)dq!xE8DAM0@1p zj-DPY`2a{e2P3&3nN+h#V<#boVf7^muP!GGuieRmrsg!8KPjle4oMre>Y@5)`)I3BH@Prf;@>Hx~p# zV{buI3=kh}>88EkXgU%7KnGrE*G^S45Z?u#wT6|}f3JAF>D>2AwS~*FQSlB)CM`@j zSbQk^W-1c^AYng!qQ4x{ib<*`&v>1M3+!j!FVCECwEYScn z%Rp1$bpPv+5P}I`!alkJtv`?o1#*ct%by|GM4_?g7vV?c>^r_AKjLEA0PUVXu@?K& zF7{^*fBt2E07nl>01i21kJ#IhwO?@eUBtl`R{x-zmt28z-uzHJe<@p0(o)BHiG}ZHBZtmarT^V0*0QKB8E5Mh z;DIQqVROkgiLuKv+>MjMmegz1GW2_MT{UGr)_&o_8T8%*wSG3J9L<`3`3{0C;2lzT9tDJ{mI2Nc{ z)^-jh6c~)fa2$vV)vZV|pe@ ze|dCIzPC2YD8yfyGs0bxfIy%U?yxRa`KxiG5$dU7oFL@OV2z|-r)#sie&r!W|us2F{4Opo^m(7Rhq3ab#%x+TirkS?hP zuQGdM(nvJLGu}CcBI)G7?BlNEE?-upZP?|M)Utjw^a7g%W6~s^;QavZxNrxALf-xEi^tu>|dVt|MsW<9#ArBw`DoY8;t!{pO1|m+q4JB<`%^Vu@NniOe$v`+dSmf3EKGf z+j-vQYK@2GeEuqY9VxHso|#$+-VC#qJ2PZgooXI8i*r@QBgZ@(S*dKQZk(tFe{>Sz z<21b&X>lCXHSwp)w?R)&!CFx|6*Yk)pb6 z|AFs|5~!oreu8NtwDl8lWm_}Dm%Wf+sYi=^_g7#-kH6H6m8L8LXfH*&u6N%-RLE>L zoFS{flm7Vkm7_sA_|*HXSha;{_!a>$BFkb#w8QBbiw_@m!0`g34-e2Y;j z%^W1umtkWLk}TO+muTW+$kp5XO|Sy^7ju(a9ux+e0_u6LT#Qqp+4}4GWeq~oK|6aI zg~jP{?w-h!r9SqAyFuTz3AwHv1BTBV^#R)}`T5A%lH?S(953C1NAEsTDd8j31v4Z` z<>>xy2z~=3@8O)3G)1k4_pmLJ^~Q!AtvIFtm$MDaT(NH#>@SHbmAIb`(BbI=6mIV5 z^M>9XDG9rKP3{?u%{67e6wu$ZEQidEv|)zkq>lO>e@pel_TrGf_!d4;;uBr>hPOTTBn zBY*uG7jAm<6(}xr(dpvaM&`M!c4;<-*0;P@Sr986z_dzURiYWqyRQ=MK}6E!ix&>D zBAjQ`=Dct{Zl~pKp1AkAudf^5y?6da;D%MhFun;>gs|H2dgCKUr#q+i&Xq5!KFQ2qFq>{Cj4l4i z=)~ru3+k+S!g^2s1;Lvj67~PQFM}J7js-?DyWK4(H-OJHLISpGi6k*N`+$;tBdc=8 zko)}Q|M?342LJmn+vebQV*(Zj;1>Jcub334L|`OaCv*h?mQN5hnLRHq_&efiY297f!ei+At!?CzV4@CQx8-;hbSWH5<^&a?n>p} z!Ax6K4dXF{yln*7A~*RG)0;yI6uG^bzMV`ZjZLeY>etjYLT9WQmmv(#o#qv2jf=OJ zyuafs<)X>D4Z^=o>a0&aMXPJm_V~yoG6k0l^Jv^OQf`P$Fx5^1L)Z`6ao^9ac(l&T zgLW|h>4eDJ4iz2o+44GH`me2|Q#!4D$mg2r(HoUf_emY&WckVH#BR_gq_=|r_JM3@ zU(t-W+e!3Z6(jZ3ZZ(`DxN%fDHP_5s(Svrhl<)mv>=XM<_No@vFV97{35~CTyc-sQ zS}_YdX2G1?CS;CI5#+~+_)Y?}b~naI2iCaGuQ6DEE4A<>`?j=g5XiT@GyRbOY7e@B zWS{){vk#`zR|-i^g&d?CC^>t|yKSu#msvA#X~PEz%05Q)sBFdPqoNVZ@@yA*7| zNfwl<-?aPMmIv=}Y6^P9!KDpHSmx|_ioukLlQPuw@mAmQX!jR@E@$r~A{K zUV99v@!y(WnADFrjnZCUVSfb>G4!iA2i&nBF`{>>_|+I!4NA*5E>MIRU0(VX=$0A8 z3+D84thyKeVj-lT>sG94kNr1TUm|iEDJNclkqoC@32#Ma`P0bUzj%r^x)3z58@mEk zzV!=EtsD@&0y%YL+D&H=Y<2g_(FZJ=3+}f2rfOzw(7|6#btoLRH#0WwmCl#Gw7Q^E zUYAL{Yhfe0{irsU@~tgBvFHwg9K9(=s*~Lk388m#hwSai8H47%fykx=Q3*w}∈= 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⋙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 z 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%0DAUAv#|C3${ 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�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
NhUN43T|!4@e?cQQJ`b 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

~d`ZJId5)bBb$oo-Q0=Gth}pq|_A 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ⅈ^(Hlahp~X*|MY@NGuABMKa%Q} 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

y;uAsN;hux1>NJ!$v^|gsZmFV#aFuDzjUW2E{ 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�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Π;6n7ke?}cURT?ZFDhRK{-VCm! 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

%0 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

SNld;-|fhJ*YGbOT3491@!dvG?j}=bW?B> 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

^YAu>+Lcta8c71!{=(I>&hr6tX2AP=1N|Zmua} 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%0A3cbPT^78V;^{czW$p^dtC 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

QFS_34`a=LMlgv(Q?huow#ACocPz9F25AB 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 z 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

6l25A4@a5S1^ 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%0AueV>Kw5LjB{K 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%0A?1&L&a5_N=)j)vLTDuwuUGGf_gh^brS9OxD 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≤aB?jp_ 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 z z-!0dVW~`CWwxRlB$dR*8+xw$pC#$+E1dCmx&a5s38wBL78l(DdxZ19 zbO&-rR$5LLmkO>q9|+88SF@2Eu0-eWm3~y!?6wm1X(v#}!v=PK|e6Q{aYH`5hLACQjw;4^R%`v0|Oe zA z#H^}13SLixh8th1j2AY;hOh23`@JjvwciHc-6tx)|0VWnYtA6K(%&mA>o=A*hGXz| zGT3(Ntx|k%dzSr-p(R?d?Dy{njaViT=E)EHe{@*ExK2CWgRQZF=4ROzq&!&VWrnjTg ztlA6{me97uKI&1|Zl{b`LGtB|&W@BPUqz{jfFD&DH|3$uMiL$O}M zJwJ*Q&Nr=IFQ0e)FhAb8Yv*{@&G<;aGm(G!a=v2nr#?~j)4|wdqjE1{=^_hPwu4h6 zZ~i(TrN4B_ft8ixzQR8KR99I8svYMD_OO zHiwfvXl9NMUd;?fj_)yhLTdNZ?%P=QpRhI_cM~<6@X_5WR9L9MW`;XltLLSkHqy z8>=yI__E2h<;K?XN_Ik}8qHPBkNf%jRI5{(xEC!StW;^6_>+&RY0%C-*i|O|^{_Yj z0s}|)O<$u-o;wA#3QcSw^kE1a@p4l2gQmYlx)%|g2N3E7YBeVh8{7o50!19`%n?)h zZNq2>KVG?;g+T_37pd%V0cF~>HgT@C|HWoh(o`aUGh|#M)a2}qO@ux-?;v~>ZlkNQ zo?Eg_V{XoFp3%}%^s28weS%QF!ftdX*1e93d`0;&nI+o_8Yur<>!QTmW2i!6^X(H% zmRHPmgmgk5$OKjOFmKZSG1QIt(yl?AygnMGV!gKAD90y3?Ygk zq`c*k9Hn80q{8BW9zF1u4#Q>dBScJoMA z%Tp?R6QP05z*=g^PccGHJ8t`Dvot=?d{@68kz64;Zmn23rm4I{1M?gTYxbXLkZwJJ zyJ4@P|BnDy=3&I|o;#Slkt3kJoz=A-Z&CBqwY|QQhM;#o_5f!?`I4qO>ndoPi!g^dWDrp#Hi&Bna4X5&ckZjCmE zF@}WlO+*m(F9Ta9(y!vLHY6VuS!(q2+wk+v&E*o3TQHx{_Xbyt4k4$+z59#SO z2j+gej8f^Y+|=eq-E*6vJ(F9H)R#lyE4=ZbD0?eBO@uU~;@WmDt0xS2@5DN+#4X|r z30nlhnLT{eWSw*02-Q_3_Q|1Nv=t^&ir$u%uCdSND+M}?E$eDVPV!8ou=R#{%y5@s z@QVX{d~GfD!jr+!)?$XH!=uAGwz}NJnK1|wMj;V5Kdh8%9#JjA4yHl%ms&0Ip0DL@idZfl9|Gl8N#SlpZ# zQ--9&D#1bgqUz5|*CVpFMs5sGD|IiEpfRwVzwBoUV4BO#Nr^p0SKFFNDDYD#jFzr2b7RzR*6DYK}avui(&!FfT$A-wW5qwUO?1ICS?H8 zVr;r0VjzqRvrv=>@J)73F{(%9A+b;>YFp(Ysjw9As`8LPsu-mQbSge!5a$FofJT!@ zRihAq^Pn5)M9NT2xOl*CpbAJTkyINl9U!ejF0+?HDjekj#8(-VMx_;x0k{EeRm5ab zDMHoZq5&2_Qcy%fKY6G!Trj{3=%P}lLapKe)Y7_90P+-b(F~yikz{Y90fMr(ioh?D zAw`uB>LFy65B;cX(2GKpJ?KRususjWKBTGQ1032Zei4b90licLU_md@fIR8jazLJx zqfpeRiVxk8q>2yqP#)+-DC!yHp%~>3@{o*b1$oFuae`iw0rpb29e`Tt+X_If)NKQR zQTnzJz$kUw1(=b(tpdzQ-8KQ^DGJsRYF&K~qYBPvBFK*L_vMF9AA6ioR5RR%WUZoyNRna3Ef&nt5 z@3R1PKy7MKvc+v$QI9HmNINb%P76;!fdN zjLqgwIRn!d0^N(2LkioJH-%ZbQZGU1h=WqaXd}|lbFgG^V018LfZ+5LIwFfAuF>U9 z5mqEPGl(ESFeb_r6;F8PBw41ciyL)2f(zyxe&L!}V}wOmlC1EQnl-64d8Y89keVV} zjuq}>WzoD^Ay6zi(mK*Qf)Z7p91cYtT^&`PxPly4kuA=OZVtO}P7Fh=NTen)KT(WK zq((V^PwbFH6S|D6vu!A^Ky!pQl*67`NC~WCyA_y7}B}h8PZ;1y5o;b!^xZnrB&F7Ii9h zD0RlDcnUxU7hZrUJA@fcC20N!HCK#5zluslw zO*6Yw{=h%yF1Dkx#i{m|d4e*hsrF1Uw=?3Xt#!HRYWN zP`*XP5TSi$oIn;nmyda?d8MD^DD{)iZWM$>=C?*{lON z6ky?>>6M_iS3bVgi}cLblf z6$+x+k#xkKXy9I8;vQNQW|dt@6yim2pzA9V)D+D(i>;v86?RnqN)bfS7k9;rtRe3R zvVxpDT)bnUX-3nRarrqnBz7(u2Qw>9GJ-H0Dt0asmyr)2F^$X(k>5-L8^mmg?(_gz zO{pWkrK!@3AvPfzM>*@c=!-L_Qb-|2FBTn%IX4Sm{@yMIFA^s)>w|lNZ_OQV#W1%f zW{Emg;MW*wF*j+U@@!E^X}u=J7F-rsmTSc`$EM>#Fl9?K2he#i!|g~TR1;;3Ea6Qg z1mr7ML{>ylqNs=Mf8^g5aNUMD7I4*fkA&?n2M&kq-w73!OGD3Agqw^D4@7*3iHnJfGQap7i@_*GL%lJ6sQzowywmMqa27SC=K$k zL+IQQ`w=FQCS}1nJgcMF@&Iu&iUuWF*5(*;Q>etqQ7NzLd< z%#(=UE<~}vornSj5I!J25H_dgZ*aP8VQ{!@ZE)Fx+=kT#+lJQ$-?or_+ym*udn5U<2GKL+)AFuy zqML6I^E;>q)pRSMp2M{2+_)2|4YLhq6-p2B1N^h5-vf_qq@y+l|G0t0?f#K^&3_*sG^*A+&Vtpyn8QX> z0}lf+bkkv{;pq_RHaghq%xq+ZR?t=&+QdH#LhbGLK=fUf@S0lD)k6z~I+(DSFqn4w z*hcUpjC!3+ZAzTfZ4Tceq4fU}FLS)z8C*bV!Jo8PI(CQ0Fh{VMwmC#xmPcKE+JBa_ z`?UktbS zF9lZgkN1UCrv^HPnnIcy6RB#UVs|%_GF3Q;8U0&E4crSo3}m6ppx8*_AFGg;GqPo| z=-2CNE1kGrzkXW=nbzdn)XK(2DmYOAw+hic$J)dM1Rdq~QzNaL?$t~8-Q6bW;}tyE z_YOkr(Ol}kLVoj)Yj@Faqu25buJ4birQ7JK$!u2Ewk$K>_DtSc!N$9_5y)h0{LS#~ z{nYI|^VocJ4b_k+dfo0=8rj! zp+2FVTUM%2qGz`DZC13*_~%hq?xEZv;WSQbpc?wRKp(-C(<3UwS3_d1V^4i`2Mtwe z;npCf8kGD&Dby>)-xwOlXH5kpT!x}zc>RG?u65db?E0ru(JLQSO?ChZhhpZMW$GE3xG<#GKzA>OT8ncMb zPp64xg8Nc@N@xLVPY1t+Uck5Xdx!DsI=9dNYiW3JhY@?ZTyHcp#kCK*@3l|I2(b=V z3%UwQ18gGjKES+B#pvfO1RV?}_%Q^0z-u3OAD)n)Ue|L zD)~^5^14sjC18@Tv0|)~s1F&4!T*zGLT<~0&CvZh@MF>SO@4%73kpRg+$$;>{ z@Bn@x-a0%FlvQXxunVaF)l|SX0^bAe`ZRV0b`5q3cYp6P>?-Uc?Yiy8_hIgG>}u>{ z?po|p?n>;!7_mC=I}kX~J0RBmY{Pwlbik-XZ9{8=SOwEV(t~M&NQX!V!-6~yjMiGH zYsNp$JNR(U_K&-tas1+*794p!=KB6W7w<#COu!@&b|b*?nFGjR90tMSu=`LUx&9v( z|M$L@c?TEH*}id&GmcN((*h%F$6W9D|D*Wbd2r+ZqW=CrIQnv!EfC90`IU!CpqY1* zUOLj)xJufBDR{mHZ$fFWO>XlclaU8bIA#!({vz=U|;wb*;K5)?`Utc~#s}BTQ9qT~avjV96{=+-$(qv-|=_&tc zLc$}KkMxs8^?ncH#fUcuwJp1}vyl$u0p^L_8d{&3Ykwi85;@I-e{7OTXBSh;iLl?~=QGxVU z#c9oxZd`M>Jnhc(m67|t{$@3B%&Z;$?YA59^pmeG?M7JMK}RL&_Vm@twq8PWJ<7%y zVPBR{!llJ!=BJBmX~Q+bhUf^L_p0cH@kPSOs)1N0)h!u)eE*ZjYKLN@@~iX{V7w3` zHP?8CRHVDlz>Kk8b8UgTyKpN{^pyPx<{jNTT(`i$(s0)gfU?t~Jwp13D2AAdvj)Zy z7Hh6bXsqGWGtwC7v%(PzNute6+Q*);QRjXl?qQ zkecPUkb$ntLs3!fKcdeQrOAK~QNHg1NFstd-{&Y_A-}(YoX8JnW0wYIgJqlcIrxBadh~H za_KoojbH<5x8Z+?({<|dW7wNyLuI˙T$SBBXd%&l~nzD4{)sCj6nEJMYEyeb#N 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 diff --git a/errorCode.php b/errorCode.php index 36a55ca..e77b912 100644 --- a/errorCode.php +++ b/errorCode.php @@ -25,77 +25,77 @@ */ $statCode = array( - '1' => 'Enseigne invalide', - '2' => 'NumĆ©ro d\'enseigne vide ou inexistant', - '3' => 'NumĆ©ro de compte enseigne invalide', - '5' => 'NumĆ©ro de dossier enseigne invalide', - '7' => 'NumĆ©ro de client enseigne invalide', - '9' => 'Nom de ville non reconnu ou non unique', - '10' => 'Type de collecte invalide ou incorrect (1/D > Domicile -- 3/R > Relais)', - '11' => 'NumĆ©ro de Point Relais de collecte invalide', - '12' => 'Pays du Point Relais de collecte invalide', - '13' => 'Type de livraison invalide ou incorrect (1/D > Domicile -- 3/R > Relais)', - '14' => 'NumĆ©ro du Point Relais de livraison invalide', - '15' => 'Pays du Point Relais de livraison invalide', - '16' => 'Code pays invalide', - '17' => 'Adresse invalide', - '18' => 'Ville invalide', - '19' => 'Code postal invalide', - '20' => 'Poids du colis invalide', - '21' => 'Taille (Longueur + Hauteur) du colis invalide', - '22' => 'Taille du Colis invalide', - '24' => 'NumĆ©ro de Colis Mondial Relay invalide', - '29' => 'Mode de livraison invalide', - '30' => 'Adresse (L1) de l\'expĆ©diteur invalide', - '31' => 'Adresse (L2) de l\'expĆ©diteur invalide', - '33' => 'Adresse (L3) de l\'expĆ©diteur invalide', - '34' => 'Adresse (L4) de l\'expĆ©diteur invalide', - '35' => 'Ville de l\'expĆ©diteur invalide', - '36' => 'Code postal de l\'expĆ©diteur invalide', - '37' => 'Pays de l\'expĆ©diteur invalide', - '38' => 'NumĆ©ro de tĆ©lĆ©phone de l\'expĆ©diteur invalide', - '39' => 'Adresse e-mail de l\'expĆ©diteur invalide', - '40' => 'Action impossible sans ville ni code postal', - '41' => 'Mode de livraison invalide', - '42' => 'Montant CRT invalide', - '43' => 'Devise CRT invalide', - '44' => 'Valeur du colis invalide', - '45' => 'Devise de la valeur du colis invalide', - '46' => 'Plage de numĆ©ro d\'expĆ©dition Ć©puisĆ©e', - '47' => 'Nombre de colis invalide', - '48' => 'Multi-colis en Point Relais Interdit', - '49' => 'Mode de collecte ou de livraison invalide', - '50' => 'Adresse (L1) du destinataire invalide', - '51' => 'Adresse (L2) du destinataire invalide', - '53' => 'Adresse (L3) du destinataire invalide', - '54' => 'Adresse (L4) du destinataire invalide', - '55' => 'Ville du destinataire invalide', - '56' => 'Code postal du destinataire invalide', - '57' => 'Pays du destinataire invalide', - '58' => 'NumĆ©ro de tĆ©lĆ©phone du destinataire invalide', - '59' => 'Adresse e-mail du destinataire invalide', - '60' => 'Champ texte libre invalide', - '61' => 'Top avisage invalide', - '62' => 'Instruction de livraison invalide', - '63' => 'Assurance invalide ou incorrecte', - '64' => 'Temps de montage invalide', - '65' => 'Top rendez-vous invalide', - '66' => 'Top reprise invalide', - '70' => 'NumĆ©ro de Point Relais invalide', - '72' => 'Langue expĆ©diteur invalide', - '73' => 'Langue destinataire invalide', - '74' => 'Langue invalide', - '80' => 'Code tracing : Colis enregistrĆ©', - '81' => 'Code tracing : Colis en traitement chez Mondial Relay', - '82' => 'Code tracing : Colis livrĆ©', - '83' => 'Code tracing : Anomalie', - '90' => 'AS400 indisponible', - '91' => 'NumĆ©ro d\'expĆ©dition invalide', - '94' => 'Colis Inexistant', - '95' => 'Compte Enseigne non activĆ©', - '96' => 'Type d\'enseigne incorrect en Base', - '97' => 'ClĆ© de sĆ©curitĆ© invalide', - '98' => 'Service Indisponible', - '99' => 'Erreur gĆ©nĆ©rique du service. Cette erreur peut ĆŖtre dĆ» autant Ć  un problĆØme technique du service qu\'Ć  des donnĆ©es incorrectes ou inexistantes dans la Base de DonnĆ©es. Lorsque vous avez cette erreur veuillez la notifier Ć  Mondial Relay en prĆ©cisant la date et l\'heure de la connexion ainsi que les informations envoyĆ©s au WebService afin d\'effectuer une vĆ©rification.'); + '1' => 'Enseigne invalide', + '2' => 'NumĆ©ro d\'enseigne vide ou inexistant', + '3' => 'NumĆ©ro de compte enseigne invalide', + '5' => 'NumĆ©ro de dossier enseigne invalide', + '7' => 'NumĆ©ro de client enseigne invalide', + '9' => 'Nom de ville non reconnu ou non unique', + '10' => 'Type de collecte invalide ou incorrect (1/D > Domicile -- 3/R > Relais)', + '11' => 'NumĆ©ro de Point Relais de collecte invalide', + '12' => 'Pays du Point Relais de collecte invalide', + '13' => 'Type de livraison invalide ou incorrect (1/D > Domicile -- 3/R > Relais)', + '14' => 'NumĆ©ro du Point Relais de livraison invalide', + '15' => 'Pays du Point Relais de livraison invalide', + '16' => 'Code pays invalide', + '17' => 'Adresse invalide', + '18' => 'Ville invalide', + '19' => 'Code postal invalide', + '20' => 'Poids du colis invalide', + '21' => 'Taille (Longueur + Hauteur) du colis invalide', + '22' => 'Taille du Colis invalide', + '24' => 'NumĆ©ro de Colis Mondial Relay invalide', + '29' => 'Mode de livraison invalide', + '30' => 'Adresse (L1) de l\'expĆ©diteur invalide', + '31' => 'Adresse (L2) de l\'expĆ©diteur invalide', + '33' => 'Adresse (L3) de l\'expĆ©diteur invalide', + '34' => 'Adresse (L4) de l\'expĆ©diteur invalide', + '35' => 'Ville de l\'expĆ©diteur invalide', + '36' => 'Code postal de l\'expĆ©diteur invalide', + '37' => 'Pays de l\'expĆ©diteur invalide', + '38' => 'NumĆ©ro de tĆ©lĆ©phone de l\'expĆ©diteur invalide', + '39' => 'Adresse e-mail de l\'expĆ©diteur invalide', + '40' => 'Action impossible sans ville ni code postal', + '41' => 'Mode de livraison invalide', + '42' => 'Montant CRT invalide', + '43' => 'Devise CRT invalide', + '44' => 'Valeur du colis invalide', + '45' => 'Devise de la valeur du colis invalide', + '46' => 'Plage de numĆ©ro d\'expĆ©dition Ć©puisĆ©e', + '47' => 'Nombre de colis invalide', + '48' => 'Multi-colis en Point Relais Interdit', + '49' => 'Mode de collecte ou de livraison invalide', + '50' => 'Adresse (L1) du destinataire invalide', + '51' => 'Adresse (L2) du destinataire invalide', + '53' => 'Adresse (L3) du destinataire invalide', + '54' => 'Adresse (L4) du destinataire invalide', + '55' => 'Ville du destinataire invalide', + '56' => 'Code postal du destinataire invalide', + '57' => 'Pays du destinataire invalide', + '58' => 'NumĆ©ro de tĆ©lĆ©phone du destinataire invalide', + '59' => 'Adresse e-mail du destinataire invalide', + '60' => 'Champ texte libre invalide', + '61' => 'Top avisage invalide', + '62' => 'Instruction de livraison invalide', + '63' => 'Assurance invalide ou incorrecte', + '64' => 'Temps de montage invalide', + '65' => 'Top rendez-vous invalide', + '66' => 'Top reprise invalide', + '70' => 'NumĆ©ro de Point Relais invalide', + '72' => 'Langue expĆ©diteur invalide', + '73' => 'Langue destinataire invalide', + '74' => 'Langue invalide', + '80' => 'Code tracing : Colis enregistrĆ©', + '81' => 'Code tracing : Colis en traitement chez Mondial Relay', + '82' => 'Code tracing : Colis livrĆ©', + '83' => 'Code tracing : Anomalie', + '90' => 'AS400 indisponible', + '91' => 'NumĆ©ro d\'expĆ©dition invalide', + '94' => 'Colis Inexistant', + '95' => 'Compte Enseigne non activĆ©', + '96' => 'Type d\'enseigne incorrect en Base', + '97' => 'ClĆ© de sĆ©curitĆ© invalide', + '98' => 'Service Indisponible', + '99' => 'Erreur gĆ©nĆ©rique du service. Cette erreur peut ĆŖtre dĆ» autant Ć  un problĆØme technique du service qu\'Ć  des donnĆ©es incorrectes ou inexistantes dans la Base de DonnĆ©es. Lorsque vous avez cette erreur veuillez la notifier Ć  Mondial Relay en prĆ©cisant la date et l\'heure de la connexion ainsi que les informations envoyĆ©s au WebService afin d\'effectuer une vĆ©rification.'); ?> diff --git a/fr.php b/fr.php index ba836d1..068ebe1 100644 --- a/fr.php +++ b/fr.php @@ -217,7 +217,9 @@ $_MODULE['<{mondialrelay}prestashop>settings_ca57625685f058f54d82c6e05876a131'] = 'Choississez le statut pour la gĆ©nĆ©ration d\'Ć©tiquette.'; $_MODULE['<{mondialrelay}prestashop>settings_c9cc8cce247e49bae79f15173ce97354'] = 'Sauvegarder'; $_MODULE['<{mondialrelay}prestashop>settings_f4f70727dc34561dfde1a3c529b6205c'] = 'ParamĆØtres'; +$_MODULE['<{mondialrelay}prestashop>checkout_process_50fa1af2938c04e8fb499c483c1fecb8'] = 'Le JavaScript n\'est pas activĆ© sur votre navigateur, nous vous invitons Ć  l’activer afin de sĆ©lectionner un Point RelaisĀ® lors de votre commande.'; $_MODULE['<{mondialrelay}prestashop>checkout_process_836f6c949a2f2d61489bf410def82111'] = 'Mondialrelay ne peut rĆ©cupĆ©rer les points relais du Ć  une erreur de Prestashop'; +$_MODULE['<{mondialrelay}prestashop>checkout_process_widget_50fa1af2938c04e8fb499c483c1fecb8'] = 'Le JavaScript n\'est pas activĆ© sur votre navigateur, nous vous invitons Ć  l’activer afin de sĆ©lectionner un Point RelaisĀ® lors de votre commande.'; $_MODULE['<{mondialrelay}prestashop>checkout_process_widget_ad3d06d03d94223fa652babc913de686'] = 'Valider votre Point RelaisĀ®'; $_MODULE['<{mondialrelay}prestashop>checkout_process_widget_b5cdf9b63fda35c33bb5e35cc3716b95'] = 'Point RelaisĀ® sĆ©lectionnĆ© :'; $_MODULE['<{mondialrelay}prestashop>header_e0626222614bdee31951d84c64e5e9ff'] = 'Choisir'; diff --git a/img/icones/index.php b/img/icones/index.php index 4deda52..9cf60e3 100644 --- a/img/icones/index.php +++ b/img/icones/index.php @@ -27,10 +27,10 @@ header("Expires: Mon, 26 Jul 1997 05:00:00 GMT"); header("Last-Modified: ".gmdate("D, d M Y H:i:s")." GMT"); - + header("Cache-Control: no-store, no-cache, must-revalidate"); header("Cache-Control: post-check=0, pre-check=0", false); header("Pragma: no-cache"); - + header("Location: ../"); exit; \ No newline at end of file diff --git a/img/index.php b/img/index.php index 0bfbc8e..fa0395b 100644 --- a/img/index.php +++ b/img/index.php @@ -27,10 +27,10 @@ header("Expires: Mon, 26 Jul 1997 05:00:00 GMT"); header("Last-Modified: ".gmdate("D, d M Y H:i:s")." GMT"); - + header("Cache-Control: no-store, no-cache, must-revalidate"); header("Cache-Control: post-check=0, pre-check=0", false); header("Pragma: no-cache"); - + header("Location: ../"); exit; \ No newline at end of file diff --git a/index.php b/index.php index 0bfbc8e..fa0395b 100644 --- a/index.php +++ b/index.php @@ -27,10 +27,10 @@ header("Expires: Mon, 26 Jul 1997 05:00:00 GMT"); header("Last-Modified: ".gmdate("D, d M Y H:i:s")." GMT"); - + header("Cache-Control: no-store, no-cache, must-revalidate"); header("Cache-Control: post-check=0, pre-check=0", false); header("Pragma: no-cache"); - + header("Location: ../"); exit; \ No newline at end of file diff --git a/js/common.js b/js/common.js new file mode 100644 index 0000000..26c1402 --- /dev/null +++ b/js/common.js @@ -0,0 +1,135 @@ +/** +* 2007-2014 Mondial relay +* +* NOTICE OF LICENSE +* +* This source file is subject to the Academic Free License (AFL 3.0) +* that is bundled with this package in the file LICENSE.txt. +* It is also available through the world-wide-web at this URL: +* http://opensource.org/licenses/afl-3.0.php +* If you did not receive a copy of the license and are unable to +* obtain it through the world-wide-web, please send an email +* to Mondial relay so we can send you a copy immediately. +* +* DISCLAIMER +* +* Do not edit or add to this file if you wish to upgrade Mondial relay to newer +* versions in the future. If you wish to customize Mondial relay for your +* needs please refer to Mondial relay for more information. +* +* @author Mondial relay +* @copyright 2007-2014 Mondial relay +* @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0) +* International Registered Trademark & Property of Mondial relay +*/ + +function checkMrSelection() { + + if (PS_MRData.PS_VERSION < '1.5') { + var selected_carrier_id = $('input[name=id_carrier]:checked').val(); + } else { + var selected_carrier_id = parseInt($('.delivery_option_radio:checked').val()); + } + + if (PS_MRSelectedRelayPoint['relayPointNum'] == -1) + return true; + + var MR_carrier_selected = (selected_carrier_id==PS_MRSelectedRelayPoint['carrier_id']); // is a mondial relay carrier ? + var MR_relay_selected = (PS_MRSelectedRelayPoint['relayPointNum']>0); // a relay has been selected ? + + if (!MR_carrier_selected) + return true; + + if (MR_relay_selected) { + return true; + } else { + if (!!$.prototype.fancybox && !(PS_MRData.PS_VERSION < '1.5')) + $.fancybox.open([ + { + type: 'inline', + autoScale: true, + minHeight: 30, + content: '

' + PS_MRTranslationList['errorSelection'] + '

' + }], + { + padding: 0 + }); + else + alert(PS_MRTranslationList['errorSelection']); + + return false; + } +} + +function isOnePageCheckout(){ + + if($('.payment_module a').length && typeof(PS_MRData) != 'undefined'){ + return true; + } + return false; +} + +function setProtectRelaySelected(){ + if(isOnePageCheckout()){ + $('.payment_module a').each(function(){ + if(typeof($(this).attr('onclick'))!='undefined'){ + $(this).data('onclick', $(this).attr('onclick')); + $(this).attr('onclick', ''); + } + }); + + //OPC Validation - Warn user to select a relay point + $('.payment_module').click(function(event) { + if(!checkMrSelection()){ + event.stopPropagation(); + return false; + } + else{ + var lien= $('a', $(this)); + if( lien.is("[onclick]") && lien.attr('onclick') == '' ){ + lien.attr('onclick', lien.data('onclick')); + lien.trigger('click'); + } + } + }); + + $('form').submit(function(event) { + + if(checkMrSelection()){ + $(this).off('submit').submit(); + + } + event.stopPropagation(); + return false; + }); + + } + + $('#form button[name="processCarrier"], #form input[name="processCarrier"]').click(function(event) { + if(!checkMrSelection()){ + event.stopPropagation(); + return false; + } + }); + +} + +(function($) { + + $(function(){ + $('#cgv').click(function(){ + if($(this).attr('checked')){ + $("body").bind("ajaxComplete", function(e, xhr, settings){ + setProtectRelaySelected(); + + }); + + } + }); + + + + + }); +})(jQuery); + diff --git a/js/index.php b/js/index.php index fc4110f..087b026 100644 --- a/js/index.php +++ b/js/index.php @@ -27,10 +27,10 @@ header("Expires: Mon, 26 Jul 1997 05:00:00 GMT"); header("Last-Modified: ".gmdate("D, d M Y H:i:s")." GMT"); - + header("Cache-Control: no-store, no-cache, must-revalidate"); header("Cache-Control: post-check=0, pre-check=0", false); header("Pragma: no-cache"); - + header("Location: ../"); exit; \ No newline at end of file diff --git a/js/mondialrelay.js b/js/mondialrelay.js index 504d0b7..bb8a0f3 100644 --- a/js/mondialrelay.js +++ b/js/mondialrelay.js @@ -537,7 +537,6 @@ var PS_MRObject = (function($, undefined) { function PS_MRAddSelectedCarrierInDB(id_carrier) { PS_MRHideLastRelayPointList(); - // Make the request $.ajax({ type: 'POST', @@ -567,8 +566,10 @@ var PS_MRObject = (function($, undefined) { // Reset for any carrier changement if (MRLivraisonType != 'LD1' && MRLivraisonType != 'LDS' && MRLivraisonType != 'HOM') { + if(PS_MRSelectedRelayPoint['relayPointNum'] == -1) + PS_MRSelectedRelayPoint['relayPointNum'] = 0; // Seek Relay point if it doesn't a home delivery mode - PS_MRGetRelayPoint(carrierSelected); + PS_MRGetRelayPoint(carrierSelected, MRLivraisonType); } else { @@ -594,7 +595,6 @@ var PS_MRObject = (function($, undefined) { function PS_MRCheckSelectedRelayPoint() { var input; - // Check if the input is linked to the module and look into // a temporary variable if a relay point has been selected if ((input = $('input[name=id_carrier]:checked')).length && @@ -663,7 +663,10 @@ var PS_MRObject = (function($, undefined) { for (relayPoint in json.success) { // Check if the the content wasn't already displayed - contentBlockid = 'relayPoint_' + json.success[relayPoint].Num + '_' + carrier_id; + + if (json.success[relayPoint].Num != '') { + contentBlockid = 'relayPoint_' + json.success[relayPoint].Num + '_' + carrier_id; + } if (!$('#' + contentBlockid).size()) { // Set translation if a preselection exist @@ -726,7 +729,7 @@ var PS_MRObject = (function($, undefined) { * * @param carrierSelected */ - function PS_MRFetchRelayPoint(carrierSelected) + function PS_MRFetchRelayPoint(carrierSelected, MRLivraisonType) { carrier_id = carrierSelected.val().replace(',', ''); // Block is an input, we need the 'tr' element @@ -748,6 +751,7 @@ var PS_MRObject = (function($, undefined) { 'id_carrier' : carrier_id, 'ajax' : true, 'step' : 2, + 'mode_liv' : MRLivraisonType, 'mrtoken' : mrtoken}, dataType: 'json', success: function(json) @@ -770,10 +774,9 @@ var PS_MRObject = (function($, undefined) { * * @param carrierSelected */ - function PS_MRGetRelayPoint(carrierSelected) + function PS_MRGetRelayPoint(carrierSelected, MRLivraisonType) { carrier_id = carrierSelected.val().replace(',',''); - // Init back the inital view, hide existing element, (keep cached) element = 0; totalElement = $('.PS_MRSelectedCarrier').size(); @@ -792,12 +795,12 @@ var PS_MRObject = (function($, undefined) { return ; } // If the element isn't cached, we fetch it - PS_MRFetchRelayPoint(carrierSelected); + PS_MRFetchRelayPoint(carrierSelected, MRLivraisonType); } ++element; }); else - PS_MRFetchRelayPoint(carrierSelected); + PS_MRFetchRelayPoint(carrierSelected, MRLivraisonType); } /** @@ -1155,6 +1158,7 @@ var PS_MRObject = (function($, undefined) { var carrier_selected = $('input.delivery_option_radio:checked').val(); var parent_element = $(e).parents('.delivery_option'); var new_element = 'MR_PR_list_'+MR_idcarrier; + if($('#'+new_element).length > 0) { $('#'+new_element).remove(); if( isMRCarrier(MR_idcarrier)!=false && typeof(MR_carrier) != "undefined" && (MR_carrier.dlv_mode!='LD1' && MR_carrier.dlv_mode!='LDS' && MR_carrier.dlv_mode!='HOM')) { @@ -1176,7 +1180,6 @@ var PS_MRObject = (function($, undefined) { // Hide MR input if one of them is not selected if($(e).val() == carrier_selected) { - console.log(carrier_selected); if(MR_carrier != false) { PS_MRCarrierMethodList[MR_idcarrier] = MR_carrier.id_mr_method; PS_MRSelectedRelayPoint['carrier_id'] = MR_idcarrier; @@ -1197,6 +1200,7 @@ var PS_MRObject = (function($, undefined) { } }); } + } } @@ -1281,20 +1285,7 @@ var PS_MRObject = (function($, undefined) { $('#MR_config_menu').children('ul').css('margin-left', width + 'px'); } - // 1.5 OPC Validation - Warn user to select a relay point - $('.payment_module a').live('click', function() { - if (typeof PS_MRData != 'undefined') - { - if (PS_MRData.PS_VERSION >= '1.5' && PS_MRData.carrier) - { - var _return = !(!PS_MRSelectedRelayPoint['carrier_id'] || !PS_MRSelectedRelayPoint['relayPointNum']); - if (!_return) - alert(PS_MRTranslationList['errorSelection']); - return _return; - } - } - }); - +/* // If MR carrier selected, check MR relay point is selected too $('input[name=processCarrier], button[name=processCarrier]').click(function(){ var _return = !(PS_MRSelectedRelayPoint['carrier_id'] && !PS_MRSelectedRelayPoint['relayPointNum']); @@ -1303,15 +1294,14 @@ var PS_MRObject = (function($, undefined) { return _return; }); - - if (typeof PS_MRData != 'undefined') +*/ + // En OPC, si l'utilisateur est déconnecter, PS_MRData n'existe pas au début + $('input[name="id_carrier"]').live('click', function(){ + if (typeof PS_MRData != 'undefined' && PS_MRData.PS_VERSION < '1.5') { - if (PS_MRData.PS_VERSION < '1.5') { - $('input[name="id_carrier"]').click(function(){ - checkToDisplayRelayList(); - }); - } + checkToDisplayRelayList(); } + }); // Handle input click of the other input to hide the previous relay point list displayed }); @@ -1320,6 +1310,7 @@ var PS_MRObject = (function($, undefined) { return { initFront : function() { checkToDisplayRelayList(); + setProtectRelaySelected(); }, uninstall : function(url) { @@ -1358,4 +1349,6 @@ function mr_checkConnexion() { } } }); -} \ No newline at end of file +} + + diff --git a/js/mondialrelay_widget.js b/js/mondialrelay_widget.js index 332427f..755d763 100644 --- a/js/mondialrelay_widget.js +++ b/js/mondialrelay_widget.js @@ -1,258 +1,235 @@ /* -* 2007-2015 PrestaShop -* -* NOTICE OF LICENSE -* -* This source file is subject to the Academic Free License (AFL 3.0) -* that is bundled with this package in the file LICENSE.txt. -* It is also available through the world-wide-web at this URL: -* http://opensource.org/licenses/afl-3.0.php -* If you did not receive a copy of the license and are unable to -* obtain it through the world-wide-web, please send an email -* to license@prestashop.com so we can send you a copy immediately. -* -* DISCLAIMER -* -* Do not edit or add to this file if you wish to upgrade PrestaShop to newer -* versions in the future. If you wish to customize PrestaShop for your -* needs please refer to http://www.prestashop.com for more information. -* -* @author PrestaShop SA -* @copyright 2007-2015 PrestaShop SA -* @version Release: $Revision: 16986 $ -* @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0) -* International Registered Trademark & Property of PrestaShop SA -*/ - function getNumeric(val) { - var reg=new RegExp("[0-9]+","g"); - var res = reg.exec(val); - if(isNaN(res)) - return 0; - else - return res; - } - - function checkToDisplayRelayList() - { - if (typeof PS_MRData != 'undefined') - { - //============================================================ - // auto display fancybox if radio already check - //============================================================ - PS_MRSelectedRelayPoint['relayPointNum'] = PS_MRData.pre_selected_relay; - // PS_VERSION < '1.5' - if (PS_MRData.PS_VERSION < '1.5') - { - // Bind id_carrierX to an ajax call - $.each(PS_MRData.carrier_list, function(i, carrier) { - PS_MRCarrierMethodList[carrier.id_carrier] = carrier.id_mr_method; - if ($('#id_carrier' + carrier.id_carrier).attr('checked')) { - PS_MRSelectedRelayPoint['carrier_id'] = carrier.id_carrier; - PS_MRDisplayWidget(carrier.id_carrier); - } - }); - - } - else if (PS_MRData.PS_VERSION >= '1.5' - && typeof PS_MRData.carrier != 'undefined' - ) - { // 1.5 way - var carrier_selected = $('input[class=delivery_option_radio]:checked').val(); - $.each(PS_MRData.carrier_list, function(i, carrier) { - PS_MRCarrierMethodList[carrier.id_carrier] = carrier.id_mr_method; - if (carrier.id_carrier+',' == carrier_selected || carrier.id_carrier == carrier_selected) { - overrideUpdateExtraCarrier(carrier_selected, id_address); - PS_MRSelectedRelayPoint['carrier_id'] = carrier.id_carrier; - PS_MRDisplayWidget(carrier.id_carrier); - } - }); - } - //============================================================ - // Handle input click of the other input to hide the previous relay point list displayed - $('input[name=id_carrier], input.delivery_option_radio').click(function(e){ - displayPickupPlace(0); - }); - } - //return false; - } - - function isMRCarrier(id_carrier){ - var carrier_list = PS_MRData.carrier_list; - for(i in carrier_list){ - var MR_carrier = carrier_list[i]; - if(MR_carrier.id_carrier == id_carrier) { - return MR_carrier; - } - } - return false; - } - - function hideRelaySelectedBox(_this){ - // Hide MR input if one of them is not selected - if (PS_MRCarrierMethodList[_this.val()] == undefined){ - // 1.5 way - var id = getNumeric(_this.val()); - if(PS_MRCarrierMethodList[id] == undefined) { - displayPickupPlace(0); - PS_MRSelectedRelayPoint['carrier_id'] = 0; - PS_MRDisplayWidget(0); - PS_MRSelectedRelayPoint['relayPointNum'] = 0; - } - else { - PS_MRSelectedRelayPoint['carrier_id'] = id; - PS_MRDisplayWidget(id); - } - } - else { - PS_MRSelectedRelayPoint['carrier_id'] = _this.val(); - PS_MRDisplayWidget(_this.val()); - } - return false; - } - - function PS_MRDisplayWidget(carrier_id) { - var dlv_mode = ''; - $.each(PS_MRData.carrier_list, function(i, carrier) { - if (carrier.id_carrier == carrier_id) - dlv_mode = carrier.dlv_mode; - PS_MRSelectedRelayPoint['relayPointNum'] = -1; - PS_MRAddSelectedCarrierInDB(carrier_id); - } - ); - if(carrier_id) { - if(dlv_mode!='LD1' && dlv_mode!='LDS' && dlv_mode!='HOM') { - loadMR_Map("#Zone_Widget", dlv_mode); - $("#link_zone_widget").click(); - if(PS_MRSelectedRelayPoint['relayPointNum'] == -1) - PS_MRSelectedRelayPoint['relayPointNum'] = 0; - } - else - displayPickupPlace(0); - } - return false; - } - - - function overrideUpdateExtraCarrier(id_delivery_option, id_address) - { - if(PS_MRData.PS_VERSION < '1.5') - return false; - - var url = ""; - var method = 'updateExtraCarrier'; - var params = ''; - if(typeof(orderOpcUrl) !== 'undefined') { - method = 'updateCarrierAndGetPayments'; - params += '&recyclable='+(($('#recyclable:checked').val() != undefined)? 1:0); - params += '&gift='+(($('#gift:checked').val() != undefined)? 1:0); - params += '&gift_message='+$('#gift_message').val(); - params += '&delivery_option['+id_address+']='+id_delivery_option; - url = orderOpcUrl; - } - else - url = orderUrl; - - $.ajax({ - type: 'POST', - headers: { "cache-control": "no-cache" }, - url: url + '?rand=' + new Date().getTime(), - async: false, - cache: false, - dataType : "json", - data: 'ajax=true' - +'&method='+method - +params - +'&id_address='+id_address - +'&id_delivery_option='+id_delivery_option - +'&token='+static_token - +'&allow_refresh=1', - success: function(jsonData) - { - //$('#HOOK_EXTRACARRIER_'+id_address).html(jsonData['content']); - return false; - } - }); - return false; - } - - function displayPickupPlace(info) { - var id = "relay_point_selected_box"; - - if(!info) { - $('#'+id).hide(); - $('#'+id).remove(); - return false; - } - - if (PS_MRData.PS_VERSION < '1.5') - { - var block_carrier = $('#carrierTable'); - } - else { - var block_carrier = $('.delivery_options_address'); - } - if($('#'+id).length !== 0) { - $('#'+id).html('

'+relay_point_selected_box_label+'

'+info); - $('#'+id).show(); - } - else { - $('

'+relay_point_selected_box_label+'

'+info+'
').insertAfter(block_carrier); - } - return false; - } - - function PS_MRAddSelectedCarrierInDB(id_carrier) - { - // Make the request - $.ajax({ - type: 'POST', - url: _PS_MR_MODULE_DIR_ + 'ajax.php', - data: {'method' : 'addSelectedCarrierToDB', - 'id_carrier' : id_carrier, - 'id_mr_method' : PS_MRCarrierMethodList[id_carrier], - 'mrtoken' : mrtoken}, - success: function(json) - { - return false; - } - }); - return false; - } - - $(document).ready(function() - { - // 1.5 OPC Validation - Warn user to select a relay point - $('.payment_module a').live('click', function() { - if (typeof PS_MRData != 'undefined') - { - if (PS_MRData.PS_VERSION >= '1.5' && PS_MRData.carrier && PS_MRSelectedRelayPoint['carrier_id']!=0) - { - var _return = !(!PS_MRSelectedRelayPoint['carrier_id'] || !PS_MRSelectedRelayPoint['relayPointNum']); - if (!_return) - alert(PS_MRTranslationList['errorSelection']); - return _return; - } - } - }); - - // If MR carrier selected, check MR relay point is selected too - $('input[name=processCarrier], button[name=processCarrier]').click(function(){ - var carrier_selected = $('input[class=delivery_option_radio]:checked').val(); - if (PS_MRSelectedRelayPoint['carrier_id']+',' == carrier_selected || PS_MRSelectedRelayPoint['carrier_id'] == carrier_selected) - { - var _return = !(PS_MRSelectedRelayPoint['carrier_id'] && !PS_MRSelectedRelayPoint['relayPointNum']); - if (!_return) - alert(PS_MRTranslationList['errorSelection']); - return _return; - } - }); - - if (typeof PS_MRData != 'undefined') - { - if (PS_MRData.PS_VERSION < '1.5') { - $('input[name="id_carrier"]').click(function(){ - checkToDisplayRelayList(); - }); - } - } - }); + * 2007-2015 PrestaShop + * + * NOTICE OF LICENSE + * + * This source file is subject to the Academic Free License (AFL 3.0) + * that is bundled with this package in the file LICENSE.txt. + * It is also available through the world-wide-web at this URL: + * http://opensource.org/licenses/afl-3.0.php + * If you did not receive a copy of the license and are unable to + * obtain it through the world-wide-web, please send an email + * to license@prestashop.com so we can send you a copy immediately. + * + * DISCLAIMER + * + * Do not edit or add to this file if you wish to upgrade PrestaShop to newer + * versions in the future. If you wish to customize PrestaShop for your + * needs please refer to http://www.prestashop.com for more information. + * + * @author PrestaShop SA + * @copyright 2007-2015 PrestaShop SA + * @version Release: $Revision: 16986 $ + * @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0) + * International Registered Trademark & Property of PrestaShop SA + */ +function getNumeric(val) { + var reg = new RegExp("[0-9]+", "g"); + var res = reg.exec(val); + if (isNaN(res)) + return 0; + else + return res; +} + +function checkToDisplayRelayList() +{ + if (typeof PS_MRData != 'undefined') + { + //============================================================ + // auto display fancybox if radio already check + //============================================================ + PS_MRSelectedRelayPoint['relayPointNum'] = PS_MRData.pre_selected_relay; + // PS_VERSION < '1.5' + if (PS_MRData.PS_VERSION < '1.5') + { + // Bind id_carrierX to an ajax call + $.each(PS_MRData.carrier_list, function (i, carrier) { + PS_MRCarrierMethodList[carrier.id_carrier] = carrier.id_mr_method; + if ($('#id_carrier' + carrier.id_carrier).attr('checked')) { + PS_MRSelectedRelayPoint['carrier_id'] = carrier.id_carrier; + PS_MRDisplayWidget(carrier.id_carrier); + setProtectRelaySelected(); + } + }); + + } + else if (PS_MRData.PS_VERSION >= '1.5' + && typeof PS_MRData.carrier != 'undefined' + ) + { // 1.5 way + var carrier_selected = $('input[class=delivery_option_radio]:checked').val(); + $.each(PS_MRData.carrier_list, function (i, carrier) { + PS_MRCarrierMethodList[carrier.id_carrier] = carrier.id_mr_method; + if (carrier.id_carrier + ',' == carrier_selected || carrier.id_carrier == carrier_selected) { + overrideUpdateExtraCarrier(carrier_selected, id_address); + PS_MRSelectedRelayPoint['carrier_id'] = carrier.id_carrier; + PS_MRDisplayWidget(carrier.id_carrier); + } + }); + } + //============================================================ + // Handle input click of the other input to hide the previous relay point list displayed + $('input[name=id_carrier], input.delivery_option_radio').click(function (e) { + displayPickupPlace(0); + }); + } + //return false; +} + +function isMRCarrier(id_carrier) { + var carrier_list = PS_MRData.carrier_list; + for (i in carrier_list) { + var MR_carrier = carrier_list[i]; + if (MR_carrier.id_carrier == id_carrier) { + return MR_carrier; + } + } + return false; +} + +function hideRelaySelectedBox(_this) { + // Hide MR input if one of them is not selected + if (PS_MRCarrierMethodList[_this.val()] == undefined) { + // 1.5 way + var id = getNumeric(_this.val()); + if (PS_MRCarrierMethodList[id] == undefined) { + displayPickupPlace(0); + PS_MRSelectedRelayPoint['carrier_id'] = 0; + PS_MRDisplayWidget(0); + PS_MRSelectedRelayPoint['relayPointNum'] = 0; + } + else { + PS_MRSelectedRelayPoint['carrier_id'] = id; + PS_MRDisplayWidget(id); + } + } + else { + PS_MRSelectedRelayPoint['carrier_id'] = _this.val(); + PS_MRDisplayWidget(_this.val()); + } + return false; +} + +function PS_MRDisplayWidget(carrier_id) { + var dlv_mode = ''; + $.each(PS_MRData.carrier_list, function (i, carrier) { + if (carrier.id_carrier == carrier_id) + dlv_mode = carrier.dlv_mode; + PS_MRSelectedRelayPoint['relayPointNum'] = -1; + PS_MRAddSelectedCarrierInDB(carrier_id); + } + ); + if (carrier_id) { + if (dlv_mode != 'LD1' && dlv_mode != 'LDS' && dlv_mode != 'HOM') { + loadMR_Map("#Zone_Widget", dlv_mode); + $("#link_zone_widget").click(); + if (PS_MRSelectedRelayPoint['relayPointNum'] == -1) + PS_MRSelectedRelayPoint['relayPointNum'] = 0; + } + else + displayPickupPlace(0); + } + return false; +} + + +function overrideUpdateExtraCarrier(id_delivery_option, id_address) +{ + if (PS_MRData.PS_VERSION < '1.5') + return false; + + var url = ""; + var method = 'updateExtraCarrier'; + var params = ''; + if (typeof (orderOpcUrl) !== 'undefined') { + method = 'updateCarrierAndGetPayments'; + params += '&recyclable=' + (($('#recyclable:checked').val() != undefined) ? 1 : 0); + params += '&gift=' + (($('#gift:checked').val() != undefined) ? 1 : 0); + params += '&gift_message=' + $('#gift_message').val(); + params += '&delivery_option[' + id_address + ']=' + id_delivery_option; + url = orderOpcUrl; + } + else + url = orderUrl; + + $.ajax({ + type: 'POST', + headers: {"cache-control": "no-cache"}, + url: url + '?rand=' + new Date().getTime(), + async: false, + cache: false, + dataType: "json", + data: 'ajax=true' + + '&method=' + method + + params + + '&id_address=' + id_address + + '&id_delivery_option=' + id_delivery_option + + '&token=' + static_token + + '&allow_refresh=1', + success: function (jsonData) + { + //$('#HOOK_EXTRACARRIER_'+id_address).html(jsonData['content']); + setProtectRelaySelected(); + return false; + } + }); + return false; +} + +function displayPickupPlace(info) { + var id = "relay_point_selected_box"; + + if (!info) { + $('#' + id).hide(); + $('#' + id).remove(); + return false; + } + + if (PS_MRData.PS_VERSION < '1.5') + { + var block_carrier = $('#carrierTable'); + } + else { + var block_carrier = $('.delivery_options_address'); + } + if ($('#' + id).length !== 0) { + $('#' + id).html('

' + relay_point_selected_box_label + '

' + info); + $('#' + id).show(); + } + else { + $('

' + relay_point_selected_box_label + '

' + info + '
').insertAfter(block_carrier); + } + return false; +} + +function PS_MRAddSelectedCarrierInDB(id_carrier) +{ + // Make the request + $.ajax({ + type: 'POST', + url: _PS_MR_MODULE_DIR_ + 'ajax.php', + data: {'method': 'addSelectedCarrierToDB', + 'id_carrier': id_carrier, + 'id_mr_method': PS_MRCarrierMethodList[id_carrier], + 'mrtoken': mrtoken}, + success: function (json) + { + return false; + } + }); + return false; +} + +$(document).ready(function () +{ + + if (typeof PS_MRData != 'undefined') + { + if (PS_MRData.PS_VERSION < '1.5') { + $('input[name="id_carrier"]').click(function () { + checkToDisplayRelayList(); + }); + } + } +}); diff --git a/logo.gif b/logo.gif index e1e406a3f28a54901e007127880c923b0239b608..06f847112cfcc82141bafe2d7370007594d1eeba 100644 GIT binary patch literal 1035 zcmZ?wbhEHb6krfwc;3RWiNSX>gWqNb|4j@*n;8POFa&R92-?CBx)sC-*$QHWZDR=C z1|q|^gHXga#)$2V;oBJ_wlPI)XNuU$9KM|;avN*J4%VoxY>_)SqPKBJ@8F5u$rHPa zFJUKt{7(LaodOBFKqzsiP~tA(#GN8ZyF`O&4S$DA9EIX512Z94AJeB7($q<`n(u$EJyJ*UEYPDb{g zitIZR*?%;q^IXitvvHHo#ZNw()_XF2%7xTv7qezv$eDF1XU>KE*%u1uTq>M*qGH4<@M%Or@IzjZ(Dt*chmVv%WwB>x;J6Vo$1>j z&fR-{)uv|~PrcZ7?!~TiuMS*(e)!Uxqu1UZz47+U?GI<~y}Nk-%cGay-+cJ_?(^@@ z-~ayp^Y8E9|D%BJA)xqA(77lzu_QG`p**uBL&4qCH-JHh0SG`Dgn{EW1N+O&#jGcJ zh52MEIvi6@Nm@1D)5(}{;b5zQwU$-Jh6nB(?7~id0*36|Ol(T(0X{1)aY$nf3>?GP8*|MC2|=SnR>( zvuR4lp+)Rdgx!~15ojuEV&<{Xc@og*bhuI6$l^xC%?F$^`ju-M3=5W?pJbcGwZr$o z(N+l)$9+5xnwN7(ODI~KJaAm(Dy|T^Oe50p$Z_`VnIZveemEo_Vl!d6DtXz(y^B{= RDMi9i`J|X-0}~U2H2_yJqE7$- literal 678 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 Or-aD}qiciWbN>SPyu``? literal 3262 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 '', - 'MR_CODE_MARQUE' => '', - 'MR_KEY_WEBSERVICE' => '', - 'MR_LANGUAGE' => '', - 'MR_WEIGHT_COEFFICIENT' => '', - 'MR_ORDER_STATE' => 3, - 'id_shop' => 1 - ); - - public $upgrade_detail = array(); - - public function __construct() - { - $this->name = 'mondialrelay'; - $this->tab = 'shipping_logistics'; - $this->version = '2.1.6'; - $this->installed_version = ''; - $this->module_key = '366584e511d311cfaa899fc2d9ec1bd0'; - $this->author = 'PrestaShop'; - - parent::__construct(); - - $this->displayName = $this->l('Mondial Relay'); - $this->description = $this->l('Deliver in Relay points'); - - /** Backward compatibility */ - require(_PS_MODULE_DIR_.'/mondialrelay/backward_compatibility/backward.php'); - - self::initModuleAccess(); - - /* Call everytime to prevent the change of the module by a recent one */ - $this->_updateProcess(); - $this->initAccount(); - - /* Check if it's a mondialrelay ajax query */ - $this->checkAJAX(); - } - - public function install() - { - if (!function_exists('curl_version') || !extension_loaded('soap')) - { - $this->_errors[] = $this->l('Mondial Relay needs SOAP & cURL to be installed on your server.'); - return false; - } - - if (!parent::install()) - return false; - - if (!$this->registerHookByVersion()) - return false; - - if ((!file_exists(MondialRelay::$modulePath.MondialRelay::INSTALL_SQL_FILE)) || - (!$sql = Tools::file_get_contents(MondialRelay::$modulePath.MondialRelay::INSTALL_SQL_FILE))) - return false; - - $sql = str_replace('PREFIX_', _DB_PREFIX_, $sql); - $sql = preg_split("/;\s*[\r\n]+/", $sql); - foreach ($sql as $query) - if (!empty($query)) - Db::getInstance()->execute(trim($query)); - - $result = Db::getInstance()->getRow(' - SELECT id_tab - FROM `'._DB_PREFIX_.'tab` - WHERE class_name="AdminMondialRelay"'); - - if (!$result) - { - $tab = new Tab(); - $languages = Language::getLanguages(false); - foreach ($languages as $language) - $tab->name[$language['id_lang']] = 'Mondial Relay'; - $tab->class_name = 'AdminMondialRelay'; - $tab->module = 'mondialrelay'; - $tab->id_parent = Tab::getIdFromClassName('AdminOrders'); - - if (!$tab->add()) - return false; - - if (is_dir(_PS_MODULE_DIR_.'mondialrelay/')) - @copy(_PS_MODULE_DIR_.'mondialrelay/img/AdminMondialRelay.gif', _PS_IMG_DIR_.'/AdminMondialRelay.gif'); - } - - /* If module isn't installed, set default value */ - if (!Configuration::get('MONDIAL_RELAY')) - { - Configuration::updateValue('MONDIAL_RELAY', $this->version); - Configuration::updateValue('MONDIAL_RELAY_SECURE_KEY', md5( _COOKIE_KEY_.time())); - Configuration::updateValue('MONDIAL_RELAY_MODE', 'widget'); - } - else - { - $query = 'UPDATE `'._DB_PREFIX_.'carrier` c, `'._DB_PREFIX_.'mr_method` m - SET c.`deleted` = 0 - WHERE c.`id_carrier` = m.`id_carrier` - AND m.`is_deleted` = 0'; - - /* Reactive transport if database wasn't remove at the last uninstall */ - Db::getInstance()->execute($query); - } - return true; - } - - /* - ** Return the token depend of the type - */ - public static function getToken($type = 'front') - { - return ($type == 'front') ? MondialRelay::$MRFrontToken : (($type == 'back') ? - MondialRelay::$MRBackToken : null); - } - - /* - ** Register hook depending of the Prestashop version used - */ - private function registerHookByVersion() - { - if (version_compare(_PS_VERSION_, '1.3', '>=') && (!$this->registerHook('extraCarrier') || !$this->registerHook('updateCarrier') || !$this->registerHook('newOrder') || !$this->registerHook('BackOfficeHeader') || !$this->registerHook('header'))) - return false; - if (version_compare(_PS_VERSION_, '1.4', '>=') && (!$this->registerHook('processCarrier') || !$this->registerHook('orderDetailDisplayed'))) - return false; - if (version_compare(_PS_VERSION_, '1.6', '>=') && (!$this->registerHook('displayBackOfficeHeader'))) - return false; - return true; - } - - public function uninstallCommonData() - { - /* Tab uninstall */ - if (($id_tab = Tab::getIdFromClassName('AdminMondialRelay'))) - { - $tab = new Tab($id_tab); - $tab->delete(); - } - - if (!Db::getInstance()->execute(' - UPDATE '._DB_PREFIX_.'carrier c, '._DB_PREFIX_.'mr_method m - SET c.`deleted` = 1 - WHERE c.`id_carrier` = m.`id_carrier`')) - return false; - - return true; - } - - public function uninstall() - { - if (!parent::uninstall()) - return false; - - /* Uninstall data that doesn't need to be keep */ - if (!$this->uninstallCommonData()) - return false; - - if (Tools::getValue('keepDatabase')) - return true; - - Configuration::deleteByName('MR_ACCOUNT_DETAIL'); - - /* Drop databases */ - if (!Db::getInstance()->execute(' - DROP TABLE - '._DB_PREFIX_.'mr_history, - '._DB_PREFIX_.'mr_method, - '._DB_PREFIX_.'mr_selected, - '._DB_PREFIX_.'mr_method_shop')) - { - /* If drop failed, try to turn off the carriers */ - Db::getInstance()->execute(' - UPDATE '._DB_PREFIX_.'carrier c, '._DB_PREFIX_.'mr_method m - SET c.`deleted` = 1 - WHERE c.`id_carrier` = m.`id_carrier`'); - return false; - } - return true; - } - - /** - * Launch upgrade process for 1.3 and 1.4 - */ - public function runUpgrade() - { - /* List of upgraded version existing */ - $files_version = array('1.8.0', '1.8.3', '2.0.6'); - - $upgrade_path = dirname(__FILE__).'/upgrade/'; - - if (version_compare(_PS_VERSION_, '1.5', '<')) - { - foreach ($files_version as $version) - { - $file = $upgrade_path.'install-'.$version.'.php'; - if ($this->installed_version < $version && file_exists($file)) - { - include_once($file); - call_user_func('upgrade_module_'.str_replace('.', '_', $version), $this); - } - } - } - } - - /* - ** UpdateProcess if merchant update the module without a - ** normal installation - */ - private function _updateProcess() - { - if (Module::isInstalled('mondialrelay') && - (($this->installed_version = Configuration::get('MONDIAL_RELAY')) || - $this->installed_version = Configuration::get('MONDIAL_RELAY_1_4')) - && $this->installed_version < $this->version) - $this->runUpgrade(); - } - - /* - ** Get the content to ask for a backup of the database - */ - private function askForBackup($href) - { - return 'return PS_MRObject.uninstall(\''.$href.'\');'; - } - - /* - ** OnClick for input fields under the module list fields action - */ - public function onclickOption($type, $href = false) - { - $content = ''; - - switch ($type) - { - case 'desactive': - break; - case 'reset': - break; - case 'delete': - break; - case 'uninstall': - $content = $this->askForBackup($href); - break; - default: - } - return $content; - } - - /** - * Init the account_shop variable with the account detail for this shop - */ - public function initAccount() - { - /* Get default value */ - $id_order_state = $this->account_shop['MR_ORDER_STATE']; - - if (($account_shop_stored = MondialRelay::getAccountDetail())) - $this->account_shop = $account_shop_stored; - - /* Normally, this can't happen... */ - if (empty($this->account_shop['MR_ORDER_STATE'])) - $this->account_shop['MR_ORDER_STATE'] = $id_order_state; - } - - /* - ** Init the access directory module for URL and file system - ** Allow a compatibility for Presta < 1.4 - */ - public static function initModuleAccess() - { - MondialRelay::$modulePath = _PS_MODULE_DIR_.'mondialrelay/'; - MondialRelay::$MRFrontToken = sha1('mr'._COOKIE_KEY_.'Front'); - MondialRelay::$MRBackToken = sha1('mr'._COOKIE_KEY_.'Back'); - MondialRelay::$moduleURL = __PS_BASE_URI__.'modules/mondialrelay/'; - } - - public function fetchTemplate($path, $name) - { - if (version_compare(_PS_VERSION_, '1.4', '<')) - $this->context->smarty->currentTemplate = $name; - - return $this->context->smarty->fetch(dirname(__FILE__).$path.$name.'.tpl'); - } - - public function hookNewOrder($params) - { - if (!MondialRelay::isMondialRelayCarrier($params['cart']->id_carrier)) - return; - - $order = $params['order']; - $currency = $params['currency']; - $id_lang = (int)$order->id_lang; - $customer = new Customer($order->id_customer); - $carrier = new Carrier($order->id_carrier); - $invoice = new Address((int)($order->id_address_invoice)); - $invoice_state = $invoice->id_state ? new State($invoice->id_state) : false; - if (version_compare(_PS_VERSION_, '1.5', '<')) - $order_date_text = Tools::displayDate($order->date_add, (int)($id_lang)); - else - $order_date_text = Tools::displayDate($order->date_add, null); - - DB::getInstance()->execute(' - UPDATE `'._DB_PREFIX_.'mr_selected` - SET `id_order` = '.(int)$order->id.' - WHERE `id_cart` = '.(int)$params['cart']->id); - - /*============================================ - // GET MR INFOS - //============================================*/ - $sql = 'SELECT * FROM `'._DB_PREFIX_.'mr_selected` WHERE `id_cart` = '.(int)$params['cart']->id.' AND `id_order` = '.(int)$order->id.''; - $mr_point = DB::getInstance()->getRow($sql); - - if (!$mr_point['MR_Selected_Num']) return false; - - /*============================================ - // SEND MAIL - //============================================*/ - $template = 'mr_new_order'; - $subject = $this->l('New order', false, (int)$id_lang).' - '.sprintf('%06d', $order->id); - - $mr_address = ''; - if ($mr_point['MR_Selected_LgAdr2']) - $mr_address .= $mr_point['MR_Selected_LgAdr2'].''; - if ($mr_point['MR_Selected_LgAdr3']) - $mr_address .= $mr_point['MR_Selected_LgAdr3'].''; - if ($mr_point['MR_Selected_LgAdr4']) - $mr_address .= $mr_point['MR_Selected_LgAdr4'].''; - - $templateVars = array( - '{firstname}' => $customer->firstname, - '{lastname}' => $customer->lastname, - '{email}' => $customer->email, - '{delivery_company}' => $mr_point['MR_Selected_LgAdr1'], - '{delivery_address1}' => $mr_address, - '{delivery_city}' => $mr_point['MR_Selected_Ville'], - '{delivery_postal_code}' => $mr_point['MR_Selected_CP'], - '{delivery_country}' => $mr_point['MR_Selected_Pays'], - '{invoice_company}' => $invoice->company, - '{invoice_firstname}' => $invoice->firstname, - '{invoice_lastname}' => $invoice->lastname, - '{invoice_address2}' => $invoice->address2, - '{invoice_address1}' => $invoice->address1, - '{invoice_city}' => $invoice->city, - '{invoice_postal_code}' => $invoice->postcode, - '{invoice_country}' => $invoice->country, - '{invoice_state}' => $invoice->id_state ? $invoice_state->name : '', - '{invoice_phone}' => $invoice->phone, - '{invoice_other}' => $invoice->other, - '{order_name}' => sprintf('%06d', $order->id), - '{shop_name}' => Configuration::get('PS_SHOP_NAME'), - '{date}' => $order_date_text, - '{carrier}' => (($carrier->name == '0') ? Configuration::get('PS_SHOP_NAME') : $carrier->name), - '{payment}' => Tools::substr($order->payment, 0, 32), - '{currency}' => $currency->sign, - ); - - $iso = Language::getIsoById((int)$id_lang); - if (file_exists(dirname(__FILE__).'/mails/'.$iso.'/'.$template.'.txt') && file_exists(dirname(__FILE__).'/mails/'.$iso.'/'.$template.'.html')) - Mail::Send((int)$id_lang, $template, $subject, $templateVars, $customer->email, $customer->firstname.' '.$customer->lastname, Configuration::get('PS_SHOP_EMAIL'), Configuration::get('PS_SHOP_NAME'), null, null, dirname(__FILE__).'/mails/'); - } - - public function hookBackOfficeHeader() - { - if (Tools::getValue('tab') == 'AdminMondialRelay' || Tools::getValue('module_name') == 'mondialrelay' || Tools::strtolower(Tools::getValue('controller')) == 'adminmondialrelay' || Tools::getValue('configure') == 'mondialrelay') - { - $this->context->smarty->assign(array( - 'MR_token' => MondialRelay::$MRBackToken, 'MR_local_path' => MondialRelay::$modulePath, - 'MR_account_set' => MondialRelay::isAccountSet(), 'new_base_dir' => MondialRelay::$moduleURL)); - - return $this->fetchTemplate('/views/templates/admin/', 'bo-header'); - } - } - - public function hookOrderDetailDisplayed($params) - { - if (!Mondialrelay::isMondialRelayCarrier($params['order']->id_carrier)) - return; - - $sql = ' - SELECT s.`MR_Selected_LgAdr1`, s.`MR_Selected_LgAdr2`, s.`MR_Selected_LgAdr3`, s.`MR_Selected_LgAdr4`, - s.`MR_Selected_CP`, s.`MR_Selected_Ville`, s.`MR_Selected_Pays`, s.`MR_Selected_Num`, s.`url_suivi`, s.`exp_number`, m.dlv_mode - FROM `'._DB_PREFIX_.'mr_selected` s - INNER JOIN '._DB_PREFIX_.'mr_method m ON m.id_mr_method = s.id_method - WHERE s.`id_cart` = '.(int)$params['order']->id_cart; - $res = Db::getInstance()->getRow($sql); - - if (!$res) - return; - - $point_relais = $res['MR_Selected_LgAdr1']. - ($res['MR_Selected_LgAdr1'] ? '
' : '').$res['MR_Selected_LgAdr2']. - ($res['MR_Selected_LgAdr2'] ? '
' : '').$res['MR_Selected_LgAdr3']. - ($res['MR_Selected_LgAdr3'] ? '
' : '').$res['MR_Selected_LgAdr4']. - ($res['MR_Selected_LgAdr4'] ? '
' : '').$res['MR_Selected_CP'].' '. - $res['MR_Selected_Ville'].'
'.$res['MR_Selected_Pays']; - - - if (($res['dlv_mode'] == 'LD1') || ($res['dlv_mode'] == 'LDS') || ($res['dlv_mode'] == 'HOM')) - $this->context->smarty->assign( - array( - 'mr_url' => $res['url_suivi'] - )); - else - $this->context->smarty->assign( - array( - 'mr_addr' => $point_relais, - 'mr_url' => $res['url_suivi'] - )); - - return $this->fetchTemplate('/views/templates/front/', 'order_detail'); - } - - /* - ** Update the carrier id to use the new one if changed - */ - public function hookupdateCarrier($params) - { - if ($params['id_carrier'] != $params['carrier']->id) - { - /* Get the old id_mr_method */ - $id_mr_method = Db::getInstance()->getValue(' - SELECT id_mr_method FROM `'._DB_PREFIX_.'mr_method` - WHERE id_carrier='.(int)$params['id_carrier']); - - /* Insert new entry keeping the last one linked to the id_carrier */ - $query = ' - INSERT INTO `'._DB_PREFIX_.'mr_method` - (name, country_list, col_mode, dlv_mode, insurance, id_carrier) - ( - SELECT - "'.pSQL($params['carrier']->name).'", - country_list, - col_mode, - dlv_mode, - insurance, - '.(int)$params['carrier']->id.' - FROM `'._DB_PREFIX_.'mr_method` - WHERE id_carrier ='.(int)$params['id_carrier'].')'; - Db::getInstance()->execute($query); - - /* Do the same process for the multishop table */ - $query = ' - INSERT INTO `'._DB_PREFIX_.'mr_method_shop` - (id_mr_method, id_shop) - ( - SELECT - '.(int)Db::getInstance()->INSERT_ID().', - id_shop - FROM `'._DB_PREFIX_.'mr_method_shop` - WHERE id_mr_method ='.(int)$id_mr_method.')'; - Db::getInstance()->execute($query); - - /* Set the last mr_method to delete */ - Db::getInstance()->execute(' - UPDATE `'._DB_PREFIX_.'mr_method` SET `is_deleted` = 1 - WHERE `id_mr_method` = '.(int)$id_mr_method); - } - } - - /** - * Get a carrier list liable to the module - * - * @return array - */ - public function _getCarriers() - { - /* Query don't use the external_module_name to keep the */ - /* 1.3 compatibility */ - $query = ' - SELECT c.id_carrier, c.range_behavior, m.id_mr_method, - m.dlv_mode, cl.delay - FROM `'._DB_PREFIX_.'mr_method` m - LEFT JOIN `'._DB_PREFIX_.'carrier` c - ON c.`id_carrier` = m.`id_carrier` - LEFT JOIN `'._DB_PREFIX_.'carrier_lang` cl - ON c.`id_carrier` = cl.`id_carrier` - LEFT JOIN `'._DB_PREFIX_.'mr_method_shop` ms - ON m.`id_mr_method` = ms.`id_mr_method` - WHERE c.`deleted` = 0 - AND ms.`id_shop` = '.$this->account_shop['id_shop'].' - AND cl.id_lang = '.$this->context->language->id.' - AND c.`active` = 1 - AND m.`is_deleted` = 0'; - - $carriers = Db::getInstance()->executeS($query); - - if (!is_array($carriers)) - $carriers = array(); - return $carriers; - } - - /** - * Get a specific method entry detail by a defined id_carrier - * - * @static - * @param $id_carrier - * @return array - */ - public static function getMethodByIdCarrier($id_carrier) - { - return Db::getInstance()->getRow(' - SELECT * FROM `'._DB_PREFIX_.'mr_method` m - WHERE m.`id_carrier` = '.(int)$id_carrier); - } - - /* - ** Added to be used properly with OPC - */ - public function hookHeader($params) - { - if (version_compare(_PS_VERSION_, '1.5', '>=')) - $this->context->controller->addJquery(); - - /*Configuration::updateValue('MONDIAL_RELAY_MODE', 'widget');*/ - if (!($file = basename(Tools::getValue('controller')))) - $file = str_replace('.php', '', basename($_SERVER['SCRIPT_NAME'])); - - if (in_array($file, array('order-opc', 'order', 'orderopc'))) - { - $this->context->smarty->assign(array( - 'one_page_checkout' => (Configuration::get('PS_ORDER_PROCESS_TYPE') ? Configuration::get('PS_ORDER_PROCESS_TYPE') : 0), - 'new_base_dir' => MondialRelay::$moduleURL, - 'MR_local_path' => MondialRelay::$modulePath, - 'MRToken' => MondialRelay::$MRFrontToken, - 'MR_MONDIAL_RELAY_MODE' => Configuration::get('MONDIAL_RELAY_MODE'), - ) - ); - - if($this->canAddJSViaController()) - $this->context->controller->addJS('https://maps.google.com/maps/api/js?sensor=false'); - else - $this->context->smarty->assign(array( - 'addJsInTemplate' => true - )); - - if (Configuration::get('MONDIAL_RELAY_MODE') == 'widget') - return $this->fetchTemplate('/views/templates/front/', 'header_widget'); - else - return $this->fetchTemplate('/views/templates/front/', 'header'); - } - return ''; - } - - private function canAddJSViaController() - { - if(version_compare(_PS_VERSION_, '1.6', '>=')) - return true; - - if(Configuration::get('PS_JS_THEME_CACHE')) - return false; - - return true; - } - - public function hookExtraCarrier($params) - { - /* TODO : Makes it work with multi-shipping */ - if (!MondialRelay::isAccountSet()) - return ''; - - $id_carrier = false; - $preSelectedRelay = $this->getRelayPointSelected($this->context->cart->id); - $carriersList = MondialRelay::_getCarriers(); - $address = new Address($this->context->cart->id_address_delivery); - $country = new Country($address->id_country); - $id_zone = Address::getZoneById((int)($address->id)); - - /* Check if the defined carrier are ok */ - foreach ($carriersList as $k => $row) - { - /* For now works only with single shipping (>= 1.5 compatibility) */ - if (method_exists($this->context->cart, 'carrierIsSelected')) - { - if ($this->context->cart->carrierIsSelected($row['id_carrier'], $params['address']->id)) - $id_carrier = $row['id_carrier']; - } - - /* Temporary carrier for some test */ - $carrier = new Carrier((int)($row['id_carrier'])); - if ((($carrier->getShippingMethod() == Carrier::SHIPPING_METHOD_WEIGHT) && $carrier->getMaxDeliveryPriceByWeight($id_zone) === false) || (($carrier->getShippingMethod() == Carrier::SHIPPING_METHOD_PRICE) && $carrier->getMaxDeliveryPriceByPrice($id_zone) === false)) - unset($carriersList[$k]); - else if ($row['range_behavior']) - { - /* Get id zone */ - $id_zone = (isset($this->context->cart->id_address_delivery) && $this->context->cart->id_address_delivery) ? - Address::getZoneById((int)$this->context->cart->id_address_delivery) : - (int)$this->context->country->id_zone; - - if (($carrier->getShippingMethod() == Carrier::SHIPPING_METHOD_WEIGHT && (!Carrier::checkDeliveryPriceByWeight($row['id_carrier'], $this->context->cart->getTotalWeight(), $id_zone))) || - ($carrier->getShippingMethod() == Carrier::SHIPPING_METHOD_PRICE && - (!Carrier::checkDeliveryPriceByPrice($row['id_carrier'], $this->context->cart->getOrderTotal(true, MondialRelay::BOTH_WITHOUT_SHIPPING), $id_zone, $this->context->cart->id_currency) || - !Carrier::checkDeliveryPriceByPrice($row['id_carrier'], $this->context->cart->getOrderTotal(true, MondialRelay::BOTH_WITHOUT_SHIPPING), $id_zone, $this->context->cart->id_currency)))) - unset($carriersList[$k]); - } - } - - $carrier = null; - if ($id_carrier && ($method = MondialRelay::getMethodByIdCarrier($id_carrier))) - { - $carrier = new Carrier((int)$id_carrier); - /* Add dynamically a new field */ - $carrier->id_mr_method = $method['id_mr_method']; - $carrier->mr_dlv_mode = $method['dlv_mode']; - } - - if (Configuration::get('PS_SSL_ENABLED') || (!empty($_SERVER['HTTPS']) && Tools::strtolower($_SERVER['HTTPS']) != 'off')) - $ssl = 'true'; - else $ssl = 'false'; - - $this->context->smarty->assign(array( - 'address' => $address, - 'account_shop' => $this->account_shop, - 'country' => $country, - 'ssl' => $ssl, - 'MR_Data'=> MRTools::jsonEncode(array( - 'carrier_list' => $carriersList, - 'carrier' => $carrier, - 'PS_VERSION' => _PS_VERSION_, - 'pre_selected_relay' => isset($preSelectedRelay['MR_selected_num']) ? $preSelectedRelay['MR_selected_num'] : -1, - )) - )); - if (Configuration::get('MONDIAL_RELAY_MODE') == 'widget') - return $this->fetchTemplate('/views/templates/front/', 'checkout_process_widget'); - else - return $this->fetchTemplate('/views/templates/front/', 'checkout_process'); - } - - /** - * Return the detailed account - * - * @static - * @return mixed - */ - public static function getAccountDetail() - { - return unserialize((string)Configuration::get('MR_ACCOUNT_DETAIL')); - } - - /** - * Check if the account is set - * - * @static - * @return bool - */ - public static function isAccountSet() - { - $details = MondialRelay::getAccountDetail(); - - if (!$details || !count($details)) - return false; - - foreach ($details as $value) - if (empty($value)) - return false; - - return true; - } - - /** - * Check any submitted form - */ - private function _postValidation() - { - if (Tools::isSubmit('submit_account_detail')) - { - if (Tools::getValue('MR_enseigne_webservice') == '' || !preg_match('#^[0-9A-Z]{2}[0-9A-Z ]{6}$#', Tools::getValue('MR_enseigne_webservice'))) - $this->_postErrors[] = $this->l('Invalid Enseigne'); - if (Tools::getValue('MR_code_marque') == '' || !preg_match('#^[0-9]{2}$#', Tools::getValue('MR_code_marque'))) - $this->_postErrors[] = $this->l('Invalid Mark code'); - if (Tools::getValue('MR_webservice_key') == '' || !preg_match("#^[0-9A-Za-z_\'., /\-]{2,32}$#", Tools::getValue('MR_webservice_key'))) - $this->_postErrors[] = $this->l('Invalid Webservice Key'); - if (Tools::getValue('MR_language') == '' || !preg_match('#^[A-Z]{2}$#', Tools::getValue('MR_language'))) - $this->_postErrors[] = $this->l('Invalid Language'); - if (!Tools::getValue('MR_weight_coefficient') || !Validate::isInt(Tools::getValue('MR_weight_coefficient'))) - $this->_postErrors[] = $this->l('Invalid Weight Coefficient'); - } - - /* Shipping form validation */ - else if (Tools::isSubmit('submitMethod')) - { - if (!preg_match("#^[0-9A-Za-z_\'., /\-]{2,32}$#", Tools::getValue('mr_Name'))) - $this->_postErrors[] = $this->l('Invalid carrier name'); - if (Tools::getValue('mr_ModeCol') != 'CCC') - $this->_postErrors[] = $this->l('Invalid Col mode'); - if (!preg_match('#^REL|24R|ESP|DRI|LDS|LDR|LD1|HOM$#', Tools::getValue('mr_ModeLiv'))) - $this->_postErrors[] = $this->l('Invalid delivery mode'); - if (!Validate::isInt(Tools::getValue('mr_ModeAss')) || Tools::getValue('mr_ModeAss') > 5 || Tools::getValue('mr_ModeAss') < 0) - $this->_postErrors[] = $this->l('Invalid Assurance mode'); - if (!Tools::getValue('mr_Pays_list')) - $this->_postErrors[] = $this->l('You must choose at least one delivery country.'); - } - - /* Order state form validation */ - else if (Tools::isSubmit('submit_order_state')) - { - if (!Validate::isUnsignedInt(Tools::getValue('id_order_state'))) - $this->_postErrors[] = $this->l('Invalid order state'); - } - - - } - - /** - * Update account shop - * - * @return bool - */ - public function updateAccountShop() - { - return Configuration::updateValue('MR_ACCOUNT_DETAIL', serialize($this->account_shop)); - } - - /** - * Post process - * - * @return array - */ - private function _postProcess() - { - $post_action = array( - 'type' =>Tools::safeOutput(Tools::getValue('MR_tab_name')), - 'message_success' => $this->l('Action Succeed'), - 'had_errors' => false - ); - - if (Tools::isSubmit('submitAdvancedSettings')) - Configuration::updateValue('MONDIAL_RELAY_MODE', Tools::getValue('mode', 'widget')); - else if (Tools::isSubmit('submit_account_detail')) - { - $this->account_shop = array( - 'MR_ENSEIGNE_WEBSERVICE' => Tools::safeOutput(Tools::getValue('MR_enseigne_webservice')), - 'MR_CODE_MARQUE' => Tools::safeOutput(Tools::getValue('MR_code_marque')), - 'MR_KEY_WEBSERVICE' =>Tools::safeOutput(Tools::getValue('MR_webservice_key')), - 'MR_LANGUAGE' => Tools::safeOutput(Tools::getValue('MR_language')), - 'MR_ORDER_STATE' => Tools::safeOutput($this->account_shop['MR_ORDER_STATE']), - 'MR_WEIGHT_COEFFICIENT' => Tools::safeOutput(Tools::getValue('MR_weight_coefficient')), - 'id_shop' => $this->context->shop->id - ); - if ($this->updateAccountShop()) - $post_action['message_success'] = $this->l('Account detail has been updated'); - else - $this->_postErrors[] = $this->l('Cannot Update the account shop'); - } - else if (Tools::isSubmit('submit_add_shipping')) - { - if (($this->addShippingMethod())) - $post_action['message_success'] = $this->l('Shipping method has been added'); - } - else if (Tools::isSubmit('submit_order_state')) - { - Configuration::updateValue('MONDIAL_RELAY_ORDER_STATE', Tools::getValue('id_order_state')); - $post_action['message_success'] = $this->l('Order state properly changed'); - } - else if (($id_mr_method = Tools::getValue('delete_mr')) && $this->disableCarrier((int)$id_mr_method)) - $post_action['message_success'] = $this->l('Carrier has been deleted (disabled under the prestashop database)'); - - if (count($this->_postErrors)) - $post_action['had_errors'] = true; - - return $post_action; - } - - public function getContent() - { - $post_action = null; - if (!empty($_POST)) - { - $this->_postValidation(); - if (!count($this->_postErrors)) - $post_action = $this->_postProcess(); - } - $carriers_list = Db::getInstance()->executeS(' - SELECT m.* - FROM `'._DB_PREFIX_.'mr_method` m - LEFT JOIN `'._DB_PREFIX_.'carrier` c - ON (c.`id_carrier` = m.`id_carrier`) - LEFT JOIN `'._DB_PREFIX_.'mr_method_shop` ms - ON ms.`id_mr_method` = m.`id_mr_method` - WHERE c.`deleted` = 0 AND ms.`id_shop` = '.(int)$this->account_shop['id_shop']); - - $controller = version_compare(_PS_VERSION_, '1.5', '<') ? 'AdminContact' : 'AdminStores'; - - /* TODO : Fill an array with admi controller name */ - $this->context->smarty->assign(array( - 'MR_token_admin_performance' => Tools::getAdminToken('AdminPerformance'.(int)(Tab::getIdFromClassName('AdminPerformance')).(int)($this->context->cookie->id_employee)), - 'MR_token_admin_carriers' => (version_compare(_PS_VERSION_, '1.6', '<') ? Tools::getAdminToken('AdminCarriers'.(int)(Tab::getIdFromClassName('AdminCarriers')).(int)$this->context->employee->id) : Tools::getAdminToken('AdminCarrierWizard'.(int)(Tab::getIdFromClassName('AdminCarrierWizard')).(int)$this->context->employee->id)), - 'MR_token_admin_contact' => array( - 'controller_name' => $controller, - 'token' => Tools::getAdminToken($controller.(int)(Tab::getIdFromClassName($controller)).(int)$this->context->employee->id)), - 'MR_token_admin_mondialrelay' => Tools::getAdminToken('AdminMondialRelay'.(int)(Tab::getIdFromClassName('AdminMondialRelay')).(int)$this->context->employee->id), - 'MR_token_admin_module' => Tools::getAdminToken('AdminModules'.(int)(Tab::getIdFromClassName('AdminModules')).(int)$this->context->employee->id), - 'MR_enseigne_webservice' => Tools::getValue('MR_enseigne_webservice') ? Tools::getValue('MR_enseigne_webservice') : $this->account_shop['MR_ENSEIGNE_WEBSERVICE'], - 'MR_code_marque' => Tools::getValue('MR_code_marque') ? Tools::getValue('MR_code_marque') : $this->account_shop['MR_CODE_MARQUE'], - 'MR_webservice_key' => Tools::getValue('MR_webservice_key') ? Tools::getValue('MR_webservice_key') : $this->account_shop['MR_KEY_WEBSERVICE'], - 'MR_available_languages' => Language::getLanguages(), - 'MR_selected_language' => $this->account_shop['MR_LANGUAGE'], - 'MR_weight_coefficient' => Tools::getValue('MR_weight_coefficient') ? Tools::getValue('MR_weight_coefficient') : $this->account_shop['MR_WEIGHT_COEFFICIENT'], - 'MR_PS_WEIGHT_UNIT' => Configuration::get('PS_WEIGHT_UNIT'), - 'MR_order_states_list' => OrderState::getOrderStates($this->context->language->id), - 'MR_MONDIAL_RELAY_ORDER_STATE' => Configuration::get('MONDIAL_RELAY_ORDER_STATE'), - 'MR_CRON_URL' => Tools::getHttpHost(true, true)._MODULE_DIR_.$this->name.'/cron.php?secure_key='.Configuration::get('MONDIAL_RELAY_SECURE_KEY'), - 'MR_name' => Tools::getValue('MR_name') ? Tools::getValue('MR_name') : '', - 'MR_carriers_list' => $carriers_list, - 'MR_error_list' => $this->_postErrors, - 'MR_form_action' => $post_action, - 'MR_PS_ADMIN_IMG_' => _PS_ADMIN_IMG_, - 'MR_tab_selected' => Tools::getValue('MR_tab_name') ? Tools::getValue('MR_tab_name') : (MondialRelay::isAccountSet() ? 'account_form' : 'info_form'), - 'MR_delay' => Tools::getValue('MR_delay') ? Tools::getValue('MR_delay') : '', - 'MR_local_path' => MondialRelay::$modulePath, - 'MR_upgrade_detail' => $this->upgrade_detail, - 'MR_unit_weight_used' => Configuration::get('PS_WEIGHT_UNIT'), - 'MR_account_set' => MondialRelay::isAccountSet(), - 'MR_base_dir' => MondialRelay::$moduleURL, - 'MR_MONDIAL_RELAY_MODE' => Configuration::get('MONDIAL_RELAY_MODE'), - ) - ); - return $this->fetchTemplate('/views/templates/admin/', 'configuration'); - } - - /** - * Add new carrier - * - * @param $name - * @param $delay - * @return bool|int - */ - private function addCarrier($name, $delay) - { - $ret = false; - - if (($carrier = new Carrier())) - { - $delay_lang = array(); - foreach (Language::getLanguages(false) as $lang) - $delay_lang[$lang['id_lang']] = $delay; - $carrier->name = $name; - $carrier->active = 1; - $carrier->range_behavior = 1; - $carrier->need_range = 1; - $carrier->external_module_name = 'mondialrelay'; - $carrier->shipping_method = 1; - $carrier->delay = $delay_lang; - $carrier->is_module = version_compare(_PS_VERSION_, '1.4', '<') ? 0 : 1; - - $ret = $carrier->add(); - } - return $ret ? $carrier->id : false; - } - - public function displayInfoByCart($id_cart) - { - $html = '
'; - return $html; - } - - /** - * Set necessaries values to the created carrier - * - * @param $id_carrier - * @param $dlv_mode - * @return bool - */ - private function addDefaultCarrierValue($id_carrier, $dlv_mode) - { - $weight_coef = $this->account_shop['MR_WEIGHT_COEFFICIENT']; - - /* Default Range value depending of the delivery mode */ - $range_weight = array( - '24R' => array(0, 30000 / $weight_coef), - 'DRI' => array(30000 / $weight_coef, 130000 / $weight_coef), - 'LD1' => array(0, 60000 / $weight_coef), - 'HOM' => array(0, 60000 / $weight_coef), - 'LDS' => array(30000 / $weight_coef, 130000 / $weight_coef) - ); - - /* Set range weight for a dlv_mode */ - if (!Db::getInstance()->execute( - 'INSERT INTO `'._DB_PREFIX_.'range_weight` - (`id_carrier`, `delimiter1`, `delimiter2`) - VALUES ('.(int)$id_carrier.', '.$range_weight[$dlv_mode][0].', '.$range_weight[$dlv_mode][1].')')) - { - $this->_postErrors[] = $this->l('Range weight can\'t be added'); - return false; - } - - $range_weight_id = Db::getInstance()->Insert_ID(); - - /* Set a range price */ - if (!Db::getInstance()->execute( - 'INSERT INTO `'._DB_PREFIX_.'range_price` - (`id_carrier`, `delimiter1`, `delimiter2`) - VALUES ('.(int)$id_carrier.', 0.000000, 10000.000000)')) - { - $this->_postErrors[] = $this->l('Range price can\'t be added'); - return false; - } - - $range_price_id = Db::getInstance()->Insert_ID(); - - $groups = Group::getGroups(Configuration::get('PS_LANG_DEFAULT')); - foreach ($groups as $group) - if (!Db::getInstance()->execute( - 'INSERT INTO `'._DB_PREFIX_.'carrier_group` - (id_carrier, id_group) - VALUES('.(int)$id_carrier.', '.(int)($group['id_group']).')')) - { - $this->_postErrors[] = $this->l('Default zone can\'t be added'); - return false; - } - - /* Set default zone */ - $zones = Zone::getZones(); - foreach ($zones as $zone) - { - if (!Db::getInstance()->execute( - 'INSERT INTO `'._DB_PREFIX_.'carrier_zone` - (id_carrier, id_zone) - VALUES('.(int)$id_carrier.', '.(int)($zone['id_zone']).')') || - !Db::getInstance()->execute( - 'INSERT INTO `'._DB_PREFIX_.'delivery` - (id_carrier, id_range_price, id_range_weight, id_zone, price) - VALUES('.(int)$id_carrier.', '.(int)($range_price_id).', NULL,'.(int)($zone['id_zone']).', 0.00)') || - !Db::getInstance()->execute( - 'INSERT INTO `'._DB_PREFIX_.'delivery` - (id_carrier, id_range_price, id_range_weight, id_zone, price) - VALUES('.(int)$id_carrier.', NULL, '.(int)($range_weight_id).','.(int)($zone['id_zone']).', 0.00)')) - { - $this->_postErrors[] = $this->l('Carrier zone or delivery data can\'t be added'); - return false; - } - } - return true; - } - - /** - * Add new shipping method - * - * @return bool - */ - private function addShippingMethod() - { - /* Insert new carrier for under Prestashop */ - if (!($id_carrier = $this->addCarrier(Tools::getValue('MR_name'), Tools::getValue('MR_delay')))) - { - $this->_postErrors[] = $this->l('Carrier can\'t be created in PrestaShop'); - return false; - } - - $fields = $_POST; - - unset($fields['submit_add_shipping'], $fields['MR_tab_name'], $fields['tab'], $fields['MR_delay']); - - /* Force col mod to CCC */ - $fields['col_mode'] = 'CCC'; - $fields['id_carrier'] = $id_carrier; - - $query = 'INSERT INTO `'._DB_PREFIX_.'mr_method` (%s) VALUES(%s)'; - - $keys = array(); - $values = array(); - foreach ($fields as $key => $value) - { - $keys[] = '`'.str_replace('MR_', '', $key).'`'; - $values[] = '\''.(is_array($value) ? pSQL(implode(',', $value)) : pSQL($value)).'\''; - } - $query = sprintf($query, implode(',', $keys), implode(',', $values)); - - if (!Db::getInstance()->execute($query) || !Db::getInstance()->execute('INSERT INTO `'._DB_PREFIX_.'mr_method_shop` - (id_mr_method, id_shop) VALUES('.(int)Db::getInstance()->INSERT_ID().', '.(int)$this->account_shop['id_shop'].')')) - { - $this->l('Carrier method can\'t be added for the module'); - Db::getInstance()->execute('DELETE FROM `'._DB_PREFIX_.'carrier` WHERE id_carrier='.(int)$id_carrier); - return false; - } - return $this->addDefaultCarrierValue($id_carrier, $fields['MR_dlv_mode']); - } - - /** - * Disable carrier instead of delete to keep history - * - * @param $id_mr_method - */ - public function disableCarrier($id_mr_method) - { - if (($id_carrier = Db::getInstance()->getValue( - 'SELECT `id_carrier` - FROM `'._DB_PREFIX_.'mr_method` - WHERE `id_mr_method` = '.(int)($id_mr_method))) && - Db::getInstance()->execute( - 'UPDATE `'._DB_PREFIX_.'carrier` c, `'._DB_PREFIX_.'mr_method` m - SET c.`active` = 0, c.`deleted` = 1, m.`is_deleted` = 1 - WHERE - c.`id_carrier` = m.`id_carrier` - AND c.`id_carrier` = '.(int)$id_carrier)) - return true; - - $this->_postErrors = $this->l('Carrier can\'t be deleted yet'); - return false; - } - - /** - * Get the followup url - * - * @param $exp_number - * @return mixed - */ - public function get_followup($exp_number) - { - $query = ' - SELECT url_suivi - FROM '._DB_PREFIX_.'mr_selected - WHERE exp_number='.(int)$exp_number; - - return Db::getInstance()->getValue($query); - } - - /** - * Get the SQL query to fetch order with mr carrier - * - * @static - * @param $id_order_state - * @param $weight_coefficient - * @return string - */ - public static function getBaseOrdersSQLQuery($id_order_state, $weight_coefficient = 0) - { - return 'SELECT o.`id_address_delivery` as id_address_delivery, - o.`id_order` as id_order, - o.`id_customer` as id_customer, - o.`id_cart` as id_cart, - o.`id_lang` as id_lang, - mrs.`id_mr_selected` as id_mr_selected, - CONCAT(c.`firstname`, " ", c.`lastname`) AS `customer`, - o.`total_paid_real` as total, o.`total_shipping` as shipping, - o.`date_add` as date, o.`id_currency` as id_currency, o.`id_lang` as id_lang, - mrs.`MR_poids` as mr_weight, - mrs.`MR_insurance` as mr_insurance, - mr.`name` as mr_Name, mrs.`MR_Selected_Num` as MR_Selected_Num, - mrs.`MR_Selected_Pays` as MR_Selected_Pays, mrs.`exp_number` as exp_number, - mr.`col_mode` as mr_ModeCol, mr.`dlv_mode` as mr_ModeLiv, mr.`insurance` as mr_ModeAss, - ROUND(SUM(odt.`product_weight` * odt.`product_quantity`) * '.(int)$weight_coefficient.') AS "order_weight" - FROM - `'._DB_PREFIX_.'orders` o - LEFT JOIN - `'._DB_PREFIX_.'carrier` ca - ON (ca.`id_carrier` = o.`id_carrier`) - LEFT JOIN - `'._DB_PREFIX_.'mr_selected` mrs - ON (mrs.`id_cart` = o.`id_cart`) - LEFT JOIN - `'._DB_PREFIX_.'mr_method` mr - ON (mr.`id_carrier` = ca.`id_carrier`) - LEFT JOIN - `'._DB_PREFIX_.'customer` c - ON (c.`id_customer` = o.`id_customer`) - LEFT JOIN - `'._DB_PREFIX_.'order_detail` odt - ON odt.`id_order` = o.`id_order` - WHERE ( - SELECT moh.`id_order_state` - FROM `'._DB_PREFIX_.'order_history` moh - WHERE moh.`id_order` = o.`id_order` - ORDER BY moh.`date_add` DESC LIMIT 1) = '.(int)($id_order_state).' - AND o.`id_order` = mrs.`id_order`'; - } - - /** - * Get orders details to create Tickets - * - * @static - * @param array $orderIdList - * @param int $filterEntries - * @param int $weight_coefficient - * @return array - */ - public static function getOrders($orderIdList = array(), $filterEntries = MondialRelay::NO_FILTER, $weight_coefficient = 0) - { - $account_shop = MondialRelay::getAccountDetail(); - $id_order_state = $account_shop['MR_ORDER_STATE']; - $sql = MondialRelay::getBaseOrdersSQLQuery($id_order_state, $weight_coefficient); - - if (count($orderIdList)) - { - $sql .= ' AND o.id_order IN ('; - foreach ($orderIdList as $id_order) - $sql .= (int)$id_order.', '; - $sql = rtrim($sql, ', ').')'; - } - switch ($filterEntries) - { - case MondialRelay::WITHOUT_HOME_DELIVERY: - $sql .= 'AND mr.mr_ModeLiv != "LD1" AND mr.mr_ModeLiv != "LDS" AND mr.mr_ModeLiv != "HOM"'; - break; - } - $sql .= ' - GROUP BY o.`id_order` - ORDER BY o.`date_add` ASC'; - return Db::getInstance()->executeS($sql); - } - - /** - * Get Mondialrelay error code - * - * @param $code - * @return string - */ - public function getErrorCodeDetail($code) - { - include(dirname(__FILE__).'/errorCode.php'); - if (isset($statCode[$code])) - return $statCode[$code]; - return $this->l('This error isn\'t referred : ').$code; - } - - /** - * @param $id_cart - * @return mixed - */ - public function getRelayPointSelected($id_cart) - { - return Db::getInstance()->getRow(' - SELECT s.`MR_selected_num` - FROM `'._DB_PREFIX_.'mr_selected` s - WHERE s.`id_cart` = '.(int)$id_cart); - } - - /** - * @param $id_carrier - * @return mixed - */ - public function isMondialRelayCarrier($id_carrier) - { - return Db::getInstance()->getRow(' - SELECT m.`id_mr_method` - FROM `'._DB_PREFIX_.'mr_method` m - WHERE `id_carrier` = '.(int)$id_carrier); - } - - public function getMethodValueByIdCarier($id_carrier, $key) - { - $content = Db::getInstance()->executeS( - 'SELECT * - FROM `'._DB_PREFIX_.'mr_method` m - WHERE `id_carrier` = '.(int)$id_carrier); - - return isset($content[$key]) ? $content[$key] : ''; - } - - public function checkAJAX() - { - /* Avoid loop inclusion */ - static $is_included = false; - - /* TODO : Find a way to use it on front */ - if (isset($_SERVER['HTTP_X_REQUESTED_WITH']) && Tools::strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) == 'xmlhttprequest') - if (Tools::getValue('mrtoken') && !$is_included) - { - $is_included = true; - include(dirname(__FILE__).'/ajax.php'); - exit(0); - } - } + const INSTALL_SQL_FILE = 'sql/mrInstall.sql'; + + private $_postErrors; + + public static $modulePath = ''; + public static $moduleURL = ''; + static public $MRFrontToken = ''; + static public $MRBackToken = ''; + + /* Added for 1.3 compatibility */ + const ONLY_PRODUCTS = 1; + const ONLY_DISCOUNTS = 2; + const BOTH = 3; + const BOTH_WITHOUT_SHIPPING = 4; + const ONLY_SHIPPING = 5; + const ONLY_WRAPPING = 6; + const ONLY_PRODUCTS_WITHOUT_SHIPPING = 7; + + /* SQL FILTER ORDER */ + const NO_FILTER = 0; + const WITHOUT_HOME_DELIVERY = 1; + + const MR_URL = 'http://www.mondialrelay.fr/'; + + /* Contains the details of the current shop used */ + public $account_shop = array( + 'MR_ENSEIGNE_WEBSERVICE' => '', + 'MR_CODE_MARQUE' => '', + 'MR_KEY_WEBSERVICE' => '', + 'MR_LANGUAGE' => '', + 'MR_WEIGHT_COEFFICIENT' => '', + 'MR_ORDER_STATE' => 3, + 'id_shop' => 1 + ); + + public $upgrade_detail = array(); + + public function __construct() + { + $this->name = 'mondialrelay'; + $this->tab = 'shipping_logistics'; + $this->version = '2.1.7'; + $this->installed_version = ''; + $this->module_key = '366584e511d311cfaa899fc2d9ec1bd0'; + $this->author = 'PrestaShop'; + + parent::__construct(); + + $this->displayName = $this->l('Mondial Relay'); + $this->description = $this->l('Deliver in Relay points'); + + /** Backward compatibility */ + require(_PS_MODULE_DIR_.'/mondialrelay/backward_compatibility/backward.php'); + + self::initModuleAccess(); + + /* Call everytime to prevent the change of the module by a recent one */ + $this->_updateProcess(); + $this->initAccount(); + + /* Check if it's a mondialrelay ajax query */ + $this->checkAJAX(); + } + + public function install() + { + if (!function_exists('curl_version') || !extension_loaded('soap')) + { + $this->_errors[] = $this->l('Mondial Relay needs SOAP & cURL to be installed on your server.'); + return false; + } + + if (!parent::install()) + return false; + + if (!$this->registerHookByVersion()) + return false; + + if ((!file_exists(MondialRelay::$modulePath.MondialRelay::INSTALL_SQL_FILE)) || + (!$sql = Tools::file_get_contents(MondialRelay::$modulePath.MondialRelay::INSTALL_SQL_FILE))) + return false; + + $sql = str_replace('PREFIX_', _DB_PREFIX_, $sql); + $sql = preg_split("/;\s*[\r\n]+/", $sql); + foreach ($sql as $query) + if (!empty($query)) + Db::getInstance()->execute(trim($query)); + + $result = Db::getInstance()->getRow(' + SELECT id_tab + FROM `'._DB_PREFIX_.'tab` + WHERE class_name="AdminMondialRelay"'); + + if (!$result) + { + $tab = new Tab(); + $languages = Language::getLanguages(false); + foreach ($languages as $language) + $tab->name[$language['id_lang']] = 'Mondial Relay'; + $tab->class_name = 'AdminMondialRelay'; + $tab->module = 'mondialrelay'; + $tab->id_parent = Tab::getIdFromClassName('AdminOrders'); + + if (!$tab->add()) + return false; + + if (is_dir(_PS_MODULE_DIR_.'mondialrelay/')) + @copy(_PS_MODULE_DIR_.'mondialrelay/img/AdminMondialRelay.gif', _PS_IMG_DIR_.'/AdminMondialRelay.gif'); + } + + /* If module isn't installed, set default value */ + if (!Configuration::get('MONDIAL_RELAY')) + { + Configuration::updateValue('MONDIAL_RELAY', $this->version); + Configuration::updateValue('MONDIAL_RELAY_SECURE_KEY', md5( _COOKIE_KEY_.time())); + Configuration::updateValue('MONDIAL_RELAY_MODE', 'widget'); + } + else + { + $query = 'UPDATE `'._DB_PREFIX_.'carrier` c, `'._DB_PREFIX_.'mr_method` m + SET c.`deleted` = 0 + WHERE c.`id_carrier` = m.`id_carrier` + AND m.`is_deleted` = 0'; + + /* Reactive transport if database wasn't remove at the last uninstall */ + Db::getInstance()->execute($query); + } + return true; + } + + /* + ** Return the token depend of the type + */ + public static function getToken($type = 'front') + { + return ($type == 'front') ? MondialRelay::$MRFrontToken : (($type == 'back') ? + MondialRelay::$MRBackToken : null); + } + + /* + ** Register hook depending of the Prestashop version used + */ + private function registerHookByVersion() + { + if (version_compare(_PS_VERSION_, '1.3', '>=') && (!$this->registerHook('extraCarrier') || !$this->registerHook('updateCarrier') || !$this->registerHook('newOrder') || !$this->registerHook('BackOfficeHeader') || !$this->registerHook('header'))) + return false; + if (version_compare(_PS_VERSION_, '1.4', '>=') && (!$this->registerHook('processCarrier') || !$this->registerHook('orderDetailDisplayed'))) + return false; + if (version_compare(_PS_VERSION_, '1.6', '>=') && (!$this->registerHook('displayBackOfficeHeader'))) + return false; + return true; + } + + public function uninstallCommonData() + { + /* Tab uninstall */ + if (($id_tab = Tab::getIdFromClassName('AdminMondialRelay'))) + { + $tab = new Tab($id_tab); + $tab->delete(); + } + + if (!Db::getInstance()->execute(' + UPDATE '._DB_PREFIX_.'carrier c, '._DB_PREFIX_.'mr_method m + SET c.`deleted` = 1 + WHERE c.`id_carrier` = m.`id_carrier`')) + return false; + + return true; + } + + public function uninstall() + { + if (!parent::uninstall()) + return false; + + /* Uninstall data that doesn't need to be keep */ + if (!$this->uninstallCommonData()) + return false; + + if (Tools::getValue('keepDatabase')) + return true; + + Configuration::deleteByName('MR_ACCOUNT_DETAIL'); + + /* Drop databases */ + if (!Db::getInstance()->execute(' + DROP TABLE + '._DB_PREFIX_.'mr_history, + '._DB_PREFIX_.'mr_method, + '._DB_PREFIX_.'mr_selected, + '._DB_PREFIX_.'mr_method_shop')) + { + /* If drop failed, try to turn off the carriers */ + Db::getInstance()->execute(' + UPDATE '._DB_PREFIX_.'carrier c, '._DB_PREFIX_.'mr_method m + SET c.`deleted` = 1 + WHERE c.`id_carrier` = m.`id_carrier`'); + return false; + } + return true; + } + + /** + * Launch upgrade process for 1.3 and 1.4 + */ + public function runUpgrade() + { + /* List of upgraded version existing */ + $files_version = array('1.8.0', '1.8.3', '2.0.6'); + + $upgrade_path = dirname(__FILE__).'/upgrade/'; + + if (version_compare(_PS_VERSION_, '1.5', '<')) + { + foreach ($files_version as $version) + { + $file = $upgrade_path.'install-'.$version.'.php'; + if ($this->installed_version < $version && file_exists($file)) + { + include_once($file); + call_user_func('upgrade_module_'.str_replace('.', '_', $version), $this); + } + } + } + } + + /* + ** UpdateProcess if merchant update the module without a + ** normal installation + */ + private function _updateProcess() + { + if (Module::isInstalled('mondialrelay') && + (($this->installed_version = Configuration::get('MONDIAL_RELAY')) || + $this->installed_version = Configuration::get('MONDIAL_RELAY_1_4')) + && $this->installed_version < $this->version) + $this->runUpgrade(); + } + + /* + ** Get the content to ask for a backup of the database + */ + private function askForBackup($href) + { + return 'return PS_MRObject.uninstall(\''.$href.'\');'; + } + + /* + ** OnClick for input fields under the module list fields action + */ + public function onclickOption($type, $href = false) + { + $content = ''; + + switch ($type) + { + case 'desactive': + break; + case 'reset': + break; + case 'delete': + break; + case 'uninstall': + $content = $this->askForBackup($href); + break; + default: + } + return $content; + } + + /** + * Init the account_shop variable with the account detail for this shop + */ + public function initAccount() + { + /* Get default value */ + $id_order_state = $this->account_shop['MR_ORDER_STATE']; + + if (($account_shop_stored = MondialRelay::getAccountDetail())) + $this->account_shop = $account_shop_stored; + + /* Normally, this can't happen... */ + if (empty($this->account_shop['MR_ORDER_STATE'])) + $this->account_shop['MR_ORDER_STATE'] = $id_order_state; + } + + /* + ** Init the access directory module for URL and file system + ** Allow a compatibility for Presta < 1.4 + */ + public static function initModuleAccess() + { + MondialRelay::$modulePath = _PS_MODULE_DIR_.'mondialrelay/'; + MondialRelay::$MRFrontToken = sha1('mr'._COOKIE_KEY_.'Front'); + MondialRelay::$MRBackToken = sha1('mr'._COOKIE_KEY_.'Back'); + MondialRelay::$moduleURL = __PS_BASE_URI__.'modules/mondialrelay/'; + } + + public function fetchTemplate($path, $name) + { + if (version_compare(_PS_VERSION_, '1.4', '<')) + $this->context->smarty->currentTemplate = $name; + + return $this->context->smarty->fetch(dirname(__FILE__).$path.$name.'.tpl'); + } + + public function hookNewOrder($params) + { + if (!MondialRelay::isMondialRelayCarrier($params['cart']->id_carrier)) + return; + + $order = $params['order']; + $currency = $params['currency']; + $id_lang = (int)$order->id_lang; + $customer = new Customer($order->id_customer); + $carrier = new Carrier($order->id_carrier); + $invoice = new Address((int)($order->id_address_invoice)); + $invoice_state = $invoice->id_state ? new State($invoice->id_state) : false; + if (version_compare(_PS_VERSION_, '1.5', '<')) + $order_date_text = Tools::displayDate($order->date_add, (int)($id_lang)); + else + $order_date_text = Tools::displayDate($order->date_add, null); + + DB::getInstance()->execute(' + UPDATE `'._DB_PREFIX_.'mr_selected` + SET `id_order` = '.(int)$order->id.' + WHERE `id_cart` = '.(int)$params['cart']->id); + + /*============================================ + // GET MR INFOS + //============================================*/ + $sql = 'SELECT * FROM `'._DB_PREFIX_.'mr_selected` WHERE `id_cart` = '.(int)$params['cart']->id.' AND `id_order` = '.(int)$order->id.''; + $mr_point = DB::getInstance()->getRow($sql); + + if (!$mr_point['MR_Selected_Num']) return false; + + /*============================================ + // SEND MAIL + //============================================*/ + $template = 'mr_new_order'; + $subject = $this->l('New order', false, (int)$id_lang).' - '.sprintf('%06d', $order->id); + + $mr_address = ''; + if ($mr_point['MR_Selected_LgAdr2']) + $mr_address .= $mr_point['MR_Selected_LgAdr2'].''; + if ($mr_point['MR_Selected_LgAdr3']) + $mr_address .= $mr_point['MR_Selected_LgAdr3'].''; + if ($mr_point['MR_Selected_LgAdr4']) + $mr_address .= $mr_point['MR_Selected_LgAdr4'].''; + + $templateVars = array( + '{firstname}' => $customer->firstname, + '{lastname}' => $customer->lastname, + '{email}' => $customer->email, + '{delivery_company}' => $mr_point['MR_Selected_LgAdr1'], + '{delivery_address1}' => $mr_address, + '{delivery_city}' => $mr_point['MR_Selected_Ville'], + '{delivery_postal_code}' => $mr_point['MR_Selected_CP'], + '{delivery_country}' => $mr_point['MR_Selected_Pays'], + '{invoice_company}' => $invoice->company, + '{invoice_firstname}' => $invoice->firstname, + '{invoice_lastname}' => $invoice->lastname, + '{invoice_address2}' => $invoice->address2, + '{invoice_address1}' => $invoice->address1, + '{invoice_city}' => $invoice->city, + '{invoice_postal_code}' => $invoice->postcode, + '{invoice_country}' => $invoice->country, + '{invoice_state}' => $invoice->id_state ? $invoice_state->name : '', + '{invoice_phone}' => $invoice->phone, + '{invoice_other}' => $invoice->other, + '{order_name}' => sprintf('%06d', $order->id), + '{shop_name}' => Configuration::get('PS_SHOP_NAME'), + '{date}' => $order_date_text, + '{carrier}' => (($carrier->name == '0') ? Configuration::get('PS_SHOP_NAME') : $carrier->name), + '{payment}' => Tools::substr($order->payment, 0, 32), + '{currency}' => $currency->sign, + ); + + $iso = Language::getIsoById((int)$id_lang); + if (file_exists(dirname(__FILE__).'/mails/'.$iso.'/'.$template.'.txt') && file_exists(dirname(__FILE__).'/mails/'.$iso.'/'.$template.'.html')) + Mail::Send((int)$id_lang, $template, $subject, $templateVars, $customer->email, $customer->firstname.' '.$customer->lastname, Configuration::get('PS_SHOP_EMAIL'), Configuration::get('PS_SHOP_NAME'), null, null, dirname(__FILE__).'/mails/'); + } + + public function hookBackOfficeHeader() + { + if (Tools::getValue('tab') == 'AdminMondialRelay' || Tools::getValue('module_name') == 'mondialrelay' || Tools::strtolower(Tools::getValue('controller')) == 'adminmondialrelay' || Tools::getValue('configure') == 'mondialrelay') + { + $this->context->smarty->assign(array( + 'MR_token' => MondialRelay::$MRBackToken, 'MR_local_path' => MondialRelay::$modulePath, + 'MR_account_set' => MondialRelay::isAccountSet(), 'new_base_dir' => MondialRelay::$moduleURL)); + + return $this->fetchTemplate('/views/templates/admin/', 'bo-header'); + } + } + + public function hookOrderDetailDisplayed($params) + { + if (!Mondialrelay::isMondialRelayCarrier($params['order']->id_carrier)) + return; + + $sql = ' + SELECT s.`MR_Selected_LgAdr1`, s.`MR_Selected_LgAdr2`, s.`MR_Selected_LgAdr3`, s.`MR_Selected_LgAdr4`, + s.`MR_Selected_CP`, s.`MR_Selected_Ville`, s.`MR_Selected_Pays`, s.`MR_Selected_Num`, s.`url_suivi`, s.`exp_number`, m.dlv_mode + FROM `'._DB_PREFIX_.'mr_selected` s + INNER JOIN '._DB_PREFIX_.'mr_method m ON m.id_mr_method = s.id_method + WHERE s.`id_cart` = '.(int)$params['order']->id_cart; + $res = Db::getInstance()->getRow($sql); + + if (!$res) + return; + + $point_relais = $res['MR_Selected_LgAdr1']. + ($res['MR_Selected_LgAdr1'] ? '
' : '').$res['MR_Selected_LgAdr2']. + ($res['MR_Selected_LgAdr2'] ? '
' : '').$res['MR_Selected_LgAdr3']. + ($res['MR_Selected_LgAdr3'] ? '
' : '').$res['MR_Selected_LgAdr4']. + ($res['MR_Selected_LgAdr4'] ? '
' : '').$res['MR_Selected_CP'].' '. + $res['MR_Selected_Ville'].'
'.$res['MR_Selected_Pays']; + + + if (($res['dlv_mode'] == 'LD1') || ($res['dlv_mode'] == 'LDS') || ($res['dlv_mode'] == 'HOM')) + $this->context->smarty->assign( + array( + 'mr_url' => $res['url_suivi'] + )); + else + $this->context->smarty->assign( + array( + 'mr_addr' => $point_relais, + 'mr_url' => $res['url_suivi'] + )); + + return $this->fetchTemplate('/views/templates/front/', 'order_detail'); + } + + /* + ** Update the carrier id to use the new one if changed + */ + public function hookupdateCarrier($params) + { + if ($params['id_carrier'] != $params['carrier']->id) + { + /* Get the old id_mr_method */ + $id_mr_method = Db::getInstance()->getValue(' + SELECT id_mr_method FROM `'._DB_PREFIX_.'mr_method` + WHERE id_carrier='.(int)$params['id_carrier']); + + /* Insert new entry keeping the last one linked to the id_carrier */ + $query = ' + INSERT INTO `'._DB_PREFIX_.'mr_method` + (name, country_list, col_mode, dlv_mode, insurance, id_carrier, is_deleted) + ( + SELECT + "'.pSQL($params['carrier']->name).'", + country_list, + col_mode, + dlv_mode, + insurance, + '.(int)$params['carrier']->id.', + 0 + FROM `'._DB_PREFIX_.'mr_method` + WHERE id_carrier ='.(int)$params['id_carrier'].')'; + Db::getInstance()->execute($query); + + /* Do the same process for the multishop table */ + $query = ' + INSERT INTO `'._DB_PREFIX_.'mr_method_shop` + (id_mr_method, id_shop) + ( + SELECT + '.(int)Db::getInstance()->INSERT_ID().', + id_shop + FROM `'._DB_PREFIX_.'mr_method_shop` + WHERE id_mr_method ='.(int)$id_mr_method.')'; + Db::getInstance()->execute($query); + + /* Set the last mr_method to delete */ + Db::getInstance()->execute(' + UPDATE `'._DB_PREFIX_.'mr_method` SET `is_deleted` = 1 + WHERE `id_mr_method` = '.(int)$id_mr_method); + } + } + + /** + * Get a carrier list liable to the module + * + * @return array + */ + public function _getCarriers() + { + /* Query don't use the external_module_name to keep the */ + /* 1.3 compatibility */ + $query = ' + SELECT c.id_carrier, c.range_behavior, m.id_mr_method, + m.dlv_mode, cl.delay + FROM `'._DB_PREFIX_.'mr_method` m + LEFT JOIN `'._DB_PREFIX_.'carrier` c + ON c.`id_carrier` = m.`id_carrier` + LEFT JOIN `'._DB_PREFIX_.'carrier_lang` cl + ON c.`id_carrier` = cl.`id_carrier` + LEFT JOIN `'._DB_PREFIX_.'mr_method_shop` ms + ON m.`id_mr_method` = ms.`id_mr_method` + WHERE c.`deleted` = 0 + AND ms.`id_shop` = '.$this->account_shop['id_shop'].' + AND cl.id_lang = '.$this->context->language->id.' + AND c.`active` = 1 + AND m.`is_deleted` = 0'; + + $carriers = Db::getInstance()->executeS($query); + + if (!is_array($carriers)) + $carriers = array(); + return $carriers; + } + + /** + * Get a specific method entry detail by a defined id_carrier + * + * @static + * @param $id_carrier + * @return array + */ + public static function getMethodByIdCarrier($id_carrier) + { + return Db::getInstance()->getRow(' + SELECT * FROM `'._DB_PREFIX_.'mr_method` m + WHERE m.`id_carrier` = '.(int)$id_carrier); + } + + /* + ** Added to be used properly with OPC + */ + public function hookHeader($params) + { + if (version_compare(_PS_VERSION_, '1.5', '>=')) + $this->context->controller->addJquery(); + + /*Configuration::updateValue('MONDIAL_RELAY_MODE', 'widget');*/ + if (!($file = basename(Tools::getValue('controller')))) + $file = str_replace('.php', '', basename($_SERVER['SCRIPT_NAME'])); + + if (in_array($file, array('order-opc', 'order', 'orderopc'))) + { + $this->context->smarty->assign(array( + 'one_page_checkout' => (Configuration::get('PS_ORDER_PROCESS_TYPE') ? Configuration::get('PS_ORDER_PROCESS_TYPE') : 0), + 'new_base_dir' => MondialRelay::$moduleURL, + 'MR_local_path' => MondialRelay::$modulePath, + 'MRToken' => MondialRelay::$MRFrontToken, + 'MR_MONDIAL_RELAY_MODE' => Configuration::get('MONDIAL_RELAY_MODE'), + ) + ); + + if($this->canAddJSViaController()) + $this->context->controller->addJS('https://maps.google.com/maps/api/js?sensor=false'); + else + $this->context->smarty->assign(array( + 'addJsInTemplate' => true + )); + + if (Configuration::get('MONDIAL_RELAY_MODE') == 'widget') + return $this->fetchTemplate('/views/templates/front/', 'header_widget'); + else + return $this->fetchTemplate('/views/templates/front/', 'header'); + } + return ''; + } + + private function canAddJSViaController() + { + if(version_compare(_PS_VERSION_, '1.5', '<')) + return false; + + if(Configuration::get('PS_JS_THEME_CACHE')) + return false; + + return true; + } + + public function hookExtraCarrier($params) + { + /* TODO : Makes it work with multi-shipping */ + if (!MondialRelay::isAccountSet()) + return ''; + + $id_carrier = false; + $preSelectedRelay = $this->getRelayPointSelected($this->context->cart->id); + $carriersList = MondialRelay::_getCarriers(); + $address = new Address($this->context->cart->id_address_delivery); + $country = new Country($address->id_country); + $id_zone = Address::getZoneById((int)($address->id)); + + /* Check if the defined carrier are ok */ + foreach ($carriersList as $k => $row) + { + /* For now works only with single shipping (>= 1.5 compatibility) */ + if (method_exists($this->context->cart, 'carrierIsSelected')) + { + if ($this->context->cart->carrierIsSelected($row['id_carrier'], $params['address']->id)) + $id_carrier = $row['id_carrier']; + } + + /* Temporary carrier for some test */ + $carrier = new Carrier((int)($row['id_carrier'])); + if ((($carrier->getShippingMethod() == Carrier::SHIPPING_METHOD_WEIGHT) && $carrier->getMaxDeliveryPriceByWeight($id_zone) === false) || (($carrier->getShippingMethod() == Carrier::SHIPPING_METHOD_PRICE) && $carrier->getMaxDeliveryPriceByPrice($id_zone) === false)) + unset($carriersList[$k]); + else if ($row['range_behavior']) + { + /* Get id zone */ + $id_zone = (isset($this->context->cart->id_address_delivery) && $this->context->cart->id_address_delivery) ? + Address::getZoneById((int)$this->context->cart->id_address_delivery) : + (int)$this->context->country->id_zone; + + if (($carrier->getShippingMethod() == Carrier::SHIPPING_METHOD_WEIGHT && (!Carrier::checkDeliveryPriceByWeight($row['id_carrier'], $this->context->cart->getTotalWeight(), $id_zone))) || + ($carrier->getShippingMethod() == Carrier::SHIPPING_METHOD_PRICE && + (!Carrier::checkDeliveryPriceByPrice($row['id_carrier'], $this->context->cart->getOrderTotal(true, MondialRelay::BOTH_WITHOUT_SHIPPING), $id_zone, $this->context->cart->id_currency) || + !Carrier::checkDeliveryPriceByPrice($row['id_carrier'], $this->context->cart->getOrderTotal(true, MondialRelay::BOTH_WITHOUT_SHIPPING), $id_zone, $this->context->cart->id_currency)))) + unset($carriersList[$k]); + } + } + + $carrier = null; + if ($id_carrier && ($method = MondialRelay::getMethodByIdCarrier($id_carrier))) + { + $carrier = new Carrier((int)$id_carrier); + /* Add dynamically a new field */ + $carrier->id_mr_method = $method['id_mr_method']; + $carrier->mr_dlv_mode = $method['dlv_mode']; + } + + if (Configuration::get('PS_SSL_ENABLED') || (!empty($_SERVER['HTTPS']) && Tools::strtolower($_SERVER['HTTPS']) != 'off')) + $ssl = 'true'; + else $ssl = 'false'; + + $this->context->smarty->assign(array( + 'address' => $address, + 'account_shop' => $this->account_shop, + 'country' => $country, + 'ssl' => $ssl, + 'MR_Data'=> MRTools::jsonEncode(array( + 'carrier_list' => $carriersList, + 'carrier' => $carrier, + 'PS_VERSION' => _PS_VERSION_, + 'pre_selected_relay' => isset($preSelectedRelay['MR_selected_num']) ? $preSelectedRelay['MR_selected_num'] : -1, + )) + )); + if (Configuration::get('MONDIAL_RELAY_MODE') == 'widget') + return $this->fetchTemplate('/views/templates/front/', 'checkout_process_widget'); + else + return $this->fetchTemplate('/views/templates/front/', 'checkout_process'); + } + + /** + * Return the detailed account + * + * @static + * @return mixed + */ + public static function getAccountDetail() + { + return unserialize((string)Configuration::get('MR_ACCOUNT_DETAIL')); + } + + /** + * Check if the account is set + * + * @static + * @return bool + */ + public static function isAccountSet() + { + $details = MondialRelay::getAccountDetail(); + + if (!$details || !count($details)) + return false; + + foreach ($details as $value) + if (empty($value)) + return false; + + return true; + } + + /** + * Check any submitted form + */ + private function _postValidation() + { + if (Tools::isSubmit('submit_account_detail')) + { + if (Tools::getValue('MR_enseigne_webservice') == '' || !preg_match('#^[0-9A-Z]{2}[0-9A-Z ]{6}$#', Tools::getValue('MR_enseigne_webservice'))) + $this->_postErrors[] = $this->l('Invalid Enseigne'); + if (Tools::getValue('MR_code_marque') == '' || !preg_match('#^[0-9]{2}$#', Tools::getValue('MR_code_marque'))) + $this->_postErrors[] = $this->l('Invalid Mark code'); + if (Tools::getValue('MR_webservice_key') == '' || !preg_match("#^[0-9A-Za-z_\'., /\-]{2,32}$#", Tools::getValue('MR_webservice_key'))) + $this->_postErrors[] = $this->l('Invalid Webservice Key'); + if (Tools::getValue('MR_language') == '' || !preg_match('#^[A-Z]{2}$#', Tools::getValue('MR_language'))) + $this->_postErrors[] = $this->l('Invalid Language'); + if (!Tools::getValue('MR_weight_coefficient') || !Validate::isInt(Tools::getValue('MR_weight_coefficient'))) + $this->_postErrors[] = $this->l('Invalid Weight Coefficient'); + } + + /* Shipping form validation */ + else if (Tools::isSubmit('submitMethod')) + { + if (!preg_match("#^[0-9A-Za-z_\'., /\-]{2,32}$#", Tools::getValue('mr_Name'))) + $this->_postErrors[] = $this->l('Invalid carrier name'); + if (Tools::getValue('mr_ModeCol') != 'CCC') + $this->_postErrors[] = $this->l('Invalid Col mode'); + if (!preg_match('#^REL|24R|ESP|DRI|LDS|LDR|LD1|HOM$#', Tools::getValue('mr_ModeLiv'))) + $this->_postErrors[] = $this->l('Invalid delivery mode'); + if (!Validate::isInt(Tools::getValue('mr_ModeAss')) || Tools::getValue('mr_ModeAss') > 5 || Tools::getValue('mr_ModeAss') < 0) + $this->_postErrors[] = $this->l('Invalid Assurance mode'); + if (!Tools::getValue('mr_Pays_list')) + $this->_postErrors[] = $this->l('You must choose at least one delivery country.'); + } + + /* Order state form validation */ + else if (Tools::isSubmit('submit_order_state')) + { + if (!Validate::isUnsignedInt(Tools::getValue('id_order_state'))) + $this->_postErrors[] = $this->l('Invalid order state'); + } + + + } + + /** + * Update account shop + * + * @return bool + */ + public function updateAccountShop() + { + return Configuration::updateValue('MR_ACCOUNT_DETAIL', serialize($this->account_shop)); + } + + /** + * Post process + * + * @return array + */ + private function _postProcess() + { + $post_action = array( + 'type' =>Tools::safeOutput(Tools::getValue('MR_tab_name')), + 'message_success' => $this->l('Action Succeed'), + 'had_errors' => false + ); + + if (Tools::isSubmit('submitAdvancedSettings')) + Configuration::updateValue('MONDIAL_RELAY_MODE', Tools::getValue('mode', 'widget')); + else if (Tools::isSubmit('submit_account_detail')) + { + $this->account_shop = array( + 'MR_ENSEIGNE_WEBSERVICE' => Tools::safeOutput(Tools::getValue('MR_enseigne_webservice')), + 'MR_CODE_MARQUE' => Tools::safeOutput(Tools::getValue('MR_code_marque')), + 'MR_KEY_WEBSERVICE' =>Tools::safeOutput(Tools::getValue('MR_webservice_key')), + 'MR_LANGUAGE' => Tools::safeOutput(Tools::getValue('MR_language')), + 'MR_ORDER_STATE' => Tools::safeOutput($this->account_shop['MR_ORDER_STATE']), + 'MR_WEIGHT_COEFFICIENT' => Tools::safeOutput(Tools::getValue('MR_weight_coefficient')), + 'id_shop' => $this->context->shop->id + ); + if ($this->updateAccountShop()) + $post_action['message_success'] = $this->l('Account detail has been updated'); + else + $this->_postErrors[] = $this->l('Cannot Update the account shop'); + } + else if (Tools::isSubmit('submit_add_shipping')) + { + if (($this->addShippingMethod())) + $post_action['message_success'] = $this->l('Shipping method has been added'); + } + else if (Tools::isSubmit('submit_order_state')) + { + Configuration::updateValue('MONDIAL_RELAY_ORDER_STATE', Tools::getValue('id_order_state')); + $post_action['message_success'] = $this->l('Order state properly changed'); + } + else if (($id_mr_method = Tools::getValue('delete_mr')) && $this->disableCarrier((int)$id_mr_method)) + $post_action['message_success'] = $this->l('Carrier has been deleted (disabled under the prestashop database)'); + + if (count($this->_postErrors)) + $post_action['had_errors'] = true; + + return $post_action; + } + + public function getContent() + { + $post_action = null; + if (!empty($_POST)) + { + $this->_postValidation(); + if (!count($this->_postErrors)) + $post_action = $this->_postProcess(); + } + $carriers_list = Db::getInstance()->executeS(' + SELECT m.* + FROM `'._DB_PREFIX_.'mr_method` m + LEFT JOIN `'._DB_PREFIX_.'carrier` c + ON (c.`id_carrier` = m.`id_carrier`) + LEFT JOIN `'._DB_PREFIX_.'mr_method_shop` ms + ON ms.`id_mr_method` = m.`id_mr_method` + WHERE c.`deleted` = 0 AND ms.`id_shop` = '.(int)$this->account_shop['id_shop']); + + $controller = version_compare(_PS_VERSION_, '1.5', '<') ? 'AdminContact' : 'AdminStores'; + + /* TODO : Fill an array with admi controller name */ + $this->context->smarty->assign(array( + 'MR_token_admin_performance' => Tools::getAdminToken('AdminPerformance'.(int)(Tab::getIdFromClassName('AdminPerformance')).(int)($this->context->cookie->id_employee)), + 'MR_token_admin_carriers' => (version_compare(_PS_VERSION_, '1.6', '<') ? Tools::getAdminToken('AdminCarriers'.(int)(Tab::getIdFromClassName('AdminCarriers')).(int)$this->context->employee->id) : Tools::getAdminToken('AdminCarrierWizard'.(int)(Tab::getIdFromClassName('AdminCarrierWizard')).(int)$this->context->employee->id)), + 'MR_token_admin_contact' => array( + 'controller_name' => $controller, + 'token' => Tools::getAdminToken($controller.(int)(Tab::getIdFromClassName($controller)).(int)$this->context->employee->id)), + 'MR_token_admin_mondialrelay' => Tools::getAdminToken('AdminMondialRelay'.(int)(Tab::getIdFromClassName('AdminMondialRelay')).(int)$this->context->employee->id), + 'MR_token_admin_module' => Tools::getAdminToken('AdminModules'.(int)(Tab::getIdFromClassName('AdminModules')).(int)$this->context->employee->id), + 'MR_enseigne_webservice' => Tools::getValue('MR_enseigne_webservice') ? Tools::getValue('MR_enseigne_webservice') : $this->account_shop['MR_ENSEIGNE_WEBSERVICE'], + 'MR_code_marque' => Tools::getValue('MR_code_marque') ? Tools::getValue('MR_code_marque') : $this->account_shop['MR_CODE_MARQUE'], + 'MR_webservice_key' => Tools::getValue('MR_webservice_key') ? Tools::getValue('MR_webservice_key') : $this->account_shop['MR_KEY_WEBSERVICE'], + 'MR_available_languages' => Language::getLanguages(), + 'MR_selected_language' => $this->account_shop['MR_LANGUAGE'], + 'MR_weight_coefficient' => Tools::getValue('MR_weight_coefficient') ? Tools::getValue('MR_weight_coefficient') : $this->account_shop['MR_WEIGHT_COEFFICIENT'], + 'MR_PS_WEIGHT_UNIT' => Configuration::get('PS_WEIGHT_UNIT'), + 'MR_order_states_list' => OrderState::getOrderStates($this->context->language->id), + 'MR_MONDIAL_RELAY_ORDER_STATE' => Configuration::get('MONDIAL_RELAY_ORDER_STATE'), + 'MR_CRON_URL' => Tools::getHttpHost(true, true)._MODULE_DIR_.$this->name.'/cron.php?secure_key='.Configuration::get('MONDIAL_RELAY_SECURE_KEY'), + 'MR_name' => Tools::getValue('MR_name') ? Tools::getValue('MR_name') : '', + 'MR_carriers_list' => $carriers_list, + 'MR_error_list' => $this->_postErrors, + 'MR_form_action' => $post_action, + 'MR_PS_ADMIN_IMG_' => _PS_ADMIN_IMG_, + 'MR_tab_selected' => Tools::getValue('MR_tab_name') ? Tools::getValue('MR_tab_name') : (MondialRelay::isAccountSet() ? 'account_form' : 'info_form'), + 'MR_delay' => Tools::getValue('MR_delay') ? Tools::getValue('MR_delay') : '', + 'MR_local_path' => MondialRelay::$modulePath, + 'MR_upgrade_detail' => $this->upgrade_detail, + 'MR_unit_weight_used' => Configuration::get('PS_WEIGHT_UNIT'), + 'MR_account_set' => MondialRelay::isAccountSet(), + 'MR_base_dir' => MondialRelay::$moduleURL, + 'MR_MONDIAL_RELAY_MODE' => Configuration::get('MONDIAL_RELAY_MODE'), + ) + ); + return $this->fetchTemplate('/views/templates/admin/', 'configuration'); + } + + /** + * Add new carrier + * + * @param $name + * @param $delay + * @return bool|int + */ + private function addCarrier($name, $delay) + { + $ret = false; + + if(empty($name)){ + return false; + } + if(empty($delay)){ + return false; + } + + if (($carrier = new Carrier())) + { + $delay_lang = array(); + foreach (Language::getLanguages(false) as $lang) + $delay_lang[$lang['id_lang']] = $delay; + $carrier->name = $name; + $carrier->active = 1; + $carrier->range_behavior = 1; + $carrier->need_range = 1; + $carrier->external_module_name = 'mondialrelay'; + $carrier->shipping_method = 1; + $carrier->delay = $delay_lang; + $carrier->is_module = version_compare(_PS_VERSION_, '1.4', '<') ? 0 : 1; + + $ret = $carrier->add(); + } + return $ret ? $carrier->id : false; + } + + public function displayInfoByCart($id_cart) + { + $html = '

'; + $simpleresul = Db::getInstance()->executeS(' + SELECT * FROM '._DB_PREFIX_.'mr_selected + WHERE id_cart='.(int)($id_cart)); + + if (isset($simpleresul[0])) + { + if (trim($simpleresul[0]['exp_number']) != '') + $html .= $this->l('Nb expedition:').$simpleresul[0]['exp_number'].'
'; + if (trim($simpleresul[0]['url_etiquette']) != '') + $html .= ''.$this->l('Label URL').'
'; + if (trim($simpleresul[0]['url_suivi']) != '') + $html .= ''.$this->l('Follow-up URL').'
'; + if (trim($simpleresul[0]['MR_Selected_Num']) != '') + $html .= $this->l('Nb Point Relay :').$simpleresul[0]['MR_Selected_Num'].'
'; + if (trim($simpleresul[0]['MR_Selected_LgAdr1']) != '') + $html .= $simpleresul[0]['MR_Selected_LgAdr1'].'
'; + if (trim($simpleresul[0]['MR_Selected_LgAdr2']) != '') + $html .= $simpleresul[0]['MR_Selected_LgAdr2'].'
'; + if (trim($simpleresul[0]['MR_Selected_LgAdr3']) != '') + $html .= $simpleresul[0]['MR_Selected_LgAdr3'].'
'; + if (trim($simpleresul[0]['MR_Selected_LgAdr4']) != '') + $html .= $simpleresul[0]['MR_Selected_LgAdr4'].'
'; + if (trim($simpleresul[0]['MR_Selected_CP']) != '') + $html .= $simpleresul[0]['MR_Selected_CP'].' '; + if (trim($simpleresul[0]['MR_Selected_Ville']) != '') + $html .= $simpleresul[0]['MR_Selected_Ville'].'
'; + if (trim($simpleresul[0]['MR_Selected_Pays']) != '') + $html .= $simpleresul[0]['MR_Selected_Pays'].'
'; + } + $html .= '

'; + return $html; + } + + /** + * Set necessaries values to the created carrier + * + * @param $id_carrier + * @param $dlv_mode + * @return bool + */ + private function addDefaultCarrierValue($id_carrier, $dlv_mode) + { + $weight_coef = $this->account_shop['MR_WEIGHT_COEFFICIENT']; + + /* Default Range value depending of the delivery mode */ + $range_weight = array( + '24R' => array(0, 30000 / $weight_coef), + 'DRI' => array(30000 / $weight_coef, 130000 / $weight_coef), + 'LD1' => array(0, 60000 / $weight_coef), + 'HOM' => array(0, 60000 / $weight_coef), + 'LDS' => array(30000 / $weight_coef, 130000 / $weight_coef) + ); + + /* Set range weight for a dlv_mode */ + if (!Db::getInstance()->execute( + 'INSERT INTO `'._DB_PREFIX_.'range_weight` + (`id_carrier`, `delimiter1`, `delimiter2`) + VALUES ('.(int)$id_carrier.', '.$range_weight[$dlv_mode][0].', '.$range_weight[$dlv_mode][1].')')) + { + $this->_postErrors[] = $this->l('Range weight can\'t be added'); + return false; + } + + $range_weight_id = Db::getInstance()->Insert_ID(); + + /* Set a range price */ + if (!Db::getInstance()->execute( + 'INSERT INTO `'._DB_PREFIX_.'range_price` + (`id_carrier`, `delimiter1`, `delimiter2`) + VALUES ('.(int)$id_carrier.', 0.000000, 10000.000000)')) + { + $this->_postErrors[] = $this->l('Range price can\'t be added'); + return false; + } + + $range_price_id = Db::getInstance()->Insert_ID(); + + $groups = Group::getGroups(Configuration::get('PS_LANG_DEFAULT')); + foreach ($groups as $group) + if (!Db::getInstance()->execute( + 'INSERT INTO `'._DB_PREFIX_.'carrier_group` + (id_carrier, id_group) + VALUES('.(int)$id_carrier.', '.(int)($group['id_group']).')')) + { + $this->_postErrors[] = $this->l('Default zone can\'t be added'); + return false; + } + + /* Set default zone */ + $zones = Zone::getZones(); + foreach ($zones as $zone) + { + if (!Db::getInstance()->execute( + 'INSERT INTO `'._DB_PREFIX_.'carrier_zone` + (id_carrier, id_zone) + VALUES('.(int)$id_carrier.', '.(int)($zone['id_zone']).')') || + !Db::getInstance()->execute( + 'INSERT INTO `'._DB_PREFIX_.'delivery` + (id_carrier, id_range_price, id_range_weight, id_zone, price) + VALUES('.(int)$id_carrier.', '.(int)($range_price_id).', NULL,'.(int)($zone['id_zone']).', 0.00)') || + !Db::getInstance()->execute( + 'INSERT INTO `'._DB_PREFIX_.'delivery` + (id_carrier, id_range_price, id_range_weight, id_zone, price) + VALUES('.(int)$id_carrier.', NULL, '.(int)($range_weight_id).','.(int)($zone['id_zone']).', 0.00)')) + { + $this->_postErrors[] = $this->l('Carrier zone or delivery data can\'t be added'); + return false; + } + } + return true; + } + + /** + * Add new shipping method + * + * @return bool + */ + private function addShippingMethod() + { + /* Insert new carrier for under Prestashop */ + if (!($id_carrier = $this->addCarrier(Tools::getValue('MR_name'), Tools::getValue('MR_delay')))) + { + $this->_postErrors[] = $this->l('Carrier can\'t be created in PrestaShop'); + return false; + } + + $fields = $_POST; + + unset($fields['submit_add_shipping'], $fields['MR_tab_name'], $fields['tab'], $fields['MR_delay']); + + /* Force col mod to CCC */ + $fields['col_mode'] = 'CCC'; + $fields['id_carrier'] = $id_carrier; + $fields['is_deleted'] = 0; + + $query = 'INSERT INTO `'._DB_PREFIX_.'mr_method` (%s) VALUES(%s)'; + + $keys = array(); + $values = array(); + foreach ($fields as $key => $value) + { + $keys[] = '`'.str_replace('MR_', '', $key).'`'; + $values[] = '\''.(is_array($value) ? pSQL(implode(',', $value)) : pSQL($value)).'\''; + } + $query = sprintf($query, implode(',', $keys), implode(',', $values)); + + if (!Db::getInstance()->execute($query) || !Db::getInstance()->execute('INSERT INTO `'._DB_PREFIX_.'mr_method_shop` + (id_mr_method, id_shop) VALUES('.(int)Db::getInstance()->INSERT_ID().', '.(int)$this->account_shop['id_shop'].')')) + { + $this->l('Carrier method can\'t be added for the module'); + Db::getInstance()->execute('DELETE FROM `'._DB_PREFIX_.'carrier` WHERE id_carrier='.(int)$id_carrier); + return false; + } + return $this->addDefaultCarrierValue($id_carrier, $fields['MR_dlv_mode']); + } + + /** + * Disable carrier instead of delete to keep history + * + * @param $id_mr_method + */ + public function disableCarrier($id_mr_method) + { + if (($id_carrier = Db::getInstance()->getValue( + 'SELECT `id_carrier` + FROM `'._DB_PREFIX_.'mr_method` + WHERE `id_mr_method` = '.(int)($id_mr_method))) && + Db::getInstance()->execute( + 'UPDATE `'._DB_PREFIX_.'carrier` c, `'._DB_PREFIX_.'mr_method` m + SET c.`active` = 0, c.`deleted` = 1, m.`is_deleted` = 1 + WHERE + c.`id_carrier` = m.`id_carrier` + AND c.`id_carrier` = '.(int)$id_carrier)) + return true; + + $this->_postErrors = $this->l('Carrier can\'t be deleted yet'); + return false; + } + + /** + * Get the followup url + * + * @param $exp_number + * @return mixed + */ + public function get_followup($exp_number) + { + $query = ' + SELECT url_suivi + FROM '._DB_PREFIX_.'mr_selected + WHERE exp_number='.(int)$exp_number; + + return Db::getInstance()->getValue($query); + } + + /** + * Get the SQL query to fetch order with mr carrier + * + * @static + * @param $id_order_state + * @param $weight_coefficient + * @return string + */ + public static function getBaseOrdersSQLQuery($id_order_state, $weight_coefficient = 0) + { + return 'SELECT o.`id_address_delivery` as id_address_delivery, + o.`id_order` as id_order, + o.`id_customer` as id_customer, + o.`id_cart` as id_cart, + o.`id_lang` as id_lang, + mrs.`id_mr_selected` as id_mr_selected, + CONCAT(c.`firstname`, " ", c.`lastname`) AS `customer`, + o.`total_paid_real` as total, o.`total_shipping` as shipping, + o.`date_add` as date, o.`id_currency` as id_currency, o.`id_lang` as id_lang, + mrs.`MR_poids` as mr_weight, + mrs.`MR_insurance` as mr_insurance, + mr.`name` as mr_Name, mrs.`MR_Selected_Num` as MR_Selected_Num, + mrs.`MR_Selected_Pays` as MR_Selected_Pays, mrs.`exp_number` as exp_number, + mr.`col_mode` as mr_ModeCol, mr.`dlv_mode` as mr_ModeLiv, mr.`insurance` as mr_ModeAss, + ROUND(SUM(odt.`product_weight` * odt.`product_quantity`) * '.(int)$weight_coefficient.') AS "order_weight" + FROM + `'._DB_PREFIX_.'orders` o + LEFT JOIN + `'._DB_PREFIX_.'carrier` ca + ON (ca.`id_carrier` = o.`id_carrier`) + LEFT JOIN + `'._DB_PREFIX_.'mr_selected` mrs + ON (mrs.`id_cart` = o.`id_cart`) + LEFT JOIN + `'._DB_PREFIX_.'mr_method` mr + ON (mr.`id_carrier` = ca.`id_carrier`) + LEFT JOIN + `'._DB_PREFIX_.'customer` c + ON (c.`id_customer` = o.`id_customer`) + LEFT JOIN + `'._DB_PREFIX_.'order_detail` odt + ON odt.`id_order` = o.`id_order` + WHERE ( + SELECT moh.`id_order_state` + FROM `'._DB_PREFIX_.'order_history` moh + WHERE moh.`id_order` = o.`id_order` + ORDER BY moh.`date_add` DESC LIMIT 1) = '.(int)($id_order_state).' + AND o.`id_order` = mrs.`id_order`'; + } + + /** + * Get orders details to create Tickets + * + * @static + * @param array $orderIdList + * @param int $filterEntries + * @param int $weight_coefficient + * @return array + */ + public static function getOrders($orderIdList = array(), $filterEntries = MondialRelay::NO_FILTER, $weight_coefficient = 0) + { + $account_shop = MondialRelay::getAccountDetail(); + $id_order_state = $account_shop['MR_ORDER_STATE']; + $sql = MondialRelay::getBaseOrdersSQLQuery($id_order_state, $weight_coefficient); + + if (count($orderIdList)) + { + $sql .= ' AND o.id_order IN ('; + foreach ($orderIdList as $id_order) + $sql .= (int)$id_order.', '; + $sql = rtrim($sql, ', ').')'; + } + switch ($filterEntries) + { + case MondialRelay::WITHOUT_HOME_DELIVERY: + $sql .= 'AND mr.mr_ModeLiv != "LD1" AND mr.mr_ModeLiv != "LDS" AND mr.mr_ModeLiv != "HOM"'; + break; + } + $sql .= ' + GROUP BY o.`id_order` + ORDER BY o.`date_add` ASC'; + return Db::getInstance()->executeS($sql); + } + + /** + * Get Mondialrelay error code + * + * @param $code + * @return string + */ + public function getErrorCodeDetail($code) + { + include(dirname(__FILE__).'/errorCode.php'); + if (isset($statCode[$code])) + return $statCode[$code]; + return $this->l('This error isn\'t referred : ').$code; + } + + /** + * @param $id_cart + * @return mixed + */ + public function getRelayPointSelected($id_cart) + { + return Db::getInstance()->getRow(' + SELECT s.`MR_selected_num` + FROM `'._DB_PREFIX_.'mr_selected` s + WHERE s.`id_cart` = '.(int)$id_cart); + } + + /** + * @param $id_carrier + * @return mixed + */ + public function isMondialRelayCarrier($id_carrier) + { + return Db::getInstance()->getRow(' + SELECT m.`id_mr_method` + FROM `'._DB_PREFIX_.'mr_method` m + WHERE `id_carrier` = '.(int)$id_carrier); + } + + public function getMethodValueByIdCarier($id_carrier, $key) + { + $content = Db::getInstance()->executeS( + 'SELECT * + FROM `'._DB_PREFIX_.'mr_method` m + WHERE `id_carrier` = '.(int)$id_carrier); + + return isset($content[$key]) ? $content[$key] : ''; + } + + public function checkAJAX() + { + /* Avoid loop inclusion */ + static $is_included = false; + + /* TODO : Find a way to use it on front */ + if (isset($_SERVER['HTTP_X_REQUESTED_WITH']) && Tools::strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) == 'xmlhttprequest') + if (Tools::getValue('mrtoken') && !$is_included) + { + $is_included = true; + include(dirname(__FILE__).'/ajax.php'); + exit(0); + } + } } diff --git a/sql/index.php b/sql/index.php index fc4110f..087b026 100644 --- a/sql/index.php +++ b/sql/index.php @@ -27,10 +27,10 @@ header("Expires: Mon, 26 Jul 1997 05:00:00 GMT"); header("Last-Modified: ".gmdate("D, d M Y H:i:s")." GMT"); - + header("Cache-Control: no-store, no-cache, must-revalidate"); header("Cache-Control: post-check=0, pre-check=0", false); header("Pragma: no-cache"); - + header("Location: ../"); exit; \ No newline at end of file diff --git a/sql/mrInstall.sql b/sql/mrInstall.sql index 0d3cb5b..b63ebe0 100644 --- a/sql/mrInstall.sql +++ b/sql/mrInstall.sql @@ -6,7 +6,7 @@ CREATE TABLE IF NOT EXISTS `PREFIX_mr_method` ( `dlv_mode` varchar(3) NOT NULL, `insurance` varchar(3) NOT NULL DEFAULT '0', `id_carrier` int(10) NOT NULL, - `is_deleted` int(10) NOT NULL, + `is_deleted` int(10) NOT NULL DEFAULT '0', PRIMARY KEY (`id_mr_method`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1; diff --git a/upgrade/index.php b/upgrade/index.php index fc4110f..087b026 100644 --- a/upgrade/index.php +++ b/upgrade/index.php @@ -27,10 +27,10 @@ header("Expires: Mon, 26 Jul 1997 05:00:00 GMT"); header("Last-Modified: ".gmdate("D, d M Y H:i:s")." GMT"); - + header("Cache-Control: no-store, no-cache, must-revalidate"); header("Cache-Control: post-check=0, pre-check=0", false); header("Pragma: no-cache"); - + header("Location: ../"); exit; \ No newline at end of file diff --git a/upgrade/install-1.8.0.php b/upgrade/install-1.8.0.php index 7d99093..3d16016 100644 --- a/upgrade/install-1.8.0.php +++ b/upgrade/install-1.8.0.php @@ -28,103 +28,103 @@ /* File Example for upgrade */ if (!defined('_PS_VERSION_')) - exit; + exit; /* object module ($this) available */ function upgrade_module_1_8_0($object) { - $upgrade_version = '1.8.0'; - - $object->upgrade_detail[$upgrade_version] = array(); - - /* Add new table to handle multi-shop for a carrier */ - $query = ' - CREATE TABLE IF NOT EXISTS `'._DB_PREFIX_.'mr_method_shop` ( - `id_mr_method_shop` int(10) unsigned NOT NULL auto_increment, - `id_mr_method` int(10) unsigned NOT NULL, - `id_shop` int(10) unsigned NOT NULL, - PRIMARY KEY (`id_mr_method_shop`) - ) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1;'; - - if (!Db::getInstance()->execute($query)) - $object->upgrade_detail[$upgrade_version][] = $object->l('Can\'t create method shop table'); - - /* Refacto name */ - $query = ' - ALTER TABLE `'._DB_PREFIX_.'mr_method` CHANGE `id_mr_method` `id_mr_method` INT( 10 ) UNSIGNED NOT NULL AUTO_INCREMENT , - CHANGE `mr_Name` `name` VARCHAR( 255 ) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL , - CHANGE `mr_Pays_list` `country_list` VARCHAR( 1000 ) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL , - CHANGE `mr_ModeCol` `col_mode` VARCHAR( 3 ) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL , - CHANGE `mr_ModeLiv` `dlv_mode` VARCHAR( 3 ) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL , - CHANGE `mr_ModeAss` `insurance` VARCHAR( 3 ) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT \'0\', - CHANGE `id_carrier` `id_carrier` INT( 10 ) NOT NULL'; - - if (!Db::getInstance()->execute($query)) - $object->upgrade_detail[$upgrade_version][] = $object->l('Can\'t change name of the method table'); - - $query = 'RENAME TABLE `'._DB_PREFIX_.'mr_historique` TO `'._DB_PREFIX_.'mr_history`'; - - if (!Db::getInstance()->execute($query)) - $object->upgrade_detail[$upgrade_version][] = $object->l('Can\'t rename the history table'); - - $object->account_shop['MR_ENSEIGNE_WEBSERVICE'] = Configuration::get('MR_ENSEIGNE_WEBSERVICE'); - $object->account_shop['MR_CODE_MARQUE'] = Configuration::get('MR_CODE_MARQUE'); - $object->account_shop['MR_KEY_WEBSERVICE'] = Configuration::get('MR_KEY_WEBSERVICE'); - $object->account_shop['MR_LANGUAGE'] = Configuration::get('MR_LANGUAGE'); - $object->account_shop['MR_WEIGHT_COEFFICIENT'] = Configuration::get('MR_WEIGHT_COEF'); - $object->account_shop['MR_ORDER_STATE'] = Configuration::get('MONDIAL_RELAY_ORDER_STATE'); - $object->updateAccountShop(); - - Configuration::deleteByName('MONDIAL_RELAY_INSTALL_UPDATE'); - Configuration::deleteByName('MONDIAL_RELAY_ORDER_STATE'); - Configuration::deleteByName('MR_ENSEIGNE_WEBSERVICE'); - Configuration::deleteByName('MR_CODE_MARQUE'); - Configuration::deleteByName('MR_KEY_WEBSERVICE'); - Configuration::deleteByName('MR_WEIGHT_COEF'); - Configuration::deleteByName('MR_LANGUAGE'); - Configuration::deleteByName('MONDIAL_RELAY_1_4'); - Configuration::deleteByName('MONDIAL_RELAY_INSTALL_UPDATE_1'); - - Configuration::updateValue('MONDIAL_RELAY', $upgrade_version); - - $methods = Db::getInstance()->executeS('SELECT * FROM `'._DB_PREFIX_.'mr_method`'); - if (count($methods)) - { - $query = ' - INSERT INTO `'._DB_PREFIX_.'mr_method_shop` - (id_mr_method, id_shop) VALUES '; - - foreach ($methods as $method) - $query .= '('.(int)$method['id_mr_method'].', '.(int)$object->account_shop['id_shop'].'),'; - $query = trim($query, ','); - if (!Db::getInstance()->execute($query)) - $object->upgrade_detail[$upgrade_version][] = $object->l('Can\'t update table mr_method_shop'); - - } - - if (!empty($object->installed_version)) - { - if ($object->installed_version < '1.4') - Db::getInstance()->execute(' - UPDATE `'._DB_PREFIX_.'carrier` - SET - `shipping_external` = 0, - `need_range` = 1, - `external_module_name` = "mondialrelay", - `shipping_method` = 1 - WHERE `id_carrier` - IN (SELECT `id_carrier` - FROM `'._DB_PREFIX_.'mr_method`)'); - } - - /* Try to register the new hook since 1.7 */ - if (!$object->isRegisteredInHook('newOrder')) - $object->registerHook('newOrder'); - if (!$object->isRegisteredInHook('BackOfficeHeader')) - $object->registerHook('BackOfficeHeader'); - - if (!$object->isRegisteredInHook('header')) - $object->registerHook('header'); - - return (bool)count($object->upgrade_detail[$upgrade_version]); + $upgrade_version = '1.8.0'; + + $object->upgrade_detail[$upgrade_version] = array(); + + /* Add new table to handle multi-shop for a carrier */ + $query = ' + CREATE TABLE IF NOT EXISTS `'._DB_PREFIX_.'mr_method_shop` ( + `id_mr_method_shop` int(10) unsigned NOT NULL auto_increment, + `id_mr_method` int(10) unsigned NOT NULL, + `id_shop` int(10) unsigned NOT NULL, + PRIMARY KEY (`id_mr_method_shop`) + ) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1;'; + + if (!Db::getInstance()->execute($query)) + $object->upgrade_detail[$upgrade_version][] = $object->l('Can\'t create method shop table'); + + /* Refacto name */ + $query = ' + ALTER TABLE `'._DB_PREFIX_.'mr_method` CHANGE `id_mr_method` `id_mr_method` INT( 10 ) UNSIGNED NOT NULL AUTO_INCREMENT , + CHANGE `mr_Name` `name` VARCHAR( 255 ) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL , + CHANGE `mr_Pays_list` `country_list` VARCHAR( 1000 ) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL , + CHANGE `mr_ModeCol` `col_mode` VARCHAR( 3 ) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL , + CHANGE `mr_ModeLiv` `dlv_mode` VARCHAR( 3 ) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL , + CHANGE `mr_ModeAss` `insurance` VARCHAR( 3 ) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL DEFAULT \'0\', + CHANGE `id_carrier` `id_carrier` INT( 10 ) NOT NULL'; + + if (!Db::getInstance()->execute($query)) + $object->upgrade_detail[$upgrade_version][] = $object->l('Can\'t change name of the method table'); + + $query = 'RENAME TABLE `'._DB_PREFIX_.'mr_historique` TO `'._DB_PREFIX_.'mr_history`'; + + if (!Db::getInstance()->execute($query)) + $object->upgrade_detail[$upgrade_version][] = $object->l('Can\'t rename the history table'); + + $object->account_shop['MR_ENSEIGNE_WEBSERVICE'] = Configuration::get('MR_ENSEIGNE_WEBSERVICE'); + $object->account_shop['MR_CODE_MARQUE'] = Configuration::get('MR_CODE_MARQUE'); + $object->account_shop['MR_KEY_WEBSERVICE'] = Configuration::get('MR_KEY_WEBSERVICE'); + $object->account_shop['MR_LANGUAGE'] = Configuration::get('MR_LANGUAGE'); + $object->account_shop['MR_WEIGHT_COEFFICIENT'] = Configuration::get('MR_WEIGHT_COEF'); + $object->account_shop['MR_ORDER_STATE'] = Configuration::get('MONDIAL_RELAY_ORDER_STATE'); + $object->updateAccountShop(); + + Configuration::deleteByName('MONDIAL_RELAY_INSTALL_UPDATE'); + Configuration::deleteByName('MONDIAL_RELAY_ORDER_STATE'); + Configuration::deleteByName('MR_ENSEIGNE_WEBSERVICE'); + Configuration::deleteByName('MR_CODE_MARQUE'); + Configuration::deleteByName('MR_KEY_WEBSERVICE'); + Configuration::deleteByName('MR_WEIGHT_COEF'); + Configuration::deleteByName('MR_LANGUAGE'); + Configuration::deleteByName('MONDIAL_RELAY_1_4'); + Configuration::deleteByName('MONDIAL_RELAY_INSTALL_UPDATE_1'); + + Configuration::updateValue('MONDIAL_RELAY', $upgrade_version); + + $methods = Db::getInstance()->executeS('SELECT * FROM `'._DB_PREFIX_.'mr_method`'); + if (count($methods)) + { + $query = ' + INSERT INTO `'._DB_PREFIX_.'mr_method_shop` + (id_mr_method, id_shop) VALUES '; + + foreach ($methods as $method) + $query .= '('.(int)$method['id_mr_method'].', '.(int)$object->account_shop['id_shop'].'),'; + $query = trim($query, ','); + if (!Db::getInstance()->execute($query)) + $object->upgrade_detail[$upgrade_version][] = $object->l('Can\'t update table mr_method_shop'); + + } + + if (!empty($object->installed_version)) + { + if ($object->installed_version < '1.4') + Db::getInstance()->execute(' + UPDATE `'._DB_PREFIX_.'carrier` + SET + `shipping_external` = 0, + `need_range` = 1, + `external_module_name` = "mondialrelay", + `shipping_method` = 1 + WHERE `id_carrier` + IN (SELECT `id_carrier` + FROM `'._DB_PREFIX_.'mr_method`)'); + } + + /* Try to register the new hook since 1.7 */ + if (!$object->isRegisteredInHook('newOrder')) + $object->registerHook('newOrder'); + if (!$object->isRegisteredInHook('BackOfficeHeader')) + $object->registerHook('BackOfficeHeader'); + + if (!$object->isRegisteredInHook('header')) + $object->registerHook('header'); + + return (bool)count($object->upgrade_detail[$upgrade_version]); } \ No newline at end of file diff --git a/upgrade/install-1.8.3.php b/upgrade/install-1.8.3.php index d416e1c..6d500a6 100644 --- a/upgrade/install-1.8.3.php +++ b/upgrade/install-1.8.3.php @@ -26,20 +26,20 @@ */ if (!defined('_PS_VERSION_')) - exit; + exit; /** * object module available */ function upgrade_module_1_8_3($object) { - $upgrade_version = '1.8.3'; + $upgrade_version = '1.8.3'; - $object->upgrade_detail[$upgrade_version] = array(); + $object->upgrade_detail[$upgrade_version] = array(); - if (!Db::getInstance()->execute('ALTER TABLE `'._DB_PREFIX_.'mr_method` ADD `is_deleted` INT NOT NULL')) - $object->upgrade_detail[$upgrade_version][] = $object->l('Can\'t add new field in methodtable'); + if (!Db::getInstance()->execute('ALTER TABLE `'._DB_PREFIX_.'mr_method` ADD `is_deleted` INT NOT NULL')) + $object->upgrade_detail[$upgrade_version][] = $object->l('Can\'t add new field in methodtable'); - Configuration::updateValue('MONDIAL_RELAY', $upgrade_version); - return (bool)count($object->upgrade_detail[$upgrade_version]); + Configuration::updateValue('MONDIAL_RELAY', $upgrade_version); + return (bool)count($object->upgrade_detail[$upgrade_version]); } \ No newline at end of file diff --git a/upgrade/install-2.0.6.php b/upgrade/install-2.0.6.php index ff4f9fd..cb4050a 100644 --- a/upgrade/install-2.0.6.php +++ b/upgrade/install-2.0.6.php @@ -26,23 +26,23 @@ */ if (!defined('_PS_VERSION_')) - exit; + exit; /** * object module available */ function upgrade_module_2_0_6($object) { - $upgrade_version = '2.0.6'; + $upgrade_version = '2.0.6'; - $object->upgrade_detail[$upgrade_version] = array(); + $object->upgrade_detail[$upgrade_version] = array(); - try { - if (!Db::getInstance()->execute('ALTER TABLE `'._DB_PREFIX_.'mr_selected` ADD `MR_insurance` INT( 11 ) NOT NULL AFTER `MR_poids`')) - $object->upgrade_detail[$upgrade_version][] = $object->l('Can\'t add new field in methodtable'); - } - catch (Exception $e) { } - - Configuration::updateValue('MONDIAL_RELAY', $upgrade_version); - return (bool)count($object->upgrade_detail[$upgrade_version]); + try { + if (!Db::getInstance()->execute('ALTER TABLE `'._DB_PREFIX_.'mr_selected` ADD `MR_insurance` INT( 11 ) NOT NULL AFTER `MR_poids`')) + $object->upgrade_detail[$upgrade_version][] = $object->l('Can\'t add new field in methodtable'); + } + catch (Exception $e) { } + + Configuration::updateValue('MONDIAL_RELAY', $upgrade_version); + return (bool)count($object->upgrade_detail[$upgrade_version]); } \ No newline at end of file diff --git a/upgrade/install-2.1.7.php b/upgrade/install-2.1.7.php new file mode 100644 index 0000000..99e7099 --- /dev/null +++ b/upgrade/install-2.1.7.php @@ -0,0 +1,31 @@ +upgrade_detail[$upgrade_version] = array(); + + try { + // return false si erreur + if (!Db::getInstance()->execute('ALTER TABLE `'._DB_PREFIX_.'mr_method` ALTER `is_deleted` SET DEFAULT "0"')) + $object->upgrade_detail[$upgrade_version][] = $object->l('Can\'t add new field in methodtable'); + + return Configuration::updateValue('MONDIAL_RELAY', $upgrade_version); + } + catch (Exception $e) { + return false; + } +} \ No newline at end of file diff --git a/views/index.php b/views/index.php index 0bfbc8e..fa0395b 100644 --- a/views/index.php +++ b/views/index.php @@ -27,10 +27,10 @@ header("Expires: Mon, 26 Jul 1997 05:00:00 GMT"); header("Last-Modified: ".gmdate("D, d M Y H:i:s")." GMT"); - + header("Cache-Control: no-store, no-cache, must-revalidate"); header("Cache-Control: post-check=0, pre-check=0", false); header("Pragma: no-cache"); - + header("Location: ../"); exit; \ No newline at end of file diff --git a/views/templates/admin/index.php b/views/templates/admin/index.php index 4deda52..9cf60e3 100644 --- a/views/templates/admin/index.php +++ b/views/templates/admin/index.php @@ -27,10 +27,10 @@ header("Expires: Mon, 26 Jul 1997 05:00:00 GMT"); header("Last-Modified: ".gmdate("D, d M Y H:i:s")." GMT"); - + header("Cache-Control: no-store, no-cache, must-revalidate"); header("Cache-Control: post-check=0, pre-check=0", false); header("Pragma: no-cache"); - + header("Location: ../"); exit; \ No newline at end of file diff --git a/views/templates/front/checkout_process.tpl b/views/templates/front/checkout_process.tpl index e221b9e..384c326 100644 --- a/views/templates/front/checkout_process.tpl +++ b/views/templates/front/checkout_process.tpl @@ -24,15 +24,22 @@ * International Registered Trademark & Property of PrestaShop SA *} + + {*if $MR_Data.PS_VERSION >= '1.5' && !$MR_Data.carrier} {l s='Mondial relay can\'t fetch any replay point due to prestashop error' mod='mondialrelay'} -{/if*} \ No newline at end of file +{/if*} diff --git a/views/templates/front/checkout_process_widget.tpl b/views/templates/front/checkout_process_widget.tpl index 7eaee98..ef98f71 100644 --- a/views/templates/front/checkout_process_widget.tpl +++ b/views/templates/front/checkout_process_widget.tpl @@ -23,12 +23,17 @@ * @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0) * International Registered Trademark & Property of PrestaShop SA *} + + + @@ -49,5 +49,6 @@ + diff --git a/views/templates/front/header_widget.tpl b/views/templates/front/header_widget.tpl index 040c1bd..95f8ecc 100644 --- a/views/templates/front/header_widget.tpl +++ b/views/templates/front/header_widget.tpl @@ -29,6 +29,7 @@ {/if} + @@ -48,4 +49,4 @@ PS_MRTranslationList['errorSelection'] = "{l s='Please choose a relay point' mod='mondialrelay' js=1}"; PS_MRTranslationList['openingRelay'] = "{l s='Opening hours' mod='mondialrelay' js=1}"; PS_MRTranslationList['moreDetails'] = "{l s='More details' mod='mondialrelay' js=1}"; - \ No newline at end of file + diff --git a/views/templates/front/index.php b/views/templates/front/index.php index 7752dc5..21075f4 100644 --- a/views/templates/front/index.php +++ b/views/templates/front/index.php @@ -26,10 +26,10 @@ header("Expires: Mon, 26 Jul 1997 05:00:00 GMT"); header("Last-Modified: ".gmdate("D, d M Y H:i:s")." GMT"); - + header("Cache-Control: no-store, no-cache, must-revalidate"); header("Cache-Control: post-check=0, pre-check=0", false); header("Pragma: no-cache"); - + header("Location: ../"); exit; \ No newline at end of file diff --git a/views/templates/index.php b/views/templates/index.php index fc4110f..087b026 100644 --- a/views/templates/index.php +++ b/views/templates/index.php @@ -27,10 +27,10 @@ header("Expires: Mon, 26 Jul 1997 05:00:00 GMT"); header("Last-Modified: ".gmdate("D, d M Y H:i:s")." GMT"); - + header("Cache-Control: no-store, no-cache, must-revalidate"); header("Cache-Control: post-check=0, pre-check=0", false); header("Pragma: no-cache"); - + header("Location: ../"); exit; \ No newline at end of file

'; - $simpleresul = Db::getInstance()->executeS(' - SELECT * FROM '._DB_PREFIX_.'mr_selected - WHERE id_cart='.(int)($id_cart)); - - if (isset($simpleresul[0])) - { - if (trim($simpleresul[0]['exp_number']) != '') - $html .= $this->l('Nb expedition:').$simpleresul[0]['exp_number'].'
'; - if (trim($simpleresul[0]['url_etiquette']) != '') - $html .= '
'.$this->l('Label URL').'
'; - if (trim($simpleresul[0]['url_suivi']) != '') - $html .= ''.$this->l('Follow-up URL').'
'; - if (trim($simpleresul[0]['MR_Selected_Num']) != '') - $html .= $this->l('Nb Point Relay :').$simpleresul[0]['MR_Selected_Num'].'
'; - if (trim($simpleresul[0]['MR_Selected_LgAdr1']) != '') - $html .= $simpleresul[0]['MR_Selected_LgAdr1'].'
'; - if (trim($simpleresul[0]['MR_Selected_LgAdr2']) != '') - $html .= $simpleresul[0]['MR_Selected_LgAdr2'].'
'; - if (trim($simpleresul[0]['MR_Selected_LgAdr3']) != '') - $html .= $simpleresul[0]['MR_Selected_LgAdr3'].'
'; - if (trim($simpleresul[0]['MR_Selected_LgAdr4']) != '') - $html .= $simpleresul[0]['MR_Selected_LgAdr4'].'
'; - if (trim($simpleresul[0]['MR_Selected_CP']) != '') - $html .= $simpleresul[0]['MR_Selected_CP'].' '; - if (trim($simpleresul[0]['MR_Selected_Ville']) != '') - $html .= $simpleresul[0]['MR_Selected_Ville'].'
'; - if (trim($simpleresul[0]['MR_Selected_Pays']) != '') - $html .= $simpleresul[0]['MR_Selected_Pays'].'
'; - } - $html .= '