2 Commits

Author SHA1 Message Date
“VeLiTi”
e4ddab934c Merge branch 'development'
#Conflicts:
#	admin/countries.php
#	cart.php
#	custom/css/main.css
#	custom/customfunctions.php
#	custom/email/order-details-template.php
#	custom/email/order-invoice-template.php
#	custom/email/order-notification-template.php
#	custom/pages/about.php
#	custom/pages/about_morval.php
#	custom/settings/config.php
#	custom/settings/settings.php
#	functions.php
#	home.php
#	products.php
#	script.js
2025-08-12 15:46:06 +02:00
“VeLiTi”
b9193fc3dc test branch 2025-05-26 11:51:25 +02:00
14 changed files with 523 additions and 1 deletions

View File

@@ -181,7 +181,10 @@ $view .= '
</td>'; </td>';
} }
$view .= ' <td class="cart_price product-total">'.currency_code.''.number_format($product['options_price'] * $product['quantity'],2).'</td> $view .= ' <td class="cart_price product-total">'.currency_code.''.number_format($product['options_price'] * $product['quantity'],2).'</td>
<<<<<<< HEAD
=======
<td><a href="'.url('index.php?page=cart&remove=' . $num).'" class="remove">🗑️</a></td> <td><a href="'.url('index.php?page=cart&remove=' . $num).'" class="remove">🗑️</a></td>
>>>>>>> development
</tr>'; </tr>';
} }
} }

View File

