0byt3m1n1-V2
Path:
/
home
/
academiac
/
www
/
components
/
com_virtuemart
/
views
/
cart
/
[
Home
]
File: view.html.php
<?php /** * * View for the shopping cart * * @package VirtueMart * @subpackage * @author Max Milbers * @author Oscar van Eijk * @author RolandD * @link http://www.virtuemart.net * @copyright Copyright (c) 2004 - 2010 VirtueMart Team. All rights reserved. * @license http://www.gnu.org/copyleft/gpl.html GNU/GPL, see LICENSE.php * VirtueMart is free software. This version may have been modified pursuant * to the GNU General Public License, and as distributed it includes or * is derivative of works licensed under the GNU General Public License or * other free or open source software licenses. * @version $Id: view.html.php 6292 2012-07-20 12:27:44Z alatak $ */ // Check to ensure this file is included in Joomla! defined('_JEXEC') or die('Restricted access'); // Load the view framework if(!class_exists('VmView'))require(JPATH_VM_SITE.DS.'helpers'.DS.'vmview.php'); /** * View for the shopping cart * @package VirtueMart * @author Max Milbers * @author Patrick Kohl */ class VirtueMartViewCart extends VmView { public function display($tpl = null) { $mainframe = JFactory::getApplication(); $pathway = $mainframe->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 = JRequest::getWord('format'); if (!class_exists('VirtueMartCart')) require(JPATH_VM_SITE . DS . 'helpers' . DS . 'cart.php'); $cart = VirtueMartCart::getCart(); //$cart->getCartPrices(); $this->assignRef('cart', $cart); //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 if ($layoutName == 'default') { 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(); if (!class_exists ('CurrencyDisplay')) { require(JPATH_VM_ADMINISTRATOR . DS . 'helpers' . DS . 'currencydisplay.php'); } $currencyDisplay = CurrencyDisplay::getInstance($this->cart->pricesCurrency); $this->assignRef('currencyDisplay',$currencyDisplay); $totalInPaymentCurrency = $this->getTotalInPaymentCurrency(); $checkoutAdvertise =$this->getCheckoutAdvertise(); if (!$cart->_inCheckOut and !VmConfig::get('use_as_catalog', 0)) { $cart->checkout(false); } if ($cart->getDataValidated()) { $pathway->addItem(JText::_('COM_VIRTUEMART_ORDER_CONFIRM_MNU')); $document->setTitle(JText::_('COM_VIRTUEMART_ORDER_CONFIRM_MNU')); $text = JText::_('COM_VIRTUEMART_ORDER_CONFIRM_MNU'); $checkout_task = 'confirm'; } else { $pathway->addItem(JText::_('COM_VIRTUEMART_CART_OVERVIEW')); $document->setTitle(JText::_('COM_VIRTUEMART_CART_OVERVIEW')); $text = JText::_('COM_VIRTUEMART_CHECKOUT_TITLE'); $checkout_task = 'checkout'; } $this->assignRef('checkout_task', $checkout_task); if (VmConfig::get('oncheckout_opc', 1)) { 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 = '<a name="'.$checkout_task.'" class="vm-button-correct" href="javascript:document.checkoutForm.submit();" ><span>' . $text . '</span></a>'; $checkout_link_html = '<button name="'.$checkout_task.'" id="checkoutFormSubmit" class="vm-button-correct" ><span>' . $text . '</span></button>'; } else { $checkout_link_html = ''; } $this->assignRef('checkout_link_html', $checkout_link_html); //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(); shopFunctionsF::setVmTemplate($this, 0, 0, $layoutName); //We never want that the cart is indexed $document->setMetaData('robots','NOINDEX, NOFOLLOW, NOARCHIVE, NOSNIPPET'); // vmdebug('my cart ',$cart); parent::display($tpl); } private function prepareContinueLink() { // Get a continue link */ $virtuemart_category_id = shopFunctionsF::getLastVisitedCategoryId(); $categoryLink = ''; if ($virtuemart_category_id) { $categoryLink = '&virtuemart_category_id=' . $virtuemart_category_id; } $continue_link = JRoute::_('index.php?option=com_virtuemart&view=category' . $categoryLink, FALSE); $continue_link_html = '<a class="continue_link" href="' . $continue_link . '" ><span>' . JText::_('COM_VIRTUEMART_CONTINUE_SHOPPING') . '</span></a>'; $this->assignRef('continue_link_html', $continue_link_html); $this->assignRef('continue_link', $continue_link); } 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); } } else { } $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', '<a href="'.$link.'" rel="nofollow" >'.$link.'</a>'); $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); } } else { } } 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); $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); //vmdebug('checkPaymentMethodsConfigured',$this->payments); 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', '<a href="' . $link . '" rel="nofollow">' . $link . '</a>'); } 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(); //vmdebug('checkShipmentMethodsConfigured',$shipments); 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', '<a href="' . $link . '" rel="nofollow">' . $link . '</a>'); } 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
©
2018.