function update() { $currency = JRequest::getInt('hikashopcurrency', 0); if (!empty($currency)) { $app = JFactory::getApplication(); $app->setUserState(HIKASHOP_COMPONENT . '.currency_id', $currency); $app->setUserState(HIKASHOP_COMPONENT . '.shipping_method', null); $app->setUserState(HIKASHOP_COMPONENT . '.shipping_id', null); $app->setUserState(HIKASHOP_COMPONENT . '.shipping_data', null); $app->setUserState(HIKASHOP_COMPONENT . '.payment_method', null); $app->setUserState(HIKASHOP_COMPONENT . '.payment_id', null); $app->setUserState(HIKASHOP_COMPONENT . '.payment_data', null); $url = JRequest::getString('return_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)) { if (hikashop_disallowUrlRedirect($url)) { return false; } $app->redirect(urldecode($url)); } } return true; }
function update() { $currency = JRequest::getInt('hikashopcurrency', 0); if (!empty($currency)) { $app = JFactory::getApplication(); $app->setUserState(HIKASHOP_COMPONENT . '.currency_id', $currency); $url = JRequest::getString('return_url', ''); if (!empty($url)) { if (hikashop_disallowUrlRedirect($url)) { return false; } $app->redirect(urldecode($url)); } return true; } $ratePlugin = hikashop_import('hikashop', 'rates'); if ($ratePlugin) { $ratePlugin->updateRates(); } else { if (!HIKASHOP_PHP5) { $app =& JFactory::getApplication(); } else { $app = JFactory::getApplication(); } $app->enqueueMessage('Currencies rates auto update plugin not found !', 'error'); } $this->listing(); }
function resetdownload() { $download = hikashop_get('class.file'); $download->resetdownload(JRequest::getInt('file_id'), JRequest::getInt('order_id')); $return = JRequest::getString('return'); if (!empty($return)) { $url = base64_decode(urldecode($return)); if (hikashop_disallowUrlRedirect($url)) { return false; } $this->setRedirect($url); } }
function cancel() { $order_id = JRequest::getInt('order_id'); if (empty($order_id)) { $cancel_redirect = JRequest::getString('cancel_redirect'); if (empty($cancel_redirect)) { $this->listing(); } else { $cancel_redirect = base64_decode(urldecode($cancel_redirect)); if (hikashop_disallowUrlRedirect($cancel_redirect)) { return false; } $this->setRedirect($cancel_redirect); } } else { $this->setRedirect(hikashop_completeLink('order&task=edit&order_id=' . $order_id, false, true)); } }
function process($toolbar) { $config =& hikashop_config(); if (!HIKASHOP_PHP5) { $bar =& JToolBar::getInstance('toolbar'); } else { $bar = JToolBar::getInstance('toolbar'); } foreach ($toolbar as $tool) { if (!empty($tool) && is_string($tool)) { $tool = array('name' => $tool); } if (empty($tool['name']) || isset($tool['display']) && $tool['display'] === false) { continue; } $toolname = $tool['name']; $standard = array('addNew' => array('new', 'add', 'New', false), 'makeDefault' => array('default', 'default', 'Default', false), 'assign' => array('assign', 'assign', 'Assign', false), 'publish' => array('publish', 'publish', 'Publish', false), 'publishList' => array('publish', 'publish', 'Publish', true), 'editList' => array('edit', 'edit', 'Edit', true), 'unpublish' => array('unpublish', 'unpublish', 'Unpublish', false), 'unpublishList' => array('unpublish', 'unpublish', 'Unpublish', true), 'trash' => array('trash', 'remove', 'Trash', true), 'apply' => array('apply', 'apply', 'Apply', false), 'copy' => array('copy', 'copy', 'HIKA_COPY', true), 'save' => array('save', 'save', 'Save', false), 'save2new' => array('save-new', 'save2new', 'JTOOLBAR_SAVE_AND_NEW', false), 'save2copy' => array('save-copy', 'save2copy', 'JTOOLBAR_SAVE_AS_COPY', false), 'cancel' => array('cancel', 'cancel', 'Cancel', false)); if (isset($standard[$toolname])) { $icon = $standard[$toolname][0]; $task = $standard[$toolname][1]; $alt = $standard[$toolname][2]; if (HIKASHOP_J16 && substr($alt, 0, 5) != 'JTOOL' && substr($alt, 0, 5) != 'HIKA_') { $alt = 'JTOOLBAR_' . strtoupper($alt); } $check = $standard[$toolname][3]; if (!empty($tool['icon'])) { $icon = $tool['icon']; } if (!empty($tool['task'])) { $task = $tool['task']; } if (isset($tool['alt'])) { $alt = $tool['alt']; } if (isset($tool['check'])) { $check = $tool['check']; } $bar->appendButton('Standard', $icon, $alt, $task, $check, false); continue; } $ret = $this->customTool($bar, strtolower($toolname), $tool); if (!$ret) { switch (strtolower($toolname)) { case '-': $width = ''; if (!empty($tool['width'])) { $width = (int) $tool['width']; } $bar->appendButton('Separator', 'spacer', $width); break; case '|': $bar->appendButton('Separator', 'divider'); break; case 'deletelist': $tool = array_merge(array('task' => 'remove', 'alt' => 'HIKA_DELETE', 'msg' => '', 'confirm' => true), $tool); if ($tool['confirm'] && empty($tool['msg'])) { $tool['msg'] = JText::_('HIKA_VALIDDELETEITEMS'); } if (!empty($tool['msg'])) { $bar->appendButton('Confirm', $tool['msg'], 'delete', $tool['alt'], $tool['task'], true); } else { $bar->appendButton('Standard', 'delete', $tool['alt'], $tool['task'], true); } break; case 'custom': $tool = array_merge(array('icon' => '', 'task' => '', 'alt' => '', 'check' => true, 'hide' => false), $tool); $bar->appendButton('Standard', $tool['icon'], $tool['alt'], $tool['task'], $tool['check'], $tool['hide']); break; case 'confirm': $tool = array_merge(array('icon' => '', 'task' => '', 'alt' => '', 'check' => true, 'hide' => false, 'msg' => ''), $tool); $bar->appendButton('Confirm', $tool['msg'], $tool['icon'], $tool['alt'], $tool['task'], $tool['check'], $tool['hide']); break; case 'preview': if (!empty($tool['target']) || !empty($tool['url'])) { $url = ''; if (!empty($tool['target'])) { $url = $tool['target']; } if (!empty($tool['url'])) { $url = $tool['url']; } $bar->appendButton('Popup', 'preview', 'Preview', $url . '&task=preview'); } break; case 'preferences': $tool = array_merge(array('component' => 'com_hikashop', 'path' => ''), $tool); $component = urlencode($tool['component']); $path = urlencode($tool['path']); if (HIKASHOP_J30) { $uri = (string) JUri::getInstance(); $return = urlencode(base64_encode($uri)); $bar->appendButton('Link', 'options', 'JToolbar_Options', 'index.php?option=com_config&view=component&component=' . $component . '&path=' . $path . '&return=' . $return); } else { $top = 0; $left = 0; $height = '550'; $width = '875'; $bar->appendButton('Popup', 'options', 'JToolbar_Options', 'index.php?option=com_config&view=component&component=' . $component . '&path=' . $path . '&tmpl=component', $width, $height, $top, $left, ''); } break; case 'help': break; case 'back': break; case 'link': $tool = array_merge(array('icon' => '', 'url' => '', 'alt' => ''), $tool); $bar->appendButton('Link', $tool['icon'], $tool['alt'], $tool['url']); break; case 'popup': $tool = array_merge(array('icon' => '', 'url' => '', 'alt' => '', 'width' => 640, 'height' => 480, 'top' => 0, 'left' => 0, 'onClose' => '', 'title' => '', 'footer' => ''), $tool); if (HIKASHOP_J30) { if (!empty($tool['id'])) { $tool['icon'] = $tool['id'] . '#' . $tool['icon']; } else { $tool['icon'] = $tool['icon'] . '#' . $tool['icon']; } } $bar->appendButton('HikaPopup', $tool['icon'], $tool['alt'], $tool['url'], $tool['width'], $tool['height'], $tool['top'], $tool['left'], $tool['onClose'], $tool['title'], $tool['footer']); break; case 'close': $bar->appendButton('Standard', 'cancel', JText::_('HIKA_CLOSE'), 'cancel', false, false); break; case 'hikacancel': $cancel_url = JRequest::getVar('cancel_redirect'); if (!empty($cancel_url) || !empty($tool['url'])) { if (!empty($cancel_url)) { $cancel_url = base64_decode($cancel_url); if (!hikashop_disallowUrlRedirect($cancel_url)) { $bar->appendButton('Link', 'cancel', JText::_('HIKA_CANCEL'), $cancel_url); } } else { $bar->appendButton('Link', 'cancel', JText::_('HIKA_CANCEL'), $tool['url']); } } else { $bar->appendButton('Standard', 'cancel', JText::_('HIKA_CANCEL'), 'cancel', false, false); } break; case 'pophelp': if (!empty($tool['target'])) { $bar->appendButton('Pophelp', $tool['target']); } break; case 'export': $bar->appendButton('Export'); break; case 'dashboard': if (hikashop_isAllowed($config->get('acl_dashboard_view', 'all'))) { $bar->appendButton('Link', 'hikashop', JText::_('HIKASHOP_CPANEL'), hikashop_completeLink('dashboard')); } break; } } } }
function cancel() { $cancel_redirect = JRequest::getString('cancel_redirect'); if (empty($cancel_redirect)) { $cancel_url = JRequest::getString('cancel_url'); if (!empty($cancel_url)) { $cancel_url = urldecode($cancel_url); if (hikashop_disallowUrlRedirect($cancel_url)) { return false; } $this->setRedirect(base64_decode($cancel_url)); } else { $order_id = hikashop_getCID('order_id'); if (empty($order_id)) { global $Itemid; $url = ''; if (!empty($Itemid)) { $url = '&Itemid=' . $Itemid; } $this->setRedirect(hikashop_completeLink('user' . $url, false, true)); } else { return $this->listing(); } } } else { $cancel_redirect = urldecode($cancel_redirect); if (hikashop_disallowUrlRedirect($cancel_redirect)) { return false; } $this->setRedirect($cancel_redirect); } }
public function updatecart() { hikashop_nocache(); $app = JFactory::getApplication(); $product_id = (int) JRequest::getCmd('product_id', 0); $module_id = (int) JRequest::getCmd('module_id', 0); $cart_type = JRequest::getString('hikashop_cart_type_' . $product_id . '_' . $module_id, 'null'); if ($cart_type == 'null') { $cart_type = JRequest::getString('hikashop_cart_type_' . $module_id, 'null'); } if ($cart_type == 'null') { $cart_type = JRequest::getString('cart_type', 'cart'); } $cart_type_id = $cart_type . '_id'; $class = hikashop_get('class.cart'); $class->cart_type = $cart_type; $cart_id = 0; if ($class->hasCart(JRequest::getInt('cart_id', 0, 'GET'))) { $cart_id = $class->cart->cart_id; } $addTo = JRequest::getString('add_to', ''); if ($addTo != '') { $from_id = $cart_id; if ($addTo == 'cart') { JRequest::setVar('from_id', $cart_id); } $cart_id = $app->getUserState(HIKASHOP_COMPONENT . '.' . $addTo . '_id', 0); $cart_type_id = $addTo . '_id'; JRequest::setVar('cart_type', $addTo); } else { JRequest::setVar('cart_type', $cart_type); } JRequest::setVar($cart_type_id, $cart_id); $char = JRequest::getString('characteristic', ''); if (!empty($char)) { return $this->show(); } $tmpl = JRequest::getCmd('tmpl', 'index'); $add = JRequest::getCmd('add', ''); if (!empty($add)) { $add = 1; } else { $add = 0; } if (empty($product_id)) { $product_id = JRequest::getCmd('cid', 0); } $cart_product_id = JRequest::getCmd('cart_product_id', 0); $quantity = JRequest::getInt('quantity', 1); if (hikashop_loadUser() != null || $cart_type != 'wishlist') { if (!empty($product_id)) { $type = JRequest::getWord('type', 'product'); if ($type == 'product') { $product_id = (int) $product_id; } $status = $class->update($product_id, $quantity, $add, $type); } elseif (!empty($cart_product_id)) { $status = $class->update($cart_product_id, $quantity, $add, 'item'); } else { $formData = JRequest::getVar('item', array(), '', 'array'); if (!empty($formData)) { $class->update($formData, 0, $add, 'item'); } else { $formData = JRequest::getVar('data', array(), '', 'array'); if (!empty($formData)) { $class->update($formData, 0, $add); } } } } $app->setUserState(HIKASHOP_COMPONENT . '.' . $cart_type . '_new', '1'); if (@$class->errors && $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>'; exit; } } $app->setUserState(HIKASHOP_COMPONENT . '.shipping_method', null); $app->setUserState(HIKASHOP_COMPONENT . '.shipping_id', null); $app->setUserState(HIKASHOP_COMPONENT . '.shipping_data', null); $app->setUserState(HIKASHOP_COMPONENT . '.payment_method', null); $app->setUserState(HIKASHOP_COMPONENT . '.payment_id', null); $app->setUserState(HIKASHOP_COMPONENT . '.payment_data', null); $config =& hikashop_config(); $checkout = JRequest::getString('checkout', ''); if (!empty($checkout)) { global $Itemid; $url = 'checkout'; if (!empty($Itemid)) { $url .= '&Itemid=' . $Itemid; } $url = hikashop_completeLink($url, false, true); $this->setRedirect($url); } else { if ($cart_type == 'wishlist') { $app->setUserState(HIKASHOP_COMPONENT . '.popup_cart_type', 'wishlist'); if (hikashop_loadUser() == null) { $url = JRequest::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')); } if ($tmpl != 'component') { 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 { echo 'notLogged'; exit; } } else { $redirectConfig = $config->get('redirect_url_after_add_cart', 'stay_if_cart'); $url = ''; $stay = 0; switch ($redirectConfig) { case 'ask_user': $url = JRequest::getVar('return_url', ''); if (!empty($url)) { $url = base64_decode(urldecode($url)); } $url = str_replace(array('&popup=1', '?popup=1'), '', $url); if (JRequest::getInt('popup', 0) && empty($_COOKIE['popup']) || JRequest::getInt('quantity', 0)) { if (strpos($url, '?')) { $url .= '&'; } else { $url .= '?'; } $url .= 'popup=1'; $app->setUserState(HIKASHOP_COMPONENT . '.popup', '1'); } JRequest::setVar('cart_type', 'wishlist'); break; case 'stay': $stay = 1; break; //$stay = 1; && $url =''; //$stay = 1; && $url =''; case 'checkout': break; //$stay = 0; && $url =''; //$stay = 0; && $url =''; 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'); } $data = $params->get('hikashopwishlistmodule'); if (HIKASHOP_J30 && (empty($data) || !is_object($data))) { $db = JFactory::getDBO(); $query = 'SELECT params FROM ' . hikashop_table('modules', false) . ' WHERE id = ' . (int) $module->id; $db->setQuery($query); $itemData = json_decode($db->loadResult()); if (!empty($itemData->hikashopwishlistmodule) && is_object($itemData->hikashopwishlistmodule)) { $data = $itemData->hikashopwishlistmodule; $params->set('hikashopwishlistmodule', $data); } } if (!empty($data) && is_object($data)) { foreach ($data as $k => $v) { $module_options[$k] = $v; } } 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 = ''; hikashop_getLayout('product', 'cart', $params, $js); } } if (empty($url)) { global $Itemid; if (isset($from_id)) { $cart_id = $from_id; } if (JRequest::getInt('new_' . $cart_type . '_id', 0) != 0 && JRequest::getInt('delete', 0) == 0) { $cart_id = JRequest::getInt('new_' . $cart_type . '_id', 0); } $cart = $class->get($cart_id, false, $cart_type); 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); } if (!isset($stay)) { $stay = JRequest::getInt('stay', 0); } if ($stay == 0) { if (hikashop_disallowUrlRedirect($url)) { return false; } if (JRequest::getVar('from_form', true)) { JRequest::setVar('cart_type', 'wishlist'); $this->setRedirect($url); return false; } else { ob_clean(); echo 'URL|' . $url; exit; } } else { echo '<html><head><script type="text/javascript">history.back();</script></head><body></body></html>'; exit; } } else { $app->setUserState(HIKASHOP_COMPONENT . '.popup_cart_type', 'cart'); $url = JRequest::getVar('return_url', ''); if (empty($url)) { $url = JRequest::getVar('url', ''); $url = urldecode($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); } $params = new HikaParameter(@$module->params); 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; JRequest::setVar('Itemid', null); } $module = JModuleHelper::getModule('hikashop_cart', false); $config =& hikashop_config(); $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'); } $data = $params->get('hikashopcartmodule'); if (HIKASHOP_J30 && (empty($data) || !is_object($data))) { $db = JFactory::getDBO(); $query = 'SELECT params FROM ' . hikashop_table('modules', false) . ' WHERE id = ' . (int) $module->id; $db->setQuery($query); $itemData = json_decode($db->loadResult()); if (!empty($itemData->hikashopcartmodule) && is_object($itemData->hikashopcartmodule)) { $data = $itemData->hikashopcartmodule; $params->set('hikashopcartmodule', $data); } } if (!empty($data) && is_object($data)) { foreach ($data as $k => $v) { $module_options[$k] = $v; } } 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); hikashop_getLayout('product', 'cart', $params, $js); return true; } else { $config =& hikashop_config(); $url = str_replace(array('&popup=1', '?popup=1'), '', $url); if (JRequest::getInt('popup', 0) || @JRequest::getInt('quantity', 0) && $config->get('redirect_url_after_add_cart', 'stay_if_cart') == 'ask_user') { if (strpos($url, '?')) { $url .= '&'; } else { $url .= '?'; } $url .= 'popup=1'; $app->setUserState(HIKASHOP_COMPONENT . '.popup', '1'); } if (JRequest::getInt('hikashop_ajax', 0) == 0) { // $config->get('ajax_add_to_cart','1') == '0'){ $this->setRedirect($url); return false; } else { ob_clean(); if ($params->get('from', 'module') != 'module' || $config->get('redirect_url_after_add_cart', 'stay_if_cart') == 'checkout') { echo 'URL|' . $url; exit; } else { $this->setRedirect($url); return false; } } } } } }