@@ -81,7 +81,11 @@ body {
/* Container */ /* Container */
.container { .container {
<<<<<<< HEAD
max-width: 1200px;
=======
max-width: 90%; max-width: 90%;
>>>>>>> development
margin: 0 auto; margin: 0 auto;
padding: 0 15px; padding: 0 15px;
} }
@@ -168,11 +172,19 @@ nav {
background-image: url('../../custom/assets/header.jpg'); background-image: url('../../custom/assets/header.jpg');
background-size: cover; background-size: cover;
background-position: center; background-position: center;
<<<<<<< HEAD
height: 500px;
display: flex;
align-items: center;
position: relative;
max-width: 1200px; /* Match container max-width to constrain image */
=======
height: 60vh; height: 60vh;
display: flex; display: flex;
align-items: center; align-items: center;
position: relative; position: relative;
max-width: 90%; /* Match container max-width to constrain image */ max-width: 90%; /* Match container max-width to constrain image */
>>>>>>> development
margin: 0 auto; /* Center the hero section */ margin: 0 auto; /* Center the hero section */
} }
@@ -186,10 +198,13 @@ nav {
.hero h1 { .hero h1 {
color: var(--color-white); color: var(--color-white);
font-size: 42px; font-size: 42px;
<<<<<<< HEAD
=======
background: transparent !important; background: transparent !important;
font-weight: 900; font-weight: 900;
text-shadow: 1px 1px 2px rgb(114 90 90 / 90%), 2px 2px 4px rgba(0, 0, 0, 0.7); text-shadow: 1px 1px 2px rgb(114 90 90 / 90%), 2px 2px 4px rgba(0, 0, 0, 0.7);
filter: brightness(1.5); filter: brightness(1.5);
>>>>>>> development
line-height: 1.2; line-height: 1.2;
margin-bottom: 20px; margin-bottom: 20px;
} }
@@ -216,6 +231,12 @@ nav {
.store-description { .store-description {
text-align: center; text-align: center;
padding: 50px 20px; padding: 50px 20px;
<<<<<<< HEAD
max-width: 600px;
margin: 0 auto;
}
=======
max-width: 1000px; max-width: 1000px;
margin: 0 auto; margin: 0 auto;
} }
@@ -225,6 +246,7 @@ nav {
margin-top: 20px; margin-top: 20px;
} }
>>>>>>> development
.store-description p { .store-description p {
font-size: 20px; font-size: 20px;
line-height: 1.6; line-height: 1.6;
@@ -420,7 +442,11 @@ nav {
min-width: 140px; min-width: 140px;
display: none; display: none;
z-index: 20; z-index: 20;
<<<<<<< HEAD
margin-top: 8px;
=======
margin-top: 2px; margin-top: 2px;
>>>>>>> development
} }
.language-dropdown.show { .language-dropdown.show {
@@ -455,6 +481,8 @@ nav {
display: block; display: block;
} }
<<<<<<< HEAD
=======
/* Add invisible bridge to prevent dropdown from closing */ /* Add invisible bridge to prevent dropdown from closing */
.language-selector::before { .language-selector::before {
content: ''; content: '';
@@ -466,6 +494,7 @@ nav {
z-index: 19; z-index: 19;
} }
>>>>>>> development
/* Responsive adjustments */ /* Responsive adjustments */
@media (max-width: 768px) { @media (max-width: 768px) {
.language-selector { .language-selector {
@@ -479,7 +508,11 @@ nav {
} }
.watches-section { .watches-section {
<<<<<<< HEAD
max-width: 1200px;
=======
max-width: 90%; max-width: 90%;
>>>>>>> development
margin: 0 auto; margin: 0 auto;
padding: 20px 15px; padding: 20px 15px;
background-color: var(--color-lighter-gray); background-color: var(--color-lighter-gray);
@@ -547,11 +580,14 @@ nav {
color: var(--color-dark-gray); color: var(--color-dark-gray);
} }
<<<<<<< HEAD
=======
.price-from{ .price-from{
font-size: 0.8em; font-size: 0.8em;
opacity: 0.8; opacity: 0.8;
} }
>>>>>>> development
.slider-nav { .slider-nav {
position: absolute; position: absolute;
top: 50%; top: 50%;
@@ -626,9 +662,12 @@ nav {
padding: 0 0px 10px 10px; padding: 0 0px 10px 10px;
padding-bottom: 10px; padding-bottom: 10px;
border-bottom: solid 2px var(--color-dark-blue); border-bottom: solid 2px var(--color-dark-blue);
<<<<<<< HEAD
=======
margin-top: 5em; margin-top: 5em;
height: 12em; height: 12em;
margin-bottom: 5em; margin-bottom: 5em;
>>>>>>> development
} }
.feature-item h2 { .feature-item h2 {
@@ -659,14 +698,22 @@ nav {
.watch-ad-section { .watch-ad-section {
display: flex; display: flex;
flex-direction: column; flex-direction: column;
<<<<<<< HEAD
max-width: 1200px;
=======
max-width: 90%; max-width: 90%;
>>>>>>> development
margin: 0 auto; margin: 0 auto;
} }
.top-section { .top-section {
position: relative; position: relative;
height: 400px; height: 400px;
<<<<<<< HEAD
background-image: url('../../custom/assets/watchad1.jpg');
=======
background-image: url('../../custom/assets/comp2.png'); background-image: url('../../custom/assets/comp2.png');
>>>>>>> development
background-size: cover; background-size: cover;
background-position: center; background-position: center;
display: flex; display: flex;
@@ -695,10 +742,14 @@ nav {
.top-content h2 { .top-content h2 {
font-size: 2.5rem; font-size: 2.5rem;
<<<<<<< HEAD
font-weight: 600;
=======
background: transparent !important; background: transparent !important;
font-weight: 900; font-weight: 900;
text-shadow: 1px 1px 2px rgb(114 90 90 / 90%), 2px 2px 4px rgba(0, 0, 0, 0.7); text-shadow: 1px 1px 2px rgb(114 90 90 / 90%), 2px 2px 4px rgba(0, 0, 0, 0.7);
filter: brightness(1.5); filter: brightness(1.5);
>>>>>>> development
margin-bottom: 20px; margin-bottom: 20px;
line-height: 1.2; line-height: 1.2;
} }
@@ -721,12 +772,18 @@ nav {
.bottom-content h2 { .bottom-content h2 {
font-size: 2.5rem; font-size: 2.5rem;
<<<<<<< HEAD
font-weight: 600;
line-height: 1.2;
margin-bottom: 20px;
=======
line-height: 1.2; line-height: 1.2;
margin-bottom: 20px; margin-bottom: 20px;
background: transparent !important; background: transparent !important;
font-weight: 900; font-weight: 900;
text-shadow: 1px 1px 2px rgb(114 90 90 / 90%), 2px 2px 4px rgba(0, 0, 0, 0.7); text-shadow: 1px 1px 2px rgb(114 90 90 / 90%), 2px 2px 4px rgba(0, 0, 0, 0.7);
filter: brightness(1.5); filter: brightness(1.5);
>>>>>>> development
} }
.btn { .btn {
display: inline-block; display: inline-block;
@@ -1301,7 +1358,11 @@ nav {
/* Main Product Container */ /* Main Product Container */
.product.content-wrapper { .product.content-wrapper {
<<<<<<< HEAD
max-width: 1200px;
=======
max-width: 90%; max-width: 90%;
>>>>>>> development
margin: 2rem auto; margin: 2rem auto;
display: grid; display: grid;
grid-template-columns: 1fr 1fr; grid-template-columns: 1fr 1fr;
@@ -1674,7 +1735,11 @@ nav {
/* Global Reset and Base Styles */ /* Global Reset and Base Styles */
.cart.content-wrapper { .cart.content-wrapper {
<<<<<<< HEAD
max-width: 1200px;
=======
max-width: 90%; max-width: 90%;
>>>>>>> development
margin: 0 auto; margin: 0 auto;
padding: 2rem; padding: 2rem;
color: var(--color-text-dark); color: var(--color-text-dark);
@@ -1687,7 +1752,11 @@ nav {
/* Header Styles */ /* Header Styles */
.cart-container { .cart-container {
<<<<<<< HEAD
max-width: 1200px;
=======
max-width: 90%; max-width: 90%;
>>>>>>> development
margin: 2rem auto; margin: 2rem auto;
padding: 0 1rem; padding: 0 1rem;
} }
@@ -1814,6 +1883,96 @@ nav {
color: var(--color-primary); color: var(--color-primary);
} }
<<<<<<< HEAD
/* Extras Section */
.cart .add_products {
background-color: var(--color-lighter-gray);
padding: 2rem;
margin-bottom: 2rem;
border: 1px solid var(--color-gray);
}
.cart .add_products h2 {
font-size: 1.5rem;
margin-bottom: 1.5rem;
color: var(--color-heading);
text-align: center !important;
text-transform: uppercase;
letter-spacing: 1px;
position: relative;
}
.cart .add_products h2:after {
content: "";
display: block;
width: 50px;
height: 1px;
background-color: var(--color-primary);
margin: 10px auto 0;
}
.cart .add_product {
display: flex;
align-items: center;
padding: 1rem;
border-bottom: 1px solid var(--color-gray);
margin-bottom: 1rem;
transition: background-color 0.3s ease;
}
.cart .add_product:hover {
background-color: var(--color-light-gray);
}
.cart .add_product img {
min-width: 60px;
max-width: 60px !important;
height: auto;
margin-right: 1rem;
object-fit: cover;
transition: opacity 0.3s ease;
}
.cart .add_product img:hover {
opacity: 0.8;
}
.cart .add_product form {
margin: 0 1rem;
}
.cart .add_product input[type="submit"] {
width: 30px;
height: 30px;
background-color: var(--color-primary);
color: var(--color-white);
font-size: 1.2rem;
border: none;
cursor: pointer;
display: flex;
align-items: center;
justify-content: center;
transition: background-color 0.3s ease;
}
.cart .add_product input[type="submit"]:hover {
background-color: var(--color-primary-dark);
}
.cart .add_name {
font-weight: 400;
color: var(--color-text-dark);
margin-right: 1rem;
flex-grow: 1;
}
.cart .add_price {
font-weight: 600;
color: var(--color-primary);
white-space: nowrap;
}
=======
.cart .add_product img { .cart .add_product img {
min-width: 60px; min-width: 60px;
@@ -2117,6 +2276,7 @@ nav {
} }
} }
>>>>>>> development
/* Cart Totals */ /* Cart Totals */
.cart .total { .cart .total {
border-top: 2px solid var(--color-dark-text); border-top: 2px solid var(--color-dark-text);
@@ -2347,7 +2507,11 @@ nav {
.checkout { .checkout {
font-family: 'Inter', 'Helvetica Neue', sans-serif; font-family: 'Inter', 'Helvetica Neue', sans-serif;
color: var(--color-text-dark); color: var(--color-text-dark);
<<<<<<< HEAD
max-width: 1200px;
=======
max-width: 90%; max-width: 90%;
>>>>>>> development
margin: 0 auto; margin: 0 auto;
padding: 2rem 1rem; padding: 2rem 1rem;
} }
@@ -2747,7 +2911,11 @@ nav {
} }
.content-section { .content-section {
<<<<<<< HEAD
max-width: 1200px;
=======
max-width: 90%; max-width: 90%;
>>>>>>> development
margin: 40px auto; margin: 40px auto;
line-height: 1.6; line-height: 1.6;
} }
@@ -2821,7 +2989,11 @@ nav {
.myaccount.content-wrapper { .myaccount.content-wrapper {
<<<<<<< HEAD
max-width: 1200px;
=======
max-width: 90%; max-width: 90%;
>>>>>>> development
margin: 3rem auto; margin: 3rem auto;
padding: 0 1.5rem; padding: 0 1.5rem;
} }
@@ -3208,6 +3380,8 @@ input[type="password"] {
.order.new { .order.new {
animation: highlight 2s ease-out; animation: highlight 2s ease-out;
<<<<<<< HEAD
=======
} }
/* =================================== /* ===================================
@@ -3753,4 +3927,5 @@ input[type="password"] {
.review-item p::after { .review-item p::after {
font-size: 2.5rem; font-size: 2.5rem;
} }
>>>>>>> development
} }

View File

@@ -78,6 +78,7 @@ $view = '
// Show loading when page initially loads // Show loading when page initially loads
showLoading(); showLoading();
<<<<<<< HEAD
// Hide loading when everything is loaded // Hide loading when everything is loaded
window.addEventListener(\'load\', hideLoading); window.addEventListener(\'load\', hideLoading);
@@ -92,6 +93,22 @@ $view = '
interceptNetworkRequests(); interceptNetworkRequests();
=======
// Hide loading when everything is loaded
window.addEventListener(\'load\', hideLoading);
// In case the page loads very quickly
setTimeout(hideLoading, 500);
// Intercept form submissions
setupFormInterception();
// Intercept fetch and XMLHttpRequest
interceptNetworkRequests();
>>>>>>> development
// Intercept all form submissions // Intercept all form submissions
function setupFormInterception() { function setupFormInterception() {
const forms = document.querySelectorAll(\'form\'); const forms = document.querySelectorAll(\'form\');
@@ -176,7 +193,11 @@ $view = '
</div> </div>
<div> <div>
<span class="star-rating">★★★★★</span> <span class="star-rating">★★★★★</span>
<<<<<<< HEAD
'.($header_rating ?? 'Client rate 4.7/5.0').'
=======
'.($header_rating ?? 'Client rate 5.0/5.0').' '.($header_rating ?? 'Client rate 5.0/5.0').'
>>>>>>> development
</div> </div>
</div> </div>
@@ -193,7 +214,10 @@ $view = '
<ul class="nav-links"> <ul class="nav-links">
<li><a href="'.url('index.php').'">'.$home_text.'</a></li> <li><a href="'.url('index.php').'">'.$home_text.'</a></li>
<li><a href="'.url(link_to_collection).'">'.$products_text.'</a></li> <li><a href="'.url(link_to_collection).'">'.$products_text.'</a></li>
<<<<<<< HEAD
=======
<li><a href="'.url('index.php?page=dealers').'">'.($dealer_text ?? 'Dealers').'</a></li> <li><a href="'.url('index.php?page=dealers').'">'.($dealer_text ?? 'Dealers').'</a></li>
>>>>>>> development
<li><a href="'.url('index.php?page=about').'">'.$about_text.'</a></li> <li><a href="'.url('index.php?page=about').'">'.$about_text.'</a></li>
</ul> </ul>
</nav> </nav>
@@ -251,7 +275,10 @@ $view = '
<ul class="mobile-nav-links"> <ul class="mobile-nav-links">
<li><a href="'.url('index.php').'">'.$home_text.'</a></li> <li><a href="'.url('index.php').'">'.$home_text.'</a></li>
<li><a href="'.url(link_to_collection).'">'.$products_text.'</a></li> <li><a href="'.url(link_to_collection).'">'.$products_text.'</a></li>
<<<<<<< HEAD
=======
<li><a href="'.url('index.php?page=dealers').'">'.($dealer_text ?? 'Dealers').'</a></li> <li><a href="'.url('index.php?page=dealers').'">'.($dealer_text ?? 'Dealers').'</a></li>
>>>>>>> development
<li><a href="'.url('index.php?page=about').'">'.$about_text.'</a></li> <li><a href="'.url('index.php?page=about').'">'.$about_text.'</a></li>
<li><a href="'.url('index.php?page=cart').'">Cart</a></li> <li><a href="'.url('index.php?page=cart').'">Cart</a></li>
<li><a href="'.url('index.php?page=myaccount').'">Account</a></li> <li><a href="'.url('index.php?page=myaccount').'">Account</a></li>
@@ -516,7 +543,11 @@ function template_menu(){
// Template footer // Template footer
function template_footer() { function template_footer() {
include './custom/translations/translations_'.strtoupper($_SESSION['country_code']).'.php'; include './custom/translations/translations_'.strtoupper($_SESSION['country_code']).'.php';
<<<<<<< HEAD
=======
/* /*
>>>>>>> development
$footer = ' $footer = '
<section class="newsletter"> <section class="newsletter">
<div class="container newsletter-container"> <div class="container newsletter-container">
@@ -540,9 +571,13 @@ function template_footer() {
<button type="submit" class="btn-submit">'.($newsletter_submit ?? 'submit').'</button> <button type="submit" class="btn-submit">'.($newsletter_submit ?? 'submit').'</button>
</div> </div>
</div> </div>
<<<<<<< HEAD
</section>
=======
</section>'; </section>';
*/ */
$footer = ' $footer = '
>>>>>>> development
<footer class="footer"> <footer class="footer">
<div class="container footer-container"> <div class="container footer-container">
<div class="footer-info"> <div class="footer-info">
@@ -552,18 +587,33 @@ function template_footer() {
</div> </div>
<div class="social-icons"> <div class="social-icons">
<a href="'.instagram_link.'" class="social-icon"> <a href="'.instagram_link.'" class="social-icon">
<<<<<<< HEAD
<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
=======
<svg width="45" height="45" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"> <svg width="45" height="45" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
>>>>>>> development
<path d="M21.5 7.5V16.5C21.5 19 19.5 21 17 21H7C4.5 21 2.5 19 2.5 16.5V7.5C2.5 5 4.5 3 7 3H17C19.5 3 21.5 5 21.5 7.5Z" stroke="#1f3d6b" stroke-width="1.5" stroke-miterlimit="10" stroke-linecap="round" stroke-linejoin="round"/> <path d="M21.5 7.5V16.5C21.5 19 19.5 21 17 21H7C4.5 21 2.5 19 2.5 16.5V7.5C2.5 5 4.5 3 7 3H17C19.5 3 21.5 5 21.5 7.5Z" stroke="#1f3d6b" stroke-width="1.5" stroke-miterlimit="10" stroke-linecap="round" stroke-linejoin="round"/>
<path d="M12 15.5C13.933 15.5 15.5 13.933 15.5 12C15.5 10.067 13.933 8.5 12 8.5C10.067 8.5 8.5 10.067 8.5 12C8.5 13.933 10.067 15.5 12 15.5Z" stroke="#1f3d6b" stroke-width="1.5" stroke-miterlimit="10" stroke-linecap="round" stroke-linejoin="round"/> <path d="M12 15.5C13.933 15.5 15.5 13.933 15.5 12C15.5 10.067 13.933 8.5 12 8.5C10.067 8.5 8.5 10.067 8.5 12C8.5 13.933 10.067 15.5 12 15.5Z" stroke="#1f3d6b" stroke-width="1.5" stroke-miterlimit="10" stroke-linecap="round" stroke-linejoin="round"/>
<path d="M17.5 7.5H17.51" stroke="#1f3d6b" stroke-width="1.5" stroke-miterlimit="10" stroke-linecap="round" stroke-linejoin="round"/> <path d="M17.5 7.5H17.51" stroke="#1f3d6b" stroke-width="1.5" stroke-miterlimit="10" stroke-linecap="round" stroke-linejoin="round"/>
</svg> </svg>
</a> </a>
<a href="'.facebook_link.'" class="social-icon"> <a href="'.facebook_link.'" class="social-icon">
<<<<<<< HEAD
<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
=======
<svg width="45" height="45" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"> <svg width="45" height="45" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
>>>>>>> development
<path d="M14 9.3V12.2H16.6C16.8 12.2 16.9 12.4 16.9 12.6L16.5 14.5C16.5 14.6 16.3 14.7 16.2 14.7H14V22H11V14.8H9.3C9.1 14.8 9 14.7 9 14.5V12.6C9 12.4 9.1 12.3 9.3 12.3H11V9C11 7.3 12.3 6 14 6H16.7C16.9 6 17 6.1 17 6.3V8.7C17 8.9 16.9 9 16.7 9H14.3C14.1 9 14 9.1 14 9.3Z" stroke="#1f3d6b" stroke-width="1.5" stroke-miterlimit="10" stroke-linecap="round"/> <path d="M14 9.3V12.2H16.6C16.8 12.2 16.9 12.4 16.9 12.6L16.5 14.5C16.5 14.6 16.3 14.7 16.2 14.7H14V22H11V14.8H9.3C9.1 14.8 9 14.7 9 14.5V12.6C9 12.4 9.1 12.3 9.3 12.3H11V9C11 7.3 12.3 6 14 6H16.7C16.9 6 17 6.1 17 6.3V8.7C17 8.9 16.9 9 16.7 9H14.3C14.1 9 14 9.1 14 9.3Z" stroke="#1f3d6b" stroke-width="1.5" stroke-miterlimit="10" stroke-linecap="round"/>
<path d="M15 22H9C4 22 2 20 2 15V9C2 4 4 2 9 2H15C20 2 22 4 22 9V15C22 20 20 22 15 22Z" stroke="#1f3d6b" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/> <path d="M15 22H9C4 22 2 20 2 15V9C2 4 4 2 9 2H15C20 2 22 4 22 9V15C22 20 20 22 15 22Z" stroke="#1f3d6b" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
</svg> </svg>
</a> </a>
<<<<<<< HEAD
<a href="#" class="social-icon">
<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M16 4H8C6.34315 4 5 5.34315 5 7V17C5 18.6569 6.34315 20 8 20H16C17.6569 20 19 18.6569 19 17V7C19 5.34315 17.6569 4 16 4Z" stroke="#1f3d6b" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
<path d="M9 12V16M9 8.8V9M15 12V16M15 8.8V9" stroke="#1f3d6b" stroke-width="1.5" stroke-linecap="round"/>
</svg>
=======
<a href="https://wa.me/'.footer_phone.'?text=Hello%20I%20have%20a%20question!" class="social-icon"> <a href="https://wa.me/'.footer_phone.'?text=Hello%20I%20have%20a%20question!" class="social-icon">
<svg width="45" height="45" viewBox="0 0 45 45" fill="none" xmlns="http://www.w3.org/2000/svg"> <svg width="45" height="45" viewBox="0 0 45 45" fill="none" xmlns="http://www.w3.org/2000/svg">
<circle cx="22.5" cy="22.5" r="22.5" fill="#25D366"/> <circle cx="22.5" cy="22.5" r="22.5" fill="#25D366"/>
@@ -574,6 +624,7 @@ function template_footer() {
<path d="M11.2 9.8C11.0 9.4 10.8 9.39 10.6 9.38C10.45 9.37 10.28 9.37 10.11 9.37C9.94 9.37 9.64 9.44 9.39 9.69C9.14 9.94 8.5 10.54 8.5 11.76C8.5 12.98 9.4 14.16 9.52 14.33C9.64 14.5 11.26 17.06 13.83 18.12C15.96 19 16.4 18.82 16.89 18.78C17.38 18.74 18.35 18.18 18.56 17.6C18.77 17.02 18.77 16.52 18.7 16.41C18.63 16.3 18.46 16.23 18.2 16.09C17.94 15.95 16.72 15.35 16.48 15.26C16.24 15.17 16.07 15.13 15.9 15.39C15.73 15.65 15.26 16.23 15.11 16.4C14.96 16.57 14.81 16.59 14.55 16.45C14.29 16.31 13.49 16.05 12.54 15.21C11.8 14.56 11.31 13.77 11.16 13.51C11.01 13.25 11.14 13.11 11.28 12.97C11.4 12.85 11.55 12.65 11.69 12.5C11.83 12.35 11.87 12.24 11.96 12.07C12.05 11.9 12.01 11.75 11.94 11.61C11.87 11.47 11.38 10.25 11.2 9.8Z" fill="#25D366"/> <path d="M11.2 9.8C11.0 9.4 10.8 9.39 10.6 9.38C10.45 9.37 10.28 9.37 10.11 9.37C9.94 9.37 9.64 9.44 9.39 9.69C9.14 9.94 8.5 10.54 8.5 11.76C8.5 12.98 9.4 14.16 9.52 14.33C9.64 14.5 11.26 17.06 13.83 18.12C15.96 19 16.4 18.82 16.89 18.78C17.38 18.74 18.35 18.18 18.56 17.6C18.77 17.02 18.77 16.52 18.7 16.41C18.63 16.3 18.46 16.23 18.2 16.09C17.94 15.95 16.72 15.35 16.48 15.26C16.24 15.17 16.07 15.13 15.9 15.39C15.73 15.65 15.26 16.23 15.11 16.4C14.96 16.57 14.81 16.59 14.55 16.45C14.29 16.31 13.49 16.05 12.54 15.21C11.8 14.56 11.31 13.77 11.16 13.51C11.01 13.25 11.14 13.11 11.28 12.97C11.4 12.85 11.55 12.65 11.69 12.5C11.83 12.35 11.87 12.24 11.96 12.07C12.05 11.9 12.01 11.75 11.94 11.61C11.87 11.47 11.38 10.25 11.2 9.8Z" fill="#25D366"/>
</g> </g>
</svg> </svg>
>>>>>>> development
</a> </a>
</div> </div>
</div> </div>
@@ -581,19 +632,32 @@ function template_footer() {
<div class="container"> <div class="container">
<div class="payment-methods"> <div class="payment-methods">
<img src="'.base_url.'custom/assets/iDEAL.png" alt="iDeal" class="payment-method"> <img src="'.base_url.'custom/assets/iDEAL.png" alt="iDeal" class="payment-method">
<<<<<<< HEAD
<img src="'.base_url.'custom/assets/mastercard.png" alt="Mastercard" class="payment-method">
<img src="'.base_url.'custom/assets/visa.png" alt="Visa" class="payment-method">
=======
<!-- <img src="'.base_url.'custom/assets/mastercard.png" alt="Mastercard" class="payment-method"> --> <!-- <img src="'.base_url.'custom/assets/mastercard.png" alt="Mastercard" class="payment-method"> -->
<!-- <img src="'.base_url.'custom/assets/visa.png" alt="Visa" class="payment-method"> --> <!-- <img src="'.base_url.'custom/assets/visa.png" alt="Visa" class="payment-method"> -->
>>>>>>> development
<img src="'.base_url.'custom/assets/paypal.png" alt="Pay Pal" class="payment-method"> <img src="'.base_url.'custom/assets/paypal.png" alt="Pay Pal" class="payment-method">
</div> </div>
<div class="footer-bottom"> <div class="footer-bottom">
<div class="copyright"> <div class="copyright">
©2025 All rights reserved ©2025 All rights reserved
<<<<<<< HEAD
</div> </div>
<div class="footer-links"> <div class="footer-links">
<a href="'.termsandconditions_link.'">'.$terms_text.'</a> <a href="'.termsandconditions_link.'">'.$terms_text.'</a>
<a href="'.privacy_link.'">'.$privacy_text.'</a> <a href="'.privacy_link.'">'.$privacy_text.'</a>
</div> </div>
=======
</div>
<div class="footer-links">
<a href="'.termsandconditions_link.'">'.$terms_text.'</a>
<a href="'.privacy_link.'">'.$privacy_text.'</a>
</div>
>>>>>>> development
</div> </div>
</div> </div>
</footer> </footer>

View File

@@ -10,6 +10,41 @@ include './custom/settings/settings.php';
$country = isset($countries_in_scope[$address_country]) ? (${$countries_in_scope[$address_country]} ?? $countries_in_scope[$address_country]) : ""; $country = isset($countries_in_scope[$address_country]) ? (${$countries_in_scope[$address_country]} ?? $countries_in_scope[$address_country]) : "";
?> ?>
<<<<<<< HEAD
<?=template_order_email_header('')?>
<?php
include './custom/translations/translations_'.strtoupper($_SESSION['country_code']).'.php';
include './custom/settings/settings.php';
//GET USER COUNTRY FROM ID
$country = isset($countries_in_scope[$address_country]) ? (${$countries_in_scope[$address_country]} ?? $countries_in_scope[$address_country]) : "";
?>
</tr>
<tr><td><br></td></tr>
<tr>
<td>
<?=$address_name?><br>
<?=$address_street?><br>
<?=$address_zip?>, <?=$address_city?><br>
<?=$country?>
</td>
</tr>
<tr><td><br></td></tr>
<tr>
<td>
<h1><?=$order_email_message_1?></h1>
<p><?=$order_email_message_2?></p></td>
<td>
<p><?=$order_number_text ?? 'Order' ?>: <?=$order_id?></p>
<p><?=$order_date_text ?? 'Date'?>: <?php echo date("Y-m-d");?></p></td>
</tr>
</table>
</div>
</header>
<main>
<div class="content-wrapper">
<div class="table order-table">
=======
</tr> </tr>
<tr><td><br></td></tr> <tr><td><br></td></tr>
<tr> <tr>
@@ -39,6 +74,7 @@ $country = isset($countries_in_scope[$address_country]) ? (${$countries_in_scope
<main> <main>
<div class="content-wrapper" style="width:100%;max-width:700px;margin:auto;"> <div class="content-wrapper" style="width:100%;max-width:700px;margin:auto;">
<div class="table order-table"> <div class="table order-table">
>>>>>>> development
<table> <table>
<thead> <thead>
<tr> <tr>

View File

@@ -10,6 +10,39 @@ include './custom/settings/settings.php';
$country = isset($countries_in_scope[$invoice_cust['customer']['country']]) ? (${$countries_in_scope[$invoice_cust['customer']['country']]} ?? $countries_in_scope[$invoice_cust['customer']['country']]) : ""; $country = isset($countries_in_scope[$invoice_cust['customer']['country']]) ? (${$countries_in_scope[$invoice_cust['customer']['country']]} ?? $countries_in_scope[$invoice_cust['customer']['country']]) : "";
?> ?>
<<<<<<< HEAD
<?=template_order_email_header($user_language)?>
<?php
include './custom/translations/translations_'.strtoupper($user_language).'.php';
include './custom/settings/settings.php';
//GET USER COUNTRY FROM ID
$country = isset($countries_in_scope[$invoice_cust['customer']['country']]) ? (${$countries_in_scope[$invoice_cust['customer']['country']]} ?? $countries_in_scope[$invoice_cust['customer']['country']]) : "";
?>
</tr>
<tr><td><br></td></tr>
<tr>
<td>
<?=$invoice_cust['customer']['name']?><br>
<?=$invoice_cust['customer']['street']?><br>
<?=$invoice_cust['customer']['zip']?>, <?=$invoice_cust['customer']['city']?><br>
<?=$country?>
</td>
</tr>
<tr><td><br></td></tr>
<tr>
<td><h2><?=$order_invoice_text ?? 'Invoice'?>: <?=$invoice_cust['invoice']['id']?></h2></td>
<td><p><?=$order_date_text ?? 'Date'?>: <?php echo date("Y-m-d", strtotime($invoice_cust['invoice']['created']))?></p></td>
</tr>
</table>
</div>
</header>
<main>
<div class="content-wrapper">
=======
</tr> </tr>
<tr><td><br></td></tr> <tr><td><br></td></tr>
<tr> <tr>
@@ -30,6 +63,7 @@ $country = isset($countries_in_scope[$invoice_cust['customer']['country']]) ? ($
</header> </header>
<main> <main>
<div class="content-wrapper" style="width:100%;max-width:700px;margin:auto;"> <div class="content-wrapper" style="width:100%;max-width:700px;margin:auto;">
>>>>>>> development
<div class="table order-table"> <div class="table order-table">
<table> <table>
<thead> <thead>

View File

@@ -1,12 +1,47 @@
<?php defined(security_key) or exit; <?php defined(security_key) or exit;
<<<<<<< HEAD
<?=template_order_email_header('')?>
<?php
=======
template_order_email_header(''); template_order_email_header('');
>>>>>>> development
include './custom/translations/translations_'.strtoupper($_SESSION['country_code']).'.php'; include './custom/translations/translations_'.strtoupper($_SESSION['country_code']).'.php';
include './custom/settings/settings.php'; include './custom/settings/settings.php';
//GET USER COUNTRY FROM ID //GET USER COUNTRY FROM ID
$country = isset($countries_in_scope[$address_country]) ? (${$countries_in_scope[$address_country]} ?? $countries_in_scope[$address_country]) : ""; $country = isset($countries_in_scope[$address_country]) ? (${$countries_in_scope[$address_country]} ?? $countries_in_scope[$address_country]) : "";
<<<<<<< HEAD
?>
</tr>
<tr><td><br></td></tr>
<tr>
<td>
<?=$address_name?><br>
<?=$address_street?><br>
<?=$address_zip?>, <?=$address_city?><br>
<?=$country?>
</td>
</tr>
<tr><td><br></td></tr>
<tr>
<td>
<h1><?=$order_email_message_1?></h1>
<p><?=$order_email_message_2?></p></td>
<td>
<p><?=$order_invoice_text ?? 'Invoice'?>: <?=$order_id?></p>
<p><?=$order_date_text ?? 'Date'?>: <?php echo date("Y-m-d");?></p></td>
</tr>
</table>
</div>
</header>
<main>
<div class="content-wrapper">
<div class="table order-table">
=======
?> ?>
</tr> </tr>
@@ -36,6 +71,7 @@ $country = isset($countries_in_scope[$address_country]) ? (${$countries_in_scope
<main> <main>
<div class="content-wrapper" style="width:100%;max-width:700px;margin:auto;"> <div class="content-wrapper" style="width:100%;max-width:700px;margin:auto;">
<div class="table order-table"> <div class="table order-table">
>>>>>>> development
<table> <table>
<thead> <thead>
<tr> <tr>

View File

@@ -10,7 +10,10 @@ $view .= '
<section class="hero" style="background-image:url('.base_url.featured_about_image.');"> <section class="hero" style="background-image:url('.base_url.featured_about_image.');">
<div class="hero-content"> <div class="hero-content">
<h1>'.$h2_about_1.'</h1> <h1>'.$h2_about_1.'</h1>
<<<<<<< HEAD
=======
<a href="'.url(link_to_collection).'" class="hero-btn">'.$h2_brand_visit.'</a> <a href="'.url(link_to_collection).'" class="hero-btn">'.$h2_brand_visit.'</a>
>>>>>>> development
</div> </div>
</section> </section>

View File

@@ -11,7 +11,10 @@ $view .= '
<section class="hero" style="background-image:url('.base_url.featured_about_morval_image.');"> <section class="hero" style="background-image:url('.base_url.featured_about_morval_image.');">
<div class="hero-content"> <div class="hero-content">
<h1>'.$h2_about_morval_1.'</h1> <h1>'.$h2_about_morval_1.'</h1>
<<<<<<< HEAD
=======
<a href="'.url(link_to_collection).'" class="hero-btn">'.$h2_brand_visit.'</a> <a href="'.url(link_to_collection).'" class="hero-btn">'.$h2_brand_visit.'</a>
>>>>>>> development
</div> </div>
</section> </section>

View File

@@ -47,7 +47,11 @@ define('category_id_highlighted_products_2','22');
//Show small images from configuration //Show small images from configuration
define('show_option_images',false); define('show_option_images',false);
// Default category_id for suggestions // Default category_id for suggestions
<<<<<<< HEAD
define('category_id_checkout_suggestions','');
=======
define('category_id_checkout_suggestions','23'); define('category_id_checkout_suggestions','23');
>>>>>>> development
// Default category_id for giftcard // Default category_id for giftcard
define('giftcard_id',''); define('giftcard_id','');
// Default category_id for samples // Default category_id for samples
@@ -66,7 +70,14 @@ define('default_payment_status','New');
define('account_required',false); define('account_required',false);
// Default product sort // Default product sort
define('default_product_sort','sort3'); define('default_product_sort','sort3');
<<<<<<< HEAD
// Enable automatice invoice forward to bookkeeping software
define('invoice_bookkeeping',false);
// Email of bookkeeping software
define('email_bookkeeping','morval-wat-d24506a2@facturen.moneybird.nl');
=======
>>>>>>> development
// Rewrite URL? // Rewrite URL?
define('rewrite_url',true); define('rewrite_url',true);
@@ -119,7 +130,11 @@ define('company_kvk','89442679');
define('footer_city','St Oedenrode'); define('footer_city','St Oedenrode');
define('footer_country','Netherlands'); define('footer_country','Netherlands');
<<<<<<< HEAD
define('footer_phone','Tel: +31 639725831');
=======
define('footer_phone','31639725831'); define('footer_phone','31639725831');
>>>>>>> development
define('footer_email','info@morvalwatches.com'); define('footer_email','info@morvalwatches.com');
/* Email */ /* Email */
@@ -130,7 +145,7 @@ define('mail_enabled',true);
// Your email // Your email
define('email','info@morvalwatches.com'); define('email','info@morvalwatches.com');
// Receive email notifications? // Receive email notifications?
define('email_notifications',false); define('email_notifications',true);
//Additional phpmailer-settings //Additional phpmailer-settings
define('email_host_name','morvalwatches.com'); define('email_host_name','morvalwatches.com');
define('email_reply_to','info@morvalwatches.com'); define('email_reply_to','info@morvalwatches.com');
@@ -164,12 +179,20 @@ define('pay_on_delivery_enabled',false);
define('pay_on_delivery_default',false); define('pay_on_delivery_default',false);
// Mollie // Mollie
define('mollie_enabled',true); define('mollie_enabled',true);
<<<<<<< HEAD
define('mollie_default',false);
=======
define('mollie_default',true); define('mollie_default',true);
>>>>>>> development
define('mollie_api_key','test_TBJPkq6E3Tn6kuCjqQFv9PBGu52Ac8'); //live_m2mbPTnvVzF4tUu25mtHja6D8vHkfM define('mollie_api_key','test_TBJPkq6E3Tn6kuCjqQFv9PBGu52Ac8'); //live_m2mbPTnvVzF4tUu25mtHja6D8vHkfM
// Accept payments with PayPal? // Accept payments with PayPal?
define('paypal_enabled',true); define('paypal_enabled',true);
<<<<<<< HEAD
define('paypal_default',true);
=======
define('paypal_default',false); define('paypal_default',false);
>>>>>>> development
define('PAYPAL_URL','https://api-m.paypal.com'); define('PAYPAL_URL','https://api-m.paypal.com');
define('PAYPAL_WEBHOOK','https://www.morvalwatches.com/webhook_paypal.php'); define('PAYPAL_WEBHOOK','https://www.morvalwatches.com/webhook_paypal.php');
define('PAYPAL_CLIENT_ID','Afty4hhP24gHyVDXGIh1gMNlBZRZd6H2JB4V9fxYs7sS2IdZWa_I0B5mLxCMcwdp1pNIa_cEiXYPB5PO'); define('PAYPAL_CLIENT_ID','Afty4hhP24gHyVDXGIh1gMNlBZRZd6H2JB4V9fxYs7sS2IdZWa_I0B5mLxCMcwdp1pNIa_cEiXYPB5PO');

View File

@@ -2,6 +2,14 @@
//COUNTRIES IN SCOPE //COUNTRIES IN SCOPE
$countries_in_scope = array ( $countries_in_scope = array (
1 => 'Austria', 1 => 'Austria',
<<<<<<< HEAD
3 => 'Bulgaria',
4 => 'Cyprus',
21 => 'Netherlands',
25 => 'Sweden',
26 => 'Slovenia',
27 => 'Slovakia (Slovak Republic)',
=======
2 => 'Belgium', 2 => 'Belgium',
3 => 'Bulgaria', 3 => 'Bulgaria',
4 => 'Cyprus', 4 => 'Cyprus',
@@ -31,6 +39,7 @@ $countries_in_scope = array (
28 => 'United States', 28 => 'United States',
29 => 'Outside Europe', 29 => 'Outside Europe',
30 => 'Other', 30 => 'Other',
>>>>>>> development
); );
?> ?>

View File

@@ -601,6 +601,9 @@ function getPictureID($pdo,$id,$config){
//++++++++++++++++++++++++++++++++++++++++ //++++++++++++++++++++++++++++++++++++++++
//HomePage Products //HomePage Products
//++++++++++++++++++++++++++++++++++++++++ //++++++++++++++++++++++++++++++++++++++++
<<<<<<< HEAD
function highlightedProducts2($clientsecret,$categoryID,$range, $subtitle){
=======
function sortProducts(array $products, string $field, string $direction = 'asc'): array { function sortProducts(array $products, string $field, string $direction = 'asc'): array {
if ($field === 'random') { if ($field === 'random') {
shuffle($products); shuffle($products);
@@ -614,6 +617,7 @@ function sortProducts(array $products, string $field, string $direction = 'asc')
} }
function highlightedProducts($clientsecret,$categoryID,$range, $subtitle){ function highlightedProducts($clientsecret,$categoryID,$range, $subtitle){
>>>>>>> development
include './custom/translations/translations_'.strtoupper($_SESSION['country_code']).'.php'; include './custom/translations/translations_'.strtoupper($_SESSION['country_code']).'.php';
@@ -631,6 +635,12 @@ function highlightedProducts($clientsecret,$categoryID,$range, $subtitle){
<section class="watches-section"> <section class="watches-section">
<div class="container"> <div class="container">
<div class="section-header"> <div class="section-header">
<<<<<<< HEAD
<h2 class="section-title">'.($range ?? 'Featured Timepieces').'</h2>
<p class="section-subtitle">'.($subtitle ?? 'Explore our most popular and exquisite watch collections.').'</p>
</div>
<div class="product-slider">
=======
<h2 class="section-title">'.(!empty($range) ? $range : 'Featured Timepieces').'</h2> <h2 class="section-title">'.(!empty($range) ? $range : 'Featured Timepieces').'</h2>
<p class="section-subtitle">'.(!empty($subtitle) ? $subtitle: 'Explore our most popular and exquisite watch collections.').'</p> <p class="section-subtitle">'.(!empty($subtitle) ? $subtitle: 'Explore our most popular and exquisite watch collections.').'</p>
</div> </div>
@@ -686,6 +696,7 @@ function highlightedProducts2($clientsecret,$categoryID,$range, $subtitle){
<p class="section-subtitle">'.(!empty($subtitle) ? $subtitle: 'Explore our most popular and exquisite watch collections.').'</p> <p class="section-subtitle">'.(!empty($subtitle) ? $subtitle: 'Explore our most popular and exquisite watch collections.').'</p>
</div> </div>
<div class="product-slider" data-carousel="'.$carousel_id.'"> <div class="product-slider" data-carousel="'.$carousel_id.'">
>>>>>>> development
<div class="product-container-slider">'; <div class="product-container-slider">';
foreach ($products as $product){ foreach ($products as $product){
@@ -694,15 +705,27 @@ function highlightedProducts2($clientsecret,$categoryID,$range, $subtitle){
$section .= ' $section .= '
<div class="product-card-slider"> <div class="product-card-slider">
<<<<<<< HEAD
<a href="'.url('index.php?page=product&rowID=' . ($product['url_slug'] ? ($product['url_slug'] ) : $product['rowID'])).'" id="'.$product['rowID'].'A" class="product">
<img src="'.img_url.$product['full_path'].'" alt="'.(${$product['productname']} ?? $product['productname']).'" class="product-image-slider">
<h3 class="product-name-slider">'.(${$product['productname']} ?? $product['productname']).'</h3>
<p class="product-price-slider">'.(($product_price != 0.00) ? currency_code.number_format($product_price,2) : '').'</p>
=======
<a href="'.url('index.php?page=product&rowID=' . ($product['url_slug'] ? ($product['url_slug'] ) : $product['rowID'])).(!empty($product['main_option_for_display']) ? '/'.$product['main_option_for_display']:'').'" id="'.$product['rowID'].'A" class="product"> <a href="'.url('index.php?page=product&rowID=' . ($product['url_slug'] ? ($product['url_slug'] ) : $product['rowID'])).(!empty($product['main_option_for_display']) ? '/'.$product['main_option_for_display']:'').'" id="'.$product['rowID'].'A" class="product">
<img src="'.img_url.$product['full_path'].'" alt="'.(${$product['productname']} ?? $product['productname']).'" class="product-image-slider"> <img src="'.img_url.$product['full_path'].'" alt="'.(${$product['productname']} ?? $product['productname']).'" class="product-image-slider">
<h3 class="product-name-slider">'.(${$product['productname']} ?? $product['productname']).'</h3> <h3 class="product-name-slider">'.(${$product['productname']} ?? $product['productname']).'</h3>
<p class="product-price-slider">'.(($product_price != 0.00) ? '<span class="price-from">'.$price_from.' </span>'.currency_code.number_format($product_price,2) : '').'</p> <p class="product-price-slider">'.(($product_price != 0.00) ? '<span class="price-from">'.$price_from.' </span>'.currency_code.number_format($product_price,2) : '').'</p>
>>>>>>> development
</a> </a>
</div>'; </div>';
} }
$section .= '</div> $section .= '</div>
<<<<<<< HEAD
<button class="slider-nav prev-btn"><i class="fas fa-chevron-left"></i></button>
<button class="slider-nav next-btn"><i class="fas fa-chevron-right"></i></button>
</div>
=======
<button class="slider-nav prev-btn" data-carousel="'.$carousel_id.'"><i class="fas fa-chevron-left"></i></button> <button class="slider-nav prev-btn" data-carousel="'.$carousel_id.'"><i class="fas fa-chevron-left"></i></button>
<button class="slider-nav next-btn" data-carousel="'.$carousel_id.'"><i class="fas fa-chevron-right"></i></button> <button class="slider-nav next-btn" data-carousel="'.$carousel_id.'"><i class="fas fa-chevron-right"></i></button>
</div> </div>
@@ -712,11 +735,16 @@ function highlightedProducts2($clientsecret,$categoryID,$range, $subtitle){
</a> </a>
</div> </div>
>>>>>>> development
</div> </div>
</section> </section>
<div class="divider"></div> <div class="divider"></div>
'; ';
<<<<<<< HEAD
=======
>>>>>>> development
return $section ; return $section ;
} }

View File

@@ -27,6 +27,30 @@ $view .= '
// ++++++++++++++++++++++++++++++ // ++++++++++++++++++++++++++++++
// Include highlighted Products // Include highlighted Products
// ++++++++++++++++++++++++++++++ // ++++++++++++++++++++++++++++++
<<<<<<< HEAD
$view .= highlightedProducts2($clientsecret,category_id_highlighted_products_2, ($highlight_2 ?? 'highlight 2'),'');
$view .= '
<section class="watch-ad-section">
<div class="top-section">
<div class="watch-image">
</div>
<div class="top-content">
<h2>'.($ad_watch_1 ?? 'Dutch design and Swiss craftsmanship').'</h2>
<a href="'.url('index.php?page=about').'" class="btn">'.($btn_readmore ?? 'Read more').'</a>
</div>
</div>
<div class="bottom-section">
<div class="bottom-content">
<h2>'.($ad_watch_2 ?? 'Timeless timepieces that will last for generations!').'</h2>
<a href="'.url(link_to_collection).'" class="btn">'.$h2_brand_visit.'</a>
</div>
</div>
</section>';
=======
$view .= highlightedProducts2($clientsecret,category_id_highlighted_products_1, ($highlight_2 ?? 'highlight 2'),''); $view .= highlightedProducts2($clientsecret,category_id_highlighted_products_1, ($highlight_2 ?? 'highlight 2'),'');
$view .= highlightedProducts($clientsecret,category_id_highlighted_products_2, ($highlight_2 ?? 'highlight 2'),''); $view .= highlightedProducts($clientsecret,category_id_highlighted_products_2, ($highlight_2 ?? 'highlight 2'),'');
@@ -51,6 +75,7 @@ $view .= '
</section>'; </section>';
>>>>>>> development
$view .= ' $view .= '
<section class="features"> <section class="features">
<div class="container features-container"> <div class="container features-container">
@@ -65,6 +90,8 @@ $view .= '
<div class="feature-item"> <div class="feature-item">
<h2>'.($home_price ?? 'Price').'</h2> <h2>'.($home_price ?? 'Price').'</h2>
<p>'.($home_price_text ?? 'Morval stands for an excellent price-quality ratio').'</p> <p>'.($home_price_text ?? 'Morval stands for an excellent price-quality ratio').'</p>
<<<<<<< HEAD
=======
</div> </div>
</div> </div>
</section>'; </section>';
@@ -93,10 +120,63 @@ $view .= '
<p>Eind Januari heb ik een Morval Watch gekocht. Ik heb gekozen voor het model Thomas II in de kleur navy blue met stalen band. Tevens heb ik er een extra lederen band bij gekozen. Behalve het stijlvolle ontwerp en de Zwitserse kwaliteit, sprak het kleinschalige en het verhaal achter deze horloge me enorm aan! Uniek, stijlvol en kwaliteit voor een eerlijke prijs! Wat mij betreft zeker 5 sterren waard!</p> <p>Eind Januari heb ik een Morval Watch gekocht. Ik heb gekozen voor het model Thomas II in de kleur navy blue met stalen band. Tevens heb ik er een extra lederen band bij gekozen. Behalve het stijlvolle ontwerp en de Zwitserse kwaliteit, sprak het kleinschalige en het verhaal achter deze horloge me enorm aan! Uniek, stijlvol en kwaliteit voor een eerlijke prijs! Wat mij betreft zeker 5 sterren waard!</p>
<div class="reviewer">- W. Habraken</div> <div class="reviewer">- W. Habraken</div>
</div> </div>
>>>>>>> development
</div> </div>
</div> </div>
</section>'; </section>';
<<<<<<< HEAD
// ++++++++++++++++++++++++++++++
// Include footer
// ++++++++++++++++++++++++++++++
$view .= template_footer();
// ++++++++++++++++++++++++++++++
// Additional JS scripts for page
// ++++++++++++++++++++++++++++++
$view .='
<script>
// Basic slider functionality
const prevBtn = document.querySelector(\'.prev-btn\');
const nextBtn = document.querySelector(\'.next-btn\');
const productContainer = document.querySelector(\'.product-container-slider\');
const products = document.querySelectorAll(\'.product-card-slider\');
let currentIndex = 0;
const productsPerView = window.innerWidth < 480 ? 1 :
window.innerWidth < 768 ? 2 :
window.innerWidth < 992 ? 3 : 4;
prevBtn.addEventListener(\'click\', () => {
if (currentIndex > 0) {
currentIndex--;
updateSliderPosition();
}
});
nextBtn.addEventListener(\'click\', () => {
if (currentIndex < products.length - productsPerView) {
currentIndex++;
updateSliderPosition();
}
});
function updateSliderPosition() {
const productWidth = products[0].offsetWidth;
productContainer.style.transform = `translateX(-${currentIndex * productWidth}px)`;
}
// Update slider on window resize
window.addEventListener(\'resize\', () => {
// Reset position when screen size changes
currentIndex = 0;
updateSliderPosition();
});
</script>
=======
// ++++++++++++++++++++++++++++++ // ++++++++++++++++++++++++++++++
// Include footer // Include footer
// ++++++++++++++++++++++++++++++ // ++++++++++++++++++++++++++++++
@@ -195,6 +275,7 @@ if (document.readyState === \'loading\') {
} }
</script> </script>
>>>>>>> development
</html> </html>
'; ';

View File

@@ -39,11 +39,14 @@ if (isset($_POST['category'])){
$products = ioAPIv2('/v2/catalog/'.$url_input,'',$clientsecret); $products = ioAPIv2('/v2/catalog/'.$url_input,'',$clientsecret);
$products = json_decode($products,true); $products = json_decode($products,true);
$total_products = count($products); $total_products = count($products);
<<<<<<< HEAD
=======
//SORT BY NAME //SORT BY NAME
usort($products, function($a, $b) { usort($products, function($a, $b) {
return strcmp($a['productname'], $b['productname']); return strcmp($a['productname'], $b['productname']);
}); });
>>>>>>> development
//INCLUDE THE HEADER //INCLUDE THE HEADER
$view = template_header($products_text,''); $view = template_header($products_text,'');
@@ -99,6 +102,16 @@ $view .= '</form>
<div class="product-grid">'; <div class="product-grid">';
foreach ($products as $product){ foreach ($products as $product){
<<<<<<< HEAD
// Ensure product price is a numeric value
$product_price = isset($product['price']) && $product['price'] > 0 ? floatval($product['price']) : 0.00;
//SHOW LARGE PICTURE
$view .= '
<div class="product-card">
<a href="'.url('index.php?page=product&rowID=' . ($product['url_slug'] ? ($product['url_slug'] ) : $product['rowID'])).'" id="'.$product['rowID'].'A" class="product">
=======
// Ensure product price is a numeric value // Ensure product price is a numeric value
$product_price = isset($product['price']) && $product['price'] > 0 ? floatval($product['price']) : 0.00; $product_price = isset($product['price']) && $product['price'] > 0 ? floatval($product['price']) : 0.00;
@@ -107,13 +120,19 @@ $view .= '</form>
$view .= ' $view .= '
<div class="product-card"> <div class="product-card">
<a href="'.url('index.php?page=product&rowID=' . ($product['url_slug'] ? ($product['url_slug'] ) : $product['rowID'])).(!empty($product['main_option_for_display']) ? '/'.$product['main_option_for_display']:'').'" id="'.$product['rowID'].'A" class="product"> <a href="'.url('index.php?page=product&rowID=' . ($product['url_slug'] ? ($product['url_slug'] ) : $product['rowID'])).(!empty($product['main_option_for_display']) ? '/'.$product['main_option_for_display']:'').'" id="'.$product['rowID'].'A" class="product">
>>>>>>> development
<img src="'.img_url.$product['full_path'].'" id="'.$product['rowID'].'" width="" height="250" alt="'.(${$product['productname']} ?? $product['productname']).'"> <img src="'.img_url.$product['full_path'].'" id="'.$product['rowID'].'" width="" height="250" alt="'.(${$product['productname']} ?? $product['productname']).'">
</a>'; </a>';
//CHECK IF CONFIGURATION SETTING IS FOUND AND NOT EMPTY => USE GROUP TO DISPLAY IMAGES //CHECK IF CONFIGURATION SETTING IS FOUND AND NOT EMPTY => USE GROUP TO DISPLAY IMAGES
if (isset($product['configurations']) && isset($product['config_setting']) && $product['config_setting'] != ''){ if (isset($product['configurations']) && isset($product['config_setting']) && $product['config_setting'] != ''){
<<<<<<< HEAD
=======
>>>>>>> development
//GET THE CONFIG_SETTING GROuP AND DISPLAY //GET THE CONFIG_SETTING GROuP AND DISPLAY
foreach ($product['configurations'] as $config){ foreach ($product['configurations'] as $config){
@@ -176,7 +195,11 @@ $view .= '</form>
if (isset($product_price)){ if (isset($product_price)){
<<<<<<< HEAD
$view .= '<span class="products_price" id="'.$product['rowID'].'C">'.(($product_price != 0.00) ? currency_code.number_format($product_price,2) : '').'';
=======
$view .= '<span class="products_price" id="'.$product['rowID'].'C">'.(($product_price != 0.00) ? '<span class="price-from">'.$price_from.' </span>'.currency_code.number_format($product_price,2) : '').''; $view .= '<span class="products_price" id="'.$product['rowID'].'C">'.(($product_price != 0.00) ? '<span class="price-from">'.$price_from.' </span>'.currency_code.number_format($product_price,2) : '').'';
>>>>>>> development
if (isset($product['rrp']) && $product['rrp'] > 0){ if (isset($product['rrp']) && $product['rrp'] > 0){
$view .= '<span class="products_rrp">'.currency_code.number_format($product['rrp'],2).'</span>'; $view .= '<span class="products_rrp">'.currency_code.number_format($product['rrp'],2).'</span>';

View File

@@ -1,3 +1,7 @@
<<<<<<< HEAD
=======
>>>>>>> development
if (document.querySelector('.product-img-small')) { if (document.querySelector('.product-img-small')) {
let imgs = document.querySelectorAll('.product-img-small img'); let imgs = document.querySelectorAll('.product-img-small img');
let mainImg = document.querySelector('.product-img-large img'); let mainImg = document.querySelector('.product-img-large img');