Zefix_search/submit.php

205 lines
5.5 KiB
PHP
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<?php
include 'zefixAPI.php';
$taskDir = 'tasks';
function renderPage(string $title, string $messageHtml, bool $isError = false): void
{
$logoPath = "img/silias-logo.png";
$statusClass = $isError
? "alert-danger border-0 shadow-sm"
: "alert-success border-0 shadow-sm";
$statusTitle = $isError ? "Fehler" : "Auftrag eingegangen";
echo '<!doctype html>
<html lang="de">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="stylesheet" href="css/bootstrap.css">
<link rel="stylesheet" href="css/custom.css?v=1.6">
<title>' . htmlspecialchars($title) . '</title>
<style>
.brand-card { border-radius: 1rem; }
.brand-logo {
height: 42px;
width: auto;
}
.brand-box {
border: none;
border-radius: 1rem;
background: linear-gradient(180deg, #ffffff 0%, #f8fafc 100%);
box-shadow: 0 10px 25px rgba(0,0,0,.04);
}
.brand-eyebrow {
font-size: .8rem;
letter-spacing: .04em;
text-transform: uppercase;
color: #6c757d;
margin-bottom: .25rem;
max-width: 420px;
}
.logo-wrap{
padding: .55rem .85rem; /* das ist der gewünschte “Rand” um das Logo */
background: #fff;
border: 1px solid #eef1f4;
border-radius: .75rem;
box-shadow: 0 6px 18px rgba(0,0,0,.04);
display: inline-flex;
align-items: center;
}
</style>
</head>
<body class="bg-light">
<nav class="navbar navbar-light bg-white border-bottom">
<div class="container">
<a class="navbar-brand mb-0 h1 text-decoration-none" href="index.php">Silias • ZEFIX Export</a>
</div>
</nav>
<main class="container py-4 py-md-5">
<div class="row justify-content-center">
<div class="col-12 col-md-10 col-lg-8 col-xl-7">
<div class="card shadow-sm brand-card">
<div class="card-body p-4 p-md-5">
<h1 class="h4 mb-3 d-flex align-items-center gap-2">
' . ($isError ? '<span class="text-danger">✖</span>' : '<span class="text-success">✔</span>') . '
' . htmlspecialchars($statusTitle) . '
</h1>
<div class="alert ' . $statusClass . ' mb-4">
' . $messageHtml . '
</div>
<div class="d-grid gap-2 d-sm-flex align-items-center">
<a class="btn btn-primary px-4" href="index.php">Zurück zur Startseite</a>
<a class="btn btn-link" href="https://www.silias.ch" target="_blank">Mehr über Silias →</a>
</div>
<hr class="my-4">
<div class="brand-box p-4">
<div class="d-flex align-items-start mb-3">
<div class="flex-shrink-0 logo-wrap">
<img src="' . htmlspecialchars($logoPath) . '" alt="Silias Logo"
class="brand-logo"
onerror="this.style.display=\'none\';">
</div>
<div class="ms-4">
<div class="brand-eyebrow">
Ihr Partner für moderne IT-Infrastruktur & Automatisierung
</div>
<div class="fw-semibold fs-5">Silias KLG</div>
<div class="text-muted small">
IT, Automatisierung & individuelle Web-Lösungen
</div>
</div>
</div>
<div class="text-muted" style="font-size:.95rem;">
Wir bauen schlanke Tools wie dieses, automatisieren Prozesse und integrieren Systeme sauber in bestehende Umgebungen
(Hosting, Mail, ERP/CRM, Schnittstellen).<br><br>
Als Managed Service Provider betreuen wir KMU ganzheitlich von der Infrastruktur über Cloud,
Netzwerke und Telefonie bis zum laufenden Betrieb, Monitoring und persönlichen Support.
</div>
<div class="mt-3 d-flex flex-wrap gap-2">
<a class="btn btn-primary btn-sm" href="https://www.silias.ch" target="_blank">Website besuchen</a>
<a class="btn btn-outline-primary btn-sm" href="mailto:info@silias.ch">Kontakt</a>
</div>
</div>
</div>
</div>
</div>
</div>
</main>
<footer class="border-top bg-white">
<div class="container py-3 text-center text-muted small">
© ' . date('Y') . ' Silias KLG
</div>
</footer>
</body>
</html>';
}
/* ---------------- VALIDATION ---------------- */
$email = isset($_POST['email']) ? trim($_POST['email']) : '';
if (empty($email) || !filter_var($email, FILTER_VALIDATE_EMAIL)) {
renderPage("Ungültige E-Mail", "Bitte geben Sie eine gültige E-Mail-Adresse an.", true);
exit;
}
/* ---------------- TASK BUILD ---------------- */
$data = [];
$data["maxEntries"] = 50;
$data["offset"] = 0;
$data["languageKey"] = "de";
if (!empty($_POST['firma'])) {
$data["name"] = $_POST['firma'];
}
$data["deletedFirms"] = isset($_POST['geloeschteRechtseinheiten']);
$data["searchType"] = "exact";
$rechtsformen = $_POST['rechtsformen'] ?? [];
$sitze = $_POST['sitze'] ?? [];
$requests_to_do = [];
foreach ($rechtsformen as $rf) {
$data["legalForms"] = [(int)$rf];
foreach ($sitze as $s) {
$data["legalSeats"] = [(int)$s];
$requests_to_do[] = $data;
}
}
$taskdata = [
'requests' => $requests_to_do,
'email' => $email
];
if (!is_dir($taskDir)) {
mkdir($taskDir, 0755, true);
}
$taskfilename = $taskDir . '/' . time() . '-' . bin2hex(random_bytes(4)) . '.json';
if (file_put_contents($taskfilename, json_encode($taskdata))) {
renderPage(
"Auftrag eingegangen",
"Wir haben Ihren Auftrag erhalten. Sie erhalten von uns eine E-Mail, sobald die Daten zum Download bereit sind. Dies kann je nach Datenmenge lange dauern.",
false
);
} else {
renderPage("Fehler", "Ein Fehler ist aufgetreten.", true);
}