parent
c18294336f
commit
0fcfa01262
246
submit.php
246
submit.php
|
|
@ -3,103 +3,203 @@ include 'zefixAPI.php';
|
||||||
|
|
||||||
$taskDir = 'tasks';
|
$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 ---------------- */
|
||||||
|
|
||||||
/**
|
|
||||||
* E-Mail aus dem Formular holen und serverseitig validieren
|
|
||||||
*/
|
|
||||||
$email = isset($_POST['email']) ? trim($_POST['email']) : '';
|
$email = isset($_POST['email']) ? trim($_POST['email']) : '';
|
||||||
|
|
||||||
if (empty($email) || !filter_var($email, FILTER_VALIDATE_EMAIL)) {
|
if (empty($email) || !filter_var($email, FILTER_VALIDATE_EMAIL)) {
|
||||||
echo "Bitte geben Sie eine gültige E-Mail-Adresse an.";
|
renderPage("Ungültige E-Mail", "Bitte geben Sie eine gültige E-Mail-Adresse an.", true);
|
||||||
echo '<br><a href="index.php">Zurück zur Startseite</a>';
|
|
||||||
// WICHTIG: Script hier abbrechen, damit KEIN Task angelegt wird
|
|
||||||
exit;
|
exit;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* ---------------- TASK BUILD ---------------- */
|
||||||
|
|
||||||
/*
|
$data = [];
|
||||||
* Request Types:
|
|
||||||
* Count
|
|
||||||
* List
|
|
||||||
* Export
|
|
||||||
*/
|
|
||||||
// Request data
|
|
||||||
$data = array();
|
|
||||||
$data["maxEntries"] = 50;
|
$data["maxEntries"] = 50;
|
||||||
$data["offset"] = 0;
|
$data["offset"] = 0;
|
||||||
$data["languageKey"] = "de";
|
$data["languageKey"] = "de";
|
||||||
$results = array();
|
|
||||||
|
|
||||||
// Wenn Firmenname vorhanden
|
if (!empty($_POST['firma'])) {
|
||||||
if(isset($_POST['firma']) && !empty($_POST['firma'])) {
|
|
||||||
$data["name"] = $_POST['firma'];
|
$data["name"] = $_POST['firma'];
|
||||||
}
|
}
|
||||||
|
|
||||||
// Wenn gelöschte auch gesucht werden sollen
|
$data["deletedFirms"] = isset($_POST['geloeschteRechtseinheiten']);
|
||||||
if(isset($_POST['geloeschteRechtseinheiten'])) {
|
|
||||||
$data["deletedFirms"] = true;
|
|
||||||
} else {
|
|
||||||
$data["deletedFirms"] = false;
|
|
||||||
}
|
|
||||||
|
|
||||||
//TODO get from Frontend
|
|
||||||
$data["searchType"] = "exact";
|
$data["searchType"] = "exact";
|
||||||
|
|
||||||
$rechtsformen = array();
|
$rechtsformen = $_POST['rechtsformen'] ?? [];
|
||||||
if (isset($_POST['rechtsformen']) && is_array($_POST['rechtsformen']) && count($_POST['rechtsformen']) > 0) {
|
$sitze = $_POST['sitze'] ?? [];
|
||||||
$rechtsformen = $_POST['rechtsformen'];
|
|
||||||
} else {
|
|
||||||
$legalFormArray = json_decode(sendAPILegalFormRequest($username, $password), true);
|
|
||||||
foreach ($legalFormArray as $rechtsform) {
|
|
||||||
$rechtsformen[] = $rechtsform["id"];
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
$sitze = array();
|
$requests_to_do = [];
|
||||||
if (isset($_POST['sitze']) && is_array($_POST['sitze']) && count($_POST['sitze']) > 0) {
|
|
||||||
$sitze = $_POST['sitze'];
|
|
||||||
} else {
|
|
||||||
$communityArray = json_decode(sendAPICommunityRequest($username, $password), true);
|
|
||||||
foreach ($communityArray as $community) {
|
|
||||||
$sitze[] = $community["bfsId"];
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
$requests_to_do = Array();
|
foreach ($rechtsformen as $rf) {
|
||||||
// Loop through the selected values
|
$data["legalForms"] = [(int)$rf];
|
||||||
foreach ($rechtsformen as $rechtsform) {
|
|
||||||
$data["legalForms"] = Array(intval($rechtsform));
|
|
||||||
|
|
||||||
// Loop through the selected values
|
foreach ($sitze as $s) {
|
||||||
foreach ($sitze as $sitz) {
|
$data["legalSeats"] = [(int)$s];
|
||||||
$data["legalSeats"] = Array(intval($sitz));
|
|
||||||
$requests_to_do[] = $data;
|
$requests_to_do[] = $data;
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
}
|
$taskdata = [
|
||||||
$taskdata = Array();
|
'requests' => $requests_to_do,
|
||||||
$taskdata['requests'] = $requests_to_do;
|
'email' => $email
|
||||||
$taskdata['email'] = $_POST['email'];
|
];
|
||||||
$taskString = json_encode($taskdata);
|
|
||||||
if(!is_dir($taskDir)){
|
if (!is_dir($taskDir)) {
|
||||||
mkdir($taskDir, 0755, true);
|
mkdir($taskDir, 0755, true);
|
||||||
}
|
}
|
||||||
$taskfilename = $taskDir.'/'.time().'-'.bin2hex(random_bytes(4)).'.json';
|
|
||||||
$taskfile = fopen($taskfilename, 'w');
|
$taskfilename = $taskDir . '/' . time() . '-' . bin2hex(random_bytes(4)) . '.json';
|
||||||
if($taskfile){
|
|
||||||
fwrite($taskfile, $taskString);
|
if (file_put_contents($taskfilename, json_encode($taskdata))) {
|
||||||
fclose($taskfile);
|
|
||||||
echo "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.";
|
renderPage(
|
||||||
echo '<br><a href="index.php">Zurück zur Startseite</a>';
|
"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 {
|
} else {
|
||||||
echo "Ein Fehler ist aufgetreten.";
|
|
||||||
|
renderPage("Fehler", "Ein Fehler ist aufgetreten.", true);
|
||||||
}
|
}
|
||||||
|
|
||||||
//$constructed_response = $response;
|
|
||||||
|
|
||||||
// Send the response back to the client
|
|
||||||
//header('Content-Type: application/json');
|
|
||||||
//echo $constructed_response;
|
|
||||||
|
|
||||||
|
|
||||||
?>
|
|
||||||
Loading…
Reference in New Issue