debugging rsvp-submit.php
This commit is contained in:
1 parent
6c3fdd6b96
commit
ff6b0d1938
27 files changed
+2129
-1122
No files matched your search
@@ -0,0 +1,6 @@
|
|||||||
|
+++
|
||||||
|
title = "Danke Dir!"
|
||||||
|
slug = ""
|
||||||
|
layout = "wedding"
|
||||||
|
+++
|
||||||
|
Vielen Dank für das Absenden des Formulars!
|
||||||
Executable
+6
@@ -0,0 +1,6 @@
|
|||||||
|
+++
|
||||||
|
title = "Thank You!"
|
||||||
|
slug = ""
|
||||||
|
layout = "wedding"
|
||||||
|
+++
|
||||||
|
Thank you for submitting the form!
|
||||||
@@ -0,0 +1,6 @@
|
|||||||
|
+++
|
||||||
|
title = "Спасибо тебе!"
|
||||||
|
slug = ""
|
||||||
|
layout = "wedding"
|
||||||
|
+++
|
||||||
|
Спасибо за отправку формы!
|
||||||
@@ -148,6 +148,9 @@ body {
|
|||||||
|
|
||||||
<form action="/rsvp-submit.php" method="POST">
|
<form action="/rsvp-submit.php" method="POST">
|
||||||
|
|
||||||
|
<!-- Current Hugo language -->
|
||||||
|
<input type="hidden" name="lang" value="{{ .Site.Language.Lang }}">
|
||||||
|
|
||||||
<!-- Personal Information -->
|
<!-- Personal Information -->
|
||||||
|
|
||||||
<h3>{{ i18n "rsvp_personal_information" }}</h3>
|
<h3>{{ i18n "rsvp_personal_information" }}</h3>
|
||||||
|
|||||||
@@ -1,237 +0,0 @@
|
|||||||
{{ define "content" }}
|
|
||||||
|
|
||||||
<style>
|
|
||||||
body {
|
|
||||||
background-color: #fff; /* light bg */
|
|
||||||
color: #222; /* dark text */
|
|
||||||
/* NEW: background image */
|
|
||||||
background-image: url('/images/hochzeit-bg.jpg'); /* path to your image */
|
|
||||||
background-size: cover; /* cover whole container */
|
|
||||||
background-position: center; /* center the image */
|
|
||||||
background-repeat: repeat; /* don't tile */
|
|
||||||
border-radius: 8px; /* optional: match your hero border-radius */
|
|
||||||
}
|
|
||||||
.wedding-container {
|
|
||||||
max-width: 1600px;
|
|
||||||
margin: 0 auto;
|
|
||||||
padding: 2rem;
|
|
||||||
font-family: system-ui, sans-serif;
|
|
||||||
line-height: 1.6;
|
|
||||||
}
|
|
||||||
.hero {
|
|
||||||
text-align: center;
|
|
||||||
margin-bottom: 3rem;
|
|
||||||
}
|
|
||||||
|
|
||||||
.hero img {
|
|
||||||
width: 100%;
|
|
||||||
border-radius: 8px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.hero h1 {
|
|
||||||
font-size: 2.5rem;
|
|
||||||
margin-bottom: 0.5rem;
|
|
||||||
}
|
|
||||||
|
|
||||||
.hero .date {
|
|
||||||
font-size: 1.2rem;
|
|
||||||
color: #666;
|
|
||||||
}
|
|
||||||
|
|
||||||
.section {
|
|
||||||
margin-bottom: 2.5rem;
|
|
||||||
}
|
|
||||||
|
|
||||||
.section h2 {
|
|
||||||
font-size: 1.5rem;
|
|
||||||
margin-bottom: 0.5rem;
|
|
||||||
border-bottom: 1px solid #eee;
|
|
||||||
padding-bottom: 0.3rem;
|
|
||||||
}
|
|
||||||
|
|
||||||
.map iframe {
|
|
||||||
width: 100%;
|
|
||||||
background-color: rgba(255, 255, 255, 0.5); /* subtle white overlay */
|
|
||||||
padding: 1rem;
|
|
||||||
height: 400px;
|
|
||||||
border: 0;
|
|
||||||
border-radius: 8px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.rsvp {
|
|
||||||
background-color: rgba(255, 255, 255, 0.8); /* subtle white overlay */
|
|
||||||
padding: 1rem;
|
|
||||||
border-radius: 8px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.countdown {
|
|
||||||
text-align: center; margin-bottom: 2rem;
|
|
||||||
font-size: 5rem;
|
|
||||||
}
|
|
||||||
|
|
||||||
.footer {
|
|
||||||
text-align: center;
|
|
||||||
margin-top: 3rem;
|
|
||||||
color: #888;
|
|
||||||
font-size: 2rem;
|
|
||||||
padding-top: 1rem;
|
|
||||||
}
|
|
||||||
|
|
||||||
.footer a {
|
|
||||||
color: #0066cc;
|
|
||||||
text-decoration: none;
|
|
||||||
}
|
|
||||||
|
|
||||||
.footer a:hover {
|
|
||||||
text-decoration: underline;
|
|
||||||
}
|
|
||||||
</style>
|
|
||||||
|
|
||||||
<div class="wedding-container">
|
|
||||||
{{ partial "audio.html" . }}
|
|
||||||
|
|
||||||
<!-- Countdown Timer -->
|
|
||||||
<div class="countdown">
|
|
||||||
<h3>{{ i18n "countdown_title" }}</h3>
|
|
||||||
<p id="timer"></p>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<!-- Hero -->
|
|
||||||
<div class="hero">
|
|
||||||
<img src="/images/hochzeit-header.jpg" alt="Wedding Header Image">
|
|
||||||
<h1>{{ .Title }}</h1>
|
|
||||||
<div class="date">
|
|
||||||
{{ .Params.event.date | time | time.Format ":date_long" }}
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<!-- Intro -->
|
|
||||||
{{ if .Content }}
|
|
||||||
<div class="section">
|
|
||||||
{{ .Content }}
|
|
||||||
</div>
|
|
||||||
{{ end }}
|
|
||||||
|
|
||||||
<!-- Event Details -->
|
|
||||||
<div class="section">
|
|
||||||
<h2>📅 {{ i18n "event_title" }}</h2>
|
|
||||||
{{ with .Params.event.date }}
|
|
||||||
<p>
|
|
||||||
<strong>{{ i18n "ceremony" }}:</strong>
|
|
||||||
{{ . | time | time.Format ":date_long" }}{{ with $.Params.event.ceremony_time }}, {{ i18n "ceremony_time" }} {{ . }}
|
|
||||||
{{ end }}
|
|
||||||
</p>
|
|
||||||
{{ end }}
|
|
||||||
{{ with .Params.event.reception_time }}
|
|
||||||
<p><strong>{{ i18n "reception" }}:</strong> {{ . }}</p>
|
|
||||||
{{ end }}
|
|
||||||
{{ with .Params.event.venue }}
|
|
||||||
<p><strong>{{ i18n "location" }}:</strong> {{ . }}</p>
|
|
||||||
{{ end }}
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<!-- Map -->
|
|
||||||
{{ with .Params.event.map_embed }}
|
|
||||||
<div class="section map">
|
|
||||||
<h2>📍 {{ i18n "location" }}</h2>
|
|
||||||
{{ . | safeHTML }}
|
|
||||||
</div>
|
|
||||||
{{ end }}
|
|
||||||
|
|
||||||
<!-- <!-1- RSVP -1-> -->
|
|
||||||
<!-- <div class="section rsvp"> -->
|
|
||||||
<!-- <h2>📝 {{ i18n "rsvp_title" }}</h2> -->
|
|
||||||
<!-- {{ with .Params.rsvp.deadline }} -->
|
|
||||||
<!-- <p>{{ i18n "rsvp_deadline" }} <strong>{{ . }}</strong>.</p> -->
|
|
||||||
<!-- {{ end }} -->
|
|
||||||
<!-- {{ with .Params.rsvp.form }} -->
|
|
||||||
<!-- <p><a href="{{ . }}" target="_blank">{{ i18n "rsvp_form" }}</a></p> -->
|
|
||||||
<!-- {{ end }} -->
|
|
||||||
<!-- </div> -->
|
|
||||||
<!-- RSVP -->
|
|
||||||
<div class="section rsvp">
|
|
||||||
<h2>📝 {{ i18n "rsvp_title" }}</h2>
|
|
||||||
{{ with .Params.rsvp.deadline }}
|
|
||||||
<p>{{ i18n "rsvp_deadline" }} <strong>{{ . }}</strong>.</p>
|
|
||||||
{{ end }}
|
|
||||||
{{ with .Params.rsvp.email }}
|
|
||||||
<p>{{ i18n "rsvp_email" }}: {{ partial "obfuscate_email.html" . }}</p>
|
|
||||||
{{ end }}
|
|
||||||
|
|
||||||
<!-- RSVP Form -->
|
|
||||||
<form action="/rsvp-submit.php" method="POST">
|
|
||||||
|
|
||||||
<label for="first_name">{{ i18n "rsvp_firstname" }}:</label><br>
|
|
||||||
<input type="text" id="first_name" name="first_name" required><br><br>
|
|
||||||
|
|
||||||
<label for="last_name">{{ i18n "rsvp_lastname" }}:</label><br>
|
|
||||||
<input type="text" id="last_name" name="last_name" required><br><br>
|
|
||||||
|
|
||||||
<label>{{ i18n "rsvp_drinks" }}:</label><br>
|
|
||||||
|
|
||||||
<input type="checkbox" id="wine" name="drinks[]" value="Wine">
|
|
||||||
<label for="wine">{{ i18n "rsvp_drinks_wine" }}</label><br>
|
|
||||||
|
|
||||||
<input type="checkbox" id="beer" name="drinks[]" value="Beer">
|
|
||||||
<label for="beer">{{ i18n "rsvp_drinks_beer" }}</label><br>
|
|
||||||
|
|
||||||
<input type="checkbox" id="juice" name="drinks[]" value="Juice">
|
|
||||||
<label for="juice">{{ i18n "rsvp_drinks_juice" }}</label><br><br>
|
|
||||||
|
|
||||||
<label for="allergies">{{ i18n "rsvp_allergies" }}:</label><br>
|
|
||||||
<input type="text" id="allergies" name="allergies"><br><br>
|
|
||||||
|
|
||||||
<!-- optional but recommended: helps prevent spam bots -->
|
|
||||||
<input type="text" name="website" style="display:none">
|
|
||||||
|
|
||||||
<button type="submit">{{ i18n "rsvp_send" }}</button>
|
|
||||||
|
|
||||||
</form>
|
|
||||||
</div>
|
|
||||||
<!-- Extra Info -->
|
|
||||||
{{ with .Params.details }}
|
|
||||||
<div class="section">
|
|
||||||
<h2>ℹ️ {{ i18n "details_title" }}</h2>
|
|
||||||
<p>{{ . }}</p>
|
|
||||||
</div>
|
|
||||||
{{ end }}
|
|
||||||
|
|
||||||
<!-- Footer -->
|
|
||||||
<div class="footer">
|
|
||||||
<p>{{ i18n "footer_message" }}</p>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<script>
|
|
||||||
var labels = {
|
|
||||||
day: "{{ i18n "day" }}",
|
|
||||||
hour: "{{ i18n "hour" }}",
|
|
||||||
minute: "{{ i18n "minute" }}",
|
|
||||||
second: "{{ i18n "second" }}"
|
|
||||||
};
|
|
||||||
|
|
||||||
var countDownDate = new Date("{{ .Params.event.date }} {{ .Params.event.ceremony_time }}").getTime();
|
|
||||||
|
|
||||||
var x = setInterval(function() {
|
|
||||||
var now = new Date().getTime();
|
|
||||||
var distance = countDownDate - now;
|
|
||||||
|
|
||||||
var days = Math.floor(distance / (1000 * 60 * 60 * 24));
|
|
||||||
var hours = Math.floor((distance % (1000 * 60 * 60 * 24)) / (1000 * 60 * 60));
|
|
||||||
var minutes = Math.floor((distance % (1000 * 60 * 60)) / (1000 * 60));
|
|
||||||
var seconds = Math.floor((distance % (1000 * 60)) / 1000);
|
|
||||||
|
|
||||||
document.getElementById("timer").innerHTML =
|
|
||||||
days + " " + labels.day + " " +
|
|
||||||
hours + " " + labels.hour + " " +
|
|
||||||
minutes + " " + labels.minute + " " +
|
|
||||||
seconds + " " + labels.second;
|
|
||||||
|
|
||||||
if (distance < 0) {
|
|
||||||
clearInterval(x);
|
|
||||||
document.getElementById("timer").innerHTML = "{{ i18n "big_day" }}";
|
|
||||||
}
|
|
||||||
}, 1000);
|
|
||||||
</script>
|
|
||||||
{{ end }}
|
|
||||||
@@ -1,380 +0,0 @@
|
|||||||
{{ define "content" }}
|
|
||||||
|
|
||||||
<style>
|
|
||||||
body {
|
|
||||||
background-color: #fff; /* light bg */
|
|
||||||
color: #222; /* dark text */
|
|
||||||
/* NEW: background image */
|
|
||||||
background-image: url('/images/hochzeit-bg.jpg'); /* path to your image */
|
|
||||||
background-size: cover; /* cover whole container */
|
|
||||||
background-position: center; /* center the image */
|
|
||||||
background-repeat: repeat; /* don't tile */
|
|
||||||
border-radius: 8px; /* optional: match your hero border-radius */
|
|
||||||
}
|
|
||||||
.wedding-container {
|
|
||||||
max-width: 1600px;
|
|
||||||
margin: 0 auto;
|
|
||||||
padding: 2rem;
|
|
||||||
font-family: system-ui, sans-serif;
|
|
||||||
line-height: 1.6;
|
|
||||||
}
|
|
||||||
.hero {
|
|
||||||
text-align: center;
|
|
||||||
margin-bottom: 3rem;
|
|
||||||
}
|
|
||||||
|
|
||||||
.hero img {
|
|
||||||
width: 100%;
|
|
||||||
border-radius: 8px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.hero h1 {
|
|
||||||
font-size: 2.5rem;
|
|
||||||
margin-bottom: 0.5rem;
|
|
||||||
}
|
|
||||||
|
|
||||||
.hero .date {
|
|
||||||
font-size: 1.2rem;
|
|
||||||
color: #666;
|
|
||||||
}
|
|
||||||
|
|
||||||
.section {
|
|
||||||
margin-bottom: 2.5rem;
|
|
||||||
}
|
|
||||||
|
|
||||||
.section h2 {
|
|
||||||
font-size: 1.5rem;
|
|
||||||
margin-bottom: 0.5rem;
|
|
||||||
border-bottom: 1px solid #eee;
|
|
||||||
padding-bottom: 0.3rem;
|
|
||||||
}
|
|
||||||
|
|
||||||
.map iframe {
|
|
||||||
width: 100%;
|
|
||||||
background-color: rgba(255, 255, 255, 0.5); /* subtle white overlay */
|
|
||||||
padding: 1rem;
|
|
||||||
height: 400px;
|
|
||||||
border: 0;
|
|
||||||
border-radius: 8px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.rsvp {
|
|
||||||
background-color: rgba(255, 255, 255, 0.8); /* subtle white overlay */
|
|
||||||
padding: 1rem;
|
|
||||||
border-radius: 8px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.countdown {
|
|
||||||
text-align: center; margin-bottom: 2rem;
|
|
||||||
font-size: 5rem;
|
|
||||||
}
|
|
||||||
|
|
||||||
.footer {
|
|
||||||
text-align: center;
|
|
||||||
margin-top: 3rem;
|
|
||||||
color: #888;
|
|
||||||
font-size: 2rem;
|
|
||||||
padding-top: 1rem;
|
|
||||||
}
|
|
||||||
|
|
||||||
.footer a {
|
|
||||||
color: #0066cc;
|
|
||||||
text-decoration: none;
|
|
||||||
}
|
|
||||||
|
|
||||||
.footer a:hover {
|
|
||||||
text-decoration: underline;
|
|
||||||
}
|
|
||||||
</style>
|
|
||||||
|
|
||||||
<div class="wedding-container">
|
|
||||||
{{ partial "audio.html" . }}
|
|
||||||
|
|
||||||
<!-- Countdown Timer -->
|
|
||||||
<div class="countdown">
|
|
||||||
<h3>{{ i18n "countdown_title" }}</h3>
|
|
||||||
<p id="timer"></p>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<!-- Hero -->
|
|
||||||
<div class="hero">
|
|
||||||
<img src="/images/hochzeit-header.jpg" alt="Wedding Header Image">
|
|
||||||
<h1>{{ .Title }}</h1>
|
|
||||||
<div class="date">
|
|
||||||
{{ .Params.event.date | time | time.Format ":date_long" }}
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<!-- Intro -->
|
|
||||||
{{ if .Content }}
|
|
||||||
<div class="section">
|
|
||||||
{{ .Content }}
|
|
||||||
</div>
|
|
||||||
{{ end }}
|
|
||||||
|
|
||||||
<!-- Event Details -->
|
|
||||||
<div class="section">
|
|
||||||
<h2>📅 {{ i18n "event_title" }}</h2>
|
|
||||||
{{ with .Params.event.date }}
|
|
||||||
<p>
|
|
||||||
<strong>{{ i18n "ceremony" }}:</strong>
|
|
||||||
{{ . | time | time.Format ":date_long" }}{{ with $.Params.event.ceremony_time }}, {{ i18n "ceremony_time" }} {{ . }}
|
|
||||||
{{ end }}
|
|
||||||
</p>
|
|
||||||
{{ end }}
|
|
||||||
{{ with .Params.event.reception_time }}
|
|
||||||
<p><strong>{{ i18n "reception" }}:</strong> {{ . }}</p>
|
|
||||||
{{ end }}
|
|
||||||
{{ with .Params.event.venue }}
|
|
||||||
<p><strong>{{ i18n "location" }}:</strong> {{ . }}</p>
|
|
||||||
{{ end }}
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<!-- Map -->
|
|
||||||
{{ with .Params.event.map_embed }}
|
|
||||||
<div class="section map">
|
|
||||||
<h2>📍 {{ i18n "location" }}</h2>
|
|
||||||
{{ . | safeHTML }}
|
|
||||||
</div>
|
|
||||||
{{ end }}
|
|
||||||
|
|
||||||
<form action="/rsvp-submit.php" method="POST">
|
|
||||||
|
|
||||||
<!-- Personal Information -->
|
|
||||||
|
|
||||||
<h3>{{ i18n "rsvp_personal_information" }}</h3>
|
|
||||||
|
|
||||||
<label for="first_name">{{ i18n "rsvp_firstname" }}:</label><br> <input type="text" id="first_name" name="first_name" required><br><br>
|
|
||||||
|
|
||||||
<label for="last_name">{{ i18n "rsvp_lastname" }}:</label><br> <input type="text" id="last_name" name="last_name" required><br><br>
|
|
||||||
|
|
||||||
<label for="email">{{ i18n "rsvp_email_address" }}:</label><br> <input type="email" id="email" name="email" required><br><br>
|
|
||||||
|
|
||||||
<label for="phone">{{ i18n "rsvp_phone" }}:</label><br> <input type="tel" id="phone" name="phone" placeholder="+45 12 34 56 78"><br> <small>{{ i18n "rsvp_phone_whatsapp_hint" }}</small><br><br>
|
|
||||||
|
|
||||||
<!-- Attendance -->
|
|
||||||
|
|
||||||
<h3>{{ i18n "rsvp_attendance" }}</h3>
|
|
||||||
|
|
||||||
<input type="radio" id="attending_yes" name="attendance" value="Yes" required>
|
|
||||||
<label for="attending_yes">{{ i18n "rsvp_attending_yes" }}</label><br>
|
|
||||||
|
|
||||||
<input type="radio" id="attending_no" name="attendance" value="No">
|
|
||||||
<label for="attending_no">{{ i18n "rsvp_attending_no" }}</label><br><br>
|
|
||||||
|
|
||||||
<!-- Drinks -->
|
|
||||||
|
|
||||||
<h3>{{ i18n "rsvp_drinks" }}</h3>
|
|
||||||
|
|
||||||
<input type="checkbox" id="wine" name="drinks[]" value="Wine">
|
|
||||||
<label for="wine">{{ i18n "rsvp_drinks_wine" }}</label><br>
|
|
||||||
|
|
||||||
<input type="checkbox" id="beer" name="drinks[]" value="Beer">
|
|
||||||
<label for="beer">{{ i18n "rsvp_drinks_beer" }}</label><br>
|
|
||||||
|
|
||||||
<input type="checkbox" id="juice" name="drinks[]" value="Juice">
|
|
||||||
<label for="juice">{{ i18n "rsvp_drinks_juice" }}</label><br>
|
|
||||||
|
|
||||||
<input type="checkbox" id="water" name="drinks[]" value="Water">
|
|
||||||
<label for="water">{{ i18n "rsvp_drinks_water" }}</label><br>
|
|
||||||
|
|
||||||
<input type="checkbox" id="cola" name="drinks[]" value="Cola">
|
|
||||||
<label for="cola">{{ i18n "rsvp_drinks_cola" }}</label><br>
|
|
||||||
|
|
||||||
<input type="checkbox" id="fanta" name="drinks[]" value="Fanta">
|
|
||||||
<label for="fanta">{{ i18n "rsvp_drinks_fanta" }}</label><br><br>
|
|
||||||
|
|
||||||
<!-- Diet -->
|
|
||||||
|
|
||||||
<h3>{{ i18n "rsvp_diet" }}</h3>
|
|
||||||
|
|
||||||
<input type="radio" id="diet_meat" name="diet" value="Meat" required>
|
|
||||||
<label for="diet_meat">{{ i18n "rsvp_diet_meat" }}</label><br>
|
|
||||||
|
|
||||||
<input type="radio" id="diet_vegetarian" name="diet" value="Vegetarian">
|
|
||||||
<label for="diet_vegetarian">{{ i18n "rsvp_diet_vegetarian" }}</label><br>
|
|
||||||
|
|
||||||
<input type="radio" id="diet_vegan" name="diet" value="Vegan">
|
|
||||||
<label for="diet_vegan">{{ i18n "rsvp_diet_vegan" }}</label><br><br>
|
|
||||||
|
|
||||||
<!-- Allergies -->
|
|
||||||
|
|
||||||
<h3>{{ i18n "rsvp_allergies" }}</h3>
|
|
||||||
|
|
||||||
<input type="checkbox" id="gluten" name="allergies[]" value="Gluten">
|
|
||||||
<label for="gluten">{{ i18n "rsvp_allergy_gluten" }}</label><br>
|
|
||||||
|
|
||||||
<input type="checkbox" id="lactose" name="allergies[]" value="Lactose">
|
|
||||||
<label for="lactose">{{ i18n "rsvp_allergy_lactose" }}</label><br>
|
|
||||||
|
|
||||||
<input type="checkbox" id="nuts" name="allergies[]" value="Nuts">
|
|
||||||
<label for="nuts">{{ i18n "rsvp_allergy_nuts" }}</label><br>
|
|
||||||
|
|
||||||
<input type="checkbox" id="other_allergy" name="allergies[]" value="Other">
|
|
||||||
<label for="other_allergy">{{ i18n "rsvp_allergy_other" }}</label><br><br>
|
|
||||||
|
|
||||||
<label for="allergies_other">{{ i18n "rsvp_allergy_details" }}:</label><br> <input type="text" id="allergies_other" name="allergies_other"><br><br>
|
|
||||||
|
|
||||||
<!-- Organization -->
|
|
||||||
|
|
||||||
<h3>{{ i18n "rsvp_organization" }}</h3>
|
|
||||||
|
|
||||||
<input type="checkbox" id="parking" name="parking" value="Yes">
|
|
||||||
<label for="parking">{{ i18n "rsvp_parking_needed" }}</label><br>
|
|
||||||
|
|
||||||
<input type="checkbox" id="ride_needed" name="ride_needed" value="Yes">
|
|
||||||
<label for="ride_needed">{{ i18n "rsvp_ride_needed" }}</label><br>
|
|
||||||
|
|
||||||
<input type="checkbox" id="ride_offer" name="ride_offer" value="Yes">
|
|
||||||
<label for="ride_offer">{{ i18n "rsvp_ride_offer" }}</label><br>
|
|
||||||
|
|
||||||
<input type="checkbox" id="hotel" name="hotel" value="Yes">
|
|
||||||
<label for="hotel">{{ i18n "rsvp_hotel" }}</label><br>
|
|
||||||
|
|
||||||
<input type="checkbox" id="hotel_booked" name="hotel_booked" value="Yes">
|
|
||||||
<label for="hotel_booked">{{ i18n "rsvp_hotel_booked" }}</label><br><br>
|
|
||||||
|
|
||||||
<!-- Memories -->
|
|
||||||
|
|
||||||
<h3>{{ i18n "rsvp_memories" }}</h3>
|
|
||||||
|
|
||||||
<input type="checkbox" id="memory_card" name="memory_card" value="Yes">
|
|
||||||
<label for="memory_card">{{ i18n "rsvp_memory_card" }}</label><br>
|
|
||||||
|
|
||||||
<input type="checkbox" id="photo_link" name="photo_link" value="Yes">
|
|
||||||
<label for="photo_link">{{ i18n "rsvp_photo_link" }}</label><br><br>
|
|
||||||
|
|
||||||
<!-- Entertainment -->
|
|
||||||
|
|
||||||
<h3>{{ i18n "rsvp_entertainment" }}</h3>
|
|
||||||
|
|
||||||
<label for="music_request">{{ i18n "rsvp_music_request" }}:</label><br> <input type="text" id="music_request" name="music_request"><br><br>
|
|
||||||
|
|
||||||
<label>{{ i18n "rsvp_contribution" }}:</label><br>
|
|
||||||
|
|
||||||
<input type="checkbox" id="speech" name="contribution[]" value="Speech">
|
|
||||||
<label for="speech">{{ i18n "rsvp_contribution_speech" }}</label><br>
|
|
||||||
|
|
||||||
<input type="checkbox" id="game" name="contribution[]" value="Game">
|
|
||||||
<label for="game">{{ i18n "rsvp_contribution_game" }}</label><br>
|
|
||||||
|
|
||||||
<input type="checkbox" id="surprise" name="contribution[]" value="Surprise">
|
|
||||||
<label for="surprise">{{ i18n "rsvp_contribution_surprise" }}</label><br>
|
|
||||||
|
|
||||||
<input type="checkbox" id="other_contribution" name="contribution[]" value="Other">
|
|
||||||
<label for="other_contribution">{{ i18n "rsvp_contribution_other" }}</label><br><br>
|
|
||||||
|
|
||||||
<!-- Children -->
|
|
||||||
|
|
||||||
<h3>{{ i18n "rsvp_children" }}</h3>
|
|
||||||
|
|
||||||
<input type="radio" id="children_yes" name="children" value="Yes">
|
|
||||||
<label for="children_yes">{{ i18n "yes" }}</label>
|
|
||||||
|
|
||||||
<input type="radio" id="children_no" name="children" value="No" checked>
|
|
||||||
<label for="children_no">{{ i18n "no" }}</label><br><br>
|
|
||||||
|
|
||||||
<div id="children-details" style="display:none;">
|
|
||||||
|
|
||||||
```
|
|
||||||
<label for="children_count">{{ i18n "rsvp_children_count" }}:</label><br>
|
|
||||||
<input type="number" id="children_count" name="children_count" min="1"><br><br>
|
|
||||||
|
|
||||||
<label for="children_ages">{{ i18n "rsvp_children_ages" }}:</label><br>
|
|
||||||
<input type="text"
|
|
||||||
id="children_ages"
|
|
||||||
name="children_ages"
|
|
||||||
placeholder="3, 7, 10"><br><br>
|
|
||||||
```
|
|
||||||
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<!-- Message -->
|
|
||||||
|
|
||||||
<h3>{{ i18n "rsvp_message" }}</h3>
|
|
||||||
|
|
||||||
<textarea id="message"
|
|
||||||
name="message"
|
|
||||||
rows="5"
|
|
||||||
cols="50"></textarea><br><br>
|
|
||||||
|
|
||||||
<!-- Privacy -->
|
|
||||||
|
|
||||||
<h3>{{ i18n "rsvp_privacy" }}</h3>
|
|
||||||
|
|
||||||
<input type="checkbox"
|
|
||||||
id="privacy"
|
|
||||||
name="privacy"
|
|
||||||
value="Yes"
|
|
||||||
required>
|
|
||||||
|
|
||||||
<label for="privacy">
|
|
||||||
{{ i18n "rsvp_privacy_accept" }}
|
|
||||||
</label><br><br>
|
|
||||||
|
|
||||||
<!-- Honeypot -->
|
|
||||||
|
|
||||||
<input type="text" name="website" style="display:none">
|
|
||||||
|
|
||||||
<button type="submit">
|
|
||||||
{{ i18n "rsvp_send" }}
|
|
||||||
</button>
|
|
||||||
|
|
||||||
</form>
|
|
||||||
|
|
||||||
<script>
|
|
||||||
document.querySelectorAll('input[name="children"]').forEach(el => {
|
|
||||||
el.addEventListener('change', function() {
|
|
||||||
document.getElementById('children-details').style.display =
|
|
||||||
this.value === 'Yes' ? 'block' : 'none';
|
|
||||||
});
|
|
||||||
});
|
|
||||||
</script>
|
|
||||||
|
|
||||||
<!-- Extra Info -->
|
|
||||||
{{ with .Params.details }}
|
|
||||||
<div class="section">
|
|
||||||
<h2>ℹ️ {{ i18n "details_title" }}</h2>
|
|
||||||
<p>{{ . }}</p>
|
|
||||||
</div>
|
|
||||||
{{ end }}
|
|
||||||
|
|
||||||
<!-- Footer -->
|
|
||||||
<div class="footer">
|
|
||||||
<p>{{ i18n "footer_message" }}</p>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<script>
|
|
||||||
var labels = {
|
|
||||||
day: "{{ i18n "day" }}",
|
|
||||||
hour: "{{ i18n "hour" }}",
|
|
||||||
minute: "{{ i18n "minute" }}",
|
|
||||||
second: "{{ i18n "second" }}"
|
|
||||||
};
|
|
||||||
|
|
||||||
var countDownDate = new Date("{{ .Params.event.date }} {{ .Params.event.ceremony_time }}").getTime();
|
|
||||||
|
|
||||||
var x = setInterval(function() {
|
|
||||||
var now = new Date().getTime();
|
|
||||||
var distance = countDownDate - now;
|
|
||||||
|
|
||||||
var days = Math.floor(distance / (1000 * 60 * 60 * 24));
|
|
||||||
var hours = Math.floor((distance % (1000 * 60 * 60 * 24)) / (1000 * 60 * 60));
|
|
||||||
var minutes = Math.floor((distance % (1000 * 60 * 60)) / (1000 * 60));
|
|
||||||
var seconds = Math.floor((distance % (1000 * 60)) / 1000);
|
|
||||||
|
|
||||||
document.getElementById("timer").innerHTML =
|
|
||||||
days + " " + labels.day + " " +
|
|
||||||
hours + " " + labels.hour + " " +
|
|
||||||
minutes + " " + labels.minute + " " +
|
|
||||||
seconds + " " + labels.second;
|
|
||||||
|
|
||||||
if (distance < 0) {
|
|
||||||
clearInterval(x);
|
|
||||||
document.getElementById("timer").innerHTML = "{{ i18n "big_day" }}";
|
|
||||||
}
|
|
||||||
}, 1000);
|
|
||||||
</script>
|
|
||||||
{{ end }}
|
|
||||||
@@ -1,233 +0,0 @@
|
|||||||
<!DOCTYPE html>
|
|
||||||
<html lang="en">
|
|
||||||
|
|
||||||
<head>
|
|
||||||
<title>Markin Stefan</title>
|
|
||||||
<meta charset="utf-8">
|
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
|
||||||
<meta name="color-scheme" content="light dark">
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<meta name="author" content="Markin Stefan">
|
|
||||||
<meta name="description" content="Markin Stefan's personal website">
|
|
||||||
<meta name="keywords" content="blog,developer,personal">
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<meta name="twitter:card" content="summary">
|
|
||||||
<meta name="twitter:title" content="404 Page not found">
|
|
||||||
<meta name="twitter:description" content="Markin Stefan's personal website">
|
|
||||||
|
|
||||||
<meta property="og:url" content="http://markinstefan.xyz/404.html">
|
|
||||||
<meta property="og:site_name" content="Markin Stefan">
|
|
||||||
<meta property="og:title" content="404 Page not found">
|
|
||||||
<meta property="og:description" content="Markin Stefan's personal website">
|
|
||||||
<meta property="og:locale" content="en">
|
|
||||||
<meta property="og:type" content="website">
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<link rel="canonical" href="http://markinstefan.xyz/404.html">
|
|
||||||
|
|
||||||
|
|
||||||
<link rel="preload" href="/fonts/fa-brands-400.woff2" as="font" type="font/woff2" crossorigin>
|
|
||||||
<link rel="preload" href="/fonts/fa-regular-400.woff2" as="font" type="font/woff2" crossorigin>
|
|
||||||
<link rel="preload" href="/fonts/fa-solid-900.woff2" as="font" type="font/woff2" crossorigin>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<link rel="stylesheet" href="/css/coder.min.f6b1b35a7b02521b25338f6cf58975f9980a6c12847763fe35a48307758cd1e7.css" integrity="sha256-9rGzWnsCUhslM49s9Yl1+ZgKbBKEd2P+NaSDB3WM0ec=" crossorigin="anonymous" media="screen" />
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<link rel="stylesheet" href="/css/coder-dark.min.ad48f476275974885bdc03d5251e3cdbe1678c54a63ff772376b0ed2adc468dd.css" integrity="sha256-rUj0didZdIhb3APVJR482+FnjFSmP/dyN2sO0q3EaN0=" crossorigin="anonymous" media="screen" />
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<link rel="icon" type="image/svg+xml" href="/images/favicon.svg" sizes="any">
|
|
||||||
<link rel="icon" type="image/png" href="/images/favicon-32x32.png" sizes="32x32">
|
|
||||||
<link rel="icon" type="image/png" href="/images/favicon-16x16.png" sizes="16x16">
|
|
||||||
|
|
||||||
<link rel="apple-touch-icon" href="/images/apple-touch-icon.png">
|
|
||||||
<link rel="apple-touch-icon" sizes="180x180" href="/images/apple-touch-icon.png">
|
|
||||||
|
|
||||||
<link rel="manifest" href="/site.webmanifest">
|
|
||||||
<link rel="mask-icon" href="/images/safari-pinned-tab.svg" color="#5bbad5">
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
</head>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<body class="preload-transitions colorscheme-auto">
|
|
||||||
|
|
||||||
<div class="float-container">
|
|
||||||
<a id="dark-mode-toggle" class="colorscheme-toggle">
|
|
||||||
<i class="fa-solid fa-adjust fa-fw" aria-hidden="true"></i>
|
|
||||||
</a>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
|
|
||||||
<main class="wrapper">
|
|
||||||
<nav class="navigation">
|
|
||||||
<section class="container">
|
|
||||||
|
|
||||||
<a class="navigation-title" href="http://markinstefan.xyz/">
|
|
||||||
Markin Stefan
|
|
||||||
</a>
|
|
||||||
|
|
||||||
|
|
||||||
<input type="checkbox" id="menu-toggle" />
|
|
||||||
<label class="menu-button float-right" for="menu-toggle">
|
|
||||||
<i class="fa-solid fa-bars fa-fw" aria-hidden="true"></i>
|
|
||||||
</label>
|
|
||||||
<ul class="navigation-list">
|
|
||||||
|
|
||||||
|
|
||||||
<li class="navigation-item">
|
|
||||||
<a class="navigation-link " href="/about/">About</a>
|
|
||||||
</li>
|
|
||||||
|
|
||||||
<li class="navigation-item">
|
|
||||||
<a class="navigation-link " href="/projects/">Projects</a>
|
|
||||||
</li>
|
|
||||||
|
|
||||||
<li class="navigation-item">
|
|
||||||
<a class="navigation-link " href="/contact/">Contact me</a>
|
|
||||||
</li>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<li class="navigation-item menu-separator">
|
|
||||||
<span>|</span>
|
|
||||||
</li>
|
|
||||||
|
|
||||||
|
|
||||||
<li class="navigation-item">
|
|
||||||
<a href="/de/404.html">🇩🇪</a>
|
|
||||||
</li>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<li class="navigation-item">
|
|
||||||
<a href="/ru/404.html">🇷🇺</a>
|
|
||||||
</li>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
</ul>
|
|
||||||
|
|
||||||
</section>
|
|
||||||
</nav>
|
|
||||||
|
|
||||||
|
|
||||||
<div class="content">
|
|
||||||
|
|
||||||
<section class="container centered">
|
|
||||||
<div class="error">
|
|
||||||
<h1>404</h1>
|
|
||||||
<h2>Page Not Found</h2>
|
|
||||||
<p>Sorry, this page does not exist.<br />You can head back to the <a href="http://markinstefan.xyz/">homepage</a>.</p>
|
|
||||||
</div>
|
|
||||||
</section>
|
|
||||||
|
|
||||||
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<footer class="footer">
|
|
||||||
<section class="container">
|
|
||||||
©
|
|
||||||
|
|
||||||
2026
|
|
||||||
Markin Stefan
|
|
||||||
·
|
|
||||||
|
|
||||||
Powered by <a href="https://gohugo.io/" target="_blank" rel="noopener">Hugo</a> & <a href="https://github.com/luizdepra/hugo-coder/" target="_blank" rel="noopener">Coder</a>.
|
|
||||||
|
|
||||||
</section>
|
|
||||||
</footer>
|
|
||||||
|
|
||||||
</main>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<script src="/js/coder.min.6ae284be93d2d19dad1f02b0039508d9aab3180a12a06dcc71b0b0ef7825a317.js" integrity="sha256-auKEvpPS0Z2tHwKwA5UI2aqzGAoSoG3McbCw73gloxc="></script>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
</body>
|
|
||||||
|
|
||||||
</html>
|
|
||||||
@@ -1,233 +0,0 @@
|
|||||||
<!DOCTYPE html>
|
|
||||||
<html lang="en">
|
|
||||||
|
|
||||||
<head>
|
|
||||||
<title>Markin Stefan</title>
|
|
||||||
<meta charset="utf-8">
|
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
|
||||||
<meta name="color-scheme" content="light dark">
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<meta name="author" content="Markin Stefan">
|
|
||||||
<meta name="description" content="Markin Stefan's personal website">
|
|
||||||
<meta name="keywords" content="blog,developer,personal">
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<meta name="twitter:card" content="summary">
|
|
||||||
<meta name="twitter:title" content="404 Page not found">
|
|
||||||
<meta name="twitter:description" content="Markin Stefan's personal website">
|
|
||||||
|
|
||||||
<meta property="og:url" content="http://markinstefan.xyz/404.html">
|
|
||||||
<meta property="og:site_name" content="Markin Stefan">
|
|
||||||
<meta property="og:title" content="404 Page not found">
|
|
||||||
<meta property="og:description" content="Markin Stefan's personal website">
|
|
||||||
<meta property="og:locale" content="en">
|
|
||||||
<meta property="og:type" content="website">
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<link rel="canonical" href="http://markinstefan.xyz/404.html">
|
|
||||||
|
|
||||||
|
|
||||||
<link rel="preload" href="/fonts/fa-brands-400.woff2" as="font" type="font/woff2" crossorigin>
|
|
||||||
<link rel="preload" href="/fonts/fa-regular-400.woff2" as="font" type="font/woff2" crossorigin>
|
|
||||||
<link rel="preload" href="/fonts/fa-solid-900.woff2" as="font" type="font/woff2" crossorigin>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<link rel="stylesheet" href="/css/coder.min.f6b1b35a7b02521b25338f6cf58975f9980a6c12847763fe35a48307758cd1e7.css" integrity="sha256-9rGzWnsCUhslM49s9Yl1+ZgKbBKEd2P+NaSDB3WM0ec=" crossorigin="anonymous" media="screen" />
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<link rel="stylesheet" href="/css/coder-dark.min.ad48f476275974885bdc03d5251e3cdbe1678c54a63ff772376b0ed2adc468dd.css" integrity="sha256-rUj0didZdIhb3APVJR482+FnjFSmP/dyN2sO0q3EaN0=" crossorigin="anonymous" media="screen" />
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<link rel="icon" type="image/svg+xml" href="/images/favicon.svg" sizes="any">
|
|
||||||
<link rel="icon" type="image/png" href="/images/favicon-32x32.png" sizes="32x32">
|
|
||||||
<link rel="icon" type="image/png" href="/images/favicon-16x16.png" sizes="16x16">
|
|
||||||
|
|
||||||
<link rel="apple-touch-icon" href="/images/apple-touch-icon.png">
|
|
||||||
<link rel="apple-touch-icon" sizes="180x180" href="/images/apple-touch-icon.png">
|
|
||||||
|
|
||||||
<link rel="manifest" href="/site.webmanifest">
|
|
||||||
<link rel="mask-icon" href="/images/safari-pinned-tab.svg" color="#5bbad5">
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
</head>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<body class="preload-transitions colorscheme-auto">
|
|
||||||
|
|
||||||
<div class="float-container">
|
|
||||||
<a id="dark-mode-toggle" class="colorscheme-toggle">
|
|
||||||
<i class="fa-solid fa-adjust fa-fw" aria-hidden="true"></i>
|
|
||||||
</a>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
|
|
||||||
<main class="wrapper">
|
|
||||||
<nav class="navigation">
|
|
||||||
<section class="container">
|
|
||||||
|
|
||||||
<a class="navigation-title" href="http://markinstefan.xyz/">
|
|
||||||
Markin Stefan
|
|
||||||
</a>
|
|
||||||
|
|
||||||
|
|
||||||
<input type="checkbox" id="menu-toggle" />
|
|
||||||
<label class="menu-button float-right" for="menu-toggle">
|
|
||||||
<i class="fa-solid fa-bars fa-fw" aria-hidden="true"></i>
|
|
||||||
</label>
|
|
||||||
<ul class="navigation-list">
|
|
||||||
|
|
||||||
|
|
||||||
<li class="navigation-item">
|
|
||||||
<a class="navigation-link " href="/about/">About</a>
|
|
||||||
</li>
|
|
||||||
|
|
||||||
<li class="navigation-item">
|
|
||||||
<a class="navigation-link " href="/projects/">Projects</a>
|
|
||||||
</li>
|
|
||||||
|
|
||||||
<li class="navigation-item">
|
|
||||||
<a class="navigation-link " href="/contact/">Contact me</a>
|
|
||||||
</li>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<li class="navigation-item menu-separator">
|
|
||||||
<span>|</span>
|
|
||||||
</li>
|
|
||||||
|
|
||||||
|
|
||||||
<li class="navigation-item">
|
|
||||||
<a href="/ru/404.html">🇷🇺</a>
|
|
||||||
</li>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<li class="navigation-item">
|
|
||||||
<a href="/de/404.html">🇩🇪</a>
|
|
||||||
</li>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
</ul>
|
|
||||||
|
|
||||||
</section>
|
|
||||||
</nav>
|
|
||||||
|
|
||||||
|
|
||||||
<div class="content">
|
|
||||||
|
|
||||||
<section class="container centered">
|
|
||||||
<div class="error">
|
|
||||||
<h1>404</h1>
|
|
||||||
<h2>Page Not Found</h2>
|
|
||||||
<p>Sorry, this page does not exist.<br />You can head back to the <a href="http://markinstefan.xyz/">homepage</a>.</p>
|
|
||||||
</div>
|
|
||||||
</section>
|
|
||||||
|
|
||||||
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<footer class="footer">
|
|
||||||
<section class="container">
|
|
||||||
©
|
|
||||||
|
|
||||||
2026
|
|
||||||
Markin Stefan
|
|
||||||
·
|
|
||||||
|
|
||||||
Powered by <a href="https://gohugo.io/" target="_blank" rel="noopener">Hugo</a> & <a href="https://github.com/luizdepra/hugo-coder/" target="_blank" rel="noopener">Coder</a>.
|
|
||||||
|
|
||||||
</section>
|
|
||||||
</footer>
|
|
||||||
|
|
||||||
</main>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<script src="/js/coder.min.6ae284be93d2d19dad1f02b0039508d9aab3180a12a06dcc71b0b0ef7825a317.js" integrity="sha256-auKEvpPS0Z2tHwKwA5UI2aqzGAoSoG3McbCw73gloxc="></script>
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
</body>
|
|
||||||
|
|
||||||
</html>
|
|
||||||
@@ -137,14 +137,14 @@
|
|||||||
|
|
||||||
|
|
||||||
<li class="navigation-item">
|
<li class="navigation-item">
|
||||||
<a href="/ru/authors/">🇷🇺</a>
|
<a href="/de/authors/">🇩🇪</a>
|
||||||
</li>
|
</li>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<li class="navigation-item">
|
<li class="navigation-item">
|
||||||
<a href="/de/authors/">🇩🇪</a>
|
<a href="/ru/authors/">🇷🇺</a>
|
||||||
</li>
|
</li>
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -397,6 +397,9 @@ btn.addEventListener("click", async () => {
|
|||||||
<form action="/rsvp-submit.php" method="POST">
|
<form action="/rsvp-submit.php" method="POST">
|
||||||
|
|
||||||
|
|
||||||
|
<input type="hidden" name="lang" value="de">
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<h3>Persönliche Informationen</h3>
|
<h3>Persönliche Informationen</h3>
|
||||||
|
|
||||||
|
|||||||
@@ -11,6 +11,13 @@
|
|||||||
|
|
||||||
|
|
||||||
<atom:link href="http://markinstefan.xyz/de/index.xml" rel="self" type="application/rss+xml" />
|
<atom:link href="http://markinstefan.xyz/de/index.xml" rel="self" type="application/rss+xml" />
|
||||||
|
<item>
|
||||||
|
<title>Danke Dir!</title>
|
||||||
|
<link>http://markinstefan.xyz/de/thank-you/</link>
|
||||||
|
<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
|
||||||
|
<guid>http://markinstefan.xyz/de/thank-you/</guid>
|
||||||
|
<description><p>Vielen Dank für das Absenden des Formulars!</p></description>
|
||||||
|
</item>
|
||||||
<item>
|
<item>
|
||||||
<title>Hochzeit von Stefan und Mariia</title>
|
<title>Hochzeit von Stefan und Mariia</title>
|
||||||
<link>http://markinstefan.xyz/de/hochzeit/</link>
|
<link>http://markinstefan.xyz/de/hochzeit/</link>
|
||||||
|
|||||||
@@ -35,6 +35,23 @@
|
|||||||
hreflang="ru"
|
hreflang="ru"
|
||||||
href="http://markinstefan.xyz/ru/categories/"
|
href="http://markinstefan.xyz/ru/categories/"
|
||||||
/>
|
/>
|
||||||
|
</url><url>
|
||||||
|
<loc>http://markinstefan.xyz/de/thank-you/</loc>
|
||||||
|
<xhtml:link
|
||||||
|
rel="alternate"
|
||||||
|
hreflang="de"
|
||||||
|
href="http://markinstefan.xyz/de/thank-you/"
|
||||||
|
/>
|
||||||
|
<xhtml:link
|
||||||
|
rel="alternate"
|
||||||
|
hreflang="en"
|
||||||
|
href="http://markinstefan.xyz/thank-you/"
|
||||||
|
/>
|
||||||
|
<xhtml:link
|
||||||
|
rel="alternate"
|
||||||
|
hreflang="ru"
|
||||||
|
href="http://markinstefan.xyz/ru/thank-you/"
|
||||||
|
/>
|
||||||
</url><url>
|
</url><url>
|
||||||
<loc>http://markinstefan.xyz/de/hochzeit/</loc>
|
<loc>http://markinstefan.xyz/de/hochzeit/</loc>
|
||||||
<xhtml:link
|
<xhtml:link
|
||||||
|
|||||||
@@ -0,0 +1,656 @@
|
|||||||
|
<!DOCTYPE html>
|
||||||
|
<html lang="de">
|
||||||
|
|
||||||
|
<head>
|
||||||
|
<title>Markin Stefan</title>
|
||||||
|
<meta charset="utf-8">
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||||
|
<meta name="color-scheme" content="light dark">
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<meta name="author" content="Markin Stefan">
|
||||||
|
<meta name="description" content="Vielen Dank für das Absenden des Formulars!">
|
||||||
|
<meta name="keywords" content="blog,desenvolvedor,pessoal">
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<meta name="twitter:card" content="summary">
|
||||||
|
<meta name="twitter:title" content="Danke Dir!">
|
||||||
|
<meta name="twitter:description" content="Vielen Dank für das Absenden des Formulars!">
|
||||||
|
|
||||||
|
<meta property="og:url" content="http://markinstefan.xyz/de/thank-you/">
|
||||||
|
<meta property="og:site_name" content="Markin Stefan">
|
||||||
|
<meta property="og:title" content="Danke Dir!">
|
||||||
|
<meta property="og:description" content="Vielen Dank für das Absenden des Formulars!">
|
||||||
|
<meta property="og:locale" content="de">
|
||||||
|
<meta property="og:type" content="article">
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<link rel="canonical" href="http://markinstefan.xyz/de/thank-you/">
|
||||||
|
|
||||||
|
|
||||||
|
<link rel="preload" href="/fonts/fa-brands-400.woff2" as="font" type="font/woff2" crossorigin>
|
||||||
|
<link rel="preload" href="/fonts/fa-regular-400.woff2" as="font" type="font/woff2" crossorigin>
|
||||||
|
<link rel="preload" href="/fonts/fa-solid-900.woff2" as="font" type="font/woff2" crossorigin>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<link rel="stylesheet" href="/css/coder.min.f6b1b35a7b02521b25338f6cf58975f9980a6c12847763fe35a48307758cd1e7.css" integrity="sha256-9rGzWnsCUhslM49s9Yl1+ZgKbBKEd2P+NaSDB3WM0ec=" crossorigin="anonymous" media="screen" />
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<link rel="stylesheet" href="/css/coder-dark.min.ad48f476275974885bdc03d5251e3cdbe1678c54a63ff772376b0ed2adc468dd.css" integrity="sha256-rUj0didZdIhb3APVJR482+FnjFSmP/dyN2sO0q3EaN0=" crossorigin="anonymous" media="screen" />
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<link rel="icon" type="image/svg+xml" href="/images/favicon.svg" sizes="any">
|
||||||
|
<link rel="icon" type="image/png" href="/images/favicon-32x32.png" sizes="32x32">
|
||||||
|
<link rel="icon" type="image/png" href="/images/favicon-16x16.png" sizes="16x16">
|
||||||
|
|
||||||
|
<link rel="apple-touch-icon" href="/images/apple-touch-icon.png">
|
||||||
|
<link rel="apple-touch-icon" sizes="180x180" href="/images/apple-touch-icon.png">
|
||||||
|
|
||||||
|
<link rel="manifest" href="/site.webmanifest">
|
||||||
|
<link rel="mask-icon" href="/images/safari-pinned-tab.svg" color="#5bbad5">
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
</head>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<body class="preload-transitions colorscheme-auto">
|
||||||
|
|
||||||
|
<div class="float-container">
|
||||||
|
<a id="dark-mode-toggle" class="colorscheme-toggle">
|
||||||
|
<i class="fa-solid fa-adjust fa-fw" aria-hidden="true"></i>
|
||||||
|
</a>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
<main class="wrapper">
|
||||||
|
<nav class="navigation">
|
||||||
|
<section class="container">
|
||||||
|
|
||||||
|
<a class="navigation-title" href="http://markinstefan.xyz/de/">
|
||||||
|
Markin Stefan
|
||||||
|
</a>
|
||||||
|
|
||||||
|
|
||||||
|
<input type="checkbox" id="menu-toggle" />
|
||||||
|
<label class="menu-button float-right" for="menu-toggle">
|
||||||
|
<i class="fa-solid fa-bars fa-fw" aria-hidden="true"></i>
|
||||||
|
</label>
|
||||||
|
<ul class="navigation-list">
|
||||||
|
|
||||||
|
|
||||||
|
<li class="navigation-item">
|
||||||
|
<a class="navigation-link " href="/de/about/">Über mich</a>
|
||||||
|
</li>
|
||||||
|
|
||||||
|
<li class="navigation-item">
|
||||||
|
<a class="navigation-link " href="/de/projects/">Projekte</a>
|
||||||
|
</li>
|
||||||
|
|
||||||
|
<li class="navigation-item">
|
||||||
|
<a class="navigation-link " href="/de/contact/">Kontakt</a>
|
||||||
|
</li>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<li class="navigation-item menu-separator">
|
||||||
|
<span>|</span>
|
||||||
|
</li>
|
||||||
|
|
||||||
|
|
||||||
|
<li class="navigation-item">
|
||||||
|
<a href="/thank-you/">🇬🇧</a>
|
||||||
|
</li>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<li class="navigation-item">
|
||||||
|
<a href="/ru/thank-you/">🇷🇺</a>
|
||||||
|
</li>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
</section>
|
||||||
|
</nav>
|
||||||
|
|
||||||
|
|
||||||
|
<div class="content">
|
||||||
|
|
||||||
|
|
||||||
|
<style>
|
||||||
|
body {
|
||||||
|
background-color: #fff;
|
||||||
|
color: #222;
|
||||||
|
|
||||||
|
background-image: url('/images/hochzeit-bg.jpg');
|
||||||
|
background-size: cover;
|
||||||
|
background-position: center;
|
||||||
|
background-repeat: repeat;
|
||||||
|
border-radius: 8px;
|
||||||
|
}
|
||||||
|
.wedding-container {
|
||||||
|
max-width: 1600px;
|
||||||
|
margin: 0 auto;
|
||||||
|
padding: 2rem;
|
||||||
|
font-family: system-ui, sans-serif;
|
||||||
|
line-height: 1.6;
|
||||||
|
}
|
||||||
|
.hero {
|
||||||
|
text-align: center;
|
||||||
|
margin-bottom: 3rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
.hero img {
|
||||||
|
width: 100%;
|
||||||
|
border-radius: 8px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.hero h1 {
|
||||||
|
font-size: 2.5rem;
|
||||||
|
margin-bottom: 0.5rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
.hero .date {
|
||||||
|
font-size: 1.2rem;
|
||||||
|
color: #666;
|
||||||
|
}
|
||||||
|
|
||||||
|
.section {
|
||||||
|
margin-bottom: 2.5rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
.section h2 {
|
||||||
|
font-size: 1.5rem;
|
||||||
|
margin-bottom: 0.5rem;
|
||||||
|
border-bottom: 1px solid #eee;
|
||||||
|
padding-bottom: 0.3rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
.map iframe {
|
||||||
|
width: 100%;
|
||||||
|
background-color: rgba(255, 255, 255, 0.5);
|
||||||
|
padding: 1rem;
|
||||||
|
height: 400px;
|
||||||
|
border: 0;
|
||||||
|
border-radius: 8px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.rsvp {
|
||||||
|
background-color: rgba(255, 255, 255, 0.8);
|
||||||
|
padding: 1rem;
|
||||||
|
border-radius: 8px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.countdown {
|
||||||
|
text-align: center; margin-bottom: 2rem;
|
||||||
|
font-size: 5rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
.footer {
|
||||||
|
text-align: center;
|
||||||
|
margin-top: 3rem;
|
||||||
|
color: #888;
|
||||||
|
font-size: 2rem;
|
||||||
|
padding-top: 1rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
.footer a {
|
||||||
|
color: #0066cc;
|
||||||
|
text-decoration: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
.footer a:hover {
|
||||||
|
text-decoration: underline;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
|
||||||
|
<div class="wedding-container">
|
||||||
|
<style>
|
||||||
|
.music-fab {
|
||||||
|
position: fixed;
|
||||||
|
bottom: 20px;
|
||||||
|
left: 20px;
|
||||||
|
z-index: 9999;
|
||||||
|
}
|
||||||
|
|
||||||
|
.fab-button {
|
||||||
|
width: 52px;
|
||||||
|
height: 52px;
|
||||||
|
border-radius: 50%;
|
||||||
|
border: none;
|
||||||
|
background: white;
|
||||||
|
box-shadow: 0 6px 18px rgba(0,0,0,0.2);
|
||||||
|
font-size: 20px;
|
||||||
|
cursor: pointer;
|
||||||
|
transition: transform 0.15s ease;
|
||||||
|
}
|
||||||
|
|
||||||
|
.fab-button:active {
|
||||||
|
transform: scale(0.95);
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
|
||||||
|
<div class="music-fab">
|
||||||
|
<button id="music-btn" class="fab-button">⏸️</button>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<audio id="bg-music" autoplay loop>
|
||||||
|
<source src="/audio/canon-in-d.mp3" type="audio/mpeg">
|
||||||
|
</audio>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
const btn = document.getElementById("music-btn");
|
||||||
|
const audio = document.getElementById("bg-music");
|
||||||
|
|
||||||
|
audio.volume = 0.3;
|
||||||
|
|
||||||
|
|
||||||
|
let isPlaying = true;
|
||||||
|
btn.textContent = "⏸️";
|
||||||
|
|
||||||
|
|
||||||
|
audio.play().catch(() => {
|
||||||
|
isPlaying = false;
|
||||||
|
btn.textContent = "▶️";
|
||||||
|
});
|
||||||
|
|
||||||
|
btn.addEventListener("click", async () => {
|
||||||
|
if (!isPlaying) {
|
||||||
|
try {
|
||||||
|
await audio.play();
|
||||||
|
isPlaying = true;
|
||||||
|
btn.textContent = "⏸️";
|
||||||
|
} catch (e) {
|
||||||
|
console.log("Playback blocked:", e);
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
audio.pause();
|
||||||
|
isPlaying = false;
|
||||||
|
btn.textContent = "▶️";
|
||||||
|
}
|
||||||
|
});
|
||||||
|
</script>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<div class="countdown">
|
||||||
|
<h3>Countdown zu unserer Hochzeit:</h3>
|
||||||
|
<p id="timer"></p>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
<div class="hero">
|
||||||
|
<img src="/images/hochzeit-header.jpg" alt="Wedding Header Image">
|
||||||
|
<h1>Danke Dir!</h1>
|
||||||
|
<div class="date">
|
||||||
|
1. Januar 1
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<div class="section">
|
||||||
|
<p>Vielen Dank für das Absenden des Formulars!</p>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<div class="section">
|
||||||
|
<h2>📅 Veranstaltung</h2>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<h2>📝 RSVP</h2>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<form action="/rsvp-submit.php" method="POST">
|
||||||
|
|
||||||
|
|
||||||
|
<input type="hidden" name="lang" value="de">
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<h3>Persönliche Informationen</h3>
|
||||||
|
|
||||||
|
<label for="first_name">Vorname:</label><br> <input type="text" id="first_name" name="first_name" required><br><br>
|
||||||
|
|
||||||
|
<label for="last_name">Nachname:</label><br> <input type="text" id="last_name" name="last_name" required><br><br>
|
||||||
|
|
||||||
|
<label for="email">E-Mail-Adresse:</label><br> <input type="email" id="email" name="email" required><br><br>
|
||||||
|
|
||||||
|
<label for="phone">Telefonnummer:</label><br> <input type="tel" id="phone" name="phone" placeholder="+45 12 34 56 78"><br> <small>Wird für die WhatsApp-Gruppe und Hochzeitsinformationen verwendet</small><br><br>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<h3>Teilnahme</h3>
|
||||||
|
|
||||||
|
<input type="radio" id="attending_yes" name="attendance" value="Yes" required>
|
||||||
|
<label for="attending_yes">Ich nehme teil</label><br>
|
||||||
|
|
||||||
|
<input type="radio" id="attending_no" name="attendance" value="No">
|
||||||
|
<label for="attending_no">Ich kann leider nicht teilnehmen</label><br><br>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<h3>Getränkevorlieben</h3>
|
||||||
|
|
||||||
|
<input type="checkbox" id="wine" name="drinks[]" value="Wine">
|
||||||
|
<label for="wine">Wein</label><br>
|
||||||
|
|
||||||
|
<input type="checkbox" id="beer" name="drinks[]" value="Beer">
|
||||||
|
<label for="beer">Bier</label><br>
|
||||||
|
|
||||||
|
<input type="checkbox" id="juice" name="drinks[]" value="Juice">
|
||||||
|
<label for="juice">Saft</label><br>
|
||||||
|
|
||||||
|
<input type="checkbox" id="water" name="drinks[]" value="Water">
|
||||||
|
<label for="water">Wasser</label><br>
|
||||||
|
|
||||||
|
<input type="checkbox" id="cola" name="drinks[]" value="Cola">
|
||||||
|
<label for="cola">Cola</label><br>
|
||||||
|
|
||||||
|
<input type="checkbox" id="fanta" name="drinks[]" value="Fanta">
|
||||||
|
<label for="fanta">Fanta</label><br><br>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<h3>Ernährungsweise</h3>
|
||||||
|
|
||||||
|
<input type="radio" id="diet_meat" name="diet" value="Meat" required>
|
||||||
|
<label for="diet_meat">Fleisch</label><br>
|
||||||
|
|
||||||
|
<input type="radio" id="diet_vegetarian" name="diet" value="Vegetarian">
|
||||||
|
<label for="diet_vegetarian">Vegetarisch</label><br>
|
||||||
|
|
||||||
|
<input type="radio" id="diet_vegan" name="diet" value="Vegan">
|
||||||
|
<label for="diet_vegan">Vegan</label><br><br>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<h3>Allergisch auf</h3>
|
||||||
|
|
||||||
|
<input type="checkbox" id="gluten" name="allergies[]" value="Gluten">
|
||||||
|
<label for="gluten">Gluten</label><br>
|
||||||
|
|
||||||
|
<input type="checkbox" id="lactose" name="allergies[]" value="Lactose">
|
||||||
|
<label for="lactose">Laktose</label><br>
|
||||||
|
|
||||||
|
<input type="checkbox" id="nuts" name="allergies[]" value="Nuts">
|
||||||
|
<label for="nuts">Nüsse</label><br>
|
||||||
|
|
||||||
|
<input type="checkbox" id="other_allergy" name="allergies[]" value="Other">
|
||||||
|
<label for="other_allergy">Sonstiges</label><br><br>
|
||||||
|
|
||||||
|
<label for="allergies_other">Weitere Details zu Allergien:</label><br> <input type="text" id="allergies_other" name="allergies_other"><br><br>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<h3>Organisation</h3>
|
||||||
|
|
||||||
|
<input type="checkbox" id="parking" name="parking" value="Yes">
|
||||||
|
<label for="parking">Ich benötige einen Parkplatz</label><br>
|
||||||
|
|
||||||
|
<input type="checkbox" id="ride_needed" name="ride_needed" value="Yes">
|
||||||
|
<label for="ride_needed">Ich benötige eine Mitfahrgelegenheit</label><br>
|
||||||
|
|
||||||
|
<input type="checkbox" id="ride_offer" name="ride_offer" value="Yes">
|
||||||
|
<label for="ride_offer">Ich kann eine Mitfahrgelegenheit anbieten</label><br>
|
||||||
|
|
||||||
|
<input type="checkbox" id="hotel" name="hotel" value="Yes">
|
||||||
|
<label for="hotel">Ich übernachte im Hotel</label><br>
|
||||||
|
|
||||||
|
<input type="checkbox" id="hotel_booked" name="hotel_booked" value="Yes">
|
||||||
|
<label for="hotel_booked">Mein Hotel ist bereits gebucht</label><br><br>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<h3>Erinnerungen & Extras</h3>
|
||||||
|
|
||||||
|
<input type="checkbox" id="memory_card" name="memory_card" value="Yes">
|
||||||
|
<label for="memory_card">Ich möchte eine Grußkarte zur Erinnerung erhalten</label><br>
|
||||||
|
|
||||||
|
<input type="checkbox" id="photo_link" name="photo_link" value="Yes">
|
||||||
|
<label for="photo_link">Ich möchte den Link zu den Hochzeitsfotos erhalten</label><br><br>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<h3>Unterhaltung</h3>
|
||||||
|
|
||||||
|
<label for="music_request">Musikwunsch:</label><br> <input type="text" id="music_request" name="music_request"><br><br>
|
||||||
|
|
||||||
|
<label>Ich möchte etwas beitragen:</label><br>
|
||||||
|
|
||||||
|
<input type="checkbox" id="speech" name="contribution[]" value="Speech">
|
||||||
|
<label for="speech">Rede</label><br>
|
||||||
|
|
||||||
|
<input type="checkbox" id="game" name="contribution[]" value="Game">
|
||||||
|
<label for="game">Spiel</label><br>
|
||||||
|
|
||||||
|
<input type="checkbox" id="surprise" name="contribution[]" value="Surprise">
|
||||||
|
<label for="surprise">Überraschung</label><br>
|
||||||
|
|
||||||
|
<input type="checkbox" id="other_contribution" name="contribution[]" value="Other">
|
||||||
|
<label for="other_contribution">Sonstiges</label><br><br>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<h3>Kinder</h3>
|
||||||
|
|
||||||
|
<input type="radio" id="children_yes" name="children" value="Yes">
|
||||||
|
<label for="children_yes">Ja</label>
|
||||||
|
|
||||||
|
<input type="radio" id="children_no" name="children" value="No" checked>
|
||||||
|
<label for="children_no">Nein</label><br><br>
|
||||||
|
|
||||||
|
<div id="children-details" style="display:none;">
|
||||||
|
|
||||||
|
```
|
||||||
|
<label for="children_count">Anzahl der Kinder:</label><br>
|
||||||
|
<input type="number" id="children_count" name="children_count" min="1"><br><br>
|
||||||
|
|
||||||
|
<label for="children_ages">Alter der Kinder:</label><br>
|
||||||
|
<input type="text"
|
||||||
|
id="children_ages"
|
||||||
|
name="children_ages"
|
||||||
|
placeholder="3, 7, 10"><br><br>
|
||||||
|
```
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<h3>Nachricht an das Brautpaar</h3>
|
||||||
|
|
||||||
|
<textarea id="message"
|
||||||
|
name="message"
|
||||||
|
rows="5"
|
||||||
|
cols="50"></textarea><br><br>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<h3>Datenschutz</h3>
|
||||||
|
|
||||||
|
<input type="checkbox"
|
||||||
|
id="privacy"
|
||||||
|
name="privacy"
|
||||||
|
value="Yes"
|
||||||
|
required>
|
||||||
|
|
||||||
|
<label for="privacy">
|
||||||
|
Ich stimme zu, dass meine Angaben für die Hochzeitsplanung gespeichert und verarbeitet werden dürfen.
|
||||||
|
</label><br><br>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<input type="text" name="website" style="display:none">
|
||||||
|
|
||||||
|
<button type="submit">
|
||||||
|
Abschicken
|
||||||
|
</button>
|
||||||
|
|
||||||
|
</form>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
document.querySelectorAll('input[name="children"]').forEach(el => {
|
||||||
|
el.addEventListener('change', function() {
|
||||||
|
document.getElementById('children-details').style.display =
|
||||||
|
this.value === 'Yes' ? 'block' : 'none';
|
||||||
|
});
|
||||||
|
});
|
||||||
|
</script>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<div class="footer">
|
||||||
|
<p>Wir freuen uns darauf, mit euch zu feiern ❤️</p>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
var labels = {
|
||||||
|
day: "T",
|
||||||
|
hour: "Std",
|
||||||
|
minute: "min",
|
||||||
|
second: "s"
|
||||||
|
};
|
||||||
|
|
||||||
|
var countDownDate = new Date(" ").getTime();
|
||||||
|
|
||||||
|
var x = setInterval(function() {
|
||||||
|
var now = new Date().getTime();
|
||||||
|
var distance = countDownDate - now;
|
||||||
|
|
||||||
|
var days = Math.floor(distance / (1000 * 60 * 60 * 24));
|
||||||
|
var hours = Math.floor((distance % (1000 * 60 * 60 * 24)) / (1000 * 60 * 60));
|
||||||
|
var minutes = Math.floor((distance % (1000 * 60 * 60)) / (1000 * 60));
|
||||||
|
var seconds = Math.floor((distance % (1000 * 60)) / 1000);
|
||||||
|
|
||||||
|
document.getElementById("timer").innerHTML =
|
||||||
|
days + " " + labels.day + " " +
|
||||||
|
hours + " " + labels.hour + " " +
|
||||||
|
minutes + " " + labels.minute + " " +
|
||||||
|
seconds + " " + labels.second;
|
||||||
|
|
||||||
|
if (distance < 0) {
|
||||||
|
clearInterval(x);
|
||||||
|
document.getElementById("timer").innerHTML = "Der große Tag ist da!";
|
||||||
|
}
|
||||||
|
}, 1000);
|
||||||
|
</script>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<footer class="footer">
|
||||||
|
<section class="container">
|
||||||
|
©
|
||||||
|
|
||||||
|
2026
|
||||||
|
Markin Stefan
|
||||||
|
·
|
||||||
|
|
||||||
|
Gestaltet mit <a href="https://gohugo.io/" target="_blank" rel="noopener">Hugo</a> & <a href="https://github.com/luizdepra/hugo-coder/" target="_blank" rel="noopener">Coder</a>.
|
||||||
|
|
||||||
|
</section>
|
||||||
|
</footer>
|
||||||
|
|
||||||
|
</main>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<script src="/js/coder.min.6ae284be93d2d19dad1f02b0039508d9aab3180a12a06dcc71b0b0ef7825a317.js" integrity="sha256-auKEvpPS0Z2tHwKwA5UI2aqzGAoSoG3McbCw73gloxc="></script>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
</body>
|
||||||
|
|
||||||
|
</html>
|
||||||
+36
-19
@@ -3,6 +3,11 @@
|
|||||||
xmlns:xhtml="http://www.w3.org/1999/xhtml">
|
xmlns:xhtml="http://www.w3.org/1999/xhtml">
|
||||||
<url>
|
<url>
|
||||||
<loc>http://markinstefan.xyz/authors/</loc>
|
<loc>http://markinstefan.xyz/authors/</loc>
|
||||||
|
<xhtml:link
|
||||||
|
rel="alternate"
|
||||||
|
hreflang="de"
|
||||||
|
href="http://markinstefan.xyz/de/authors/"
|
||||||
|
/>
|
||||||
<xhtml:link
|
<xhtml:link
|
||||||
rel="alternate"
|
rel="alternate"
|
||||||
hreflang="en"
|
hreflang="en"
|
||||||
@@ -13,11 +18,6 @@
|
|||||||
hreflang="ru"
|
hreflang="ru"
|
||||||
href="http://markinstefan.xyz/ru/authors/"
|
href="http://markinstefan.xyz/ru/authors/"
|
||||||
/>
|
/>
|
||||||
<xhtml:link
|
|
||||||
rel="alternate"
|
|
||||||
hreflang="de"
|
|
||||||
href="http://markinstefan.xyz/de/authors/"
|
|
||||||
/>
|
|
||||||
</url><url>
|
</url><url>
|
||||||
<loc>http://markinstefan.xyz/categories/</loc>
|
<loc>http://markinstefan.xyz/categories/</loc>
|
||||||
<xhtml:link
|
<xhtml:link
|
||||||
@@ -56,13 +56,13 @@
|
|||||||
<loc>http://markinstefan.xyz/</loc>
|
<loc>http://markinstefan.xyz/</loc>
|
||||||
<xhtml:link
|
<xhtml:link
|
||||||
rel="alternate"
|
rel="alternate"
|
||||||
hreflang="en"
|
hreflang="de"
|
||||||
href="http://markinstefan.xyz/"
|
href="http://markinstefan.xyz/de/"
|
||||||
/>
|
/>
|
||||||
<xhtml:link
|
<xhtml:link
|
||||||
rel="alternate"
|
rel="alternate"
|
||||||
hreflang="de"
|
hreflang="en"
|
||||||
href="http://markinstefan.xyz/de/"
|
href="http://markinstefan.xyz/"
|
||||||
/>
|
/>
|
||||||
<xhtml:link
|
<xhtml:link
|
||||||
rel="alternate"
|
rel="alternate"
|
||||||
@@ -122,6 +122,11 @@
|
|||||||
/>
|
/>
|
||||||
</url><url>
|
</url><url>
|
||||||
<loc>http://markinstefan.xyz/series/</loc>
|
<loc>http://markinstefan.xyz/series/</loc>
|
||||||
|
<xhtml:link
|
||||||
|
rel="alternate"
|
||||||
|
hreflang="de"
|
||||||
|
href="http://markinstefan.xyz/de/series/"
|
||||||
|
/>
|
||||||
<xhtml:link
|
<xhtml:link
|
||||||
rel="alternate"
|
rel="alternate"
|
||||||
hreflang="en"
|
hreflang="en"
|
||||||
@@ -132,18 +137,8 @@
|
|||||||
hreflang="ru"
|
hreflang="ru"
|
||||||
href="http://markinstefan.xyz/ru/series/"
|
href="http://markinstefan.xyz/ru/series/"
|
||||||
/>
|
/>
|
||||||
<xhtml:link
|
|
||||||
rel="alternate"
|
|
||||||
hreflang="de"
|
|
||||||
href="http://markinstefan.xyz/de/series/"
|
|
||||||
/>
|
|
||||||
</url><url>
|
</url><url>
|
||||||
<loc>http://markinstefan.xyz/tags/</loc>
|
<loc>http://markinstefan.xyz/tags/</loc>
|
||||||
<xhtml:link
|
|
||||||
rel="alternate"
|
|
||||||
hreflang="ru"
|
|
||||||
href="http://markinstefan.xyz/ru/tags/"
|
|
||||||
/>
|
|
||||||
<xhtml:link
|
<xhtml:link
|
||||||
rel="alternate"
|
rel="alternate"
|
||||||
hreflang="de"
|
hreflang="de"
|
||||||
@@ -154,5 +149,27 @@
|
|||||||
hreflang="en"
|
hreflang="en"
|
||||||
href="http://markinstefan.xyz/tags/"
|
href="http://markinstefan.xyz/tags/"
|
||||||
/>
|
/>
|
||||||
|
<xhtml:link
|
||||||
|
rel="alternate"
|
||||||
|
hreflang="ru"
|
||||||
|
href="http://markinstefan.xyz/ru/tags/"
|
||||||
|
/>
|
||||||
|
</url><url>
|
||||||
|
<loc>http://markinstefan.xyz/thank-you/</loc>
|
||||||
|
<xhtml:link
|
||||||
|
rel="alternate"
|
||||||
|
hreflang="de"
|
||||||
|
href="http://markinstefan.xyz/de/thank-you/"
|
||||||
|
/>
|
||||||
|
<xhtml:link
|
||||||
|
rel="alternate"
|
||||||
|
hreflang="en"
|
||||||
|
href="http://markinstefan.xyz/thank-you/"
|
||||||
|
/>
|
||||||
|
<xhtml:link
|
||||||
|
rel="alternate"
|
||||||
|
hreflang="ru"
|
||||||
|
href="http://markinstefan.xyz/ru/thank-you/"
|
||||||
|
/>
|
||||||
</url>
|
</url>
|
||||||
</urlset>
|
</urlset>
|
||||||
@@ -39,5 +39,12 @@
|
|||||||
<guid>http://markinstefan.xyz/projects/</guid>
|
<guid>http://markinstefan.xyz/projects/</guid>
|
||||||
<description></description>
|
<description></description>
|
||||||
</item>
|
</item>
|
||||||
|
<item>
|
||||||
|
<title>Thank You!</title>
|
||||||
|
<link>http://markinstefan.xyz/thank-you/</link>
|
||||||
|
<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
|
||||||
|
<guid>http://markinstefan.xyz/thank-you/</guid>
|
||||||
|
<description><p>Thank you for submitting the form!</p></description>
|
||||||
|
</item>
|
||||||
</channel>
|
</channel>
|
||||||
</rss>
|
</rss>
|
||||||
@@ -207,6 +207,16 @@ EOD;
|
|||||||
|
|
||||||
$mail->send();
|
$mail->send();
|
||||||
|
|
||||||
|
$lang = $_POST['lang'] ?? 'en';
|
||||||
|
|
||||||
|
$allowedLangs = ['en', 'de', 'ru'];
|
||||||
|
|
||||||
|
if (!in_array($lang, $allowedLangs, true)) {
|
||||||
|
$lang = 'en';
|
||||||
|
}
|
||||||
|
|
||||||
|
header("Location: /{$lang}/thank-you/");
|
||||||
|
exit;
|
||||||
header('Location: /thank-you/');
|
header('Location: /thank-you/');
|
||||||
exit;
|
exit;
|
||||||
|
|
||||||
|
|||||||
@@ -137,14 +137,14 @@
|
|||||||
|
|
||||||
|
|
||||||
<li class="navigation-item">
|
<li class="navigation-item">
|
||||||
<a href="/categories/">🇬🇧</a>
|
<a href="/de/categories/">🇩🇪</a>
|
||||||
</li>
|
</li>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<li class="navigation-item">
|
<li class="navigation-item">
|
||||||
<a href="/de/categories/">🇩🇪</a>
|
<a href="/categories/">🇬🇧</a>
|
||||||
</li>
|
</li>
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -39,5 +39,12 @@
|
|||||||
<guid>http://markinstefan.xyz/ru/svadba/</guid>
|
<guid>http://markinstefan.xyz/ru/svadba/</guid>
|
||||||
<description><p>С радостью приглашаем вас на свадьбу Стефана и Марии!</p>
<p>Мы приглашаем вас разделить с нами этот особенный день, наполненный любовью, радостью и незабываемыми воспоминаниями!</p>
<p>С нетерпением ждем встречи с вами!</p></description>
|
<description><p>С радостью приглашаем вас на свадьбу Стефана и Марии!</p>
<p>Мы приглашаем вас разделить с нами этот особенный день, наполненный любовью, радостью и незабываемыми воспоминаниями!</p>
<p>С нетерпением ждем встречи с вами!</p></description>
|
||||||
</item>
|
</item>
|
||||||
|
<item>
|
||||||
|
<title>Спасибо тебе!</title>
|
||||||
|
<link>http://markinstefan.xyz/ru/thank-you/</link>
|
||||||
|
<pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
|
||||||
|
<guid>http://markinstefan.xyz/ru/thank-you/</guid>
|
||||||
|
<description><p>Спасибо за отправку формы!</p></description>
|
||||||
|
</item>
|
||||||
</channel>
|
</channel>
|
||||||
</rss>
|
</rss>
|
||||||
+27
-10
@@ -20,6 +20,11 @@
|
|||||||
/>
|
/>
|
||||||
</url><url>
|
</url><url>
|
||||||
<loc>http://markinstefan.xyz/ru/categories/</loc>
|
<loc>http://markinstefan.xyz/ru/categories/</loc>
|
||||||
|
<xhtml:link
|
||||||
|
rel="alternate"
|
||||||
|
hreflang="de"
|
||||||
|
href="http://markinstefan.xyz/de/categories/"
|
||||||
|
/>
|
||||||
<xhtml:link
|
<xhtml:link
|
||||||
rel="alternate"
|
rel="alternate"
|
||||||
hreflang="en"
|
hreflang="en"
|
||||||
@@ -30,11 +35,6 @@
|
|||||||
hreflang="ru"
|
hreflang="ru"
|
||||||
href="http://markinstefan.xyz/ru/categories/"
|
href="http://markinstefan.xyz/ru/categories/"
|
||||||
/>
|
/>
|
||||||
<xhtml:link
|
|
||||||
rel="alternate"
|
|
||||||
hreflang="de"
|
|
||||||
href="http://markinstefan.xyz/de/categories/"
|
|
||||||
/>
|
|
||||||
</url><url>
|
</url><url>
|
||||||
<loc>http://markinstefan.xyz/ru/series/</loc>
|
<loc>http://markinstefan.xyz/ru/series/</loc>
|
||||||
<xhtml:link
|
<xhtml:link
|
||||||
@@ -54,11 +54,6 @@
|
|||||||
/>
|
/>
|
||||||
</url><url>
|
</url><url>
|
||||||
<loc>http://markinstefan.xyz/ru/tags/</loc>
|
<loc>http://markinstefan.xyz/ru/tags/</loc>
|
||||||
<xhtml:link
|
|
||||||
rel="alternate"
|
|
||||||
hreflang="de"
|
|
||||||
href="http://markinstefan.xyz/de/tags/"
|
|
||||||
/>
|
|
||||||
<xhtml:link
|
<xhtml:link
|
||||||
rel="alternate"
|
rel="alternate"
|
||||||
hreflang="en"
|
hreflang="en"
|
||||||
@@ -69,6 +64,11 @@
|
|||||||
hreflang="ru"
|
hreflang="ru"
|
||||||
href="http://markinstefan.xyz/ru/tags/"
|
href="http://markinstefan.xyz/ru/tags/"
|
||||||
/>
|
/>
|
||||||
|
<xhtml:link
|
||||||
|
rel="alternate"
|
||||||
|
hreflang="de"
|
||||||
|
href="http://markinstefan.xyz/de/tags/"
|
||||||
|
/>
|
||||||
</url><url>
|
</url><url>
|
||||||
<loc>http://markinstefan.xyz/ru/contact/</loc>
|
<loc>http://markinstefan.xyz/ru/contact/</loc>
|
||||||
<xhtml:link
|
<xhtml:link
|
||||||
@@ -154,5 +154,22 @@
|
|||||||
hreflang="ru"
|
hreflang="ru"
|
||||||
href="http://markinstefan.xyz/ru/svadba/"
|
href="http://markinstefan.xyz/ru/svadba/"
|
||||||
/>
|
/>
|
||||||
|
</url><url>
|
||||||
|
<loc>http://markinstefan.xyz/ru/thank-you/</loc>
|
||||||
|
<xhtml:link
|
||||||
|
rel="alternate"
|
||||||
|
hreflang="de"
|
||||||
|
href="http://markinstefan.xyz/de/thank-you/"
|
||||||
|
/>
|
||||||
|
<xhtml:link
|
||||||
|
rel="alternate"
|
||||||
|
hreflang="en"
|
||||||
|
href="http://markinstefan.xyz/thank-you/"
|
||||||
|
/>
|
||||||
|
<xhtml:link
|
||||||
|
rel="alternate"
|
||||||
|
hreflang="ru"
|
||||||
|
href="http://markinstefan.xyz/ru/thank-you/"
|
||||||
|
/>
|
||||||
</url>
|
</url>
|
||||||
</urlset>
|
</urlset>
|
||||||
@@ -397,6 +397,9 @@ btn.addEventListener("click", async () => {
|
|||||||
<form action="/rsvp-submit.php" method="POST">
|
<form action="/rsvp-submit.php" method="POST">
|
||||||
|
|
||||||
|
|
||||||
|
<input type="hidden" name="lang" value="ru">
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<h3>Личная информация</h3>
|
<h3>Личная информация</h3>
|
||||||
|
|
||||||
|
|||||||
@@ -137,14 +137,14 @@
|
|||||||
|
|
||||||
|
|
||||||
<li class="navigation-item">
|
<li class="navigation-item">
|
||||||
<a href="/de/tags/">🇩🇪</a>
|
<a href="/tags/">🇬🇧</a>
|
||||||
</li>
|
</li>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<li class="navigation-item">
|
<li class="navigation-item">
|
||||||
<a href="/tags/">🇬🇧</a>
|
<a href="/de/tags/">🇩🇪</a>
|
||||||
</li>
|
</li>
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -0,0 +1,656 @@
|
|||||||
|
<!DOCTYPE html>
|
||||||
|
<html lang="ru">
|
||||||
|
|
||||||
|
<head>
|
||||||
|
<title>Маркин Степан</title>
|
||||||
|
<meta charset="utf-8">
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||||
|
<meta name="color-scheme" content="light dark">
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<meta name="author" content="Маркин Степан">
|
||||||
|
<meta name="description" content="Спасибо за отправку формы!">
|
||||||
|
<meta name="keywords" content="blog,desenvolvedor,pessoal">
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<meta name="twitter:card" content="summary">
|
||||||
|
<meta name="twitter:title" content="Спасибо тебе!">
|
||||||
|
<meta name="twitter:description" content="Спасибо за отправку формы!">
|
||||||
|
|
||||||
|
<meta property="og:url" content="http://markinstefan.xyz/ru/thank-you/">
|
||||||
|
<meta property="og:site_name" content="Маркин Степан">
|
||||||
|
<meta property="og:title" content="Спасибо тебе!">
|
||||||
|
<meta property="og:description" content="Спасибо за отправку формы!">
|
||||||
|
<meta property="og:locale" content="ru">
|
||||||
|
<meta property="og:type" content="article">
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<link rel="canonical" href="http://markinstefan.xyz/ru/thank-you/">
|
||||||
|
|
||||||
|
|
||||||
|
<link rel="preload" href="/fonts/fa-brands-400.woff2" as="font" type="font/woff2" crossorigin>
|
||||||
|
<link rel="preload" href="/fonts/fa-regular-400.woff2" as="font" type="font/woff2" crossorigin>
|
||||||
|
<link rel="preload" href="/fonts/fa-solid-900.woff2" as="font" type="font/woff2" crossorigin>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<link rel="stylesheet" href="/css/coder.min.f6b1b35a7b02521b25338f6cf58975f9980a6c12847763fe35a48307758cd1e7.css" integrity="sha256-9rGzWnsCUhslM49s9Yl1+ZgKbBKEd2P+NaSDB3WM0ec=" crossorigin="anonymous" media="screen" />
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<link rel="stylesheet" href="/css/coder-dark.min.ad48f476275974885bdc03d5251e3cdbe1678c54a63ff772376b0ed2adc468dd.css" integrity="sha256-rUj0didZdIhb3APVJR482+FnjFSmP/dyN2sO0q3EaN0=" crossorigin="anonymous" media="screen" />
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<link rel="icon" type="image/svg+xml" href="/images/favicon.svg" sizes="any">
|
||||||
|
<link rel="icon" type="image/png" href="/images/favicon-32x32.png" sizes="32x32">
|
||||||
|
<link rel="icon" type="image/png" href="/images/favicon-16x16.png" sizes="16x16">
|
||||||
|
|
||||||
|
<link rel="apple-touch-icon" href="/images/apple-touch-icon.png">
|
||||||
|
<link rel="apple-touch-icon" sizes="180x180" href="/images/apple-touch-icon.png">
|
||||||
|
|
||||||
|
<link rel="manifest" href="/site.webmanifest">
|
||||||
|
<link rel="mask-icon" href="/images/safari-pinned-tab.svg" color="#5bbad5">
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
</head>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<body class="preload-transitions colorscheme-auto">
|
||||||
|
|
||||||
|
<div class="float-container">
|
||||||
|
<a id="dark-mode-toggle" class="colorscheme-toggle">
|
||||||
|
<i class="fa-solid fa-adjust fa-fw" aria-hidden="true"></i>
|
||||||
|
</a>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
<main class="wrapper">
|
||||||
|
<nav class="navigation">
|
||||||
|
<section class="container">
|
||||||
|
|
||||||
|
<a class="navigation-title" href="http://markinstefan.xyz/ru/">
|
||||||
|
Маркин Степан
|
||||||
|
</a>
|
||||||
|
|
||||||
|
|
||||||
|
<input type="checkbox" id="menu-toggle" />
|
||||||
|
<label class="menu-button float-right" for="menu-toggle">
|
||||||
|
<i class="fa-solid fa-bars fa-fw" aria-hidden="true"></i>
|
||||||
|
</label>
|
||||||
|
<ul class="navigation-list">
|
||||||
|
|
||||||
|
|
||||||
|
<li class="navigation-item">
|
||||||
|
<a class="navigation-link " href="/ru/about/">Обо мне</a>
|
||||||
|
</li>
|
||||||
|
|
||||||
|
<li class="navigation-item">
|
||||||
|
<a class="navigation-link " href="/ru/projects/">Проекты</a>
|
||||||
|
</li>
|
||||||
|
|
||||||
|
<li class="navigation-item">
|
||||||
|
<a class="navigation-link " href="/ru/contact/">Контакты</a>
|
||||||
|
</li>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<li class="navigation-item menu-separator">
|
||||||
|
<span>|</span>
|
||||||
|
</li>
|
||||||
|
|
||||||
|
|
||||||
|
<li class="navigation-item">
|
||||||
|
<a href="/de/thank-you/">🇩🇪</a>
|
||||||
|
</li>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<li class="navigation-item">
|
||||||
|
<a href="/thank-you/">🇬🇧</a>
|
||||||
|
</li>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
</section>
|
||||||
|
</nav>
|
||||||
|
|
||||||
|
|
||||||
|
<div class="content">
|
||||||
|
|
||||||
|
|
||||||
|
<style>
|
||||||
|
body {
|
||||||
|
background-color: #fff;
|
||||||
|
color: #222;
|
||||||
|
|
||||||
|
background-image: url('/images/hochzeit-bg.jpg');
|
||||||
|
background-size: cover;
|
||||||
|
background-position: center;
|
||||||
|
background-repeat: repeat;
|
||||||
|
border-radius: 8px;
|
||||||
|
}
|
||||||
|
.wedding-container {
|
||||||
|
max-width: 1600px;
|
||||||
|
margin: 0 auto;
|
||||||
|
padding: 2rem;
|
||||||
|
font-family: system-ui, sans-serif;
|
||||||
|
line-height: 1.6;
|
||||||
|
}
|
||||||
|
.hero {
|
||||||
|
text-align: center;
|
||||||
|
margin-bottom: 3rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
.hero img {
|
||||||
|
width: 100%;
|
||||||
|
border-radius: 8px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.hero h1 {
|
||||||
|
font-size: 2.5rem;
|
||||||
|
margin-bottom: 0.5rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
.hero .date {
|
||||||
|
font-size: 1.2rem;
|
||||||
|
color: #666;
|
||||||
|
}
|
||||||
|
|
||||||
|
.section {
|
||||||
|
margin-bottom: 2.5rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
.section h2 {
|
||||||
|
font-size: 1.5rem;
|
||||||
|
margin-bottom: 0.5rem;
|
||||||
|
border-bottom: 1px solid #eee;
|
||||||
|
padding-bottom: 0.3rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
.map iframe {
|
||||||
|
width: 100%;
|
||||||
|
background-color: rgba(255, 255, 255, 0.5);
|
||||||
|
padding: 1rem;
|
||||||
|
height: 400px;
|
||||||
|
border: 0;
|
||||||
|
border-radius: 8px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.rsvp {
|
||||||
|
background-color: rgba(255, 255, 255, 0.8);
|
||||||
|
padding: 1rem;
|
||||||
|
border-radius: 8px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.countdown {
|
||||||
|
text-align: center; margin-bottom: 2rem;
|
||||||
|
font-size: 5rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
.footer {
|
||||||
|
text-align: center;
|
||||||
|
margin-top: 3rem;
|
||||||
|
color: #888;
|
||||||
|
font-size: 2rem;
|
||||||
|
padding-top: 1rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
.footer a {
|
||||||
|
color: #0066cc;
|
||||||
|
text-decoration: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
.footer a:hover {
|
||||||
|
text-decoration: underline;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
|
||||||
|
<div class="wedding-container">
|
||||||
|
<style>
|
||||||
|
.music-fab {
|
||||||
|
position: fixed;
|
||||||
|
bottom: 20px;
|
||||||
|
left: 20px;
|
||||||
|
z-index: 9999;
|
||||||
|
}
|
||||||
|
|
||||||
|
.fab-button {
|
||||||
|
width: 52px;
|
||||||
|
height: 52px;
|
||||||
|
border-radius: 50%;
|
||||||
|
border: none;
|
||||||
|
background: white;
|
||||||
|
box-shadow: 0 6px 18px rgba(0,0,0,0.2);
|
||||||
|
font-size: 20px;
|
||||||
|
cursor: pointer;
|
||||||
|
transition: transform 0.15s ease;
|
||||||
|
}
|
||||||
|
|
||||||
|
.fab-button:active {
|
||||||
|
transform: scale(0.95);
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
|
||||||
|
<div class="music-fab">
|
||||||
|
<button id="music-btn" class="fab-button">⏸️</button>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<audio id="bg-music" autoplay loop>
|
||||||
|
<source src="/audio/canon-in-d.mp3" type="audio/mpeg">
|
||||||
|
</audio>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
const btn = document.getElementById("music-btn");
|
||||||
|
const audio = document.getElementById("bg-music");
|
||||||
|
|
||||||
|
audio.volume = 0.3;
|
||||||
|
|
||||||
|
|
||||||
|
let isPlaying = true;
|
||||||
|
btn.textContent = "⏸️";
|
||||||
|
|
||||||
|
|
||||||
|
audio.play().catch(() => {
|
||||||
|
isPlaying = false;
|
||||||
|
btn.textContent = "▶️";
|
||||||
|
});
|
||||||
|
|
||||||
|
btn.addEventListener("click", async () => {
|
||||||
|
if (!isPlaying) {
|
||||||
|
try {
|
||||||
|
await audio.play();
|
||||||
|
isPlaying = true;
|
||||||
|
btn.textContent = "⏸️";
|
||||||
|
} catch (e) {
|
||||||
|
console.log("Playback blocked:", e);
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
audio.pause();
|
||||||
|
isPlaying = false;
|
||||||
|
btn.textContent = "▶️";
|
||||||
|
}
|
||||||
|
});
|
||||||
|
</script>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<div class="countdown">
|
||||||
|
<h3>До нашей свадьбы осталось:</h3>
|
||||||
|
<p id="timer"></p>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
<div class="hero">
|
||||||
|
<img src="/images/hochzeit-header.jpg" alt="Wedding Header Image">
|
||||||
|
<h1>Спасибо тебе!</h1>
|
||||||
|
<div class="date">
|
||||||
|
1 января 1 г.
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<div class="section">
|
||||||
|
<p>Спасибо за отправку формы!</p>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<div class="section">
|
||||||
|
<h2>📅 Мероприятие</h2>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<h2>📝 RSVP</h2>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<form action="/rsvp-submit.php" method="POST">
|
||||||
|
|
||||||
|
|
||||||
|
<input type="hidden" name="lang" value="ru">
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<h3>Личная информация</h3>
|
||||||
|
|
||||||
|
<label for="first_name">Имя:</label><br> <input type="text" id="first_name" name="first_name" required><br><br>
|
||||||
|
|
||||||
|
<label for="last_name">Фамилия:</label><br> <input type="text" id="last_name" name="last_name" required><br><br>
|
||||||
|
|
||||||
|
<label for="email">Адрес электронной почты:</label><br> <input type="email" id="email" name="email" required><br><br>
|
||||||
|
|
||||||
|
<label for="phone">Номер телефона:</label><br> <input type="tel" id="phone" name="phone" placeholder="+45 12 34 56 78"><br> <small>Используется для группы WhatsApp и свадебных уведомлений</small><br><br>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<h3>Участие</h3>
|
||||||
|
|
||||||
|
<input type="radio" id="attending_yes" name="attendance" value="Yes" required>
|
||||||
|
<label for="attending_yes">Я буду присутствовать</label><br>
|
||||||
|
|
||||||
|
<input type="radio" id="attending_no" name="attendance" value="No">
|
||||||
|
<label for="attending_no">К сожалению, я не смогу присутствовать</label><br><br>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<h3>Предпочтения по напиткам:</h3>
|
||||||
|
|
||||||
|
<input type="checkbox" id="wine" name="drinks[]" value="Wine">
|
||||||
|
<label for="wine">Вино</label><br>
|
||||||
|
|
||||||
|
<input type="checkbox" id="beer" name="drinks[]" value="Beer">
|
||||||
|
<label for="beer">Пиво</label><br>
|
||||||
|
|
||||||
|
<input type="checkbox" id="juice" name="drinks[]" value="Juice">
|
||||||
|
<label for="juice">Сок</label><br>
|
||||||
|
|
||||||
|
<input type="checkbox" id="water" name="drinks[]" value="Water">
|
||||||
|
<label for="water">Вода</label><br>
|
||||||
|
|
||||||
|
<input type="checkbox" id="cola" name="drinks[]" value="Cola">
|
||||||
|
<label for="cola">Coca-Cola</label><br>
|
||||||
|
|
||||||
|
<input type="checkbox" id="fanta" name="drinks[]" value="Fanta">
|
||||||
|
<label for="fanta">Fanta</label><br><br>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<h3>Предпочтения в питании</h3>
|
||||||
|
|
||||||
|
<input type="radio" id="diet_meat" name="diet" value="Meat" required>
|
||||||
|
<label for="diet_meat">Мясо</label><br>
|
||||||
|
|
||||||
|
<input type="radio" id="diet_vegetarian" name="diet" value="Vegetarian">
|
||||||
|
<label for="diet_vegetarian">Вегетарианское</label><br>
|
||||||
|
|
||||||
|
<input type="radio" id="diet_vegan" name="diet" value="Vegan">
|
||||||
|
<label for="diet_vegan">Веганское</label><br><br>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<h3>Аллергия на</h3>
|
||||||
|
|
||||||
|
<input type="checkbox" id="gluten" name="allergies[]" value="Gluten">
|
||||||
|
<label for="gluten">Глютен</label><br>
|
||||||
|
|
||||||
|
<input type="checkbox" id="lactose" name="allergies[]" value="Lactose">
|
||||||
|
<label for="lactose">Лактоза</label><br>
|
||||||
|
|
||||||
|
<input type="checkbox" id="nuts" name="allergies[]" value="Nuts">
|
||||||
|
<label for="nuts">Орехи</label><br>
|
||||||
|
|
||||||
|
<input type="checkbox" id="other_allergy" name="allergies[]" value="Other">
|
||||||
|
<label for="other_allergy">Другое</label><br><br>
|
||||||
|
|
||||||
|
<label for="allergies_other">Дополнительная информация об аллергиях:</label><br> <input type="text" id="allergies_other" name="allergies_other"><br><br>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<h3>Организация</h3>
|
||||||
|
|
||||||
|
<input type="checkbox" id="parking" name="parking" value="Yes">
|
||||||
|
<label for="parking">Мне требуется парковочное место</label><br>
|
||||||
|
|
||||||
|
<input type="checkbox" id="ride_needed" name="ride_needed" value="Yes">
|
||||||
|
<label for="ride_needed">Мне нужна помощь с поездкой</label><br>
|
||||||
|
|
||||||
|
<input type="checkbox" id="ride_offer" name="ride_offer" value="Yes">
|
||||||
|
<label for="ride_offer">Я могу предложить место в машине</label><br>
|
||||||
|
|
||||||
|
<input type="checkbox" id="hotel" name="hotel" value="Yes">
|
||||||
|
<label for="hotel">Я остановлюсь в отеле</label><br>
|
||||||
|
|
||||||
|
<input type="checkbox" id="hotel_booked" name="hotel_booked" value="Yes">
|
||||||
|
<label for="hotel_booked">Отель уже забронирован</label><br><br>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<h3>Памятные материалы и дополнения</h3>
|
||||||
|
|
||||||
|
<input type="checkbox" id="memory_card" name="memory_card" value="Yes">
|
||||||
|
<label for="memory_card">Я хотел(а) бы получить памятную открытку</label><br>
|
||||||
|
|
||||||
|
<input type="checkbox" id="photo_link" name="photo_link" value="Yes">
|
||||||
|
<label for="photo_link">Я хотел(а) бы получить ссылку на свадебные фотографии</label><br><br>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<h3>Развлечения</h3>
|
||||||
|
|
||||||
|
<label for="music_request">Музыкальное пожелание:</label><br> <input type="text" id="music_request" name="music_request"><br><br>
|
||||||
|
|
||||||
|
<label>Я хотел(а) бы внести свой вклад:</label><br>
|
||||||
|
|
||||||
|
<input type="checkbox" id="speech" name="contribution[]" value="Speech">
|
||||||
|
<label for="speech">Речь</label><br>
|
||||||
|
|
||||||
|
<input type="checkbox" id="game" name="contribution[]" value="Game">
|
||||||
|
<label for="game">Игра</label><br>
|
||||||
|
|
||||||
|
<input type="checkbox" id="surprise" name="contribution[]" value="Surprise">
|
||||||
|
<label for="surprise">Сюрприз</label><br>
|
||||||
|
|
||||||
|
<input type="checkbox" id="other_contribution" name="contribution[]" value="Other">
|
||||||
|
<label for="other_contribution">Другое</label><br><br>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<h3>Дети</h3>
|
||||||
|
|
||||||
|
<input type="radio" id="children_yes" name="children" value="Yes">
|
||||||
|
<label for="children_yes">Да</label>
|
||||||
|
|
||||||
|
<input type="radio" id="children_no" name="children" value="No" checked>
|
||||||
|
<label for="children_no">Нет</label><br><br>
|
||||||
|
|
||||||
|
<div id="children-details" style="display:none;">
|
||||||
|
|
||||||
|
```
|
||||||
|
<label for="children_count">Количество детей:</label><br>
|
||||||
|
<input type="number" id="children_count" name="children_count" min="1"><br><br>
|
||||||
|
|
||||||
|
<label for="children_ages">Возраст детей:</label><br>
|
||||||
|
<input type="text"
|
||||||
|
id="children_ages"
|
||||||
|
name="children_ages"
|
||||||
|
placeholder="3, 7, 10"><br><br>
|
||||||
|
```
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<h3>Сообщение молодожёнам</h3>
|
||||||
|
|
||||||
|
<textarea id="message"
|
||||||
|
name="message"
|
||||||
|
rows="5"
|
||||||
|
cols="50"></textarea><br><br>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<h3>Конфиденциальность</h3>
|
||||||
|
|
||||||
|
<input type="checkbox"
|
||||||
|
id="privacy"
|
||||||
|
name="privacy"
|
||||||
|
value="Yes"
|
||||||
|
required>
|
||||||
|
|
||||||
|
<label for="privacy">
|
||||||
|
Я согласен(согласна) на хранение и обработку моих данных для организации свадьбы.
|
||||||
|
</label><br><br>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<input type="text" name="website" style="display:none">
|
||||||
|
|
||||||
|
<button type="submit">
|
||||||
|
Отправить
|
||||||
|
</button>
|
||||||
|
|
||||||
|
</form>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
document.querySelectorAll('input[name="children"]').forEach(el => {
|
||||||
|
el.addEventListener('change', function() {
|
||||||
|
document.getElementById('children-details').style.display =
|
||||||
|
this.value === 'Yes' ? 'block' : 'none';
|
||||||
|
});
|
||||||
|
});
|
||||||
|
</script>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<div class="footer">
|
||||||
|
<p>❤️ Мы с нетерпением ждем встречи с вами ❤️</p>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
var labels = {
|
||||||
|
day: "Д.",
|
||||||
|
hour: "ч.",
|
||||||
|
minute: "м.",
|
||||||
|
second: "c."
|
||||||
|
};
|
||||||
|
|
||||||
|
var countDownDate = new Date(" ").getTime();
|
||||||
|
|
||||||
|
var x = setInterval(function() {
|
||||||
|
var now = new Date().getTime();
|
||||||
|
var distance = countDownDate - now;
|
||||||
|
|
||||||
|
var days = Math.floor(distance / (1000 * 60 * 60 * 24));
|
||||||
|
var hours = Math.floor((distance % (1000 * 60 * 60 * 24)) / (1000 * 60 * 60));
|
||||||
|
var minutes = Math.floor((distance % (1000 * 60 * 60)) / (1000 * 60));
|
||||||
|
var seconds = Math.floor((distance % (1000 * 60)) / 1000);
|
||||||
|
|
||||||
|
document.getElementById("timer").innerHTML =
|
||||||
|
days + " " + labels.day + " " +
|
||||||
|
hours + " " + labels.hour + " " +
|
||||||
|
minutes + " " + labels.minute + " " +
|
||||||
|
seconds + " " + labels.second;
|
||||||
|
|
||||||
|
if (distance < 0) {
|
||||||
|
clearInterval(x);
|
||||||
|
document.getElementById("timer").innerHTML = "Наступил великий день!";
|
||||||
|
}
|
||||||
|
}, 1000);
|
||||||
|
</script>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<footer class="footer">
|
||||||
|
<section class="container">
|
||||||
|
©
|
||||||
|
|
||||||
|
2026
|
||||||
|
Маркин Степан
|
||||||
|
·
|
||||||
|
|
||||||
|
Работает на <a href="https://gohugo.io/" target="_blank" rel="noopener">Hugo</a> & <a href="https://github.com/luizdepra/hugo-coder/" target="_blank" rel="noopener">Coder</a>.
|
||||||
|
|
||||||
|
</section>
|
||||||
|
</footer>
|
||||||
|
|
||||||
|
</main>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<script src="/js/coder.min.6ae284be93d2d19dad1f02b0039508d9aab3180a12a06dcc71b0b0ef7825a317.js" integrity="sha256-auKEvpPS0Z2tHwKwA5UI2aqzGAoSoG3McbCw73gloxc="></script>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
</body>
|
||||||
|
|
||||||
|
</html>
|
||||||
@@ -137,14 +137,14 @@
|
|||||||
|
|
||||||
|
|
||||||
<li class="navigation-item">
|
<li class="navigation-item">
|
||||||
<a href="/ru/series/">🇷🇺</a>
|
<a href="/de/series/">🇩🇪</a>
|
||||||
</li>
|
</li>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<li class="navigation-item">
|
<li class="navigation-item">
|
||||||
<a href="/de/series/">🇩🇪</a>
|
<a href="/ru/series/">🇷🇺</a>
|
||||||
</li>
|
</li>
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -137,14 +137,14 @@
|
|||||||
|
|
||||||
|
|
||||||
<li class="navigation-item">
|
<li class="navigation-item">
|
||||||
<a href="/ru/tags/">🇷🇺</a>
|
<a href="/de/tags/">🇩🇪</a>
|
||||||
</li>
|
</li>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<li class="navigation-item">
|
<li class="navigation-item">
|
||||||
<a href="/de/tags/">🇩🇪</a>
|
<a href="/ru/tags/">🇷🇺</a>
|
||||||
</li>
|
</li>
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -0,0 +1,656 @@
|
|||||||
|
<!DOCTYPE html>
|
||||||
|
<html lang="en">
|
||||||
|
|
||||||
|
<head>
|
||||||
|
<title>Markin Stefan</title>
|
||||||
|
<meta charset="utf-8">
|
||||||
|
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||||
|
<meta name="color-scheme" content="light dark">
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<meta name="author" content="Markin Stefan">
|
||||||
|
<meta name="description" content="Thank you for submitting the form!">
|
||||||
|
<meta name="keywords" content="blog,developer,personal">
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<meta name="twitter:card" content="summary">
|
||||||
|
<meta name="twitter:title" content="Thank You!">
|
||||||
|
<meta name="twitter:description" content="Thank you for submitting the form!">
|
||||||
|
|
||||||
|
<meta property="og:url" content="http://markinstefan.xyz/thank-you/">
|
||||||
|
<meta property="og:site_name" content="Markin Stefan">
|
||||||
|
<meta property="og:title" content="Thank You!">
|
||||||
|
<meta property="og:description" content="Thank you for submitting the form!">
|
||||||
|
<meta property="og:locale" content="en">
|
||||||
|
<meta property="og:type" content="article">
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<link rel="canonical" href="http://markinstefan.xyz/thank-you/">
|
||||||
|
|
||||||
|
|
||||||
|
<link rel="preload" href="/fonts/fa-brands-400.woff2" as="font" type="font/woff2" crossorigin>
|
||||||
|
<link rel="preload" href="/fonts/fa-regular-400.woff2" as="font" type="font/woff2" crossorigin>
|
||||||
|
<link rel="preload" href="/fonts/fa-solid-900.woff2" as="font" type="font/woff2" crossorigin>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<link rel="stylesheet" href="/css/coder.min.f6b1b35a7b02521b25338f6cf58975f9980a6c12847763fe35a48307758cd1e7.css" integrity="sha256-9rGzWnsCUhslM49s9Yl1+ZgKbBKEd2P+NaSDB3WM0ec=" crossorigin="anonymous" media="screen" />
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<link rel="stylesheet" href="/css/coder-dark.min.ad48f476275974885bdc03d5251e3cdbe1678c54a63ff772376b0ed2adc468dd.css" integrity="sha256-rUj0didZdIhb3APVJR482+FnjFSmP/dyN2sO0q3EaN0=" crossorigin="anonymous" media="screen" />
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<link rel="icon" type="image/svg+xml" href="/images/favicon.svg" sizes="any">
|
||||||
|
<link rel="icon" type="image/png" href="/images/favicon-32x32.png" sizes="32x32">
|
||||||
|
<link rel="icon" type="image/png" href="/images/favicon-16x16.png" sizes="16x16">
|
||||||
|
|
||||||
|
<link rel="apple-touch-icon" href="/images/apple-touch-icon.png">
|
||||||
|
<link rel="apple-touch-icon" sizes="180x180" href="/images/apple-touch-icon.png">
|
||||||
|
|
||||||
|
<link rel="manifest" href="/site.webmanifest">
|
||||||
|
<link rel="mask-icon" href="/images/safari-pinned-tab.svg" color="#5bbad5">
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
</head>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<body class="preload-transitions colorscheme-auto">
|
||||||
|
|
||||||
|
<div class="float-container">
|
||||||
|
<a id="dark-mode-toggle" class="colorscheme-toggle">
|
||||||
|
<i class="fa-solid fa-adjust fa-fw" aria-hidden="true"></i>
|
||||||
|
</a>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
<main class="wrapper">
|
||||||
|
<nav class="navigation">
|
||||||
|
<section class="container">
|
||||||
|
|
||||||
|
<a class="navigation-title" href="http://markinstefan.xyz/">
|
||||||
|
Markin Stefan
|
||||||
|
</a>
|
||||||
|
|
||||||
|
|
||||||
|
<input type="checkbox" id="menu-toggle" />
|
||||||
|
<label class="menu-button float-right" for="menu-toggle">
|
||||||
|
<i class="fa-solid fa-bars fa-fw" aria-hidden="true"></i>
|
||||||
|
</label>
|
||||||
|
<ul class="navigation-list">
|
||||||
|
|
||||||
|
|
||||||
|
<li class="navigation-item">
|
||||||
|
<a class="navigation-link " href="/about/">About</a>
|
||||||
|
</li>
|
||||||
|
|
||||||
|
<li class="navigation-item">
|
||||||
|
<a class="navigation-link " href="/projects/">Projects</a>
|
||||||
|
</li>
|
||||||
|
|
||||||
|
<li class="navigation-item">
|
||||||
|
<a class="navigation-link " href="/contact/">Contact me</a>
|
||||||
|
</li>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<li class="navigation-item menu-separator">
|
||||||
|
<span>|</span>
|
||||||
|
</li>
|
||||||
|
|
||||||
|
|
||||||
|
<li class="navigation-item">
|
||||||
|
<a href="/de/thank-you/">🇩🇪</a>
|
||||||
|
</li>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<li class="navigation-item">
|
||||||
|
<a href="/ru/thank-you/">🇷🇺</a>
|
||||||
|
</li>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
</section>
|
||||||
|
</nav>
|
||||||
|
|
||||||
|
|
||||||
|
<div class="content">
|
||||||
|
|
||||||
|
|
||||||
|
<style>
|
||||||
|
body {
|
||||||
|
background-color: #fff;
|
||||||
|
color: #222;
|
||||||
|
|
||||||
|
background-image: url('/images/hochzeit-bg.jpg');
|
||||||
|
background-size: cover;
|
||||||
|
background-position: center;
|
||||||
|
background-repeat: repeat;
|
||||||
|
border-radius: 8px;
|
||||||
|
}
|
||||||
|
.wedding-container {
|
||||||
|
max-width: 1600px;
|
||||||
|
margin: 0 auto;
|
||||||
|
padding: 2rem;
|
||||||
|
font-family: system-ui, sans-serif;
|
||||||
|
line-height: 1.6;
|
||||||
|
}
|
||||||
|
.hero {
|
||||||
|
text-align: center;
|
||||||
|
margin-bottom: 3rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
.hero img {
|
||||||
|
width: 100%;
|
||||||
|
border-radius: 8px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.hero h1 {
|
||||||
|
font-size: 2.5rem;
|
||||||
|
margin-bottom: 0.5rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
.hero .date {
|
||||||
|
font-size: 1.2rem;
|
||||||
|
color: #666;
|
||||||
|
}
|
||||||
|
|
||||||
|
.section {
|
||||||
|
margin-bottom: 2.5rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
.section h2 {
|
||||||
|
font-size: 1.5rem;
|
||||||
|
margin-bottom: 0.5rem;
|
||||||
|
border-bottom: 1px solid #eee;
|
||||||
|
padding-bottom: 0.3rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
.map iframe {
|
||||||
|
width: 100%;
|
||||||
|
background-color: rgba(255, 255, 255, 0.5);
|
||||||
|
padding: 1rem;
|
||||||
|
height: 400px;
|
||||||
|
border: 0;
|
||||||
|
border-radius: 8px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.rsvp {
|
||||||
|
background-color: rgba(255, 255, 255, 0.8);
|
||||||
|
padding: 1rem;
|
||||||
|
border-radius: 8px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.countdown {
|
||||||
|
text-align: center; margin-bottom: 2rem;
|
||||||
|
font-size: 5rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
.footer {
|
||||||
|
text-align: center;
|
||||||
|
margin-top: 3rem;
|
||||||
|
color: #888;
|
||||||
|
font-size: 2rem;
|
||||||
|
padding-top: 1rem;
|
||||||
|
}
|
||||||
|
|
||||||
|
.footer a {
|
||||||
|
color: #0066cc;
|
||||||
|
text-decoration: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
.footer a:hover {
|
||||||
|
text-decoration: underline;
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
|
||||||
|
<div class="wedding-container">
|
||||||
|
<style>
|
||||||
|
.music-fab {
|
||||||
|
position: fixed;
|
||||||
|
bottom: 20px;
|
||||||
|
left: 20px;
|
||||||
|
z-index: 9999;
|
||||||
|
}
|
||||||
|
|
||||||
|
.fab-button {
|
||||||
|
width: 52px;
|
||||||
|
height: 52px;
|
||||||
|
border-radius: 50%;
|
||||||
|
border: none;
|
||||||
|
background: white;
|
||||||
|
box-shadow: 0 6px 18px rgba(0,0,0,0.2);
|
||||||
|
font-size: 20px;
|
||||||
|
cursor: pointer;
|
||||||
|
transition: transform 0.15s ease;
|
||||||
|
}
|
||||||
|
|
||||||
|
.fab-button:active {
|
||||||
|
transform: scale(0.95);
|
||||||
|
}
|
||||||
|
</style>
|
||||||
|
|
||||||
|
<div class="music-fab">
|
||||||
|
<button id="music-btn" class="fab-button">⏸️</button>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<audio id="bg-music" autoplay loop>
|
||||||
|
<source src="/audio/canon-in-d.mp3" type="audio/mpeg">
|
||||||
|
</audio>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
const btn = document.getElementById("music-btn");
|
||||||
|
const audio = document.getElementById("bg-music");
|
||||||
|
|
||||||
|
audio.volume = 0.3;
|
||||||
|
|
||||||
|
|
||||||
|
let isPlaying = true;
|
||||||
|
btn.textContent = "⏸️";
|
||||||
|
|
||||||
|
|
||||||
|
audio.play().catch(() => {
|
||||||
|
isPlaying = false;
|
||||||
|
btn.textContent = "▶️";
|
||||||
|
});
|
||||||
|
|
||||||
|
btn.addEventListener("click", async () => {
|
||||||
|
if (!isPlaying) {
|
||||||
|
try {
|
||||||
|
await audio.play();
|
||||||
|
isPlaying = true;
|
||||||
|
btn.textContent = "⏸️";
|
||||||
|
} catch (e) {
|
||||||
|
console.log("Playback blocked:", e);
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
audio.pause();
|
||||||
|
isPlaying = false;
|
||||||
|
btn.textContent = "▶️";
|
||||||
|
}
|
||||||
|
});
|
||||||
|
</script>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<div class="countdown">
|
||||||
|
<h3>Countdown to our Wedding:</h3>
|
||||||
|
<p id="timer"></p>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
<div class="hero">
|
||||||
|
<img src="/images/hochzeit-header.jpg" alt="Wedding Header Image">
|
||||||
|
<h1>Thank You!</h1>
|
||||||
|
<div class="date">
|
||||||
|
January 1, 1
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<div class="section">
|
||||||
|
<p>Thank you for submitting the form!</p>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<div class="section">
|
||||||
|
<h2>📅 Event</h2>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<h2>📝 RSVP</h2>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<form action="/rsvp-submit.php" method="POST">
|
||||||
|
|
||||||
|
|
||||||
|
<input type="hidden" name="lang" value="en">
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<h3>Personal Information</h3>
|
||||||
|
|
||||||
|
<label for="first_name">First name:</label><br> <input type="text" id="first_name" name="first_name" required><br><br>
|
||||||
|
|
||||||
|
<label for="last_name">Last name:</label><br> <input type="text" id="last_name" name="last_name" required><br><br>
|
||||||
|
|
||||||
|
<label for="email">Email Address:</label><br> <input type="email" id="email" name="email" required><br><br>
|
||||||
|
|
||||||
|
<label for="phone">Phone Number:</label><br> <input type="tel" id="phone" name="phone" placeholder="+45 12 34 56 78"><br> <small>Used for the WhatsApp group and wedding updates</small><br><br>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<h3>Attendance</h3>
|
||||||
|
|
||||||
|
<input type="radio" id="attending_yes" name="attendance" value="Yes" required>
|
||||||
|
<label for="attending_yes">I will attend</label><br>
|
||||||
|
|
||||||
|
<input type="radio" id="attending_no" name="attendance" value="No">
|
||||||
|
<label for="attending_no">I cannot attend</label><br><br>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<h3>Drink preferences:</h3>
|
||||||
|
|
||||||
|
<input type="checkbox" id="wine" name="drinks[]" value="Wine">
|
||||||
|
<label for="wine">Wine</label><br>
|
||||||
|
|
||||||
|
<input type="checkbox" id="beer" name="drinks[]" value="Beer">
|
||||||
|
<label for="beer">Beer</label><br>
|
||||||
|
|
||||||
|
<input type="checkbox" id="juice" name="drinks[]" value="Juice">
|
||||||
|
<label for="juice">Juice</label><br>
|
||||||
|
|
||||||
|
<input type="checkbox" id="water" name="drinks[]" value="Water">
|
||||||
|
<label for="water">Water</label><br>
|
||||||
|
|
||||||
|
<input type="checkbox" id="cola" name="drinks[]" value="Cola">
|
||||||
|
<label for="cola">Cola</label><br>
|
||||||
|
|
||||||
|
<input type="checkbox" id="fanta" name="drinks[]" value="Fanta">
|
||||||
|
<label for="fanta">Fanta</label><br><br>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<h3>Dietary Preference</h3>
|
||||||
|
|
||||||
|
<input type="radio" id="diet_meat" name="diet" value="Meat" required>
|
||||||
|
<label for="diet_meat">Meat</label><br>
|
||||||
|
|
||||||
|
<input type="radio" id="diet_vegetarian" name="diet" value="Vegetarian">
|
||||||
|
<label for="diet_vegetarian">Vegetarian</label><br>
|
||||||
|
|
||||||
|
<input type="radio" id="diet_vegan" name="diet" value="Vegan">
|
||||||
|
<label for="diet_vegan">Vegan</label><br><br>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<h3>Allergic to</h3>
|
||||||
|
|
||||||
|
<input type="checkbox" id="gluten" name="allergies[]" value="Gluten">
|
||||||
|
<label for="gluten">Gluten</label><br>
|
||||||
|
|
||||||
|
<input type="checkbox" id="lactose" name="allergies[]" value="Lactose">
|
||||||
|
<label for="lactose">Lactose</label><br>
|
||||||
|
|
||||||
|
<input type="checkbox" id="nuts" name="allergies[]" value="Nuts">
|
||||||
|
<label for="nuts">Nuts</label><br>
|
||||||
|
|
||||||
|
<input type="checkbox" id="other_allergy" name="allergies[]" value="Other">
|
||||||
|
<label for="other_allergy">Other</label><br><br>
|
||||||
|
|
||||||
|
<label for="allergies_other">Additional allergy details:</label><br> <input type="text" id="allergies_other" name="allergies_other"><br><br>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<h3>Organization</h3>
|
||||||
|
|
||||||
|
<input type="checkbox" id="parking" name="parking" value="Yes">
|
||||||
|
<label for="parking">I need a parking space</label><br>
|
||||||
|
|
||||||
|
<input type="checkbox" id="ride_needed" name="ride_needed" value="Yes">
|
||||||
|
<label for="ride_needed">I need a ride</label><br>
|
||||||
|
|
||||||
|
<input type="checkbox" id="ride_offer" name="ride_offer" value="Yes">
|
||||||
|
<label for="ride_offer">I can offer a ride</label><br>
|
||||||
|
|
||||||
|
<input type="checkbox" id="hotel" name="hotel" value="Yes">
|
||||||
|
<label for="hotel">I will stay in a hotel</label><br>
|
||||||
|
|
||||||
|
<input type="checkbox" id="hotel_booked" name="hotel_booked" value="Yes">
|
||||||
|
<label for="hotel_booked">My hotel is already booked</label><br><br>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<h3>Memories & Extras</h3>
|
||||||
|
|
||||||
|
<input type="checkbox" id="memory_card" name="memory_card" value="Yes">
|
||||||
|
<label for="memory_card">I would like a keepsake greeting card</label><br>
|
||||||
|
|
||||||
|
<input type="checkbox" id="photo_link" name="photo_link" value="Yes">
|
||||||
|
<label for="photo_link">I would like to receive the wedding photo gallery link</label><br><br>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<h3>Entertainment</h3>
|
||||||
|
|
||||||
|
<label for="music_request">Song request:</label><br> <input type="text" id="music_request" name="music_request"><br><br>
|
||||||
|
|
||||||
|
<label>I would like to contribute:</label><br>
|
||||||
|
|
||||||
|
<input type="checkbox" id="speech" name="contribution[]" value="Speech">
|
||||||
|
<label for="speech">Speech</label><br>
|
||||||
|
|
||||||
|
<input type="checkbox" id="game" name="contribution[]" value="Game">
|
||||||
|
<label for="game">Game</label><br>
|
||||||
|
|
||||||
|
<input type="checkbox" id="surprise" name="contribution[]" value="Surprise">
|
||||||
|
<label for="surprise">Surprise</label><br>
|
||||||
|
|
||||||
|
<input type="checkbox" id="other_contribution" name="contribution[]" value="Other">
|
||||||
|
<label for="other_contribution">Other</label><br><br>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<h3>Children</h3>
|
||||||
|
|
||||||
|
<input type="radio" id="children_yes" name="children" value="Yes">
|
||||||
|
<label for="children_yes">Yes</label>
|
||||||
|
|
||||||
|
<input type="radio" id="children_no" name="children" value="No" checked>
|
||||||
|
<label for="children_no">No</label><br><br>
|
||||||
|
|
||||||
|
<div id="children-details" style="display:none;">
|
||||||
|
|
||||||
|
```
|
||||||
|
<label for="children_count">Number of children:</label><br>
|
||||||
|
<input type="number" id="children_count" name="children_count" min="1"><br><br>
|
||||||
|
|
||||||
|
<label for="children_ages">Age(s) of the children:</label><br>
|
||||||
|
<input type="text"
|
||||||
|
id="children_ages"
|
||||||
|
name="children_ages"
|
||||||
|
placeholder="3, 7, 10"><br><br>
|
||||||
|
```
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<h3>Message to the Bride & Groom</h3>
|
||||||
|
|
||||||
|
<textarea id="message"
|
||||||
|
name="message"
|
||||||
|
rows="5"
|
||||||
|
cols="50"></textarea><br><br>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<h3>Privacy</h3>
|
||||||
|
|
||||||
|
<input type="checkbox"
|
||||||
|
id="privacy"
|
||||||
|
name="privacy"
|
||||||
|
value="Yes"
|
||||||
|
required>
|
||||||
|
|
||||||
|
<label for="privacy">
|
||||||
|
I agree that my information may be stored and used for wedding planning.
|
||||||
|
</label><br><br>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<input type="text" name="website" style="display:none">
|
||||||
|
|
||||||
|
<button type="submit">
|
||||||
|
Send
|
||||||
|
</button>
|
||||||
|
|
||||||
|
</form>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
document.querySelectorAll('input[name="children"]').forEach(el => {
|
||||||
|
el.addEventListener('change', function() {
|
||||||
|
document.getElementById('children-details').style.display =
|
||||||
|
this.value === 'Yes' ? 'block' : 'none';
|
||||||
|
});
|
||||||
|
});
|
||||||
|
</script>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<div class="footer">
|
||||||
|
<p>We look forward to celebrating with you ❤️</p>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
var labels = {
|
||||||
|
day: "d",
|
||||||
|
hour: "h",
|
||||||
|
minute: "m",
|
||||||
|
second: "s"
|
||||||
|
};
|
||||||
|
|
||||||
|
var countDownDate = new Date(" ").getTime();
|
||||||
|
|
||||||
|
var x = setInterval(function() {
|
||||||
|
var now = new Date().getTime();
|
||||||
|
var distance = countDownDate - now;
|
||||||
|
|
||||||
|
var days = Math.floor(distance / (1000 * 60 * 60 * 24));
|
||||||
|
var hours = Math.floor((distance % (1000 * 60 * 60 * 24)) / (1000 * 60 * 60));
|
||||||
|
var minutes = Math.floor((distance % (1000 * 60 * 60)) / (1000 * 60));
|
||||||
|
var seconds = Math.floor((distance % (1000 * 60)) / 1000);
|
||||||
|
|
||||||
|
document.getElementById("timer").innerHTML =
|
||||||
|
days + " " + labels.day + " " +
|
||||||
|
hours + " " + labels.hour + " " +
|
||||||
|
minutes + " " + labels.minute + " " +
|
||||||
|
seconds + " " + labels.second;
|
||||||
|
|
||||||
|
if (distance < 0) {
|
||||||
|
clearInterval(x);
|
||||||
|
document.getElementById("timer").innerHTML = "The big day is here!";
|
||||||
|
}
|
||||||
|
}, 1000);
|
||||||
|
</script>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<footer class="footer">
|
||||||
|
<section class="container">
|
||||||
|
©
|
||||||
|
|
||||||
|
2026
|
||||||
|
Markin Stefan
|
||||||
|
·
|
||||||
|
|
||||||
|
Powered by <a href="https://gohugo.io/" target="_blank" rel="noopener">Hugo</a> & <a href="https://github.com/luizdepra/hugo-coder/" target="_blank" rel="noopener">Coder</a>.
|
||||||
|
|
||||||
|
</section>
|
||||||
|
</footer>
|
||||||
|
|
||||||
|
</main>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<script src="/js/coder.min.6ae284be93d2d19dad1f02b0039508d9aab3180a12a06dcc71b0b0ef7825a317.js" integrity="sha256-auKEvpPS0Z2tHwKwA5UI2aqzGAoSoG3McbCw73gloxc="></script>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
</body>
|
||||||
|
|
||||||
|
</html>
|
||||||
@@ -397,6 +397,9 @@ btn.addEventListener("click", async () => {
|
|||||||
<form action="/rsvp-submit.php" method="POST">
|
<form action="/rsvp-submit.php" method="POST">
|
||||||
|
|
||||||
|
|
||||||
|
<input type="hidden" name="lang" value="en">
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
<h3>Personal Information</h3>
|
<h3>Personal Information</h3>
|
||||||
|
|
||||||
|
|||||||
@@ -207,6 +207,16 @@ EOD;
|
|||||||
|
|
||||||
$mail->send();
|
$mail->send();
|
||||||
|
|
||||||
|
$lang = $_POST['lang'] ?? 'en';
|
||||||
|
|
||||||
|
$allowedLangs = ['en', 'de', 'ru'];
|
||||||
|
|
||||||
|
if (!in_array($lang, $allowedLangs, true)) {
|
||||||
|
$lang = 'en';
|
||||||
|
}
|
||||||
|
|
||||||
|
header("Location: /{$lang}/thank-you/");
|
||||||
|
exit;
|
||||||
header('Location: /thank-you/');
|
header('Location: /thank-you/');
|
||||||
exit;
|
exit;
|
||||||
|
|
||||||
|
|||||||
Reference in new issue
Block a user