Removed old website
	
		
			
	
		
	
	
		
	
		
			Some checks failed
		
		
	
	
		
			
				
	
				Build and Deploy Zola Website / build_and_deploy (push) Failing after 17s
				
			
		
		
	
	
				
					
				
			
		
			Some checks failed
		
		
	
	Build and Deploy Zola Website / build_and_deploy (push) Failing after 17s
				
			This commit is contained in:
		@@ -1,17 +0,0 @@
 | 
				
			|||||||
# Website
 | 
					 | 
				
			||||||
- My personal website written in php, html, css and js
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
## To run development server
 | 
					 | 
				
			||||||
- `php -S localhost:8000`
 | 
					 | 
				
			||||||
- Then it can be access at http://localhost:8000/
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
## To run using Docker
 | 
					 | 
				
			||||||
- ToDo
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
## To Do
 | 
					 | 
				
			||||||
- [ ] Docker
 | 
					 | 
				
			||||||
- [ ] kopirovani PGP na click opravit
 | 
					 | 
				
			||||||
- [ ] projekty page css
 | 
					 | 
				
			||||||
- [ ] contact page odesilani mailu
 | 
					 | 
				
			||||||
- [ ] contact page pridat odkazy na dalsi soc site (github atd)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
@@ -1,2 +0,0 @@
 | 
				
			|||||||
<p>(c) filiprojek.cz 2023<p>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
@@ -1,11 +0,0 @@
 | 
				
			|||||||
<section class="nav">
 | 
					 | 
				
			||||||
	<a class="logo" href="/">
 | 
					 | 
				
			||||||
		<img src="img/fr_logo.webp" alt="logo" />
 | 
					 | 
				
			||||||
	</a>
 | 
					 | 
				
			||||||
	<div class="links">
 | 
					 | 
				
			||||||
		<a href="/home">Úvod</a>
 | 
					 | 
				
			||||||
		<a href="/projects">Projekty</a>
 | 
					 | 
				
			||||||
		<a href="/contact">Kontakt</a>
 | 
					 | 
				
			||||||
	</div>
 | 
					 | 
				
			||||||
</section>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
@@ -1,37 +0,0 @@
 | 
				
			|||||||
