function test_Env_ContentCategory($userData) { $result = default_value(); $start = microtime_float(); /* Initialisation */ $env = new Env_ContentCategory(array("user" => $userData["login"], "pass" => $userData["password"], "key" => $userData["api_key"])); $env->setEnv('test'); // Gather categories $env->getCategories(); // Gather contents $env->getContents(); /* Reception test */ if ($env->curlError) { $result['reception'] = max($result['reception'], ERROR); $result['reception_info'][count($result['reception_info'])] = 'Error while sending the query'; } else { if ($env->respError) { $result['reception'] = max($result['reception'], ERROR); $result['reception_info'][count($result['reception_info'])] = 'Invalid query : ' . $userData["api_key"]; foreach ($env->respErrorsList as $message) { $result['reception_info'][count($result['reception_info'])] = $message['message']; } } else { $result['reception'] = max($result['reception'], OK); $result['reception_info'][count($result['reception_info'])] = 'Reception time : ' . (microtime_float() - $start) . 's'; } } /* Additionals test */ /* Test for the result structure */ $result['additionals'][0]['name'] = 'Structure'; $result['additionals'][0]['state'] = OK; if (count($env->categories) == 0) { $result['additionals'][0]['state'] = max($result['additionals'][0]['state'], WARNING); $result['additionals'][0]['info'][count($result['additionals'][0]['info'])] = '$categories array is empty'; } else { foreach ($env->categories as $code => $category) { if (!isset($category['label'])) { $result['additionals'][0]['state'] = max($result['additionals'][0]['state'], ERROR); $result['additionals'][0]['info'][count($result['additionals'][0]['info'])] = '"label" not defined in $categories["' . $code . '"] array'; } if (!isset($category['code'])) { $result['additionals'][0]['state'] = max($result['additionals'][0]['state'], ERROR); $result['additionals'][0]['info'][count($result['additionals'][0]['info'])] = '"code" not defined in $categories["' . $code . '"] array'; } } } if (count($env->categories) == 0) { $result['additionals'][0]['state'] = max($result['additionals'][0]['state'], WARNING); $result['additionals'][0]['info'][count($result['additionals'][0]['info'])] = '$contents array is empty'; } else { foreach ($env->contents as $category => $content) { foreach ($content as $x => $line) { if (!isset($env->contents[$category][$x]['label'])) { $result['additionals'][0]['state'] = max($result['additionals'][0]['state'], ERROR); $result['additionals'][0]['info'][count($result['additionals'][0]['info'])] = '"label" not defined in $contents["' . $category . '"][' . $x . '] array'; } if (!isset($env->contents[$category][$x]['code'])) { $result['additionals'][0]['state'] = max($result['additionals'][0]['state'], ERROR); $result['additionals'][0]['info'][count($result['additionals'][0]['info'])] = '"code" not defined in $contents["' . $category . '"][' . $x . '] array'; } if (!isset($env->contents[$category][$x]['category'])) { $result['additionals'][0]['state'] = max($result['additionals'][0]['state'], ERROR); $result['additionals'][0]['info'][count($result['additionals'][0]['info'])] = '"category" not defined in $contents["' . $category . '"][' . $x . '] array'; } } } } $result['duration'] = microtime_float() - $start; return $result; }
<?php /* Ce document a pour but d'exploiter des différentes méthodes de récupération des catégories et des contenus (sous-catégories). * Vous pouvez ainsi télécharger uniquement les catégories, lister les sous-catégories pour une seule ou pour toutes les catégories. */ require_once '../utils/header.php'; error_reporting(E_ERROR | E_WARNING | E_PARSE); require_once '../utils/autoload.php'; $categoriesStyle = 'style="font-weight:bolder;"'; // Initialisation de la classe chargée de récupérer les catégories $contentCl = new Env_ContentCategory(array("user" => $userData["login"], "pass" => $userData["password"], "key" => $userData["api_key"])); // Cette méthode permet de récupérer la liste des catégories $contentCl->getCategories(); // Celle-ci charge la liste des catégories de contenus (sous-catégories) $contentCl->getContents(); // Grâce à cette méthode vous pouvez récupérer les sous-catégories d'une seule catégorie $child = $contentCl->getChild(10000); ?> <p><b>Exemple d'utilisation sur votre site</b></p> <p><label id="categories" for="categories">Sélectionnez votre catégorie</label> <select name="categories"> <option value="<?php echo $contentCl->contents[0][0]['code']; ?> "><?php echo $contentCl->contents[0][0]['label']; ?> </option> <?php foreach ($contentCl->categories as $c => $category) { ?>
/** * */ function onShippingConfigurationSave(&$element) { parent::onShippingConfigurationSave($element); if (!$this->init()) { return false; } $app = JFactory::getApplication(); $db = JFactory::getDBO(); $methods = array(); if (empty($element->shipping_params->emc_login) || empty($element->shipping_params->emc_password) || empty($element->shipping_params->api_key) || empty($element->shipping_params->sender_lastname) || empty($element->shipping_params->sender_firstname) || empty($element->shipping_params->sender_email) || empty($element->shipping_params->sender_company) || empty($element->shipping_params->sender_phone) || empty($element->shipping_params->sender_address) || empty($element->shipping_params->sender_city) || empty($element->shipping_params->sender_postcode) || empty($element->shipping_params->sender_country)) { $app->enqueueMessage(JText::sprintf('ENTER_INFO', 'Envoimoinscher', JText::_('SENDER_INFORMATIONS') . ' (' . JText::_('HIKA_LOGIN') . ', ' . JText::_('HIKA_PASSWORD') . ', ' . JText::_('FEDEX_API_KEY') . ', ' . JText::_('LASTNAME') . ', ' . JText::_('FIRSTNAME') . ', ' . JText::_('HIKA_EMAIL') . ', ' . JText::_('COMPANY') . ', ' . JText::_('TELEPHONE') . ', ' . JText::_('ADDRESS') . ', ' . JText::_('CITY') . ', ' . JText::_('POST_CODE') . ', ' . JText::_('COUNTRY') . ')')); } // TODO : Refactor ! (use JRequest...) if (isset($_REQUEST['data']['shipping_methods'])) { foreach ($_REQUEST['data']['shipping_methods'] as $method) { foreach ($this->envoimoinscher_methods as $envoimoinscherMethod) { $name = $envoimoinscherMethod['name']; if ($name == $method['name']) { $obj = new stdClass(); $methods[strip_tags($method['name'])] = strip_tags($envoimoinscherMethod['code']); } } } } else { $app->enqueueMessage(JText::sprintf('CHOOSE_SHIPPING_SERVICE')); } $element->shipping_params->methodsList = serialize($methods); // we call the function of the library to get all the product categories and we display // if (!empty($element->shipping_params->emc_login) && !empty($element->shipping_params->emc_password) && !empty($element->shipping_params->api_key)) { $contentCl = new Env_ContentCategory(array('user' => @$element->shipping_params->emc_login, 'pass' => @$element->shipping_params->emc_password, 'key' => @$element->shipping_params->api_key)); $config = hikashop_config(); $contentCl->setPlatformParams('hikashop', $config->get('version'), $config->get('version')); $contentCl->setEnv($element->shipping_params->environment); $contentCl->getCategories(); @$contentCl->getContents(); $element->shipping_params->contentCl = array('categories' => $contentCl->categories, 'contents' => $contentCl->contents); if (!empty($contentCl->curlErrorText)) { $app->enqueueMessage($contentCl->curlErrorText, 'error'); } if (!empty($contentCl->respErrorsList)) { foreach ($contentCl->respErrorsList as $err) { $app->enqueueMessage('[ ' . $err['code'] . ' ] ' . $err['message'], 'error'); } } } $czone_code = @$element->shipping_params->sender_country; if (!empty($czone_code)) { $query = 'SELECT zone_id, zone_code_2 FROM ' . hikashop_table('zone') . ' WHERE zone_namekey = ' . $db->Quote($czone_code); $db->setQuery($query); $czone = $db->loadObject(); $country = $czone->zone_code_2; if ($country == 'FX') { $country = 'FR'; } // To display the drop off points for each service in the config $lpCl = new Env_ListPoints(array('user' => $element->shipping_params->emc_login, 'pass' => $element->shipping_params->emc_password, 'key' => $element->shipping_params->api_key)); $config = hikashop_config(); $lpCl->setPlatformParams('hikashop', $config->get('version'), $config->get('version')); // environment 'test' or 'prod' $lpCl->setEnv($element->shipping_params->environment); foreach ($methods as $name => $code) { $params = array('srv_code' => $name, 'collecte' => 'exp', 'pays' => $country, 'cp' => $element->shipping_params->sender_postcode, 'ville' => $element->shipping_params->sender_city); $lpCl->getListPoints($code, $params); if (!$lpCl->curlError && !$lpCl->respError) { $element->shipping_params->envoimoinscher_dropoff[$code] = $lpCl->listPoints; unset($lpCl->listPoints); $lpCl->listPoints = array(); } } if (!empty($lpCl->curlErrorText)) { $app->enqueueMessage($lpCl->curlErrorText, 'error'); } if (!empty($lpCl->respErrorsList)) { foreach ($lpCl->respErrorsList as $err) { $app->enqueueMessage('[ ' . $err['code'] . ' ] ' . $err['message'], 'error'); } } } return true; }