Compare commits

15 Commits

Author SHA1 Message Date
smueller
96a5977283 Refactor configuration loading: Updated multiple public PHP files to require a new bootstrap file for configuration management. Adjusted paths for product configuration to enhance maintainability and consistency across the application. 2026-05-22 13:58:30 +02:00
TheOnlyMace
ec8686761c Enhance IT services section: Updated index.php to include new CSS classes for the IT services section, improving layout and responsiveness. Added styles for a 3x2 grid layout in custom.css, ensuring better presentation across different screen sizes. 2026-04-09 21:31:32 +02:00
TheOnlyMace
d3da589a1d Add animated gradient background for "Beliebt" badge: Introduced a new CSS class for the featured badge with a linear gradient and animation effects. Added media query to disable animation for users preferring reduced motion, enhancing accessibility. 2026-04-09 21:26:29 +02:00
TheOnlyMace
b6e268855e Update CSS styles: Enhanced style.css with refined layout and improved responsiveness. Adjusted CSS variables for better visual consistency and user experience across the application. 2026-04-09 21:17:11 +02:00
TheOnlyMace
d02377c735 Update CSS styles: Refined style.css to enhance layout consistency and responsiveness. Adjusted CSS variables for improved visual appeal and user experience across the application. 2026-04-09 21:13:08 +02:00
TheOnlyMace
d62d6b576d Refactor CSS styles: Updated style.css to improve layout consistency and responsiveness. Adjusted CSS variables for better visual appeal and user experience across the application. 2026-04-09 21:12:31 +02:00
TheOnlyMace
2c0138f55d Update CSS styles: Refactored and optimized the style.css file to enhance layout and visual consistency across the application. Adjusted various CSS variables and properties for improved responsiveness and user experience. 2026-04-09 21:11:25 +02:00
TheOnlyMace
2074707c9d Add product visibility control: Introduced a mechanism to hide specific products ('vpc', 'vps') from the shop. Updated relevant templates to conditionally display these products based on visibility status, enhancing user experience and product management. 2026-04-09 21:07:48 +02:00
TheOnlyMace
55f9fdd957 Update products configuration: Removed outdated features from 'mail-gateway' offerings, including email archiving and calendar & contacts, to streamline product details and improve clarity. 2026-04-09 21:04:21 +02:00
TheOnlyMace
ab81d1c49f Update webhosting configuration: Adjusted price for 'Webhosting Professional' from '9,99' to '13,99' to reflect updated pricing strategy. 2026-04-09 21:02:52 +02:00
TheOnlyMace
b40ad53d9c Update webhosting configuration: Changed 'Domains Inkl.' value from '3' to '1' to accurately reflect product offerings and specifications. 2026-04-09 21:01:59 +02:00
TheOnlyMace
e5402189ea Update webhosting configuration: Specify database type in product details by changing 'Datenbanken' value to '20 MySQL' for improved clarity in offerings. 2026-04-09 21:01:10 +02:00
TheOnlyMace
e544720900 Update webhosting configuration and content: Enhanced product descriptions, pricing, and specifications for webhosting packages. Transitioned from cPanel/Webmin to Plesk Webhosting, and updated PHP version to 8.4. Improved clarity and appeal of offerings in both backend configuration and public-facing web page. 2026-04-09 20:59:37 +02:00
a5bba86db0 Merge pull request 'Enhance Content Security Policy in .htaccess: Updated img-src and connect-src directives to include Google Tag Manager and additional Google services, improving security while ensuring compatibility with analytics tools.' (#4) from dev into main
Reviewed-on: smueller/HexaHost-Frontend#4
2026-04-09 13:50:00 +00:00
d34dbbb079 Merge pull request 'Update .htaccess for enhanced security and Google Tag Assistant compatibility: Removed X-Frame-Options header and adjusted Content Security Policy to allow Google Tag Manager and Google Analytics, ensuring compliance with security standards while maint…' (#3) from dev into main
Reviewed-on: smueller/HexaHost-Frontend#3
2026-04-09 13:46:46 +00:00
22 changed files with 271 additions and 72 deletions

View File

@@ -10,6 +10,9 @@
* $packages = getProductPackages('vpc'); * $packages = getProductPackages('vpc');
*/ */
// Temporär ausgeblendete Produkte (einfach IDs aus dieser Liste entfernen, um sie wieder im Shop anzuzeigen)
$HIDDEN_PRODUCTS = ['vpc', 'vps'];
// ============================================================================ // ============================================================================
// VIRTUAL PRIVATE CONTAINER (VPC) // VIRTUAL PRIVATE CONTAINER (VPC)
// ============================================================================ // ============================================================================
@@ -265,8 +268,6 @@ $PRODUCTS['mail-gateway'] = [
'Webmail', 'Webmail',
'IMAP/POP3', 'IMAP/POP3',
'SSL/TLS Verschlüsselung', 'SSL/TLS Verschlüsselung',
'E-Mail Archivierung (30 Tage)',
'Kalender & Kontakte',
], ],
], ],
'professional' => [ 'professional' => [
@@ -285,9 +286,6 @@ $PRODUCTS['mail-gateway'] = [
'Webmail', 'Webmail',
'IMAP/POP3', 'IMAP/POP3',
'SSL/TLS Verschlüsselung', 'SSL/TLS Verschlüsselung',
'E-Mail Archivierung (1 Jahr)',
'Kalender & Kontakte',
'ActiveSync für Mobile',
], ],
], ],
'enterprise' => [ 'enterprise' => [
@@ -306,9 +304,6 @@ $PRODUCTS['mail-gateway'] = [
'Webmail', 'Webmail',
'IMAP/POP3', 'IMAP/POP3',
'SSL/TLS Verschlüsselung', 'SSL/TLS Verschlüsselung',
'E-Mail Archivierung (10 Jahre)',
'Kalender & Kontakte',
'ActiveSync für Mobile',
'Dedizierte IP', 'Dedizierte IP',
'Priority Support', 'Priority Support',
], ],
@@ -322,50 +317,56 @@ $PRODUCTS['mail-gateway'] = [
$PRODUCTS['webhosting'] = [ $PRODUCTS['webhosting'] = [
'name' => 'Webhosting', 'name' => 'Webhosting',
'short_name' => 'Webhosting', 'short_name' => 'Webhosting',
'description' => 'Klassisches Hosting mit PHP, MySQL und SSL', 'description' => 'Klassisches Hosting mit PHP, MySQL und SSL. WordPress-ready mit Plesk Webhosting.',
'min_price' => '1,99', 'min_price' => '2,99',
'hero_highlight' => 'Alles für Ihre Website', 'hero_highlight' => 'Alles für Ihre Website',
'hero_description' => 'Klassisches Webhosting mit allem, was Sie für eine erfolgreiche Website benötigen. PHP, MySQL, SSL-Zertifikate und E-Mail-Postfächer - alles inklusive.', 'hero_description' => 'Klassisches Webhosting mit allem, was Sie für eine erfolgreiche Website benötigen. PHP, MySQL, SSL-Zertifikate und E-Mail-Postfächer - alles inklusive.',
'packages_title' => 'Webhosting Pakete', 'packages_title' => 'Webhosting Pakete',
'packages_description' => 'Von der ersten Website bis zum professionellen Online-Shop', 'packages_description' => 'Von der ersten Website bis zum professionellen Online-Shop',
'cta_title' => 'Bereit für Ihr Webhosting?', 'cta_title' => 'Bereit für Ihr Webhosting?',
'cta_description' => 'Starten Sie noch heute mit professionellem Webhosting', 'cta_description' => 'Starten Sie noch heute mit professionellem Webhosting',
'page_title' => 'Webhosting - Klassisches Hosting für Websites | HexaHost.de', 'page_title' => 'Webhosting - Klassisches Hosting für Websites - WordPress-ready | HexaHost.de',
'page_description' => 'Webhosting mit PHP, MySQL und SSL-Zertifikaten. Klassisches Hosting für Websites ab 1,99€/Monat bei HexaHost.de', 'page_description' => 'Webhosting mit PHP, MySQL und SSL-Zertifikaten. Klassisches Hosting für Websites - WordPress-ready ab 2,99€/Monat bei HexaHost.de',
'packages' => [ 'packages' => [
'starter' => [ 'starter' => [
'name' => 'Webhosting Starter', 'name' => 'Webhosting Starter',
'price' => '1,99', 'price' => '2,99',
'featured' => false, 'featured' => false,
'specs' => [ 'specs' => [
['label' => 'Webspace', 'value' => '5 GB'], ['label' => 'Webspace', 'value' => '10 GB'],
['label' => 'Domains', 'value' => '1'], ['label' => 'Domains', 'value' => '1'],
['label' => 'E-Mail-Postfächer', 'value' => '5'], ['label' => 'Subdomains', 'value' => '5'],
['label' => 'Datenbanken', 'value' => '1 MySQL'], ['label' => 'Domain Aliase', 'value' => '2'],
['label' => 'Traffic', 'value' => '10 GB'], ['label' => 'E-Mail-Postfächer', 'value' => '10'],
['label' => 'Datenbanken', 'value' => '2 MySQL'],
['label' => 'Traffic', 'value' => '100 GB'],
], ],
'features' => [ 'features' => [
'cPanel/Webmin', 'Plesk Webhosting',
'PHP 8.1', 'PHP 8.4',
'Git, WP Toolkit, Composer',
'SSL-Zertifikat', 'SSL-Zertifikat',
'E-Mail-Postfächer', 'E-Mail-Postfächer',
'MySQL Datenbank', 'MySQL Datenbanken',
], ],
], ],
'business' => [ 'business' => [
'name' => 'Webhosting Business', 'name' => 'Webhosting Business',
'price' => '4,99', 'price' => '7,99',
'featured' => true, 'featured' => true,
'specs' => [ 'specs' => [
['label' => 'Webspace', 'value' => '20 GB'], ['label' => 'Webspace', 'value' => '30 GB'],
['label' => 'Domains', 'value' => '5'], ['label' => 'Domains Inkl.', 'value' => '1'],
['label' => 'E-Mail-Postfächer', 'value' => '25'], ['label' => 'Subdomains', 'value' => '10'],
['label' => 'Domain Aliase', 'value' => '2'],
['label' => 'E-Mail-Postfächer', 'value' => '20'],
['label' => 'Datenbanken', 'value' => '5 MySQL'], ['label' => 'Datenbanken', 'value' => '5 MySQL'],
['label' => 'Traffic', 'value' => '50 GB'], ['label' => 'Traffic', 'value' => '100 GB'],
], ],
'features' => [ 'features' => [
'cPanel/Webmin', 'Plesk Webhosting',
'PHP 8.1', 'PHP 8.4',
'Git, WP Toolkit, Composer',
'SSL-Zertifikat', 'SSL-Zertifikat',
'E-Mail-Postfächer', 'E-Mail-Postfächer',
'MySQL Datenbanken', 'MySQL Datenbanken',
@@ -374,18 +375,21 @@ $PRODUCTS['webhosting'] = [
], ],
'professional' => [ 'professional' => [
'name' => 'Webhosting Professional', 'name' => 'Webhosting Professional',
'price' => '9,99', 'price' => '13,99',
'featured' => false, 'featured' => false,
'specs' => [ 'specs' => [
['label' => 'Webspace', 'value' => '50 GB'], ['label' => 'Webspace', 'value' => '50 GB'],
['label' => 'Domains', 'value' => 'Unbegrenzt'], ['label' => 'Domains Inkl.', 'value' => '1'],
['label' => 'E-Mail-Postfächer', 'value' => '100'], ['label' => 'Subdomains', 'value' => 'unbegrenzt'],
['label' => 'Datenbanken', 'value' => 'Unbegrenzt'], ['label' => 'Domain Aliase', 'value' => 'unbegrenzt'],
['label' => 'Traffic', 'value' => '200 GB'], ['label' => 'E-Mail-Postfächer', 'value' => '20'],
['label' => 'Datenbanken', 'value' => '20 MySQL'],
['label' => 'Traffic', 'value' => '100 GB'],
], ],
'features' => [ 'features' => [
'cPanel/Webmin', 'Plesk Webhosting',
'PHP 8.1', 'PHP 8.4',
'Git, WP Toolkit, Composer',
'SSL-Zertifikat', 'SSL-Zertifikat',
'E-Mail-Postfächer', 'E-Mail-Postfächer',
'MySQL Datenbanken', 'MySQL Datenbanken',
@@ -399,14 +403,17 @@ $PRODUCTS['webhosting'] = [
'featured' => false, 'featured' => false,
'specs' => [ 'specs' => [
['label' => 'Webspace', 'value' => '100 GB'], ['label' => 'Webspace', 'value' => '100 GB'],
['label' => 'Domains', 'value' => 'Unbegrenzt'], ['label' => 'Domains Inkl.', 'value' => '3'],
['label' => 'E-Mail-Postfächer', 'value' => 'Unbegrenzt'], ['label' => 'Subdomains', 'value' => 'unbegrenzt'],
['label' => 'Domain Aliase', 'value' => 'unbegrenzt'],
['label' => 'E-Mail-Postfächer', 'value' => '100'],
['label' => 'Datenbanken', 'value' => 'Unbegrenzt'], ['label' => 'Datenbanken', 'value' => 'Unbegrenzt'],
['label' => 'Traffic', 'value' => '500 GB'], ['label' => 'Traffic', 'value' => '1 TB'],
], ],
'features' => [ 'features' => [
'cPanel/Webmin', 'Plesk Webhosting',
'PHP 8.1', 'PHP 8.4',
'Git, WP Toolkit, Composer',
'SSL-Zertifikat', 'SSL-Zertifikat',
'E-Mail-Postfächer', 'E-Mail-Postfächer',
'MySQL Datenbanken', 'MySQL Datenbanken',
@@ -438,6 +445,14 @@ function getProduct($productId) {
return $PRODUCTS[$productId] ?? null; return $PRODUCTS[$productId] ?? null;
} }
/**
* Prüft, ob ein Produkt im Shop angezeigt werden soll
*/
function isProductVisible($productId) {
global $HIDDEN_PRODUCTS;
return !in_array($productId, $HIDDEN_PRODUCTS, true);
}
/** /**
* Alle Pakete eines Produkts abrufen * Alle Pakete eines Produkts abrufen
*/ */

View File

@@ -0,0 +1,68 @@
<?php
/**
* HexaHost.de zentrale Domain- und Umgebungskonfiguration
*/
define('SITE_DOMAIN_PRODUCTION', 'hexahost.de');
define('SITE_DOMAIN_DEVELOPMENT', 'dev.hexahost.de');
/**
* Aktuellen HTTP-Host (ohne Port) ermitteln
*/
function getSiteHost(): string
{
$host = $_SERVER['HTTP_HOST'] ?? SITE_DOMAIN_PRODUCTION;
$host = strtolower($host);
if (str_contains($host, ':')) {
$host = explode(':', $host, 2)[0];
}
return $host;
}
/**
* true, wenn die Seite unter der Dev-Domain läuft
*/
function isDevelopmentSite(): bool
{
return getSiteHost() === SITE_DOMAIN_DEVELOPMENT;
}
/**
* Basis-URL der aktuellen Anfrage (Schema + Host)
*/
function getSiteBaseUrl(): string
{
$https = (!empty($_SERVER['HTTPS']) && $_SERVER['HTTPS'] !== 'off')
|| (isset($_SERVER['SERVER_PORT']) && (int) $_SERVER['SERVER_PORT'] === 443);
$scheme = $https ? 'https' : 'http';
return $scheme . '://' . getSiteHost();
}
/**
* Erlaubte CORS-Origins für AJAX (Kontaktformular)
*
* @return list<string>
*/
function getAllowedOrigins(): array
{
return [
'https://' . SITE_DOMAIN_PRODUCTION,
'https://www.' . SITE_DOMAIN_PRODUCTION,
'https://' . SITE_DOMAIN_DEVELOPMENT,
'http://localhost',
'http://127.0.0.1',
'http://localhost:8000',
];
}
/**
* Kanonische Basis-URL für SEO (Produktion immer hexahost.de)
*/
function getCanonicalBaseUrl(): string
{
return 'https://' . SITE_DOMAIN_PRODUCTION;
}

View File

@@ -3,6 +3,12 @@
* Helper functions for HexaHost.de * Helper functions for HexaHost.de
*/ */
$configDir = defined('HEXAHOST_CONFIG_DIR')
? HEXAHOST_CONFIG_DIR
: __DIR__ . '/../config';
require_once $configDir . '/site-config.php';
// Sichere Session-Konfiguration // Sichere Session-Konfiguration
if (session_status() === PHP_SESSION_NONE) { if (session_status() === PHP_SESSION_NONE) {
// Session-Cookie-Sicherheit // Session-Cookie-Sicherheit
@@ -51,6 +57,11 @@ function includeHeader($title = '', $description = '', $page = '', $scripts = []
$current_page = $page; $current_page = $page;
$additional_scripts = $scripts; $additional_scripts = $scripts;
if (!isset($canonical_url)) {
$requestPath = parse_url($_SERVER['REQUEST_URI'] ?? '/', PHP_URL_PATH) ?: '/';
$canonical_url = rtrim(getCanonicalBaseUrl(), '/') . $requestPath;
}
include __DIR__ . '/header.php'; include __DIR__ . '/header.php';
} }

View File

@@ -1,4 +1,8 @@
<!DOCTYPE html> <!DOCTYPE html>
<?php
$configDir = defined('HEXAHOST_CONFIG_DIR') ? HEXAHOST_CONFIG_DIR : __DIR__ . '/../config';
require_once $configDir . '/products-config.php';
?>
<html lang="de"> <html lang="de">
<head> <head>
<meta charset="UTF-8"> <meta charset="UTF-8">
@@ -61,8 +65,12 @@
<li class="nav-dropdown"> <li class="nav-dropdown">
<a href="#" class="nav-link <?php echo (in_array($current_page, ['vpc', 'vps', 'mail-gateway', 'webhosting'])) ? 'active' : ''; ?>">Produkte</a> <a href="#" class="nav-link <?php echo (in_array($current_page, ['vpc', 'vps', 'mail-gateway', 'webhosting'])) ? 'active' : ''; ?>">Produkte</a>
<ul class="dropdown-menu"> <ul class="dropdown-menu">
<?php if (isProductVisible('vpc')): ?>
<li><a href="/vpc" class="<?php echo ($current_page === 'vpc') ? 'active' : ''; ?>">Virtual Private Container</a></li> <li><a href="/vpc" class="<?php echo ($current_page === 'vpc') ? 'active' : ''; ?>">Virtual Private Container</a></li>
<?php endif; ?>
<?php if (isProductVisible('vps')): ?>
<li><a href="/vps" class="<?php echo ($current_page === 'vps') ? 'active' : ''; ?>">Virtual Private Server</a></li> <li><a href="/vps" class="<?php echo ($current_page === 'vps') ? 'active' : ''; ?>">Virtual Private Server</a></li>
<?php endif; ?>
<li><a href="/mail-gateway" class="<?php echo ($current_page === 'mail-gateway') ? 'active' : ''; ?>">Mail Gateway</a></li> <li><a href="/mail-gateway" class="<?php echo ($current_page === 'mail-gateway') ? 'active' : ''; ?>">Mail Gateway</a></li>
<li><a href="/webhosting" class="<?php echo ($current_page === 'webhosting') ? 'active' : ''; ?>">Webhosting</a></li> <li><a href="/webhosting" class="<?php echo ($current_page === 'webhosting') ? 'active' : ''; ?>">Webhosting</a></li>
</ul> </ul>

View File

@@ -1,5 +1,5 @@
<?php <?php
require_once __DIR__ . '/../backend/includes/functions.php'; require_once __DIR__ . '/bootstrap.php';
// Page configuration // Page configuration
$page_title = '404 - Seite nicht gefunden | HexaHost.de'; $page_title = '404 - Seite nicht gefunden | HexaHost.de';

View File

@@ -1,5 +1,5 @@
<?php <?php
require_once __DIR__ . '/../backend/includes/functions.php'; require_once __DIR__ . '/bootstrap.php';
// Page configuration // Page configuration
$page_title = '500 - Serverfehler | HexaHost.de'; $page_title = '500 - Serverfehler | HexaHost.de';

View File

@@ -1,5 +1,5 @@
<?php <?php
require_once __DIR__ . '/../backend/includes/functions.php'; require_once __DIR__ . '/bootstrap.php';
// Page configuration // Page configuration
$page_title = 'Über mich - HexaHost.de | Hosting aus Niederbayern'; $page_title = 'Über mich - HexaHost.de | Hosting aus Niederbayern';

View File

@@ -1,5 +1,5 @@
<?php <?php
require_once __DIR__ . '/../backend/includes/functions.php'; require_once __DIR__ . '/bootstrap.php';
// Page configuration // Page configuration
$page_title = 'Allgemeine Geschäftsbedingungen - HexaHost.de | AGB'; $page_title = 'Allgemeine Geschäftsbedingungen - HexaHost.de | AGB';

View File

@@ -15,3 +15,52 @@
justify-content: center; justify-content: center;
margin-top: 2rem; margin-top: 2rem;
} }
/* IT-Dienstleistungen auf Startseite: ausgewogenes 3x2-Grid */
.it-services-grid {
grid-template-columns: repeat(3, minmax(0, 1fr));
max-width: 980px;
margin-left: auto;
margin-right: auto;
}
.it-services-grid .feature-item {
height: 100%;
}
@media (max-width: 1024px) {
.it-services-grid {
grid-template-columns: repeat(2, minmax(0, 1fr));
}
}
@media (max-width: 640px) {
.it-services-grid {
grid-template-columns: 1fr;
}
}
/* Animierter Farbverlauf für "Beliebt"-Badge */
.featured-badge {
background: linear-gradient(135deg, #ff51f9 0%, #a348ff 50%, #3978ff 100%);
background-size: 220% 220%;
animation: featured-badge-colors 6s ease infinite;
}
@keyframes featured-badge-colors {
0% {
background-position: 0% 50%;
}
50% {
background-position: 100% 50%;
}
100% {
background-position: 0% 50%;
}
}
@media (prefers-reduced-motion: reduce) {
.featured-badge {
animation: none;
}
}

File diff suppressed because one or more lines are too long

41
public/bootstrap.php Normal file
View File

@@ -0,0 +1,41 @@
<?php
/**
* HexaHost Bootstrap für Monorepo- und Produktions-Layout
*
* Monorepo: public/../backend/{includes,config}
* Produktion: public/{includes,config} (nach Backend-Kopie)
*/
if (!defined('HEXAHOST_BOOTSTRAPPED')) {
$pathCandidates = [
[
'includes' => __DIR__ . '/includes',
'config' => __DIR__ . '/config',
],
[
'includes' => __DIR__ . '/../backend/includes',
'config' => __DIR__ . '/../backend/config',
],
];
$resolved = false;
foreach ($pathCandidates as $paths) {
if (is_file($paths['includes'] . '/functions.php')) {
define('HEXAHOST_INCLUDES_DIR', $paths['includes']);
define('HEXAHOST_CONFIG_DIR', $paths['config']);
require_once $paths['includes'] . '/functions.php';
$resolved = true;
break;
}
}
if (!$resolved) {
http_response_code(500);
header('Content-Type: text/plain; charset=utf-8');
echo 'HexaHost: Anwendung konnte nicht gestartet werden (includes nicht gefunden).';
exit;
}
define('HEXAHOST_BOOTSTRAPPED', true);
}

View File

@@ -9,8 +9,10 @@ if (session_status() === PHP_SESSION_NONE) {
session_start(); session_start();
} }
// Konfiguration laden require_once __DIR__ . '/bootstrap.php';
require_once 'config/mail-config.php';
$configDir = defined('HEXAHOST_CONFIG_DIR') ? HEXAHOST_CONFIG_DIR : __DIR__ . '/config';
require_once $configDir . '/mail-config.php';
// PHPMailer Autoload (falls via Composer installiert) // PHPMailer Autoload (falls via Composer installiert)
if (file_exists(__DIR__ . '/vendor/autoload.php')) { if (file_exists(__DIR__ . '/vendor/autoload.php')) {
@@ -43,13 +45,8 @@ function validateCSRFToken($token) {
return false; return false;
} }
// CORS Headers für AJAX-Requests (nur eigene Domain erlauben) // CORS Headers für AJAX-Requests (nur eigene Domains erlauben)
$allowed_origins = [ $allowed_origins = getAllowedOrigins();
'https://hexahost.de',
'https://www.hexahost.de',
'http://localhost', // Für Entwicklung
'http://127.0.0.1' // Für Entwicklung
];
$origin = $_SERVER['HTTP_ORIGIN'] ?? ''; $origin = $_SERVER['HTTP_ORIGIN'] ?? '';
if (in_array($origin, $allowed_origins)) { if (in_array($origin, $allowed_origins)) {

View File

@@ -1,5 +1,6 @@
<?php <?php
require_once __DIR__ . '/../backend/includes/functions.php'; require_once __DIR__ . '/bootstrap.php';
require_once HEXAHOST_CONFIG_DIR . '/products-config.php';
// Page configuration // Page configuration
$page_title = 'Kontakt - HexaHost.de | Hosting aus Niederbayern'; $page_title = 'Kontakt - HexaHost.de | Hosting aus Niederbayern';
@@ -130,8 +131,12 @@ includeHeader($page_title, $page_description, $current_page, $additional_scripts
<select id="subject" name="subject" required> <select id="subject" name="subject" required>
<option value="">Bitte wählen...</option> <option value="">Bitte wählen...</option>
<option value="allgemeine-anfrage">Allgemeine Anfrage</option> <option value="allgemeine-anfrage">Allgemeine Anfrage</option>
<?php if (isProductVisible('vpc')): ?>
<option value="vpc-anfrage">Virtual Private Container</option> <option value="vpc-anfrage">Virtual Private Container</option>
<?php endif; ?>
<?php if (isProductVisible('vps')): ?>
<option value="vps-anfrage">Virtual Private Server</option> <option value="vps-anfrage">Virtual Private Server</option>
<?php endif; ?>
<option value="mail-gateway-anfrage">Mail Gateway</option> <option value="mail-gateway-anfrage">Mail Gateway</option>
<option value="webhosting-anfrage">Webhosting</option> <option value="webhosting-anfrage">Webhosting</option>
<option value="it-beratung">IT-Beratung</option> <option value="it-beratung">IT-Beratung</option>

View File

@@ -1,5 +1,5 @@
<?php <?php
require_once __DIR__ . '/../backend/includes/functions.php'; require_once __DIR__ . '/bootstrap.php';
// Page configuration // Page configuration
$page_title = 'Datenschutzerklärung - HexaHost.de | Datenschutz'; $page_title = 'Datenschutzerklärung - HexaHost.de | Datenschutz';

View File

@@ -1,5 +1,5 @@
<?php <?php
require_once __DIR__ . '/../backend/includes/functions.php'; require_once __DIR__ . '/bootstrap.php';
// Page configuration // Page configuration
$page_title = 'Impressum - HexaHost.de | Rechtliche Angaben'; $page_title = 'Impressum - HexaHost.de | Rechtliche Angaben';
@@ -23,7 +23,7 @@ includeHeader($page_title, $page_description, $current_page);
?> ?>
<h1 class="legal-hero-title">Impressum</h1> <h1 class="legal-hero-title">Impressum</h1>
<p class="legal-hero-description"> <p class="legal-hero-description">
Rechtliche Angaben und Pflichtinformationen gemäß § 5 DDG
</p> </p>
</div> </div>
</div> </div>

View File

@@ -1,5 +1,6 @@
<?php <?php
require_once __DIR__ . '/../backend/includes/functions.php'; require_once __DIR__ . '/bootstrap.php';
require_once HEXAHOST_CONFIG_DIR . '/products-config.php';
// Page configuration // Page configuration
$page_title = 'HexaHost.de - Zuverlässiges Hosting aus Niederbayern'; $page_title = 'HexaHost.de - Zuverlässiges Hosting aus Niederbayern';
@@ -54,6 +55,7 @@ includeHeader($page_title, $page_description, $current_page);
</p> </p>
</div> </div>
<div class="products-grid"> <div class="products-grid">
<?php if (isProductVisible('vpc')): ?>
<div class="product-card glass-card"> <div class="product-card glass-card">
<div class="product-icon"> <div class="product-icon">
<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"> <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2">
@@ -74,6 +76,8 @@ includeHeader($page_title, $page_description, $current_page);
</ul> </ul>
<a href="/vpc" class="btn btn-primary">Mehr erfahren</a> <a href="/vpc" class="btn btn-primary">Mehr erfahren</a>
</div> </div>
<?php endif; ?>
<?php if (isProductVisible('vps')): ?>
<div class="product-card glass-card"> <div class="product-card glass-card">
<div class="product-icon"> <div class="product-icon">
<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"> <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2">
@@ -92,6 +96,7 @@ includeHeader($page_title, $page_description, $current_page);
</ul> </ul>
<a href="/vps" class="btn btn-primary">Mehr erfahren</a> <a href="/vps" class="btn btn-primary">Mehr erfahren</a>
</div> </div>
<?php endif; ?>
<div class="product-card glass-card"> <div class="product-card glass-card">
<div class="product-icon"> <div class="product-icon">
<svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"> <svg viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2">
@@ -151,7 +156,7 @@ includeHeader($page_title, $page_description, $current_page);
</section> </section>
<!-- IT Services Section --> <!-- IT Services Section -->
<section class="features"> <section class="features it-services-section">
<div class="container"> <div class="container">
<div class="section-header"> <div class="section-header">
<h2 class="section-title">IT-Dienstleistungen für Privat und ergänzend Gewerblich</h2> <h2 class="section-title">IT-Dienstleistungen für Privat und ergänzend Gewerblich</h2>
@@ -159,7 +164,7 @@ includeHeader($page_title, $page_description, $current_page);
Ergänzend zu unseren Hosting-Angeboten unterstützen wir Sie mit persönlicher IT-Betreuung. Ergänzend zu unseren Hosting-Angeboten unterstützen wir Sie mit persönlicher IT-Betreuung.
</p> </p>
</div> </div>
<div class="features-grid"> <div class="features-grid it-services-grid">
<div class="feature-item glass-card"> <div class="feature-item glass-card">
<h3>IT-Beratung</h3> <h3>IT-Beratung</h3>
<p>Individuelle Beratung für sinnvolle und wirtschaftliche IT-Entscheidungen.</p> <p>Individuelle Beratung für sinnvolle und wirtschaftliche IT-Entscheidungen.</p>

View File

@@ -1,5 +1,5 @@
<?php <?php
require_once __DIR__ . '/../backend/includes/functions.php'; require_once __DIR__ . '/bootstrap.php';
// Page configuration // Page configuration
$page_title = 'IT-Dienstleistungen - HexaHost.de | Privat & Gewerblich'; $page_title = 'IT-Dienstleistungen - HexaHost.de | Privat & Gewerblich';

View File

@@ -1,6 +1,6 @@
<?php <?php
require_once __DIR__ . '/../backend/includes/functions.php'; require_once __DIR__ . '/bootstrap.php';
require_once __DIR__ . '/../backend/config/products-config.php'; require_once HEXAHOST_CONFIG_DIR . '/products-config.php';
// Produkt-Daten aus Config laden // Produkt-Daten aus Config laden
$product = getProduct('mail-gateway'); $product = getProduct('mail-gateway');

View File

@@ -1,6 +1,6 @@
<?php <?php
require_once __DIR__ . '/../backend/includes/functions.php'; require_once __DIR__ . '/bootstrap.php';
require_once __DIR__ . '/../backend/config/products-config.php'; require_once HEXAHOST_CONFIG_DIR . '/products-config.php';
// Produkt-Daten aus Config laden // Produkt-Daten aus Config laden
$product = getProduct('vpc'); $product = getProduct('vpc');

View File

@@ -1,6 +1,6 @@
<?php <?php
require_once __DIR__ . '/../backend/includes/functions.php'; require_once __DIR__ . '/bootstrap.php';
require_once __DIR__ . '/../backend/config/products-config.php'; require_once HEXAHOST_CONFIG_DIR . '/products-config.php';
// Produkt-Daten aus Config laden // Produkt-Daten aus Config laden
$product = getProduct('vps'); $product = getProduct('vps');

View File

@@ -1,6 +1,6 @@
<?php <?php
require_once __DIR__ . '/../backend/includes/functions.php'; require_once __DIR__ . '/bootstrap.php';
require_once __DIR__ . '/../backend/config/products-config.php'; require_once HEXAHOST_CONFIG_DIR . '/products-config.php';
// Produkt-Daten aus Config laden // Produkt-Daten aus Config laden
$product = getProduct('webhosting'); $product = getProduct('webhosting');
@@ -95,8 +95,8 @@ includeHeader($page_title, $page_description, $current_page);
<polyline points="10,9 9,9 8,9"/> <polyline points="10,9 9,9 8,9"/>
</svg> </svg>
</div> </div>
<h3>cPanel/Webmin</h3> <h3>Plesk Webhosting</h3>
<p>Benutzerfreundliche Verwaltungsoberfläche für einfache Website-Verwaltung und E-Mail-Konfiguration.</p> <p>Plesk Webhosting ist eine benutzerfreundliche Verwaltungsoberfläche für einfache Website-Verwaltung und E-Mail-Konfiguration.</p>
</div> </div>
<div class="detail-card glass-card"> <div class="detail-card glass-card">
<div class="detail-icon"> <div class="detail-icon">

View File

@@ -1,5 +1,5 @@
<?php <?php
require_once __DIR__ . '/../backend/includes/functions.php'; require_once __DIR__ . '/bootstrap.php';
// Page configuration // Page configuration
$page_title = 'Widerrufsbelehrung - HexaHost.de'; $page_title = 'Widerrufsbelehrung - HexaHost.de';