Linux SRV-16 6.18.44-paas #1 SMP PREEMPT_DYNAMIC Thu Aug 13 10:08:12 UTC 2026 x86_64
/
srv
/
data
/
trash
/
vhost_www.arlenshop.fr_1556185825
/
htdocs
/
modules
/
envoimoinscher
/
Env
/
//srv/data/trash/vhost_www.arlenshop.fr_1556185825/htdocs/modules/envoimoinscher/Env/Service.php
<?php /** * 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 EnvoiMoinsCher <informationapi@boxtale.com> * @copyright 2007-2015 PrestaShop SA / 2011-2015 EnvoiMoinsCher * @license http://opensource.org/licenses/afl-3.0.php Academic Free License (AFL 3.0) * International Registred Trademark & Property of PrestaShop SA */ class Env_Service extends Env_Carrier { /** * Function loads services of all carriers. * @access public * @return Void */ public function getServices() { $this->setOptions(array('action' => '/api/v1/services')); $this->doServicesRequest(); } /** * Function executes services request and prepares the $carriers array. * @access private * @return Void */ private function doServicesRequest() { $source = $this->doRequest(); /* Uncomment if ou want to display the XML content */ /* We make sure there is an XML answer and try to parse it */ if ($source !== false) { parent::parseResponse($source); if (count($this->resp_errors_list) == 0) { /* The XML file is loaded, we now gather the datas */ $carriers = $this->xpath->query('/operators/operator'); foreach ($carriers as $c => $carrier) { $index = $c + 1; $result = $this->parseCarrierNode($carrier); $this->carriers[$result['code']] = $result; $this->carriers[$result['code']]['services'] = $this->parseServicesNode($index); } } } } /** * Getter for one carrier's code. * @access private * @return Void */ public function getServicesByCarrier($code) { if (isset($this->carriers[$code]['services'])) return $this->carriers[$code]['services']; $this->setOptions(array('action' => '/api/v1/carrier/'.$code.'/services')); $this->doServicesRequest(); } /** * Parser for service node list. * <samp> * Organisation :<br> * $return[code] => array(<br> * ['code'] => data<br> * ['label'] => data<br> * ['mode'] => data<br> * ['alert'] => data<br> * ['collection'] => data<br> * ['delivery'] => data<br> * ['is_pluggable'] => data<br> * ['options'][code] => array(<br> * ['name'] => data<br> * )<br> * ['exclusions'][id] => array(<br> * ['label'] => data<br> * )<br> * ['apiOptions'][option][option2] => data<br> * ) * </samp> * @access private * @param $c : Node index. * @return Array Array with all available informations about the service */ private function parseServicesNode($c) { $result = array(); $services = $this->xpath->query('/operators/operator['.$c.']/services/service'); foreach ($services as $service) { //$s = $se + 1; $code = $this->xpath->query('./code', $service)->item(0)->nodeValue; $result[$code] = array( 'code' => $code, 'label' => $this->xpath->query('./label', $service)->item(0)->nodeValue, 'mode' => $this->xpath->query('./mode', $service)->item(0)->nodeValue, 'alert' => $this->xpath->query('./alert', $service)->item(0)->nodeValue, 'collection' => $this->xpath->query('./collection_type', $service)->item(0)->nodeValue, 'delivery' => $this->xpath->query('./delivery_type', $service)->item(0)->nodeValue, 'is_pluggable' => ($this->xpath->query('./plug_available', $service)->item(0)->nodeValue == 'true' ? true : false) ); $options = array(); $exclusions = array(); $api_options = array(); foreach ($this->xpath->evaluate('./options/option', $service) as $option) $options[$this->xpath->evaluate('./code', $option)->item(0)->nodeValue] = $this->xpath->evaluate('./name', $option)->item(0)->nodeValue; $result[$code]['options'] = $options; foreach ($this->xpath->evaluate('./excluded_contents/contenu', $service) as $exclusion) { $label = $this->xpath->evaluate('./label', $exclusion)->item(0)->nodeValue; $exclusions[$this->xpath->evaluate('./id', $exclusion)->item(0)->nodeValue] = $label; } $result[$code]['exclusions'] = $exclusions; foreach ($this->xpath->evaluate('./api_options', $service) as $option) { $api_nodes = $this->xpath->evaluate('*', $option); for ($i = 1; $i < $api_nodes->length; $i++) { $api_node = $api_nodes->item($i); $api_node_childs = $this->xpath->evaluate('*', $api_node); $api_options[$api_node->nodeName] = array(); for ($a = 1; $a < $api_node_childs->length; $a++) { $api_options[$api_node->nodeName][$api_node_childs->item($a)->nodeName] = $api_node_childs->item($a)->nodeValue; $a++; } } $i++; } $result[$code]['apiOptions'] = $api_options; } return $result; } } ?>