HEX
Server: Microsoft-IIS/8.5
System: Windows NT YDAWBH120 6.3 build 9600 (Windows Server 2012 R2 Standard Edition) AMD64
User: tentjecom_web (0)
PHP: 7.4.14
Disabled: NONE
Upload Files
File: D:/HostingSpaces/SBogers10/deensekroon.komma-mediadesign.nl/wwwroot/admin/php/trash.php
<?php


/* 
	trash.php 

	Mike Ontwerpt 2012
	www.mikeontwerpt.nl
	
*/


function initTrash(){

	$output = '';	
	
	if(isset($_POST['back'])){
		$output .= showDashboard();
	}
	else if(isset($_POST['askdeletePermanently'])){
		$output .= askToDeletePermenantly();	
	}
	else if(isset($_POST['deletePermenantly'])){
		$output .= deletePermenantly();
	}
	else if(isset($_POST['recover'])){
		$output .= recover();
	}
	else{
		$output .= showDashboard();
	}
	return $output; 
}

//show trash
function showDashboard(){
	/* access the global sql object */
	global $mysqli;	
	/* language */
	$siteLabels = getLanguage();

	Url_Pin::set();

	$output = '';
	/* title */
	$output .= '<h1>'.$siteLabels['trash-title'].'</h1>';
	
	//start with form for checkboxes
	$output .= '<form action="" name="chkForm"  method="post">';
		/* buttons */
		$output .= '<div class="submenu">';
				//buttons
				$output .= '<input type="submit" name="recover" value="'.$siteLabels['trash-recover'].'" class="btn176 btn176b"/>';
				$output .= '<input type="submit" name="askdeletePermanently" value="'.$siteLabels['trash-deletePermanently'].'" class="btn176 btn176b"/>';
		$output .= '</div>';
		
		/* content */
				
		/* top row */
		$output .= '<div class="itemlist-row itemlist-heading">';
			$output .= '<div class="itemlist-single-column">&nbsp;</div>';
			$output .= '<div class="itemlist-double-column"><input type="checkbox" name="checkCtrl" value="checkAll" onClick="check_all(this);" class="itemlist-cbox">title</div>';
			$output .= '<div class="itemlist-single-column">page</div>';
			$output .= '<div class="itemlist-single-column">&nbsp;</div>';
			$output .= '<div class="itemlist-single-column">&nbsp;</div>';
			$output .= '<div class="itemlist-single-column">&nbsp;</div>';
			$output .= '<div class="itemlist-single-column">removed on</div>';
			$output .= '<div class="itemlist-single-column itemlist-edit">&nbsp;</div>';
		$output .= '</div>';	
		
		/* get info */
		
		
		$query = 'SELECT id, itemId, linkname, timest FROM content_status WHERE active = 0 ORDER BY timest DESC';
		if($result = $mysqli->query($query)){
			while($record = $result->fetch_assoc()){
				//create productid
				$statusId = $record['id'];
				$itemId = $record['itemId'];
				$linkname = $record['linkname'];
				$timest = $record['timest'];
				
				$page = $linkname;
				if($page == 'media_files') $page = 'media library';
				
				$date = date('d / m / Y', $timest);
								
				//title
				$title = '';
				

				
				if($titleResult = $mysqli->query('SELECT title FROM '.$linkname.' WHERE id = '.$itemId.' LIMIT 1')){
					$titleRecord = $titleResult->fetch_assoc();
					$title = $titleRecord['title'];
				}
				else if($titleResult = $mysqli->query('SELECT titleNL FROM '.$linkname.' WHERE id = '.$itemId.' LIMIT 1')){
					$titleRecord = $titleResult->fetch_assoc();
					$title = $titleRecord['titleNL']; 
				}
				else if($titleResult = $mysqli->query('SELECT category FROM '.$linkname.' WHERE id = '.$itemId.' LIMIT 1')){
					$titleRecord = $titleResult->fetch_assoc();
					$title = $titleRecord['category']; 
				}
				
				
					
				$output .= '<div class="itemlist-row">';
					/* product id */
					$output .= '<div class="itemlist-single-column">';
						$output .= '&nbsp;';
					$output .= '</div>';
					/* title */
					$output .= '<div class="itemlist-double-column"><input type="checkbox" name="option[]" id="option" value="'.$itemId.'-'.$linkname.'-'.$statusId.'" class="itemlist-cbox"/>'.$title.'</div>';
					/* num instances */
					$output .= '<div class="itemlist-single-column">'.ucwords($page).'</div>';
					/* price*/
					$output .= '<div class="itemlist-single-column">&nbsp;</div>';
					/* discount */
					$output .= '<div class="itemlist-single-column">&nbsp;</div>';
					/* empty */
					$output .= '<div class="itemlist-single-column">&nbsp;</div>';
					/* status */
					$output .= '<div class="itemlist-single-column">'.$date.'</div>';
					/* edit */
					$output .= '<div class="itemlist-single-column">&nbsp;</div>';
					
					$output .= '<div class="clear"></div>';	
				$output .= '</div>';
			}
		}
	$output .= '</form>';
	
	return $output; 
}


