Ejemplo n.º 1
0
 /**
  * @see FrontController::initContent()
  */
 public function initContent()
 {
     if ($oPrediggoResult = $this->launchSearch((int) $this->oPrediggoConfig->search_nb_items)) {
         if (isset($this->context->cookie->id_compare)) {
             $this->context->smarty->assign('compareProducts', CompareProduct::getCompareProducts((int) $this->context->cookie->id_compare));
         }
         $this->context->smarty->assign(array('page_name' => 'prediggo_search_page', 'sPrediggoQuery' => $this->sQuery, 'aPrediggoProducts' => $this->oPrediggoCall->getProducts($oPrediggoResult, (int) $this->context->cookie->id_lang), 'aDidYouMeanWords' => $oPrediggoResult->getDidYouMeanWords(), 'aSortingOptions' => $oPrediggoResult->getSortingOptions(), 'aCancellableFiltersGroups' => $oPrediggoResult->getCancellableFiltersGroups(), 'aDrillDownGroups' => $oPrediggoResult->getDrillDownGroups(), 'aChangePageLinks' => $oPrediggoResult->getChangePageLinks(), 'oSearchStatistics' => $oPrediggoResult->getSearchStatistics(), 'bSearchandizingActive' => $this->oPrediggoConfig->searchandizing_active, 'aCustomRedirections' => $oPrediggoResult->getCustomRedirections(), 'comparator_max_item' => (int) Configuration::get('PS_COMPARATOR_MAX_ITEM'), 'sImageType' => Tools::version_compare(_PS_VERSION_, '1.5.1', '>=') ? 'home_default' : 'home', 'bRewriteEnabled' => (int) Configuration::get('PS_REWRITING_SETTINGS')));
     }
     parent::initContent();
     $this->setTemplate('search.tpl');
 }
Ejemplo n.º 2
0
 /**
  * Logs a given customer in.
  */
 public static function login_customer($id_customer)
 {
     // Make sure that that the customers exists.
     $sql = "SELECT * FROM `" . _DB_PREFIX_ . "customer` WHERE `id_customer` = '" . pSQL($id_customer) . "'";
     $result = Db::getInstance()->GetRow($sql);
     // The user account has been found!
     if (!empty($result['id_customer'])) {
         // See => CustomerCore::getByEmail
         $customer = new Customer();
         $customer->id = $result['id_customer'];
         foreach ($result as $key => $value) {
             if (key_exists($key, $customer)) {
                 $customer->{$key} = $value;
             }
         }
         // See => AuthControllerCore::processSubmitLogin
         Hook::exec('actionBeforeAuthentication');
         $context = Context::getContext();
         $context->cookie->id_compare = isset($context->cookie->id_compare) ? $context->cookie->id_compare : CompareProduct::getIdCompareByIdCustomer($customer->id);
         $context->cookie->id_customer = (int) $customer->id;
         $context->cookie->customer_lastname = $customer->lastname;
         $context->cookie->customer_firstname = $customer->firstname;
         $context->cookie->logged = 1;
         $customer->logged = 1;
         $context->cookie->is_guest = $customer->isGuest();
         $context->cookie->passwd = $customer->passwd;
         $context->cookie->email = $customer->email;
         // Add customer to the context
         $context->customer = $customer;
         if (Configuration::get('PS_CART_FOLLOWING') && (empty($context->cookie->id_cart) || Cart::getNbProducts($context->cookie->id_cart) == 0) && ($id_cart = (int) Cart::lastNoneOrderedCart($context->customer->id))) {
             $context->cart = new Cart($id_cart);
         } else {
             $context->cart->id_carrier = 0;
             $context->cart->setDeliveryOption(null);
             $context->cart->id_address_delivery = Address::getFirstCustomerAddressId((int) $customer->id);
             $context->cart->id_address_invoice = Address::getFirstCustomerAddressId((int) $customer->id);
         }
         $context->cart->id_customer = (int) $customer->id;
         $context->cart->secure_key = $customer->secure_key;
         $context->cart->save();
         $context->cookie->id_cart = (int) $context->cart->id;
         $context->cookie->update();
         $context->cart->autosetProductAddress();
         Hook::exec('actionAuthentication');
         // Login information have changed, so we check if the cart rules still apply
         CartRule::autoRemoveFromCart($context);
         CartRule::autoAddToCart($context);
         // Customer is now logged in.
         return true;
     }
     // Invalid customer specified.
     return false;
 }
 public function process()
 {
     parent::process();
     //Clean compare product table
     CompareProduct::cleanCompareProducts('week');
     $hasProduct = false;
     if (!Configuration::get('PS_COMPARATOR_MAX_ITEM')) {
         return Tools::redirect('404.php');
     }
     if ($product_list = Tools::getValue('compare_product_list') and $postProducts = isset($product_list) ? rtrim($product_list, '|') : '') {
         $ids = array_unique(explode('|', $postProducts));
     } elseif (isset(self::$cookie->id_customer)) {
         $ids = CompareProduct::getCustomerCompareProducts(self::$cookie->id_customer);
     } elseif (isset(self::$cookie->id_guest)) {
         $ids = CompareProduct::getGuestCompareProducts(self::$cookie->id_guest);
     } else {
         $ids = null;
     }
     if ($ids) {
         if (sizeof($ids) > 0) {
             if (sizeof($ids) > Configuration::get('PS_COMPARATOR_MAX_ITEM')) {
                 $ids = array_slice($ids, 0, Configuration::get('PS_COMPARATOR_MAX_ITEM'));
             }
             $listProducts = array();
             $listFeatures = array();
             foreach ($ids as $id) {
                 $curProduct = new Product((int) $id, true, (int) self::$cookie->id_lang);
                 if (!Validate::isLoadedObject($curProduct)) {
                     continue;
                 }
                 if (!$curProduct->active) {
                     unset($ids[$k]);
                     continue;
                 }
                 foreach ($curProduct->getFrontFeatures(self::$cookie->id_lang) as $feature) {
                     $listFeatures[$curProduct->id][$feature['id_feature']] = $feature['value'];
                 }
                 $cover = Product::getCover((int) $id);
                 $curProduct->id_image = Tools::htmlentitiesUTF8(Product::defineProductImage(array('id_image' => $cover['id_image'], 'id_product' => $id), self::$cookie->id_lang));
                 $curProduct->allow_oosp = Product::isAvailableWhenOutOfStock($curProduct->out_of_stock);
                 $listProducts[] = $curProduct;
             }
             if (sizeof($listProducts) > 0) {
                 $width = 80 / sizeof($listProducts);
                 $hasProduct = true;
                 $ordered_features = Feature::getFeaturesForComparison($ids, self::$cookie->id_lang);
                 self::$smarty->assign(array('ordered_features' => $ordered_features, 'product_features' => $listFeatures, 'products' => $listProducts, 'link' => new Link(), 'width' => $width, 'homeSize' => Image::getSize('home')));
                 self::$smarty->assign('HOOK_EXTRA_PRODUCT_COMPARISON', Module::hookExec('extraProductComparison', array('list_ids_product' => $ids)));
             }
         }
     }
     self::$smarty->assign('hasProduct', $hasProduct);
 }
 /**
  * Set smarty vars
  */
 public function preProcess()
 {
     parent::process();
     if ($oPrediggoResult = $this->launchSearch((int) $this->oPrediggoSearchConfig->search_nb_items)) {
         if (class_exists('CompareProduct')) {
             if (method_exists('CompareProduct', 'getIdCompareByIdCustomer')) {
                 self::$smarty->assign('compareProducts', CompareProduct::getIdCompareByIdCustomer((int) self::$cookie->id_customer));
             } elseif (isset(self::$cookie->id_customer)) {
                 self::$smarty->assign('compareProducts', CompareProduct::getCustomerCompareProducts((int) self::$cookie->id_customer));
             } elseif (isset(self::$cookie->id_guest)) {
                 self::$smarty->assign('compareProducts', CompareProduct::getGuestCompareProducts((int) self::$cookie->id_guest));
             }
         }
         self::$smarty->assign(array('page_name' => 'prediggo_search_page', 'sPrediggoQuery' => $this->sQuery, 'aPrediggoProducts' => $this->oPrediggoCall->getProducts($oPrediggoResult, (int) self::$cookie->id_lang), 'aDidYouMeanWords' => $oPrediggoResult->getDidYouMeanWords(), 'aSortingOptions' => $oPrediggoResult->getSortingOptions(), 'aCancellableFiltersGroups' => $oPrediggoResult->getCancellableFiltersGroups(), 'aDrillDownGroups' => $oPrediggoResult->getDrillDownGroups(), 'aChangePageLinks' => $oPrediggoResult->getChangePageLinks(), 'oSearchStatistics' => $oPrediggoResult->getSearchStatistics(), 'bSearchandizingActive' => $this->oPrediggoSearchConfig->searchandizing_active, 'aCustomRedirections' => $oPrediggoResult->getCustomRedirections(), 'comparator_max_item' => (int) Configuration::get('PS_COMPARATOR_MAX_ITEM')));
     }
 }
Ejemplo n.º 5
0
 public function initContent()
 {
     parent::initContent();
     if (isset($this->context->cookie->id_compare)) {
         $this->context->smarty->assign('compareProducts', CompareProduct::getCompareProducts((int) $this->context->cookie->id_compare));
     }
     $this->productSort();
     // Product sort must be called before assignProductList()
     $this->assignScenes();
     $this->assignSubcategories();
     if ($this->category->id != 1) {
         $this->assignProductList();
     }
     $this->context->smarty->assign(array('category' => $this->category, 'products' => isset($this->cat_products) && $this->cat_products ? $this->cat_products : null, 'id_category' => (int) $this->category->id, 'id_category_parent' => (int) $this->category->id_parent, 'return_category_name' => Tools::safeOutput($this->category->name), 'path' => Tools::getPath($this->category->id), 'add_prod_display' => Configuration::get('PS_ATTRIBUTE_CATEGORY_DISPLAY'), 'categorySize' => Image::getSize('category'), 'mediumSize' => Image::getSize('medium'), 'thumbSceneSize' => Image::getSize('thumb_scene'), 'homeSize' => Image::getSize('home'), 'allow_oosp' => (int) Configuration::get('PS_ORDER_OUT_OF_STOCK'), 'comparator_max_item' => (int) Configuration::get('PS_COMPARATOR_MAX_ITEM'), 'suppliers' => Supplier::getSuppliers()));
     $this->setTemplate(_PS_THEME_DIR_ . 'category.tpl');
 }
Ejemplo n.º 6
0
 public function processData()
 {
     $nbProducts = $this->getProducts(NULL, NULL, NULL, $this->orderBy, $this->orderWay, true);
     $this->pagination((int) $nbProducts);
     self::$smarty->assign('nb_products', (int) $nbProducts);
     $seller_products = $this->getProducts((int) self::$cookie->id_lang, (int) $this->p, (int) $this->n, $this->orderBy, $this->orderWay);
     AgileHelper::AssignProductImgs($seller_products);
     $si_1531_later = version_compare(_PS_VERSION_, '1.5.3.1', ">=");
     include_once _PS_ROOT_DIR_ . "/modules/agilemultipleshop/agilemultipleshop.php";
     $module = new AgileMultipleShop();
     self::$smarty->assign(array('products' => (isset($seller_products) and $seller_products) ? $seller_products : NULL, 'id_location' => $this->id_location, 'agilesellerproducts_tpl' => _PS_ROOT_DIR_ . '/modules/' . (_PS_VERSION_ > '1.5' ? 'agilemultipleshop' : 'agilesellerproducts') . '/', 'add_prod_display' => Configuration::get('PS_ATTRIBUTE_CATEGORY_DISPLAY'), 'categorySize' => Image::getSize($si_1531_later ? ImageType::getFormatedName('category') : 'category'), 'mediumSize' => Image::getSize($si_1531_later ? ImageType::getFormatedName('medium') : 'medium'), 'thumbSceneSize' => Image::getSize($si_1531_later ? ImageType::getFormatedName('thumb_scene') : 'thumb_scene'), 'homeSize' => Image::getSize($si_1531_later ? ImageType::getFormatedName('home') : 'home'), 'path' => $module->getL('Shop By Location')));
     $ver = (int) str_replace(".", "", _PS_VERSION_);
     if (isset(self::$cookie->id_compare)) {
         self::$smarty->assign('compareProducts', CompareProduct::getCompareProducts((int) self::$cookie->id_compare));
     }
     self::$smarty->assign(array('seller_locations4page' => agilemultipleshop::getLocationListNV($this->location_level), 'location_level4page' => $this->location_level));
     self::$smarty->assign(array('allow_oosp' => (int) Configuration::get('PS_ORDER_OUT_OF_STOCK'), 'comparator_max_item' => (int) Configuration::get('PS_COMPARATOR_MAX_ITEM')));
 }
Ejemplo n.º 7
0
 /**
  * Logs a given customer in.
  */
 public static function login_customer($id_customer)
 {
     global $cart, $cookie;
     // Make sure that that the customers exists.
     $sql = "SELECT * FROM `" . _DB_PREFIX_ . "customer` WHERE `id_customer` = '" . pSQL($id_customer) . "'";
     $result = Db::getInstance()->GetRow($sql);
     // The user account has been found!
     if (!empty($result['id_customer'])) {
         // See => CustomerCore::getByEmail
         $customer = new Customer();
         $customer->id = $result['id_customer'];
         foreach ($result as $key => $value) {
             if (key_exists($key, $customer)) {
                 $customer->{$key} = $value;
             }
         }
         // See => AuthControllerCore
         Module::hookExec('beforeAuthentication');
         $cookie->id_compare = isset($cookie->id_compare) ? $cookie->id_compare : CompareProduct::getIdCompareByIdCustomer($customer->id);
         $cookie->id_customer = (int) $customer->id;
         $cookie->customer_lastname = $customer->lastname;
         $cookie->customer_firstname = $customer->firstname;
         $cookie->passwd = $customer->passwd;
         $cookie->logged = 1;
         $cookie->email = $customer->email;
         $cookie->is_guest = $customer->isGuest();
         if (Configuration::get('PS_CART_FOLLOWING') and (empty($cookie->id_cart) or Cart::getNbProducts($cookie->id_cart) == 0)) {
             $cookie->id_cart = (int) Cart::lastNoneOrderedCart((int) $customer->id);
         }
         // Update cart address.
         $cart->id_carrier = 0;
         $cart->id_address_delivery = Address::getFirstCustomerAddressId((int) $customer->id);
         $cart->id_address_invoice = Address::getFirstCustomerAddressId((int) $customer->id);
         $cart->secure_key = $customer->secure_key;
         $cart->update();
         Module::hookExec('authentication');
         // Customer is now logged in.
         return true;
     }
     // Invalid customer specified.
     return false;
 }
