<?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) {
    ?>
Example #2
0
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

include_once 'config.api.php';
//INITIALIZE CLASS CATEGORY
$contentCl = new Env_ContentCategory(array("user" => $userData["login"], "pass" => $userData["password"], "key" => $userData["api_key"]));
//RETRIEVE CATEGORY LIST
$contentCl->getCategories();
//RETRIEVE EACH SUBCATEGORY LIST
$contentCl->getContents();
//RETRIEVE SUBCATEGORY OF ONE CATEGORY
$child = $contentCl->getChild(10000);
echo json_encode($contentCl);
 /**
  *
  */
 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;
 }