<?php
/*
	CMS ,,Black Min''  Został stworzony przez di_Timonix'a
	
	ten plik służy do zapisywania pliku przesłanego przez użytkownika
	
	Black Min cms,
	
	#plik: 1.0
*/
	// sprawdzamy czy plik został przesłany na serwera
	if(isset($_FILES['file'])) {
	
		// otwieranie sesii black mina
		session_start();	

		// sprawdzanie czy użytkownik jest zalogowany i ma odpowiednie permisje
		if (!isset($_SESSION['zalogowany']))
		{
			header('Location: ../logowanie.php');
			exit();
		}	
		require_once "../../../connect.php";
		require_once "../laduj/class-get-ustawienia.php";
		// Tworzenie nowej klasy i wywołanie jej w celu pobrania ustawień Black Mina
		$get_ustawienia_bm = new get_ustawienia_bm(); 
		$get_ustawienia_bm->get_ustawienia();
		$ustawienia_bm = $get_ustawienia_bm->get_ustawienia();
		$url_serwera_bm = $ustawienia_bm["bm_wartosc"][0];
		
		// pobieranie id autora pliku
		$autor_id = $_SESSION['id'];
		
		// ustawianie dat dla upload pliku
		$date_miesac = date('m');
		$date_rok = date('Y');
		$date = date('d-m-Y');
		$date2 = date('Y-m-d H:i');
		
		// Podawanjie ścieżki do zapisu 
		$target_dir = "../../../pliki/uploads/";
		$target_dir2 = $url_serwera_bm."pliki/uploads/";
		
		// sprawdzanie czy katalog z rokiem został stworzony
		// jeżeli tak potwierdza 
		// jeżeli nie tworzy go
		
		if (is_dir($target_dir . $date_rok)) {
			
			// sprawdzenie czy plik z miesiącem został stworzony 
			// jeżeli tak potwierdza 
			// jeżeli nie tworzy go
			if (file_exists($target_dir . $date_rok . "/" . $date_miesac . "/")) {
				
			}else {
				mkdir($target_dir . $date_rok . "/" . $date_miesac . "/", 0777);
			}
		}else{
			
			// tworzenie pliku roku uploudu
			mkdir($target_dir . $date_rok, 0777);
			
			// sprawdzenie czy plik z miesiącem został stworzony 
			// jeżeli tak potwierdza 
			// jeżeli nie tworzy go
			if (file_exists($target_dir . $date_rok . "/" . $date_miesac . "/")) {
				
			}else {
				mkdir($target_dir . $date_rok . "/" . $date_miesac . "/", 0777);
			}		
		}
		
		// sprawdzenie czy folder na miniaturki istnieje // jeżeli tak to lecimy dalej jeżeli nie tworzymy go
		if (is_dir($target_dir . "miniaturs_" . $date_rok)) {
			
			// sprawdzenie czy plik z miesiącem został stworzony 
			// jeżeli tak potwierdza 
			// jeżeli nie tworzy go
			if (file_exists($target_dir . "miniaturs_" . $date_rok . "/" . $date_miesac . "/")) {
				
			}else {
				mkdir($target_dir . "miniaturs_" . $date_rok . "/" . $date_miesac . "/", 0777);
			}
		}else{
			
			// tworzenie pliku roku uploudu
			mkdir($target_dir . "miniaturs_" . $date_rok, 0777);
			
			// sprawdzenie czy plik z miesiącem został stworzony 
			// jeżeli tak potwierdza 
			// jeżeli nie tworzy go
			if (file_exists($target_dir . "miniaturs_" . $date_rok . "/" . $date_miesac . "/")) {
				
			}else {
				mkdir($target_dir . "miniaturs_" . $date_rok . "/" . $date_miesac . "/", 0777);
			}		
		}
		
		//zamiana nazwy pliku i sprawdzenie poprawnośći w nazwie pliku
		$file_name = $_FILES["file"]["name"];
		$replace_file_name = str_replace(" ","-",$_FILES["file"]["name"]);
		
		// pobieranie nazwy pliku
		$target_file = $target_dir . $date_rok . "/" . $date_miesac . "/". basename($replace_file_name);
		$target_file_miniaturs = $target_dir . "miniaturs_" . $date_rok . "/" . $date_miesac . "/" . basename($replace_file_name);
		$target_file2 = $target_dir2 . $date_rok . "/" . $date_miesac . "/". basename($_FILES["file"]["name"]);
		$target_file2_miniaturs = $target_dir2 . "miniaturs_" . $date_rok . "/" . $date_miesac . "/". basename($_FILES["file"]["name"]);
		
		// ustawienie zmienej do sprawdzenia walidacj
		$uploadOk = 1;
		
		// sprawdzenie typu pliku (roszerzenia)
		$imageFileType = strtolower(pathinfo($target_file,PATHINFO_EXTENSION));
		
		// Check if image file is a actual image or fake image
		if(isset($_FILES["submit"])) {
			$check = getimagesize($_FILES["file"]["tmp_name"]);
			/*if($check !== false) {
				echo "File is an image - " . $check["mime"] . ".";
				$uploadOk = 1;
			}*/
		}
		
		// Check if file already exists
		if (file_exists($target_file)) {
			echo "Przepraszamy, ale plik już istnieje.";
			$uploadOk = 0;
		}
		// Check file size
		if ($_FILES["file"]["size"] > 119537664) {
			echo "Twój plik jest za duży.";
			$uploadOk = 0;
		}

		// ustawienie zmienej pliku do przesłania
		$plik_wysli = $_FILES["file"]["tmp_name"];
		echo str_replace(" ","-",$plik_wysli);;
		//echo rename ("/folder/file.ext", "newfile.ext");
		
		// pobieranie rozszerzenia pliku
		$rozszerzenie = $_FILES["file"]['type'];
		
		// Check if $uploadOk is set to 0 by an error
		if ($uploadOk == 0) {
			echo "Plik nie został przesłany.";
		
		// if everything is ok, try to upload file
		}else{
			if (move_uploaded_file($_FILES["file"]["tmp_name"], $target_file)) {
				echo "Plik > ". basename( $_FILES["file"]["name"]). " został przesłany.";
		
				// zamiana pustego miejsca pomiędzy znakami na "-" w scieżce
				$target_file3 = str_replace("-","",$target_file2);
				$target_file3 = str_replace(" ","-",$target_file2);
				$target_file3_miniaturs = str_replace("-","",$target_file2_miniaturs);
				$target_file3_miniaturs = str_replace(" ","-",$target_file2_miniaturs);
				
				// odcinanie głównego roszerzenia pliku
				$reserch_roszerzenie = explode("/", $rozszerzenie);
				
				// tworzenie miniaturki wtedy gdy mam doczynienia z plikiem img
				if ($reserch_roszerzenie[0] == "image"){
				
					// Sprawdzanie roszerzenia obrazka i otwieranie odpowiednio go otwieramy
					if ($reserch_roszerzenie[1] == "gif"){
						$image = imagecreatefromgif($target_file);
					}
					
					if ($reserch_roszerzenie[1] == "png"){
						$image = imagecreatefrompng($target_file);
					}
					
					if ($reserch_roszerzenie[1] == "bmp"){
						$image = imagecreatefrombmp($target_file);
					}
					
					if ($reserch_roszerzenie[1] == "jpg" or $reserch_roszerzenie[1] == "jpeg"){
						$image = imagecreatefromjpeg($target_file);
					}
					 
					// wczytujemy zdjęcie do uchwytu
					 
					$image_width = imagesx($image);
					 
					$image_height = imagesy($image);
					 
					// pobieramy rozmiar oryginalnego obrazu
					 
					$new_width = 250;
					 
					$new_height = 170;
					 
					// definiujemy rozmiar dla nowego obrazu
					 
					$new_image = imagecreatetruecolor($new_width, $new_height);
					 
					// tworzymy uchwyt dla nowego obrazu
					 
					imagecopyresized($new_image, $image, 0, 0, 0, 0, $new_width, $new_height, $image_width, $image_height);
					 
					// kopiujemy, narazie bez zmiany parametrów
					 
					header("Content-type: image/jpg");
					 
					// definiujemy nagłówek z mimetype
					 
					//imagepng($new_image);
					if(imagejpeg($new_image, $target_file_miniaturs, 88)){
					  echo 'Image saved to file.';
					}
				
				}else{
					$target_file3_miniaturs = $url_serwera_bm ."pliki/banner/placeholder.jpg";
				}
				
				
				// dodawanie nowego rekordu do bazy danych dysku
				// jeżeli przeszedł poprawną walidacjie
			
				
				mysqli_report(MYSQLI_REPORT_STRICT);
				
				try 
				{
					$polaczenie = new mysqli($host, $db_user, $db_password, $db_name);
					if ($polaczenie->connect_errno!=0)
					{
						throw new Exception(mysqli_connect_errno());
					}
					else
					{
						
						mysqli_query($polaczenie, "SET CHARSET utf8");
						mysqli_query($polaczenie, "SET NAMES 'utf8' COLLATE 'utf8_unicode_ci'");	
			
						
						// jeżeli wszystkie testy walidacyjne przeszły pomyśnie to dodajemy nowy post
						// wyśiwtlamy informacje dla użytkownika że post został dodany do bazy danych
						

						//Hurra, wszystkie testy zaliczone, dodajemy gracza do bazy
						
						if ($polaczenie->query("INSERT INTO `".$prefix_table."bm_filemeta` VALUES (NULL, '$autor_id', '$file_name', '$replace_file_name', '$date2', '$date2', '', '$rozszerzenie', '$target_file3_miniaturs', 'domyśny', '$target_file3')"))
						{
							echo '<section class="tsr-alert tsr-alert-success"> Plik został dodany </section>';
							//echo '<script type="text/javascript">
							//		$("input,textarea,span,p").each(function(){
							//		$(this).val("");
							//		});
							//	</script>';
						}
						else
						{
							throw new Exception($polaczenie->error);
						}
						
						$polaczenie->close();
					}
					
				}
				
				  
				catch(Exception $e)
				{
					echo '<span style="color:red;">Błąd serwera! Przepraszamy za niedogodności i prosimy o powtórzenie działań w innym terminie!</span>';
					//echo '<br />Informacja developerska: '.$e;
				}						
				
			} else {
				echo "Wystąpił błąd podczas przesyłania pliku.";
			}
		}	
		exit();
	} else {
		echo "Wystąpił błąd podczas przesyłania pliku...";
	}
	
?>