keine Änderungen, Repo auf Laptop
This commit is contained in:
parent
37550b3712
commit
241a7c2897
2
.gitignore
vendored
2
.gitignore
vendored
@ -1 +1 @@
|
||||
pyolingo.code-workspace
|
||||
pyolingo.code-workspace
|
||||
|
||||
254
allgemein.php
254
allgemein.php
@ -1,128 +1,128 @@
|
||||
<?php
|
||||
require_once __DIR__ . '/includes/db_connect.php';
|
||||
$system = getenv('POSTGRES_SYSTEM') ?? 'test';
|
||||
|
||||
session_start();
|
||||
|
||||
$error = $_SESSION['error'] ?? '';
|
||||
$success = $_SESSION['success'] ?? '';
|
||||
$old = $_SESSION['old'] ?? [];
|
||||
|
||||
unset($_SESSION['error']);
|
||||
unset($_SESSION['success']);
|
||||
unset($_SESSION['old']);
|
||||
?>
|
||||
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
|
||||
<head>
|
||||
<link rel="stylesheet" href="style.css">
|
||||
</head>
|
||||
<body>
|
||||
<div class="header">
|
||||
<h2 class="seitentitel">pyolingo</h2>
|
||||
</div>
|
||||
<div class="inhalt">
|
||||
<form id="form_hinzufuegenkarte" action="forms/hinzufuegenKarte.php" method="post">
|
||||
<div class="hinzufuegenKarteElemente">
|
||||
<label class="kategorie">
|
||||
<input class="kategorie" type="radio" name="kategorie" value="substantive"
|
||||
<? if( ($old['kategorie'] ?? '') == 'substantive'
|
||||
|| ($old['kategorie'] ?? '') == '') echo 'checked' ?>>
|
||||
Substantive
|
||||
</label>
|
||||
<label class="kategorie">
|
||||
<input class="kategorie" type="radio" name="kategorie" value="adjektive"
|
||||
<? if( ($old['kategorie'] ?? '') == 'adjektive') echo 'checked' ?>>
|
||||
Adjektive
|
||||
</label>
|
||||
<label class="kategorie">
|
||||
<input class="kategorie" type="radio" name="kategorie" value="allgemein"
|
||||
<? if( ($old['kategorie'] ?? '') == 'allgemein') echo 'checked' ?>>
|
||||
Allgemein
|
||||
</label>
|
||||
<label class="kategorie">
|
||||
<input class="kategorie" type="radio" name="kategorie" value="eigennamen"
|
||||
<? if( ($old['kategorie'] ?? '') == 'eigennamen') echo 'checked' ?>>
|
||||
Eigennamen
|
||||
</label>
|
||||
</div>
|
||||
<div id="div_deutsch">
|
||||
<p class="kategorie" id="p_deutsch">deutsch:</p>
|
||||
<input class="kategorie"
|
||||
id="input_deutsch"
|
||||
type="text"
|
||||
name="deutsch"
|
||||
value="<?= htmlspecialchars($old['deutsch'] ?? '') ?>"
|
||||
required>
|
||||
</div>
|
||||
<?php for($i = 0; $i < 7; $i++) { ?>
|
||||
<div>
|
||||
<div id="div_italienisch_text">
|
||||
<input class="kategorie"
|
||||
id="input_italienisch"
|
||||
type="text"
|
||||
name="italienisch_<?= $i ?>"
|
||||
value="<?= htmlspecialchars(($old['italienisch_' . $i] ?? '')) ?>"
|
||||
<? if($i == 0) echo 'required' ?>>
|
||||
</div>
|
||||
<div id="div_italienisch_radio">
|
||||
<label class="kategorie" id="label_italienisch_schwarz">
|
||||
<input class="kategorie"
|
||||
type="radio"
|
||||
name="farbe_<?= $i ?>"
|
||||
value="black"
|
||||
<? if( ($old['farbe_' . $i] ?? '') == 'black' || ($old['farbe_' . $i] ?? '') == '') echo 'checked' ?>>
|
||||
Standard
|
||||
</label>
|
||||
<label class="kategorie" id="label_italienisch_blau">
|
||||
<input class="kategorie"
|
||||
type="radio"
|
||||
name="farbe_<?= $i ?>"
|
||||
value="blue"
|
||||
<? if( ($old['farbe_' . $i] ?? '') == 'blue') echo 'checked' ?>>
|
||||
Blau
|
||||
</label>
|
||||
<label class="kategorie" id="label_italienisch_rot">
|
||||
<input class="kategorie"
|
||||
type="radio"
|
||||
name="farbe_<?= $i ?>"
|
||||
value="red"
|
||||
<? if( ($old['farbe_' . $i] ?? '') == 'red') echo 'checked' ?>>
|
||||
Rot
|
||||
</label>
|
||||
<label class="kategorie" id="label_italienisch_gruen">
|
||||
<input class="kategorie"
|
||||
type="radio"
|
||||
name="farbe_<?= $i ?>"
|
||||
value="green"
|
||||
<? if( ($old['farbe_' . $i] ?? '') == 'green') echo 'checked' ?>>
|
||||
Grün
|
||||
</label>
|
||||
</div>
|
||||
</div>
|
||||
<?php }; ?>
|
||||
<div id="div_speichern">
|
||||
<?php if ($error): ?>
|
||||
<p class=fehlermeldung><?= htmlspecialchars($error) ?></p>
|
||||
<?php endif; ?>
|
||||
<?php if ($success): ?>
|
||||
<p class=erfolgsmeldung><?= htmlspecialchars('Speichern erfolgreich') ?></p>
|
||||
<?php endif; ?>
|
||||
<button class="button-ellipsoid" id="start">
|
||||
speichern
|
||||
</button>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
<div class="menue">
|
||||
<a href="index.php" class="menueLink">
|
||||
< home >
|
||||
</a>
|
||||
<a href="neueKarte.php" class="menueLink">
|
||||
< zurück >
|
||||
</a>
|
||||
</div>
|
||||
</body>
|
||||
<?php
|
||||
require_once __DIR__ . '/includes/db_connect.php';
|
||||
$system = getenv('POSTGRES_SYSTEM') ?? 'test';
|
||||
|
||||
session_start();
|
||||
|
||||
$error = $_SESSION['error'] ?? '';
|
||||
$success = $_SESSION['success'] ?? '';
|
||||
$old = $_SESSION['old'] ?? [];
|
||||
|
||||
unset($_SESSION['error']);
|
||||
unset($_SESSION['success']);
|
||||
unset($_SESSION['old']);
|
||||
?>
|
||||
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
|
||||
<head>
|
||||
<link rel="stylesheet" href="style.css">
|
||||
</head>
|
||||
<body>
|
||||
<div class="header">
|
||||
<h2 class="seitentitel">pyolingo</h2>
|
||||
</div>
|
||||
<div class="inhalt">
|
||||
<form id="form_hinzufuegenkarte" action="forms/hinzufuegenKarte.php" method="post">
|
||||
<div class="hinzufuegenKarteElemente">
|
||||
<label class="kategorie">
|
||||
<input class="kategorie" type="radio" name="kategorie" value="substantive"
|
||||
<? if( ($old['kategorie'] ?? '') == 'substantive'
|
||||
|| ($old['kategorie'] ?? '') == '') echo 'checked' ?>>
|
||||
Substantive
|
||||
</label>
|
||||
<label class="kategorie">
|
||||
<input class="kategorie" type="radio" name="kategorie" value="adjektive"
|
||||
<? if( ($old['kategorie'] ?? '') == 'adjektive') echo 'checked' ?>>
|
||||
Adjektive
|
||||
</label>
|
||||
<label class="kategorie">
|
||||
<input class="kategorie" type="radio" name="kategorie" value="allgemein"
|
||||
<? if( ($old['kategorie'] ?? '') == 'allgemein') echo 'checked' ?>>
|
||||
Allgemein
|
||||
</label>
|
||||
<label class="kategorie">
|
||||
<input class="kategorie" type="radio" name="kategorie" value="eigennamen"
|
||||
<? if( ($old['kategorie'] ?? '') == 'eigennamen') echo 'checked' ?>>
|
||||
Eigennamen
|
||||
</label>
|
||||
</div>
|
||||
<div id="div_deutsch">
|
||||
<p class="kategorie" id="p_deutsch">deutsch:</p>
|
||||
<input class="kategorie"
|
||||
id="input_deutsch"
|
||||
type="text"
|
||||
name="deutsch"
|
||||
value="<?= htmlspecialchars($old['deutsch'] ?? '') ?>"
|
||||
required>
|
||||
</div>
|
||||
<?php for($i = 0; $i < 7; $i++) { ?>
|
||||
<div>
|
||||
<div id="div_italienisch_text">
|
||||
<input class="kategorie"
|
||||
id="input_italienisch"
|
||||
type="text"
|
||||
name="italienisch_<?= $i ?>"
|
||||
value="<?= htmlspecialchars(($old['italienisch_' . $i] ?? '')) ?>"
|
||||
<? if($i == 0) echo 'required' ?>>
|
||||
</div>
|
||||
<div id="div_italienisch_radio">
|
||||
<label class="kategorie" id="label_italienisch_schwarz">
|
||||
<input class="kategorie"
|
||||
type="radio"
|
||||
name="farbe_<?= $i ?>"
|
||||
value="black"
|
||||
<? if( ($old['farbe_' . $i] ?? '') == 'black' || ($old['farbe_' . $i] ?? '') == '') echo 'checked' ?>>
|
||||
Standard
|
||||
</label>
|
||||
<label class="kategorie" id="label_italienisch_blau">
|
||||
<input class="kategorie"
|
||||
type="radio"
|
||||
name="farbe_<?= $i ?>"
|
||||
value="blue"
|
||||
<? if( ($old['farbe_' . $i] ?? '') == 'blue') echo 'checked' ?>>
|
||||
Blau
|
||||
</label>
|
||||
<label class="kategorie" id="label_italienisch_rot">
|
||||
<input class="kategorie"
|
||||
type="radio"
|
||||
name="farbe_<?= $i ?>"
|
||||
value="red"
|
||||
<? if( ($old['farbe_' . $i] ?? '') == 'red') echo 'checked' ?>>
|
||||
Rot
|
||||
</label>
|
||||
<label class="kategorie" id="label_italienisch_gruen">
|
||||
<input class="kategorie"
|
||||
type="radio"
|
||||
name="farbe_<?= $i ?>"
|
||||
value="green"
|
||||
<? if( ($old['farbe_' . $i] ?? '') == 'green') echo 'checked' ?>>
|
||||
Grün
|
||||
</label>
|
||||
</div>
|
||||
</div>
|
||||
<?php }; ?>
|
||||
<div id="div_speichern">
|
||||
<?php if ($error): ?>
|
||||
<p class=fehlermeldung><?= htmlspecialchars($error) ?></p>
|
||||
<?php endif; ?>
|
||||
<?php if ($success): ?>
|
||||
<p class=erfolgsmeldung><?= htmlspecialchars('Speichern erfolgreich') ?></p>
|
||||
<?php endif; ?>
|
||||
<button class="button-ellipsoid" id="start">
|
||||
speichern
|
||||
</button>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
<div class="menue">
|
||||
<a href="index.php" class="menueLink">
|
||||
< home >
|
||||
</a>
|
||||
<a href="neueKarte.php" class="menueLink">
|
||||
< zurück >
|
||||
</a>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
130
data.php
130
data.php
@ -1,66 +1,66 @@
|
||||
<?php
|
||||
require_once __DIR__ . '/includes/db_connect.php';
|
||||
|
||||
header('Content-Type: application/json');
|
||||
|
||||
$stmt = $pdo->query("WITH zeile AS (
|
||||
SELECT d.id,
|
||||
d.wort,
|
||||
k.name,
|
||||
i.wort AS italienisch,
|
||||
COALESCE(f.farbe, 'black') AS farbe,
|
||||
p.pronomen,
|
||||
i.endung,
|
||||
i.suffix,
|
||||
ROW_NUMBER() OVER (PARTITION BY d.wort ORDER BY i.personalpronomen_id NULLS FIRST, i.id) AS rn
|
||||
FROM deutsch d
|
||||
JOIN italienisch i ON i.deutsch_id = d.id
|
||||
LEFT OUTER JOIN personalpronomen p ON p.id = i.personalpronomen_id
|
||||
LEFT OUTER JOIN farbe f ON f.id = i.farbe_id
|
||||
JOIN kategorie k ON k.id = d.kategorie_id
|
||||
)
|
||||
SELECT id,
|
||||
wort AS deutsch,
|
||||
name AS wortart,
|
||||
MAX(CASE WHEN rn = 1 THEN italienisch END) AS italienisch_1,
|
||||
MAX(CASE WHEN rn = 1 THEN farbe END) AS farbe_1,
|
||||
MAX(CASE WHEN rn = 1 THEN pronomen END) AS pronomen_1,
|
||||
MAX(CASE WHEN rn = 1 THEN endung END) AS endung_1,
|
||||
MAX(CASE WHEN rn = 1 THEN suffix END) AS suffix_1,
|
||||
MAX(CASE WHEN rn = 2 THEN italienisch END) AS italienisch_2,
|
||||
MAX(CASE WHEN rn = 2 THEN farbe END) AS farbe_2,
|
||||
MAX(CASE WHEN rn = 2 THEN pronomen END) AS pronomen_2,
|
||||
MAX(CASE WHEN rn = 2 THEN endung END) AS endung_2,
|
||||
MAX(CASE WHEN rn = 2 THEN suffix END) AS suffix_2,
|
||||
MAX(CASE WHEN rn = 3 THEN italienisch END) AS italienisch_3,
|
||||
MAX(CASE WHEN rn = 3 THEN farbe END) AS farbe_3,
|
||||
MAX(CASE WHEN rn = 3 THEN pronomen END) AS pronomen_3,
|
||||
MAX(CASE WHEN rn = 3 THEN endung END) AS endung_3,
|
||||
MAX(CASE WHEN rn = 3 THEN suffix END) AS suffix_3,
|
||||
MAX(CASE WHEN rn = 4 THEN italienisch END) AS italienisch_4,
|
||||
MAX(CASE WHEN rn = 4 THEN farbe END) AS farbe_4,
|
||||
MAX(CASE WHEN rn = 4 THEN pronomen END) AS pronomen_4,
|
||||
MAX(CASE WHEN rn = 4 THEN endung END) AS endung_4,
|
||||
MAX(CASE WHEN rn = 4 THEN suffix END) AS suffix_4,
|
||||
MAX(CASE WHEN rn = 5 THEN italienisch END) AS italienisch_5,
|
||||
MAX(CASE WHEN rn = 5 THEN farbe END) AS farbe_5,
|
||||
MAX(CASE WHEN rn = 5 THEN pronomen END) AS pronomen_5,
|
||||
MAX(CASE WHEN rn = 5 THEN endung END) AS endung_5,
|
||||
MAX(CASE WHEN rn = 5 THEN suffix END) AS suffix_5,
|
||||
MAX(CASE WHEN rn = 6 THEN italienisch END) AS italienisch_6,
|
||||
MAX(CASE WHEN rn = 6 THEN farbe END) AS farbe_6,
|
||||
MAX(CASE WHEN rn = 6 THEN pronomen END) AS pronomen_6,
|
||||
MAX(CASE WHEN rn = 6 THEN endung END) AS endung_6,
|
||||
MAX(CASE WHEN rn = 6 THEN suffix END) AS suffix_6,
|
||||
MAX(CASE WHEN rn = 7 THEN italienisch END) AS italienisch_7,
|
||||
MAX(CASE WHEN rn = 7 THEN farbe END) AS farbe_7,
|
||||
MAX(CASE WHEN rn = 7 THEN pronomen END) AS pronomen_7,
|
||||
MAX(CASE WHEN rn = 7 THEN endung END) AS endung_7,
|
||||
MAX(CASE WHEN rn = 7 THEN suffix END) AS suffix_7
|
||||
FROM zeile
|
||||
GROUP BY id, wort, name
|
||||
ORDER BY id;");
|
||||
|
||||
$karteikarten = $stmt->fetchAll(PDO::FETCH_ASSOC);
|
||||
|
||||
<?php
|
||||
require_once __DIR__ . '/includes/db_connect.php';
|
||||
|
||||
header('Content-Type: application/json');
|
||||
|
||||
$stmt = $pdo->query("WITH zeile AS (
|
||||
SELECT d.id,
|
||||
d.wort,
|
||||
k.name,
|
||||
i.wort AS italienisch,
|
||||
COALESCE(f.farbe, 'black') AS farbe,
|
||||
p.pronomen,
|
||||
i.endung,
|
||||
i.suffix,
|
||||
ROW_NUMBER() OVER (PARTITION BY d.wort ORDER BY i.personalpronomen_id NULLS FIRST, i.id) AS rn
|
||||
FROM deutsch d
|
||||
JOIN italienisch i ON i.deutsch_id = d.id
|
||||
LEFT OUTER JOIN personalpronomen p ON p.id = i.personalpronomen_id
|
||||
LEFT OUTER JOIN farbe f ON f.id = i.farbe_id
|
||||
JOIN kategorie k ON k.id = d.kategorie_id
|
||||
)
|
||||
SELECT id,
|
||||
wort AS deutsch,
|
||||
name AS wortart,
|
||||
MAX(CASE WHEN rn = 1 THEN italienisch END) AS italienisch_1,
|
||||
MAX(CASE WHEN rn = 1 THEN farbe END) AS farbe_1,
|
||||
MAX(CASE WHEN rn = 1 THEN pronomen END) AS pronomen_1,
|
||||
MAX(CASE WHEN rn = 1 THEN endung END) AS endung_1,
|
||||
MAX(CASE WHEN rn = 1 THEN suffix END) AS suffix_1,
|
||||
MAX(CASE WHEN rn = 2 THEN italienisch END) AS italienisch_2,
|
||||
MAX(CASE WHEN rn = 2 THEN farbe END) AS farbe_2,
|
||||
MAX(CASE WHEN rn = 2 THEN pronomen END) AS pronomen_2,
|
||||
MAX(CASE WHEN rn = 2 THEN endung END) AS endung_2,
|
||||
MAX(CASE WHEN rn = 2 THEN suffix END) AS suffix_2,
|
||||
MAX(CASE WHEN rn = 3 THEN italienisch END) AS italienisch_3,
|
||||
MAX(CASE WHEN rn = 3 THEN farbe END) AS farbe_3,
|
||||
MAX(CASE WHEN rn = 3 THEN pronomen END) AS pronomen_3,
|
||||
MAX(CASE WHEN rn = 3 THEN endung END) AS endung_3,
|
||||
MAX(CASE WHEN rn = 3 THEN suffix END) AS suffix_3,
|
||||
MAX(CASE WHEN rn = 4 THEN italienisch END) AS italienisch_4,
|
||||
MAX(CASE WHEN rn = 4 THEN farbe END) AS farbe_4,
|
||||
MAX(CASE WHEN rn = 4 THEN pronomen END) AS pronomen_4,
|
||||
MAX(CASE WHEN rn = 4 THEN endung END) AS endung_4,
|
||||
MAX(CASE WHEN rn = 4 THEN suffix END) AS suffix_4,
|
||||
MAX(CASE WHEN rn = 5 THEN italienisch END) AS italienisch_5,
|
||||
MAX(CASE WHEN rn = 5 THEN farbe END) AS farbe_5,
|
||||
MAX(CASE WHEN rn = 5 THEN pronomen END) AS pronomen_5,
|
||||
MAX(CASE WHEN rn = 5 THEN endung END) AS endung_5,
|
||||
MAX(CASE WHEN rn = 5 THEN suffix END) AS suffix_5,
|
||||
MAX(CASE WHEN rn = 6 THEN italienisch END) AS italienisch_6,
|
||||
MAX(CASE WHEN rn = 6 THEN farbe END) AS farbe_6,
|
||||
MAX(CASE WHEN rn = 6 THEN pronomen END) AS pronomen_6,
|
||||
MAX(CASE WHEN rn = 6 THEN endung END) AS endung_6,
|
||||
MAX(CASE WHEN rn = 6 THEN suffix END) AS suffix_6,
|
||||
MAX(CASE WHEN rn = 7 THEN italienisch END) AS italienisch_7,
|
||||
MAX(CASE WHEN rn = 7 THEN farbe END) AS farbe_7,
|
||||
MAX(CASE WHEN rn = 7 THEN pronomen END) AS pronomen_7,
|
||||
MAX(CASE WHEN rn = 7 THEN endung END) AS endung_7,
|
||||
MAX(CASE WHEN rn = 7 THEN suffix END) AS suffix_7
|
||||
FROM zeile
|
||||
GROUP BY id, wort, name
|
||||
ORDER BY id;");
|
||||
|
||||
$karteikarten = $stmt->fetchAll(PDO::FETCH_ASSOC);
|
||||
|
||||
echo json_encode($karteikarten);
|
||||
@ -1,151 +1,151 @@
|
||||
<?php
|
||||
require_once __DIR__ . '/../includes/db_connect.php';
|
||||
|
||||
session_start();
|
||||
|
||||
$_SESSION['old'] = $_POST;
|
||||
|
||||
$return = $_POST['return'] ?? 'allgemein';
|
||||
|
||||
$kategorie = $_POST['kategorie'] ?? 'substantive';
|
||||
$deutsch = trim($_POST['deutsch'] ?? '');
|
||||
$suffix = trim($_POST['suffix'] ?? null);
|
||||
|
||||
$italienisch = [];
|
||||
$farbe = [];
|
||||
$wortstamm = [];
|
||||
$endung = [];
|
||||
|
||||
$endungVergleich = '';
|
||||
|
||||
if($kategorie != 'verben') {
|
||||
for($i = 0; $i < 7; $i++) {
|
||||
$italienisch[$i] = trim($_POST['italienisch_' . $i] ?? '');
|
||||
$farbe[$i] = $_POST['farbe_' . $i] ?? 'black';
|
||||
}
|
||||
} else {
|
||||
for($i = 0; $i < 7; $i++) {
|
||||
$wortstamm[$i] = trim($_POST['wortstamm_' . $i] ?? '');
|
||||
|
||||
$endung[$i] = trim($_POST['endung_' . $i] ?? '');
|
||||
$endungVergleich .= $endung[$i];
|
||||
}
|
||||
|
||||
if($endungVergleich == '') $endung = [];
|
||||
|
||||
$return = 'verben';
|
||||
}
|
||||
|
||||
if($deutsch === '') {
|
||||
$_SESSION['error'] = "Das deutsche Wort darf nicht leer sein!";
|
||||
header("Location: ../$return.php");
|
||||
exit;
|
||||
}
|
||||
if(count($italienisch) == 0 && count($wortstamm) == 0) {
|
||||
$_SESSION['error'] = "Das erste italienische Wort darf nicht leer sein!";
|
||||
header("Location: ../$return.php");
|
||||
exit;
|
||||
}
|
||||
|
||||
insertDB($pdo, $kategorie, $deutsch, $italienisch, $farbe, $wortstamm, $endung, $suffix);
|
||||
|
||||
unset($_SESSION['old']);
|
||||
|
||||
function insertDB(PDO $pdo,
|
||||
string $kategorie,
|
||||
string $deutsch,
|
||||
array $italienisch,
|
||||
array $farbe,
|
||||
array $wortstamm,
|
||||
array $endung,
|
||||
string $suffix) {
|
||||
|
||||
try {
|
||||
$pdo->beginTransaction();
|
||||
|
||||
$stmt = $pdo->prepare("SELECT id
|
||||
FROM deutsch
|
||||
WHERE LOWER(wort) = LOWER(:deutsch);");
|
||||
$stmt->execute(['deutsch' => $deutsch]);
|
||||
if($stmt->fetchColumn() != null) throw new Exception('deutsches Wort bereits vorhanden');
|
||||
|
||||
$stmt = $pdo->prepare("SELECT id
|
||||
FROM kategorie
|
||||
WHERE LOWER(name) = LOWER(:kategorie);");
|
||||
$stmt->execute(['kategorie' => $kategorie]);
|
||||
$kategorie_id = $stmt->fetchColumn();
|
||||
|
||||
$stmt = $pdo->query("SELECT id,
|
||||
farbe
|
||||
FROM farbe;");
|
||||
$farbe_array = $stmt->fetchAll(PDO::FETCH_ASSOC);
|
||||
|
||||
foreach($farbe_array as $farbe) if($farbe['farbe'] == 'red') $red_farbe_id = $farbe['id'];
|
||||
|
||||
$stmt = $pdo->prepare("INSERT INTO deutsch(wort, kategorie_id, wort_hinzugefuegt)
|
||||
VALUES (:wort, :kategorie_id, (:wort_hinzugefuegt)::timestamp);");
|
||||
$stmt->execute(['wort' => $deutsch,
|
||||
'kategorie_id' => $kategorie_id,
|
||||
'wort_hinzugefuegt' => date('Y-m-d H:i:s')]);
|
||||
|
||||
$stmt = $pdo->prepare("SELECT id
|
||||
FROM deutsch
|
||||
WHERE LOWER(wort) = LOWER(:deutsch);");
|
||||
$stmt->execute(['deutsch' => $deutsch]);
|
||||
$deutsch_id = $stmt->fetchColumn();
|
||||
|
||||
if($kategorie != 'verben') {
|
||||
for($i = 0; $i < 7; $i++) {
|
||||
$farbe_id = -1;
|
||||
foreach($farbe_array as $it_farbe) if($it_farbe['farbe'] == $farbe[$i]) $farbe_id = $it_farbe['id'];
|
||||
|
||||
if($italienisch[$i] != "") {
|
||||
$stmt = $pdo->prepare("INSERT INTO italienisch (wort, deutsch_id, farbe_id)
|
||||
VALUES (:italienisch, :deutsch_id, :farbe_id)");
|
||||
$stmt->execute(['italienisch' => $italienisch[$i],
|
||||
'deutsch_id' => $deutsch_id,
|
||||
'farbe_id' => $farbe_id]);
|
||||
}
|
||||
}
|
||||
} else {
|
||||
$stmt = $pdo->query("SELECT id FROM personalpronomen;");
|
||||
$personalpronomen = $stmt->fetchAll(PDO::FETCH_ASSOC);
|
||||
|
||||
for($i = 0; $i < 7; $i++) {
|
||||
$pp = ($i == 0) ? null : $personalpronomen[$i - 1]['id'];
|
||||
|
||||
$stmt = $pdo->prepare("INSERT INTO italienisch (wort, deutsch_id, personalpronomen_id, suffix, endung, farbe_id)
|
||||
VALUES (:wort, :deutsch_id, :personalpronomen_id, :suffix, :endung, :farbe_id)");
|
||||
|
||||
if(count($endung) == 0) {
|
||||
$stmt->execute(['wort' => $wortstamm[$i],
|
||||
'deutsch_id' => $deutsch_id,
|
||||
'personalpronomen_id' => $pp,
|
||||
'suffix' => $suffix,
|
||||
'endung' => null,
|
||||
'farbe_id' => null]);
|
||||
} else {
|
||||
$stmt->execute(['wort' => $wortstamm[$i],
|
||||
'deutsch_id' => $deutsch_id,
|
||||
'personalpronomen_id' => $pp,
|
||||
'suffix' => $suffix,
|
||||
'endung' => $endung[$i],
|
||||
'farbe_id' => $red_farbe_id]);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
$pdo->commit();
|
||||
|
||||
return 0;
|
||||
|
||||
} catch(Exception $e) {
|
||||
$pdo->rollBack();
|
||||
echo "Fehler: " . $e->getMessage();
|
||||
return 1;
|
||||
}
|
||||
}
|
||||
|
||||
$_SESSION['success'] = "neues Wort gespeichert";
|
||||
header("Location: ../$return.php");
|
||||
<?php
|
||||
require_once __DIR__ . '/../includes/db_connect.php';
|
||||
|
||||
session_start();
|
||||
|
||||
$_SESSION['old'] = $_POST;
|
||||
|
||||
$return = $_POST['return'] ?? 'allgemein';
|
||||
|
||||
$kategorie = $_POST['kategorie'] ?? 'substantive';
|
||||
$deutsch = trim($_POST['deutsch'] ?? '');
|
||||
$suffix = trim($_POST['suffix'] ?? null);
|
||||
|
||||
$italienisch = [];
|
||||
$farbe = [];
|
||||
$wortstamm = [];
|
||||
$endung = [];
|
||||
|
||||
$endungVergleich = '';
|
||||
|
||||
if($kategorie != 'verben') {
|
||||
for($i = 0; $i < 7; $i++) {
|
||||
$italienisch[$i] = trim($_POST['italienisch_' . $i] ?? '');
|
||||
$farbe[$i] = $_POST['farbe_' . $i] ?? 'black';
|
||||
}
|
||||
} else {
|
||||
for($i = 0; $i < 7; $i++) {
|
||||
$wortstamm[$i] = trim($_POST['wortstamm_' . $i] ?? '');
|
||||
|
||||
$endung[$i] = trim($_POST['endung_' . $i] ?? '');
|
||||
$endungVergleich .= $endung[$i];
|
||||
}
|
||||
|
||||
if($endungVergleich == '') $endung = [];
|
||||
|
||||
$return = 'verben';
|
||||
}
|
||||
|
||||
if($deutsch === '') {
|
||||
$_SESSION['error'] = "Das deutsche Wort darf nicht leer sein!";
|
||||
header("Location: ../$return.php");
|
||||
exit;
|
||||
}
|
||||
if(count($italienisch) == 0 && count($wortstamm) == 0) {
|
||||
$_SESSION['error'] = "Das erste italienische Wort darf nicht leer sein!";
|
||||
header("Location: ../$return.php");
|
||||
exit;
|
||||
}
|
||||
|
||||
insertDB($pdo, $kategorie, $deutsch, $italienisch, $farbe, $wortstamm, $endung, $suffix);
|
||||
|
||||
unset($_SESSION['old']);
|
||||
|
||||
function insertDB(PDO $pdo,
|
||||
string $kategorie,
|
||||
string $deutsch,
|
||||
array $italienisch,
|
||||
array $farbe,
|
||||
array $wortstamm,
|
||||
array $endung,
|
||||
string $suffix) {
|
||||
|
||||
try {
|
||||
$pdo->beginTransaction();
|
||||
|
||||
$stmt = $pdo->prepare("SELECT id
|
||||
FROM deutsch
|
||||
WHERE LOWER(wort) = LOWER(:deutsch);");
|
||||
$stmt->execute(['deutsch' => $deutsch]);
|
||||
if($stmt->fetchColumn() != null) throw new Exception('deutsches Wort bereits vorhanden');
|
||||
|
||||
$stmt = $pdo->prepare("SELECT id
|
||||
FROM kategorie
|
||||
WHERE LOWER(name) = LOWER(:kategorie);");
|
||||
$stmt->execute(['kategorie' => $kategorie]);
|
||||
$kategorie_id = $stmt->fetchColumn();
|
||||
|
||||
$stmt = $pdo->query("SELECT id,
|
||||
farbe
|
||||
FROM farbe;");
|
||||
$farbe_array = $stmt->fetchAll(PDO::FETCH_ASSOC);
|
||||
|
||||
foreach($farbe_array as $farbe) if($farbe['farbe'] == 'red') $red_farbe_id = $farbe['id'];
|
||||
|
||||
$stmt = $pdo->prepare("INSERT INTO deutsch(wort, kategorie_id, wort_hinzugefuegt)
|
||||
VALUES (:wort, :kategorie_id, (:wort_hinzugefuegt)::timestamp);");
|
||||
$stmt->execute(['wort' => $deutsch,
|
||||
'kategorie_id' => $kategorie_id,
|
||||
'wort_hinzugefuegt' => date('Y-m-d H:i:s')]);
|
||||
|
||||
$stmt = $pdo->prepare("SELECT id
|
||||
FROM deutsch
|
||||
WHERE LOWER(wort) = LOWER(:deutsch);");
|
||||
$stmt->execute(['deutsch' => $deutsch]);
|
||||
$deutsch_id = $stmt->fetchColumn();
|
||||
|
||||
if($kategorie != 'verben') {
|
||||
for($i = 0; $i < 7; $i++) {
|
||||
$farbe_id = -1;
|
||||
foreach($farbe_array as $it_farbe) if($it_farbe['farbe'] == $farbe[$i]) $farbe_id = $it_farbe['id'];
|
||||
|
||||
if($italienisch[$i] != "") {
|
||||
$stmt = $pdo->prepare("INSERT INTO italienisch (wort, deutsch_id, farbe_id)
|
||||
VALUES (:italienisch, :deutsch_id, :farbe_id)");
|
||||
$stmt->execute(['italienisch' => $italienisch[$i],
|
||||
'deutsch_id' => $deutsch_id,
|
||||
'farbe_id' => $farbe_id]);
|
||||
}
|
||||
}
|
||||
} else {
|
||||
$stmt = $pdo->query("SELECT id FROM personalpronomen;");
|
||||
$personalpronomen = $stmt->fetchAll(PDO::FETCH_ASSOC);
|
||||
|
||||
for($i = 0; $i < 7; $i++) {
|
||||
$pp = ($i == 0) ? null : $personalpronomen[$i - 1]['id'];
|
||||
|
||||
$stmt = $pdo->prepare("INSERT INTO italienisch (wort, deutsch_id, personalpronomen_id, suffix, endung, farbe_id)
|
||||
VALUES (:wort, :deutsch_id, :personalpronomen_id, :suffix, :endung, :farbe_id)");
|
||||
|
||||
if(count($endung) == 0) {
|
||||
$stmt->execute(['wort' => $wortstamm[$i],
|
||||
'deutsch_id' => $deutsch_id,
|
||||
'personalpronomen_id' => $pp,
|
||||
'suffix' => $suffix,
|
||||
'endung' => null,
|
||||
'farbe_id' => null]);
|
||||
} else {
|
||||
$stmt->execute(['wort' => $wortstamm[$i],
|
||||
'deutsch_id' => $deutsch_id,
|
||||
'personalpronomen_id' => $pp,
|
||||
'suffix' => $suffix,
|
||||
'endung' => $endung[$i],
|
||||
'farbe_id' => $red_farbe_id]);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
$pdo->commit();
|
||||
|
||||
return 0;
|
||||
|
||||
} catch(Exception $e) {
|
||||
$pdo->rollBack();
|
||||
echo "Fehler: " . $e->getMessage();
|
||||
return 1;
|
||||
}
|
||||
}
|
||||
|
||||
$_SESSION['success'] = "neues Wort gespeichert";
|
||||
header("Location: ../$return.php");
|
||||
exit;
|
||||
@ -1,14 +1,14 @@
|
||||
<?php
|
||||
$host = getenv('POSTGRES_HOST');
|
||||
$db = getenv('POSTGRES_DB');
|
||||
$user = getenv('POSTGRES_APPUSER');
|
||||
$pass = getenv('POSTGRES_APPPASSWORD');
|
||||
$port = getenv('POSTGRES_PORT');
|
||||
|
||||
try {
|
||||
$dsn = "pgsql:host=$host;port=$port;dbname=$db;";
|
||||
$pdo = new PDO($dsn, $user, $pass, [PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION]);
|
||||
} catch (PDOException $e) {
|
||||
echo "Verbindungsfehler: " . $e->getMessage();
|
||||
}
|
||||
<?php
|
||||
$host = getenv('POSTGRES_HOST');
|
||||
$db = getenv('POSTGRES_DB');
|
||||
$user = getenv('POSTGRES_APPUSER');
|
||||
$pass = getenv('POSTGRES_APPPASSWORD');
|
||||
$port = getenv('POSTGRES_PORT');
|
||||
|
||||
try {
|
||||
$dsn = "pgsql:host=$host;port=$port;dbname=$db;";
|
||||
$pdo = new PDO($dsn, $user, $pass, [PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION]);
|
||||
} catch (PDOException $e) {
|
||||
echo "Verbindungsfehler: " . $e->getMessage();
|
||||
}
|
||||
?>
|
||||
@ -1,22 +1,22 @@
|
||||
<?php
|
||||
require_once __DIR__ . '/includes/db_connect.php';
|
||||
$system = getenv('POSTGRES_SYSTEM') ?? 'test';
|
||||
|
||||
?>
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
|
||||
<head>
|
||||
<link rel="stylesheet" href="style.css">
|
||||
</head>
|
||||
<body>
|
||||
<div class="header">
|
||||
<h2 class="seitentitel">pyolingo</h2>
|
||||
</div>
|
||||
<div class="menue">
|
||||
<a href="index.php" class="menueLink">
|
||||
< home >
|
||||
</a>
|
||||
</div>
|
||||
</body>
|
||||
<?php
|
||||
require_once __DIR__ . '/includes/db_connect.php';
|
||||
$system = getenv('POSTGRES_SYSTEM') ?? 'test';
|
||||
|
||||
?>
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
|
||||
<head>
|
||||
<link rel="stylesheet" href="style.css">
|
||||
</head>
|
||||
<body>
|
||||
<div class="header">
|
||||
<h2 class="seitentitel">pyolingo</h2>
|
||||
</div>
|
||||
<div class="menue">
|
||||
<a href="index.php" class="menueLink">
|
||||
< home >
|
||||
</a>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
@ -1,34 +1,34 @@
|
||||
<?php
|
||||
require_once __DIR__ . '/includes/db_connect.php';
|
||||
$system = getenv('POSTGRES_SYSTEM') ?? 'test';
|
||||
|
||||
?>
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
|
||||
<head>
|
||||
<link rel="stylesheet" href="style.css">
|
||||
</head>
|
||||
<body>
|
||||
<div class="header">
|
||||
<h2 class="seitentitel">pyolingo</h2>
|
||||
</div>
|
||||
<div class="inhalt">
|
||||
<form action="allgemein.php">
|
||||
<button class="button-ellipsoid" id="start" type="submit">
|
||||
Anderes
|
||||
</button>
|
||||
</form>
|
||||
<form action="verben.php">
|
||||
<button class="button-ellipsoid" id="start" type="submit">
|
||||
Verben
|
||||
</button>
|
||||
</form>
|
||||
</div>
|
||||
<div class="menue">
|
||||
<a href="index.php" class="menueLink">
|
||||
< home >
|
||||
</a>
|
||||
</div>
|
||||
</body>
|
||||
<?php
|
||||
require_once __DIR__ . '/includes/db_connect.php';
|
||||
$system = getenv('POSTGRES_SYSTEM') ?? 'test';
|
||||
|
||||
?>
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
|
||||
<head>
|
||||
<link rel="stylesheet" href="style.css">
|
||||
</head>
|
||||
<body>
|
||||
<div class="header">
|
||||
<h2 class="seitentitel">pyolingo</h2>
|
||||
</div>
|
||||
<div class="inhalt">
|
||||
<form action="allgemein.php">
|
||||
<button class="button-ellipsoid" id="start" type="submit">
|
||||
Anderes
|
||||
</button>
|
||||
</form>
|
||||
<form action="verben.php">
|
||||
<button class="button-ellipsoid" id="start" type="submit">
|
||||
Verben
|
||||
</button>
|
||||
</form>
|
||||
</div>
|
||||
<div class="menue">
|
||||
<a href="index.php" class="menueLink">
|
||||
< home >
|
||||
</a>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
558
style.css
558
style.css
@ -1,280 +1,280 @@
|
||||
html {
|
||||
font-size: 24px;
|
||||
font-family: Arial, Helvetica, sans-serif;
|
||||
}
|
||||
|
||||
body {
|
||||
background-color: rgb(122, 122, 122);
|
||||
color: #14748A;
|
||||
}
|
||||
|
||||
h2 {
|
||||
font-size: 2.2rem;
|
||||
}
|
||||
|
||||
p {
|
||||
white-space: pre-wrap;
|
||||
}
|
||||
|
||||
h2.seitentitel {
|
||||
width: 100%;
|
||||
border-style: none;
|
||||
margin-left: 100px;
|
||||
}
|
||||
|
||||
div.header{
|
||||
position: fixed;
|
||||
top: 0;
|
||||
left: 0;
|
||||
width: 100%;
|
||||
height: 70px;
|
||||
background-color: rgb(210, 210, 210);
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: space-between;
|
||||
z-index: 1000;
|
||||
padding-top: 20px;
|
||||
padding-bottom: 20px;
|
||||
}
|
||||
|
||||
.button-ellipsoid:hover {
|
||||
background: linear-gradient(#169ab7, #14748A);
|
||||
}
|
||||
|
||||
.button-ellipsoid {
|
||||
font-size: 26px;
|
||||
font-family: Arial, Helvetica, sans-serif;
|
||||
height: 100px;
|
||||
width: 300px;
|
||||
margin-top: 25px;
|
||||
padding: 25px 40px;
|
||||
color: black;
|
||||
background: radial-gradient(ellipse at center, #14748A 0%, #169ab7 70%);
|
||||
border: none;
|
||||
border-radius: 180px / 130px;
|
||||
box-shadow: inset 0 3px 6px rgba(255,255,255,0.4),
|
||||
0 4px 8px rgba(0,0,0,0.3);
|
||||
}
|
||||
|
||||
.button-karteikarte {
|
||||
display: none;
|
||||
font-size: 40px;
|
||||
font-family: Arial, Helvetica, sans-serif;
|
||||
width: 85%;
|
||||
margin-top: 25px;
|
||||
padding: 25px 40px;
|
||||
color: black;
|
||||
background: rgb(210, 210, 210);;
|
||||
border: none;
|
||||
box-shadow: inset 0 3px 6px rgba(255,255,255,0.4),
|
||||
0 4px 8px rgba(0,0,0,0.3);
|
||||
}
|
||||
|
||||
.p-karteikarte {
|
||||
display: none;
|
||||
margin: 0px;
|
||||
}
|
||||
|
||||
.p-karteikarte_verben {
|
||||
margin: 0px;
|
||||
}
|
||||
|
||||
#deutsch {
|
||||
height: 250px;
|
||||
}
|
||||
|
||||
#button_kartenNavigationVorh {
|
||||
height: 75px;
|
||||
width: 450px;
|
||||
margin-top: 0;
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
#button_kartenNavigationNaech {
|
||||
height: 75px;
|
||||
width: 450px;
|
||||
margin-top: 0;
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
#deutsch.disabled {
|
||||
pointer-events: none;
|
||||
opacity: 1;
|
||||
}
|
||||
|
||||
#italienisch {
|
||||
height: 650px;
|
||||
flex-direction: column;
|
||||
align-items: center;
|
||||
}
|
||||
|
||||
#italienisch_verben {
|
||||
height: 500px;
|
||||
}
|
||||
|
||||
div.inhalt {
|
||||
margin-top: 150px;
|
||||
height: calc(100vh - 80px);
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
align-items: center;
|
||||
}
|
||||
|
||||
#wortZaehler {
|
||||
width: 300px;
|
||||
margin-right: 100px;
|
||||
text-align: right;
|
||||
margin-left: 0px;
|
||||
}
|
||||
|
||||
div.menue {
|
||||
position: fixed;
|
||||
bottom: 50px;
|
||||
left: 0;
|
||||
width: 100%;
|
||||
height: 70px;
|
||||
z-index: 1000;
|
||||
background-color: rgb(210, 210, 210);
|
||||
padding-top: 20px;
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
}
|
||||
|
||||
a.menueLink {
|
||||
text-decoration: none;
|
||||
line-height: 0.8;
|
||||
font-size: 1.5rem;
|
||||
border-radius: 5px;
|
||||
flex: 1;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
a:visited {
|
||||
color:#14748A;
|
||||
}
|
||||
|
||||
.table-karteikarte {
|
||||
width: 100%;
|
||||
text-align: left;
|
||||
}
|
||||
|
||||
.td-pronomen {
|
||||
width: 30%;
|
||||
}
|
||||
|
||||
.kategorie {
|
||||
font-size: 30px;
|
||||
color: black;
|
||||
align-items: center;
|
||||
display: flex;
|
||||
}
|
||||
|
||||
.kategorie input[type="radio"] {
|
||||
transform: scale(1.5);
|
||||
margin-right: 10px;
|
||||
}
|
||||
|
||||
#form_hinzufuegenkarte {
|
||||
width: 95%;
|
||||
}
|
||||
|
||||
#p_deutsch {
|
||||
display: inline-block;
|
||||
}
|
||||
|
||||
#p_italienisch {
|
||||
display: inline-block;
|
||||
margin: 0px;
|
||||
white-space: unset;
|
||||
}
|
||||
|
||||
#input_deutsch {
|
||||
display: inline-block;
|
||||
width: 700px;
|
||||
margin-left: 30px;
|
||||
}
|
||||
|
||||
#input_suffix {
|
||||
display: inline-block;
|
||||
width: 700px;
|
||||
margin-left: 60px;
|
||||
}
|
||||
|
||||
.hinzufuegenKarteElemente {
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
}
|
||||
|
||||
#label_italienisch_schwarz {
|
||||
color: black;
|
||||
}
|
||||
|
||||
#label_italienisch_rot {
|
||||
color: red;
|
||||
}
|
||||
|
||||
#label_italienisch_gruen {
|
||||
color: green;
|
||||
}
|
||||
|
||||
#label_italienisch_blau {
|
||||
color: blue;
|
||||
}
|
||||
|
||||
#input_italienisch {
|
||||
width: 850px;
|
||||
display: inline-block;
|
||||
}
|
||||
|
||||
#div_deutsch {
|
||||
margin-top: 40px;
|
||||
}
|
||||
|
||||
#div_italienisch_text {
|
||||
display: inline-block;
|
||||
width: 95%;
|
||||
margin-top: 40px;
|
||||
}
|
||||
|
||||
#div_italienisch_radio {
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
width: 65%;
|
||||
margin-top: 10px;
|
||||
}
|
||||
|
||||
#div_speichern {
|
||||
margin-top: 25px;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
align-items: center;
|
||||
}
|
||||
|
||||
.fehlermeldung {
|
||||
color: red;
|
||||
font-size: 36px;
|
||||
}
|
||||
|
||||
.erfolgsmeldung {
|
||||
color: #14748A;
|
||||
font-size: 36px;
|
||||
}
|
||||
|
||||
#table_verben {
|
||||
font-size: 30px;
|
||||
color: black;
|
||||
}
|
||||
|
||||
#input_wortstamm {
|
||||
width: 500px;
|
||||
}
|
||||
|
||||
#input_endung {
|
||||
color: red;
|
||||
width: 130px;
|
||||
}
|
||||
|
||||
#kartenNavigation {
|
||||
bottom: 200px;
|
||||
background-color: rgb(122, 122, 122);
|
||||
html {
|
||||
font-size: 24px;
|
||||
font-family: Arial, Helvetica, sans-serif;
|
||||
}
|
||||
|
||||
body {
|
||||
background-color: rgb(122, 122, 122);
|
||||
color: #14748A;
|
||||
}
|
||||
|
||||
h2 {
|
||||
font-size: 2.2rem;
|
||||
}
|
||||
|
||||
p {
|
||||
white-space: pre-wrap;
|
||||
}
|
||||
|
||||
h2.seitentitel {
|
||||
width: 100%;
|
||||
border-style: none;
|
||||
margin-left: 100px;
|
||||
}
|
||||
|
||||
div.header{
|
||||
position: fixed;
|
||||
top: 0;
|
||||
left: 0;
|
||||
width: 100%;
|
||||
height: 70px;
|
||||
background-color: rgb(210, 210, 210);
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: space-between;
|
||||
z-index: 1000;
|
||||
padding-top: 20px;
|
||||
padding-bottom: 20px;
|
||||
}
|
||||
|
||||
.button-ellipsoid:hover {
|
||||
background: linear-gradient(#169ab7, #14748A);
|
||||
}
|
||||
|
||||
.button-ellipsoid {
|
||||
font-size: 26px;
|
||||
font-family: Arial, Helvetica, sans-serif;
|
||||
height: 100px;
|
||||
width: 300px;
|
||||
margin-top: 25px;
|
||||
padding: 25px 40px;
|
||||
color: black;
|
||||
background: radial-gradient(ellipse at center, #14748A 0%, #169ab7 70%);
|
||||
border: none;
|
||||
border-radius: 180px / 130px;
|
||||
box-shadow: inset 0 3px 6px rgba(255,255,255,0.4),
|
||||
0 4px 8px rgba(0,0,0,0.3);
|
||||
}
|
||||
|
||||
.button-karteikarte {
|
||||
display: none;
|
||||
font-size: 40px;
|
||||
font-family: Arial, Helvetica, sans-serif;
|
||||
width: 85%;
|
||||
margin-top: 25px;
|
||||
padding: 25px 40px;
|
||||
color: black;
|
||||
background: rgb(210, 210, 210);;
|
||||
border: none;
|
||||
box-shadow: inset 0 3px 6px rgba(255,255,255,0.4),
|
||||
0 4px 8px rgba(0,0,0,0.3);
|
||||
}
|
||||
|
||||
.p-karteikarte {
|
||||
display: none;
|
||||
margin: 0px;
|
||||
}
|
||||
|
||||
.p-karteikarte_verben {
|
||||
margin: 0px;
|
||||
}
|
||||
|
||||
#deutsch {
|
||||
height: 250px;
|
||||
}
|
||||
|
||||
#button_kartenNavigationVorh {
|
||||
height: 75px;
|
||||
width: 450px;
|
||||
margin-top: 0;
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
#button_kartenNavigationNaech {
|
||||
height: 75px;
|
||||
width: 450px;
|
||||
margin-top: 0;
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
#deutsch.disabled {
|
||||
pointer-events: none;
|
||||
opacity: 1;
|
||||
}
|
||||
|
||||
#italienisch {
|
||||
height: 650px;
|
||||
flex-direction: column;
|
||||
align-items: center;
|
||||
}
|
||||
|
||||
#italienisch_verben {
|
||||
height: 500px;
|
||||
}
|
||||
|
||||
div.inhalt {
|
||||
margin-top: 150px;
|
||||
height: calc(100vh - 80px);
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
align-items: center;
|
||||
}
|
||||
|
||||
#wortZaehler {
|
||||
width: 300px;
|
||||
margin-right: 100px;
|
||||
text-align: right;
|
||||
margin-left: 0px;
|
||||
}
|
||||
|
||||
div.menue {
|
||||
position: fixed;
|
||||
bottom: 50px;
|
||||
left: 0;
|
||||
width: 100%;
|
||||
height: 70px;
|
||||
z-index: 1000;
|
||||
background-color: rgb(210, 210, 210);
|
||||
padding-top: 20px;
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
}
|
||||
|
||||
a.menueLink {
|
||||
text-decoration: none;
|
||||
line-height: 0.8;
|
||||
font-size: 1.5rem;
|
||||
border-radius: 5px;
|
||||
flex: 1;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
a:visited {
|
||||
color:#14748A;
|
||||
}
|
||||
|
||||
.table-karteikarte {
|
||||
width: 100%;
|
||||
text-align: left;
|
||||
}
|
||||
|
||||
.td-pronomen {
|
||||
width: 30%;
|
||||
}
|
||||
|
||||
.kategorie {
|
||||
font-size: 30px;
|
||||
color: black;
|
||||
align-items: center;
|
||||
display: flex;
|
||||
}
|
||||
|
||||
.kategorie input[type="radio"] {
|
||||
transform: scale(1.5);
|
||||
margin-right: 10px;
|
||||
}
|
||||
|
||||
#form_hinzufuegenkarte {
|
||||
width: 95%;
|
||||
}
|
||||
|
||||
#p_deutsch {
|
||||
display: inline-block;
|
||||
}
|
||||
|
||||
#p_italienisch {
|
||||
display: inline-block;
|
||||
margin: 0px;
|
||||
white-space: unset;
|
||||
}
|
||||
|
||||
#input_deutsch {
|
||||
display: inline-block;
|
||||
width: 700px;
|
||||
margin-left: 30px;
|
||||
}
|
||||
|
||||
#input_suffix {
|
||||
display: inline-block;
|
||||
width: 700px;
|
||||
margin-left: 60px;
|
||||
}
|
||||
|
||||
.hinzufuegenKarteElemente {
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
}
|
||||
|
||||
#label_italienisch_schwarz {
|
||||
color: black;
|
||||
}
|
||||
|
||||
#label_italienisch_rot {
|
||||
color: red;
|
||||
}
|
||||
|
||||
#label_italienisch_gruen {
|
||||
color: green;
|
||||
}
|
||||
|
||||
#label_italienisch_blau {
|
||||
color: blue;
|
||||
}
|
||||
|
||||
#input_italienisch {
|
||||
width: 850px;
|
||||
display: inline-block;
|
||||
}
|
||||
|
||||
#div_deutsch {
|
||||
margin-top: 40px;
|
||||
}
|
||||
|
||||
#div_italienisch_text {
|
||||
display: inline-block;
|
||||
width: 95%;
|
||||
margin-top: 40px;
|
||||
}
|
||||
|
||||
#div_italienisch_radio {
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
width: 65%;
|
||||
margin-top: 10px;
|
||||
}
|
||||
|
||||
#div_speichern {
|
||||
margin-top: 25px;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
align-items: center;
|
||||
}
|
||||
|
||||
.fehlermeldung {
|
||||
color: red;
|
||||
font-size: 36px;
|
||||
}
|
||||
|
||||
.erfolgsmeldung {
|
||||
color: #14748A;
|
||||
font-size: 36px;
|
||||
}
|
||||
|
||||
#table_verben {
|
||||
font-size: 30px;
|
||||
color: black;
|
||||
}
|
||||
|
||||
#input_wortstamm {
|
||||
width: 500px;
|
||||
}
|
||||
|
||||
#input_endung {
|
||||
color: red;
|
||||
width: 130px;
|
||||
}
|
||||
|
||||
#kartenNavigation {
|
||||
bottom: 200px;
|
||||
background-color: rgb(122, 122, 122);
|
||||
}
|
||||
218
verben.php
218
verben.php
@ -1,110 +1,110 @@
|
||||
<?php
|
||||
require_once __DIR__ . '/includes/db_connect.php';
|
||||
$system = getenv('POSTGRES_SYSTEM') ?? 'test';
|
||||
|
||||
session_start();
|
||||
|
||||
$error = $_SESSION['error'] ?? '';
|
||||
$success = $_SESSION['success'] ?? '';
|
||||
$old = $_SESSION['old'] ?? [];
|
||||
|
||||
unset($_SESSION['error']);
|
||||
unset($_SESSION['success']);
|
||||
unset($_SESSION['old']);
|
||||
?>
|
||||
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
|
||||
<head>
|
||||
<link rel="stylesheet" href="style.css">
|
||||
</head>
|
||||
<body>
|
||||
<div class="header">
|
||||
<h2 class="seitentitel">pyolingo</h2>
|
||||
</div>
|
||||
<div class="inhalt">
|
||||
<form id="form_hinzufuegenkarte" action="forms/hinzufuegenKarte.php" method="post">
|
||||
<input id="hiddenInputEditTyp" type="hidden" name="kategorie" value="verben">
|
||||
<div>
|
||||
<p class="kategorie" id="p_deutsch">deutsch:</p>
|
||||
<input class="kategorie"
|
||||
id="input_deutsch"
|
||||
type="text"
|
||||
name="deutsch"
|
||||
value="<?= htmlspecialchars($old['deutsch'] ?? '') ?>"
|
||||
required>
|
||||
</div>
|
||||
<div>
|
||||
<p class="kategorie" id="p_deutsch">Suffix:</p>
|
||||
<input class="kategorie"
|
||||
id="input_suffix"
|
||||
type="text"
|
||||
name="suffix"
|
||||
value="<?= htmlspecialchars($old['suffix'] ?? '') ?>"
|
||||
required>
|
||||
</div>
|
||||
<table id="table_verben">
|
||||
<tr>
|
||||
<th></th>
|
||||
<th>Wortstamm</th>
|
||||
<th>Endung</th>
|
||||
</tr>
|
||||
<?php for($i = 0; $i < 7; $i++) { ?>
|
||||
<tr>
|
||||
<td>
|
||||
<input id="hiddenInputEditTyp" type="hidden" name="farbe_<?= $i ?>" value="red">
|
||||
<p class="kategorie" id="p_italienisch">
|
||||
<?php switch($i) {
|
||||
case(0): echo 'Grundwort:'; break;
|
||||
case(1): echo 'io:'; break;
|
||||
case(2): echo 'tu:'; break;
|
||||
case(3): echo 'lui, lei, lei:'; break;
|
||||
case(4): echo 'noi:'; break;
|
||||
case(5): echo 'voi:'; break;
|
||||
case(6): echo 'loro:'; break;
|
||||
}
|
||||
?>
|
||||
</p>
|
||||
</td>
|
||||
<td>
|
||||
<input class="kategorie"
|
||||
id="input_wortstamm"
|
||||
type="text"
|
||||
name="wortstamm_<?= $i ?>"
|
||||
value="<?= htmlspecialchars(($old['wortstamm_' . $i] ?? '')) ?>"
|
||||
required>
|
||||
</td>
|
||||
<td>
|
||||
<input class="kategorie"
|
||||
id="input_endung"
|
||||
type="text"
|
||||
name="endung_<?= $i ?>"
|
||||
value="<?= htmlspecialchars(($old['endung_' . $i] ?? '')) ?>">
|
||||
</td>
|
||||
</tr>
|
||||
<?php }; ?>
|
||||
</table>
|
||||
<div id="div_speichern">
|
||||
<?php if ($error): ?>
|
||||
<p class=fehlermeldung><?= htmlspecialchars($error) ?></p>
|
||||
<?php endif; ?>
|
||||
<?php if ($success): ?>
|
||||
<p class=erfolgsmeldung><?= htmlspecialchars('Speichern erfolgreich') ?></p>
|
||||
<?php endif; ?>
|
||||
<button class="button-ellipsoid" id="start">
|
||||
speichern
|
||||
</button>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
<div class="menue">
|
||||
<a href="index.php" class="menueLink">
|
||||
< home >
|
||||
</a>
|
||||
<a href="neueKarte.php" class="menueLink">
|
||||
< zurück >
|
||||
</a>
|
||||
</div>
|
||||
</body>
|
||||
<?php
|
||||
require_once __DIR__ . '/includes/db_connect.php';
|
||||
$system = getenv('POSTGRES_SYSTEM') ?? 'test';
|
||||
|
||||
session_start();
|
||||
|
||||
$error = $_SESSION['error'] ?? '';
|
||||
$success = $_SESSION['success'] ?? '';
|
||||
$old = $_SESSION['old'] ?? [];
|
||||
|
||||
unset($_SESSION['error']);
|
||||
unset($_SESSION['success']);
|
||||
unset($_SESSION['old']);
|
||||
?>
|
||||
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
|
||||
<head>
|
||||
<link rel="stylesheet" href="style.css">
|
||||
</head>
|
||||
<body>
|
||||
<div class="header">
|
||||
<h2 class="seitentitel">pyolingo</h2>
|
||||
</div>
|
||||
<div class="inhalt">
|
||||
<form id="form_hinzufuegenkarte" action="forms/hinzufuegenKarte.php" method="post">
|
||||
<input id="hiddenInputEditTyp" type="hidden" name="kategorie" value="verben">
|
||||
<div>
|
||||
<p class="kategorie" id="p_deutsch">deutsch:</p>
|
||||
<input class="kategorie"
|
||||
id="input_deutsch"
|
||||
type="text"
|
||||
name="deutsch"
|
||||
value="<?= htmlspecialchars($old['deutsch'] ?? '') ?>"
|
||||
required>
|
||||
</div>
|
||||
<div>
|
||||
<p class="kategorie" id="p_deutsch">Suffix:</p>
|
||||
<input class="kategorie"
|
||||
id="input_suffix"
|
||||
type="text"
|
||||
name="suffix"
|
||||
value="<?= htmlspecialchars($old['suffix'] ?? '') ?>"
|
||||
required>
|
||||
</div>
|
||||
<table id="table_verben">
|
||||
<tr>
|
||||
<th></th>
|
||||
<th>Wortstamm</th>
|
||||
<th>Endung</th>
|
||||
</tr>
|
||||
<?php for($i = 0; $i < 7; $i++) { ?>
|
||||
<tr>
|
||||
<td>
|
||||
<input id="hiddenInputEditTyp" type="hidden" name="farbe_<?= $i ?>" value="red">
|
||||
<p class="kategorie" id="p_italienisch">
|
||||
<?php switch($i) {
|
||||
case(0): echo 'Grundwort:'; break;
|
||||
case(1): echo 'io:'; break;
|
||||
case(2): echo 'tu:'; break;
|
||||
case(3): echo 'lui, lei, lei:'; break;
|
||||
case(4): echo 'noi:'; break;
|
||||
case(5): echo 'voi:'; break;
|
||||
case(6): echo 'loro:'; break;
|
||||
}
|
||||
?>
|
||||
</p>
|
||||
</td>
|
||||
<td>
|
||||
<input class="kategorie"
|
||||
id="input_wortstamm"
|
||||
type="text"
|
||||
name="wortstamm_<?= $i ?>"
|
||||
value="<?= htmlspecialchars(($old['wortstamm_' . $i] ?? '')) ?>"
|
||||
required>
|
||||
</td>
|
||||
<td>
|
||||
<input class="kategorie"
|
||||
id="input_endung"
|
||||
type="text"
|
||||
name="endung_<?= $i ?>"
|
||||
value="<?= htmlspecialchars(($old['endung_' . $i] ?? '')) ?>">
|
||||
</td>
|
||||
</tr>
|
||||
<?php }; ?>
|
||||
</table>
|
||||
<div id="div_speichern">
|
||||
<?php if ($error): ?>
|
||||
<p class=fehlermeldung><?= htmlspecialchars($error) ?></p>
|
||||
<?php endif; ?>
|
||||
<?php if ($success): ?>
|
||||
<p class=erfolgsmeldung><?= htmlspecialchars('Speichern erfolgreich') ?></p>
|
||||
<?php endif; ?>
|
||||
<button class="button-ellipsoid" id="start">
|
||||
speichern
|
||||
</button>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
<div class="menue">
|
||||
<a href="index.php" class="menueLink">
|
||||
< home >
|
||||
</a>
|
||||
<a href="neueKarte.php" class="menueLink">
|
||||
< zurück >
|
||||
</a>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
Loading…
Reference in New Issue
Block a user