", $misc->printVal($_REQUEST['database']), ": {$lang['strtables']}: ", $misc->printVal($_REQUEST['table']), ": " , $misc->printVal($_REQUEST['trigger']), ": {$lang['strdrop']}\n"; echo "

", sprintf($lang['strconfdroptrigger'], $misc->printVal($_REQUEST['trigger']), $misc->printVal($_REQUEST['table'])), "

\n"; echo "
\n"; echo "\n"; echo "\n"; echo "\n"; echo $misc->form; // Show cascade drop option if supportd if ($localData->hasDropBehavior()) { echo "

{$lang['strcascade']}

\n"; } echo "\n"; echo "\n"; echo "
\n"; } else { $status = $localData->dropTrigger($_POST['trigger'], $_POST['table'], isset($_POST['cascade'])); if ($status == 0) doDefault($lang['strtriggerdropped']); else doDefault($lang['strtriggerdroppedbad']); } } /** * Let them create s.th. */ function doCreate($msg = '') { global $data, $localData, $misc; global $PHP_SELF, $lang; echo "

{$lang['strcreatetrigger']}

"; $misc->printMsg($msg); // Get all the functions that can be used in triggers $funcs = &$localData->getTriggerFunctions(); if ($funcs->recordCount() == 0) { doDefault($lang['strnofunctions']); return; } /* Populate functions */ $sel0 = new XHTML_Select('formFunction'); while (!$funcs->EOF) { $sel0->add(new XHTML_Option($funcs->f[$data->fnFields['fnname']])); $funcs->moveNext(); } /* Populate times */ $sel1 = new XHTML_Select('formExecTime'); $sel1->set_data($localData->triggerExecTimes); /* Populate events */ $sel2 = new XHTML_Select('formEvent'); $sel2->set_data($localData->triggerEvents); echo "
\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo " \n"; echo " \n"; echo "\n"; echo "\n"; echo " \n"; echo " \n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo "
{$lang['strname']}
{$lang['strwhen']}{$lang['strevent']}
", $sel1->fetch(), "", $sel2->fetch(), "
{$lang['strfunction']}{$lang['strarguments']}
", $sel0->fetch(), "()
\n"; echo "

\n"; echo "

\n"; echo "\n"; echo "\n"; echo $misc->form; echo "
\n"; } /** * Actually creates the new trigger in the database */ function doSaveCreate() { global $localData; global $PHP_SELF, $lang; // Check that they've given a name and a definition if ($_POST['formFunction'] == '') doCreate($lang['strtriggerneedsfunc']); elseif ($_POST['formTriggerName'] == '') doCreate($lang['strtriggerneedsname']); elseif ($_POST['formEvent'] == '') doCreate(); else { $status = &$localData->createTrigger($_POST['formTriggerName'], $_POST['table'], $_POST['formFunction'], $_POST['formExecTime'], $_POST['formEvent'], $_POST['formTriggerArgs']); if ($status == 0) doDefault($lang['strtriggercreated']); else doCreate($lang['strtriggercreatedbad']); } } /** * List all the triggers on the table */ function doDefault($msg = '') { global $data, $localData, $misc, $database; global $PHP_SELF; global $lang; $misc->printTableNav(); echo "

", $misc->printVal($_REQUEST['database']), ": ", $misc->printVal($_REQUEST['table']), ": {$lang['strtriggers']}

\n"; $misc->printMsg($msg); $triggers = &$localData->getTriggers($_REQUEST['table']); if ($triggers->recordCount() > 0) { echo "\n"; echo ""; echo "\n"; $i = 0; while (!$triggers->EOF) { $id = ( ($i % 2 ) == 0 ? '1' : '2' ); echo ""; echo "\n\n"; $triggers->moveNext(); $i++; } echo "
{$lang['strname']}{$lang['strdefinition']}{$lang['stractions']}
", $misc->printVal( $triggers->f[$data->tgFields['tgname']]), ""; // Nasty hack to support pre-7.4 PostgreSQL if ($triggers->f[$data->tgFields['tgdef']] !== null) echo $misc->printVal($triggers->f[$data->tgFields['tgdef']]); else echo $misc->printVal($localData->getTriggerDef($triggers->f)); echo ""; echo "href}&trigger=", urlencode( $triggers->f[$data->tgFields['tgname']]), "&table=", urlencode($_REQUEST['table']), "\">{$lang['strdrop']}
\n"; } else echo "

{$lang['strnotriggers']}

\n"; echo "

href}&table=", urlencode($_REQUEST['table']), "\">{$lang['strcreatetrigger']}

\n"; } $misc->printHeader($lang['strtables'] . ' - ' . $_REQUEST['table'] . ' - ' . $lang['strtriggers']); $misc->printBody(); switch ($action) { case 'save_create': doSaveCreate(); break; case 'create': doCreate(); break; case 'drop': if (isset($_POST['yes'])) doDrop(false); else doDefault(); break; case 'confirm_drop': doDrop(true); break; default: doDefault(); break; } $misc->printFooter(); ?>