Ejemplo n.º 8
0
 public function init()
 {
     self::$amz_payments = new AmzPayments();
     $this->isLogged = (bool) $this->context->customer->id && Customer::customerIdExistsStatic((int) $this->context->cookie->id_customer);
     parent::init();
     header('Cache-Control: no-cache, must-revalidate');
     header('Expires: Mon, 26 Jul 1997 05:00:00 GMT');
     $this->display_column_left = false;
     $this->display_column_right = false;
     $this->service = self::$amz_payments->getService();
     $this->nbProducts = $this->context->cart->nbProducts();
     if (Configuration::get('PS_CATALOG_MODE')) {
         $this->errors[] = Tools::displayError('This store has not accepted your new order.');
     }
     if ($this->nbProducts) {
         if (CartRule::isFeatureActive()) {
             if (Tools::isSubmit('submitAddDiscount')) {
                 if (!($code = trim(Tools::getValue('discount_name')))) {
                     $this->errors[] = Tools::displayError('You must enter a voucher code.');
                 } elseif (!Validate::isCleanHtml($code)) {
                     $this->errors[] = Tools::displayError('The voucher code is invalid.');
                 } else {
                     if (($cart_rule = new CartRule(CartRule::getIdByCode($code))) && Validate::isLoadedObject($cart_rule)) {
                         if ($error = $cart_rule->checkValidity($this->context, false, true)) {
                             $this->errors[] = $error;
                         } else {
                             $this->context->cart->addCartRule($cart_rule->id);
                             if (Configuration::get('PS_ORDER_PROCESS_TYPE') == 1) {
                                 Tools::redirect('index.php?controller=order-opc&addingCartRule=1');
                             }
                             Tools::redirect('index.php?controller=order&addingCartRule=1');
                         }
                     } else {
                         $this->errors[] = Tools::displayError('This voucher does not exists.');
                     }
                 }
                 $this->context->smarty->assign(array('errors' => $this->errors, 'discount_name' => Tools::safeOutput($code)));
             } elseif (($id_cart_rule = (int) Tools::getValue('deleteDiscount')) && Validate::isUnsignedId($id_cart_rule)) {
                 $this->context->cart->removeCartRule($id_cart_rule);
                 Tools::redirect('index.php?controller=order-opc');
             }
         }
         if ($this->context->cart->isVirtualCart()) {
             $this->setNoCarrier();
         }
     } else {
         Tools::redirect('index.php?controller=order-opc');
     }
     $this->context->smarty->assign('back', Tools::safeOutput(Tools::getValue('back')));
     if ($this->nbProducts) {
         $this->context->smarty->assign('virtual_cart', $this->context->cart->isVirtualCart());
     }
     $this->context->smarty->assign('is_multi_address_delivery', $this->context->cart->isMultiAddressDelivery() || (int) Tools::getValue('multi-shipping') == 1);
     $this->context->smarty->assign('open_multishipping_fancybox', (int) Tools::getValue('multi-shipping') == 1);
     if ($this->context->cart->nbProducts()) {
         if (Tools::isSubmit('ajax')) {
             if (Tools::isSubmit('method')) {
                 switch (Tools::getValue('method')) {
                     case 'setsession':
                         $this->context->cookie->amazon_id = Tools::getValue('amazon_id');
                         $this->context->cookie->amz_access_token = AmzPayments::prepareCookieValueForPrestaShopUse(Tools::getValue('access_token'));
                         $this->context->cookie->amz_access_token_set_time = time();
                         if (!$this->context->customer->isLogged() && self::$amz_payments->lpa_mode != 'pay') {
                             $d = self::$amz_payments->requestTokenInfo(AmzPayments::prepareCookieValueForAmazonPaymentsUse($this->context->cookie->amz_access_token));
                             if ($d->aud != self::$amz_payments->client_id) {
                                 error_log('auth error LPA');
                                 die('error');
                             }
                             $d = self::$amz_payments->requestProfile(AmzPayments::prepareCookieValueForAmazonPaymentsUse($this->context->cookie->amz_access_token));
                             $customer_userid = $d->user_id;
                             $customer_name = $d->name;
                             $customer_email = $d->email;
                             if ($customers_local_id = AmazonPaymentsCustomerHelper::findByAmazonCustomerId($customer_userid)) {
                                 Hook::exec('actionBeforeAuthentication');
                                 $customer = new Customer();
                                 $authentication = AmazonPaymentsCustomerHelper::getByCustomerID($customers_local_id, true, $customer);
                                 if (isset($authentication->active) && !$authentication->active) {
                                     exit;
                                 } elseif (!$authentication || !$customer->id) {
                                     exit;
                                 } else {
                                     $this->context->cookie->id_compare = isset($this->context->cookie->id_compare) ? $this->context->cookie->id_compare : CompareProduct::getIdCompareByIdCustomer($customer->id);
                                     $this->context->cookie->id_customer = (int) $customer->id;
                                     $this->context->cookie->customer_lastname = $customer->lastname;
                                     $this->context->cookie->customer_firstname = $customer->firstname;
                                     $this->context->cookie->logged = 1;
                                     $customer->logged = 1;
                                     $this->context->cookie->is_guest = $customer->isGuest();
                                     $this->context->cookie->passwd = $customer->passwd;
                                     $this->context->cookie->email = $customer->email;
                                     // Add customer to the context
                                     $this->context->customer = $customer;
                                     if (Configuration::get('PS_CART_FOLLOWING') && (empty($this->context->cookie->id_cart) || Cart::getNbProducts($this->context->cookie->id_cart) == 0) && ($id_cart = (int) Cart::lastNoneOrderedCart($this->context->customer->id))) {
                                         $this->context->cart = new Cart($id_cart);
                                     } else {
                                         $id_carrier = (int) $this->context->cart->id_carrier;
                                         $this->context->cart->id_carrier = 0;
                                         $this->context->cart->setDeliveryOption(null);
                                         $this->context->cart->id_address_delivery = (int) Address::getFirstCustomerAddressId((int) $customer->id);
                                         $this->context->cart->id_address_invoice = (int) Address::getFirstCustomerAddressId((int) $customer->id);
                                     }
                                     $this->context->cart->id_customer = (int) $customer->id;
                                     $this->context->cart->secure_key = $customer->secure_key;
                                     if ($this->ajax && isset($id_carrier) && $id_carrier && Configuration::get('PS_ORDER_PROCESS_TYPE')) {
                                         $delivery_option = array($this->context->cart->id_address_delivery => $id_carrier . ',');
                                         $this->context->cart->setDeliveryOption($delivery_option);
                                     }
                                     $this->context->cart->save();
                                     $this->context->cookie->id_cart = (int) $this->context->cart->id;
                                     $this->context->cookie->write();
                                     $this->context->cart->autosetProductAddress();
                                     Hook::exec('actionAuthentication');
                                     // Login information have changed, so we check if the cart rules still apply
                                     CartRule::autoRemoveFromCart($this->context);
                                     CartRule::autoAddToCart($this->context);
                                 }
                             }
                         }
                         exit;
                     case 'updateMessage':
                         if (Tools::isSubmit('message')) {
                             $txt_message = urldecode(Tools::getValue('message'));
                             $this->_updateMessage($txt_message);
                             if (count($this->errors)) {
                                 die('{"hasError" : true, "errors" : ["' . implode('\',\'', $this->errors) . '"]}');
                             }
                             die(true);
                         }
                         break;
                     case 'updateCarrierAndGetPayments':
                         if ((Tools::isSubmit('delivery_option') || Tools::isSubmit('id_carrier')) && Tools::isSubmit('recyclable') && Tools::isSubmit('gift') && Tools::isSubmit('gift_message')) {
                             $this->_assignWrappingAndTOS();
                             if ($this->_processCarrier()) {
                                 $carriers = $this->context->cart->simulateCarriersOutput();
                                 $return = array_merge(array('HOOK_TOP_PAYMENT' => Hook::exec('displayPaymentTop'), 'HOOK_PAYMENT' => $this->_getPaymentMethods(), 'carrier_data' => $this->_getCarrierList(), 'HOOK_BEFORECARRIER' => Hook::exec('displayBeforeCarrier', array('carriers' => $carriers))), $this->getFormatedSummaryDetail());
                                 Cart::addExtraCarriers($return);
                                 die(Tools::jsonEncode($return));
                             } else {
                                 $this->errors[] = Tools::displayError('An error occurred while updating the cart.');
                             }
                             if (count($this->errors)) {
                                 die('{"hasError" : true, "errors" : ["' . implode('\',\'', $this->errors) . '"]}');
                             }
                             exit;
                         }
                         break;
                     case 'updateTOSStatusAndGetPayments':
                         if (Tools::isSubmit('checked')) {
                             $this->context->cookie->checkedTOS = (int) Tools::getValue('checked');
                             die(Tools::jsonEncode(array('HOOK_TOP_PAYMENT' => Hook::exec('displayPaymentTop'), 'HOOK_PAYMENT' => $this->_getPaymentMethods())));
                         }
                         break;
                     case 'getCarrierList':
                         die(Tools::jsonEncode($this->_getCarrierList()));
                     case 'getAddressBlockAndCarriersAndPayments':
                         if ($this->context->customer->isLogged()) {
                             if (!Customer::getAddressesTotalById($this->context->customer->id)) {
                                 die(Tools::jsonEncode(array('no_address' => 1)));
                             }
                             if (file_exists(_PS_MODULE_DIR_ . 'blockuserinfo/blockuserinfo.php')) {
                                 include_once _PS_MODULE_DIR_ . 'blockuserinfo/blockuserinfo.php';
                                 $block_user_info = new BlockUserInfo();
                             }
                             $this->context->smarty->assign('isVirtualCart', $this->context->cart->isVirtualCart());
                             $this->_processAddressFormat();
                             $this->_assignAddress();
                             $wrapping_fees = $this->context->cart->getGiftWrappingPrice(false);
                             $wrapping_fees_tax_inc = $wrapping_fees = $this->context->cart->getGiftWrappingPrice();
                             $return = array_merge(array('order_opc_adress' => $this->context->smarty->fetch(_PS_THEME_DIR_ . 'order-address.tpl'), 'block_user_info' => isset($block_user_info) ? $block_user_info->hookTop(array()) : '', 'carrier_data' => $this->_getCarrierList(), 'HOOK_TOP_PAYMENT' => Hook::exec('displayPaymentTop'), 'HOOK_PAYMENT' => $this->_getPaymentMethods(), 'no_address' => 0, 'gift_price' => Tools::displayPrice(Tools::convertPrice(Product::getTaxCalculationMethod() == 1 ? $wrapping_fees : $wrapping_fees_tax_inc, new Currency((int) $this->context->cookie->id_currency)))), $this->getFormatedSummaryDetail());
                             die(Tools::jsonEncode($return));
                         }
                         die(Tools::displayError());
                     case 'makeFreeOrder':
                         if (($id_order = $this->_checkFreeOrder()) && $id_order) {
                             $order = new Order((int) $id_order);
                             $email = $this->context->customer->email;
                             if ($this->context->customer->is_guest) {
                                 $this->context->customer->logout();
                             }
                             die('freeorder:' . $order->reference . ':' . $email);
                         }
                         exit;
                     case 'updateAddressesSelected':
                         $get_order_reference_details_request = new OffAmazonPaymentsService_Model_GetOrderReferenceDetailsRequest();
                         $get_order_reference_details_request->setSellerId(self::$amz_payments->merchant_id);
                         $get_order_reference_details_request->setAmazonOrderReferenceId(Tools::getValue('amazonOrderReferenceId'));
                         if (isset($this->context->cookie->amz_access_token)) {
                             $get_order_reference_details_request->setAddressConsentToken(AmzPayments::prepareCookieValueForAmazonPaymentsUse($this->context->cookie->amz_access_token));
                         }
                         $reference_details_result_wrapper = $this->service->getOrderReferenceDetails($get_order_reference_details_request);
                         $physical_destination = $reference_details_result_wrapper->GetOrderReferenceDetailsResult->getOrderReferenceDetails()->getDestination()->getPhysicalDestination();
                         $iso_code = (string) $physical_destination->GetCountryCode();
                         $city = (string) $physical_destination->GetCity();
                         $postcode = (string) $physical_destination->GetPostalCode();
                         $state = (string) $physical_destination->GetStateOrRegion();
                         $address_delivery = AmazonPaymentsAddressHelper::findByAmazonOrderReferenceIdOrNew(Tools::getValue('amazonOrderReferenceId'));
                         $address_delivery->id_country = Country::getByIso($iso_code);
                         $address_delivery->alias = 'Amazon Payments Delivery';
                         $address_delivery->lastname = 'amzLastname';
                         $address_delivery->firstname = 'amzFirstname';
                         $address_delivery->address1 = 'amzAddress1';
                         $address_delivery->city = $city;
                         $address_delivery->postcode = $postcode;
                         if ($state != '') {
                             $state_id = State::getIdByIso($state, Country::getByIso($iso_code));
                             if (!$state_id) {
                                 $state_id = State::getIdByName($state);
                             }
                             if ($state_id) {
                                 $address_delivery->id_state = $state_id;
                             }
                         }
                         $address_delivery->save();
                         AmazonPaymentsAddressHelper::saveAddressAmazonReference($address_delivery, Tools::getValue('amazonOrderReferenceId'));
                         $this->context->smarty->assign('isVirtualCart', $this->context->cart->isVirtualCart());
                         $old_delivery_address_id = $this->context->cart->id_address_delivery;
                         $this->context->cart->id_address_delivery = $address_delivery->id;
                         $this->context->cart->id_address_invoice = $address_delivery->id;
                         $this->context->cart->setNoMultishipping();
                         $this->context->cart->updateAddressId($old_delivery_address_id, $address_delivery->id);
                         if (!$this->context->cart->update()) {
                             $this->errors[] = Tools::displayError('An error occurred while updating your cart.');
                         }
                         $infos = Address::getCountryAndState((int) $this->context->cart->id_address_delivery);
                         if (isset($infos['id_country']) && $infos['id_country']) {
                             $country = new Country((int) $infos['id_country']);
                             $this->context->country = $country;
                         }
                         $cart_rules = $this->context->cart->getCartRules();
                         CartRule::autoRemoveFromCart($this->context);
                         CartRule::autoAddToCart($this->context);
                         if ((int) Tools::getValue('allow_refresh')) {
                             $cart_rules2 = $this->context->cart->getCartRules();
                             if (count($cart_rules2) != count($cart_rules)) {
                                 $this->ajax_refresh = true;
                             } else {
                                 $rule_list = array();
                                 foreach ($cart_rules2 as $rule) {
                                     $rule_list[] = $rule['id_cart_rule'];
                                 }
                                 foreach ($cart_rules as $rule) {
                                     if (!in_array($rule['id_cart_rule'], $rule_list)) {
                                         $this->ajax_refresh = true;
                                         break;
                                     }
                                 }
                             }
                         }
                         if (!$this->context->cart->isMultiAddressDelivery()) {
                             $this->context->cart->setNoMultishipping();
                         }
                         if (!count($this->errors)) {
                             $result = $this->_getCarrierList();
                             if (isset($result['hasError'])) {
                                 unset($result['hasError']);
                             }
                             if (isset($result['errors'])) {
                                 unset($result['errors']);
                             }
                             $wrapping_fees = $this->context->cart->getGiftWrappingPrice(false);
                             $wrapping_fees_tax_inc = $wrapping_fees = $this->context->cart->getGiftWrappingPrice();
                             $result = array_merge($result, array('HOOK_TOP_PAYMENT' => Hook::exec('displayPaymentTop'), 'HOOK_PAYMENT' => $this->_getPaymentMethods(), 'gift_price' => Tools::displayPrice(Tools::convertPrice(Product::getTaxCalculationMethod() == 1 ? $wrapping_fees : $wrapping_fees_tax_inc, new Currency((int) $this->context->cookie->id_currency))), 'carrier_data' => $this->_getCarrierList(), 'refresh' => (bool) $this->ajax_refresh), $this->getFormatedSummaryDetail());
                             die(Tools::jsonEncode($result));
                         }
                         if (count($this->errors)) {
                             die(Tools::jsonEncode(array('hasError' => true, 'errors' => $this->errors)));
                         }
                         break;
                     case 'multishipping':
                         $this->_assignSummaryInformations();
                         $this->context->smarty->assign('product_list', $this->context->cart->getProducts());
                         if ($this->context->customer->id) {
                             $this->context->smarty->assign('address_list', $this->context->customer->getAddresses($this->context->language->id));
                         } else {
                             $this->context->smarty->assign('address_list', array());
                         }
                         $this->setTemplate(_PS_THEME_DIR_ . 'order-address-multishipping-products.tpl');
                         $this->display();
                         die;
                     case 'cartReload':
                         $this->_assignSummaryInformations();
                         if ($this->context->customer->id) {
                             $this->context->smarty->assign('address_list', $this->context->customer->getAddresses($this->context->language->id));
                         } else {
                             $this->context->smarty->assign('address_list', array());
                         }
                         $this->context->smarty->assign('opc', true);
                         $this->setTemplate(_PS_THEME_DIR_ . 'shopping-cart.tpl');
                         $this->display();
                         die;
                     case 'noMultiAddressDelivery':
                         $this->context->cart->setNoMultishipping();
                         die;
                     case 'executeOrder':
                         $customer = new Customer((int) $this->context->cart->id_customer);
                         if (!Validate::isLoadedObject($customer)) {
                             $customer->is_guest = true;
                             $customer->lastname = 'AmazonPayments';
                             $customer->firstname = 'AmazonPayments';
                             $customer->email = 'amazon' . time() . '@localshop.xyz';
                             $customer->passwd = Tools::substr(md5(time()), 0, 10);
                             $customer->save();
                         }
                         if (Tools::getValue('confirm')) {
                             $total = $this->context->cart->getOrderTotal(true, Cart::BOTH);
                             $currency_order = new Currency((int) $this->context->cart->id_currency);
                             $currency_code = $currency_order->iso_code;
                             if (!AmazonTransactions::isAlreadyConfirmedOrder(Tools::getValue('amazonOrderReferenceId'))) {
                                 $set_order_reference_details_request = new OffAmazonPaymentsService_Model_SetOrderReferenceDetailsRequest();
                                 $set_order_reference_details_request->setSellerId(self::$amz_payments->merchant_id);
                                 $set_order_reference_details_request->setAmazonOrderReferenceId(Tools::getValue('amazonOrderReferenceId'));
                                 $set_order_reference_details_request->setOrderReferenceAttributes(new OffAmazonPaymentsService_Model_OrderReferenceAttributes());
                                 $set_order_reference_details_request->getOrderReferenceAttributes()->setOrderTotal(new OffAmazonPaymentsService_Model_OrderTotal());
                                 $set_order_reference_details_request->getOrderReferenceAttributes()->getOrderTotal()->setCurrencyCode($currency_code);
                                 $set_order_reference_details_request->getOrderReferenceAttributes()->getOrderTotal()->setAmount($total);
                                 $set_order_reference_details_request->getOrderReferenceAttributes()->setPlatformId(self::$amz_payments->getPfId());
                                 $set_order_reference_details_request->getOrderReferenceAttributes()->setSellerOrderAttributes(new OffAmazonPaymentsService_Model_SellerOrderAttributes());
                                 $set_order_reference_details_request->getOrderReferenceAttributes()->getSellerOrderAttributes()->setSellerOrderId(self::$amz_payments->createUniqueOrderId((int) $this->context->cart->id));
                                 $set_order_reference_details_request->getOrderReferenceAttributes()->getSellerOrderAttributes()->setStoreName(Configuration::get('PS_SHOP_NAME'));
                                 $this->service->setOrderReferenceDetails($set_order_reference_details_request);
                                 $confirm_order_reference_request = new OffAmazonPaymentsService_Model_ConfirmOrderReferenceRequest();
                                 $confirm_order_reference_request->setAmazonOrderReferenceId(Tools::getValue('amazonOrderReferenceId'));
                                 $confirm_order_reference_request->setSellerId(self::$amz_payments->merchant_id);
                                 $this->service->confirmOrderReference($confirm_order_reference_request);
                                 $get_order_reference_details_request = new OffAmazonPaymentsService_Model_GetOrderReferenceDetailsRequest();
                                 $get_order_reference_details_request->setSellerId(self::$amz_payments->merchant_id);
                                 $get_order_reference_details_request->setAmazonOrderReferenceId(Tools::getValue('amazonOrderReferenceId'));
                                 if (isset($this->context->cookie->amz_access_token)) {
                                     $get_order_reference_details_request->setAddressConsentToken(AmzPayments::prepareCookieValueForAmazonPaymentsUse($this->context->cookie->amz_access_token));
                                 }
                                 $reference_details_result_wrapper = $this->service->getOrderReferenceDetails($get_order_reference_details_request);
                                 $sql_arr = array('amz_tx_time' => pSQL(time()), 'amz_tx_type' => 'order_ref', 'amz_tx_status' => pSQL($reference_details_result_wrapper->GetOrderReferenceDetailsResult->getOrderReferenceDetails()->getOrderReferenceStatus()->getState()), 'amz_tx_order_reference' => pSQL(Tools::getValue('amazonOrderReferenceId')), 'amz_tx_expiration' => pSQL(strtotime($reference_details_result_wrapper->GetOrderReferenceDetailsResult->getOrderReferenceDetails()->getExpirationTimestamp())), 'amz_tx_reference' => pSQL(Tools::getValue('amazonOrderReferenceId')), 'amz_tx_amz_id' => pSQL(Tools::getValue('amazonOrderReferenceId')), 'amz_tx_last_change' => pSQL(time()), 'amz_tx_amount' => pSQL($reference_details_result_wrapper->GetOrderReferenceDetailsResult->getOrderReferenceDetails()->getOrderTotal()->getAmount()));
                                 Db::getInstance()->insert('amz_transactions', $sql_arr);
                             } else {
                                 $get_order_reference_details_request = new OffAmazonPaymentsService_Model_GetOrderReferenceDetailsRequest();
                                 $get_order_reference_details_request->setSellerId(self::$amz_payments->merchant_id);
                                 $get_order_reference_details_request->setAmazonOrderReferenceId(Tools::getValue('amazonOrderReferenceId'));
                                 if (isset($this->context->cookie->amz_access_token)) {
                                     $get_order_reference_details_request->setAddressConsentToken(AmzPayments::prepareCookieValueForAmazonPaymentsUse($this->context->cookie->amz_access_token));
                                 }
                                 $reference_details_result_wrapper = $this->service->getOrderReferenceDetails($get_order_reference_details_request);
                             }
                             $physical_destination = $reference_details_result_wrapper->GetOrderReferenceDetailsResult->getOrderReferenceDetails()->getDestination()->getPhysicalDestination();
                             $iso_code = (string) $physical_destination->GetCountryCode();
                             $city = (string) $physical_destination->GetCity();
                             $postcode = (string) $physical_destination->GetPostalCode();
                             $state = (string) $physical_destination->GetStateOrRegion();
                             $names_array = explode(' ', (string) $physical_destination->getName(), 2);
                             $regex = '/[^a-zA-ZäöüÄÖÜßÂâÀÁáàÇçÈÉËëéèÎîÏïÙÛùúòóûêôíÍŸÿªñÑ\\s]/u';
                             $names_array[0] = preg_replace($regex, '', $names_array[0]);
                             $names_array[1] = preg_replace($regex, '', $names_array[1]);
                             if ($customer->is_guest) {
                                 $customer->lastname = $names_array[1];
                                 $customer->firstname = $names_array[0];
                                 $customer->email = (string) $reference_details_result_wrapper->GetOrderReferenceDetailsResult->getOrderReferenceDetails()->getBuyer()->getEmail();
                                 $customer->save();
                                 $this->context->cart->id_customer = $customer->id;
                                 $this->context->cart->save();
                             }
                             $s_company_name = '';
                             if ((string) $physical_destination->getAddressLine3() != '') {
                                 $s_street = Tools::substr($physical_destination->getAddressLine3(), 0, Tools::strrpos($physical_destination->getAddressLine3(), ' '));
                                 $s_street_nr = Tools::substr($physical_destination->getAddressLine3(), Tools::strrpos($physical_destination->getAddressLine3(), ' ') + 1);
                                 $s_company_name = trim($physical_destination->getAddressLine1() . $physical_destination->getAddressLine2());
                             } else {
                                 if ((string) $physical_destination->getAddressLine2() != '') {
                                     $s_street = Tools::substr($physical_destination->getAddressLine2(), 0, Tools::strrpos($physical_destination->getAddressLine2(), ' '));
                                     $s_street_nr = Tools::substr($physical_destination->getAddressLine2(), Tools::strrpos($physical_destination->getAddressLine2(), ' ') + 1);
                                     $s_company_name = trim($physical_destination->getAddressLine1());
                                 } else {
                                     $s_street = Tools::substr($physical_destination->getAddressLine1(), 0, Tools::strrpos($physical_destination->getAddressLine1(), ' '));
                                     $s_street_nr = Tools::substr($physical_destination->getAddressLine1(), Tools::strrpos($physical_destination->getAddressLine1(), ' ') + 1);
                                 }
                             }
                             $phone = '';
                             if ((string) $physical_destination->getPhone() != '' && ValidateCore::isPhoneNumber((string) $physical_destination->getPhone())) {
                                 $phone = (string) $physical_destination->getPhone();
                             }
                             $address_delivery = AmazonPaymentsAddressHelper::findByAmazonOrderReferenceIdOrNew(Tools::getValue('amazonOrderReferenceId'));
                             $address_delivery->lastname = $names_array[1];
                             $address_delivery->firstname = $names_array[0];
                             if ($s_company_name != '') {
                                 $address_delivery->company = $s_company_name;
                             }
                             $address_delivery->address1 = (string) $s_street . ' ' . (string) $s_street_nr;
                             $address_delivery->postcode = (string) $physical_destination->getPostalCode();
                             $address_delivery->id_country = Country::getByIso((string) $physical_destination->getCountryCode());
                             if ($phone != '') {
                                 $address_delivery->phone = $phone;
                             }
                             if ($state != '') {
                                 $state_id = State::getIdByIso($state, Country::getByIso((string) $physical_destination->getCountryCode()));
                                 if (!$state_id) {
                                     $state_id = State::getIdByName($state);
                                 }
                                 if ($state_id) {
                                     $address_delivery->id_state = $state_id;
                                 }
                             }
                             $address_delivery->save();
                             AmazonPaymentsAddressHelper::saveAddressAmazonReference($address_delivery, Tools::getValue('amazonOrderReferenceId'));
                             $this->context->cart->id_address_delivery = $address_delivery->id;
                             $billing_address_object = $reference_details_result_wrapper->GetOrderReferenceDetailsResult->getOrderReferenceDetails()->getBillingAddress();
                             if (method_exists($billing_address_object, 'getPhysicalAddress')) {
                                 $amz_billing_address = $reference_details_result_wrapper->GetOrderReferenceDetailsResult->getOrderReferenceDetails()->getBillingAddress()->getPhysicalAddress();
                                 $iso_code = (string) $amz_billing_address->GetCountryCode();
                                 $city = (string) $amz_billing_address->GetCity();
                                 $postcode = (string) $amz_billing_address->GetPostalCode();
                                 $state = (string) $amz_billing_address->GetStateOrRegion();
                                 $invoice_names_array = explode(' ', (string) $amz_billing_address->getName(), 2);
                                 $regex = '/[^a-zA-ZäöüÄÖÜßÂâÀÁáàÇçÈÉËëéèÎîÏïÙÛùúòóûêôíÍŸÿªñÑ\\s]/u';
                                 $invoice_names_array[0] = preg_replace($regex, '', $invoice_names_array[0]);
                                 $invoice_names_array[1] = preg_replace($regex, '', $invoice_names_array[1]);
                                 $s_company_name = '';
                                 if ((string) $amz_billing_address->getAddressLine3() != '') {
                                     $s_street = Tools::substr($amz_billing_address->getAddressLine3(), 0, Tools::strrpos($amz_billing_address->getAddressLine3(), ' '));
                                     $s_street_nr = Tools::substr($amz_billing_address->getAddressLine3(), Tools::strrpos($amz_billing_address->getAddressLine3(), ' ') + 1);
                                     $s_company_name = trim($amz_billing_address->getAddressLine1() . $amz_billing_address->getAddressLine2());
                                 } else {
                                     if ((string) $amz_billing_address->getAddressLine2() != '') {
                                         $s_street = Tools::substr($amz_billing_address->getAddressLine2(), 0, Tools::strrpos($amz_billing_address->getAddressLine2(), ' '));
                                         $s_street_nr = Tools::substr($amz_billing_address->getAddressLine2(), Tools::strrpos($amz_billing_address->getAddressLine2(), ' ') + 1);
                                         $s_company_name = trim($amz_billing_address->getAddressLine1());
                                     } else {
                                         $s_street = Tools::substr($amz_billing_address->getAddressLine1(), 0, Tools::strrpos($amz_billing_address->getAddressLine1(), ' '));
                                         $s_street_nr = Tools::substr($amz_billing_address->getAddressLine1(), Tools::strrpos($amz_billing_address->getAddressLine1(), ' ') + 1);
                                     }
                                 }
                                 $phone = '';
                                 if ((string) $amz_billing_address->getPhone() != '' && ValidateCore::isPhoneNumber((string) $amz_billing_address->getPhone())) {
                                     $phone = (string) $amz_billing_address->getPhone();
                                 }
                                 $address_invoice = AmazonPaymentsAddressHelper::findByAmazonOrderReferenceIdOrNew(Tools::getValue('amazonOrderReferenceId') . '-inv');
                                 $address_invoice->alias = 'Amazon Payments Invoice';
                                 $address_invoice->lastname = $invoice_names_array[1];
                                 $address_invoice->firstname = $invoice_names_array[0];
                                 if ($s_company_name != '') {
                                     $address_invoice->company = $s_company_name;
                                 }
                                 $address_invoice->address1 = (string) $s_street . ' ' . (string) $s_street_nr;
                                 $address_invoice->postcode = (string) $amz_billing_address->getPostalCode();
                                 $address_invoice->city = $city;
                                 $address_invoice->id_country = Country::getByIso((string) $amz_billing_address->getCountryCode());
                                 if ($phone != '') {
                                     $address_invoice->phone = $phone;
                                 }
                                 if ($state != '') {
                                     $state_id = State::getIdByIso($state, Country::getByIso((string) $amz_billing_address->getCountryCode()));
                                     if (!$state_id) {
                                         $state_id = State::getIdByName($state);
                                     }
                                     if ($state_id) {
                                         $address_invoice->id_state = $state_id;
                                     }
                                 }
                                 $address_invoice->save();
                                 AmazonPaymentsAddressHelper::saveAddressAmazonReference($address_invoice, Tools::getValue('amazonOrderReferenceId') . '-inv');
                                 $this->context->cart->id_address_invoice = $address_invoice->id;
                             } else {
                                 $this->context->cart->id_address_invoice = $address_delivery->id;
                                 $address_invoice = $address_delivery;
                             }
                             $this->context->cart->save();
                             if (self::$amz_payments->authorization_mode == 'fast_auth') {
                                 $authorization_reference_id = Tools::getValue('amazonOrderReferenceId');
                                 if (isset($this->context->cookie->setHadErrorNowWallet) && $this->context->cookie->setHadErrorNowWallet == 1) {
                                     $confirm_order_ref_req_model = new OffAmazonPaymentsService_Model_ConfirmOrderReferenceRequest();
                                     $confirm_order_ref_req_model->setAmazonOrderReferenceId(Tools::getValue('amazonOrderReferenceId'));
                                     $confirm_order_ref_req_model->setSellerId(self::$amz_payments->merchant_id);
                                     try {
                                         $this->service->confirmOrderReference($confirm_order_ref_req_model);
                                     } catch (OffAmazonPaymentsService_Exception $e) {
                                         echo 'ERROR: ' . $e->getMessage();
                                     }
                                     unset($this->context->cookie->setHadErrorNowWallet);
                                 }
                                 $authorization_response_wrapper = AmazonTransactions::fastAuth(self::$amz_payments, $this->service, $authorization_reference_id, $total, $currency_code);
                                 if (is_object($authorization_response_wrapper)) {
                                     $details = $authorization_response_wrapper->getAuthorizeResult()->getAuthorizationDetails();
                                     $status = $details->getAuthorizationStatus()->getState();
                                     if ($status == 'Declined') {
                                         $reason = $details->getAuthorizationStatus()->getReasonCode();
                                         if ($reason == 'InvalidPaymentMethod') {
                                             $this->context->cookie->setHadErrorNowWallet = 1;
                                             die(Tools::jsonEncode(array('hasError' => true, 'errors' => array(Tools::displayError(self::$amz_payments->l('Your selected payment method is currently not available. Please select another one.'))))));
                                         } else {
                                             die(Tools::jsonEncode(array('hasError' => true, 'redirection' => 'index.php?controller=order', 'errors' => array(Tools::displayError(self::$amz_payments->l('Your selected payment method has been declined. Please chose another one.'))))));
                                         }
                                     }
                                     $amazon_authorization_id = $authorization_response_wrapper->getAuthorizeResult()->getAuthorizationDetails()->getAmazonAuthorizationId();
                                     /*
                                     if (self::$amz_payments->capture_mode == 'after_auth') {
                                         $amazon_capture_response = AmazonTransactions::capture(self::$amz_payments, $this->service, $amazon_authorization_id, $total, $currency_code);
                                         if (is_object($amazon_capture_response)) {
                                             $amazon_capture_id = $amazon_capture_response->getCaptureResult()
                                                 ->getCaptureDetails()
                                                 ->getAmazonCaptureId();
                                             $amazon_capture_reference_id = $amazon_capture_response->getCaptureResult()
                                                 ->getCaptureDetails()
                                                 ->getCaptureReferenceId();
                                         }
                                     }
                                     */
                                 }
                             }
                             if ($this->context->cart->secure_key == '') {
                                 $this->context->cart->secure_key = $customer->secure_key;
                                 $this->context->cart->save();
                             }
                             $new_order_status_id = (int) Configuration::get('PS_OS_PREPARATION');
                             if ((int) Configuration::get('AMZ_ORDER_STATUS_ID') > 0) {
                                 $new_order_status_id = Configuration::get('AMZ_ORDER_STATUS_ID');
                             }
                             $this->module->validateOrder((int) $this->context->cart->id, $new_order_status_id, $total, $this->module->displayName, null, array(), null, false, $customer->secure_key);
                             if (self::$amz_payments->authorization_mode == 'after_checkout') {
                                 $authorization_reference_id = Tools::getValue('amazonOrderReferenceId');
                                 $authorization_response_wrapper = AmazonTransactions::authorize(self::$amz_payments, $this->service, $authorization_reference_id, $total, $currency_code);
                                 $amazon_authorization_id = @$authorization_response_wrapper->getAuthorizeResult()->getAuthorizationDetails()->getAmazonAuthorizationId();
                                 /*
                                 if (self::$amz_payments->capture_mode == 'after_auth' && isset($amazon_authorization_id) && $amazon_authorization_id !== false && $amazon_authorization_id != null) {
                                     $amazon_capture_response = AmazonTransactions::capture(self::$amz_payments, $this->service, $amazon_authorization_id, $total, $currency_code);
                                     if (is_object($amazon_capture_response)) {
                                         $amazon_capture_id = $amazon_capture_response->getCaptureResult()
                                             ->getCaptureDetails()
                                             ->getAmazonCaptureId();
                                         $amazon_capture_reference_id = $amazon_capture_response->getCaptureResult()
                                             ->getCaptureDetails()
                                             ->getCaptureReferenceId();
                                     }
                                 }
                                 */
                             }
                             self::$amz_payments->setAmazonReferenceIdForOrderId(Tools::getValue('amazonOrderReferenceId'), $this->module->currentOrder);
                             self::$amz_payments->setAmazonReferenceIdForOrderTransactionId(Tools::getValue('amazonOrderReferenceId'), $this->module->currentOrder);
                             if (isset($authorization_reference_id)) {
                                 self::$amz_payments->setAmazonAuthorizationReferenceIdForOrderId($authorization_reference_id, $this->module->currentOrder);
                             }
                             if (isset($amazon_authorization_id)) {
                                 self::$amz_payments->setAmazonAuthorizationIdForOrderId($amazon_authorization_id, $this->module->currentOrder);
                             }
                             /*
                             if (isset($amazon_capture_reference_id)) {
                                 self::$amz_payments->setAmazonCaptureReferenceIdForOrderId($amazon_capture_reference_id, $this->module->currentOrder);
                             }
                             if (isset($amazon_capture_id)) {
                                 self::$amz_payments->setAmazonCaptureIdForOrderId($amazon_capture_id, $this->module->currentOrder);
                             }
                             */
                             if (isset($this->context->cookie->amzSetStatusAuthorized)) {
                                 $tmpOrderRefs = Tools::unSerialize($this->context->cookie->amzSetStatusAuthorized);
                                 if (is_array($tmpOrderRefs)) {
                                     foreach ($tmpOrderRefs as $order_ref) {
                                         AmazonTransactions::setOrderStatusAuthorized($order_ref);
                                     }
                                 }
                                 unset($this->context->cookie->amzSetStatusAuthorized);
                             }
                             if (isset($this->context->cookie->amzSetStatusCaptured)) {
                                 $tmpOrderRefs = Tools::unSerialize($this->context->cookie->amzSetStatusCaptured);
                                 if (is_array($tmpOrderRefs)) {
                                     foreach ($tmpOrderRefs as $order_ref) {
                                         AmazonTransactions::setOrderStatusCaptured($order_ref);
                                     }
                                 }
                                 unset($this->context->cookie->amzSetStatusCaptured);
                             }
                             if (Tools::getValue('connect_amz_account') == '1') {
                                 $this->context->cookie->amz_connect_order = $this->module->currentOrder;
                                 $this->context->cookie->amz_payments_address_id = $address_delivery->id;
                                 $this->context->cookie->amz_payments_invoice_address_id = $address_invoice->id;
                                 $login_redirect = $this->context->link->getModuleLink('amzpayments', 'process_login');
                                 $login_redirect = str_replace('http://', 'https://', $login_redirect);
                                 $login_redirect .= '?fromCheckout=1&access_token=' . $this->context->cookie->amz_access_token;
                                 die(Tools::jsonEncode(array('orderSucceed' => true, 'redirection' => $login_redirect)));
                             }
                             if (!$customer->is_guest) {
                                 if (!AmzPayments::addressAlreadyExists($address_delivery, $customer)) {
                                     $address_delivery->id_customer = $customer->id;
                                     $address_delivery->save();
                                 }
                                 if (!AmzPayments::addressAlreadyExists($address_invoice, $customer)) {
                                     $address_invoice->id_customer = $customer->id;
                                     $address_invoice->save();
                                 }
                             } else {
                                 if ($registered_customer = AmazonPaymentsCustomerHelper::findByEmailAddress($customer->email)) {
                                     if (!AmzPayments::addressAlreadyExists($address_delivery, $registered_customer)) {
                                         $address_delivery->id_customer = $registered_customer->id;
                                         $address_delivery->save();
                                     }
                                     if (!AmzPayments::addressAlreadyExists($address_invoice, $registered_customer)) {
                                         $address_invoice->id_customer = $registered_customer->id;
                                         $address_invoice->save();
                                     }
                                 }
                                 $this->context->cookie->show_success_amz_message = true;
                             }
                             die(Tools::jsonEncode(array('orderSucceed' => true, 'redirection' => __PS_BASE_URI__ . 'index.php?controller=order-confirmation&id_cart=' . (int) $this->context->cart->id . '&id_module=' . $this->module->id . '&id_order=' . $this->module->currentOrder . '&key=' . $customer->secure_key)));
                         }
                         die;
                     default:
                         throw new PrestaShopException('Unknown method "' . Tools::getValue('method') . '"');
                 }
             } else {
                 throw new PrestaShopException('Method is not defined');
             }
         }
     } elseif (Tools::isSubmit('ajax')) {
         throw new PrestaShopException('Method is not defined');
     }
 }
 public function process()
 {
     parent::process();
     if (!($id_category = (int) Tools::getValue('id_category')) or !Validate::isUnsignedId($id_category)) {
         $this->errors[] = Tools::displayError('Missing category ID');
     } else {
         if (!Validate::isLoadedObject($this->category)) {
             $this->errors[] = Tools::displayError('Category does not exist');
         } elseif (!$this->category->checkAccess((int) self::$cookie->id_customer)) {
             $this->errors[] = Tools::displayError('You do not have access to this category.');
         } elseif (!$this->category->active) {
             self::$smarty->assign('category', $this->category);
         } else {
             $rewrited_url = self::$link->getCategoryLink((int) $this->category->id, $this->category->link_rewrite);
             /* Scenes  (could be externalised to another controler if you need them */
             self::$smarty->assign('scenes', Scene::getScenes((int) $this->category->id, (int) self::$cookie->id_lang, true, false));
             /* Scenes images formats */
             if ($sceneImageTypes = ImageType::getImagesTypes('scenes')) {
                 foreach ($sceneImageTypes as $sceneImageType) {
                     if ($sceneImageType['name'] == 'thumb_scene') {
                         $thumbSceneImageType = $sceneImageType;
                     } elseif ($sceneImageType['name'] == 'large_scene') {
                         $largeSceneImageType = $sceneImageType;
                     }
                 }
                 self::$smarty->assign('thumbSceneImageType', isset($thumbSceneImageType) ? $thumbSceneImageType : NULL);
                 self::$smarty->assign('largeSceneImageType', isset($largeSceneImageType) ? $largeSceneImageType : NULL);
             }
             $this->category->description = nl2br2($this->category->description);
             $subCategories = $this->category->getSubCategories((int) self::$cookie->id_lang);
             self::$smarty->assign('category', $this->category);
             if (isset($subCategories) and !empty($subCategories) and $subCategories) {
                 self::$smarty->assign('subcategories', $subCategories);
                 self::$smarty->assign(array('subcategories_nb_total' => sizeof($subCategories), 'subcategories_nb_half' => ceil(sizeof($subCategories) / 2)));
             }
             if ($this->category->id != 1) {
                 $this->productListAssign();
             }
             self::$smarty->assign(array('products' => (isset($this->cat_products) and $this->cat_products) ? $this->cat_products : NULL, 'id_category' => (int) $this->category->id, 'id_category_parent' => (int) $this->category->id_parent, 'return_category_name' => Tools::safeOutput($this->category->name), 'path' => Tools::getPath((int) $this->category->id), 'add_prod_display' => Configuration::get('PS_ATTRIBUTE_CATEGORY_DISPLAY'), 'categorySize' => Image::getSize('category'), 'mediumSize' => Image::getSize('medium'), 'thumbSceneSize' => Image::getSize('thumb_scene'), 'homeSize' => Image::getSize('home')));
             if (isset(self::$cookie->id_customer)) {
                 self::$smarty->assign('compareProducts', CompareProduct::getCustomerCompareProducts((int) self::$cookie->id_customer));
             } elseif (isset(self::$cookie->id_guest)) {
                 self::$smarty->assign('compareProducts', CompareProduct::getGuestCompareProducts((int) self::$cookie->id_guest));
             }
         }
     }
     self::$smarty->assign(array('allow_oosp' => (int) Configuration::get('PS_ORDER_OUT_OF_STOCK'), 'comparator_max_item' => (int) Configuration::get('PS_COMPARATOR_MAX_ITEM'), 'suppliers' => Supplier::getSuppliers()));
 }
 public function processData()
 {
     $ctauohff = "nbProducts";
     $lqphkm = "nbProducts";
     $ysyvzjxyh = "nbProducts";
     ${"GLOBALS"}["dsdvggak"] = "seller_products";
     ${$ctauohff} = $this->getProducts(NULL, NULL, NULL, $this->orderBy, $this->orderWay, true);
     ${"GLOBALS"}["wfbehuenkky"] = "si_1531_later";
     $this->pagination((int) ${$lqphkm});
     self::$smarty->assign("nb_products", (int) ${$ysyvzjxyh});
     ${${"GLOBALS"}["hjmsmx"]} = $this->getProducts((int) self::$cookie->id_lang, (int) $this->p, (int) $this->n, $this->orderBy, $this->orderWay);
     ${"GLOBALS"}["eppbsdtlhhp"] = "si_1531_later";
     AgileHelper::AssignProductImgs(${${"GLOBALS"}["dsdvggak"]});
     ${${"GLOBALS"}["fvpbxlqzzc"]} = version_compare(_PS_VERSION_, "1.5.3.1", ">=");
     include_once _PS_ROOT_DIR_ . "/modules/agilemultipleshop/agilemultipleshop.php";
     ${${"GLOBALS"}["mdcknsjm"]} = new AgileMultipleShop();
     self::$smarty->assign(array("products" => (isset(${${"GLOBALS"}["hjmsmx"]}) and ${${"GLOBALS"}["hjmsmx"]}) ? ${${"GLOBALS"}["hjmsmx"]} : NULL, "id_location" => $this->id_location, "agilesellerproducts_tpl" => _PS_ROOT_DIR_ . "/modules/" . (_PS_VERSION_ > "1.5" ? "agilemultipleshop" : "agilesellerproducts") . "/", "add_prod_display" => Configuration::get("PS_ATTRIBUTE_CATEGORY_DISPLAY"), "categorySize" => Image::getSize(${${"GLOBALS"}["wfbehuenkky"]} ? ImageType::getFormatedName("category") : "category"), "mediumSize" => Image::getSize(${${"GLOBALS"}["fvpbxlqzzc"]} ? ImageType::getFormatedName("medium") : "medium"), "thumbSceneSize" => Image::getSize(${${"GLOBALS"}["eppbsdtlhhp"]} ? ImageType::getFormatedName("thumb_scene") : "thumb_scene"), "homeSize" => Image::getSize(${${"GLOBALS"}["fvpbxlqzzc"]} ? ImageType::getFormatedName("home") : "home"), "path" => $module->getL("Shop By Location")));
     ${${"GLOBALS"}["abbgzzweqn"]} = (int) str_replace(".", "", _PS_VERSION_);
     if (isset(self::$cookie->id_compare)) {
         self::$smarty->assign("compareProducts", CompareProduct::getCompareProducts((int) self::$cookie->id_compare));
     }
     self::$smarty->assign(array("seller_locations4page" => agilemultipleshop::getLocationListNV($this->location_level), "location_level4page" => $this->location_level));
     self::$smarty->assign(array("allow_oosp" => (int) Configuration::get("PS_ORDER_OUT_OF_STOCK"), "comparator_max_item" => (int) Configuration::get("PS_COMPARATOR_MAX_ITEM")));
 }
