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
This commit is contained in:
“VeLiTi”
2025-08-12 15:46:06 +02:00
39 changed files with 13014 additions and 4983 deletions

View File

@@ -78,6 +78,7 @@ $view = '
// Show loading when page initially loads
showLoading();
<<<<<<< HEAD
// Hide loading when everything is loaded
window.addEventListener(\'load\', hideLoading);
@@ -92,6 +93,22 @@ $view = '
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
function setupFormInterception() {
const forms = document.querySelectorAll(\'form\');
@@ -176,7 +193,11 @@ $view = '
</div>
<div>
<span class="star-rating">★★★★★</span>
<<<<<<< HEAD
'.($header_rating ?? 'Client rate 4.7/5.0').'
=======
'.($header_rating ?? 'Client rate 5.0/5.0').'
>>>>>>> development
</div>
</div>
@@ -193,6 +214,10 @@ $view = '
<ul class="nav-links">
<li><a href="'.url('index.php').'">'.$home_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>
>>>>>>> development
<li><a href="'.url('index.php?page=about').'">'.$about_text.'</a></li>
</ul>
</nav>
@@ -250,6 +275,10 @@ $view = '
<ul class="mobile-nav-links">
<li><a href="'.url('index.php').'">'.$home_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>
>>>>>>> development
<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=myaccount').'">Account</a></li>
@@ -434,6 +463,7 @@ function template_menu(){
$num_items_in_cart = isset($_SESSION['cart']) ? array_sum(array_column($_SESSION['cart'], 'quantity')) : 0;
$home_link = url('index.php');
$products_link = url(link_to_collection);
$dealer_link = url('index.php?page=dealers');
$about_link = url('index.php?page=about');
$myaccount_link = url('index.php?page=myaccount');
$cart_link = url('index.php?page=cart');
@@ -461,6 +491,7 @@ function template_menu(){
<nav style="flex-grow: 1;flex-basis: 0px;justify-content: center;align-items: center;text-align: center;">
<a href="$home_link">$home_text</a>
<a href="$products_link">$products_text</a>
<a href="$dealer_link">Dealers</a>
<a href="$about_link">$about_text</a>
</nav>
<div class="link-icons">
@@ -512,7 +543,11 @@ function template_menu(){
// Template footer
function template_footer() {
include './custom/translations/translations_'.strtoupper($_SESSION['country_code']).'.php';
<<<<<<< HEAD
=======
/*
>>>>>>> development
$footer = '
<section class="newsletter">
<div class="container newsletter-container">
@@ -536,7 +571,13 @@ function template_footer() {
<button type="submit" class="btn-submit">'.($newsletter_submit ?? 'submit').'</button>
</div>
</div>
<<<<<<< HEAD
</section>
=======
</section>';
*/
$footer = '
>>>>>>> development
<footer class="footer">
<div class="container footer-container">
<div class="footer-info">
@@ -546,23 +587,44 @@ function template_footer() {
</div>
<div class="social-icons">
<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">
>>>>>>> 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="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"/>
</svg>
</a>
<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">
>>>>>>> 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="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>
</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">
<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"/>
<g transform="translate(9, 9)">
<!-- Speech bubble -->
<path d="M13.5 3C19.299 3 24 7.701 24 13.5C24 19.299 19.299 24 13.5 24C11.8395 24 10.2673 23.6203 8.8584 22.9383L3 24L4.0617 18.1416C3.3797 16.7327 3 15.1605 3 13.5C3 7.701 7.701 3 13.5 3Z" fill="white"/>
<!-- Phone handset -->
<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>
</svg>
>>>>>>> development
</a>
</div>
</div>
@@ -570,19 +632,32 @@ function template_footer() {
<div class="container">
<div class="payment-methods">
<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/visa.png" alt="Visa" class="payment-method"> -->
>>>>>>> development
<img src="'.base_url.'custom/assets/paypal.png" alt="Pay Pal" class="payment-method">
</div>
<div class="footer-bottom">
<div class="copyright">
©2025 All rights reserved
<<<<<<< HEAD
</div>
<div class="footer-links">
<a href="'.termsandconditions_link.'">'.$terms_text.'</a>
<a href="'.privacy_link.'">'.$privacy_text.'</a>
</div>
=======
</div>
<div class="footer-links">
<a href="'.termsandconditions_link.'">'.$terms_text.'</a>
<a href="'.privacy_link.'">'.$privacy_text.'</a>
</div>
>>>>>>> development
</div>
</div>
</footer>
@@ -672,176 +747,140 @@ echo <<<EOT
<meta charset="utf-8">
<meta name="viewport" content="width=device-width,minimum-scale=1">
<title>$site_name</title>
<style>
* {
box-sizing: border-box;
font-family: -apple-system, BlinkMacSystemFont, "segoe ui", roboto, oxygen, ubuntu, cantarell, "fira sans", "droid sans", "helvetica neue", Arial, sans-serif;
font-size: 12px;
}
.content-wrapper {
width:90%;
margin: auto;
padding-bottom: 40px;
}
header {
position: relative;
}
header img {
padding: 24px 0;
}
.container {
position: relative;
text-align: center;
color: white;
}
.emailfooter{
margin: 50px;
text-align: center;
border-top: 1px solid #EEEEEE;
}
.emailfooter a {
text-decoration: none;
color: #555555;
cursor: pointer;
font-family: inherit;
}
main .order-table {
<style>
body {
margin: 0;
padding: 0;
background: #fff;
font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Arial, sans-serif;
font-size: 14px;
color: #222;
}
.content-wrapper {
width: 100%;
max-width: 700px;
margin: auto;
padding: 24px 8px 40px 8px;
}
main .order-table .item-list-end {
border-bottom: 1px solid #0e0f10;
header, .header-table td {
font-family: inherit;
font-size: 14px;
font-weight: normal;
color: #222;
line-height: 1.5;
}
main .order-table .subtotal {
padding-top: 20px;
header h1, header h2, header h3 {
font-size: 18px;
font-weight: 600;
margin: 16px 0 8px 0;
}
main .order-table .subtotal, main .order-table .shipping, main .order-table .tax , main .order-table .total {
text-align: right;
font-weight: 500;
font-size: 12px;
.order-table th, .order-table td {
font-family: inherit;
font-size: 14px;
text-align: left;
padding: 8px 4px;
}
main .order-table .num {
text-align: right;
.order-table th {
background: #f5f5f5;
font-weight: 600;
}
main .manage-order-table input, main .manage-order-table select {
border: 0;
padding: 5px 0;
height: 40px;
background: transparent;
width: 90%;
border-bottom: 1px solid #dedfe1;
header img {
max-width: 220px;
width: 100%;
height: auto;
display: block;
margin-bottom: 16px;
}
main .manage-order-table .add-item {
display: inline-block;
text-decoration: none;
color: #676d72;
padding: 25px 0;
.header-table {
width: 100%;
border-collapse: collapse;
}
main .manage-order-table .add-item i {
padding-right: 5px;
.header-table td {
vertical-align: top;
padding: 8px;
}
main .manage-order-table .add-item:hover {
color: #4f5357;
.order-table table {
width: 100%;
border-collapse: collapse;
}
main .manage-order-table .delete-item {
cursor: pointer;
color: #676d72;
.order-table th, .order-table td {
padding: 8px 4px;
font-size: 14px;
text-align: left;
}
main .manage-order-table .delete-item:hover {
color: #b44a4a;
.order-table th {
background: #f5f5f5;
font-weight: 600;
}
.table table {
width: 100%;
border-collapse: collapse;
.order-table .num {
text-align: right;
}
.table table thead td {
font-weight: 600;
font-size: 12px;
padding: 15px 0;
.order-table tr.item-list-end td {
border-bottom: 2px solid #0e0f10;
}
.table table thead td a {
font-weight: inherit;
font-size: inherit;
color: inherit;
text-decoration: none;
.subtotal, .shipping, .tax, .total {
font-weight: bold;
text-align: right;
}
.table table thead td i {
padding-left: 5px;
.emailfooter {
margin: 32px 0 0 0;
text-align: center;
border-top: 1px solid #eee;
padding-top: 16px;
font-size: 13px;
}
.table table thead tr {
border-bottom: 1px solid #0e0f10;
.emailfooter a {
margin: 0 8px;
color: #555;
text-decoration: none;
font-size: inherit;
}
.table table tbody tr:first-child td {
padding-top: 10px;
@media only screen and (max-width: 600px) {
.order-table {
width: 100%;
overflow-x: auto;
}
.table table tbody td {
padding: 5px 0;
.order-table table {
min-width: 600px;
width: 100%;
display: table;
}
.table table tbody .img {
padding: 1px 0;
.order-table th, .order-table td {
display: table-cell;
width: auto !important;
padding: 8px 4px;
font-size: 13px;
text-align: left;
vertical-align: middle;
}
.table table tbody .rrp {
color: #e26060;
.order-table thead {
display: table-header-group;
}
.table table tbody .status {
padding: 4px 7px;
border-radius: 4px;
background-color: #81848a;
font-weight: 500;
font-size: 12px;
color: #fff;
.order-table tr {
display: table-row;
margin-bottom: 0;
border-bottom: 1px solid #eee;
}
.table table tbody .status.completed, .table table tbody .status.shipped {
background-color: #13b368;
.order-table .num {
text-align: right !important;
}
.table table tbody .status.pending {
background-color: #eb8a0d;
}
.table table tbody .status.refunded, .table table tbody .status.failed, .table table tbody .status.cancelled, .table table tbody .status.reversed {
background-color: #bd4141;
}
</style>
}
</style>
</head>
<body>
<header>
<div class="content-wrapper">
<table style="border-collapse:collapse;width:100%;">
<table class="header-table">
<tr>
<td width="75%">
<a href="$home_link" style="color:inherit;text-decoration:inherit;">
<img src="$featured_order_image" alt="$site_name" width="50%" />
<td>
<a href="$home_link">
<img src="$featured_order_image" alt="$site_name" style="max-width: 220px;width: 100%;height: auto;display: block; smargin-bottom: 16px;" />
</a>
</td>
<td width="25%">
<td>
$company_name<br>
$company_adres<br>
$company_postal $company_city<br>