.content {
 | 
					 | 
				
			||||||
	display: flex;
 | 
					 | 
				
			||||||
	flex-direction: column;
 | 
					 | 
				
			||||||
	align-items: center;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
.form_contact {
 | 
					 | 
				
			||||||
	--base-padding: .5rem 1rem;
 | 
					 | 
				
			||||||
	display: flex;
 | 
					 | 
				
			||||||
	flex-direction: column;
 | 
					 | 
				
			||||||
	width: 15rem;
 | 
					 | 
				
			||||||
	margin-top: 2rem;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
.form_contact input {
 | 
					 | 
				
			||||||
	padding: var(--base-padding);
 | 
					 | 
				
			||||||
	margin-bottom: 1rem;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
.form_contact button {
 | 
					 | 
				
			||||||
	align-self: center;
 | 
					 | 
				
			||||||
	padding: var(--base-padding);
 | 
					 | 
				
			||||||
	margin-top: 1.5rem;
 | 
					 | 
				
			||||||
	cursor: pointer;
 | 
					 | 
				
			||||||
	background-color: white;
 | 
					 | 
				
			||||||
	color: black;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
.form_contact textarea {
 | 
					 | 
				
			||||||
	height: 8rem;
 | 
					 | 
				
			||||||
	resize: none;
 | 
					 | 
				
			||||||
	padding: var(--base-padding);
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
.form_contact input, textarea, button {
 | 
					 | 
				
			||||||
	border-radius: 5px;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
@@ -1,28 +0,0 @@
 | 
				
			|||||||
.content {
 | 
					 | 
				
			||||||
	margin-block: auto;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
.home {
 | 
					 | 
				
			||||||
	font-size: 1.2rem;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
.home section {
 | 
					 | 
				
			||||||
	text-align: center;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
.home a {
 | 
					 | 
				
			||||||
	color: lightblue;
 | 
					 | 
				
			||||||
	cursor: pointer;
 | 
					 | 
				
			||||||
	text-decoration: underline;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
#pgp {
 | 
					 | 
				
			||||||
	cursor: pointer;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
#pgpmobile {
 | 
					 | 
				
			||||||
	display: none;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
@media (max-width: 600px) {
 | 
					 | 
				
			||||||
	#pgp {
 | 
					 | 
				
			||||||
		display: none;
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
	#pgpmobile {
 | 
					 | 
				
			||||||
		display: inline-block;
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
@@ -1,52 +0,0 @@
 | 
				
			|||||||
.content h1 {
 | 
					 | 
				
			||||||
	text-align: center;
 | 
					 | 
				
			||||||
	margin-bottom: 2rem;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
.projects {
 | 
					 | 
				
			||||||
	display: flex;
 | 
					 | 
				
			||||||
	flex-direction: column;
 | 
					 | 
				
			||||||
	align-items: center;
 | 
					 | 
				
			||||||
	gap: 1rem;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
.projects img {
 | 
					 | 
				
			||||||
	max-width: 100%;
 | 
					 | 
				
			||||||
	display: block;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
.card {
 | 
					 | 
				
			||||||
	display: flex;
 | 
					 | 
				
			||||||
	border: 1px solid red;
 | 
					 | 
				
			||||||
	border-radius: 15px;
 | 
					 | 
				
			||||||
	box-shadow: rgba(0, 0, 0, 0.1) 0px 4px 12px;
 | 
					 | 
				
			||||||
	width: min(40rem, calc(100% - 1rem));
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
.card .card_text > * {
 | 
					 | 
				
			||||||
	margin: 1rem;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
.card > * {
 | 
					 | 
				
			||||||
	flex-basis: 100%;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
.card .card_left {
 | 
					 | 
				
			||||||
	border: 1px solid green;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
.card .card_right {
 | 
					 | 
				
			||||||
	border: 1px solid yellow;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
.technologies {
 | 
					 | 
				
			||||||
	display: flex;
 | 
					 | 
				
			||||||
	gap: 1rem;
 | 
					 | 
				
			||||||
	flex-wrap: wrap;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
.technologies span {
 | 
					 | 
				
			||||||
	border: 1px solid white;
 | 
					 | 
				
			||||||
	padding: .5rem;
 | 
					 | 
				
			||||||
	border-radius: 5px;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
@@ -1,77 +0,0 @@
 | 
				
			|||||||
* {
 | 
					 | 
				
			||||||
	margin: 0;
 | 
					 | 
				
			||||||
	padding: 0;
 | 
					 | 
				
			||||||
	box-sizing: border-box;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
body {
 | 
					 | 
				
			||||||
	display: flex;
 | 
					 | 
				
			||||||
	flex-direction: column;
 | 
					 | 
				
			||||||
	min-height: 100vh;
 | 
					 | 
				
			||||||
	font-family: 'Source Code Pro', monospace;
 | 
					 | 
				
			||||||
	background: var(--background);
 | 
					 | 
				
			||||||
	color: var(--color);
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
html {
 | 
					 | 
				
			||||||
	overflow-y: scroll !important;
 | 
					 | 
				
			||||||
	text-rendering: optimizeLegibility;
 | 
					 | 
				
			||||||
	-webkit-font-smoothing: antialiased;
 | 
					 | 
				
			||||||
	scroll-behavior: smooth;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
*::-webkit-scrollbar {
 | 
					 | 
				
			||||||
    width: 5px;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
*::-webkit-scrollbar-thumb {
 | 
					 | 
				
			||||||
    background-color: #ffffff;
 | 
					 | 
				
			||||||
    border-radius: 20px;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
*::-webkit-scrollbar-track {
 | 
					 | 
				
			||||||
    background: #000000;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
.nav {
 | 
					 | 
				
			||||||
	position: relative;
 | 
					 | 
				
			||||||
	display: flex;
 | 
					 | 
				
			||||||
	padding: 1rem;
 | 
					 | 
				
			||||||
	justify-content: space-between;
 | 
					 | 
				
			||||||
	isolation: isolate;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
.nav .logo img {
 | 
					 | 
				
			||||||
	height: 3rem;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
.nav .links {
 | 
					 | 
				
			||||||
	display: flex;
 | 
					 | 
				
			||||||
	align-items: center;
 | 
					 | 
				
			||||||
	justify-content: center;
 | 
					 | 
				
			||||||
	gap: 1rem;
 | 
					 | 
				
			||||||
	z-index: -1;
 | 
					 | 
				
			||||||
	color: var(--color);
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
a { color: var(--color); }
 | 
					 | 
				
			||||||
a:visited { color: var(--color); }
 | 
					 | 
				
			||||||
a:hover { color: red; }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
@media (min-width: 400px) {
 | 
					 | 
				
			||||||
	.nav .links {
 | 
					 | 
				
			||||||
		position: absolute;
 | 
					 | 
				
			||||||
		inset: 0;
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
.content {
 | 
					 | 
				
			||||||
	padding: 2rem 1rem;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
footer {
 | 
					 | 
				
			||||||
	display: flex;
 | 
					 | 
				
			||||||
	width: 100vw;
 | 
					 | 
				
			||||||
	justify-content: center;
 | 
					 | 
				
			||||||
	align-items: center;
 | 
					 | 
				
			||||||
	align-self: flex-end;
 | 
					 | 
				
			||||||
	margin-top: auto;
 | 
					 | 
				
			||||||
	margin-bottom: 2rem;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
@@ -1,6 +0,0 @@
 | 
				
			|||||||
body {
 | 
					 | 
				
			||||||
	--base-padding: .5rem 1rem;
 | 
					 | 
				
			||||||
    --base-margin: 2rem;
 | 
					 | 
				
			||||||
    --background: #111111;
 | 
					 | 
				
			||||||
    --color: #ffffff;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
							
								
								
									
										
											BIN
										
									
								
								.old/img/fr.ico
									
									
									
									
									
								
							
							
						
						
									
										
											BIN
										
									
								
								.old/img/fr.ico
									
									
									
									
									
								
							
										
											Binary file not shown.
										
									
								
							| 
		 Before Width: | Height: | Size: 1.4 KiB  | 
										
											Binary file not shown.
										
									
								
							| 
		 Before Width: | Height: | Size: 526 B  | 
@@ -1,88 +0,0 @@
 | 
				
			|||||||
<?php
 | 
					 | 
				
			||||||
	$prod = false;
 | 
					 | 
				
			||||||
	
 | 
					 | 
				
			||||||
	require_once("./libraries/router.php");
 | 
					 | 
				
			||||||
	require_once("./libraries/console.php");
 | 
					 | 
				
			||||||
	
 | 
					 | 
				
			||||||
	// Display Errors
 | 
					 | 
				
			||||||
	ini_set('display_startup_errors', 1);
 | 
					 | 
				
			||||||
	ini_set('display_errors', 1);
 | 
					 | 
				
			||||||
	error_reporting(-1);
 | 
					 | 
				
			||||||
	
 | 
					 | 
				
			||||||
	// Display var_dump
 | 
					 | 
				
			||||||
	#var_dump($_SESSION);
 | 
					 | 
				
			||||||
	
 | 
					 | 
				
			||||||
	// Date Time Zone
 | 
					 | 
				
			||||||
	date_default_timezone_set('Europe/Prague');
 | 
					 | 
				
			||||||
	
 | 
					 | 
				
			||||||
	// site info
 | 
					 | 
				
			||||||
	$keywords = "Filip Rojek, rojek, vyvojar, developer, backend vyvojar, nodejs vyvojar, php vyvojar, web vyvojar, programator, linux administrator";
 | 
					 | 
				
			||||||
	$description = "Linux user, backend web developer and student.";
 | 
					 | 
				
			||||||
	$locale = "cs_CZ";
 | 
					 | 
				
			||||||
	$title = "Filip Rojek | Developer";
 | 
					 | 
				
			||||||
	$site_name = "Filip Rojek | Developer";
 | 
					 | 
				
			||||||
	$author = "Fofrweb | https://fofrweb.com";
 | 
					 | 
				
			||||||
	$email = "webmaster(@)fofrweb.com";
 | 
					 | 
				
			||||||
	$canonical = "https://www.filiprojek.cz/";
 | 
					 | 
				
			||||||
?>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<!doctype html>
 | 
					 | 
				
			||||||
<html>
 | 
					 | 
				
			||||||
<head>
 | 
					 | 
				
			||||||
	<meta charset="UTF-8" />
 | 
					 | 
				
			||||||
	<meta http-equiv="X-UA-Compatible" content="IE=edge" />
 | 
					 | 
				
			||||||
	<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=1.0" />
 | 
					 | 
				
			||||||
	<meta id="contentLanguage" http-equiv="Content-Language" content="<?= $locale ?>" />
 | 
					 | 
				
			||||||
	<meta name="keywords" content="<?= $keywords ?>" />
 | 
					 | 
				
			||||||
	<meta name="description" content="<?= $description ?>" />
 | 
					 | 
				
			||||||
	<meta property="og:locale" content="<?= $locale ?>" />
 | 
					 | 
				
			||||||
	<meta property="og:type" content="website" />
 | 
					 | 
				
			||||||
	<meta property="og:title" content="<?= $title ?>" />
 | 
					 | 
				
			||||||
	<meta property="og:description" content="<?= $description ?>" />
 | 
					 | 
				
			||||||
	<meta property="og:site_name" content="<?= $site_name ?>" />
 | 
					 | 
				
			||||||
	<meta name="author" content="<?= $author ?>" />
 | 
					 | 
				
			||||||
	<meta name="email" content="<?= $email ?>" />
 | 
					 | 
				
			||||||
	<meta name="copyright" content="<?= $copyright ?>" />
 | 
					 | 
				
			||||||
	<meta name="expires" content="never" />
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<?php 
 | 
					 | 
				
			||||||
if($prod) { ?>
 | 
					 | 
				
			||||||
		<meta name="robots" content="index,follow" />
 | 
					 | 
				
			||||||
		<meta name="Seznambot" content="index,follow" />
 | 
					 | 
				
			||||||
		<meta name="Googlebot" content="index,follow" />
 | 
					 | 
				
			||||||
<?php } else { ?>
 | 
					 | 
				
			||||||
		<meta name="robots" content="noindex, nofollow" />
 | 
					 | 
				
			||||||
		<meta name="Seznambot" content="noindex, nofollow" />
 | 
					 | 
				
			||||||
		<meta name="Googlebot" content="noindex, nofollow" />
 | 
					 | 
				
			||||||
<?php } ?>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	<title><?= $title ?></title>
 | 
					 | 
				
			||||||
	<link rel="icon" type="image/x-icon" href="/img/fr.ico" />
 | 
					 | 
				
			||||||
	<link rel="canonical" href="<?= $canonical ?>" />
 | 
					 | 
				
			||||||
	<link rel="stylesheet" href="/css/style.css">
 | 
					 | 
				
			||||||
	<link rel="stylesheet" href="/css/variables.css">
 | 
					 | 
				
			||||||
</head>
 | 
					 | 
				
			||||||
<body>
 | 
					 | 
				
			||||||
	<?php
 | 
					 | 
				
			||||||
		require_once("./components/header.php");
 | 
					 | 
				
			||||||
	?>
 | 
					 | 
				
			||||||
	<section class="content">
 | 
					 | 
				
			||||||
		<?php
 | 
					 | 
				
			||||||
			$R = new Router();
 | 
					 | 
				
			||||||
			$R->route('GET', '/', 'home');
 | 
					 | 
				
			||||||
			$R->route('GET', '/home', 'home');
 | 
					 | 
				
			||||||
			$R->route('GET', '/domu', 'home');
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
			$R->route('POST', '/contact/send', 'contact');
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
			$R = null;
 | 
					 | 
				
			||||||
		?>
 | 
					 | 
				
			||||||
	</section>
 | 
					 | 
				
			||||||
	<footer>
 | 
					 | 
				
			||||||
		<?php
 | 
					 | 
				
			||||||
			require_once("./components/footer.php");
 | 
					 | 
				
			||||||
		?>
 | 
					 | 
				
			||||||
	</footer>
 | 
					 | 
				
			||||||
</body>
 | 
					 | 
				
			||||||
</html>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
@@ -1,9 +0,0 @@
 | 
				
			|||||||
<?php
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
function console_log($data) {
 | 
					 | 
				
			||||||
    $output = $data;
 | 
					 | 
				
			||||||
    if (is_array($output))
 | 
					 | 
				
			||||||
        $output = implode(',', $output);
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    echo "<script>console.log('Debug Objects: " . $output . "' );</script>";
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
@@ -1,31 +0,0 @@
 | 
				
			|||||||
<?php
 | 
					 | 
				
			||||||
class Mail {
 | 
					 | 
				
			||||||
    public $from;
 | 
					 | 
				
			||||||
    public $to;
 | 
					 | 
				
			||||||
    public $subject;
 | 
					 | 
				
			||||||
    public $message;
 | 
					 | 
				
			||||||
    public $headers;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    function __construct($from, $to, $subject, $message, $headers=null) {
 | 
					 | 
				
			||||||
        $this->from = $from;
 | 
					 | 
				
			||||||
        $this->to = $to;
 | 
					 | 
				
			||||||
        $this->subject = $subject;
 | 
					 | 
				
			||||||
        $this->headers = $headers;
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    public function send() {
 | 
					 | 
				
			||||||
        // odeslání e-mailu
 | 
					 | 
				
			||||||
        $headers = 'From: noreply@fofrweb.com' . "\r\n" .
 | 
					 | 
				
			||||||
            'Reply-To: support@fofrweb.com' . "\r\n" .
 | 
					 | 
				
			||||||
            'X-Mailer: PHP/' . phpversion();
 | 
					 | 
				
			||||||
        $this->headers = $headers;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        if (gettype($this->message) == 'string') {
 | 
					 | 
				
			||||||
            if(mail($this->to, $this->subject, $this->message, $this->headers)) {
 | 
					 | 
				
			||||||
                return true;
 | 
					 | 
				
			||||||
            } else {
 | 
					 | 
				
			||||||
                return false;
 | 
					 | 
				
			||||||
            }
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
@@ -1,33 +0,0 @@
 | 
				
			|||||||
<?php
 | 
					 | 
				
			||||||
class Router {
 | 
					 | 
				
			||||||
	public $returned = false;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	function route($method, $url, $filename) {
 | 
					 | 
				
			||||||
		$methods = ['GET', 'POST'];
 | 
					 | 
				
			||||||
		if(in_array($method, $methods)) {
 | 
					 | 
				
			||||||
			if($_SERVER['REQUEST_METHOD'] == $method) {
 | 
					 | 
				
			||||||
				if ($_SERVER['REQUEST_URI'] == $url) {
 | 
					 | 
				
			||||||
					require_once("./pages/$filename/$filename.php");
 | 
					 | 
				
			||||||
					$this->returned = true;
 | 
					 | 
				
			||||||
					return;
 | 
					 | 
				
			||||||
				}
 | 
					 | 
				
			||||||
			}
 | 
					 | 
				
			||||||
		}
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	function __destruct() {
 | 
					 | 
				
			||||||
		if($_SERVER['REQUEST_METHOD'] == 'GET') {
 | 
					 | 
				
			||||||
			if(!$this->returned){
 | 
					 | 
				
			||||||
				$url = explode("/", $_SERVER['REQUEST_URI']);
 | 
					 | 
				
			||||||
				$url = $url[count($url)-1];
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
				if (file_exists("./pages/$url/$url.php")) {
 | 
					 | 
				
			||||||
					require_once("./pages/$url/$url.php");
 | 
					 | 
				
			||||||
				} else {
 | 
					 | 
				
			||||||
					require_once("./pages/errors/404.php");
 | 
					 | 
				
			||||||
				}
 | 
					 | 
				
			||||||
			}
 | 
					 | 
				
			||||||
		}
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
@@ -1,61 +0,0 @@
 | 
				
			|||||||
<link rel="stylesheet" href="/css/contact.css">
 | 
					 | 
				
			||||||
<h1>Kontaktujte mě</h1>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<form class="form_contact" action="/contact/send" method="post" name="contact">
 | 
					 | 
				
			||||||
	<label for="name">Vaše jméno:</label>
 | 
					 | 
				
			||||||
	<input id="name" type="text" placeholder="Petr Novák" required autocomplete="on" />
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	<label for="email">Váš e-mail:</label>
 | 
					 | 
				
			||||||
	<input id="email" type="email" placeholder="petr@novak.cz" required autocomplete="on" />
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	<label for="message">Zpráva:</label>
 | 
					 | 
				
			||||||
	<textarea id="message" placeholder="Napište zprávu..." required></textarea>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	<button type="button" id="submit">Odeslat zprávu</button>
 | 
					 | 
				
			||||||
</form>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<script>
 | 
					 | 
				
			||||||
	const submit = document.querySelector("#submit")
 | 
					 | 
				
			||||||
	submit.addEventListener("click", async (e) => {
 | 
					 | 
				
			||||||
		e.preventDefault()
 | 
					 | 
				
			||||||
		
 | 
					 | 
				
			||||||
		const formData = new FormData();
 | 
					 | 
				
			||||||
		formData.append('name', document.querySelector("#name").value);
 | 
					 | 
				
			||||||
		formData.append('email', document.querySelector("#email").value);
 | 
					 | 
				
			||||||
		formData.append('message', document.querySelector("#message").value);
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
		try {
 | 
					 | 
				
			||||||
  			await fetch('/contact/send', {
 | 
					 | 
				
			||||||
    			method: 'POST',
 | 
					 | 
				
			||||||
    			body: formData
 | 
					 | 
				
			||||||
			});
 | 
					 | 
				
			||||||
  			console.log('Message sent successfully.')
 | 
					 | 
				
			||||||
		} catch (err) {
 | 
					 | 
				
			||||||
 		 	console.error('Error:', error)
 | 
					 | 
				
			||||||
		}
 | 
					 | 
				
			||||||
	})
 | 
					 | 
				
			||||||
</script>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<?php
 | 
					 | 
				
			||||||
ini_set('log_errors', 1);
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
if(isset($_POST['email']) && isset($_POST['message'])) {
 | 
					 | 
				
			||||||
	$email = $_POST['email'];
 | 
					 | 
				
			||||||
	$message = $_POST['message'];
 | 
					 | 
				
			||||||
	$name = $_POST['name'];
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	require_once(__DIR__ . "/../../libraries/mail.php");
 | 
					 | 
				
			||||||
	$message = "Nová zpráva z webu filiprojek.cz\n\nOdesílatel: $email\nZpráva:\n$message";
 | 
					 | 
				
			||||||
	$m = new Mail($_POST['email'], 'webmaster@filiprojek.cz', 'Nová zpráva z webu filiprojek.cz', $message);
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	if($m->send()) {
 | 
					 | 
				
			||||||
		console_log("zprava odeslana");
 | 
					 | 
				
			||||||
		header('Location: /?sent=true');
 | 
					 | 
				
			||||||
	} else {
 | 
					 | 
				
			||||||
		error_log("Message wasn't sent");
 | 
					 | 
				
			||||||
		error_log(var_dump($m));
 | 
					 | 
				
			||||||
		echo "<p>Něco se nepovedlo, zkuste to znovu... :(</p>";
 | 
					 | 
				
			||||||
	    echo "<a href='/'>Zpět</a>";
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
@@ -1,2 +0,0 @@
 | 
				
			|||||||
<h1>Error 404 - not found</h1>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
@@ -1,33 +0,0 @@
 | 
				
			|||||||
<link rel="stylesheet" href="./css/home.css" >
 | 
					 | 
				
			||||||
<section class="home">
 | 
					 | 
				
			||||||
	<section>
 | 
					 | 
				
			||||||
		<p>Filip Rojek <filip(at)filiprojek.cz></p>
 | 
					 | 
				
			||||||
		<br>
 | 
					 | 
				
			||||||
		<p>Backend node.js & php developer <a href="https://www.fofrweb.com/" target="_blank">@fofrweb</a>,<br> Linux Gentoo user, student and coffee enthusiast<span class="underscore">_</span><p>
 | 
					 | 
				
			||||||
		<br>
 | 
					 | 
				
			||||||
		<p id="pgp" title="copy pgp to clipboard">PGP: fc37b989787acf8cbce7c0c2a56a345efe321161</p>
 | 
					 | 
				
			||||||
		<br>
 | 
					 | 
				
			||||||
		<p><a href="https://git.filiprojek.cz/fr" target="_blank">Git</a> <a href="https://t.me/filiprojek" target="_blank">Telegram</a> <a href="#" id="pgpmobile" title="copy pgp to clipboard">PGP</a></p>
 | 
					 | 
				
			||||||
	</section>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	<script>
 | 
					 | 
				
			||||||
		const _ = document.querySelector(".underscore")
 | 
					 | 
				
			||||||
		let b = false
 | 
					 | 
				
			||||||
		setInterval(() => {
 | 
					 | 
				
			||||||
			b ? _.style.visibility = "visible" : _.style.visibility = "hidden"
 | 
					 | 
				
			||||||
			b = !b
 | 
					 | 
				
			||||||
		}, 500)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
		const pgp = document.querySelector("#pgp")
 | 
					 | 
				
			||||||
		const pgpmobile = document.querySelector("#pgpmobile")
 | 
					 | 
				
			||||||
		const pgpcp = (e) => {
 | 
					 | 
				
			||||||
			console.log(e)
 | 
					 | 
				
			||||||
			navigator.clipboard.writeText("fc37b989787acf8cbce7c0c2a56a345efe321161")
 | 
					 | 
				
			||||||
			alert("pgp has been copied to the clipboard")
 | 
					 | 
				
			||||||
		}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
		pgp.addEventListener("click", pgpcp)
 | 
					 | 
				
			||||||
		pgpmobile.addEventListener("click", pgpcp)
 | 
					 | 
				
			||||||
	</script>
 | 
					 | 
				
			||||||
</section>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
@@ -1,107 +0,0 @@
 | 
				
			|||||||
<link rel="stylesheet" href="/css/projects.css">
 | 
					 | 
				
			||||||
<h1>Projekty</h1>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<section class="projects">
 | 
					 | 
				
			||||||
	<div class="card">
 | 
					 | 
				
			||||||
		<div class="card_left card_text">
 | 
					 | 
				
			||||||
			<p>pkmples.cz</p>
 | 
					 | 
				
			||||||
			<p>Komerční webová stránka pro PKM PARTY PLES.</p>
 | 
					 | 
				
			||||||
			<div class="technologies">
 | 
					 | 
				
			||||||
				<span>PHP</span>
 | 
					 | 
				
			||||||
				<span>Linux</span>
 | 
					 | 
				
			||||||
				<span>Nginx</span>
 | 
					 | 
				
			||||||
			</div>
 | 
					 | 
				
			||||||
			<p>01/2023</p>
 | 
					 | 
				
			||||||
		</div>
 | 
					 | 
				
			||||||
		<div class="card_right">
 | 
					 | 
				
			||||||
			<img src="https://www.fofrweb.com/images/pkm_two.png" alt="project screenshot">
 | 
					 | 
				
			||||||
		</div>
 | 
					 | 
				
			||||||
	</div>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	<div class="card">
 | 
					 | 
				
			||||||
		<div class="card_left">
 | 
					 | 
				
			||||||
			<img src="https://www.fofrweb.com/images/rapidd.png" alt="project screenshot">
 | 
					 | 
				
			||||||
		</div>
 | 
					 | 
				
			||||||
		<div class="card_right card_text">
 | 
					 | 
				
			||||||
			<p>rapiddglass.cz</p>
 | 
					 | 
				
			||||||
			<p>Komerční webová stránka pro přípravek na ochranu a čištění krbového skla Rapidd Glass.</p>
 | 
					 | 
				
			||||||
			<p>10/2022</p>
 | 
					 | 
				
			||||||
			<div class="technologies">
 | 
					 | 
				
			||||||
				<span>PHP</span>
 | 
					 | 
				
			||||||
				<span>Linux</span>
 | 
					 | 
				
			||||||
				<span>Nginx</span>
 | 
					 | 
				
			||||||
			</div>
 | 
					 | 
				
			||||||
		</div>
 | 
					 | 
				
			||||||
	</div>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	<div class="card">
 | 
					 | 
				
			||||||
		<div class="card_left card_text">
 | 
					 | 
				
			||||||
			<p>danielryslavy.cz</p>
 | 
					 | 
				
			||||||
			<p>Komerční webová stránka osobního trenéra Daniela Ryšlavého.</p>
 | 
					 | 
				
			||||||
			<p>06/2022</p>
 | 
					 | 
				
			||||||
			<div class="technologies">
 | 
					 | 
				
			||||||
				<span>PHP</span>
 | 
					 | 
				
			||||||
				<span>Linux</span>
 | 
					 | 
				
			||||||
				<span>Nginx</span>
 | 
					 | 
				
			||||||
			</div>
 | 
					 | 
				
			||||||
	</div>
 | 
					 | 
				
			||||||
		<div class="card_right">
 | 
					 | 
				
			||||||
			<img src="https://www.fofrweb.com/images/fitness.png" alt="project screenshot">
 | 
					 | 
				
			||||||
		</div>
 | 
					 | 
				
			||||||
	</div>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	<div class="card">
 | 
					 | 
				
			||||||
		<div class="card_left">
 | 
					 | 
				
			||||||
			<img src="#" alt="project screenshot">
 | 
					 | 
				
			||||||
		</div>
 | 
					 | 
				
			||||||
		<div class="card_right card_text">
 | 
					 | 
				
			||||||
			<p>Fofrmess</p>
 | 
					 | 
				
			||||||
			<p>Chatovací realtime PWA aplikace.</p>
 | 
					 | 
				
			||||||
			<p>02/2022</p>
 | 
					 | 
				
			||||||
			<div class="technologies">
 | 
					 | 
				
			||||||
				<span>Node.js</span>
 | 
					 | 
				
			||||||
				<span>Express.js</span>
 | 
					 | 
				
			||||||
				<span>PostgreSQL</span>
 | 
					 | 
				
			||||||
				<span>Linux</span>
 | 
					 | 
				
			||||||
				<span>Nginx</span>
 | 
					 | 
				
			||||||
			</div>
 | 
					 | 
				
			||||||
		</div>
 | 
					 | 
				
			||||||
	</div>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	<div class="card">
 | 
					 | 
				
			||||||
		<div class="card_left card_text">
 | 
					 | 
				
			||||||
			<p>Fofrtasks</p>
 | 
					 | 
				
			||||||
			<p>Aplikace pro vytváření a správu poznámek a úkolů.</p>
 | 
					 | 
				
			||||||
			<p>10/2021</p>
 | 
					 | 
				
			||||||
			<div class="technologies">
 | 
					 | 
				
			||||||
				<span>Node.js</span>
 | 
					 | 
				
			||||||
				<span>Express.js</span>
 | 
					 | 
				
			||||||
				<span>MongoDB</span>
 | 
					 | 
				
			||||||
				<span>Linux</span>
 | 
					 | 
				
			||||||
				<span>Nginx</span>
 | 
					 | 
				
			||||||
			</div>
 | 
					 | 
				
			||||||
		</div>
 | 
					 | 
				
			||||||
		<div class="card_right">
 | 
					 | 
				
			||||||
			<img src="#" alt="project screenshot">
 | 
					 | 
				
			||||||
		</div>
 | 
					 | 
				
			||||||
	</div>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	<div class="card">
 | 
					 | 
				
			||||||
		<div class="card_left">
 | 
					 | 
				
			||||||
			<img src="#" alt="project screenshot">
 | 
					 | 
				
			||||||
		</div>
 | 
					 | 
				
			||||||
		<div class="card_right card_text">
 | 
					 | 
				
			||||||
			<p>Fofrbazar</p>
 | 
					 | 
				
			||||||
			<p>Internetová bazarová platforma.</p>
 | 
					 | 
				
			||||||
			<p>04/2021</p>
 | 
					 | 
				
			||||||
			<div class="technologies">
 | 
					 | 
				
			||||||
				<span>PHP</span>
 | 
					 | 
				
			||||||
				<span>Laravel</span>
 | 
					 | 
				
			||||||
				<span>MySQL</span>
 | 
					 | 
				
			||||||
				<span>Linux</span>
 | 
					 | 
				
			||||||
				<span>Apache</span>
 | 
					 | 
				
			||||||
			</div>
 | 
					 | 
				
			||||||
		</div>
 | 
					 | 
				
			||||||
	</div>
 | 
					 | 
				
			||||||
</section>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
		Reference in New Issue
	
	Block a user