Ejemplo n.º 11
0
 public function processData()
 {
     if (Module::isInstalled('agilemultipleshop') && Shop::$id_shop_owner > 0) {
         if (!Validate::isLoadedObject($this->seller)) {
             $this->errors[] = Tools::displayError('Seller does not exist');
         } elseif (!$this->seller->active) {
             self::$smarty->assign('seller', $this->seller);
         } else {
             $rewrited_url = self::$link->getAgileSellerLink((int) $this->seller->id, $this->getSellerLinkRwrite());
             $this->seller_info->description = _PS_VERSION_ > '1.5' ? Tools::nl2br($this->seller_info->description) : nl2br2($this->seller_info->description);
             // Setting language and language level
             $language_level = explode(',', $this->seller_info->language_level);
             $language = explode(',', $this->seller_info->language);
             $language_array = array();
             for ($x = 0; $x < count($language); $x++) {
                 $language_array[] = $language[$x] . ' - ' . $language_level[$x];
             }
             $this->seller_info->language = $language_array;
             self::$smarty->assign('seller', $this->seller);
             self::$smarty->assign('seller_info', $this->seller_info);
             $imgPath = _PS_ROOT_DIR_ . DS . 'img' . DS . 'as' . DS . $this->seller_info->id_sellerinfo;
             $licenseImg = _PS_ROOT_DIR_ . DS . 'img' . DS . 'as' . DS . $this->seller_info->id_sellerinfo . '_license';
             $images = scandir($imgPath);
             unset($images[0]);
             unset($images[1]);
             $images = array_values($images);
             @($licenseDir = scandir($licenseImg));
             $licenseExist = count($licenseDir) > 2 ? 1 : 0;
             $this->seller_info->seller_images = $images;
             $sellermodule = new AgileMultipleSeller();
             $conf = Configuration::getMultiple($sellermodule->getCustomFields());
             $custom_labels = $sellermodule->getCustomLabels();
             self::$smarty->assign('conf', $conf);
             self::$smarty->assign('custom_labels', $custom_labels);
             $nbProducts = $this->getProducts(NULL, NULL, NULL, $this->orderBy, $this->orderWay, true);
             $this->pagination((int) $nbProducts);
             self::$smarty->assign('nb_products', (int) $nbProducts);
             $seller_products = $this->getProducts((int) self::$cookie->id_lang, (int) $this->p, (int) $this->n, $this->orderBy, $this->orderWay);
             AgileHelper::AssignProductImgs($seller_products);
             $si_1531_later = version_compare(_PS_VERSION_, '1.5.3.1', ">=");
             $HOOK_SELLER_RATINGS = '';
             if (Module::isInstalled('agilesellerratings')) {
                 require_once _PS_ROOT_DIR_ . "/modules/agilesellerratings/agilesellerratings.php";
                 $rmodule = new AgileSellerRatings();
                 $HOOK_SELLER_RATINGS = $rmodule->getAverageRating($this->id_seller, AgileSellerRatings::RATING_TYPE_SELLER);
             }
             /*foreach($seller_products as $k => $v) {
             			$country = $v['country'];
             			$flagId = Country::getIdByName(1, $country);
             			$seller_products[$k]['img_exist']	= file_exists(_PS_ROOT_DIR_ . DS . 'flag' . DS . 'mini'. DS . $flagId . '.jpg')? 1 : 0;
             			$seller_products[$k]['img_name']	= $flagId . '.jpg';
             		}*/
             foreach ($seller_products as $key => $value) {
                 $seller_id = $value['id_seller'];
                 $flagIds = self::getFlagsId($seller_id);
                 foreach ($flagIds as $k => $flgId) {
                     $seller_products[$key]['img_exist'][$k] = file_exists(_PS_ROOT_DIR_ . DS . 'flag' . DS . 'mini' . DS . $flgId . '.jpg') ? 1 : 0;
                     $seller_products[$key]['img_name'][$k] = $flgId . '.jpg';
                 }
             }
             // die('<pre>' . print_r($seller_products, true));
             self::$smarty->assign(array('products' => (isset($seller_products) and $seller_products) ? $seller_products : NULL, 'license_exist' => $licenseExist, 'id_seller' => (int) $this->seller->id, 'path' => $this->seller_info->company, 'agilesellerproducts_tpl' => _PS_ROOT_DIR_ . "/modules/agilesellerproducts/", 'agilemultipleshop_tpl' => _PS_ROOT_DIR_ . "/modules/agilemultipleshop/", 'add_prod_display' => Configuration::get('PS_ATTRIBUTE_CATEGORY_DISPLAY'), 'categorySize' => Image::getSize($si_1531_later ? ImageType::getFormatedName('category') : 'category'), 'mediumSize' => Image::getSize($si_1531_later ? ImageType::getFormatedName('medium') : 'medium'), 'thumbSceneSize' => Image::getSize($si_1531_later ? ImageType::getFormatedName('thumb_scene') : 'thumb_scene'), 'homeSize' => Image::getSize($si_1531_later ? ImageType::getFormatedName('home') : 'home'), 'HOOK_SELLER_RATINGS' => $HOOK_SELLER_RATINGS, 'page_name' => 'agileseller'));
             $ver = (int) str_replace(".", "", _PS_VERSION_);
             if ($ver <= 1430) {
             } else {
                 if ($ver <= 1451) {
                     if (isset(self::$cookie->id_customer)) {
                         self::$smarty->assign('compareProducts', CompareProduct::getCustomerCompareProducts((int) self::$cookie->id_customer));
                     } elseif (isset(self::$cookie->id_guest)) {
                         self::$smarty->assign('compareProducts', CompareProduct::getGuestCompareProducts((int) self::$cookie->id_guest));
                     }
                 } else {
                     if (isset(self::$cookie->id_compare)) {
                         self::$smarty->assign('compareProducts', CompareProduct::getCompareProducts((int) self::$cookie->id_compare));
                     }
                 }
             }
         }
         self::$smarty->assign(array('allow_oosp' => (int) Configuration::get('PS_ORDER_OUT_OF_STOCK'), 'comparator_max_item' => (int) Configuration::get('PS_COMPARATOR_MAX_ITEM'), 'suppliers' => Supplier::getSuppliers()));
     }
 }