function recover(){
	global $mysqli;
	
	if(isset($_POST['option'])){
		foreach($_POST['option'] as $key => $value){
			$temp = explode('-', $value);
			$itemId= $temp[0];
			$linkname = $temp[1];
			
			$updateQuery = 'UPDATE content_status SET active="1" WHERE linkname="'.$linkname.'" AND itemId="'.$itemId.'";';

			$hasNoItemOrder = array('media_files','media_folders','product_categories','discount_action');

			//reset orders in case of multipage
			if($linkname == 'product_products' ){
				$query = 'SELECT productOrder FROM '.$linkname.' ORDER by productOrder DESC LIMIT 1';
				$result = $mysqli->query($query);
				$record = $result->fetch_assoc();
				$order = $record['productOrder'];
				$order++;
				$mysqli->query('UPDATE '.$linkname.' SET productOrder = "'.$order.'", updated_at = "' . \Carbon\Carbon::now() . '" WHERE id="'.$itemId.'" LIMIT 1;');
			}
			else if( ! in_array($linkname,$hasNoItemOrder)){
				$query = 'SELECT itemOrder FROM '.$linkname.' ORDER by itemOrder DESC LIMIT 1';
				if($result = $mysqli->query($query))
				{
					$record = $result->fetch_assoc();
					$order = $record['itemOrder'];
					$order++;
					$mysqli->query('UPDATE '.$linkname.' SET itemOrder = "'.$order.'" WHERE id="'.$itemId.'" LIMIT 1;');
				}
			}

			if(!$mysqli->query($updateQuery)) ;
			
		}
		
	}
	Url_Pin::redirect();

//	header('location: ./');
}



function askToDeletePermenantly(){
	
	//get text
	$siteLabels = getLanguage();
	
	$numSelected = 0;
	if(isset($_POST['option'])){
		foreach($_POST['option'] as $key => $value){
			if(isset($value)){			
				$arr['value'][$numSelected] = $value;
				$numSelected++;
			}
		}
		$output = '';
		
		$output .= '<div class="triple-column-container">';
			$output .= '<div class="header-bar top-rounded content-bar">Trash / Permanent verwijderen</div>';
			$output .= '<div class="triple-column-content">';
				
				$output .= '<form action="" method="post">';
				$output .= 'Weet je zeker dat je deze bestanden permanent wilt verwijderen?' ;
				
				$output .= '<div class="clear"></div>';
				for($i=0;$i<$numSelected;$i++){
					$output .= '<input type="hidden" name="valueArray[]" value="'.$arr['value'][$i].'" />';
				}
				$output .= '<input type="submit" name="deletePermenantly" value="'.$siteLabels['form-yes'].'" class="btn176" />&nbsp;';
				
				$output .= '<input type="submit" name="back" value="'.$siteLabels['form-no'].'" class="btn176 proceed" />';
				$output .= '</form>';
				
			$output .= '</div>';			
		$output .= '</div>';	
			
		return $output;
	}
	else{
		header('location: ./');
	}
}


