getPathway(); $document = JFactory::getDocument(); $document->setMetaData('robots','NOINDEX, NOFOLLOW, NOARCHIVE, NOSNIPPET'); // add javascript for price and cart, need even for quantity buttons, so we need it almost anywhere //vmJsApi::jPrice(); $layoutName = $this->getLayout(); if (!$layoutName) $layoutName = JRequest::getWord('layout', 'default'); $this->assignRef('layoutName', $layoutName); $format = vRequest::getCmd('format'); if (!class_exists('VirtueMartCart')) require(JPATH_VM_SITE . DS . 'helpers' . DS . 'cart.php'); $cart = VirtueMartCart::getCart(); //$cart->getCartPrices(); $this->assignRef('cart', $cart); // this has been moved because of payment cart layout: the cart content is always displayed if (!class_exists ('CurrencyDisplay')) { require(JPATH_VM_ADMINISTRATOR . DS . 'helpers' . DS . 'currencydisplay.php'); } $currencyDisplay = CurrencyDisplay::getInstance($this->cart->pricesCurrency); $this->assignRef('currencyDisplay',$currencyDisplay); //Why is this here, when we have view.raw.php if ($format == 'raw') { $cart->prepareCartViewData(); JRequest::setVar('layout', 'mini_cart'); $this->setLayout('mini_cart'); $this->prepareContinueLink(); } /* if($layoutName=='edit_coupon'){ $cart->prepareCartViewData(); $this->lSelectCoupon(); $pathway->addItem(JText::_('COM_VIRTUEMART_CART_OVERVIEW'),JRoute::_('index.php?option=com_virtuemart&view=cart')); $pathway->addItem(JText::_('COM_VIRTUEMART_CART_SELECTCOUPON')); $document->setTitle(JText::_('COM_VIRTUEMART_CART_SELECTCOUPON')); } else */ if ($layoutName == 'select_shipment') { $cart->prepareCartViewData(); if (!class_exists('vmPSPlugin')) require(JPATH_VM_PLUGINS . DS . 'vmpsplugin.php'); JPluginHelper::importPlugin('vmshipment'); $this->lSelectShipment(); $pathway->addItem(JText::_('COM_VIRTUEMART_CART_OVERVIEW'), JRoute::_('index.php?option=com_virtuemart&view=cart', FALSE)); $pathway->addItem(JText::_('COM_VIRTUEMART_CART_SELECTSHIPMENT')); $document->setTitle(JText::_('COM_VIRTUEMART_CART_SELECTSHIPMENT')); } else if ($layoutName == 'select_payment') { /* Load the cart helper */ // $cartModel = VmModel::getModel('cart'); $cart->prepareCartViewData(); $this->lSelectPayment(); $pathway->addItem(JText::_('COM_VIRTUEMART_CART_OVERVIEW'), JRoute::_('index.php?option=com_virtuemart&view=cart', FALSE)); $pathway->addItem(JText::_('COM_VIRTUEMART_CART_SELECTPAYMENT')); $document->setTitle(JText::_('COM_VIRTUEMART_CART_SELECTPAYMENT')); } else if ($layoutName == 'order_done') { VmConfig::loadJLang('com_virtuemart_shoppers', TRUE); $this->lOrderDone(); $pathway->addItem(JText::_('COM_VIRTUEMART_CART_THANKYOU')); $document->setTitle(JText::_('COM_VIRTUEMART_CART_THANKYOU')); } else { VmConfig::loadJLang('com_virtuemart_shoppers', TRUE); $cart->prepareCartViewData(); if (VmConfig::get('enable_content_plugin', 0)) { shopFunctionsF::triggerContentPlugin($cart->vendor, 'vendor','vendor_terms_of_service'); } $cart->prepareAddressRadioSelection(); $this->prepareContinueLink(); $this->lSelectCoupon(); $totalInPaymentCurrency = $this->getTotalInPaymentCurrency(); $checkoutAdvertise =$this->getCheckoutAdvertise(); if (!$cart->_inCheckOut and !VmConfig::get('use_as_catalog', 0)) { $cart->checkout(false); } if ($cart->getDataValidated()) { if($this->cart->_inConfirm){ $pathway->addItem(vmText::_('COM_VIRTUEMART_CANCEL_CONFIRM_MNU')); $document->setTitle(vmText::_('COM_VIRTUEMART_CANCEL_CONFIRM_MNU')); $text = vmText::_('COM_VIRTUEMART_CANCEL_CONFIRM'); $this->checkout_task = 'cancel'; } else { $pathway->addItem(vmText::_('COM_VIRTUEMART_ORDER_CONFIRM_MNU')); $document->setTitle(vmText::_('COM_VIRTUEMART_ORDER_CONFIRM_MNU')); $text = vmText::_('COM_VIRTUEMART_ORDER_CONFIRM_MNU'); $this->checkout_task = 'confirm'; } } else { $pathway->addItem(JText::_('COM_VIRTUEMART_CART_OVERVIEW')); $document->setTitle(JText::_('COM_VIRTUEMART_CART_OVERVIEW')); $text = JText::_('COM_VIRTUEMART_CHECKOUT_TITLE'); $this->checkout_task = 'checkout'; } $forceMethods=vRequest::getInt('forceMethods',false); if (VmConfig::get('oncheckout_opc', 1) or $forceMethods) { if (!class_exists('vmPSPlugin')) require(JPATH_VM_PLUGINS . DS . 'vmpsplugin.php'); JPluginHelper::importPlugin('vmshipment'); JPluginHelper::importPlugin('vmpayment'); $this->lSelectShipment(); $this->lSelectPayment(); } else { $this->checkPaymentMethodsConfigured(); $this->checkShipmentMethodsConfigured(); } if ($cart->virtuemart_shipmentmethod_id) { $shippingText = JText::_('COM_VIRTUEMART_CART_CHANGE_SHIPPING'); } else { $shippingText = JText::_('COM_VIRTUEMART_CART_EDIT_SHIPPING'); } $this->assignRef('select_shipment_text', $shippingText); if ($cart->virtuemart_paymentmethod_id) { $paymentText = JText::_('COM_VIRTUEMART_CART_CHANGE_PAYMENT'); } else { $paymentText = JText::_('COM_VIRTUEMART_CART_EDIT_PAYMENT'); } $this->assignRef('select_payment_text', $paymentText); if (!VmConfig::get('use_as_catalog')) { //$checkout_link_html = '' . $text . ''; $checkout_link_html = ''; } else { $checkout_link_html = ''; } $this->assignRef('checkout_link_html', $checkout_link_html); $layoutName = $this->cart->layout; //set order language $lang = JFactory::getLanguage(); $order_language = $lang->getTag(); $this->assignRef('order_language',$order_language); } //dump ($cart,'cart'); $useSSL = VmConfig::get('useSSL', 0); $useXHTML = false; $this->assignRef('useSSL', $useSSL); $this->assignRef('useXHTML', $useXHTML); $this->assignRef('totalInPaymentCurrency', $totalInPaymentCurrency); $this->assignRef('checkoutAdvertise', $checkoutAdvertise); // @max: quicknirty $cart->setCartIntoSession(); //$this->setLayout($this->cart->layout); shopFunctionsF::setVmTemplate($this, 0, 0, $layoutName); //We never want that the cart is indexed $document->setMetaData('robots','NOINDEX, NOFOLLOW, NOARCHIVE, NOSNIPPET'); if($this->cart->_inConfirm) vmInfo('COM_VIRTUEMART_IN_CONFIRM'); if ($this->cart->layoutPath) { $this->addTemplatePath($this->cart->layoutPath); } parent::display($tpl); } private function lSelectCoupon() { $this->couponCode = (isset($this->cart->couponCode) ? $this->cart->couponCode : ''); $coupon_text = $this->cart->couponCode ? JText::_('COM_VIRTUEMART_COUPON_CODE_CHANGE') : JText::_('COM_VIRTUEMART_COUPON_CODE_ENTER'); $this->assignRef('coupon_text', $coupon_text); } /* * lSelectShipment * find al shipment rates available for this cart * * @author Valerie Isaksen */ private function lSelectShipment() { $found_shipment_method=false; $shipment_not_found_text = JText::_('COM_VIRTUEMART_CART_NO_SHIPPING_METHOD_PUBLIC'); $this->assignRef('shipment_not_found_text', $shipment_not_found_text); $this->assignRef('found_shipment_method', $found_shipment_method); $shipments_shipment_rates=array(); if (!$this->checkShipmentMethodsConfigured()) { $this->assignRef('shipments_shipment_rates',$shipments_shipment_rates); return; } $selectedShipment = (empty($this->cart->virtuemart_shipmentmethod_id) ? 0 : $this->cart->virtuemart_shipmentmethod_id); $shipments_shipment_rates = array(); if (!class_exists('vmPSPlugin')) require(JPATH_VM_PLUGINS . DS . 'vmpsplugin.php'); JPluginHelper::importPlugin('vmshipment'); $dispatcher = JDispatcher::getInstance(); $returnValues = $dispatcher->trigger('plgVmDisplayListFEShipment', array( $this->cart, $selectedShipment, &$shipments_shipment_rates)); // if no shipment rate defined $found_shipment_method =count($shipments_shipment_rates); if ($found_shipment_method== 0 AND empty($this->cart->BT)) { $redirectMsg = JText::_('COM_VIRTUEMART_CART_ENTER_ADDRESS_FIRST'); $this->cart->setShipment(0); if (VmConfig::get('oncheckout_opc', 1)) { vmInfo($redirectMsg); } else { $mainframe = JFactory::getApplication(); $mainframe->redirect(JRoute::_('index.php?option=com_virtuemart&view=user&task=editaddresscheckout&addrtype=BT'), $redirectMsg); } } if(empty($selectedShipment)){ if($s_id = VmConfig::get('set_automatic_shipment',false)){ $j = 'radiobtn = document.getElementById("shipment_id_'.$s_id.'"); if(radiobtn!==null){ radiobtn.checked = true;}'; vmJsApi::addJScript('autoShipment',$j); } } $shipment_not_found_text = JText::_('COM_VIRTUEMART_CART_NO_SHIPPING_METHOD_PUBLIC'); $this->assignRef('shipment_not_found_text', $shipment_not_found_text); $this->assignRef('shipments_shipment_rates', $shipments_shipment_rates); $this->assignRef('found_shipment_method', $found_shipment_method); return; } /* * lSelectPayment * find al payment available for this cart * * @author Valerie Isaksen */ private function lSelectPayment() { $payment_not_found_text=''; $this->assignRef('payment_not_found_text', $payment_not_found_text); $paymentplugins_payments = array(); $this->assignRef('paymentplugins_payments', $paymentplugins_payments); if (!$found_payment_method = $this->checkPaymentMethodsConfigured()) { //return false; } else { $selectedPayment = empty($this->cart->virtuemart_paymentmethod_id) ? 0 : $this->cart->virtuemart_paymentmethod_id; if(!class_exists('vmPSPlugin')) require(JPATH_VM_PLUGINS.DS.'vmpsplugin.php'); JPluginHelper::importPlugin('vmpayment'); $dispatcher = JDispatcher::getInstance(); $returnValues = $dispatcher->trigger('plgVmDisplayListFEPayment', array($this->cart, $selectedPayment, &$paymentplugins_payments)); // if no payment defined $found_payment_method =count($paymentplugins_payments); } $this->assignRef('found_payment_method', $found_payment_method); if (!$found_payment_method) { $link=''; // todo $payment_not_found_text = JText::sprintf('COM_VIRTUEMART_CART_NO_PAYMENT_METHOD_PUBLIC', ''.$link.''); $this->assignRef('payment_not_found_text', $payment_not_found_text); $this->cart->setPaymentMethod(0); } else if ($found_payment_method== 0 AND empty($this->cart->BT)) { $redirectMsg = JText::_('COM_VIRTUEMART_CART_ENTER_ADDRESS_FIRST'); if (VmConfig::get('oncheckout_opc', 1)) { vmInfo($redirectMsg); } else { $mainframe = JFactory::getApplication(); $mainframe->redirect(JRoute::_('index.php?option=com_virtuemart&view=user&task=editaddresscheckout&addrtype=BT'), $redirectMsg); } } if(empty($selectedPayment)){ if($p_id = VmConfig::get('set_automatic_payment',false)){ $j = 'radiobtn = document.getElementById("payment_id_'.$p_id.'"); if(radiobtn!==null){ radiobtn.checked = true;}'; vmJsApi::addJScript('autoPayment',$j); } } } private function getTotalInPaymentCurrency() { if (empty($this->cart->virtuemart_paymentmethod_id)) { return null; } if (!$this->cart->paymentCurrency or ($this->cart->paymentCurrency==$this->cart->pricesCurrency)) { return null; } $paymentCurrency = CurrencyDisplay::getInstance($this->cart->paymentCurrency); $totalInPaymentCurrency = $paymentCurrency->priceDisplay( $this->cart->pricesUnformatted['billTotal'],$this->cart->paymentCurrency) ; $currencyDisplay = CurrencyDisplay::getInstance($this->cart->pricesCurrency); // $this->assignRef('currencyDisplay',$currencyDisplay); return $totalInPaymentCurrency; } /* * Trigger to place Coupon, payment, shipment advertisement on the cart */ private function getCheckoutAdvertise() { $checkoutAdvertise=array(); JPluginHelper::importPlugin('vmcoupon'); JPluginHelper::importPlugin('vmpayment'); JPluginHelper::importPlugin('vmshipment'); $dispatcher = JDispatcher::getInstance(); $returnValues = $dispatcher->trigger('plgVmOnCheckoutAdvertise', array( $this->cart, &$checkoutAdvertise)); return $checkoutAdvertise; } private function lOrderDone() { $display_title = vRequest::getBool('display_title',true); $this->assignRef('display_title', $display_title); // Do not change this. It contains the payment form $this->html = vRequest::get('html', JText::_('COM_VIRTUEMART_ORDER_PROCESSED') ); //Show Thank you page or error due payment plugins like paypal express } private function checkPaymentMethodsConfigured() { //For the selection of the payment method we need the total amount to pay. $paymentModel = VmModel::getModel('Paymentmethod'); $this->payments = $paymentModel->getPayments(true, false); if (empty($this->payments)) { $text = ''; if (!class_exists('Permissions')) require(JPATH_VM_ADMINISTRATOR . DS . 'helpers' . DS . 'permissions.php'); if (Permissions::getInstance()->check("admin,storeadmin")) { $uri = JFactory::getURI(); $link = $uri->root() . 'administrator/index.php?option=com_virtuemart&view=paymentmethod'; $text = JText::sprintf('COM_VIRTUEMART_NO_PAYMENT_METHODS_CONFIGURED_LINK', '' . $link . ''); } vmInfo('COM_VIRTUEMART_NO_PAYMENT_METHODS_CONFIGURED', $text); $tmp = 0; $this->assignRef('found_payment_method', $tmp); $this->cart->virtuemart_paymentmethod_id = 0; return false; } return true; } private function checkShipmentMethodsConfigured() { //For the selection of the shipment method we need the total amount to pay. $shipmentModel = VmModel::getModel('Shipmentmethod'); $shipments = $shipmentModel->getShipments(); if (empty($shipments)) { $text = ''; if (!class_exists('Permissions')) require(JPATH_VM_ADMINISTRATOR . DS . 'helpers' . DS . 'permissions.php'); if (Permissions::getInstance()->check("admin,storeadmin")) { $uri = JFactory::getURI(); $link = $uri->root() . 'administrator/index.php?option=com_virtuemart&view=shipmentmethod'; $text = JText::sprintf('COM_VIRTUEMART_NO_SHIPPING_METHODS_CONFIGURED_LINK', '' . $link . ''); } vmInfo('COM_VIRTUEMART_NO_SHIPPING_METHODS_CONFIGURED', $text); $tmp = 0; $this->assignRef('found_shipment_method', $tmp); $this->cart->virtuemart_shipmentmethod_id = 0; return false; } return true; } function getUserList() { $db = JFactory::getDbo(); $q = 'SELECT * FROM #__users ORDER BY name'; $db->setQuery($q); $result = $db->loadObjectList(); foreach($result as $user) { $user->displayedName = $user->name .'  ( '. $user->username .' )'; } return $result; } } //no closing tag