Ejemplo n.º 12
0
 private function processLogin($customer)
 {
     if (!Validate::isLoadedObject($customer)) {
         FSLTools::returnError(Tools::displayError('Bad customer object.'));
     }
     Hook::exec('actionBeforeAuthentication');
     $context = $this->context;
     $context->cookie->id_compare = isset($context->cookie->id_compare) ? $context->cookie->id_compare : CompareProduct::getIdCompareByIdCustomer($customer->id);
     $context->cookie->id_customer = (int) $customer->id;
     $context->cookie->customer_lastname = $customer->lastname;
     $context->cookie->customer_firstname = $customer->firstname;
     $context->cookie->logged = 1;
     $customer->logged = 1;
     $context->cookie->is_guest = $customer->isGuest();
     $context->cookie->passwd = $customer->passwd;
     $context->cookie->email = $customer->email;
     // Add customer to the context
     $context->customer = $customer;
     if (isset($context->cart)) {
         if (Configuration::get('PS_CART_FOLLOWING') && (empty($context->cookie->id_cart) || Cart::getNbProducts($context->cookie->id_cart) == 0) && ($id_cart = (int) Cart::lastNoneOrderedCart($context->customer->id))) {
             $context->cart = new Cart($id_cart);
         } else {
             $id_carrier = (int) $context->cart->id_carrier;
             $context->cart->id_carrier = 0;
             $context->cart->setDeliveryOption(null);
             $context->cart->id_address_delivery = (int) Address::getFirstCustomerAddressId((int) $customer->id);
             $context->cart->id_address_invoice = (int) Address::getFirstCustomerAddressId((int) $customer->id);
         }
         $context->cart->id_customer = (int) $customer->id;
         $context->cart->secure_key = $customer->secure_key;
         if (isset($id_carrier) && $id_carrier && Configuration::get('PS_ORDER_PROCESS_TYPE')) {
             $delivery_option = array($context->cart->id_address_delivery => $id_carrier . ',');
             $context->cart->setDeliveryOption($delivery_option);
         }
         $context->cart->save();
         $context->cookie->id_cart = (int) $context->cart->id;
         $context->cart->autosetProductAddress();
     }
     $context->cookie->write();
     Hook::exec('actionAuthentication');
     // Login information have changed, so we check if the cart rules still apply
     CartRule::autoRemoveFromCart($context);
     CartRule::autoAddToCart($context);
 }
Ejemplo n.º 13
0
 /**
  * Process login
  */
 protected function processSubmitLogin()
 {
     Hook::exec('actionBeforeAuthentication');
     $passwd = trim(Tools::getValue('passwd'));
     $_POST['passwd'] = null;
     $email = trim(Tools::getValue('email'));
     if (empty($email)) {
         $this->errors[] = Tools::displayError('An email address required.');
     } elseif (!Validate::isEmail($email)) {
         $this->errors[] = Tools::displayError('Invalid email address.');
     } elseif (empty($passwd)) {
         $this->errors[] = Tools::displayError('Password is required.');
     } elseif (!Validate::isPasswd($passwd)) {
         $this->errors[] = Tools::displayError('Invalid password.');
     } else {
         $customer = new Customer();
         $authentication = $customer->getByEmail(trim($email), trim($passwd));
         if (isset($authentication->active) && !$authentication->active) {
             $this->errors[] = Tools::displayError('Your account isn\'t available at this time, please contact us');
         } elseif (!$authentication || !$customer->id) {
             $this->errors[] = Tools::displayError('Authentication failed.');
         } else {
             $this->context->cookie->id_compare = isset($this->context->cookie->id_compare) ? $this->context->cookie->id_compare : CompareProduct::getIdCompareByIdCustomer($customer->id);
             $this->context->cookie->id_customer = (int) $customer->id;
             $this->context->cookie->customer_lastname = $customer->lastname;
             $this->context->cookie->customer_firstname = $customer->firstname;
             $this->context->cookie->logged = 1;
             $customer->logged = 1;
             $this->context->cookie->is_guest = $customer->isGuest();
             $this->context->cookie->passwd = $customer->passwd;
             $this->context->cookie->email = $customer->email;
             // Add customer to the context
             $this->context->customer = $customer;
             if (Configuration::get('PS_CART_FOLLOWING') && (empty($this->context->cookie->id_cart) || Cart::getNbProducts($this->context->cookie->id_cart) == 0) && ($id_cart = (int) Cart::lastNoneOrderedCart($this->context->customer->id))) {
                 $this->context->cart = new Cart($id_cart);
             } else {
                 $id_carrier = (int) $this->context->cart->id_carrier;
                 $this->context->cart->id_carrier = 0;
                 $this->context->cart->setDeliveryOption(null);
                 $this->context->cart->id_address_delivery = (int) Address::getFirstCustomerAddressId((int) $customer->id);
                 $this->context->cart->id_address_invoice = (int) Address::getFirstCustomerAddressId((int) $customer->id);
             }
             $this->context->cart->id_customer = (int) $customer->id;
             $this->context->cart->secure_key = $customer->secure_key;
             if ($this->ajax && isset($id_carrier) && $id_carrier && Configuration::get('PS_ORDER_PROCESS_TYPE')) {
                 $delivery_option = array($this->context->cart->id_address_delivery => $id_carrier . ',');
                 $this->context->cart->setDeliveryOption($delivery_option);
             }
             $this->context->cart->save();
             $this->context->cookie->id_cart = (int) $this->context->cart->id;
             $this->context->cookie->write();
             $this->context->cart->autosetProductAddress();
             Hook::exec('actionAuthentication', array('customer' => $this->context->customer));
             // Login information have changed, so we check if the cart rules still apply
             CartRule::autoRemoveFromCart($this->context);
             CartRule::autoAddToCart($this->context);
             if (!$this->ajax) {
                 $back = Tools::getValue('back', 'my-account');
                 if ($back == Tools::secureReferrer($back)) {
                     Tools::redirect(html_entity_decode($back));
                 }
                 Tools::redirect('index.php?controller=' . ($this->authRedirection !== false ? urlencode($this->authRedirection) : $back));
             }
         }
     }
     if ($this->ajax) {
         $return = array('hasError' => !empty($this->errors), 'errors' => $this->errors, 'token' => Tools::getToken(false));
         $this->ajaxDie(Tools::jsonEncode($return));
     } else {
         $this->context->smarty->assign('authentification_error', $this->errors);
     }
 }
Ejemplo n.º 14
0
 public function hookdisplayHeader()
 {
     //$imageSize =  Image::getSize(ImageType::getFormatedName('home'));
     //$this->context->controller->addCSS(($this->_path).'css/front-end/style.css');
     $this->context->controller->addJS($this->_path . 'js/front-end/common.js');
     $this->context->controller->addJS($this->_path . 'js/front-end/jquery.actual.min.js');
     $this->context->smarty->assign(array('comparator_max_item' => (int) Configuration::get('PS_COMPARATOR_MAX_ITEM'), 'baseModuleUrl' => __PS_BASE_URI__ . 'modules/' . $this->name, 'imageSize' => $this->imageHomeSize, 'h_per_w' => round($this->imageHomeSize['height'] / $this->imageHomeSize['width'], 2)));
     include_once _PS_CONTROLLER_DIR_ . 'front/CompareController.php';
     if (!($this->compareProductIds = CompareProduct::getCompareProducts($this->context->cookie->id_compare))) {
         $this->compareProductIds = array();
     }
 }
Ejemplo n.º 15
0
 public function processData()
 {
     if (Module::isInstalled('agilemultipleshop') && Shop::$id_shop_owner > 0) {
         if (!Validate::isLoadedObject($this->seller)) {
             $this->errors[] = Tools::displayError('Seller does not exist');
         } elseif (!$this->seller->active) {
             self::$smarty->assign('seller', $this->seller);
         } else {
             $rewrited_url = self::$link->getAgileSellerLink((int) $this->seller->id, $this->getSellerLinkRwrite());
             $this->seller_info->description = _PS_VERSION_ > '1.5' ? Tools::nl2br($this->seller_info->description) : nl2br2($this->seller_info->description);
             self::$smarty->assign('seller', $this->seller);
             self::$smarty->assign('seller_info', $this->seller_info);
             $sellermodule = new AgileMultipleSeller();
             $conf = Configuration::getMultiple($sellermodule->getCustomFields());
             $custom_labels = $sellermodule->getCustomLabels();
             self::$smarty->assign('conf', $conf);
             self::$smarty->assign('custom_labels', $custom_labels);
             $nbProducts = $this->getProducts(NULL, NULL, NULL, $this->orderBy, $this->orderWay, true);
             $this->pagination((int) $nbProducts);
             self::$smarty->assign('nb_products', (int) $nbProducts);
             $seller_products = $this->getProducts((int) self::$cookie->id_lang, (int) $this->p, (int) $this->n, $this->orderBy, $this->orderWay);
             AgileHelper::AssignProductImgs($seller_products);
             $si_1531_later = version_compare(_PS_VERSION_, '1.5.3.1', ">=");
             $HOOK_SELLER_RATINGS = '';
             if (Module::isInstalled('agilesellerratings')) {
                 require_once _PS_ROOT_DIR_ . "/modules/agilesellerratings/agilesellerratings.php";
                 $rmodule = new AgileSellerRatings();
                 $HOOK_SELLER_RATINGS = $rmodule->getAverageRating($this->id_seller, AgileSellerRatings::RATING_TYPE_SELLER);
             }
             self::$smarty->assign(array('products' => (isset($seller_products) and $seller_products) ? $seller_products : NULL, 'id_seller' => (int) $this->seller->id, 'path' => $this->seller_info->company, 'agilesellerproducts_tpl' => _PS_ROOT_DIR_ . "/modules/agilesellerproducts/", 'agilemultipleshop_tpl' => _PS_ROOT_DIR_ . "/modules/agilemultipleshop/", 'add_prod_display' => Configuration::get('PS_ATTRIBUTE_CATEGORY_DISPLAY'), 'categorySize' => Image::getSize($si_1531_later ? ImageType::getFormatedName('category') : 'category'), 'mediumSize' => Image::getSize($si_1531_later ? ImageType::getFormatedName('medium') : 'medium'), 'thumbSceneSize' => Image::getSize($si_1531_later ? ImageType::getFormatedName('thumb_scene') : 'thumb_scene'), 'homeSize' => Image::getSize($si_1531_later ? ImageType::getFormatedName('home') : 'home'), 'HOOK_SELLER_RATINGS' => $HOOK_SELLER_RATINGS, 'page_name' => 'agileseller'));
             $ver = (int) str_replace(".", "", _PS_VERSION_);
             if ($ver <= 1430) {
             } else {
                 if ($ver <= 1451) {
                     if (isset(self::$cookie->id_customer)) {
                         self::$smarty->assign('compareProducts', CompareProduct::getCustomerCompareProducts((int) self::$cookie->id_customer));
                     } elseif (isset(self::$cookie->id_guest)) {
                         self::$smarty->assign('compareProducts', CompareProduct::getGuestCompareProducts((int) self::$cookie->id_guest));
                     }
                 } else {
                     if (isset(self::$cookie->id_compare)) {
                         self::$smarty->assign('compareProducts', CompareProduct::getCompareProducts((int) self::$cookie->id_compare));
                     }
                 }
             }
         }
         self::$smarty->assign(array('allow_oosp' => (int) Configuration::get('PS_ORDER_OUT_OF_STOCK'), 'comparator_max_item' => (int) Configuration::get('PS_COMPARATOR_MAX_ITEM'), 'suppliers' => Supplier::getSuppliers()));
     }
 }
