public function displayViewLink($token = null, $id, $name = null) { $link = new Link(); if (!array_key_exists('View', self::$cache_lang)) { self::$cache_lang['View'] = $this->l('View', 'Helper'); } if (Module::isInstalled('agilenewsletters') and in_array($this->context->controller->table, array('agile_mail_history'))) { return '<a href="' . $link->getModuleLink('agilenewsletters', 'newsletterdetail', array('nid' => $id), true) . '" target="_new"><img src="../img/admin/details.gif" alt="' . self::$cache_lang['View'] . '" title="' . self::$cache_lang['View'] . '" /></a>'; } return parent::displayViewLink($token, $id); }
protected function toggleWebservice($force_webservice = false, $active = true) { if ($force_webservice !== false) { $cron_mode = 'webservice'; } else { $cron_mode = Tools::getValue('cron_mode', 'webservice'); $active = $cron_mode == 'advanced' ? false : true; } $link = new Link(); Configuration::updateValue('CRONJOBS_MODE', $cron_mode); $admin_folder = str_replace(_PS_ROOT_DIR_ . '/', null, _PS_ADMIN_DIR_); $path = Tools::getShopDomainSsl(true, true) . __PS_BASE_URI__ . $admin_folder; $cron_url = $path . '/' . $link->getAdminLink('AdminCronJobs', false); $webservice_id = Configuration::get('CRONJOBS_WEBSERVICE_ID') ? '/' . Configuration::get('CRONJOBS_WEBSERVICE_ID') : null; $data = array('callback' => $link->getModuleLink($this->name, 'callback'), 'cronjob' => $cron_url . '&token=' . Configuration::get('CRONJOBS_EXECUTION_TOKEN', null, 0, 0), 'cron_token' => Configuration::get('CRONJOBS_EXECUTION_TOKEN', null, 0, 0), 'active' => (int) $active); $context_options = array('http' => array('method' => is_null($webservice_id) == true ? 'POST' : 'PUT', 'content' => http_build_query($data))); $context = stream_context_create($context_options); $result = Tools::file_get_contents($this->webservice_url . $webservice_id, false, $context); Configuration::updateValue('CRONJOBS_WEBSERVICE_ID', (int) $result); if ($this->isLocalEnvironment() == true) { return true; } elseif ((Tools::isSubmit('install') == false || Tools::isSubmit('reset') == false) && (bool) $result == false) { return $this->setErrorMessage('An error occurred while trying to contact PrestaShop\'s cron tasks webservice.'); } elseif ((Tools::isSubmit('install') == true || Tools::isSubmit('reset') == true) && (bool) $result == false) { return true; } Configuration::updateValue('CRONJOBS_MODE', $cron_mode); switch ($cron_mode) { case 'advanced': return $this->setSuccessMessage('Your cron tasks have been successfully registered using the Advanced mode.'); case 'webservice': return $this->setSuccessMessage('Your cron tasks have been successfully added to PrestaShop\'s cron tasks webservice.'); default: return; } return true; }
protected function updateWebservice($use_webservice) { $link = new Link(); $admin_folder = $this->getAdminDir(); $path = Tools::getShopDomainSsl(true, true) . __PS_BASE_URI__ . $admin_folder; $cron_url = $path . '/' . $link->getAdminLink('AdminCronJobs', false); $webservice_id = Configuration::get('CRONJOBS_WEBSERVICE_ID') ? '/' . Configuration::get('CRONJOBS_WEBSERVICE_ID') : null; $data = array('callback' => $link->getModuleLink($this->name, 'callback'), 'domain' => Tools::getShopDomainSsl(true, true) . __PS_BASE_URI__, 'cronjob' => $cron_url . '&token=' . Configuration::getGlobalValue('CRONJOBS_EXECUTION_TOKEN'), 'cron_token' => Configuration::getGlobalValue('CRONJOBS_EXECUTION_TOKEN'), 'active' => (bool) $use_webservice); $context_options = array('http' => array('method' => is_null($webservice_id) == true ? 'POST' : 'PUT', 'content' => http_build_query($data))); $result = Tools::file_get_contents($this->webservice_url . $webservice_id, false, stream_context_create($context_options)); if ($result != false) { Configuration::updateValue('CRONJOBS_WEBSERVICE_ID', (int) $result); } if ((Tools::isSubmit('install') == true || Tools::isSubmit('reset') == true) && (bool) $result == false) { return true; } elseif ((Tools::isSubmit('install') == false || Tools::isSubmit('reset') == false) && (bool) $result == false) { return $this->setErrorMessage('An error occurred while trying to contact PrestaShop\'s cron tasks webservice.'); } elseif ($this->isLocalEnvironment() == true) { return true; } if ((bool) $use_webservice == true) { return $this->setSuccessMessage('Your cron tasks have been successfully added to PrestaShop\'s cron tasks webservice.'); } return $this->setSuccessMessage('Your cron tasks have been successfully registered using the Advanced mode.'); }
/** * Builds a module controller url for the language and shop. * * We created our own method due to the existing one in `LinkCore` behaving differently across PS versions. * * @param string $name the name of the module to create an url for. * @param string $path the path of the module to create an url for (PS 1.4 only). * @param string $controller the name of the controller. * @param int|null $id_lang the language ID (falls back on current context if not set). * @param int|null $id_shop the shop ID (falls back on current context if not set). * @param array $params additional params to add to the url. * @return string the url. */ public function getModuleUrl($name, $path, $controller, $id_lang = null, $id_shop = null, array $params = array()) { if (is_null($id_lang)) { $id_lang = (int) Context::getContext()->language->id; } if (is_null($id_shop)) { $id_shop = (int) Context::getContext()->shop->id; } $params['module'] = $name; $params['controller'] = $controller; if (version_compare(_PS_VERSION_, '1.5.0.0') === -1) { $params['id_lang'] = $id_lang; return $this->getBaseUrl($id_shop) . $path . 'ctrl.php?' . http_build_query($params); } elseif (version_compare(_PS_VERSION_, '1.5.5.0') === -1) { // For PS versions 1.5.0.0 - 1.5.4.1 we always hard-code the urls to be in non-friendly format and fetch // the shops base url ourselves. This is a workaround to all the bugs related to url building in these // PS versions. $params['fc'] = 'module'; $params['module'] = $name; $params['controller'] = $controller; $params['id_lang'] = $id_lang; return $this->getBaseUrl($id_shop) . 'index.php?' . http_build_query($params); } else { /** @var LinkCore $link */ $link = new Link(); return $link->getModuleLink($name, 'oauth2', $params, null, $id_lang, $id_shop); } }
echo $objItem->id_loffc_block; ?> <?php echo count($items) % 2 ? 'alt_row' : ''; ?> ">\ <td class="dragHandle"><?php echo $objItem->title[Tools::getValue('id_lang', $cookie->id_lang)]; ?> </td>\ <td class="dragHandle"><?php echo $objItem->type; ?> </td>\ <td><a class="display lofaddnew-block-item" href="<?php echo $link->getModuleLink("blockadvfooter", "popup", array('id_shop' => (int) $this->context->shop->id, 'id_loffc_block' => $objItem->id_loffc_block, 'addItem' => 1, 'bo_theme' => Tools::getValue('bo_theme'), 'id_loffc_block_item' => $objItem->id, 'id_loftr' => 'tr_0_' . $objItem->id . '_' . $objItem->id_loffc_block, 'token' => Tools::getValue('token'), 'secure_key' => $module->secure_key)); ?> " title="edit">\ <img title="edit" alt="edit" src="<?php echo _PS_ADMIN_IMG_; ?> edit.gif">\ </a>\ <a class="display" onclick="LofDelete(\'tr_0_<?php echo $objItem->id; ?> _<?php echo $objItem->id_loffc_block; ?> \',\'loftable-<?php echo $objItem->id_loffc_block;
/** * Show kwixo's payment on payment page * * @param type $params * @return boolean */ public function hookPayment($params) { if (!$this->active) { return; } $total_cart = $params['cart']->getOrderTotal(true); if (_PS_VERSION_ < '1.5') { $kwixo = new KwixoPayment(); } else { $kwixo = new KwixoPayment($params['cart']->id_shop); } if ($kwixo->getStatus() == 'test') { $customer = new Customer((int) $params['cart']->id_customer); $customer_mail = $customer->email; if (Configuration::get('KWIXO_EMAILS_TEST') != '') { $mails_test = explode(',', Configuration::get('KWIXO_EMAILS_TEST')); if (!in_array($customer_mail, $mails_test)) { KwixoLogger::insertLogKwixo(__METHOD__ . " : " . __LINE__, "L'adresse {$customer_mail} n'est pas autorisée à utiliser Kwixo en test."); KwixoLogger::insertLogKwixo(__METHOD__ . " : " . __LINE__, "Liste des adresses autorisées : " . implode(', ', $mails_test)); return false; } } } $mobile_detect = new MobileDetect(); $mobile = $mobile_detect->isMobile(); $kwixo_standard = Configuration::get('KWIXO_OPTION_STANDARD') == '1' ? '1' : '0'; $kwixo_comptant = Configuration::get('KWIXO_OPTION_COMPTANT') == '1' ? '1' : '0'; $kwixo_facturable = Configuration::get('KWIXO_OPTION_FACTURABLE') == '1' ? '1' : '0'; $kwixo_credit = Configuration::get('KWIXO_OPTION_CREDIT') == '1' && $total_cart >= 150 && $total_cart <= 4000 && !$mobile ? '1' : '0'; if (version_compare(_PS_VERSION_, '1.5', '<')) { //token security $token = Tools::getAdminToken($kwixo->getSiteid() . $kwixo->getAuthkey()); $kwixo_std_link = __PS_BASE_URI__ . 'modules/' . $this->name . '/sendtoKwixo.php?payment=1&token=' . $token; $kwixo_cpt_link = __PS_BASE_URI__ . 'modules/' . $this->name . '/sendtoKwixo.php?payment=2&token=' . $token; $kwixo_credit_link = __PS_BASE_URI__ . 'modules/' . $this->name . '/sendtoKwixo.php?payment=3&token=' . $token; $kwixo_facturable_link = __PS_BASE_URI__ . 'modules/' . $this->name . '/sendtoKwixo.php?payment=4&token=' . $token; } else { $link = new Link(); $kwixo_std_link = $link->getModuleLink('kwixo', 'payment', array('payment' => '1'), true); $kwixo_cpt_link = $link->getModuleLink('kwixo', 'payment', array('payment' => '2'), true); $kwixo_credit_link = $link->getModuleLink('kwixo', 'payment', array('payment' => '3'), true); $kwixo_facturable_link = $link->getModuleLink('kwixo', 'payment', array('payment' => '4'), true); } $this->smarty->assign(array('kwixo_standard' => $kwixo_standard, 'kwixo_comptant' => $kwixo_comptant, 'kwixo_credit' => $kwixo_credit, 'kwixo_facturable' => $kwixo_facturable, 'kwixo_std_link' => $kwixo_std_link, 'kwixo_cpt_link' => $kwixo_cpt_link, 'kwixo_credit_link' => $kwixo_credit_link, 'kwixo_facturable_link' => $kwixo_facturable_link, 'url_simul' => 'https://secure.kwixo.com/credit/calculator.htm?merchantId=' . $kwixo->getSiteId() . '&amount=' . $total_cart, 'logo_kwixo_standard' => __PS_BASE_URI__ . 'modules/' . $this->name . '/img/kwixo_standard.jpg', 'logo_kwixo_comptant' => __PS_BASE_URI__ . 'modules/' . $this->name . '/img/kwixo_comptant.jpg', 'logo_kwixo_credit' => __PS_BASE_URI__ . 'modules/' . $this->name . '/img/kwixo_credit.jpg')); return $this->display(__FILE__, '/views/templates/hook/payment_short_description.tpl'); }
/** * Show correct re_write url on BlockLanguage module * http://ps_1609_test/vn/index.php?controller=blog?id=9&fc=module&module=leoblog * $default_rewrite = array( '1' => 'http://ps_1609_test/en/blog/lang-en-b9.html', '2' => 'http://ps_1609_test/vn/blog/lang-vn-b9.html', '3' => 'http://ps_1609_test/cb/blog/lang-cb-b9.html', ); * */ public function hookDisplayBanner() { if (Module::isEnabled('blocklanguages')) { $default_rewrite = array(); $module = Validate::isModuleName(Tools::getValue('module')) ? Tools::getValue('module') : ''; $controller = Tools::getValue('controller'); if ($module == 'leoblog' && $controller == 'blog' && ($id_blog = (int) Tools::getValue('id'))) { $languages = Language::getLanguages(true, $this->context->shop->id); if (!count($languages)) { return false; } $link = new Link(); foreach ($languages as $lang) { $config = LeoBlogConfig::getInstance(); $config->cur_id_lang = $lang['id_lang']; $cur_key = 'link_rewrite' . '_' . Context::getContext()->language->id; $cur_prefix = '/' . ($config->cur_prefix_rewrite = $config->get($cur_key, 'blog') . '/'); $other_key = 'link_rewrite' . '_' . $lang['id_lang']; $other_prefix = '/' . ($config->cur_prefix_rewrite = $config->get($other_key, 'blog') . '/'); $blog = new LeoBlogBlog($id_blog, $lang['id_lang']); $temp_link = $link->getModuleLink($module, $controller, array('id' => $id_blog, 'rewrite' => $blog->link_rewrite), null, $lang['id_lang']); $default_rewrite[$lang['id_lang']] = str_replace($cur_prefix, $other_prefix, $temp_link); // $default_rewrite[$lang['id_lang']] = $link->getModuleLink($module, $controller, array('id'=>$id_blog, 'rewrite'=>$blog->link_rewrite), null, $lang['id_lang']); } } elseif ($module == 'leoblog' && $controller == 'category' && ($id_blog = (int) Tools::getValue('id'))) { $languages = Language::getLanguages(true, $this->context->shop->id); if (!count($languages)) { return false; } $link = new Link(); foreach ($languages as $lang) { $config = LeoBlogConfig::getInstance(); $config->cur_id_lang = $lang['id_lang']; $cur_key = 'link_rewrite' . '_' . Context::getContext()->language->id; $cur_prefix = '/' . ($config->cur_prefix_rewrite = $config->get($cur_key, 'blog') . '/'); $other_key = 'link_rewrite' . '_' . $lang['id_lang']; $other_prefix = '/' . ($config->cur_prefix_rewrite = $config->get($other_key, 'blog') . '/'); $blog = new Leoblogcat($id_blog, $lang['id_lang']); $temp_link = $link->getModuleLink($module, $controller, array('id' => $id_blog, 'rewrite' => $blog->link_rewrite), null, $lang['id_lang']); $default_rewrite[$lang['id_lang']] = str_replace($cur_prefix, $other_prefix, $temp_link); // $default_rewrite[$lang['id_lang']] = $link->getModuleLink($module, $controller, array('id'=>$id_blog, 'rewrite'=>$blog->link_rewrite), null, $lang['id_lang']); } } elseif ($module == 'leoblog' && $controller == 'list') { $languages = Language::getLanguages(true, $this->context->shop->id); if (!count($languages)) { return false; } $link = new Link(); foreach ($languages as $lang) { $config = LeoBlogConfig::getInstance(); $config->cur_id_lang = $lang['id_lang']; $cur_key = 'link_rewrite' . '_' . Context::getContext()->language->id; $cur_prefix = '/' . ($config->cur_prefix_rewrite = $config->get($cur_key, 'blog') . ''); $other_key = 'link_rewrite' . '_' . $lang['id_lang']; $other_prefix = '/' . ($config->cur_prefix_rewrite = $config->get($other_key, 'blog') . ''); $temp_link = $link->getModuleLink($module, $controller, array(), null, $lang['id_lang']); $default_rewrite[$lang['id_lang']] = str_replace($cur_prefix, $other_prefix, $temp_link); } } $this->context->smarty->assign('lang_leo_rewrite_urls', $default_rewrite); } }
public function insertphotoajax($post, $file) { global $cookie; $db = Db::getInstance(); $plik_tmp = $file['file']['tmp_name']; $plik_nazwa = $file['file']['name']; $plik_rozmiar = $file['file']['size']; $plik_nazwa = strtolower(preg_replace('/[^a-zA-Z0-9\\.]/', '', $plik_nazwa)); $filetype = pathinfo($plik_nazwa, PATHINFO_EXTENSION); if (!file_exists("../files/{$post['oid']}")) { mkdir("../files/{$post['oid']}", 0777); } if (is_uploaded_file($plik_tmp)) { $key = ""; $sciezka = "../files/{$post['oid']}/"; $plik = $plik_nazwa; if (file_exists("{$sciezka}{$plik}")) { $key = $this->generatekey(10, "abcdfghijklmnouprstuwxyz1234567890"); $plik = "{$key}{$plik_nazwa}"; } if (move_uploaded_file($plik_tmp, "{$sciezka}{$plik}")) { $query = "INSERT INTO `" . _DB_PREFIX_ . "orderfiles` (title,description,filename,id_order,id_customer) VALUES ('','','{$key}{$plik_nazwa}','{$post['oid']}','{$cookie->id_customer}')"; $db->Execute($query); $query2 = "SELECT id FROM `" . _DB_PREFIX_ . "orderfiles` WHERE filename='" . ($key . $plik_nazwa) . "' AND id_order='" . $post['oid'] . "'"; $returnr = Db::getInstance()->getRow($query2); $link = new Link(); if ($this->psversion() == 5 || $this->psversion() == 6) { echo ' <div class="bootstrap"> <div style="border:1px solid #c0c0c0; padding:10px; position:relative; display:block; clear:both; overflow:hidden; margin-bottom:10px;"> <img src="' . _MODULE_DIR_ . 'orderfiles/img/file.png" style="display:inline-block; float:left; margin-right:10px;"/> <div style="display:inline-block; float:left; padding-bottom:30px;"> <b>' . ($key . $plik_nazwa) . ' - <a href="' . $this->getBaseLink() . 'modules/orderfiles/download.php?t=files&opt=' . $post['oid'] . '&f=' . $key . $plik_nazwa . '"><strong>' . $this->l('download') . '</strong></a> <p style="margin-top:5px; display:block; clear:both; width:420px; line-height:20px;"> </p> <form method="post" action="' . $link->getModuleLink('orderfiles', 'filesmanager') . '"> <input type="hidden" name="oid" value="' . $post['oid'] . '"/> <input type="hidden" name="fid" value="' . $returnr['id'] . '"/> <input type="hidden" name="pty" value="order"/> <div style="position:absolute; right:10px; bottom:10px;"> <input type="submit" name="editfile" value="' . $this->l('Edit') . '" class="button"/> <input type="submit" name="delfile" value="' . $this->l('Delete') . '" class="button"/> </div> </form> </div> </div> </div>'; } else { echo '<div class="warning" style="position:relative; display:block; clear:both; overflow:hidden; margin-bottom:10px;"> <img src="' . _MODULE_DIR_ . 'orderfiles/img/file.png" style="display:inline-block; float:left; margin-right:10px;"/> <div style="display:inline-block; float:left; padding-bottom:30px;"> <b>' . ($key . $plik_nazwa) . '</b> <p style="margin-top:5px; display:block; clear:both; width:420px; line-height:20px;"></p> <form method="post" action=""> <input type="hidden" name="oid" value="' . $post['oid'] . '"/> <input type="hidden" name="fid" value="' . $returnr['id'] . '"/> <input type="submit" name="delfile" value="' . $this->l('Delete') . '" class="button" style="position:absolute; right:10px; bottom:10px;"/> </form> </div> </div>'; } } } }
public function hookExtraCarrier($params) { $carrier_so = new Carrier((int) Configuration::get('SOCOLISSIMO_CARRIER_ID')); if (!isset($carrier_so) || !$carrier_so->active) { return ''; } $country = new Country((int) $params['address']->id_country); $carriers = Carrier::getCarriers($this->context->language->id, true, false, false, null, defined('ALL_CARRIERS') ? ALL_CARRIERS : Carrier::ALL_CARRIERS); // Backward compatibility 1.5 $id_carrier = $carrier_so->id; // bug fix for cart rule with restriction if (!version_compare(_PS_VERSION_, '1.5', '<')) { CartRule::autoAddToCart($this->context); } // For now works only with single shipping ! if (method_exists($params['cart'], 'carrierIsSelected')) { if ($params['cart']->carrierIsSelected((int) $carrier_so->id, $params['address']->id)) { $id_carrier = (int) $carrier_so->id; } } $customer = new Customer($params['address']->id_customer); $gender = array('1' => 'MR', '2' => 'MME', '3' => 'MLE'); if (in_array((int) $customer->id_gender, array(1, 2))) { $cecivility = $gender[(int) $customer->id_gender]; } else { $cecivility = 'MR'; } $tax_rate = Tax::getCarrierTaxRate($id_carrier, isset($params['cart']->id_address_delivery) ? $params['cart']->id_address_delivery : null); $tax_rate_seller = Tax::getCarrierTaxRate(Configuration::get('SOCOLISSIMO_CARRIER_ID_SELLER'), isset($params['cart']->id_address_delivery) ? $params['cart']->id_address_delivery : null); if ($tax_rate) { $std_cost_with_taxes = number_format((double) $this->initial_cost * (1 + $tax_rate / 100), 2, ',', ' '); } else { $std_cost_with_taxes = number_format((double) $this->initial_cost, 2, ',', ' '); } $seller_cost_with_taxes = 0; if ($this->seller_cost) { if ($tax_rate_seller) { $seller_cost_with_taxes = number_format((double) $this->seller_cost * (1 + $tax_rate_seller / 100), 2, ',', ' '); } else { $seller_cost_with_taxes = number_format((double) $this->seller_cost, 2, ',', ' '); } } $free_shipping = false; if (version_compare(_PS_VERSION_, '1.5', '<')) { $rules = $params['cart']->getDiscounts(); if (!empty($rules)) { foreach ($rules as $rule) { if ($rule['id_discount_type'] == 3) { $free_shipping = true; break; } } } } else { $rules = $params['cart']->getCartRules(); if (!empty($rules)) { foreach ($rules as $rule) { if ($rule['free_shipping'] && !$rule['carrier_restriction']) { $free_shipping = true; break; } } if (!$free_shipping) { $key_search = $id_carrier . ','; $deliveries_list = $params['cart']->getDeliveryOptionList(); foreach ($deliveries_list as $deliveries) { foreach ($deliveries as $key => $elt) { if ($key == $key_search) { $free_shipping = $elt['is_free']; } } } } } else { // for cart rule with restriction $key_search = $id_carrier . ','; $deliveries_list = $params['cart']->getDeliveryOptionList(); foreach ($deliveries_list as $deliveries) { foreach ($deliveries as $key => $elt) { if ($key == $key_search) { $free_shipping = $elt['is_free']; } } } } } if ($free_shipping) { $std_cost_with_taxes = 0; $seller_cost_with_taxes = 0; } // Keep this fields order (see doc.) $inputs = array('pudoFOId' => Configuration::get('SOCOLISSIMO_ID'), 'ceName' => $this->replaceAccentedChars(Tools::substr($params['address']->lastname, 0, 34)), 'dyPreparationTime' => (int) Configuration::Get('SOCOLISSIMO_PREPARATION_TIME'), 'dyForwardingCharges' => $std_cost_with_taxes, 'dyForwardingChargesCMT' => $seller_cost_with_taxes, 'trClientNumber' => (int) $params['address']->id_customer, 'orderId' => $this->formatOrderId((int) $params['address']->id), 'numVersion' => $this->getNumVersion(), 'ceCivility' => $cecivility, 'ceFirstName' => $this->replaceAccentedChars(Tools::substr($params['address']->firstname, 0, 29)), 'ceCompanyName' => $this->replaceAccentedChars(Tools::substr($params['address']->company, 0, 38)), 'ceAdress3' => $this->replaceAccentedChars(Tools::substr($params['address']->address1, 0, 38)), 'ceAdress4' => $this->replaceAccentedChars(Tools::substr($params['address']->address2, 0, 38)), 'ceZipCode' => $this->replaceAccentedChars($params['address']->postcode), 'ceTown' => $this->replaceAccentedChars(Tools::substr($params['address']->city, 0, 32)), 'ceEmail' => $this->replaceAccentedChars($params['cookie']->email), 'cePhoneNumber' => $this->replaceAccentedChars(str_replace(array(' ', '.', '-', ',', ';', '/', '\\', '(', ')'), '', $params['address']->phone_mobile)), 'dyWeight' => (double) $params['cart']->getTotalWeight() * 1000, 'trParamPlus' => $carrier_so->id, 'trReturnUrlKo' => htmlentities($this->url, ENT_NOQUOTES, 'UTF-8'), 'trReturnUrlOk' => htmlentities($this->url, ENT_NOQUOTES, 'UTF-8'), 'CHARSET' => 'UTF-8', 'cePays' => $country->iso_code, 'trInter' => Configuration::get('SOCOLISSIMO_EXP_BEL'), 'ceLang' => 'FR'); if (!$inputs['dyForwardingChargesCMT'] && !Configuration::get('SOCOLISSIMO_COST_SELLER')) { unset($inputs['dyForwardingChargesCMT']); } // set params for Api 3.0 if needed $inputs = $this->setInputParams($inputs); // generate key for API $inputs['signature'] = $this->generateKey($inputs); // calculate lowest cost $from_cost = $std_cost_with_taxes; if ($seller_cost_with_taxes || Configuration::get('SOCOLISSIMO_CARRIER_ID_SELLER') && Configuration::get('SOCOLISSIMO_COST_SELLER')) { if ((double) str_replace(',', '.', $seller_cost_with_taxes) < (double) str_replace(',', '.', $std_cost_with_taxes)) { $from_cost = $seller_cost_with_taxes; } } $rewrite_active = true; if (!Configuration::get('PS_REWRITING_SETTINGS')) { $rewrite_active = false; } // module link for prestashop 1.5 to get proper url $link = new Link(); $module_link = ''; if (!version_compare(_PS_VERSION_, '1.5', '<')) { $module_link = $link->getModuleLink('socolissimo', 'redirect', array(), true); } $module_link_mobile = ''; if (!version_compare(_PS_VERSION_, '1.5', '<')) { $module_link_mobile = $link->getModuleLink('socolissimo', 'redirectmobile', array(), true); } // automatic settings api protocol for ssl $protocol = 'http://'; if (Configuration::get('PS_SSL_ENABLED')) { $protocol = 'https://'; } $this->context->smarty->assign(array('select_label' => $this->l('Select delivery mode'), 'edit_label' => $this->l('Edit delivery mode'), 'token' => sha1('socolissimo' . _COOKIE_KEY_ . Context::getContext()->cookie->id_cart), 'urlSo' => $protocol . Configuration::get('SOCOLISSIMO_URL') . '?trReturnUrlKo=' . htmlentities($this->url, ENT_NOQUOTES, 'UTF-8'), 'urlSoMobile' => $protocol . Configuration::get('SOCOLISSIMO_URL_MOBILE') . '?trReturnUrlKo=' . htmlentities($this->url, ENT_NOQUOTES, 'UTF-8'), 'id_carrier' => $id_carrier, 'id_carrier_seller' => Configuration::get('SOCOLISSIMO_CARRIER_ID_SELLER'), 'SOBWD_C' => version_compare(_PS_VERSION_, '1.5', '<') ? false : true, 'inputs' => $inputs, 'initialCost_label' => $this->l('From'), 'initialCost' => $from_cost . $this->l(' €'), 'taxMention' => $this->l(' TTC'), 'finishProcess' => $this->l('To choose SoColissimo, click on a delivery method'), 'rewrite_active' => $rewrite_active, 'link_socolissimo' => $module_link, 'link_socolissimo_mobile' => $module_link_mobile)); $ids = array(); foreach ($carriers as $carrier) { $ids[] = $carrier['id_carrier']; } if ($params['cart']->id_carrier == Configuration::Get('SOCOLISSIMO_CARRIER_ID') && $this->getDeliveryInfos($this->context->cart->id, $this->context->customer->id)) { $this->context->smarty->assign('already_select_delivery', true); } else { $this->context->smarty->assign('already_select_delivery', false); } if (($country->iso_code == 'FR' || $country->iso_code == 'BE' && Configuration::get('SOCOLISSIMO_EXP_BEL')) && Configuration::Get('SOCOLISSIMO_ID') != null && Configuration::get('SOCOLISSIMO_KEY') != null && $this->checkAvailibility() && $this->checkSoCarrierAvailable((int) Configuration::get('SOCOLISSIMO_CARRIER_ID')) && in_array((int) Configuration::get('SOCOLISSIMO_CARRIER_ID'), $ids)) { // if mobile or iPad if (version_compare(_PS_VERSION_, '1.5', '<')) { // 1.4 if ($this->context->getMobileDevice()) { return $this->fetchTemplate('socolissimo_redirect_mobile.tpl'); } } else { // 1.5 if (Context::getContext()->getMobileDevice() || _THEME_NAME_ == 'prestashop_mobile' || $this->isIpad()) { if (Configuration::get('PS_ORDER_PROCESS_TYPE')) { $tab_id_soco = explode('|', Configuration::get('SOCOLISSIMO_CARRIER_ID_HIST')); $tab_id_soco[] = $id_carrier; $this->context->smarty->assign('ids', $tab_id_soco); return $this->fetchTemplate('socolissimo_error_mobile_opc.tpl'); } else { return $this->fetchTemplate('socolissimo_redirect_mobile.tpl'); } } } // route display mode if (Configuration::get('PS_ORDER_PROCESS_TYPE') || Configuration::get('SOCOLISSIMO_USE_FANCYBOX')) { return $this->fetchTemplate('socolissimo_fancybox.tpl'); } if (Configuration::get('SOCOLISSIMO_USE_IFRAME')) { return $this->fetchTemplate('socolissimo_iframe.tpl'); } return $this->fetchTemplate('socolissimo_redirect.tpl'); } else { $tab_id_soco = explode('|', Configuration::get('SOCOLISSIMO_CARRIER_ID_HIST')); $tab_id_soco[] = $id_carrier; $this->context->smarty->assign('ids', $tab_id_soco); return $this->fetchTemplate('socolissimo_error.tpl'); } }
/** * Orders endpoint */ protected function orders($args) { // Manage informations $datas = $this->data; if (is_null($datas)) { $error = PowaTagErrorType::$BAD_REQUEST; return PowaTagAPI::powaError($error); } if ($this->verb == 'costs') { if (isset($datas->order)) { $customer = $datas->order->customer; } else { $customer = current($datas->orders)->customer; } if (PowaTagAPI::apiLog()) { PowaTagLogs::initAPILog('Process calculate Costs', PowaTagLogs::IN_PROGRESS, 'Customer : ' . $customer->firstName . ' ' . $customer->lastName); } if (PowaTagAPI::requestLog()) { PowaTagLogs::initRequestLog('Process calculate Costs', PowaTagLogs::IN_PROGRESS, $datas); } $powatagcosts = new PowaTagCosts($datas); if ($error = $powatagcosts->getError()) { $message = $error['message']; if (PowaTagAPI::apiLog()) { PowaTagLogs::initAPILog('Process order', PowaTagLogs::ERROR, $message); } return PowaTagAPI::powaError($error); } if ($value = $powatagcosts->getSummary()) { if (PowaTagAPI::apiLog()) { PowaTagLogs::initAPILog('Process calculate Costs', PowaTagLogs::SUCCESS, 'Customer : ' . $customer->firstName . ' ' . $customer->lastName); } if (PowaTagAPI::requestLog()) { PowaTagLogs::initRequestLog('Process calculate Costs', PowaTagLogs::SUCCESS, $value); } return $value; } else { $error = $powatagcosts->getError(); if (PowaTagAPI::apiLog()) { PowaTagLogs::initAPILog('Process calculate Costs', PowaTagLogs::ERROR, $error['message']); } return PowaTagAPI::powaError($error); } } else { if (count($args) == 2 && Validate::isInt($args[0]) && ($args[1] = 'confirm-payment')) { //Three step payment confirmation if (PowaTagAPI::apiLog()) { PowaTagLogs::initAPILog('Process payment', PowaTagLogs::IN_PROGRESS, 'Order ID : ' . $args[0]); } if (PowaTagAPI::requestLog()) { PowaTagLogs::initRequestLog('Create payment', PowaTagLogs::IN_PROGRESS, $datas); } $payment = new PowaTagPayment($datas, (int) $args[0]); if ($id_order = $payment->confirmPayment()) { if (PowaTagAPI::apiLog()) { PowaTagLogs::initAPILog('Process payment', PowaTagLogs::SUCCESS, 'ID Order : ' . $id_order); } if (PowaTagAPI::requestLog()) { PowaTagLogs::initRequestLog('Process payment', PowaTagLogs::SUCCESS, $id_order); } $data = array('providerTxCode' => isset($datas->paymentResult->providerTxCode) ? $datas->paymentResult->providerTxCode : 'providerTxCode Empty', 'message' => 'Authorization success order ' . $id_order . ' created'); if ($payment->checkOrderState($id_order, $data) == 'error') { $this->setResponse($data['response']); } return $data; } else { $error = $payment->getError(); if (PowaTagAPI::apiLog()) { PowaTagLogs::initAPILog('Process payment', PowaTagLogs::ERROR, $error['message']); } return PowaTagAPI::powaError($error); } } else { if (!count($args)) { //Two step payment or three step payment if (isset($datas->order)) { $customer = $datas->order->customer; } else { $customer = current($datas->orders)->customer; } if (PowaTagAPI::apiLog()) { PowaTagLogs::initAPILog('Process order 123', PowaTagLogs::IN_PROGRESS, 'Customer : ' . $customer->firstName . ' ' . $customer->lastName); } if (PowaTagAPI::requestLog()) { PowaTagLogs::initRequestLog('Create order', PowaTagLogs::IN_PROGRESS, $datas); } $order = new PowaTagOrders($datas); if ($error = $order->getError()) { $message = $error['message']; if (PowaTagAPI::apiLog()) { PowaTagLogs::initAPILog('Process order', PowaTagLogs::ERROR, $message); } return PowaTagAPI::powaError($error); } list($id_cart, $id_order, $message) = $order->validateOrder(); if ($id_order || $id_cart) { if (PowaTagAPI::apiLog()) { PowaTagLogs::initAPILog('Process order', PowaTagLogs::SUCCESS, 'Order has been created : ' . $id_order); } $link = new Link(); $cart = new Cart($id_cart); $data = array('orderResults' => array(array('orderId' => $id_order ? $id_order : $id_cart, 'message' => $message, 'redirectUrl' => $link->getModuleLink('powatag', 'confirmation', array('id_cart' => (int) $id_cart, 'id_customer' => (int) $cart->id_customer))))); if ($error = $order->getError()) { return PowaTagAPI::powaError($error); } if ($order->checkOrderState($id_order, $data)) { $this->setResponse($data['response']); } return $data; } else { $message = ''; $errorCode = ''; if ($error = $order->getError()) { $message = $error['message']; } if (PowaTagAPI::apiLog()) { PowaTagLogs::initAPILog('Process order', PowaTagLogs::ERROR, $message); } return PowaTagAPI::powaError($error); } } } } }
public function hookPaymentOptions($params) { if (!$this->isAvailable()) { return array(); } /** @var Cart $cart */ $cart = $params['cart']; $currency = new Currency((int) $cart->id_currency); if (!$this->checkCurrency($currency)) { return array(); } $link = new Link(); $this->context->smarty->assign($this->getButtonTemplateVars($currency, $cart)); $newOption = new PrestaShop\PrestaShop\Core\Payment\PaymentOption(); $newOption->setCallToActionText($this->l('Pay with Aplazame'))->setAction($link->getModuleLink('aplazame', 'redirect'))->setAdditionalInformation($this->fetch('module:aplazame/views/templates/hook/payment_1.7.tpl')); return array($newOption); }