diff --git a/index.php b/index.php index 136fb758..1e61b595 100644 --- a/index.php +++ b/index.php @@ -73,6 +73,8 @@ if (isset($_GET["dump"])) { include "./createv.inc.php"; } elseif (isset($_GET["procedure"])) { include "./procedure.inc.php"; + } elseif (isset($_GET["trigger"])) { + include "./trigger.inc.php"; } elseif (isset($_GET["processlist"])) { include "./processlist.inc.php"; } else { diff --git a/lang.inc.php b/lang.inc.php index 00a66fad..f81e761a 100644 --- a/lang.inc.php +++ b/lang.inc.php @@ -143,6 +143,15 @@ static $translations = array( 'Alter procedure' => 'Změnit proceduru', 'Unable to operate routine' => 'Nepořadilo se zpracovat proceduru', 'Return type' => 'Návratový typ', + 'Add trigger' => 'Přidat spoušť', + 'Trigger has been dropped.' => 'Spoušť byla odstraněna.', + 'Trigger has been altered.' => 'Spoušť byla změněna.', + 'Trigger has been created.' => 'Spoušť byla vytvořena.', + 'Alter trigger' => 'Změnit spoušť', + 'Create trigger' => 'Vytvořit spoušť', + 'Unable to operate trigger' => 'Nepořadilo se zpracovat spoušť', + 'Time' => 'Čas', + 'Event' => 'Událost', ), ); diff --git a/table.inc.php b/table.inc.php index 7b576414..e11fe9bb 100644 --- a/table.inc.php +++ b/table.inc.php @@ -59,14 +59,15 @@ if (!$result) { } if ($mysql->server_info >= 5) { + echo "

" . lang('Triggers') . "

\n"; $result = $mysql->query("SHOW TRIGGERS LIKE '" . $mysql->escape_string(addcslashes($_GET["table"], "%_")) . "'"); if ($result->num_rows) { - echo "

" . lang('Triggers') . "

\n"; echo "\n"; while ($row = $result->fetch_assoc()) { - echo "\n"; + echo "\n"; } echo "
$row[Timing]$row[Event]
" . htmlspecialchars($row["Statement"]) . "
$row[Timing]$row[Event]" . htmlspecialchars($row["Trigger"]) . "' . lang('Alter') . "
\n"; } $result->free(); + echo '

' . lang('Add trigger') . "

\n"; } diff --git a/trigger.inc.php b/trigger.inc.php new file mode 100644 index 00000000..acd21518 --- /dev/null +++ b/trigger.inc.php @@ -0,0 +1,49 @@ +query("DROP TRIGGER " . idf_escape($_GET["name"])) && $_POST["drop"]) { + redirect($SELF . "table=" . urlencode($_GET["trigger"]), lang('Trigger has been dropped.')); + } + if (!$_POST["drop"]) { + if (in_array($_POST["Timing"], $trigger_time) && in_array($_POST["Event"], $trigger_event) && $mysql->query( + "CREATE TRIGGER " . idf_escape($_POST["Trigger"]) . " $_POST[Timing] $_POST[Event] ON " . idf_escape($_GET["trigger"]) . " FOR EACH ROW $_POST[Statement]" + )) { + redirect($SELF . "table=" . urlencode($_GET["trigger"]), (strlen($_GET["name"]) ? lang('Trigger has been altered.') : lang('Trigger has been created.'))); + } + } + $error = $mysql->error; +} + +page_header(strlen($_GET["name"]) ? lang('Alter trigger') . ": " . htmlspecialchars($_GET["name"]) : lang('Create trigger')); + +if ($_POST) { + $row = $_POST; + echo "

" . lang('Unable to operate trigger') . ": " . htmlspecialchars($error) . "

\n"; +} elseif (strlen($_GET["name"])) { + $result = $mysql->query("SHOW TRIGGERS LIKE '" . $mysql->escape_string(addcslashes($_GET["trigger"], "%_")) . "'"); + while ($row = $result->fetch_assoc()) { + if ($row["Trigger"] === $_GET["name"]) { + break; + } + } + $result->free(); +} else { + $row = array(); +} +?> + +
+ + + + +
" maxlength="64" />
+

+

+ + + +

+