Files
emailtemplate.it/partials/landingpage/accountsetup/bridge.php
2026-01-12 00:40:33 +01:00

93 lines
5.3 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
$pageTitle = 'Email Template System Bridge Setup';
$pageId = 'bridge-setup';
$navActive = 'bridge';
require __DIR__ . '/accountsetup_config.php';
require dirname(__DIR__) . '/../structure/layout_start.php';
?>
<main class="max-w-4xl mx-auto p-4 md:p-6 flex-1 w-full space-y-6">
<section class="section-card">
<h4>Bridge-Datei vorbereiten</h4>
<p class="text-sm text-slate-600 mb-3">
Diese Angaben werden nur verwendet, um die <strong>emailtemplate_bridge.php</strong> zu generieren. Das EmailTemplate-System selbst behält Zugriff auf alle Tabellen; die hier definierten Whitelists greifen ausschließlich in der Bridge-Datei.
</p>
<div class="text-sm text-slate-600 mb-4 space-y-2">
<p><strong>Voraussetzung:</strong> Bridge-URL + Token in den <a class="underline" href="<?= htmlspecialchars($appBaseUrl . '/admin/settings.php') ?>">Einstellungen</a> hinterlegen.</p>
<p><strong>Import-Varianten:</strong></p>
<ul class="list-disc ps-5">
<li>Tabellen/Spalten direkt ueber die Bridge-URL laden (Schema).</li>
<li>DB-Settings ueber die Bridge-URL laden und damit Tabellen/Spalten abfragen.</li>
<li>Fixe DB-Settings eingeben und damit Tabellen/Spalten abfragen.</li>
</ul>
</div>
<form id="bridgeSetupForm" class="space-y-4">
<div>
<label class="block text-sm text-slate-600">Tabellen-Whitelist (optional)</label>
<textarea name="tables" class="input mt-1" rows="3" placeholder="z.B. customers, orders"></textarea>
<p class="text-xs text-slate-500 mt-1">Kommagetrennt oder je Zeile eine Tabelle. Leer lassen = keine Einschränkung.</p>
<div id="selectedTables" class="flex flex-wrap gap-2 text-sm text-slate-600 mt-2">Noch keine Tabellen angegeben.</div>
</div>
<fieldset class="border border-slate-200 rounded-xl p-4">
<legend class="px-2 text-sm font-semibold">Datenbankquelle</legend>
<p class="text-xs text-slate-500 mb-3">Die Auswahl bestimmt, welche Werte in die Bridge-Datei geschrieben werden.</p>
<div class="flex flex-wrap gap-4 text-sm text-slate-600 mb-3">
<label class="inline-flex items-center gap-2">
<input type="radio" name="db_mode" value="bridge" checked> Konfiguration von URL laden
</label>
<label class="inline-flex items-center gap-2">
<input type="radio" name="db_mode" value="direct"> Eingabe fixer Datenbank-Einstellungen
</label>
</div>
<div id="bridgeFields" class="space-y-2">
<label class="block text-sm text-slate-600">Import-Art</label>
<label class="inline-flex items-center gap-2 text-sm text-slate-600">
<input type="radio" name="bridge_import" value="schema" checked> Tabellen und Spalten importieren
</label>
<p class="text-xs text-slate-500">Liest die aktuelle DB-Struktur direkt von der Bridge-Datei.</p>
<label class="inline-flex items-center gap-2 text-sm text-slate-600">
<input type="radio" name="bridge_import" value="settings"> Datenbankeinstellungen importieren
</label>
<p class="text-xs text-slate-500">Liest DB-Settings ueber die Bridge-URL und nutzt sie zum Abfragen der Tabellen/Spalten.</p>
</div>
<div id="directFields" class="grid md:grid-cols-2 gap-3">
<label class="block text-sm text-slate-600">Server / Host
<input type="text" name="direct_host" class="input mt-1" placeholder="127.0.0.1">
</label>
<label class="block text-sm text-slate-600">Port
<input type="number" name="direct_port" class="input mt-1" placeholder="3306">
</label>
<label class="block text-sm text-slate-600">Datenbankname
<input type="text" name="direct_database" class="input mt-1" placeholder="kunden_db">
</label>
<label class="block text-sm text-slate-600">Zeichensatz
<input type="text" name="direct_charset" class="input mt-1" value="utf8mb4">
</label>
<label class="block text-sm text-slate-600">Benutzername
<input type="text" name="direct_user" class="input mt-1" placeholder="db_user">
</label>
<label class="block text-sm text-slate-600">Passwort
<input type="text" name="direct_password" class="input mt-1" placeholder="••••">
</label>
</div>
</fieldset>
<div class="flex flex-wrap gap-2 items-center">
<button type="button" id="btn-load-remote" class="btn" data-role="admin">Tabellen/Spalten laden</button>
<span class="text-xs text-slate-500">Nutzt die Bridge-URL/Token oder die direkten DB-Settings (je nach Auswahl).</span>
<button type="submit" class="btn">Bridge-Setup speichern</button>
</div>
<div id="setupStatus" class="text-xs text-slate-500">Noch nicht gespeichert.</div>
</form>
</section>
</main>
<div id="toast-root"></div>
<?php
tpl_add_script(app_asset_url('/assets/js/toast.js'));
tpl_add_script(app_asset_url('/assets/js/bridge-setup.js'), 'footer', false, false, '', null, true);
require dirname(__DIR__) . '/../structure/layout_end.php';