File manager - Edit - /home/verseaumee/zenit/components/com_hikashop/controllers/product.php
Back
<?php /** * @package HikaShop for Joomla! * @version 4.5.1 * @author hikashop.com * @copyright (C) 2010-2022 HIKARI SOFTWARE. All rights reserved. * @license GNU/GPLv3 http://www.gnu.org/licenses/gpl-3.0.html */ defined('_JEXEC') or die('Restricted access'); ?><?php class productController extends hikashopController { public $modify = array(); public $delete = array(); public $modify_views = array(); public function __construct($config = array(), $skip = false) { parent::__construct($config, $skip); $this->display = array_merge($this->display, array( 'updatecart', 'cart', 'cleancart', 'contact', 'compare', 'waitlist', 'send_email', 'add_waitlist', 'price', 'download', 'filter', 'cartinfo' )); } public function authorize($task) { return $this->isIn($task, array('display')); } public function contact() { hikaInput::get()->set('layout', 'contact'); return $this->display(); } public function compare() { hikaInput::get()->set('layout', 'compare'); return $this->display(); } public function waitlist() { hikaInput::get()->set('layout', 'waitlist'); return $this->display(); } public function price() { hikaInput::get()->set('layout', 'option_price'); return $this->display(); } public function listing() { hikaInput::get()->set('layout', 'listing'); $tmpl = hikaInput::get()->getCmd('tmpl', ''); if(in_array($tmpl, array('ajax', 'raw'))) { if(!headers_sent()) header('X-Robots-Tag: noindex'); $result = $this->display(); $filter = hikaInput::get()->getCmd('filter', ''); if(!$filter) exit; return $result; } return $this->display(); } public function filter() { hikaInput::get()->set('layout', 'filter'); if(!headers_sent()) header('X-Robots-Tag: noindex'); return $this->display(); } public function send_email() { JSession::checkToken('request') || die('Invalid Token'); $element = new stdClass(); $formData = hikaInput::get()->get('data', array(), 'array'); if(empty($formData['contact'])) { $formData['contact'] = @$formData['register']; foreach($formData['contact'] as $column => $value) { hikashop_secureField($column); $element->$column = strip_tags($value); } } else { $fieldsClass = hikashop_get('class.field'); $element = $fieldsClass->getInput('contact', $element); } $config =& hikashop_config(); $app = JFactory::getApplication(); JPluginHelper::importPlugin('hikashop'); $send = empty($element->product_id) || (int)$config->get('product_contact', 0); if(empty($element->email)) { $app->enqueueMessage(JText::_('VALID_EMAIL'), 'error'); $send = false; } $app->triggerEvent('onBeforeSendContactRequest', array(&$element, &$send)); jimport('joomla.mail.helper'); $mailer = JFactory::getMailer(); if($config->get('product_contact_email_required', 1) && empty($element->email)) { $app->enqueueMessage(JText::_('EMAIL_INVALID'), 'error'); $send = false; } if(!empty($element->email) && ((method_exists('JMailHelper', 'isEmailAddress') && !JMailHelper::isEmailAddress($element->email)) || !$mailer->validateAddress($element->email))){ $app->enqueueMessage(JText::_('EMAIL_INVALID'), 'error'); $send = false; } if($config->get('product_contact_name_required', 1) && empty($element->name)) { $app->enqueueMessage(JText::_('SPECIFY_A_NAME'), 'error'); $send = false; } if($config->get('product_contact_altbody_required', 1) && empty($element->altbody)) { $app->enqueueMessage(JText::_('PLEASE_FILL_ADDITIONAL_INFO'), 'error'); $send = false; } elseif(!empty($element->altbody)) { $element->altbody = strip_tags($element->altbody); } if(!empty($element->consentcheck) && empty($element->consent)) { $app->enqueueMessage(JText::_('PLEASE_AGREE_TO_PRIVACY_POLICY'), 'error'); $send = false; } if(!$send) { hikaInput::get()->set('formData', $element); $this->contact(); return; } $subject = JText::_('CONTACT_REQUEST'); if(!empty($element->product_id)) { $productClass = hikashop_get('class.product'); $product = $productClass->get((int)$element->product_id); if(!empty($product) && $product->product_type == 'variant') { $db = JFactory::getDBO(); $query = 'SELECT * FROM '.hikashop_table('variant').' AS v '. ' LEFT JOIN '.hikashop_table('characteristic') .' AS c ON v.variant_characteristic_id = c.characteristic_id '. ' WHERE v.variant_product_id = '.(int)$element->product_id.' ORDER BY v.ordering'; $db->setQuery($query); $product->characteristics = $db->loadObjectList(); $parentProduct = $productClass->get((int)$product->product_parent_id); $productClass->checkVariant($product, $parentProduct); } if(!empty($product) && !empty($product->product_name)){ $subject = JText::sprintf('CONTACT_REQUEST_FOR_PRODUCT',strip_tags($product->product_name)); } } $send = $config->get('product_contact_send_email', 1); $app->triggerEvent('onBeforeSendContactRequestEmail', array(&$element, &$send)); if($send) { $mailClass = hikashop_get('class.mail'); $infos = new stdClass(); $infos->element =& $element; $infos->product =& $product; $mail = $mailClass->get('contact_request', $infos); $mail->subject = $subject; $mail->from_email = $config->get('from_email'); $mail->from_name = $config->get('from_name'); if(!empty($element->email)) $mail->reply_email = $element->email; if(empty($mail->dst_email)) { $dst = $config->get('contact_request_email'); if(empty($dst)) $mail->dst_email = array($config->get('from_email')); else $mail->dst_email = explode(',', $dst); } if($config->get('contact_form_copy_checkbox', 0) && !empty($element->copycheck) && empty($element->copy) && !empty($element->email)) { $mail->cc_email = $element->email; } if(!empty($element->email)) { $user_name = ''; if(!empty($element->name)) $user_name = $element->name; if(HIKASHOP_J30) { $mailClass->mailer->addReplyTo($element->email, $user_name); } else { $mailClass->mailer->addReplyTo(array($element->email, $user_name)); } } $status = $mailClass->sendMail($mail); } else { $status = true; } if($status) { $app->enqueueMessage(JText::_('CONTACT_REQUEST_SENT')); if(hikaInput::get()->getString('tmpl', '') == 'component') { $doc = JFactory::getDocument(); $doc->addScriptDeclaration('setTimeout(function(){ window.parent.hikashop.closeBox(); }, 4000);'); return true; } if(!empty($product->product_id)) { $url_itemid = ''; if(!empty($Itemid)) { $url_itemid = '&Itemid='.(int)$Itemid; } if(!isset($productClass)) $productClass = hikashop_get('class.product'); $productClass->addAlias($product); $app->enqueueMessage(JText::sprintf('CLICK_HERE_TO_GO_BACK_TO_PRODUCT',hikashop_contentLink('product&task=show&cid='.$product->product_id.'&name='.$product->alias.$url_itemid, $product))); } } $url = hikaInput::get()->getVar('redirect_url'); if(!empty($url)) { $app->redirect($url); } else { $this->contact(); } } function add_waitlist() { JSession::checkToken('request') || die('Invalid Token'); $element = new stdClass(); $formData = hikaInput::get()->get('data', array(), 'array'); foreach($formData['register'] as $column => $value){ hikashop_secureField($column); $element->$column = strip_tags($value); } $hkUser = hikashop_loadUser(true); $app = JFactory::getApplication(); if(empty($element->email)) { if(empty($hkUser->user_email)) { $app->enqueueMessage(JText::_('VALID_EMAIL')); return $this->waitlist(); } else { $element->email = $hkUser->user_email; } } if(empty($element->name) && !empty($hkUser->name)) { $element->name = $hkUser->name; } jimport('joomla.mail.helper'); $mailer = JFactory::getMailer(); if($element->email && (!JMailHelper::isEmailAddress($element->email) || !$mailer->validateAddress($element->email))) { $app->enqueueMessage(JText::_('EMAIL_INVALID'), 'error'); return $this->waitlist(); } if(!empty($element->consentcheck) && empty($element->consent)) { $app->enqueueMessage(JText::_('PLEASE_AGREE_TO_PRIVACY_POLICY'), 'error'); return $this->waitlist(); } $config =& hikashop_config(); if(!$config->get('product_waitlist', 0)) { return $this->waitlist(); } $waitlist_subscribe_limit = $config->get('product_waitlist_sub_limit',10); $product_id = 0; $itemId = hikaInput::get()->getVar('Itemid'); $url_itemid = ''; if(!empty($itemId)) $url_itemid = '&Itemid='.$itemId; $alias = ''; if(!empty($element->product_id)){ $productClass = hikashop_get('class.product'); $product = $productClass->get((int)$element->product_id); if(!empty($product)){ if($product->product_type=='variant'){ $db = JFactory::getDBO(); $db->setQuery('SELECT * FROM '.hikashop_table('variant').' AS a LEFT JOIN '.hikashop_table('characteristic') .' AS b ON a.variant_characteristic_id=b.characteristic_id WHERE a.variant_product_id='.(int)$element->product_id.' ORDER BY a.ordering'); $product->characteristics = $db->loadObjectList(); $parentProduct = $productClass->get((int)$product->product_parent_id); $productClass->checkVariant($product,$parentProduct); } $product_id = (int)$product->product_id; $productClass->addAlias($product); $alias = $product->alias; } } if( $product_id == 0 ) { return $this->waitlist(); } $email = (!empty($element->email)) ? $element->email : ''; $name = (!empty($element->name)) ? $element->name : ''; $db = JFactory::getDBO(); $sql = 'SELECT waitlist_id FROM '.hikashop_table('waitlist').' WHERE email='.$db->quote($email).' AND product_id='.(int)$product_id; $db->setQuery($sql); $subscription = $db->loadResult(); if(empty($subscription)) { $sql = 'SELECT count(*) FROM '.hikashop_table('waitlist').' WHERE product_id='.(int)$product_id; $db->setQuery($sql); $subscriptions = $db->loadResult(); if( $subscriptions < $waitlist_subscribe_limit || $waitlist_subscribe_limit <= 0 ) { $lang = JFactory::getLanguage(); $tag = $lang->getTag(); $sql = 'INSERT IGNORE INTO '.hikashop_table('waitlist').' (`product_id`,`date`,`email`,`name`,`product_item_id`,`language`) VALUES ('.(int)$product_id.', '.time().', '.$db->quote($email).', '.$db->quote($name).', '.(int)$itemId.', '.$db->quote($tag).');'; $db->setQuery($sql); $db->execute(); $app->enqueueMessage(JText::_('WAITLIST_SUBSCRIBE')); $subject = JText::_('WAITLIST_REQUEST'); if(!empty($product->product_name)) { $subject = JText::sprintf('WAITLIST_REQUEST_FOR_PRODUCT', strip_tags($product->product_name)); } $mailClass = hikashop_get('class.mail'); $infos = new stdClass(); $infos->user =& $element; $infos->product =& $product; $mail = $mailClass->get('waitlist_admin_notification', $infos); $mail->subject = $subject; $mail->from_email = $config->get('from_email'); $mail->from_name = $config->get('from_name'); $mail->reply_email = $element->email; if(empty($mail->dst_email)) $mail->dst_email = array($config->get('from_email')); $status = $mailClass->sendMail($mail); } else { $app->enqueueMessage(JText::_('WAITLIST_FULL')); } } else { $app->enqueueMessage(JText::_('ALREADY_REGISTER_WAITLIST')); } $tmpl = hikaInput::get()->getString('tmpl'); $app->enqueueMessage(JText::sprintf('CLICK_HERE_TO_GO_BACK_TO_PRODUCT',hikashop_contentLink('product&task=show&cid='.$product->product_id.'&name='.$alias.$url_itemid,$product, $tmpl == 'component'))); $url = hikaInput::get()->getVar('redirect_url'); if(!empty($url)){ $app->redirect($url); }else{ $this->waitlist(); } } public function cleancart() { hikashop_nocache(); $cartClass = hikashop_get('class.cart'); $cart_id = $cartClass->getCurrentCartId(); if(!empty($cart_id)) $cartClass->delete($cart_id); $url = hikaInput::get()->getVar('return_url', ''); if(empty($url)) { $url = hikaInput::get()->getVar('url', ''); $url = urldecode($url); } else { $url = base64_decode(urldecode($url)); } if(HIKASHOP_J30){ $plugin = JPluginHelper::getPlugin('system', 'cache'); $params = new JRegistry(@$plugin->params); $options = array( 'defaultgroup' => 'page', 'browsercache' => $params->get('browsercache', false), 'caching' => false, ); $cache = JCache::getInstance('page', $options); $cache->clean(); } if(empty($url)) { echo '<html><head><script type="text/javascript">history.go(-1);</script></head><body></body></html>'; exit; } if(strpos($url, 'tmpl=component') !== false || strpos($url, 'tmpl-component') !== false) { if(!empty($_SERVER['HTTP_REFERER'])) { $app = JFactory::getApplication(); $app->redirect($_SERVER['HTTP_REFERER']); } else { echo '<html><head><script type="text/javascript">history.back();</script></head><body></body></html>'; exit; } } if(hikashop_disallowUrlRedirect($url)) return false; $this->setRedirect($url); } public function updatecart() { hikashop_nocache(); if(!headers_sent()) header('X-Robots-Tag: noindex'); $char = hikaInput::get()->getString('characteristic', ''); if(!empty($char)) return $this->show(); $config = hikashop_config(); $app = JFactory::getApplication(); $cartClass = hikashop_get('class.cart'); $product_id = hikaInput::get()->getInt('product_id', 0); $module_id = hikaInput::get()->getInt('module_id', 0); $reset_cart = hikaInput::get()->getInt('reset_cart', 0); $tmpl = hikaInput::get()->getCmd('tmpl', ''); if(empty($_COOKIE)) { if(in_array($tmpl, array('ajax', 'raw'))) { $ret = array( 'ret' => 0, 'message' => JText::_('COOKIES_REQUIRED_FOR_OPERATION') ); hikashop_cleanBuffers(); echo json_encode($ret); exit; } $privacy_plugin_present = false; try { $db = JFactory::getDBO(); $db->setQuery("SELECT extension_id FROM #__extensions WHERE `type` = 'plugin' AND `folder` = 'system' AND `element` = 'eprivacy' AND `enabled` = '1'"); $privacy_plugin_present = $db->loadResult(); } catch(Exception $e) { } if($privacy_plugin_present) { echo hikashop_display(JText::_('COOKIES_REQUIRED_FOR_OPERATION'), 'error'); return; } } $cart_type = hikaInput::get()->getString('hikashop_cart_type_'.$product_id.'_'.$module_id, null); if(empty($cart_type)) $cart_type = hikaInput::get()->getString('hikashop_cart_type_'.$module_id, null); if(empty($cart_type)) $cart_type = hikaInput::get()->getString('cart_type', 'cart'); $cart_id = hikaInput::get()->get->getInt('cart_id', 0); if(!empty($cart_id)) { $cart = $cartClass->get($cart_id); $cart_id = 0; if(!empty($cart)) // && $cart->cart_type == $cart_type) $cart_id = $cart->cart_id; } if(empty($cart_id)) $cart_id = $cartClass->getCurrentCartId($cart_type); if($cart_id && $reset_cart) { $cart_id = $cartClass->resetCart($cart_id); } if($cart_id === false && $cart_type == 'wishlist' && hikashop_loadUser() == false) { if(in_array($tmpl, array('ajax', 'raw'))) { $ret = array( 'ret' => 0, 'message' => JText::_('LOGIN_REQUIRED_FOR_WISHLISTS'), 'err_wishlist_guest' => 1 ); hikashop_cleanBuffers(); echo json_encode($ret); exit; } $app->enqueueMessage(JText::_('LOGIN_REQUIRED_FOR_WISHLISTS')); return $this->legacyWishlistRedirection(); } if($cart_id === false) { if(in_array($tmpl, array('ajax', 'raw'))) { echo '{ret:0}'; exit; } return false; } if($cart_type != 'wishlist' && $config->get('catalogue')) { if(in_array($tmpl, array('ajax', 'raw'))) { echo '{ret:0}'; exit; } return false; } if($cart_id === 0 && $cart_type != 'cart') { $cart = new stdClass(); $cart->cart_type = $cart_type; $status = $cartClass->save($cart); if(empty($status) && in_array($tmpl, array('ajax', 'raw'))) { echo '{ret:0}'; exit; } if(empty($status)) return false; $cart_id = (int)$status; } $addTo = hikaInput::get()->getString('add_to', ''); $cart_type_id = $cart_type.'_id'; if(!empty($addTo)) { $from_id = $cart_id; if($addTo == 'cart') hikaInput::get()->set('from_id', $cart_id); $cart_id = $app->getUserState(HIKASHOP_COMPONENT.'.'.$addTo.'_id', 0); $cart_type_id = $addTo.'_id'; hikaInput::get()->set('cart_type', $addTo); } else { hikaInput::get()->set('cart_type', $cart_type); } hikaInput::get()->set($cart_type_id, $cart_id); $add = hikaInput::get()->getCmd('add', ''); $add = empty($add) ? 0 : 1; if(empty($product_id)) $product_id = hikaInput::get()->getCmd('cid', 0); $cart_product_id = hikaInput::get()->getInt('cart_product_id', 0); $quantity = hikaInput::get()->getInt('quantity', 1); $status = null; $used_data = null; if (!empty($product_id)) { $type = hikaInput::get()->getWord('type', 'product'); if($type == 'product') $product_id = (int)$product_id; $used_data = array('product' => $product_id, 'quantity' => $quantity); $status = $cartClass->update($product_id, $quantity, $add, $type, true, false, $cart_id); } elseif (!empty($cart_product_id)) { $used_data = array('cart_product' => $cart_product_id, 'quantity' => $quantity); $status = $cartClass->update($cart_product_id, $quantity, $add, 'item', true, false, $cart_id); } else { $formData = hikaInput::get()->get('item', array(), 'array'); $type = 'item'; if(empty($formData)) { $formData = hikaInput::get()->get('data', array(), 'array'); $type = 'product'; } if(count($formData)) { $used_data = array('form' => $formData, 'type' => $type); $status = $cartClass->update($formData, 0, $add, $type, true, false, $cart_id); } } if($status || is_null($status)){ $coupon = hikaInput::get()->getString('coupon'); if(!empty($coupon)) $cartClass->addCoupon($cart_id, $coupon); } $cart = $cartClass->getFullCart($cart_id); if(in_array($tmpl, array('ajax', 'raw'))) { $ret = $this->getAjaxCartData($used_data, $cart, $status); hikashop_cleanBuffers(); echo json_encode($ret); exit; } if(!empty($cart->messages)) { foreach($cart->messages as $msg) { $app->enqueueMessage($msg['msg'], $msg['type']); } } if($status === false && $tmpl != 'component') { if(!empty($_SERVER['HTTP_REFERER'])) { if(strpos($_SERVER['HTTP_REFERER'], HIKASHOP_LIVE) === false && preg_match('#^https?://.*#', $_SERVER['HTTP_REFERER'])) return false; $app->redirect( str_replace('&popup=1','',$_SERVER['HTTP_REFERER'])); } else { echo '<html><head><script type="text/javascript">history.back();</script></head><body></body></html>'; $session = JFactory::getSession(); $session->set('application.queue', $app->getMessageQueue()); exit; } } $checkout = hikaInput::get()->getString('checkout', ''); if(!empty($checkout)) { $this->redirectToCheckout(); return true; } if($cart_type == 'wishlist') return $this->legacyWishlistRedirection(); return $this->legacyCartRedirection(); } public function cartinfo() { $ret = array(); $cartClass = hikashop_get('class.cart'); $cart = $cartClass->getFullCart(); $ret = $cartClass->getCartProductsInfo($cart); hikashop_cleanBuffers(); echo json_encode($ret); exit; } protected function getAjaxCartData($data, $cart, $status) { $cartClass = hikashop_get('class.cart'); $ret = $cartClass->getCartProductsInfo($cart); $ret['ret'] = (int)$status; if(!empty($data['type']) && $data['type'] == 'product' && !empty($data['form']) && count($data['form'])) { $added = array(); foreach($data['form'] as $prod => $qty) { if($qty) $added[] = array('product' => $prod, 'quantity' => $qty); } if(count($added) == 1) { $data = array_merge($data,$added[0]); } } if(!isset($data['product'])) return $ret; $imageHelper = hikashop_get('helper.image'); $config = hikashop_config(); $imageSize = (int)$config->get('addtocart_popup_image_size', 50); if(!empty($cart->products)) { foreach($cart->products as $product) { if($product->product_id != $data['product']) continue; $ret['product_id'] = (int)$product->product_id; $ret['cart_product_id'] = (int)$product->cart_product_id; $ret['product_name'] = $product->product_name; $ret['quantity'] = (int)$product->cart_product_quantity; if($imageSize > 0) { $image_path = (isset($product->images[0]->file_path) ? $product->images[0]->file_path : ''); $img = $imageHelper->getThumbnail($image_path, array($imageSize,$imageSize), array('default' => true), true); if($img->success) $ret['image'] = $img->url; } break; } } if(!isset($ret['product_name'])) { $productClass = hikashop_get('class.product'); $product = $productClass->getProduct($data['product']); if(empty($product->product_name) && !empty($product->parent->product_name)) $product->product_name = $product->parent->product_name; $ret['product_name'] = hikashop_translate($product->product_name); $ret['quantity'] = 0; $ret['cart_product_id'] = 0; $image_path = ((isset($product->parent) && isset($product->parent->images[0]->file_path)) ? $product->parent->images[0]->file_path : ''); $image_path = (isset($product->images[0]->file_path) ? $product->images[0]->file_path : $image_path); $img = $imageHelper->getThumbnail($image_path, array($imageSize,$imageSize), array('default' => true), true); if($img->success) $ret['image'] = $img->url; } if(!empty($cart->messages)) { foreach($cart->messages as $msg) { if(empty($msg['product_id']) || (int)$msg['product_id'] != $data['product']) continue; $ret['message'] = $msg['msg']; break; } } return $ret; } protected function redirectToCheckout() { global $Itemid; $url = 'checkout'; if(!empty($Itemid)){ $url .= '&Itemid=' . $Itemid; } $url = hikashop_completeLink($url, false, true); $this->setRedirect($url); } protected function legacyCartRedirection() { $app = JFactory::getApplication(); $config = hikashop_config(); $app->setUserState(HIKASHOP_COMPONENT.'.popup_cart_type','cart'); $url = hikaInput::get()->getVar('return_url',''); if(empty($url)) { $url = urldecode(hikaInput::get()->getVar('url', '')); } else { $url = base64_decode(urldecode($url)); } $url = str_replace(array('&popup=1','?popup=1'), '', $url); if(hikashop_disallowUrlRedirect($url)) $url = ''; if(empty($url)){ global $Itemid; $url = 'checkout'; if(!empty($Itemid)) $url .= '&Itemid=' . $Itemid; $url = hikashop_completeLink($url, false, true); } $tmpl = hikaInput::get()->getCmd('tmpl', ''); if($tmpl == 'component' && $config->get('redirect_url_after_add_cart', 'stay_if_cart') != 'checkout') { $js =''; jimport('joomla.application.module.helper'); global $Itemid; if(isset($Itemid) && empty($Itemid)) { $Itemid = null; hikaInput::get()->set('Itemid', null); } $module = JModuleHelper::getModule('hikashop_cart', false); $params = new HikaParameter( @$module->params ); if(!empty($module)) $module_options = $config->get('params_'.$module->id); if(empty($module_options)) $module_options = $config->get('default_params'); foreach($module_options as $key => $optionElement) { $params->set($key, $optionElement); } if(!empty($module)) { foreach(get_object_vars($module) as $k => $v) { if(!is_object($v)) $params->set($k,$v); } $params->set('from', 'module'); } $params->set('return_url', $url); header('Content-Type: text/css; charset=utf-8'); echo hikashop_getLayout('product', 'cart', $params, $js); exit; } $params = new HikaParameter(@$module->params); if(hikaInput::get()->getInt('popup', 0) || (hikaInput::get()->getInt('quantity', 0) > 0 && $config->get('redirect_url_after_add_cart', 'stay_if_cart') == 'ask_user')) { $url .= (strpos($url, '?') ? '&' : '?') . 'popup=1'; $app->setUserState(HIKASHOP_COMPONENT.'.popup', 1); } if(hikaInput::get()->getInt('hikashop_ajax', 0) == 0) { $this->setRedirect($url); return false; } ob_clean(); if($params->get('from','module') != 'module' || $config->get('redirect_url_after_add_cart', 'stay_if_cart') == 'checkout') { echo 'URL|' . $url; exit; } $this->setRedirect($url); return false; } protected function legacyWishlistRedirection() { $app = JFactory::getApplication(); $config = hikashop_config(); $app->setUserState( HIKASHOP_COMPONENT.'.popup_cart_type', 'wishlist'); if(hikashop_loadUser() == null) { $url = hikaInput::get()->getVar('return_url', ''); if(!empty($url)) $url = base64_decode(urldecode($url)); $url = str_replace(array('&popup=1', '?popup=1'), '', $url); if($config->get('redirect_url_after_add_cart', 'stay_if_cart') != 'ask_user') $app->enqueueMessage(JText::_('LOGIN_REQUIRED_FOR_WISHLISTS')); $tmpl = hikaInput::get()->getCmd('tmpl', ''); if($tmpl == 'component') { echo 'notLogged'; exit; } if(!empty($_SERVER['HTTP_REFERER'])) { if(strpos($_SERVER['HTTP_REFERER'], HIKASHOP_LIVE) === false && preg_match('#^https?://.*#', $_SERVER['HTTP_REFERER'])) return false; if($config->get('redirect_url_after_add_cart','stay_if_cart') == 'ask_user') $app->enqueueMessage(JText::_('LOGIN_REQUIRED_FOR_WISHLISTS')); $app->redirect( str_replace('&popup=1', '', $_SERVER['HTTP_REFERER'])); } } else { $url = ''; $stay = 0; $redirectConfig = $config->get('redirect_url_after_add_cart', 'stay_if_cart'); switch($redirectConfig) { case 'ask_user': $url = hikaInput::get()->getVar('return_url',''); if(!empty($url)) $url = base64_decode(urldecode($url)); $url = str_replace(array('&popup=1','?popup=1'), '', $url); if(hikaInput::get()->getInt('popup', 0) && empty($_COOKIE['popup']) || hikaInput::get()->getInt('quantity', 0)) { $url .= (strpos($url, '?') ? '&' : '?') . 'popup=1'; $app->setUserState( HIKASHOP_COMPONENT.'.popup', 1); } hikaInput::get()->set('cart_type', 'wishlist'); break; case 'stay': $stay = 1; break; case 'checkout': break; case 'stay_if_cart': default: $module = JModuleHelper::getModule('hikashop_wishlist', false); if($module != null) $stay = 1; break; } if($redirectConfig != 'checkout') { $module = JModuleHelper::getModule('hikashop_wishlist', false); $params = new HikaParameter(@$module->params); if(!empty($module)) $module_options = $config->get('params_'.$module->id); if(empty($module_options)) $module_options = $config->get('default_params'); foreach($module_options as $key => $optionElement) { $params->set($key,$optionElement); } if(!empty($module)) { foreach(get_object_vars($module) as $k => $v) { if(!is_object($v)) $params->set($k,$v); } $params->set('from','module'); } $params->set('return_url', $url); $params->set('cart_type', 'wishlist'); $js = ''; echo hikashop_getLayout('product', 'cart', $params, $js); } } if(empty($url)) { global $Itemid; if(isset($from_id)) $cart_id = $from_id; if(hikaInput::get()->getInt('new_wishlist_id', 0) != 0 && hikaInput::get()->getInt('delete', 0) == 0) $cart_id = hikaInput::get()->getInt('new_wishlist_id', 0); $cartClass = hikashop_get('class.cart'); $cart = $cartClass->get($cart_id, false, 'wishlist'); if(!empty($cart) && (int)$cart_id != 0) { $url = 'cart&task=showcart&cart_type=wishlist&cart_id='.$cart_id.'&Itemid='.$Itemid; } else { $url = 'cart&task=showcarts&cart_type=wishlist&Itemid='.$Itemid; } $url = hikashop_completeLink($url, false, true); } $stay = hikaInput::get()->getInt('stay', 0); if($stay == 0) { if(hikashop_disallowUrlRedirect($url)) return false; if(hikaInput::get()->getVar('from_form', true)) { hikaInput::get()->set('cart_type', 'wishlist'); $this->setRedirect($url); return false; } ob_clean(); echo 'URL|'.$url; exit; } echo '<html><head><script type="text/javascript">history.back();</script></head><body></body></html>'; exit; } public function cart() { $module_id = hikaInput::get()->getInt('module_id', 0); if(empty($module_id)) return false; $tmpl = hikaInput::get()->getVar('tmpl', ''); if(!in_array($tmpl, array('component', 'ajax', 'raw'))) hikaInput::get()->set('tmpl', 'component'); hikaInput::get()->set('layout', 'cart'); ob_clean(); $this->display(); exit; } public function download() { $file_id = hikaInput::get()->getInt('file_id', 0); if(empty($file_id)) return false; $fileClass = hikashop_get('class.file'); $fileClass->download($file_id); return true; } }
| ver. 1.4 |
Github
|
.
| PHP 8.5.7 | Generation time: 0 |
proxy
|
phpinfo
|
Settings