Ejemplo n.º 16
0
 public function initContent()
 {
     if (!$this->ajax) {
         parent::initContent();
     }
     //  parent::initContent();
     $this->setTemplate(_PS_THEME_DIR_ . 'category.tpl');
     if (!$this->customer_access) {
         return;
     }
     if (isset($this->context->cookie->id_compare)) {
         $this->context->smarty->assign('compareProducts', CompareProduct::getCompareProducts((int) $this->context->cookie->id_compare));
     }
     $this->productSort();
     // Product sort must be called before assignProductList()
     $this->assignScenes();
     $this->assignSubcategories();
     $this->assignProductList();
     $products = isset($this->cat_products) && $this->cat_products ? $this->cat_products : null;
     $combinations = array();
     if ($products !== NULL) {
         foreach ($products as &$pro) {
             $product_obj = new Product($pro['id_product'], $this->context->language->id);
             $pro['groups'] = $product_obj->getProductCombinationsGroups($pro['id_product']);
             $combinations[$pro['id_product']] = $product_obj->getProductAttributeCombinations($pro['id_product']);
             $id_group = (int) Group::getCurrent()->id;
             $group_reduction = GroupReduction::getValueForProduct($pro['id_product'], $id_group);
             if ($group_reduction === false) {
                 $group_reduction = Group::getReduction((int) $this->context->cookie->id_customer) / 100;
             }
             $pro['group_reduction'] = $group_reduction;
             $address = new Address($this->context->cart->{Configuration::get('PS_TAX_ADDRESS_TYPE')});
             $pro['no_tax'] = Tax::excludeTaxeOption() || !$product_obj->getTaxesRate($address);
             $pro['customer_group_without_tax'] = Group::getPriceDisplayMethod($this->context->customer->id_default_group);
             $tax = (double) $product_obj->getTaxesRate(new Address((int) $this->context->cart->{Configuration::get('PS_TAX_ADDRESS_TYPE')}));
             $pro['tax_rate'] = $tax;
             $pro['unit_price_ratio'] = $product_obj->unit_price_ratio;
             $ecotax_rate = (double) Tax::getProductEcotaxRate($this->context->cart->{Configuration::get('PS_TAX_ADDRESS_TYPE')});
             $pro['ecotaxTax_rate'] = $ecotax_rate;
         }
     }
     $this->context->smarty->assign(array('category' => $this->category, 'description_short' => Tools::truncateString($this->category->description, 350), 'products' => $products, 'id_category' => (int) $this->category->id, 'id_category_parent' => (int) $this->category->id_parent, 'return_category_name' => Tools::safeOutput($this->category->name), 'path' => Tools::getPath($this->category->id), 'add_prod_display' => Configuration::get('PS_ATTRIBUTE_CATEGORY_DISPLAY'), 'categorySize' => Image::getSize(ImageType::getFormatedName('category')), 'mediumSize' => Image::getSize(ImageType::getFormatedName('medium')), 'thumbSceneSize' => Image::getSize(ImageType::getFormatedName('m_scene')), 'homeSize' => Image::getSize(ImageType::getFormatedName('home')), 'allow_oosp' => (int) Configuration::get('PS_ORDER_OUT_OF_STOCK'), 'comparator_max_item' => (int) Configuration::get('PS_COMPARATOR_MAX_ITEM'), 'suppliers' => Supplier::getSuppliers(), 'body_classes' => array($this->php_self . '-' . $this->category->id, $this->php_self . '-' . $this->category->link_rewrite), 'combinations' => $combinations));
 }
Ejemplo n.º 17
0
 public function preProcess()
 {
     parent::preProcess();
     if (self::$cookie->isLogged() and !Tools::isSubmit('ajax')) {
         Tools::redirect('my-account.php');
     }
     if (Tools::getValue('create_account')) {
         $create_account = 1;
         self::$smarty->assign('email_create', 1);
     }
     if (Tools::isSubmit('SubmitCreate')) {
         if (!Validate::isEmail($email = Tools::getValue('email_create')) or empty($email)) {
             $this->errors[] = Tools::displayError('Invalid e-mail address');
         } elseif (Customer::customerExists($email)) {
             $this->errors[] = Tools::displayError('An account is already registered with this e-mail, please fill in the password or request a new one.');
             $_POST['email'] = $_POST['email_create'];
             unset($_POST['email_create']);
         } else {
             $create_account = 1;
             self::$smarty->assign('email_create', Tools::safeOutput($email));
             $_POST['email'] = $email;
         }
     }
     if (Tools::isSubmit('submitAccount') or Tools::isSubmit('submitGuestAccount')) {
         $create_account = 1;
         if (Tools::isSubmit('submitAccount')) {
             self::$smarty->assign('email_create', 1);
         }
         /* New Guest customer */
         if (!Tools::getValue('is_new_customer', 1) and !Configuration::get('PS_GUEST_CHECKOUT_ENABLED')) {
             $this->errors[] = Tools::displayError('You cannot create a guest account.');
         }
         if (!Tools::getValue('is_new_customer', 1)) {
             $_POST['passwd'] = md5(time() . _COOKIE_KEY_);
         }
         if (isset($_POST['guest_email']) and $_POST['guest_email']) {
             $_POST['email'] = $_POST['guest_email'];
         }
         /* Preparing customer */
         $customer = new Customer();
         $lastnameAddress = $_POST['lastname'];
         $firstnameAddress = $_POST['firstname'];
         $_POST['lastname'] = $_POST['customer_lastname'];
         $_POST['firstname'] = $_POST['customer_firstname'];
         if (!Tools::getValue('phone') and !Tools::getValue('phone_mobile')) {
             $this->errors[] = Tools::displayError('You must register at least one phone number');
         }
         if (!@checkdate(Tools::getValue('months'), Tools::getValue('days'), Tools::getValue('years')) and !(Tools::getValue('months') == '' and Tools::getValue('days') == '' and Tools::getValue('years') == '')) {
             $this->errors[] = Tools::displayError('Invalid date of birth');
         }
         $customer->birthday = empty($_POST['years']) ? '' : (int) $_POST['years'] . '-' . (int) $_POST['months'] . '-' . (int) $_POST['days'];
         $this->errors = array_unique(array_merge($this->errors, $customer->validateControler()));
         /* Preparing address */
         $address = new Address();
         $_POST['lastname'] = $lastnameAddress;
         $_POST['firstname'] = $firstnameAddress;
         $address->id_customer = 1;
         $this->errors = array_unique(array_merge($this->errors, $address->validateControler()));
         /* US customer: normalize the address */
         if ($address->id_country == Country::getByIso('US')) {
             include_once _PS_TAASC_PATH_ . 'AddressStandardizationSolution.php';
             $normalize = new AddressStandardizationSolution();
             $address->address1 = $normalize->AddressLineStandardization($address->address1);
             $address->address2 = $normalize->AddressLineStandardization($address->address2);
         }
         $zip_code_format = Country::getZipCodeFormat((int) Tools::getValue('id_country'));
         if (Country::getNeedZipCode((int) Tools::getValue('id_country'))) {
             if ($postcode = Tools::getValue('postcode') and $zip_code_format) {
                 $zip_regexp = '/^' . $zip_code_format . '$/ui';
                 $zip_regexp = str_replace(' ', '( |)', $zip_regexp);
                 $zip_regexp = str_replace('-', '(-|)', $zip_regexp);
                 $zip_regexp = str_replace('N', '[0-9]', $zip_regexp);
                 $zip_regexp = str_replace('L', '[a-zA-Z]', $zip_regexp);
                 $zip_regexp = str_replace('C', Country::getIsoById((int) Tools::getValue('id_country')), $zip_regexp);
                 if (!preg_match($zip_regexp, $postcode)) {
                     $this->errors[] = '<strong>' . Tools::displayError('Zip/ Postal code') . '</strong> ' . Tools::displayError('is invalid.') . '<br />' . Tools::displayError('Must be typed as follows:') . ' ' . str_replace('C', Country::getIsoById((int) Tools::getValue('id_country')), str_replace('N', '0', str_replace('L', 'A', $zip_code_format)));
                 }
             } elseif ($zip_code_format) {
                 $this->errors[] = '<strong>' . Tools::displayError('Zip/ Postal code') . '</strong> ' . Tools::displayError('is required.');
             } elseif ($postcode and !preg_match('/^[0-9a-zA-Z -]{4,9}$/ui', $postcode)) {
                 $this->errors[] = '<strong>' . Tools::displayError('Zip/ Postal code') . '</strong> ' . Tools::displayError('is invalid.');
             }
         }
         if (Country::isNeedDniByCountryId($address->id_country) and (!Tools::getValue('dni') or !Validate::isDniLite(Tools::getValue('dni')))) {
             $this->errors[] = Tools::displayError('Identification number is incorrect or has already been used.');
         } elseif (!Country::isNeedDniByCountryId($address->id_country)) {
             $address->dni = NULL;
         }
         if (!sizeof($this->errors)) {
             if (Customer::customerExists(Tools::getValue('email'))) {
                 $this->errors[] = Tools::displayError('An account is already registered with this e-mail, please fill in the password or request a new one.');
             }
             if (Tools::isSubmit('newsletter')) {
                 $customer->ip_registration_newsletter = pSQL(Tools::getRemoteAddr());
                 $customer->newsletter_date_add = pSQL(date('Y-m-d H:i:s'));
             }
             if (!sizeof($this->errors)) {
                 if (!($country = new Country($address->id_country, Configuration::get('PS_LANG_DEFAULT'))) or !Validate::isLoadedObject($country)) {
                     die(Tools::displayError());
                 }
                 if ((int) $country->contains_states and !(int) $address->id_state) {
                     $this->errors[] = Tools::displayError('This country requires a state selection.');
                 } else {
                     $customer->active = 1;
                     /* New Guest customer */
                     if (Tools::isSubmit('is_new_customer')) {
                         $customer->is_guest = !Tools::getValue('is_new_customer', 1);
                     } else {
                         $customer->is_guest = 0;
                     }
                     if (!$customer->add()) {
                         $this->errors[] = Tools::displayError('An error occurred while creating your account.');
                     } else {
                         $address->id_customer = (int) $customer->id;
                         if (!$address->add()) {
                             $this->errors[] = Tools::displayError('An error occurred while creating your address.');
                         } else {
                             if (!$customer->is_guest) {
                                 if (!Mail::Send((int) self::$cookie->id_lang, 'account', Mail::l('Welcome!'), array('{firstname}' => $customer->firstname, '{lastname}' => $customer->lastname, '{email}' => $customer->email, '{passwd}' => Tools::getValue('passwd')), $customer->email, $customer->firstname . ' ' . $customer->lastname)) {
                                     $this->errors[] = Tools::displayError('Cannot send email');
                                 }
                             }
                             self::$smarty->assign('confirmation', 1);
                             self::$cookie->id_customer = (int) $customer->id;
                             self::$cookie->customer_lastname = $customer->lastname;
                             self::$cookie->customer_firstname = $customer->firstname;
                             self::$cookie->passwd = $customer->passwd;
                             self::$cookie->logged = 1;
                             self::$cookie->email = $customer->email;
                             self::$cookie->is_guest = !Tools::getValue('is_new_customer', 1);
                             /* Update cart address */
                             self::$cart->secure_key = $customer->secure_key;
                             self::$cart->id_address_delivery = Address::getFirstCustomerAddressId((int) $customer->id);
                             self::$cart->id_address_invoice = Address::getFirstCustomerAddressId((int) $customer->id);
                             self::$cart->update();
                             Module::hookExec('createAccount', array('_POST' => $_POST, 'newCustomer' => $customer));
                             if (Tools::isSubmit('ajax')) {
                                 $return = array('hasError' => !empty($this->errors), 'errors' => $this->errors, 'isSaved' => true, 'id_customer' => (int) self::$cookie->id_customer, 'id_address_delivery' => self::$cart->id_address_delivery, 'id_address_invoice' => self::$cart->id_address_invoice, 'token' => Tools::getToken(false));
                                 die(Tools::jsonEncode($return));
                             }
                             if ($back = Tools::getValue('back')) {
                                 Tools::redirect($back);
                             }
                             Tools::redirect('my-account.php');
                         }
                     }
                 }
             }
         }
         if (sizeof($this->errors)) {
             if (!Tools::getValue('is_new_customer')) {
                 unset($_POST['passwd']);
             }
             if (Tools::isSubmit('ajax')) {
                 $return = array('hasError' => !empty($this->errors), 'errors' => $this->errors, 'isSaved' => false, 'id_customer' => 0);
                 die(Tools::jsonEncode($return));
             }
         }
     }
     if (Tools::isSubmit('SubmitLogin')) {
         Module::hookExec('beforeAuthentication');
         $passwd = trim(Tools::getValue('passwd'));
         $email = trim(Tools::getValue('email'));
         if (empty($email)) {
             $this->errors[] = Tools::displayError('E-mail address required');
         } elseif (!Validate::isEmail($email)) {
             $this->errors[] = Tools::displayError('Invalid e-mail address');
         } elseif (empty($passwd)) {
             $this->errors[] = Tools::displayError('Password is required');
         } elseif (Tools::strlen($passwd) > 32) {
             $this->errors[] = Tools::displayError('Password is too long');
         } elseif (!Validate::isPasswd($passwd)) {
             $this->errors[] = Tools::displayError('Invalid password');
         } else {
             $customer = new Customer();
             $authentication = $customer->getByEmail(trim($email), trim($passwd));
             if (!$authentication or !$customer->id) {
                 /* Handle brute force attacks */
                 sleep(1);
                 $this->errors[] = Tools::displayError('Authentication failed');
             } else {
                 self::$cookie->id_compare = isset(self::$cookie->id_compare) ? self::$cookie->id_compare : CompareProduct::getIdCompareByIdCustomer($customer->id);
                 self::$cookie->id_customer = (int) $customer->id;
                 self::$cookie->customer_lastname = $customer->lastname;
                 self::$cookie->customer_firstname = $customer->firstname;
                 self::$cookie->id_default_group = $customer->id_default_group;
                 self::$cookie->logged = 1;
                 self::$cookie->is_guest = $customer->isGuest();
                 self::$cookie->passwd = $customer->passwd;
                 self::$cookie->email = $customer->email;
                 if (Configuration::get('PS_CART_FOLLOWING') and (empty(self::$cookie->id_cart) or Cart::getNbProducts(self::$cookie->id_cart) == 0)) {
                     self::$cookie->id_cart = (int) Cart::lastNoneOrderedCart((int) $customer->id);
                 }
                 /* Update cart address */
                 self::$cart->id_carrier = 0;
                 self::$cart->id_address_delivery = Address::getFirstCustomerAddressId((int) $customer->id);
                 self::$cart->id_address_invoice = Address::getFirstCustomerAddressId((int) $customer->id);
                 // If a logged guest logs in as a customer, the cart secure key was already set and needs to be updated
                 self::$cart->secure_key = $customer->secure_key;
                 self::$cart->update();
                 Module::hookExec('authentication');
                 if (!Tools::isSubmit('ajax')) {
                     if ($back = Tools::getValue('back')) {
                         Tools::redirect($back);
                     }
                     Tools::redirect('my-account.php');
                 }
             }
         }
         if (Tools::isSubmit('ajax')) {
             $return = array('hasError' => !empty($this->errors), 'errors' => $this->errors, 'token' => Tools::getToken(false));
             die(Tools::jsonEncode($return));
         }
     }
     if (isset($create_account)) {
         /* Select the most appropriate country */
         if (isset($_POST['id_country']) and is_numeric($_POST['id_country'])) {
             $selectedCountry = (int) $_POST['id_country'];
         }
         /* FIXME : language iso and country iso are not similar,
         			 * maybe an associative table with country an language can resolve it,
         			 * But for now it's a bug !
         			 * @see : bug #6968
         			 * @link:http://www.prestashop.com/bug_tracker/view/6968/
         			elseif (isset($_SERVER['HTTP_ACCEPT_LANGUAGE']))
         			{
         				$array = explode(',', $_SERVER['HTTP_ACCEPT_LANGUAGE']);
         				if (Validate::isLanguageIsoCode($array[0]))
         				{
         					$selectedCountry = Country::getByIso($array[0]);
         					if (!$selectedCountry)
         						$selectedCountry = (int)(Configuration::get('PS_COUNTRY_DEFAULT'));
         				}
         			}*/
         if (!isset($selectedCountry)) {
             $selectedCountry = (int) Configuration::get('PS_COUNTRY_DEFAULT');
         }
         if (Configuration::get('PS_RESTRICT_DELIVERED_COUNTRIES')) {
             $countries = Carrier::getDeliveredCountries((int) self::$cookie->id_lang, true, true);
         } else {
             $countries = Country::getCountries((int) self::$cookie->id_lang, true);
         }
         self::$smarty->assign(array('countries' => $countries, 'sl_country' => isset($selectedCountry) ? $selectedCountry : 0, 'vat_management' => Configuration::get('VATNUMBER_MANAGEMENT')));
         /* Call a hook to display more information on form */
         self::$smarty->assign(array('HOOK_CREATE_ACCOUNT_FORM' => Module::hookExec('createAccountForm'), 'HOOK_CREATE_ACCOUNT_TOP' => Module::hookExec('createAccountTop')));
     }
     /* Generate years, months and days */
     if (isset($_POST['years']) and is_numeric($_POST['years'])) {
         $selectedYears = (int) $_POST['years'];
     }
     $years = Tools::dateYears();
     if (isset($_POST['months']) and is_numeric($_POST['months'])) {
         $selectedMonths = (int) $_POST['months'];
     }
     $months = Tools::dateMonths();
     if (isset($_POST['days']) and is_numeric($_POST['days'])) {
         $selectedDays = (int) $_POST['days'];
     }
     $days = Tools::dateDays();
     self::$smarty->assign(array('years' => $years, 'sl_year' => isset($selectedYears) ? $selectedYears : 0, 'months' => $months, 'sl_month' => isset($selectedMonths) ? $selectedMonths : 0, 'days' => $days, 'sl_day' => isset($selectedDays) ? $selectedDays : 0));
     self::$smarty->assign('newsletter', (int) Module::getInstanceByName('blocknewsletter')->active);
 }