function deletePermenantly(){
	global $mysqli;
	$siteLabels = getLanguage();

	foreach($_POST['valueArray'] as $key => $value){
		$temp = explode('-', $value);
		$itemId= $temp[0];
		$linkname = $temp[1];
		
		//if it is media we need tot delete some files
		if($linkname == 'media_folders'){
			///// if it is the folder, we need to delete all files (and folders) in this folder \\\\\\
				#1 get folder string from this id
				#2 get all files in this folder
				#3 prepare remove queries
				#4 get all folders in this folder
				#5 prepare remove queries
				#6 execute queries
				#7 if no erros -> commit() and delete files
			
			# ( 1 )
			if($strResult = $mysqli->query('SELECT folderstring FROM media_folders WHERE id = '.$itemId.' LIMIT 1')){
				$strRecord = $strResult->fetch_assoc();
				$folderstring = $strRecord['folderstring'];

				if( ! empty($folderstring))
				{
					# ( 2 )
					if($fileResult = $mysqli->query('SELECT id, type, path, cp_thumb, filename_medium, filename_small, filename_hover, filename_fullhover FROM media_files WHERE folderstring LIKE "' . $folderstring . '%"'))
					{
						while ($fileRecord = $fileResult->fetch_assoc())
						{
							# ( 3 )
							$deleteId = $fileRecord['id'];
							if( ! empty($deleteId))
							{
								$queries[] = 'DELETE FROM media_files WHERE id = ' . $deleteId . ' LIMIT 1';
							}

							// save in array to unlink later
							$unlink[$deleteId]['type'] = $fileRecord['type'];
							$unlink[$deleteId]['fileName'] = $fileRecord['path'];
							$unlink[$deleteId]['cpthumb'] = $fileRecord['cp_thumb'];
							$unlink[$deleteId]['medium'] = $fileRecord['filename_medium'];
							$unlink[$deleteId]['small'] = $fileRecord['filename_small'];
							$unlink[$deleteId]['hover'] = $fileRecord['filename_hover'];
							$unlink[$deleteId]['fullhover'] = $fileRecord['filename_fullhover'];
						}
						# ( 4 )
						if($folderResult = $mysqli->query('SELECT id FROM media_folders WHERE folderstring LIKE "' . $folderstring . '%"'))
						{
							while ($folderRecord = $folderResult->fetch_assoc())
							{
								# ( 5 )
								$deleteId = $folderRecord['id'];
								if( ! empty($deleteId))
								{
									$queries[] = 'DELETE FROM media_folders WHERE id = ' . $deleteId . ' LIMIT 1';
								}
							}

							$queries[] = 'DELETE FROM content_status WHERE itemId="' . $itemId . '" AND linkname="' . $linkname . '" LIMIT 1';

							# ( 6 )
							$mysqli->autocommit(false);

							foreach ($queries as $query)
							{
								if( ! $mysqli->query($query))
								{
									$errors[] = $siteLabels['fm-somethingwentwrong'] . $mysqli->error;
								}
							}
							# ( 7 )
							if(isset($errors))
							{
								$mysqli->rollback();
								displayErrors($errors);
								header('location: ../');
							}
							else
							{
								//delete files
								foreach ($unlink as $deleteId => $value)
								{
									$type = $unlink[$deleteId]['type'];
									$fileName = $unlink[$deleteId]['fileName'];
									$cpthumb = $unlink[$deleteId]['cpthumb'];
									$medium = $unlink[$deleteId]['medium'];
									$small = $unlink[$deleteId]['small'];
									$hover = $unlink[$deleteId]['hover'];
									$fullhover = $unlink[$deleteId]['fullhover'];

									//if image
									if($type == 1)
									{
										$tr_fileName = trim($fileName);
										if( ! empty($tr_fileName))
										{
											if(is_file(DOCUMENT_ROOT . 'images/uploads/' . $fileName) && ! is_dir(DOCUMENT_ROOT . 'images/uploads/' . $fileName))
											{
												unlink(DOCUMENT_ROOT . 'images/uploads/' . $fileName);
											}
										}
										$tr_thumb = trim($cpthumb);
										if( ! empty($tr_thumb))
										{
											if(is_file(DOCUMENT_ROOT . 'images/uploads/' . $cpthumb) && ! is_dir(DOCUMENT_ROOT . 'images/uploads/' . $cpthumb))
											{
												unlink(DOCUMENT_ROOT . 'images/uploads/thumb/' . $cpthumb);
											}
										}
										$tr_medium = trim($medium);
										if( ! empty($tr_medium))
										{
											if(is_file(DOCUMENT_ROOT . 'images/uploads/' . $medium) && ! is_dir(DOCUMENT_ROOT . 'images/uploads/' . $medium))
											{
												unlink(DOCUMENT_ROOT . 'images/uploads/' . $medium);
											}
										}
										$tr_small = trim($small);
										if( ! empty($tr_small))
										{
											if(is_file(DOCUMENT_ROOT . 'images/uploads/' . $small) && ! is_dir(DOCUMENT_ROOT . 'images/uploads/' . $small))
											{
												unlink(DOCUMENT_ROOT . 'images/uploads/' . $small);
											}
										}
										$tr_hover = trim($hover);
										if( ! empty($tr_hover))
										{
											if(is_file(DOCUMENT_ROOT . 'images/uploads/' . $hover) && ! is_dir(DOCUMENT_ROOT . 'images/uploads/' . $hover))
											{
												unlink(DOCUMENT_ROOT . 'images/uploads/' . $hover);
											}
										}
										$tr_fullhover = trim($fullhover);
										if( ! empty($tr_fullhover))
										{
											if(is_file(DOCUMENT_ROOT . 'images/uploads/' . $fullhover) && ! is_dir(DOCUMENT_ROOT . 'images/uploads/' . $fullhover))
											{
												unlink(DOCUMENT_ROOT . 'images/uploads/' . $fullhover);
											}
										}
									}
								}
								unset($unlink);
								//commit queries
								$mysqli->commit();
							}
						} // if $folderResult
					} //end if $fileResult
				}
			} // end if $strResult 
		}
		else if($linkname == 'media_files'){
			///// if it is a file, we need to delete this file from the server \\\\\\
			# 1 get the file(s)
			# 2 prepare queries
			# 3 store url's
			# 4 execute queries
			# 5 if no errors -> commit and remove files
			
			# ( 1 )
			$result = $mysqli->query('SELECT type, path, cp_thumb, filename_medium, filename_small, filename_hover, filename_fullhover  FROM media_files WHERE id="'.$itemId.'" LIMIT 1');
			//if not allready deleted
			if($result->num_rows > 0){
				$record = $result->fetch_assoc();
				
				
				
				# ( 3 )
				$unlink[$itemId]['type'] = $record['type'];
				$unlink[$itemId]['fileName'] = $record['path'];
				$unlink[$itemId]['cpthumb'] = $record['cp_thumb'];
				$unlink[$itemId]['medium'] = $record['filename_medium'];
				$unlink[$itemId]['small'] = $record['filename_small'];
				$unlink[$itemId]['hover'] = $record['filename_hover'];
				$unlink[$itemId]['fullhover'] = $record['filename_fullhover'];
						
				# ( 2 )
				$queries[] = 'DELETE FROM media_files WHERE id="'.$itemId.'" LIMIT 1';
						
				$queries[] = 'DELETE FROM content_status WHERE itemId="'.$itemId.'" AND linkname="'.$linkname.'" LIMIT 1';
						
				# ( 4 )
				$mysqli->autocommit(FALSE);
				
				foreach($queries as $query)
				{
					if(!$mysqli->query($query))
					{
						$errors[] = $siteLabels['fm-somethingwentwrong'].$mysqli->error;
					}
				}
				# ( 5 )
				if(isset($errors))
				{
					$mysqli->rollback();
					displayErrors($errors);
					header('location: ../');
				}
				else
				{	
					//delete files
					foreach($unlink as $deleteId => $value){
						$type = $unlink[$deleteId]['type'];
						$fileName =$unlink[$deleteId]['fileName'];
						$cpthumb = $unlink[$deleteId]['cpthumb'];
						$medium = $unlink[$deleteId]['medium'];
						$small =$unlink[$deleteId]['small'];
						$hover = $unlink[$deleteId]['hover'];
						$fullhover = $unlink[$deleteId]['fullhover'];
						
						//if image
						if($type == 1){
							$tr_fileName = trim($fileName);
							if(!empty($tr_fileName)){
								if(is_file(DOCUMENT_ROOT . 'images/uploads/'.$fileName) && !is_dir(DOCUMENT_ROOT . 'images/uploads/'.$fileName)){
									unlink(DOCUMENT_ROOT . 'images/uploads/'.$fileName);
								}
							}
							$tr_thumb = trim($cpthumb);
							if(!empty($tr_thumb)){
								if(is_file(DOCUMENT_ROOT . 'images/uploads/'.$cpthumb) && !is_dir(DOCUMENT_ROOT . 'images/uploads/'.$cpthumb)){
									unlink(DOCUMENT_ROOT . 'images/uploads/thumb/'.$cpthumb);
								}
							}
							$tr_medium = trim($medium);
							if(!empty($tr_medium)){
								if(is_file(DOCUMENT_ROOT . 'images/uploads/'.$medium) && !is_dir(DOCUMENT_ROOT . 'images/uploads/'.$medium)){
									unlink(DOCUMENT_ROOT . 'images/uploads/'.$medium);
								}
							}
							$tr_small = trim($small);
							if(!empty($tr_small)){
								if(is_file(DOCUMENT_ROOT . 'images/uploads/'.$small) && !is_dir(DOCUMENT_ROOT . 'images/uploads/'.$small)){
									unlink(DOCUMENT_ROOT . 'images/uploads/'.$small);
								}
							}
							$tr_hover = trim($hover);
							if(!empty($tr_hover)){
								if(is_file(DOCUMENT_ROOT . 'images/uploads/'.$hover) && !is_dir(DOCUMENT_ROOT . 'images/uploads/'.$hover)){
									unlink(DOCUMENT_ROOT . 'images/uploads/'.$hover);
								}
							}
							$tr_fullhover = trim($fullhover);
							if(!empty($tr_fullhover)){
								if(is_file(DOCUMENT_ROOT . 'images/uploads/'.$fullhover) && !is_dir(DOCUMENT_ROOT . 'images/uploads/'.$fullhover)){
									unlink(DOCUMENT_ROOT . 'images/uploads/'.$fullhover);
								}
							}
						}
					}
					unset($unlink);
					//commit queries
					$mysqli->commit();
				}
			}
		}
		else{
			//prevend some actions
			if($linkname != 'shop_order_products' && $linkname != 'shop_order_info' && $linkname != 'shop_order_customer'){


                if($linkname == 'product_products')
                {
                    // Remove products from stock
                    $mysqli->query('DELETE FROM shop_stock WHERE productId="'.$itemId.'"'); // geen limit 1 ivm evt meerdere maten per product
                }

				if($mysqli->query('DELETE FROM '.$linkname.' WHERE id="'.$itemId.'" LIMIT 1')){
					$mysqli->query('DELETE FROM content_status WHERE itemId="'.$itemId.'" AND linkname="'.$linkname.'" LIMIT 1');
				}
			}
		}
	}
	header('location: ./');
	
}


?>