ACC SHELL

Path : /srv/www/vhosts/marevva/nadaciakrizovatka/
File Upload :
Current File : /srv/www/vhosts/marevva/nadaciakrizovatka/init-cart.php

<?php
	
	include_once( 'class.crProduct.php' );
	
	// get seesion var
	if ( isset( $_SESSION['cart'] ) )
		$sCart = $_SESSION['cart'];
	else
		$sCart = array();
		
	//$sCart = array();
	
	$productID = '';
	$productAdd = '';
	$productRemove = '';
	$productRecount = '';
	$sCartItemID = '';
	$sCartItemVariationID = '';
	$sCartItemVariationCount = '';
	$productRemoveAll = '';
	$recountCart = '';
	
	$sCartTotalCount = 0;
	$sCartTotalPrice = 0;
	
	if ( isset( $_POST['productID'] ) ) $productID = htmlspecialchars( $_POST['productID'] );
	
	if ( isset( $_POST['productAdd'] ) ) $productAdd = htmlspecialchars( $_POST['productAdd'] );
	if ( isset( $_POST['productRemove'] ) ) $productRemove = htmlspecialchars( $_POST['productRemove'] );
	if ( isset( $_POST['productRecount'] ) ) $productRecount = htmlspecialchars( $_POST['productRecount'] );
	
	if ( isset( $_POST['cartItemID'] ) ) $sCartItemID = htmlspecialchars( $_POST['cartItemID'] );
	if ( isset( $_POST['variationID'] ) ) $sCartItemVariationID = htmlspecialchars( $_POST['variationID'] );
	if ( isset( $_POST['variationCount'] ) ) $sCartItemVariationCount = htmlspecialchars( $_POST['variationCount'] );
	if ( isset( $_POST['productRemoveAll'] ) ) $productRemoveAll = htmlspecialchars( $_POST['productRemoveAll'] );
	if ( isset( $_POST['recountCart'] ) ) $recountCart = htmlspecialchars( $_POST['recountCart'] );
	
	// add product
	if (  isset( $productID ) && ( $productAdd == 'productAdd' ) )
	{
		$added = false;
		
		$productVariations = $db->getAllItems( 'productVariation', " WHERE `productID`=" . $productID . " ORDER BY `ID` ASC " );
		
		if ( count( $sCart ) > 0 )
		{
			for ( $i=0; $i < count( $sCart ); $i++ )
			{
				
				for ( $vi = 0; $vi < count( $productVariations ); $vi++ )
				{
					$productVariation = $productVariations[ $vi ];
					
					$variation = 'variation'.$productVariation['ID'];
					
					if ( isset( $_POST[$variation] ) )
					{
						if ( $sCart[$i]['productID'] == $productID )
						{
							$sCart[$i][$variation] += $_POST[$variation];					
							
							$added = true;
						}
					}
				}
				
			}
		}
		
		if ( $added == false )
		{
			$newCartItem = array();
			$newCartItem['productID'] = $productID;
						
			for ( $i = 0; $i < count( $productVariations ); $i++ )
			{
				$productVariation = $productVariations[ $i ];
				
				$variation = 'variation'.$productVariation['ID'];
				
				if ( isset( $_POST[$variation] ) )
				{
					$newCartItem[$variation] = $_POST[$variation];
				}
			}
			
			$sCart[] = $newCartItem;
		}
	}
	
	// remove product
	if ( isset( $sCart ) && isset( $sCartItemID ) && isset( $sCartItemVariationID ) && 
		 isset( $productRemove ) && ( $productRemove == 'productRemove' ) )
	{
		$cartItem = $sCart[ $sCartItemID ];
		$cartItem[ $sCartItemVariationID ] = 0;
		$sCart[ $sCartItemID ] = $cartItem;
	}
	
	// remove all products
	if ( isset( $sCart ) && $productRemoveAll == 'productRemoveAll' )
	{
		unset( $sCart );
	}		
	
	// recount product
	if ( isset( $sCart ) && isset( $sCartItemID ) && isset( $sCartItemVariationID ) && isset( $sCartItemVariationCount ) && is_numeric( $sCartItemVariationCount ) && 
		 isset( $productRecount ) && ( $productRecount == 'productRecount' ) )
	{
		$cartItem = $sCart[ $sCartItemID ];
		$cartItem[ $sCartItemVariationID ] = $sCartItemVariationCount;
		$sCart[ $sCartItemID ] = $cartItem;
	}
	
	// remove product with no variation
	$pageETScart = new stdClass();
	
	if ( isset( $sCart ) && ( count( $sCart ) > 0 ) )
	{
		for ( $i = 0; $i < count( $sCart ); $i++ )
		{
			$sCartItem = $sCart[ $i ];
			
			$sCartItemProduct = $db->getItem( 'product', $sCartItem['productID'] );
			
			$product = new crProduct($db);
			$product->loadByID( $sCartItem['productID'] );
			$productData = $product->getData();
			
			$noVariation = true;
			
			$pageETScart->item[ $i ] = new stdClass();
			
			$pageETScart->item[ $i ]->title = $product->getTitle();
			$pageETScart->item[ $i ]->url = $product->getURL();
			$pageETScart->item[ $i ]->count = 0;
			$pageETScart->item[ $i ]->price = 0;
			if ( $productData['image'] != '' )
			{
				$pageETScart->item[ $i ]->imgSrc = $productImageDir . '/small/' . $productData['image'];
			}
			else
				$pageETScart->item[ $i ]->imgSrc = '';
				
			$pageETScart->item[ $i ]->last = false;
			if ( ( $i + 1 ) == count( $sCart ) )
			{
				$pageETScart->item[ $i ]->last = true;
			}
						
			$productVariations = $db->getAllItems( 'productVariation', " WHERE `productID`=" . $sCartItem['productID'] . " ORDER BY `ID` ASC " );
			foreach ( $productVariations as $productVariation )
			{
				if ( isset( $sCartItem['variation'.$productVariation['ID']] ) )
				{
					if ( $sCartItem['variation'.$productVariation['ID']] > 0 )
					{
						$noVariation = false;
						
						$pageETScart->item[ $i ]->count += $sCartItem['variation'.$productVariation['ID']];
						$pageETScart->item[ $i ]->price += $sCartItem['variation'.$productVariation['ID']] * $product->getPriceInVAT();
					}
					
					$sCartTotalCount += $sCartItem['variation'.$productVariation['ID']];
					$sCartTotalPrice += $sCartItem['variation'.$productVariation['ID']] * $product->getPriceInVAT();//$sCartItemProduct['price'];
					
				}
			}
			
			if ( $noVariation )
			{
				unset( $sCart[ $i ] );
			}
		}
		
		$sCart = array_values( $sCart );
	}
	
	// set session var
	$_SESSION['cart'] = $sCart;
	
?>

ACC SHELL 2018