printTrail($_REQUEST['subject']); $misc->printTitle($lang['strcreaterule'],'pg.rule.create'); $misc->printMsg($msg); 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']}_maxNameLen}\" value=\"", htmlspecialchars($_POST['name']), "\" />
{$lang['strevent']}
{$lang['strwhere']}
"; echo "\n"; echo "
{$lang['straction']}"; echo "
\n"; echo "\n"; echo "()
\n"; echo "\n"; echo "\n"; echo "\n"; echo $misc->form; echo "

\n"; echo "

\n"; echo "
\n"; } else { if (trim($_POST['name']) == '') createRule(true, $lang['strruleneedsname']); else { $status = $data->createRule($_POST['name'], $_POST['event'], $_POST[$_POST['subject']], $_POST['where'], isset($_POST['instead']), $_POST['type'], $_POST['raction']); if ($status == 0) doDefault($lang['strrulecreated']); else createRule(true, $lang['strrulecreatedbad']); } } } /** * Show confirmation of drop and perform actual drop */ function doDrop($confirm) { global $data, $misc; global $lang; if ($confirm) { $misc->printTrail($_REQUEST['subject']); $misc->printTitle($lang['strdrop'],'pg.rule.drop'); echo "

", sprintf($lang['strconfdroprule'], $misc->printVal($_REQUEST['rule']), $misc->printVal($_REQUEST[$_REQUEST['reltype']])), "

\n"; echo "
\n"; echo "\n"; echo "\n"; echo "\n"; echo "\n"; echo $misc->form; echo "

\n"; echo "\n"; echo "\n"; echo "
\n"; } else { $status = $data->dropRule($_POST['rule'], $_POST[$_POST['subject']], isset($_POST['cascade'])); if ($status == 0) doDefault($lang['strruledropped']); else doDefault($lang['strruledroppedbad']); } } /** * List all the rules on the table */ function doDefault($msg = '') { global $data, $misc; global $lang; $misc->printTrail($_REQUEST['subject']); $misc->printTabs($_REQUEST['subject'], 'rules'); $misc->printMsg($msg); $rules = $data->getRules($_REQUEST[$_REQUEST['subject']]); $columns = array( 'rule' => array( 'title' => $lang['strname'], 'field' => field('rulename'), ), 'definition' => array( 'title' => $lang['strdefinition'], 'field' => field('definition'), ), 'actions' => array( 'title' => $lang['stractions'], ), ); $subject = urlencode($_REQUEST['subject']); $object = urlencode($_REQUEST[$_REQUEST['subject']]); $actions = array( 'drop' => array( 'title' => $lang['strdrop'], 'url' => "rules.php?action=confirm_drop&{$misc->href}&reltype={$subject}&{$subject}={$object}&subject=rule&", 'vars' => array('rule' => 'rulename'), ), ); $misc->printTable($rules, $columns, $actions, $lang['strnorules']); echo "

href}&{$subject}={$object}&subject={$subject}\">{$lang['strcreaterule']}

\n"; } function doTree() { global $misc, $data; $rules = $data->getRules($_REQUEST[$_REQUEST['subject']]); $reqvars = $misc->getRequestVars($_REQUEST['subject']); $attrs = array( 'text' => field('rulename'), 'icon' => 'Rule', ); $misc->printTreeXML($rules, $attrs); exit; } if ($action == 'tree') doTree(); // Different header if we're view rules or table rules $misc->printHeader($_REQUEST[$_REQUEST['subject']] . ' - ' . $lang['strrules']); $misc->printBody(); switch ($action) { case 'create_rule': createRule(true); break; case 'save_create_rule': if (isset($_POST['cancel'])) doDefault(); else createRule(false); break; case 'drop': if (isset($_POST['yes'])) doDrop(false); else doDefault(); break; case 'confirm_drop': doDrop(true); break; default: doDefault(); break; } $misc->printFooter(); ?>