/** * Module configuration request processing **/ public function _postProcess() { global $smarty; $errors = array(); $method = Tools::getValue('method'); if ($method == 'signin') { $djlUtil = new DejalaUtils(); $this->dejalaConfig->mode = 'TEST'; $this->dejalaConfig->login = Tools::getValue('login'); $this->dejalaConfig->password = Tools::getValue('password'); $this->dejalaConfig->country = Tools::getValue('country'); $this->dejalaConfig->serviceURL = str_replace('.fr', '.' . $this->dejalaConfig->country, $this->dejalaConfig->serviceURL); $this->dejalaConfig->sandboxServiceURL = str_replace('.fr', '.' . $this->dejalaConfig->country, $this->dejalaConfig->sandboxServiceURL); $storeAttr = array(); $response = $djlUtil->ping($this->dejalaConfig, 'TEST'); if ($response['status'] == 200) { $this->dejalaConfig->saveConfig(); } else { if ($response['status'] == 401) { $errors[] = $this->l('An error occurred while authenticating your account on Dejala.com. Your credentials were not recognized.'); } else { $errors[] = $this->l('Unable to process the action.') . '(' . $response['status'] . ')'; } $this->dejalaConfig->login = null; $this->dejalaConfig->password = null; } } elseif ($method == 'register') { $djlUtil = new DejalaUtils(); $this->dejalaConfig->mode = 'TEST'; $this->dejalaConfig->login = Tools::getValue('login'); $this->dejalaConfig->password = Tools::getValue('password'); $this->dejalaConfig->country = Tools::getValue('country'); $this->dejalaConfig->serviceURL = str_replace('.fr', '.' . $this->dejalaConfig->country, $this->dejalaConfig->serviceURL); $this->dejalaConfig->sandboxServiceURL = str_replace('.fr', '.' . $this->dejalaConfig->country, $this->dejalaConfig->sandboxServiceURL); $this->dejalaConfig->storeUrl = Dejala::getHttpHost(true, true); $response = $djlUtil->createInstantStore($this->dejalaConfig, Tools::getValue('store_name')); if ($response['status'] == 201) { $this->dejalaConfig->saveConfig(); } elseif ($response['status'] == 409) { $errors[] = $this->l('Please choose another login'); } elseif ($response['status'] == 403) { $errors[] = $this->l('Dejala Server cannot be reached by your Prestashop server. This is most likely due to a limit set by your hosting provider. Please contact their technical support and ask if your server is authorized to initiate outbound HTTP connections.'); } else { $errors[] = $this->l('Unable to process the action.') . '(' . $response['status'] . ')'; } $this->dejalaConfig->loadConfig(); } elseif ($method == 'location') { $djlUtil = new DejalaUtils(); $response = $djlUtil->setStoreLocation($this->dejalaConfig, $_POST); if ($response['status'] != 200) { $errors[] = $this->l('An error occurred while updating location'); } } elseif ($method == 'contact') { $djlUtil = new DejalaUtils(); $response = $djlUtil->setStoreContacts($this->dejalaConfig, $_POST); if ($response['status'] != 200) { $errors[] = $this->l('An error occurred while updating contacts'); } } elseif ($method == 'processes') { $djlUtil = new DejalaUtils(); $response = $djlUtil->setStoreProcesses($this->dejalaConfig, $_POST); if ($response['status'] != 200) { $errors[] = $this->l('An error occurred while updating processes'); } } elseif ($method == 'products') { $djlUtil = new DejalaUtils(); $response = $djlUtil->setStoreProducts($this->dejalaConfig, $_POST); if ($response['status'] != 200) { $errors[] = $this->l('An error occurred while updating products'); } } elseif ($method == 'technical_options') { $maxStatuses = (int) $_POST['status_max']; if ($maxStatuses > 30) { $maxStatuses = 30; } $selectedTriggers = array(); for ($i = 0; $i < $maxStatuses; $i++) { $l_val = Tools::getValue('status_' . $i); if ($l_val) { $selectedTriggers[] = $l_val; } } $trigerringStatuses = implode(',', $selectedTriggers); $this->dejalaConfig->trigerringStatuses = htmlentities($trigerringStatuses, ENT_COMPAT, 'UTF-8'); $this->dejalaConfig->saveConfig(); $this->dejalaConfig->loadConfig(); } elseif ($method == 'delivery_options') { $djlUtil = new DejalaUtils(); $response = $djlUtil->setStoreCalendar($this->dejalaConfig, $_POST); if ($response['status'] != 200) { $errors[] = $this->l('An error occurred while updating products'); } $m_attributes['nb_days_displayed'] = htmlentities(Tools::getValue('nb_days'), ENT_COMPAT, 'UTF-8'); $m_attributes['delivery_delay'] = htmlentities(Tools::getValue('delivery_delay'), ENT_COMPAT, 'UTF-8'); $m_attributes['delivery_partial'] = htmlentities(Tools::getValue('delivery_partial'), ENT_COMPAT, 'UTF-8'); $response = $djlUtil->setStoreAttributes($this->dejalaConfig, $m_attributes); if ($response['status'] != 200) { $errors[] = $this->l('An error occurred while updating products'); } } elseif ($method == 'golive') { $djlUtil = new DejalaUtils(); $response = $djlUtil->goLive($this->dejalaConfig, $_POST); } elseif ($method == 'switchMode') { $l_mode = Tools::getValue('mode'); if ('PROD' == $l_mode || 'TEST' == $l_mode) { $this->dejalaConfig->mode = $l_mode; $this->dejalaConfig->saveConfig(); } } elseif ($method == 'switchActive') { $l_active = Tools::getValue('visibility_status'); if ($l_active == "visible" || $l_active == "invisible") { $this->dejalaConfig->visibility_status = $l_active; $this->dejalaConfig->saveConfig(); } if ($l_active == "visible_limited") { $l_active_list = Tools::getValue('visible_users_list'); if ($l_active_list == "") { $this->dejalaConfig->visible_users_list = ""; $this->dejalaConfig->saveConfig(); $errors[] = $this->l('You must provide at least one email address to restrict Dejala\'s visibility.'); } else { $this->dejalaConfig->visibility_status = $l_active; $this->dejalaConfig->visible_users_list = $l_active_list; $this->dejalaConfig->saveConfig(); } } } else { $errors[] = $this->l('Unable to process the action.'); } return $errors; }
<?php require_once realpath(dirname(__FILE__) . '/../../config/config.inc.php'); require_once realpath(dirname(__FILE__) . '/../../init.php'); require_once realpath(dirname(__FILE__) . '/dejala.php'); $params['cart'] = new Cart($cookie->id_cart); $djl = new Dejala(); $result = array(); $djl->hookProcessCarrier($params); echo json_encode($result);