Ejemplo n.º 18
0
 public function init()
 {
     self::$amz_payments = new AmzPayments();
     $this->isLogged = (bool) $this->context->customer->id && Customer::customerIdExistsStatic((int) $this->context->cookie->id_customer);
     parent::init();
     /* Disable some cache related bugs on the cart/order */
     header('Cache-Control: no-cache, must-revalidate');
     header('Expires: Mon, 26 Jul 1997 05:00:00 GMT');
     $this->display_column_left = false;
     $this->display_column_right = false;
     // Service initialisieren
     $this->service = self::$amz_payments->getService();
     if (Tools::isSubmit('ajax')) {
         if (Tools::isSubmit('method')) {
             switch (Tools::getValue('method')) {
                 case 'redirectAuthentication':
                 case 'setusertoshop':
                     if (Tools::getValue('access_token')) {
                         $this->context->cookie->amz_access_token = AmzPayments::prepareCookieValueForPrestaShopUse(Tools::getValue('access_token'));
                         $this->context->cookie->amz_access_token_set_time = time();
                     } else {
                         if (Tools::getValue('method') == 'redirectAuthentication') {
                             Tools::redirect('index');
                         } else {
                             error_log('Error, method not submitted and no token');
                             die('error');
                         }
                     }
                     if (Tools::getValue('action') == 'fromCheckout') {
                         $accessTokenValue = AmzPayments::prepareCookieValueForAmazonPaymentsUse(Tools::getValue('access_token'));
                     } else {
                         $accessTokenValue = Tools::getValue('access_token');
                     }
                     $d = self::$amz_payments->requestTokenInfo($accessTokenValue);
                     if ($d->aud != self::$amz_payments->client_id) {
                         if (Tools::getValue('method') == 'redirectAuthentication') {
                             Tools::redirect('index');
                         } else {
                             error_log('auth error LPA');
                             die('error');
                         }
                     }
                     $d = self::$amz_payments->requestProfile($accessTokenValue);
                     $customer_userid = $d->user_id;
                     $customer_name = $d->name;
                     $customer_email = $d->email;
                     // $postcode = $d->postal_code;
                     if ($customers_local_id = AmazonPaymentsCustomerHelper::findByAmazonCustomerId($customer_userid)) {
                         // Customer already exists - login
                         Hook::exec('actionBeforeAuthentication');
                         $customer = new Customer();
                         $authentication = AmazonPaymentsCustomerHelper::getByCustomerID($customers_local_id, true, $customer);
                         if (isset($authentication->active) && !$authentication->active) {
                             $this->errors[] = Tools::displayError('Your account isn\'t available at this time, please contact us');
                         } elseif (!$authentication || !$customer->id) {
                             $this->errors[] = Tools::displayError('Authentication failed.');
                         } else {
                             $this->context->cookie->id_compare = isset($this->context->cookie->id_compare) ? $this->context->cookie->id_compare : CompareProduct::getIdCompareByIdCustomer($customer->id);
                             $this->context->cookie->id_customer = (int) $customer->id;
                             $this->context->cookie->customer_lastname = $customer->lastname;
                             $this->context->cookie->customer_firstname = $customer->firstname;
                             $this->context->cookie->logged = 1;
                             $customer->logged = 1;
                             $this->context->cookie->is_guest = $customer->isGuest();
                             $this->context->cookie->passwd = $customer->passwd;
                             $this->context->cookie->email = $customer->email;
                             // Add customer to the context
                             $this->context->customer = $customer;
                             if (Configuration::get('PS_CART_FOLLOWING') && (empty($this->context->cookie->id_cart) || Cart::getNbProducts($this->context->cookie->id_cart) == 0) && ($id_cart = (int) Cart::lastNoneOrderedCart($this->context->customer->id))) {
                                 $this->context->cart = new Cart($id_cart);
                             } else {
                                 $id_carrier = (int) $this->context->cart->id_carrier;
                                 $this->context->cart->id_carrier = 0;
                                 $this->context->cart->setDeliveryOption(null);
                                 $this->context->cart->id_address_delivery = (int) Address::getFirstCustomerAddressId((int) $customer->id);
                                 $this->context->cart->id_address_invoice = (int) Address::getFirstCustomerAddressId((int) $customer->id);
                             }
                             $this->context->cart->id_customer = (int) $customer->id;
                             $this->context->cart->secure_key = $customer->secure_key;
                             if ($this->ajax && isset($id_carrier) && $id_carrier && Configuration::get('PS_ORDER_PROCESS_TYPE')) {
                                 $delivery_option = array($this->context->cart->id_address_delivery => $id_carrier . ',');
                                 $this->context->cart->setDeliveryOption($delivery_option);
                             }
                             $this->context->cart->save();
                             $this->context->cookie->id_cart = (int) $this->context->cart->id;
                             $this->context->cookie->write();
                             $this->context->cart->autosetProductAddress();
                             Hook::exec('actionAuthentication');
                             // Login information have changed, so we check if the cart rules still apply
                             CartRule::autoRemoveFromCart($this->context);
                             CartRule::autoAddToCart($this->context);
                             if (Tools::getValue('action') == 'fromCheckout' && isset($this->context->cookie->amz_connect_order)) {
                                 AmzPayments::switchOrderToCustomer($this->context->customer->id, $this->context->cookie->amz_connect_order, true);
                             }
                             if (Tools::getValue('action') == 'checkout') {
                                 $goto = $this->context->link->getModuleLink('amzpayments', 'amzpayments');
                             } elseif (Tools::getValue('action') == 'fromCheckout') {
                                 $goto = 'index.php?controller=history';
                             } elseif ($this->context->cart->nbProducts()) {
                                 $goto = 'index.php?controller=order';
                             } else {
                                 if (Configuration::get('PS_SSL_ENABLED')) {
                                     $goto = _PS_BASE_URL_SSL_ . __PS_BASE_URI__;
                                 } else {
                                     $goto = _PS_BASE_URL_ . __PS_BASE_URI__;
                                 }
                             }
                             if (Tools::getValue('method') == 'redirectAuthentication') {
                                 Tools::redirect($goto);
                             } else {
                                 echo $goto;
                             }
                         }
                     } else {
                         if (AmazonPaymentsCustomerHelper::findByEmailAddress($customer_email)) {
                             $this->context->cookie->amzConnectEmail = $customer_email;
                             $this->context->cookie->amzConnectCustomerId = $customer_userid;
                             $goto = $this->context->link->getModuleLink('amzpayments', 'connect_accounts');
                             if (Tools::getValue('action') && Tools::getValue('action') == 'checkout') {
                                 if (strpos($goto, '?') > 0) {
                                     $goto .= '&checkout=1';
                                 } else {
                                     $goto .= '?checkout=1';
                                 }
                             }
                             if (Tools::getValue('method') == 'redirectAuthentication') {
                                 Tools::redirect($goto);
                             } else {
                                 echo $goto;
                             }
                         } else {
                             // Customer does not exist - Create account
                             Hook::exec('actionBeforeSubmitAccount');
                             $this->create_account = true;
                             $_POST['passwd'] = md5(time() . _COOKIE_KEY_);
                             $firstname = '';
                             $lastname = '';
                             $customer_name = preg_replace("/[0-9]/", "", $customer_name);
                             if (strpos(trim($customer_name), ' ') !== false) {
                                 list($firstname, $lastname) = explode(' ', trim($customer_name));
                             } elseif (strpos(trim($customer_name), '-') !== false) {
                                 list($firstname, $lastname) = explode('-', trim($customer_name));
                             } else {
                                 $firstname = trim($customer_name);
                                 $lastname = 'Placeholder';
                             }
                             $customer = new Customer();
                             $customer->email = $customer_email;
                             $lastname_address = $lastname;
                             $firstname_address = $firstname;
                             $_POST['lastname'] = Tools::getValue('customer_lastname', $lastname_address);
                             $_POST['firstname'] = Tools::getValue('customer_firstname', $firstname_address);
                             // $addresses_types = array('address');
                             $this->errors = array_unique(array_merge($this->errors, $customer->validateController()));
                             // Check the requires fields which are settings in the BO
                             $this->errors = $this->errors + $customer->validateFieldsRequiredDatabase();
                             if (!count($this->errors)) {
                                 $customer->firstname = Tools::ucwords($customer->firstname);
                                 $customer->is_guest = 0;
                                 $customer->active = 1;
                                 if (!count($this->errors)) {
                                     if ($customer->add()) {
                                         if (!$customer->is_guest) {
                                             if (!$this->sendConfirmationMail($customer)) {
                                                 $this->errors[] = Tools::displayError('The email cannot be sent.');
                                             }
                                         }
                                         AmazonPaymentsCustomerHelper::saveCustomersAmazonReference($customer, $customer_userid);
                                         $this->updateContext($customer);
                                         $this->context->cart->update();
                                         Hook::exec('actionCustomerAccountAdd', array('_POST' => $_POST, 'newCustomer' => $customer));
                                         if (Tools::getValue('action') == 'fromCheckout' && isset($this->context->cookie->amz_connect_order)) {
                                             AmzPayments::switchOrderToCustomer($customer->id, $this->context->cookie->amz_connect_order, true);
                                         }
                                         if (Tools::getValue('action') == 'checkout') {
                                             $goto = $this->context->link->getModuleLink('amzpayments', 'amzpayments');
                                         } elseif (Tools::getValue('action') == 'fromCheckout') {
                                             $goto = 'index.php?controller=history';
                                         } elseif ($this->context->cart->nbProducts()) {
                                             $goto = 'index.php?controller=order';
                                         } else {
                                             if (Configuration::get('PS_SSL_ENABLED')) {
                                                 $goto = _PS_BASE_URL_SSL_ . __PS_BASE_URI__;
                                             } else {
                                                 $goto = _PS_BASE_URL_ . __PS_BASE_URI__;
                                             }
                                         }
                                         if (Tools::getValue('method') == 'redirectAuthentication') {
                                             Tools::redirect($goto);
                                         } else {
                                             echo $goto;
                                         }
                                     } else {
                                         $this->errors[] = Tools::displayError('An error occurred while creating your account.');
                                     }
                                 }
                             } else {
                                 error_log('Error validating customers informations');
                                 die('error');
                             }
                         }
                     }
                     die;
             }
         }
     }
 }
    /**
     * @see FrontController::initContent()
     */
    public function initContent()
    {
        parent::initContent();
        $fb_connect_appid = Configuration::get('FB_CONNECT_APPID');
        $fb_connect_appkey = Configuration::get('FB_CONNECT_APPKEY');
        $this->login_url = $this->context->link->getModuleLink('fbconnect_psb', 'login', array(), TRUE, $this->context->language->id);
        require_once _PS_ROOT_DIR_ . '/modules/fbconnect_psb/fb_sdk/facebook.php';
        $facebook = new Facebook(array('appId' => $fb_connect_appid, 'secret' => $fb_connect_appkey));
        // Get User ID
        $user = $facebook->getUser();
        // We may or may not have this data based on whether the user is logged in.
        //
        // If we have a $user id here, it means we know the user is logged into
        // Facebook, but we don't know if the access token is valid. An access
        // token is invalid if the user logged out of Facebook.
        if ($user) {
            try {
                // Proceed knowing you have a logged in user who's authenticated.
                $fb_user_profile = $facebook->api('/me');
            } catch (FacebookApiException $e) {
                //die('Error: '.$e);
                error_log($e);
                $user = null;
            }
        } else {
            // Get new Access tokens
            Tools::redirect($facebook->getLoginUrl(array('scope' => 'email')));
        }
        // current user state Logged In with FB
        if ($user) {
            //get the user email from DB with FB ID
            $sql = 'SELECT c.`email`
				FROM `' . _DB_PREFIX_ . 'customer` c
					LEFT JOIN `' . _DB_PREFIX_ . 'customer_profile_connect` pc ON pc.id_customer = c.id_customer
				WHERE pc.`facebook_id` = ' . (int) $fb_user_profile['id'] . Shop::addSqlRestriction(Shop::SHARE_CUSTOMER, 'c');
            $email = Db::getInstance(_PS_USE_SQL_SLAVE_)->getValue($sql);
            if (empty($email)) {
                Tools::redirect($this->context->link->getModuleLink('fbconnect_psb', 'registration', array(), TRUE, $this->context->language->id));
            } else {
                $customer = new Customer();
                $authentication = $customer->getByEmail(trim($email));
                if (!$authentication || !$customer->id) {
                    $this->errors[] = Tools::displayError('Error: Authentication failed.');
                } else {
                    $this->context->cookie->id_compare = isset($this->context->cookie->id_compare) ? $this->context->cookie->id_compare : CompareProduct::getIdCompareByIdCustomer($customer->id);
                    $this->context->cookie->id_customer = (int) $customer->id;
                    $this->context->cookie->customer_lastname = $customer->lastname;
                    $this->context->cookie->customer_firstname = $customer->firstname;
                    $this->context->cookie->logged = 1;
                    $customer->logged = 1;
                    $this->context->cookie->is_guest = $customer->isGuest();
                    $this->context->cookie->passwd = $customer->passwd;
                    $this->context->cookie->email = $customer->email;
                    // Add customer to the context
                    $this->context->customer = $customer;
                    if (Configuration::get('PS_CART_FOLLOWING') && (empty($this->context->cookie->id_cart) || Cart::getNbProducts($this->context->cookie->id_cart) == 0) && ($id_cart = (int) Cart::lastNoneOrderedCart($this->context->customer->id))) {
                        $this->context->cart = new Cart($id_cart);
                    } else {
                        $this->context->cart->id_carrier = 0;
                        $this->context->cart->setDeliveryOption(null);
                        $this->context->cart->id_address_delivery = Address::getFirstCustomerAddressId((int) $customer->id);
                        $this->context->cart->id_address_invoice = Address::getFirstCustomerAddressId((int) $customer->id);
                    }
                    $this->context->cart->id_customer = (int) $customer->id;
                    $this->context->cart->secure_key = $customer->secure_key;
                    $this->context->cart->save();
                    $this->context->cookie->id_cart = (int) $this->context->cart->id;
                    $this->context->cookie->update();
                    $this->context->cart->autosetProductAddress();
                    Hook::exec('actionAuthentication');
                    // Login information have changed, so we check if the cart rules still apply
                    CartRule::autoRemoveFromCart($this->context);
                    CartRule::autoAddToCart($this->context);
                    if ($back = Tools::getValue('back')) {
                        Tools::redirect(html_entity_decode($back));
                    } else {
                        Tools::redirect('index.php?controller=' . ($this->authRedirection !== false ? url_encode($this->authRedirection) : 'my-account'));
                    }
                }
            }
            $this->context->smarty->assign(array('redirect_uri' => urlencode($this->login_url), 'fb_connect_appid' => $fb_connect_appid, 'fb_connect_error' => $this->errors));
            $this->setTemplate('login_fb.tpl');
        } else {
            if (isset($_GET['error']) && isset($_GET['error_code'])) {
                $msg = 'There was error while trying to get information from Facebook.';
                $msg .= '<br>' . $_GET['error'] . ' - ' . $_GET['error_code'] . ' - ' . $_GET['error_description'] . ' - ' . $_GET['error_reason'];
                $this->errors[] = Tools::displayError($msg);
                $this->setTemplate('login_fb.tpl');
            } else {
                Tools::redirect($facebook->getLoginUrl(array('scope' => 'email')));
            }
        }
    }
Ejemplo n.º 20
0
 protected function processForm()
 {
     if (Tools::getValue('action') == 'tryConnect') {
         if (Tools::getValue('email') == $this->context->cookie->amzConnectEmail) {
             $customer = new Customer();
             $authentication = $customer->getByEmail(trim(Tools::getValue('email')), trim(Tools::getValue('passwd')));
             if (isset($authentication->active) && !$authentication->active) {
                 $this->errors[] = Tools::displayError('Your account isn\'t available at this time, please contact us');
             } elseif (!$authentication || !$customer->id) {
                 $this->errors[] = Tools::displayError('Authentication failed.');
             } else {
                 $authentication->save();
                 AmazonPaymentsCustomerHelper::saveCustomersAmazonReference($authentication, $this->context->cookie->amzConnectCustomerId);
                 $this->context->cookie->id_compare = isset($this->context->cookie->id_compare) ? $this->context->cookie->id_compare : CompareProduct::getIdCompareByIdCustomer($customer->id);
                 $this->context->cookie->id_customer = (int) $customer->id;
                 $this->context->cookie->customer_lastname = $customer->lastname;
                 $this->context->cookie->customer_firstname = $customer->firstname;
                 $this->context->cookie->logged = 1;
                 $customer->logged = 1;
                 $this->context->cookie->is_guest = $customer->isGuest();
                 $this->context->cookie->passwd = $customer->passwd;
                 $this->context->cookie->email = $customer->email;
                 // Add customer to the context
                 $this->context->customer = $customer;
                 if (Configuration::get('PS_CART_FOLLOWING') && (empty($this->context->cookie->id_cart) || Cart::getNbProducts($this->context->cookie->id_cart) == 0) && ($id_cart = (int) Cart::lastNoneOrderedCart($this->context->customer->id))) {
                     $this->context->cart = new Cart($id_cart);
                 } else {
                     $id_carrier = (int) $this->context->cart->id_carrier;
                     $this->context->cart->id_carrier = 0;
                     $this->context->cart->setDeliveryOption(null);
                     $this->context->cart->id_address_delivery = (int) Address::getFirstCustomerAddressId((int) $customer->id);
                     $this->context->cart->id_address_invoice = (int) Address::getFirstCustomerAddressId((int) $customer->id);
                 }
                 $this->context->cart->id_customer = (int) $customer->id;
                 $this->context->cart->secure_key = $customer->secure_key;
                 if ($this->ajax && isset($id_carrier) && $id_carrier && Configuration::get('PS_ORDER_PROCESS_TYPE')) {
                     $delivery_option = array($this->context->cart->id_address_delivery => $id_carrier . ',');
                     $this->context->cart->setDeliveryOption($delivery_option);
                 }
                 $this->context->cart->save();
                 $this->context->cookie->id_cart = (int) $this->context->cart->id;
                 $this->context->cookie->write();
                 $this->context->cart->autosetProductAddress();
                 Hook::exec('actionAuthentication');
                 // Login information have changed, so we check if the cart rules still apply
                 CartRule::autoRemoveFromCart($this->context);
                 CartRule::autoAddToCart($this->context);
                 if (Tools::getValue('toCheckout') == '1') {
                     $goto = $this->context->link->getModuleLink('amzpayments', 'amzpayments');
                 } elseif (Tools::getValue('fromCheckout') == '1') {
                     $goto = 'index.php?controller=history';
                 } elseif ($this->context->cart->nbProducts()) {
                     $goto = 'index.php?controller=order';
                 } else {
                     if (Configuration::get('PS_SSL_ENABLED')) {
                         $goto = _PS_BASE_URL_SSL_ . __PS_BASE_URI__;
                     } else {
                         $goto = _PS_BASE_URL_ . __PS_BASE_URI__;
                     }
                 }
                 Tools::redirect($goto);
             }
         }
     }
 }
