This commit is contained in:
Roman Pyrih
2025-12-03 16:00:50 +01:00
parent abfc2094e6
commit 9602949e0e
5 changed files with 834 additions and 175 deletions

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@@ -38,6 +38,14 @@ strong {
column-gap: 50px;
align-items: center;
justify-content: space-between;
min-height: 390px;
@include respond-below(md) {
flex-direction: column;
padding-top: 50px;
text-align: center;
row-gap: 50px;
}
.c-col {
&-1 {
@@ -54,6 +62,10 @@ strong {
font-size: 55px;
line-height: 1;
letter-spacing: 2px;
@include respond-below(lg) {
font-size: 40px;
}
}
}
@@ -70,6 +82,10 @@ strong {
line-height: 1.6;
letter-spacing: 2px;
text-transform: uppercase;
@include respond-below(lg) {
font-size: 24px;
}
}
}
@@ -105,6 +121,10 @@ strong {
border-radius: 10px;
text-align: center;
@include respond-below(lg) {
padding: 14px 13px;
}
span {
display: inline-block;
color: $cWhite;
@@ -112,6 +132,10 @@ strong {
font-weight: 700;
font-size: 16px;
line-height: 1.2;
@include respond-below(lg) {
font-size: 14px;
}
}
}
}
@@ -142,6 +166,11 @@ strong {
display: flex;
flex-direction: row;
align-items: center;
@include respond-below(md) {
flex-direction: column;
}
.c-col {
&-1 {
width: 100%;
@@ -151,7 +180,21 @@ strong {
border-bottom: 1px solid #b79f87;
border-top-left-radius: 30px;
border-bottom-left-radius: 30px;
padding: 45px 0 45px 60px;
padding: 45px 30px 45px 60px;
@include respond-below(lg) {
padding: 30px;
}
@include respond-below(md) {
max-width: unset;
text-align: center;
border-bottom: 0;
border-right: 1px solid #b79f87;
border-top-right-radius: 30px;
border-bottom-left-radius: 0;
padding: 30px 30px 60px 30px;
margin-bottom: -25px;
}
.box-text {
margin-bottom: 40px;
@@ -163,6 +206,10 @@ strong {
font-size: 24px;
line-height: 34px;
letter-spacing: -0.48px;
@include respond-below(lg) {
font-size: 20px;
}
}
ul {
width: 100%;
@@ -170,6 +217,17 @@ strong {
padding-left: 30px;
margin: 35px 0;
@include respond-below(lg) {
margin: 20px 0;
}
@include respond-below(md) {
display: flex;
flex-direction: column;
align-items: center;
max-width: unset;
}
li {
color: $cTxtBlack;
font-family: 'URW Form';
@@ -178,8 +236,16 @@ strong {
line-height: 34px;
letter-spacing: -0.48px;
@include respond-below(lg) {
font-size: 20px;
}
&:not(:last-child) {
margin-bottom: 15px;
@include respond-below(lg) {
margin-bottom: 5px;
}
}
}
}
@@ -191,6 +257,13 @@ strong {
flex-direction: column;
row-gap: 26px;
@include respond-below(lg) {
row-gap: 20px;
}
@include respond-below(md) {
align-items: center;
}
._radio {
display: inline-flex;
align-items: center;
@@ -224,6 +297,10 @@ strong {
border-radius: 20px;
border: 1px solid #dfdfdf;
padding: 13px;
@include respond-below(lg) {
font-size: 18px;
}
}
}
}
@@ -234,6 +311,9 @@ strong {
background: #f7f6f5;
border-radius: 14px 0 5px 22px;
@include respond-below(md) {
border-radius: 14px 14px 22px 22px;
}
input {
&[type='text'],
&[type='email'] {
@@ -505,6 +585,15 @@ strong {
line-height: 1;
text-align: center;
letter-spacing: 0.01em;
margin: 0;
@include respond-below(lg) {
font-size: 38px;
}
@include respond-below(md) {
font-size: 28px;
line-height: 1.5;
}
}
}
.box-text {
@@ -516,6 +605,10 @@ strong {
line-height: 1.37;
text-align: center;
letter-spacing: 0.01em;
@include respond-below(md) {
font-size: 20px;
}
}
}
}
@@ -531,7 +624,7 @@ strong {
#box-showrooms {
display: flex;
flex-direction: row;
column-gap: 70px;
column-gap: 60px;
nav#showrooms-nav {
margin-top: 105px;
@@ -572,7 +665,7 @@ strong {
#showrooms-lists {
display: grid;
grid-template-columns: 1fr 1fr;
gap: 50px;
gap: 40px;
width: 100%;
.showrooms-list {
@@ -610,6 +703,9 @@ strong {
}
}
.showrooms-list-cards {
max-height: 500px;
overflow-y: auto;
ol {
padding: 0;
margin: 0;
@@ -636,7 +732,7 @@ strong {
font-family: $font3;
font-weight: 400;
font-size: 16px;
line-height: 1.5;
line-height: 1.3;
text-align: center;
}
}
@@ -655,117 +751,122 @@ strong {
cursor: pointer;
}
}
}
}
}
}
}
.showroom-card--popup {
position: fixed;
inset: 0;
display: flex;
align-items: center;
justify-content: center;
z-index: 1;
backdrop-filter: blur(3px);
background: rgba(0, 0, 0, 0.2);
#showroom-popup.showroom-card--popup {
position: fixed;
inset: 0;
display: flex;
align-items: center;
justify-content: center;
z-index: 1;
backdrop-filter: blur(3px);
background: rgba(0, 0, 0, 0.2);
visibility: hidden;
opacity: 0;
visibility: hidden;
opacity: 0;
transition: all 50ms ease-in-out;
transition: all 50ms ease-in-out;
&.active {
visibility: visible;
opacity: 1;
}
&.active {
visibility: visible;
opacity: 1;
}
.showroom-card--popup-wrapper {
width: 650px;
margin-top: 120px;
background: $cWhite;
border-radius: 30px;
display: flex;
flex-direction: column;
overflow: hidden;
.showroom-card--popup-wrapper {
width: 650px;
margin-top: 120px;
background: $cWhite;
border-radius: 30px;
display: flex;
flex-direction: column;
overflow: hidden;
.popup--head {
display: flex;
flex-direction: row;
background: #1e2832;
padding: 40px 60px 35px 60px;
.popup--head {
display: flex;
flex-direction: row;
background: #1e2832;
padding: 40px 60px 35px 60px;
p {
color: $cWhite;
font-family: $font3;
font-weight: 600;
font-size: 20px;
line-height: 1;
margin: 0;
p {
color: $cWhite;
font-family: $font3;
font-weight: 600;
font-size: 20px;
line-height: 1;
margin: 0;
position: relative;
position: relative;
&:not(:last-child) {
padding-right: 25px;
margin-right: 25px;
&:not(:last-child) {
padding-right: 25px;
margin-right: 25px;
&::before {
content: '';
position: absolute;
top: 0;
right: 0;
bottom: 3px;
width: 1px;
background: $cWhite;
}
}
}
}
.popup--body {
padding: 20px;
.popup--body-info {
display: grid;
grid-template-columns: repeat(2, 1fr);
gap: 30px;
p,
a {
color: $cTxtBlack;
font-family: $font3;
font-weight: 400;
font-size: 16px;
line-height: 1.5;
strong {
font-weight: 700;
}
}
.info-name {
p {
padding-left: 11px;
border-left: 5px solid #000;
}
}
.info-time {
}
.info-products {
img {
max-height: 30px;
}
}
}
.popup--body-map {
margin-top: 20px;
line-height: 0;
border-radius: 10px;
overflow: hidden;
}
}
}
&::before {
content: '';
position: absolute;
top: 0;
right: 0;
bottom: 3px;
width: 1px;
background: $cWhite;
}
}
}
}
.popup--body {
padding: 20px;
.popup--body-info {
display: grid;
grid-template-columns: repeat(2, 1fr);
gap: 30px;
p,
a {
color: $cTxtBlack;
font-family: $font3;
font-weight: 400;
font-size: 16px;
line-height: 1.5;
strong {
font-weight: 700;
}
}
.info-name {
p {
padding-left: 11px;
border-left: 5px solid #000;
}
}
.info-time {
}
.info-products {
img {
max-height: 30px;
}
}
}
.popup--body-map {
margin-top: 20px;
line-height: 0;
border-radius: 10px;
overflow: hidden;
height: 200px;
.popup-map {
height: 100%;
}
}
}
}
}
}
@@ -773,9 +874,116 @@ strong {
}
.box-5 {
padding-bottom: 100px;
margin-bottom: 115px;
background: #161717;
.box-5--wrapper {
padding: 100px 0;
.c-row {
.box-title {
margin-bottom: 40px;
h2 {
color: $cWhite;
font-family: $font3;
font-weight: 300;
font-size: 40px;
line-height: 1;
text-align: center;
letter-spacing: 0.01em;
margin: 0;
@include respond-below(lg) {
font-size: 36px;
}
@include respond-below(md) {
font-size: 28px;
line-height: 1.5;
}
strong {
font-weight: 500;
}
}
}
.box-form {
form {
display: flex;
flex-direction: column;
justify-content: center;
align-items: center;
.form-search {
display: flex;
flex-direction: row;
width: 100%;
max-width: 500px;
.row-input {
display: flex;
flex-direction: row;
border-bottom: 1px solid $cWhite;
gap: 10px;
width: 100%;
label {
margin: 0;
display: flex;
align-items: center;
img {
width: 16px;
filter: brightness(1) invert(1);
}
}
input {
width: 100%;
padding: 0;
margin-bottom: -1px;
background: transparent;
border: 0;
outline: none;
height: 48px;
color: $cWhite;
font-family: $font3;
font-weight: 300;
font-size: 18px;
&::placeholder {
color: #cdcdcd;
}
}
}
button {
background: $cWhite;
border: none;
border-radius: 0;
height: 48px;
color: #1e2832;
font-family: $font3;
font-weight: 300;
font-size: 18px;
line-height: 1;
margin-bottom: 0;
padding: 15px 30px;
min-width: fit-content;
outline: none;
cursor: pointer;
}
}
}
}
}
}
}
.box-6 {
padding-bottom: 100px;
.box-6--wrapper {
display: flex;
flex-direction: column;
@@ -790,11 +998,31 @@ strong {
justify-content: space-between;
gap: 40px;
@include respond-below(md) {
flex-direction: column;
}
.c-col {
&-1 {
@include respond-between(xs, md) {
display: grid;
grid-template-columns: 1fr 1fr;
grid-template-areas:
't1 t1'
't2 t3'
't4 t4';
}
@include respond-below(xs) {
display: flex;
flex-direction: column;
}
.text-1 {
margin-bottom: 20px;
@include respond-between(xs, md) {
grid-area: t1;
}
p {
color: #1e2832;
font-family: $font3;
@@ -806,6 +1034,9 @@ strong {
.text-2 {
margin-bottom: 40px;
@include respond-between(xs, md) {
grid-area: t2;
}
h2 {
color: #1e2832;
font-family: $font3;
@@ -824,6 +1055,9 @@ strong {
.text-3 {
margin-bottom: 40px;
@include respond-between(xs, md) {
grid-area: t3;
}
p {
color: #1e2832;
font-family: $font3;
@@ -834,6 +1068,9 @@ strong {
}
}
.text-4 {
@include respond-between(xs, md) {
grid-area: t4;
}
p {
color: #1e2832;
font-family: $font3;
@@ -847,12 +1084,22 @@ strong {
&-2 {
width: 100%;
max-width: 765px;
display: flex;
flex-direction: column;
.box-map {
height: 100%;
line-height: 0;
margin-bottom: 30px;
border-radius: 10px;
overflow: hidden;
@include respond-below(md) {
height: 250px;
}
#big-map {
height: 100%;
}
}
.box-info {
@@ -861,6 +1108,11 @@ strong {
align-items: center;
justify-content: space-between;
@include respond-below(sm) {
flex-direction: column;
row-gap: 40px;
text-align: center;
}
.box-info-left {
ul {
padding: 0;

View File

@@ -579,3 +579,79 @@ if (\S::get('action') == 'send-partner-form-new' and \S::get('token') == \S::get
header('Location: ' . $_SERVER['REQUEST_URI']);
exit;
}
if (\S::get('action') == 'send-contact-form-new-2' and \S::get('token') == \S::get_session('contact-form-token') and !\S::get('website'))
{
if (isset($_POST['g-recaptcha-response']))
{
$captcha = $_POST['g-recaptcha-response'];
}
if (!$captcha)
{
\S::alert("Weryfikacja reCaptcha nie powiodła się. Proszę spróbować ponownie.");
header('Location: ' . $_SERVER['REQUEST_URI']);
exit;
}
$secretKey = "6LfaovglAAAAAAz84QLdbONodP1yJUpSOVTnFMt4";
$ip = $_SERVER['REMOTE_ADDR'];
// post request to server
$url = 'https://www.google.com/recaptcha/api/siteverify?secret=' . urlencode($secretKey) . '&response=' . urlencode($captcha);
$response = file_get_contents($url);
$responseKeys = json_decode($response, true);
// should return JSON with success as true
if ($responseKeys["success"])
{
$countfiles = count($_FILES['files']['name']);
for ($i = 0; $i < $countfiles; $i++)
{
$filename = $_FILES['files']['name'][$i];
if ($filename and pathinfo($_FILES['files']['name'][$i], PATHINFO_EXTENSION) != 'php')
{
move_uploaded_file($_FILES['files']['tmp_name'][$i], 'temp/' . $filename);
$files_to_send[] = 'temp/' . $filename;
}
}
if ( \S::get('name') and \S::get('email') and \S::get('postal_code') and \S::get('phone') and \S::get('voivodeship') and \S::get('client') and strposa(\S::get('name'), $spam_words) === false and strposa(\S::get('email'), $spam_words) === false and
strposa(\S::get('postal_code'), $spam_words) === false and strposa(\S::get('phone'), $spam_words) === false and strposa(\S::get('message'), $spam_words) === false
)
{
$text = '<p><b>Klient:</b> ' . \S::get('client') . '</p>';
$text .= '<p><b>Imię:</b> ' . \S::get('name') . '</p>';
$text .= '<p><b>Nazwisko:</b> ' . \S::get('surname') . '</p>';
$text .= '<p><b>Telefon:</b> ' . \S::get('phone') . '</p>';
$text .= '<p><b>Email:</b> ' . \S::get('email') . '</p>';
$text .= '<p><b>Województwo:</b> ' . \S::get('voivodeship') . '</p>';
$text .= '<p><b>Kod pocztowy:</b> ' . \S::get('postal_code') . '</p>';
$text .= '<p><b>Wiadomość:</b> ' . nl2br(\S::get('message')) . '</p>';
$text .= '<p style="font-size: 13px; color: #ccc; margin-top: 50px;"><b>Wysłano:</b> ' . date('Y-m-d H:i:s') . '</p>';
$zgoda1 = (\S::get('zgoda_1') == 'on' || \S::get('zgoda_1') == 1) ? 1 : 0;
$zgoda2 = (\S::get('zgoda_2') == 'on' || \S::get('zgoda_2') == 1) ? 1 : 0;
saveContactData( \S::get('name'), \S::get('email'), \S::get('phone'), \S::get('message'), \S::get('postal_code'), '', '', '', '', 'contact-form-new', \S::get('voivodeship'), \S::get('client'), $zgoda1, $zgoda2 );
if (\S::send_email('marketing@vidok.com', 'Wiadomość ze strony vidok.com', $text, \S::get('email'), $files_to_send))
{
// send copy to k.zarzyczny@vidok.com
\S::send_email('k.zarzyczny@vidok.com', 'Wiadomość ze strony vidok.com', $text, \S::get('email'), $files_to_send);
\S::send_email('arkuszevidok@gmail.com', 'Wiadomość ze strony vidok.com', $text, \S::get('email'), $files_to_send);
\S::alert(\S::lang('wiadomosc-zostala-wyslana'));
header('Location: ' . $_SERVER['REQUEST_URI'] . '?form_sent=1');
exit;
}
else
\S::alert(\S::lang('wiadomosc-niezostala-wyslana'));
}
else
\S::alert(\S::lang('wiadomosc-niezostala-wyslana'));
}
else
{
\S::alert("Jesteś robotem!");
}
header('Location: ' . $_SERVER['REQUEST_URI']);
exit;
}

View File

@@ -72,9 +72,10 @@
$company_showrooms = [
[
'provinces' => $provinces['podkarpackie'],
'city' => 'Rudna Mała',
'position' => [
'lat' => 50.1024,
'lng' => 21.9760
'lat' => 50.1024449780408,
'lng' => 21.976135413360446
],
'data' => [
'text' => '<strong>Rudna Mała</strong><br/> Rudna Mała 75/k. Rzeszowa<br/> 36-054 Rudna Mała',
@@ -86,16 +87,49 @@
'contact' => '<a href="tel:+48 18 442 19 97">+48 18 442 19 97</a><br/>
<a href="tel:+48 502 458 992">+48 502 458 992</a><br/>
<a href="mailto:oknobud.sacz@gmail.com">oknobud.sacz@gmail.com</a>',
'maps' => 'https://www.google.com/maps/embed?pb=!1m18!1m12!1m3!1d2559.1425723841835!2d21.973517577050675!3d50.10233831236703!2m3!1f0!2f0!3f0!3m2!1i1024!2i768!4f13.1!3m3!1m2!1s0x473ce36b077ae3b5%3A0x31bb36833c20c2f0!2sVIDOK%20Sp.%20z%20o.o.%20Producent%20okien%20i%20drzwi!5e0!3m2!1spl!2spl!4v1764582571106!5m2!1spl!2spl'
]
],
[
]
[
'provinces' => $provinces['malopolskie'],
'city' => 'Kraków',
'position' => [
'lat' => 50.0906240891062,
'lng' => 19.916388298016695
],
'data' => [
'text' => '<strong>SALON KRAKÓW</strong><br/> ul. Opolska 12 A Kraków'
],
'data_popup' => [
'text' => '<strong>SALON KRAKÓW</strong><br/> ul. Opolska 12 A Kraków',
'time' => '<strong>Godziny otwarcia:</strong><br/> Pn-Pt: 8-17<br/> Sob.: Nieczynne<br/> Nd.: Nieczynne',
'products' => '/upload/filemanager/icon/available-products-1.svg',
'contact' => '<a href="tel:+48784919155">+48 784 919 155</a><br/>
<a href="mailto:krakow@vidok.com">krakow@vidok.com</a>',
]
],
];
$partner_showrooms = [
[
'provinces' => $provinces['podkarpackie'],
'city' => 'Rudna Mała',
'position' => [
'lat' => 50.1024449780408,
'lng' => 21.976135413360446
],
'data' => [
'text' => '<strong>Rudna Mała</strong><br/> Rudna Mała 75/k. Rzeszowa<br/> 36-054 Rudna Mała',
],
'data_popup' => [
'text' => '<strong>Rudna Mała</strong><br/> Rudna Mała 75/k. Rzeszowa<br/> 36-054 Rudna Mała',
'time' => '<strong>Godziny otwarcia:</strong><br/> Pn-Pt: 8-17<br/> Sob: 9-13',
'products' => '/upload/filemanager/icon/available-products-1.svg',
'contact' => '<a href="tel:+48 18 442 19 97">+48 18 442 19 97</a><br/>
<a href="tel:+48 502 458 992">+48 502 458 992</a><br/>
<a href="mailto:oknobud.sacz@gmail.com">oknobud.sacz@gmail.com</a>',
]
],
];
?>
@@ -155,7 +189,7 @@
<div class="container">
<div class="box-2--wrapper">
<form method="POST" action="" enctype="multipart/form-data" id="contact-form-new">
<input type="hidden" name="action" value="send-contact-form-new">
<input type="hidden" name="action" value="send-contact-form-new-2">
<input type="hidden" name="token" value="<?= \S::get_session('contact-form-token'); ?>">
<input type="hidden" name="website" value="">
<div class="c-row">
@@ -316,48 +350,18 @@
<div class="showrooms-list-cards">
<ol>
<?php foreach ($company_showrooms as $key => $value) : ?>
<li class="showroom-card" data-province='<?= $value['provinces']['name']; ?>'>
<li
class="showroom-card"
data-province='<?= $value['provinces']['name']; ?>'
data-type="company"
data-index="<?= $key; ?>"
>
<div class="showroom-card-text">
<p><?= $value['data']['text']; ?></p>
</div>
<div class="showroom-card-action">
<input type="button" value="więcej o salonie">
</div>
<div class="showroom-card--popup">
<div class="showroom-card--popup-wrapper">
<div class="popup--head">
<p>SALON FIRMOWY</p>
<p>VIDOK Okna i Drzwi</p>
</div>
<div class="popup--body">
<div class="popup--body-info">
<div class="info-name">
<p>
<?= $value['data_popup']['text']; ?>
</p>
</div>
<div class="info-time">
<p>
<?= $value['data_popup']['time']; ?>
</p>
</div>
<div class="info-products">
<p>Dostępne produkty</p>
<img src="<?= $value['data_popup']['products']; ?>" alt="">
</div>
<div class="info-contact">
<p>
<?= $value['data_popup']['contact']; ?>
</p>
</div>
</div>
<div class="popup--body-map">
<iframe src="<?= $value['data_popup']['maps']; ?>" width="100%" height="200" style="border:0;" allowfullscreen="" loading="lazy" referrerpolicy="no-referrer-when-downgrade"></iframe>
</div>
</div>
</div>
</div>
</li>
<?php endforeach; ?>
</ol>
@@ -370,34 +374,57 @@
</div>
<div class="showrooms-list-cards">
<ol>
<li class="showroom-card">
<div class="showroom-card-text">
<p>
<strong>Rudna Mała</strong><br/>
Rudna Mała 75/k. Rzeszowa<br/>
36-054 Rudna Mała
</p>
</div>
<div class="showroom-card-action">
<input type="button" value="więcej o salonie">
</div>
</li>
<li class="showroom-card">
<div class="showroom-card-text">
<p>
<strong>Rudna Mała</strong><br/>
Rudna Mała 75/k. Rzeszowa<br/>
36-054 Rudna Mała
</p>
</div>
<div class="showroom-card-action">
<input type="button" value="więcej o salonie">
</div>
</li>
<?php foreach ($partner_showrooms as $key => $value) : ?>
<li
class="showroom-card"
data-province='<?= $value['provinces']['name']; ?>'
data-type="partner"
data-index="<?= $key; ?>"
>
<div class="showroom-card-text">
<p><?= $value['data']['text']; ?></p>
</div>
<div class="showroom-card-action">
<input type="button" value="więcej o salonie">
</div>
</li>
<?php endforeach; ?>
</ol>
</div>
</div>
</div>
<div id="showroom-popup" class="showroom-card--popup">
<div class="showroom-card--popup-wrapper">
<div class="popup--head">
<p class="text"></p>
<p>VIDOK Okna i Drzwi</p>
</div>
<div class="popup--body">
<div class="popup--body-info">
<div class="info-name">
<p>
</p>
</div>
<div class="info-time">
<p>
</p>
</div>
<div class="info-products">
<p>Dostępne produkty</p>
<img src="" alt="">
</div>
<div class="info-contact">
<p>
</p>
</div>
</div>
<div class="popup--body-map">
<div id="popup-map" class="popup-map"></div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
@@ -405,8 +432,33 @@
</section>
<section class="box-5">
<div class="container">
<div class="box-5--wrapper">
<div class="c-row">
<div class="box-title">
<h2>Sprawdź, gdzie kupisz produkty <strong>VIDOK</strong></h2>
</div>
<div class="box-form">
<form action="">
<div class="form-search">
<div class="row-input">
<label for="place">
<img src="/upload/filemanager/icon/search-black.svg" alt="">
</label>
<input type="text" name="place" id="place" placeholder="wpisz miejscowość">
</div>
<button type="submit">Znajdź salon</button>
</div>
</form>
</div>
</div>
</div>
</div>
</section>
<section class="box-6">
<div class="container">
<div class="box-5--wrapper">
<div class="box-6--wrapper">
<div class="c-row c-row-1">
<div class="c-col c-col-1">
<div class="text-1">
@@ -431,7 +483,7 @@
</div>
<div class="c-col c-col-2">
<div class="box-map">
<iframe src="https://www.google.com/maps/embed?pb=!1m18!1m12!1m3!1d2559.1425723841835!2d21.973517577050675!3d50.10233831236703!2m3!1f0!2f0!3f0!3m2!1i1024!2i768!4f13.1!3m3!1m2!1s0x473ce36b077ae3b5%3A0x31bb36833c20c2f0!2sVIDOK%20Sp.%20z%20o.o.%20Producent%20okien%20i%20drzwi!5e0!3m2!1spl!2spl!4v1764582571106!5m2!1spl!2spl" width="100%" height="260" style="border:0;" allowfullscreen="" loading="lazy" referrerpolicy="no-referrer-when-downgrade"></iframe>
<div id="big-map" style="width: 100%;"></div>
</div>
<div class="box-info">
<div class="box-info-left">
@@ -513,8 +565,182 @@
</section>
</div>
<link class="footer" href="/plugins/fileuploader/jquery.fileuploader.min.css" rel="stylesheet" type="text/css">
<link class="footer" href="/plugins/fileuploader/font/font-fileuploader.css" rel="stylesheet" type="text/css">
<script src="https://maps.googleapis.com/maps/api/js?key=<?php echo $google_map_api; ?>&callback=initMap" defer></script>
<script class="footer" type="text/javascript" src="/plugins/fileuploader/jquery.fileuploader.min.js"></script>
<script class="footer" type="text/javascript">
const companyShowrooms = <?= json_encode($company_showrooms, JSON_HEX_TAG | JSON_HEX_APOS | JSON_HEX_AMP | JSON_HEX_QUOT); ?>;
const partnerShowrooms = <?= json_encode($partner_showrooms, JSON_HEX_TAG | JSON_HEX_APOS | JSON_HEX_AMP | JSON_HEX_QUOT); ?>;
let popupMap;
function initMap() {
const mapOptions = {
center: {
lat: 51.9194,
lng: 19.1451
},
zoom: 6,
styles: [
{
"featureType": "all",
"elementType": "all",
"stylers": [{
"saturation": "-100"
}]
},
{
"featureType": "administrative",
"elementType": "all",
"stylers": [{
"saturation": "-100"
}]
},
{
"featureType": "landscape",
"elementType": "all",
"stylers": [{
"saturation": "-100"
}]
},
{
"featureType": "landscape.man_made",
"elementType": "all",
"stylers": [{
"visibility": "on"
},
{
"saturation": "-100"
},
{
"gamma": "1"
}
]
},
{
"featureType": "poi",
"elementType": "all",
"stylers": [{
"saturation": "-100"
},
{
"visibility": "simplified"
}
]
},
{
"featureType": "poi",
"elementType": "geometry.fill",
"stylers": [{
"saturation": "-100"
}]
},
{
"featureType": "poi",
"elementType": "labels",
"stylers": [{
"visibility": "simplified"
}]
},
{
"featureType": "poi",
"elementType": "labels.text.fill",
"stylers": [{
"saturation": "-100"
},
{
"weight": "6.61"
},
{
"lightness": "0"
},
{
"gamma": "1.5"
}
]
},
{
"featureType": "poi",
"elementType": "labels.icon",
"stylers": [{
"saturation": "-100"
},
{
"gamma": "1.5"
},
{
"weight": "0.01"
}
]
},
{
"featureType": "road",
"elementType": "labels.icon",
"stylers": [{
"saturation": "-100"
}]
},
{
"featureType": "road.highway",
"elementType": "all",
"stylers": [{
"saturation": "-100"
}]
},
{
"featureType": "transit",
"elementType": "all",
"stylers": [{
"saturation": "-100"
}]
},
{
"featureType": "transit",
"elementType": "labels.text",
"stylers": [{
"saturation": "-100"
}]
},
{
"featureType": "transit",
"elementType": "labels.icon",
"stylers": [{
"saturation": "-100"
}]
},
{
"featureType": "water",
"elementType": "all",
"stylers": [{
"saturation": "-100"
}]
}
]
};
const bigMap = new google.maps.Map(
document.getElementById("big-map"),
{
...mapOptions,
center: {lat: 50.0411, lng: 21.9991},
zoom: 11.2,
}
);
const popupMapElement = document.getElementById("popup-map");
if (popupMapElement) {
popupMap = new google.maps.Map(
popupMapElement,
{
...mapOptions,
zoom: 12.5,
}
);
}
}
$(document).ready(function() {
$('body').on('click', '.box-5 .box-info .box-info-right', function(e){
e.preventDefault()
@@ -578,7 +804,6 @@ $(document).ready(function() {
let boxShowrooms = $('#box-showrooms');
let showroomsNav = $('#showrooms-nav', boxShowrooms)
$(document).on('click', '.showroom-card--popup', function(e) {
if (e.target === this) {
$(this).removeClass('active');
@@ -621,15 +846,121 @@ $(document).ready(function() {
}
}
function showMoreInfoPopup(item){
function showMoreInfoPopup2(item) {
$(item).parent().siblings('.showroom-card--popup').addClass('active')
$('body').addClass('fixed')
}
function showMoreInfoPopup(item) {
const card = $(item).closest('.showroom-card');
const type = card.data('type');
const index = card.data('index');
const mapPointIcon = "https://maps.google.com/mapfiles/ms/icons/yellow-dot.png";
let showroom;
let popupHeadText;
if (type === 'company') {
showroom = companyShowrooms[index];
popupHeadText = 'SALON FIRMOWY';
} else if (type === 'partner') {
showroom = partnerShowrooms[index];
popupHeadText = 'SALON PARTNERSKI';
} else {
return;
}
const popup = $('#showroom-popup');
// HTML to popup
$('.popup--head .text', popup).html(popupHeadText || '');
$('.info-name p', popup).html(showroom.data_popup.text || '');
$('.info-time p', popup).html(showroom.data_popup.time || '');
$('.info-products img', popup).attr('src', showroom.data_popup.products || '');
$('.info-contact p', popup).html(showroom.data_popup.contact || '');
popup.addClass('active');
$('body').addClass('fixed');
// popup map init
if (popupMap && showroom.position) {
const pos = {
lat: parseFloat(showroom.position.lat),
lng: parseFloat(showroom.position.lng)
};
popupMap.setCenter(pos);
popupMap.setZoom(13);
if (window.popupMarker) {
window.popupMarker.setMap(null);
}
window.popupMarker = new google.maps.Marker({
map: popupMap,
position: pos,
icon: mapPointIcon
});
}
}
// MARK: auto load functions
defaultProvinces();
})
$(document).ready(function () {
const allShowrooms = [...companyShowrooms, ...partnerShowrooms];
function normalizeString(str) {
return str
.toString()
.trim()
.toLowerCase()
.normalize("NFD")
.replace(/[\u0300-\u036f]/g, "");
}
function findProvinceByPlace(place) {
const normalizedPlace = normalizeString(place);
for (let showroom of allShowrooms) {
if (!showroom.city) continue;
if (normalizeString(showroom.city) === normalizedPlace) {
return showroom.provinces.name;
}
}
return null;
}
$('.box-5 .box-form form').on('submit', function (e) {
e.preventDefault();
const place = $('#place').val();
if (!place) return;
const provinceName = findProvinceByPlace(place);
if (!provinceName) {
alert('Nie znaleziono salonu w podanej miejscowości.');
return;
}
const targetBtn = $('#showrooms-nav input.js-showrooms-nav-btn').filter(function () {
return $(this).attr('data-province') === provinceName;
});
if (!targetBtn.length) {
alert('Znaleziono miejscowość, ale nie udało się dopasować województwa w nawigacji.');
return;
}
targetBtn.trigger('click');
$('html, body').animate({
scrollTop: $('.box-4').offset().top - 200
}, 600);
});
});
</script>