/** * * Execute le plugin dans la partie public */ public function run() { if (magixcjquery_filter_request::isSession('key_cart')) { $session_key = $_SESSION['key_cart']; } else { $session_key = null; } if (isset($this->module)) { $this->activeMods = $this->module->load_module(false); } //Chargement des données de traduction $this->_loadConfigVars(); $create = frontend_controller_plugins::create(); $header = new magixglobal_model_header(); if (isset($this->mod) && isset($this->action)) { $cartMod = $this->activeMods[$this->mod]; $params = array('params' => $_GET['params'], 'controller' => $this->template); call_user_func(array($cartMod, $this->action), $params); } elseif (isset($this->add_cart)) { $this->add_item_cart($_POST, $session_key); } elseif (isset($this->delete_item)) { $this->delete_item_cart($this->item_to_delete, $create); } elseif (isset($this->json_cart)) { $this->template->assign('getDataConfig', $this->getConfigData()); $header->head_expires("Mon, 26 Jul 1997 05:00:00 GMT"); $header->head_last_modified(gmdate("D, d M Y H:i:s") . "GMT"); $header->pragma(); $header->cache_control("nocache"); $header->getStatus('200'); $header->html_header("UTF-8"); //$this->load_cart_ajax($this->json_cart); $cartData = $this->getItemCartData($this->json_cart); $this->template->assign('getItemCartData', $cartData); if (!empty($cartData)) { $this->template->assign('getItemPriceData', $this->getItemPriceData($this->json_cart)); $this->template->assign('setParamsData', array('remove' => 'true', 'editQuantity' => 'true')); $this->template->display('loop/cart.tpl'); } else { return false; } } elseif (isset($this->get_nbr_items)) { $this->load_cart_nbr_item($session_key); } elseif (isset($this->get_price_items)) { $this->load_cart_price_item($session_key); } elseif (isset($this->get_amount_to_pay)) { $prices = $this->load_cart_amount($this->get_amount_to_pay); $header->head_expires("Mon, 26 Jul 1997 05:00:00 GMT"); $header->head_last_modified(gmdate("D, d M Y H:i:s") . "GMT"); $header->pragma(); $header->cache_control("nocache"); $header->getStatus('200'); $header->html_header("UTF-8"); print $prices['amount_to_pay']; } elseif (isset($this->pstring1)) { $this->template->assign('getDataConfig', $this->getConfigData()); if ($this->pstring2 == 'process') { $this->getProcessOrder($create); } elseif (isset($this->pstring2)) { if ($this->pstring2 == 'success') { unset($_SESSION['key_cart']); $this->getNotify('success', false); } elseif ($this->pstring2 == 'refused') { unset($_SESSION['key_cart']); $this->getNotify('refused', false); } elseif ($this->pstring2 == 'cancel') { unset($_SESSION['key_cart']); $this->getNotify('cancel', false); } elseif ($this->pstring2 == 'exception') { unset($_SESSION['key_cart']); $this->getNotify('exception', false); } $create->display('payment_statut.tpl'); } else { if (isset($this->id_cart_to_send)) { $this->validate_cart($this->id_cart_to_send, $create); $this->load_cart_data($session_key, $create); $create->assign('getItemCartData', $this->getItemCartData($this->id_cart_to_send)); $create->assign('getItemPriceData', $this->getItemPriceData($this->id_cart_to_send)); $create->assign('setParamsData', array('remove' => 'false', 'editQuantity' => 'false')); $create->display('payment_resume.tpl'); } else { $this->load_cart_data($session_key, $create); $create->assign('getItemCartData', $this->getItemCartData($this->id_cart_to_send)); $create->assign('getItemPriceData', $this->getItemPriceData($this->id_cart_to_send)); $create->assign('setParamsData', array('remove' => 'false', 'editQuantity' => 'false')); $create->display('payment_resume.tpl'); } } } else { if (magixcjquery_filter_request::isSession('key_cart')) { if (isset($this->devis_to_send)) { //$this->validate_cart($this->id_cart_to_send,$create); $dataCart = $this->getItemPriceData($this->id_cart_to_send); parent::i_cart_order($this->id_cart_to_send, magixglobal_model_cryptrsa::uuid_generator(), $dataCart['amount_products'], $dataCart['shipping_ttc'], 'EUR', 'bank_wire'); $this->sendOrder($this->id_cart_to_send, $create, false); parent::u_transmission_cart($this->id_cart_to_send, 1); $this->getNotify('success', true); //Supprime la session du panier après envoi du mail si le système de devis est activé unset($_SESSION['key_cart']); //return; } elseif (isset($this->quantity_qty)) { $this->update_quantity_item(); } elseif (isset($this->attr)) { $this->update_attr_item(); } elseif (isset($_GET['testmail'])) { $cart = 1; if (!empty($_GET['testmail'])) { $testmail = intval($_GET['testmail']); $cart = is_int($testmail) ? $testmail : 1; } $this->sendOrder($cart, $create, true); } else { $this->modelSystem = new magixglobal_model_system(); frontend_model_template::addConfigFile(array($this->modelSystem->base_path() . 'plugins/cartpay/i18n/tools'), array('country_'), false); $data_cart = parent::s_cart_session($session_key); $id_cart = $data_cart['id_cart']; $this->load_cart_data($session_key, $create); $create->assign('getItemCartData', $this->getItemCartData($id_cart)); $create->assign('getItemPriceData', $this->getItemPriceData($id_cart)); $create->assign('setParamsData', array('remove' => 'true', 'editQuantity' => 'true')); // getDataConfig $getDataConfig = $this->getConfigData(); if ($getDataConfig['online_payment'] === '1') { $create->assign('setPaymentType', 'secure'); } else { $create->assign('setPaymentType', 'devis'); } $this->template->assign('getDataConfig', $getDataConfig); $this->template->assign('getItemsCountryData', $this->getItemsTvaData(array('fetch' => 'all', 'context' => 'country'))); $moduleJS = array(); $dynamicForm = false; if (!empty($this->activeMods)) { foreach ($this->activeMods as $name => $mod) { if (property_exists($mod, 'js_impact')) { if ($mod->js_impact) { $moduleJS[] = $name; } } if ($name == 'profil' && $getDataConfig['profil'] || $name != 'profil') { if (property_exists($mod, 'dynamicForm')) { if ($mod->dynamicForm) { $confdir = magixglobal_model_system::base_path() . 'plugins/' . $name . '/i18n/'; $lang = frontend_model_template::getLanguage(); if (file_exists($confdir)) { $translate = !empty($lang) ? $lang : 'fr'; frontend_model_smarty::getInstance()->configLoad($confdir . 'public_local_' . $translate . '.conf', null); $dynamicForm = $this->template->fetch('forms/order.tpl', $name); } } } } } } $this->template->assign('moduleJS', $moduleJS); $this->template->assign('dynamicForm', $dynamicForm); $create->display('index.tpl'); } } } }
/** * run */ public function run() { if ($this->install_tables()) { if (isset($this->module)) { $this->activeMods = $this->module->load_module(true); } if ($this->tab == 'config') { if (isset($this->action)) { if ($this->action === 'update') { $this->save($this->setPostConfig(), 'update'); } } else { $this->template->assign('getDataConfig', $this->getConfigData()); $this->template->display('config.tpl'); } } elseif ($this->tab == 'about') { $this->template->display('about.tpl'); } elseif ($this->tab == 'tva') { if (isset($this->zone_tva_1) or isset($this->zone_tva_2)) { $tvac1 = parent::fetchTva(array('fetch' => 'one', 'context' => 'config', 'zone_tva' => $this->zone_tva_1), 'admin'); $tvac2 = parent::fetchTva(array('fetch' => 'one', 'context' => 'config', 'zone_tva' => $this->zone_tva_2), 'admin'); if ($tvac1['idtvac'] != null) { $this->save($this->setPostTvac($this->amount_tva_1, $this->zone_tva_1), 'update'); } else { $this->save($this->setPostTvac($this->amount_tva_1, $this->zone_tva_1), 'add'); } if ($tvac2['idtvac'] != null) { $this->update($this->setPostTvac($this->amount_tva_2, $this->zone_tva_2)); } else { $this->add($this->setPostTvac($this->amount_tva_2, $this->zone_tva_2)); } /*$this->save( $this->setPostConfig(), 'update' );*/ } elseif ($this->action) { if ($this->action === 'html') { $this->header->head_expires("Mon, 26 Jul 1997 05:00:00 GMT"); $this->header->head_last_modified(gmdate("D, d M Y H:i:s") . "GMT"); $this->header->pragma(); $this->header->cache_control("nocache"); $this->header->getStatus('200'); $this->header->html_header("UTF-8"); $this->template->assign('getItemsTvaData', $this->getItemsTvaData()); $this->template->display('loop/tva.tpl'); } elseif ($this->action === 'remove') { $this->removeTva($this->remove_tva); } elseif ($this->action === 'add') { $this->save($this->setPostTva($this->iso, $this->country, $this->idtvac), 'add'); } } else { $this->translation->addConfigFile(array('country/tools'), array('country_iso_'), false); $this->template->assign('countryTools', $this->country->setItemsData()); $this->template->assign('getConfDataTVA', $this->getTvaConfData()); $this->template->display('tva.tpl'); } } else { $this->setOrderData(30); $this->template->display('list.tpl'); } } }
/** * Get active modules and return a array of all active module instance * * the `extend_module` method should be executed before to ensure that * all compatible modules will be loaded * * @return array */ public function load_module($parse_module) { if ($parse_module) { $this->extend_module(); } $modules = parent::g_module(); if ($parse_module) { $this->extend_module(array_map(function ($a) { return $a['module_name']; }, $modules)); } $active_mods = array(); foreach ($modules as $mod) { $modClass = 'plugins_' . $mod['module_name'] . '_cartpay'; $active_mods[$mod['module_name']] = $this->get_call_class($modClass); } return $active_mods; }