Ejemplo n.º 21
0
 public function ajaxCall()
 {
     global $smarty, $cookie;
     $selected_filters = $this->getSelectedFilters();
     $filter_block = $this->getFilterBlock($selected_filters);
     $this->getProducts($selected_filters, $products, $nb_products, $p, $n, $pages_nb, $start, $stop, $range, $combinations);
     // Add pagination variable
     $nArray = (int) Configuration::get('PS_PRODUCTS_PER_PAGE') != 10 ? array((int) Configuration::get('PS_PRODUCTS_PER_PAGE'), 10, 20, 50) : array(10, 20, 50);
     // Clean duplicate values
     $nArray = array_unique($nArray);
     asort($nArray);
     if (version_compare(_PS_VERSION_, '1.6.0', '>=') === true) {
         $this->context->controller->addColorsToProductList($products);
     }
     $category = new Category(Tools::getValue('id_category_layered', Configuration::get('PS_HOME_CATEGORY')), (int) $cookie->id_lang);
     // Generate meta title and meta description
     $category_title = empty($category->meta_title) ? $category->name : $category->meta_title;
     $category_metas = Meta::getMetaTags((int) $cookie->id_lang, 'category');
     $title = '';
     $keywords = '';
     if (is_array($filter_block['title_values'])) {
         foreach ($filter_block['title_values'] as $key => $val) {
             $title .= ' > ' . $key . ' ' . implode('/', $val);
             $keywords .= $key . ' ' . implode('/', $val) . ', ';
         }
     }
     $title = $category_title . $title;
     if (!empty($title)) {
         $meta_title = $title;
     } else {
         $meta_title = $category_metas['meta_title'];
     }
     $meta_description = $category_metas['meta_description'];
     $keywords = substr(strtolower($keywords), 0, 1000);
     if (!empty($keywords)) {
         $meta_keywords = rtrim($category_title . ', ' . $keywords . ', ' . $category_metas['meta_keywords'], ', ');
     }
     $smarty->assign(array('homeSize' => Image::getSize(ImageType::getFormatedName('home')), 'nb_products' => $nb_products, 'category' => $category, 'pages_nb' => (int) $pages_nb, 'p' => (int) $p, 'n' => (int) $n, 'range' => (int) $range, 'start' => (int) $start, 'stop' => (int) $stop, 'n_array' => (int) Configuration::get('PS_PRODUCTS_PER_PAGE') != 10 ? array((int) Configuration::get('PS_PRODUCTS_PER_PAGE'), 10, 20, 50) : array(10, 20, 50), 'comparator_max_item' => (int) Configuration::get('PS_COMPARATOR_MAX_ITEM'), 'products' => $products, 'products_per_page' => (int) Configuration::get('PS_PRODUCTS_PER_PAGE'), 'static_token' => Tools::getToken(false), 'page_name' => 'category', 'nArray' => $nArray, 'compareProducts' => CompareProduct::getCompareProducts((int) $this->context->cookie->id_compare), 'combinations' => $combinations));
     // Prevent bug with old template where category.tpl contain the title of the category and category-count.tpl do not exists
     if (file_exists(_PS_THEME_DIR_ . 'category-count.tpl')) {
         $category_count = $smarty->fetch(_PS_THEME_DIR_ . 'category-count.tpl');
     } else {
         $category_count = '';
     }
     if ($nb_products == 0) {
         $product_list = $this->display(__FILE__, 'blocklayered-no-products.tpl');
     } else {
         $product_list = $smarty->fetch(_PS_THEME_DIR_ . 'product-list.tpl');
     }
     $vars = array('filtersBlock' => utf8_encode($this->generateFiltersBlock($selected_filters)), 'productList' => utf8_encode($product_list), 'pagination' => $smarty->fetch(_PS_THEME_DIR_ . 'pagination.tpl'), 'categoryCount' => $category_count, 'meta_title' => $meta_title . ' - ' . Configuration::get('PS_SHOP_NAME'), 'heading' => $meta_title, 'meta_keywords' => isset($meta_keywords) ? $meta_keywords : null, 'meta_description' => $meta_description, 'current_friendly_url' => (int) $n == (int) $nb_products ? '#/show-all' : '#' . $filter_block['current_friendly_url'], 'filters' => $filter_block['filters'], 'nbRenderedProducts' => (int) $nb_products, 'nbAskedProducts' => (int) $n, 'combinations' => $combinations);
     if (version_compare(_PS_VERSION_, '1.6.0', '>=') === true) {
         $vars = array_merge($vars, array('pagination_bottom' => $smarty->assign('paginationId', 'bottom')->fetch(_PS_THEME_DIR_ . 'pagination.tpl')));
     }
     /* We are sending an array in jSon to the .js controller, it will update both the filters and the products zones */
     return Tools::jsonEncode($vars);
 }
Ejemplo n.º 22
0
 /**
  * Process login
  */
 protected function processSubmitLogin()
 {
     Hook::exec('actionBeforeAuthentication');
     $passwd = trim(Tools::getValue('passwd'));
     $email = trim(Tools::getValue('email'));
     if (empty($email)) {
         $this->errors[] = Tools::displayError('E-mail address required');
     } elseif (!Validate::isEmail($email)) {
         $this->errors[] = Tools::displayError('Invalid e-mail address');
     } elseif (empty($passwd)) {
         $this->errors[] = Tools::displayError('Password is required');
     } elseif (!Validate::isPasswd($passwd)) {
         $this->errors[] = Tools::displayError('Invalid password');
     } else {
         $customer = new Customer();
         $authentication = $customer->getByEmail(trim($email), trim($passwd));
         if (!$authentication || !$customer->id) {
             $this->errors[] = Tools::displayError('Authentication failed');
         } else {
             $this->context->cookie->id_compare = isset($this->context->cookie->id_compare) ? $this->context->cookie->id_compare : CompareProduct::getIdCompareByIdCustomer($customer->id);
             $this->context->cookie->id_customer = (int) $customer->id;
             $this->context->cookie->customer_lastname = $customer->lastname;
             $this->context->cookie->customer_firstname = $customer->firstname;
             $this->context->cookie->logged = 1;
             $customer->logged = 1;
             $this->context->cookie->is_guest = $customer->isGuest();
             $this->context->cookie->passwd = $customer->passwd;
             $this->context->cookie->email = $customer->email;
             // Add customer to the context
             $this->context->customer = $customer;
             if (Configuration::get('PS_CART_FOLLOWING') && (empty($this->context->cookie->id_cart) || Cart::getNbProducts($this->context->cookie->id_cart) == 0)) {
                 $this->context->cookie->id_cart = (int) Cart::lastNoneOrderedCart($this->context->customer->id);
             }
             // Update cart address
             $this->context->cart->id = $this->context->cookie->id_cart;
             $this->context->cart->setDeliveryOption(null);
             $this->context->cart->id_address_delivery = Address::getFirstCustomerAddressId((int) $customer->id);
             $this->context->cart->id_address_invoice = Address::getFirstCustomerAddressId((int) $customer->id);
             $this->context->cart->secure_key = $customer->secure_key;
             $this->context->cart->update();
             $this->context->cart->autosetProductAddress();
             Hook::exec('actionAuthentication');
             // Login information have changed, so we check if the cart rules still apply
             CartRule::autoRemoveFromCart($this->context);
             CartRule::autoAddToCart($this->context);
             if (!$this->ajax) {
                 if ($back = Tools::getValue('back')) {
                     Tools::redirect(html_entity_decode($back));
                 }
                 Tools::redirect('index.php?controller=my-account');
             }
         }
     }
     if ($this->ajax) {
         $return = array('hasError' => !empty($this->errors), 'errors' => $this->errors, 'token' => Tools::getToken(false));
         die(Tools::jsonEncode($return));
     } else {
         $this->context->smarty->assign('authentification_error', $this->errors);
     }
 }
Ejemplo n.º 23
0
 /**
  * Assign template vars related to page content
  * @see FrontController::initContent()
  */
 public function initContent()
 {
     parent::initContent();
     //Clean compare product table
     CompareProduct::cleanCompareProducts('week');
     $hasProduct = false;
     if (!Configuration::get('PS_COMPARATOR_MAX_ITEM')) {
         return Tools::redirect('index.php?controller=404');
     }
     if (($product_list = Tools::getValue('compare_product_list')) && ($postProducts = isset($product_list) ? rtrim($product_list, '|') : '')) {
         $ids = array_unique(explode('|', $postProducts));
     } else {
         if (isset($this->context->cookie->id_compare)) {
             $ids = CompareProduct::getCompareProducts($this->context->cookie->id_compare);
         } else {
             $ids = null;
         }
     }
     if ($ids) {
         if (count($ids) > 0) {
             if (count($ids) > Configuration::get('PS_COMPARATOR_MAX_ITEM')) {
                 $ids = array_slice($ids, 0, Configuration::get('PS_COMPARATOR_MAX_ITEM'));
             }
             $listProducts = array();
             $listFeatures = array();
             foreach ($ids as $k => &$id) {
                 $curProduct = new Product((int) $id, true, $this->context->language->id);
                 if (!Validate::isLoadedObject($curProduct) || !$curProduct->active || !$curProduct->isAssociatedToShop()) {
                     if (isset($this->context->cookie->id_compare)) {
                         CompareProduct::removeCompareProduct($this->context->cookie->id_compare, $id);
                     }
                     unset($ids[$k]);
                     continue;
                 }
                 foreach ($curProduct->getFrontFeatures($this->context->language->id) as $feature) {
                     $listFeatures[$curProduct->id][$feature['id_feature']] = $feature['value'];
                 }
                 $cover = Product::getCover((int) $id);
                 $curProduct->id_image = Tools::htmlentitiesUTF8(Product::defineProductImage(array('id_image' => $cover['id_image'], 'id_product' => $id), $this->context->language->id));
                 $curProduct->allow_oosp = Product::isAvailableWhenOutOfStock($curProduct->out_of_stock);
                 $listProducts[] = $curProduct;
             }
             if (count($listProducts) > 0) {
                 $width = 80 / count($listProducts);
                 $hasProduct = true;
                 $ordered_features = Feature::getFeaturesForComparison($ids, $this->context->language->id);
                 $this->context->smarty->assign(array('ordered_features' => $ordered_features, 'product_features' => $listFeatures, 'products' => $listProducts, 'width' => $width, 'homeSize' => Image::getSize(ImageType::getFormatedName('home'))));
                 $this->context->smarty->assign('HOOK_EXTRA_PRODUCT_COMPARISON', Hook::exec('displayProductComparison', array('list_ids_product' => $ids)));
             } else {
                 if (isset($this->context->cookie->id_compare)) {
                     $object = new CompareProduct((int) $this->context->cookie->id_compare);
                     if (Validate::isLoadedObject($object)) {
                         $object->delete();
                     }
                 }
             }
         }
     }
     $this->context->smarty->assign('hasProduct', $hasProduct);
     $this->setTemplate(_PS_THEME_DIR_ . 'products-comparison.tpl');
 }
 public function process()
 {
     parent::process();
     if (!($id_category = (int) Tools::getValue('id_category')) or !Validate::isUnsignedId($id_category)) {
         $this->errors[] = Tools::displayError('Missing category ID');
     } else {
         if (!Validate::isLoadedObject($this->category)) {
             $this->errors[] = Tools::displayError('Category does not exist');
         } elseif (!$this->category->checkAccess((int) self::$cookie->id_customer)) {
             $this->errors[] = Tools::displayError('You do not have access to this category.');
         } elseif (!$this->category->active) {
             self::$smarty->assign('category', $this->category);
         } else {
             $rewrited_url = self::$link->getCategoryLink((int) $this->category->id, $this->category->link_rewrite);
             /* Scenes  (could be externalised to another controler if you need them */
             self::$smarty->assign('scenes', Scene::getScenes((int) $this->category->id, (int) self::$cookie->id_lang, true, false));
             /* Scenes images formats */
             if ($sceneImageTypes = ImageType::getImagesTypes('scenes')) {
                 foreach ($sceneImageTypes as $sceneImageType) {
                     if ($sceneImageType['name'] == 'thumb_scene') {
                         $thumbSceneImageType = $sceneImageType;
                     } elseif ($sceneImageType['name'] == 'large_scene') {
                         $largeSceneImageType = $sceneImageType;
                     }
                 }
                 self::$smarty->assign('thumbSceneImageType', isset($thumbSceneImageType) ? $thumbSceneImageType : NULL);
                 self::$smarty->assign('largeSceneImageType', isset($largeSceneImageType) ? $largeSceneImageType : NULL);
             }
             $this->category->description = nl2br2($this->category->description);
             $subCategories = $this->category->getSubCategories((int) self::$cookie->id_lang);
             self::$smarty->assign('category', $this->category);
             if (isset($subCategories) and !empty($subCategories) and $subCategories) {
                 self::$smarty->assign('subcategories', $subCategories);
                 self::$smarty->assign(array('subcategories_nb_total' => sizeof($subCategories), 'subcategories_nb_half' => ceil(sizeof($subCategories) / 2)));
             }
             if ($this->category->id != 1) {
                 $this->productListAssign();
                 if ($this->cat_products) {
                     foreach ($this->cat_products as $cat_product) {
                         $prod_features[$cat_product["id_product"]] = Product::getFrontFeaturesStatic(self::$cookie->id_lang, $cat_product['id_product']);
                         $aux_product = new Product($cat_product["id_product"], true, self::$cookie->id_lang);
                         $aux_attributesGroups = $aux_product->getAttributesGroups((int) self::$cookie->id_lang);
                         foreach ($aux_attributesGroups as $k => $row) {
                             $aux_combinations[$row['attribute_name']]['price'] = (double) $row['price'];
                         }
                         $prod_combinations[$cat_product["id_product"]] = $aux_combinations;
                         unset($aux_combinations);
                         $p_comb_ref[$cat_product["id_product"]] = Product::getPRefInDatabase($cat_product["id_product"]);
                     }
                 }
             }
             if (isset($prod_features)) {
                 self::$smarty->assign('prod_features', $prod_features);
             }
             if (isset($prod_combinations)) {
                 self::$smarty->assign('prod_combinations', $prod_combinations);
             }
             self::$smarty->assign('prod_combinations_ref', $p_comb_ref);
             self::$smarty->assign(array('isAccesories' => addslashes($_REQUEST['acces']), 'products' => (isset($this->cat_products) and $this->cat_products) ? $this->cat_products : NULL, 'id_category' => (int) $this->category->id, 'id_category_parent' => (int) $this->category->id_parent, 'return_category_name' => Tools::safeOutput($this->category->name), 'path' => Tools::getPath((int) $this->category->id), 'add_prod_display' => Configuration::get('PS_ATTRIBUTE_CATEGORY_DISPLAY'), 'categorySize' => Image::getSize('category'), 'mediumSize' => Image::getSize('medium'), 'thumbSceneSize' => Image::getSize('thumb_scene'), 'homeSize' => Image::getSize('home')));
             foreach ($subCategories as $subCat) {
                 $secondLevelCats[$subCat["id_category"]] = $this->getSubCats($subCat["id_category"]);
             }
             if (isset($secondLevelCats)) {
                 self::$smarty->assign('secondLevelCats', $secondLevelCats);
             }
             if (isset(self::$cookie->id_compare)) {
                 self::$smarty->assign('compareProducts', CompareProduct::getCompareProducts((int) self::$cookie->id_compare));
             }
         }
     }
     self::$smarty->assign(array('allow_oosp' => (int) Configuration::get('PS_ORDER_OUT_OF_STOCK'), 'comparator_max_item' => (int) Configuration::get('PS_COMPARATOR_MAX_ITEM'), 'suppliers' => Supplier::getSuppliers()));
 }
Ejemplo n.º 25
0
 /**
  * Initializes page content variables
  */
 public function initContent()
 {
     parent::initContent();
     $this->setTemplate(_PS_THEME_DIR_ . 'category.tpl');
     if (!$this->customer_access) {
         return;
     }
     if (isset($this->context->cookie->id_compare)) {
         $this->context->smarty->assign('compareProducts', CompareProduct::getCompareProducts((int) $this->context->cookie->id_compare));
     }
     // Product sort must be called before assignProductList()
     $this->productSort();
     $this->assignScenes();
     $this->assignSubcategories();
     $this->assignProductList();
     $products = $this->category->getProducts($this->context->language->id, (int) $this->p, (int) $this->n, $this->orderBy, $this->orderWay);
     $products_options = ProductOption::getProductOptions($this->context->language->id);
     $combinations = $this->getProductAttributeCombinations($products);
     //        $this->context->smarty->assign('combinations', $combinations);
     $this->context->smarty->assign(array('category' => $this->category, 'combinations' => $combinations, 'description_short' => Tools::truncateString($this->category->description, 350), 'products' => isset($this->cat_products) && $this->cat_products ? $this->cat_products : null, 'products_options' => isset($products_options) && $products_options ? $products_options : null, 'id_category' => (int) $this->category->id, 'id_category_parent' => (int) $this->category->id_parent, 'return_category_name' => Tools::safeOutput($this->category->name), 'path' => Tools::getPath($this->category->id), 'add_prod_display' => Configuration::get('PS_ATTRIBUTE_CATEGORY_DISPLAY'), 'categorySize' => Image::getSize(ImageType::getFormatedName('category')), 'mediumSize' => Image::getSize(ImageType::getFormatedName('medium')), 'thumbSceneSize' => Image::getSize(ImageType::getFormatedName('m_scene')), 'homeSize' => Image::getSize(ImageType::getFormatedName('home')), 'allow_oosp' => (int) Configuration::get('PS_ORDER_OUT_OF_STOCK'), 'comparator_max_item' => (int) Configuration::get('PS_COMPARATOR_MAX_ITEM'), 'suppliers' => Supplier::getSuppliers(), 'body_classes' => array($this->php_self . '-' . $this->category->id, $this->php_self . '-' . $this->category->link_rewrite)));
 }
Ejemplo n.º 26
0
 public function initContent()
 {
     parent::initContent();
     $this->setTemplate(_PS_THEME_DIR_ . 'category.tpl');
     if (!$this->customer_access) {
         return;
     }
     if (isset($this->context->cookie->id_compare)) {
         $this->context->smarty->assign('compareProducts', CompareProduct::getCompareProducts((int) $this->context->cookie->id_compare));
     }
     $this->productSort();
     // Product sort must be called before assignProductList()
     $this->assignScenes();
     $this->assignSubcategories();
     $this->assignProductList();
     foreach ($this->cat_products as $key => $value) {
         $seller_id = $value['id_seller'];
         $flagIds = Product::getFlagsId($seller_id);
         foreach ($flagIds as $k => $flgId) {
             $this->cat_products[$key]['img_exist'][$k] = file_exists(_PS_ROOT_DIR_ . DS . 'flag' . DS . 'mini' . DS . $flgId . '.jpg') ? 1 : 0;
             $this->cat_products[$key]['img_name'][$k] = $flgId . '.jpg';
         }
     }
     $this->context->smarty->assign(array('category' => $this->category, 'description_short' => Tools::truncateString($this->category->description, 350), 'products' => isset($this->cat_products) && $this->cat_products ? $this->cat_products : null, 'id_category' => (int) $this->category->id, 'id_category_parent' => (int) $this->category->id_parent, 'return_category_name' => Tools::safeOutput($this->category->name), 'path' => Tools::getPath($this->category->id), 'add_prod_display' => Configuration::get('PS_ATTRIBUTE_CATEGORY_DISPLAY'), 'categorySize' => Image::getSize(ImageType::getFormatedName('category')), 'mediumSize' => Image::getSize(ImageType::getFormatedName('medium')), 'thumbSceneSize' => Image::getSize(ImageType::getFormatedName('m_scene')), 'homeSize' => Image::getSize(ImageType::getFormatedName('home')), 'allow_oosp' => (int) Configuration::get('PS_ORDER_OUT_OF_STOCK'), 'comparator_max_item' => (int) Configuration::get('PS_COMPARATOR_MAX_ITEM'), 'suppliers' => Supplier::getSuppliers(), 'body_classes' => array($this->php_self . '-' . $this->category->id, $this->php_self . '-' . $this->category->link_rewrite)));
 }
Ejemplo n.º 27
0
 public function init()
 {
     /*
      * Globals are DEPRECATED as of version 1.5.
      * Use the Context to access objects instead.
      * Example: $this->context->cart
      */
     global $useSSL, $cookie, $smarty, $cart, $iso, $defaultCountry, $protocol_link, $protocol_content, $link, $css_files, $js_files, $currency;
     if (self::$initialized) {
         return;
     }
     self::$initialized = true;
     parent::init();
     // If current URL use SSL, set it true (used a lot for module redirect)
     if (Tools::usingSecureMode()) {
         $useSSL = true;
     }
     // For compatibility with globals, DEPRECATED as of version 1.5
     $css_files = $this->css_files;
     $js_files = $this->js_files;
     // If we call a SSL controller without SSL or a non SSL controller with SSL, we redirect with the right protocol
     if (Configuration::get('PS_SSL_ENABLED') && $_SERVER['REQUEST_METHOD'] != 'POST' && $this->ssl != Tools::usingSecureMode()) {
         header('HTTP/1.1 301 Moved Permanently');
         header('Cache-Control: no-cache');
         if ($this->ssl) {
             header('Location: ' . Tools::getShopDomainSsl(true) . $_SERVER['REQUEST_URI']);
         } else {
             header('Location: ' . Tools::getShopDomain(true) . $_SERVER['REQUEST_URI']);
         }
         exit;
     }
     if ($this->ajax) {
         $this->display_header = false;
         $this->display_footer = false;
     }
     // if account created with the 2 steps register process, remove 'accoun_created' from cookie
     if (isset($this->context->cookie->account_created)) {
         $this->context->smarty->assign('account_created', 1);
         unset($this->context->cookie->account_created);
     }
     ob_start();
     // Init cookie language
     // @TODO This method must be moved into switchLanguage
     Tools::setCookieLanguage($this->context->cookie);
     $protocol_link = Configuration::get('PS_SSL_ENABLED') || Tools::usingSecureMode() ? 'https://' : 'http://';
     $useSSL = isset($this->ssl) && $this->ssl && Configuration::get('PS_SSL_ENABLED') || Tools::usingSecureMode() ? true : false;
     $protocol_content = $useSSL ? 'https://' : 'http://';
     $link = new Link($protocol_link, $protocol_content);
     $this->context->link = $link;
     if ($id_cart = (int) $this->recoverCart()) {
         $this->context->cookie->id_cart = (int) $id_cart;
     }
     if ($this->auth && !$this->context->customer->isLogged($this->guestAllowed)) {
         Tools::redirect('index.php?controller=authentication' . ($this->authRedirection ? '&back=' . $this->authRedirection : ''));
     }
     /* Theme is missing */
     if (!is_dir(_PS_THEME_DIR_)) {
         throw new PrestaShopException(sprintf(Tools::displayError('Current theme unavailable "%s". Please check your theme directory name and permissions.'), basename(rtrim(_PS_THEME_DIR_, '/\\'))));
     }
     if (Configuration::get('PS_GEOLOCATION_ENABLED')) {
         if (($newDefault = $this->geolocationManagement($this->context->country)) && Validate::isLoadedObject($newDefault)) {
             $this->context->country = $newDefault;
         }
     }
     $currency = Tools::setCurrency($this->context->cookie);
     if (isset($_GET['logout']) || $this->context->customer->logged && Customer::isBanned($this->context->customer->id)) {
         $this->context->customer->logout();
         Tools::redirect(isset($_SERVER['HTTP_REFERER']) ? $_SERVER['HTTP_REFERER'] : null);
     } elseif (isset($_GET['mylogout'])) {
         $this->context->customer->mylogout();
         Tools::redirect(isset($_SERVER['HTTP_REFERER']) ? $_SERVER['HTTP_REFERER'] : null);
     }
     /* Cart already exists */
     if ((int) $this->context->cookie->id_cart) {
         $cart = new Cart($this->context->cookie->id_cart);
         if ($cart->OrderExists()) {
             unset($this->context->cookie->id_cart, $cart, $this->context->cookie->checkedTOS);
             $this->context->cookie->check_cgv = false;
         } elseif (intval(Configuration::get('PS_GEOLOCATION_ENABLED')) && !in_array(strtoupper($this->context->cookie->iso_code_country), explode(';', Configuration::get('PS_ALLOWED_COUNTRIES'))) && $cart->nbProducts() && intval(Configuration::get('PS_GEOLOCATION_NA_BEHAVIOR')) != -1 && !FrontController::isInWhitelistForGeolocation() && !in_array($_SERVER['SERVER_NAME'], array('localhost', '127.0.0.1'))) {
             unset($this->context->cookie->id_cart, $cart);
         } elseif ($this->context->cookie->id_customer != $cart->id_customer || $this->context->cookie->id_lang != $cart->id_lang || $currency->id != $cart->id_currency) {
             if ($this->context->cookie->id_customer) {
                 $cart->id_customer = (int) $this->context->cookie->id_customer;
             }
             $cart->id_lang = (int) $this->context->cookie->id_lang;
             $cart->id_currency = (int) $currency->id;
             $cart->update();
         }
         /* Select an address if not set */
         if (isset($cart) && (!isset($cart->id_address_delivery) || $cart->id_address_delivery == 0 || !isset($cart->id_address_invoice) || $cart->id_address_invoice == 0) && $this->context->cookie->id_customer) {
             $to_update = false;
             if (!isset($cart->id_address_delivery) || $cart->id_address_delivery == 0) {
                 $to_update = true;
                 $cart->id_address_delivery = (int) Address::getFirstCustomerAddressId($cart->id_customer);
             }
             if (!isset($cart->id_address_invoice) || $cart->id_address_invoice == 0) {
                 $to_update = true;
                 $cart->id_address_invoice = (int) Address::getFirstCustomerAddressId($cart->id_customer);
             }
             if ($to_update) {
                 $cart->update();
             }
         }
     }
     if (!isset($cart) || !$cart->id) {
         $cart = new Cart();
         $cart->id_lang = (int) $this->context->cookie->id_lang;
         $cart->id_currency = (int) $this->context->cookie->id_currency;
         $cart->id_guest = (int) $this->context->cookie->id_guest;
         $cart->id_shop_group = (int) $this->context->shop->id_shop_group;
         $cart->id_shop = $this->context->shop->id;
         if ($this->context->cookie->id_customer) {
             $cart->id_customer = (int) $this->context->cookie->id_customer;
             $cart->id_address_delivery = (int) Address::getFirstCustomerAddressId($cart->id_customer);
             $cart->id_address_invoice = $cart->id_address_delivery;
         } else {
             $cart->id_address_delivery = 0;
             $cart->id_address_invoice = 0;
         }
         // Needed if the merchant want to give a free product to every visitors
         $this->context->cart = $cart;
         CartRule::autoAddToCart($this->context);
     } else {
         $this->context->cart = $cart;
     }
     /* get page name to display it in body id */
     // Are we in a payment module
     $module_name = '';
     if (Validate::isModuleName(Tools::getValue('module'))) {
         $module_name = Tools::getValue('module');
     }
     if (!empty($this->page_name)) {
         $page_name = $this->page_name;
     } elseif (!empty($this->php_self)) {
         $page_name = $this->php_self;
     } elseif (Tools::getValue('fc') == 'module' && $module_name != '' && Module::getInstanceByName($module_name) instanceof PaymentModule) {
         $page_name = 'module-payment-submit';
     } elseif (preg_match('#^' . preg_quote($this->context->shop->physical_uri, '#') . 'modules/([a-zA-Z0-9_-]+?)/(.*)$#', $_SERVER['REQUEST_URI'], $m)) {
         $page_name = 'module-' . $m[1] . '-' . str_replace(array('.php', '/'), array('', '-'), $m[2]);
     } else {
         $page_name = Dispatcher::getInstance()->getController();
         $page_name = preg_match('/^[0-9]/', $page_name) ? 'page_' . $page_name : $page_name;
     }
     $this->context->smarty->assign(Meta::getMetaTags($this->context->language->id, $page_name));
     $this->context->smarty->assign('request_uri', Tools::safeOutput(urldecode($_SERVER['REQUEST_URI'])));
     /* Breadcrumb */
     $navigationPipe = Configuration::get('PS_NAVIGATION_PIPE') ? Configuration::get('PS_NAVIGATION_PIPE') : '>';
     $this->context->smarty->assign('navigationPipe', $navigationPipe);
     // Automatically redirect to the canonical URL if needed
     if (!empty($this->php_self) && !Tools::getValue('ajax')) {
         $this->canonicalRedirection($this->context->link->getPageLink($this->php_self, $this->ssl, $this->context->language->id));
     }
     Product::initPricesComputation();
     $display_tax_label = $this->context->country->display_tax_label;
     if (isset($cart->{Configuration::get('PS_TAX_ADDRESS_TYPE')}) && $cart->{Configuration::get('PS_TAX_ADDRESS_TYPE')}) {
         $infos = Address::getCountryAndState((int) $cart->{Configuration::get('PS_TAX_ADDRESS_TYPE')});
         $country = new Country((int) $infos['id_country']);
         $this->context->country = $country;
         if (Validate::isLoadedObject($country)) {
             $display_tax_label = $country->display_tax_label;
         }
     }
     $languages = Language::getLanguages(true, $this->context->shop->id);
     $meta_language = array();
     foreach ($languages as $lang) {
         $meta_language[] = $lang['iso_code'];
     }
     $compared_products = array();
     if (Configuration::get('PS_COMPARATOR_MAX_ITEM') && isset($this->context->cookie->id_compare)) {
         $compared_products = CompareProduct::getCompareProducts($this->context->cookie->id_compare);
     }
     $this->context->smarty->assign(array('mobile_device' => $this->context->getMobileDevice(), 'link' => $link, 'cart' => $cart, 'currency' => $currency, 'cookie' => $this->context->cookie, 'page_name' => $page_name, 'hide_left_column' => !$this->display_column_left, 'hide_right_column' => !$this->display_column_right, 'base_dir' => _PS_BASE_URL_ . __PS_BASE_URI__, 'base_dir_ssl' => $protocol_link . Tools::getShopDomainSsl() . __PS_BASE_URI__, 'content_dir' => $protocol_content . Tools::getHttpHost() . __PS_BASE_URI__, 'base_uri' => $protocol_content . Tools::getHttpHost() . __PS_BASE_URI__ . (!Configuration::get('PS_REWRITING_SETTINGS') ? 'index.php' : ''), 'tpl_dir' => _PS_THEME_DIR_, 'modules_dir' => _MODULE_DIR_, 'mail_dir' => _MAIL_DIR_, 'lang_iso' => $this->context->language->iso_code, 'come_from' => Tools::getHttpHost(true, true) . Tools::htmlentitiesUTF8(str_replace(array('\'', '\\'), '', urldecode($_SERVER['REQUEST_URI']))), 'cart_qties' => (int) $cart->nbProducts(), 'currencies' => Currency::getCurrencies(), 'languages' => $languages, 'meta_language' => implode(',', $meta_language), 'priceDisplay' => Product::getTaxCalculationMethod((int) $this->context->cookie->id_customer), 'is_logged' => (bool) $this->context->customer->isLogged(), 'is_guest' => (bool) $this->context->customer->isGuest(), 'add_prod_display' => (int) Configuration::get('PS_ATTRIBUTE_CATEGORY_DISPLAY'), 'shop_name' => Configuration::get('PS_SHOP_NAME'), 'roundMode' => (int) Configuration::get('PS_PRICE_ROUND_MODE'), 'use_taxes' => (int) Configuration::get('PS_TAX'), 'show_taxes' => (int) (Configuration::get('PS_TAX_DISPLAY') == 1 && (int) Configuration::get('PS_TAX')), 'display_tax_label' => (bool) $display_tax_label, 'vat_management' => (int) Configuration::get('VATNUMBER_MANAGEMENT'), 'opc' => (bool) Configuration::get('PS_ORDER_PROCESS_TYPE'), 'PS_CATALOG_MODE' => (bool) Configuration::get('PS_CATALOG_MODE') || !(bool) Group::getCurrent()->show_prices, 'b2b_enable' => (bool) Configuration::get('PS_B2B_ENABLE'), 'request' => $link->getPaginationLink(false, false, false, true), 'PS_STOCK_MANAGEMENT' => Configuration::get('PS_STOCK_MANAGEMENT'), 'quick_view' => (bool) Configuration::get('PS_QUICK_VIEW'), 'shop_phone' => Configuration::get('PS_SHOP_PHONE'), 'compared_products' => is_array($compared_products) ? $compared_products : array(), 'comparator_max_item' => (int) Configuration::get('PS_COMPARATOR_MAX_ITEM')));
     // Add the tpl files directory for mobile
     if ($this->useMobileTheme()) {
         $this->context->smarty->assign(array('tpl_mobile_uri' => _PS_THEME_MOBILE_DIR_));
     }
     // Deprecated
     $this->context->smarty->assign(array('id_currency_cookie' => (int) $currency->id, 'logged' => $this->context->customer->isLogged(), 'customerName' => $this->context->customer->logged ? $this->context->cookie->customer_firstname . ' ' . $this->context->cookie->customer_lastname : false));
     $assign_array = array('img_ps_dir' => _PS_IMG_, 'img_cat_dir' => _THEME_CAT_DIR_, 'img_lang_dir' => _THEME_LANG_DIR_, 'img_prod_dir' => _THEME_PROD_DIR_, 'img_manu_dir' => _THEME_MANU_DIR_, 'img_sup_dir' => _THEME_SUP_DIR_, 'img_ship_dir' => _THEME_SHIP_DIR_, 'img_store_dir' => _THEME_STORE_DIR_, 'img_col_dir' => _THEME_COL_DIR_, 'img_dir' => _THEME_IMG_DIR_, 'css_dir' => _THEME_CSS_DIR_, 'js_dir' => _THEME_JS_DIR_, 'pic_dir' => _THEME_PROD_PIC_DIR_);
     // Add the images directory for mobile
     if ($this->useMobileTheme()) {
         $assign_array['img_mobile_dir'] = _THEME_MOBILE_IMG_DIR_;
     }
     // Add the CSS directory for mobile
     if ($this->useMobileTheme()) {
         $assign_array['css_mobile_dir'] = _THEME_MOBILE_CSS_DIR_;
     }
     foreach ($assign_array as $assign_key => $assign_value) {
         if (substr($assign_value, 0, 1) == '/' || $protocol_content == 'https://') {
             $this->context->smarty->assign($assign_key, $protocol_content . Tools::getMediaServer($assign_value) . $assign_value);
         } else {
             $this->context->smarty->assign($assign_key, $assign_value);
         }
     }
     /*
      * These shortcuts are DEPRECATED as of version 1.5.
      * Use the Context to access objects instead.
      * Example: $this->context->cart
      */
     self::$cookie = $this->context->cookie;
     self::$cart = $cart;
     self::$smarty = $this->context->smarty;
     self::$link = $link;
     $defaultCountry = $this->context->country;
     $this->displayMaintenancePage();
     if ($this->restrictedCountry) {
         $this->displayRestrictedCountryPage();
     }
     if (Tools::isSubmit('live_edit') && !$this->checkLiveEditAccess()) {
         Tools::redirect('index.php?controller=404');
     }
     $this->iso = $iso;
     $this->context->cart = $cart;
     $this->context->currency = $currency;
 }
Ejemplo n.º 28
0
 public function hookdisplayHeader()
 {
     /*
     $this->arrType = array('saller'=>$this->l('Best Sellers'), 'view'=>$this->l('Most View'), 'special'=>$this->l('Specials'), 'arrival'=>$this->l('New Arrivals'));		
             $this->page_name = Dispatcher::getInstance()->getController();        
     if ($this->page_name == 'product')
     {		  
     	$productId = (int)Tools::getValue('id_product');
                 $check = DB::getInstance()->getValue("Select productId From "._DB_PREFIX_."groupcategory_product_view Where productId = ".$productId);
                 if($check){
                     DB::getInstance()->execute("Update "._DB_PREFIX_."groupcategory_product_view Set total = total + 1 Where productId =" .$productId);
                 }else{
                     DB::getInstance()->execute("Insert Into "._DB_PREFIX_."groupcategory_product_view (productId, total) Value ('$productId', 1)");
                 }
     }        
     */
     if (count($this->codeCss) == 0) {
         $cssStyles = DB::getInstance()->executeS("Select id, name From " . _DB_PREFIX_ . "groupcategory_styles");
         if ($cssStyles) {
             foreach ($cssStyles as $cssStyle) {
                 $this->codeCss[] = file_get_contents(_PS_MODULE_DIR_ . 'groupcategory/css/front-end/style-' . $cssStyle['id'] . ".css");
             }
         }
     }
     $themeOption = @Configuration::get('OVIC_CURRENT_OPTION');
     //$themeOption = 3;
     if (isset($themeOption) && $themeOption > 0) {
         $this->context->controller->addJS($this->_path . 'js/front-end/common' . $themeOption . '.js');
         $this->context->controller->addCSS($this->_path . 'css/front-end/style' . $themeOption . '.css');
     } else {
         $themeOption = '';
         $this->context->controller->addJS($this->_path . 'js/front-end/common.js');
         $this->context->controller->addCSS($this->_path . 'css/front-end/style.css');
     }
     //$this->context->controller->addJS(($this->_path).'js/front-end/jquery.actual.min.js');
     $this->context->smarty->assign(array('comparator_max_item' => (int) Configuration::get('PS_COMPARATOR_MAX_ITEM'), 'groupCategoryUrl' => __PS_BASE_URI__ . 'modules/' . $this->name, 'homeSize' => Image::getSize(ImageType::getFormatedName('home')), 'codeCss' => $this->codeCss, 'themeOption' => $themeOption));
     include_once _PS_CONTROLLER_DIR_ . 'front/CompareController.php';
     if (!($this->compareProductIds = CompareProduct::getCompareProducts($this->context->cookie->id_compare))) {
         $this->compareProductIds = array();
     }
 }