/** * Prints constants in format of PHP code * @param constants array containing constants, where key is a name of constant * @param tabs integer[optional] number of tabs for indentation */ function print_constants($constants, $tabs = 0) { foreach ($constants as $name => $value) { print_constant($name, $value, $tabs); } }
function print_conditional_row($row, $action, $msg) { global $connection_id; global $user; global $op; global $dsleft; global $attrleft; global $dsright; global $const_or_ds; global $include_cond; global $and_or_op; print "<table border=0>\n"; //this row displays checkbox options for rows 1 through n print "<tr align=left valign=top bgcolor=\"#eeeeee\">\n"; // The first row is mandatory as every trigger needs at least one condition // (we do not allow when true triggers in Vigilert Pro) if ($row == 0) { print "<td colspan=5></td>\n"; } else { // Print the checkbox for the user to optionally exclude/include // any trigger condition other than the first(topmost one) // By default, the check boxes are not checked. print "<td>\n"; print "<input type=hidden name=check{$row} value=\"\">\n"; if (strcmp($action, "initial") == 0) { print "<input type=checkbox name=check{$row} value=\"checked\"> Include Condition\n"; } else { $check_sel = $include_cond[$row]; if (strcmp($check_sel, "checked") == 0) { print "<input type=checkbox name=check{$row} value=\"checked\" checked> Include Condition\n"; } else { print "<input type=checkbox name=check{$row} value=\"checked\"> Include Condition\n"; } } print "</td>\n"; // Print the radio button for the AND/OR operator to bind two trigger conditions // By default, the radio buttons are not checked. print "<td>\n"; print "<input type=hidden name=cond{$row} value=\"\">\n"; if (strcmp($action, "initial") != 0) { $and_or_sel = $and_or_op[$row]; } if (strcmp($action, "initial") == 0 || strcmp($and_or_sel, "and") != 0 && strcmp($and_or_sel, "or") != 0) { print "<input type=radio name=cond{$row} value=\"and\"> And \n"; print "<input type=radio name=cond{$row} value=\"or\"> Or\n"; } else { $and_or_sel = $and_or_op[$row]; if (strcmp($and_or_sel, "and") == 0) { print "<input type=radio name=cond{$row} value=\"and\" checked> And \n"; print "<input type=radio name=cond{$row} value=\"or\"> Or\n"; } else { if (strcmp($and_or_sel, "or") == 0) { print "<input type=radio name=cond{$row} value=and> And \n"; print "<input type=radio name=cond{$row} value=or checked> Or\n"; } } } print "</td>\n"; print "<td colspan=3>\n"; print "</td>\n"; } print "</tr>\n"; // Differentiate between the first row (the mandatory trigger condition) // and the rest of optional trigger conditions. if ($row == 0) { print "<tr align=center valign=top>\n"; } else { print "<tr align=center valign=top bgcolor=\"#eeeeee\">\n"; } // Displays left hand side datasource select box $side = "left"; print "<td>"; get_datasrc($side, $row, $action); print "</td>"; // Displays left hand side attribute select box print "<td>"; if (strcmp($action, "initial") == 0) { $datasrc = "not selected"; } else { $datasrc = $dsleft[$row]; } get_attr($side, $row, $datasrc); print "</td>\n"; // Displays the comparison operator box print "<td>\n"; print "<table align=center border=0 width=150>\n"; if (strcmp($row, "0") == 0) { print "<tr><td><div class=heading5><div style=\"text-align: center\">Comparison</div></div></td></tr>\n"; } print "<tr><td align=center>\n"; print "<select name=op{$row}>\n"; $op_sel = $op[$row]; if (strcmp($action, "initial") == 0 || strcmp($op_sel, "") == 0) { print "<option value=\"\">Operator</option>\n"; print "<option value=\"=\">=</option>\n"; print "<option value=\">\">></option>\n"; print "<option value=\"<\"><</option>\n"; print "<option value=\">=\">>=</option>\n"; print "<option value=\"<=\"><=</option>\n"; print "<option value=\"<>\">!=</option>\n"; print "<option value=\"like\">like</option>\n"; print "<option value=\"contains\">contains</option>\n"; } else { switch ($op[$row]) { case "=": print "<option value=\"\">Operator</option>\n"; print "<option value=\"=\" selected=\"selected\">=</option>\n"; print "<option value=\">\">></option>\n"; print "<option value=\"<\"><</option>\n"; print "<option value=\">=\">>=</option>\n"; print "<option value=\"<=\"><=</option>\n"; print "<option value=\"<>\">!=</option>\n"; print "<option value=\"like\">like</option>\n"; print "<option value=\"contains\">contains</option>\n"; break; case ">": print "<option value=\"\">Operator</option>\n"; print "<option value=\"=\">=</option>\n"; print "<option value=\">\" selected=\"selected\">></option>\n"; print "<option value=\"<\"><</option>\n"; print "<option value=\">=\">>=</option>\n"; print "<option value=\"<=\"><=</option>\n"; print "<option value=\"<>\">!=</option>\n"; print "<option value=\"like\">like</option>\n"; print "<option value=\"contains\">contains</option>\n"; break; case "<": print "<option value=\"\">Operator</option>\n"; print "<option value=\"=\">=</option>\n"; print "<option value=\">\">></option>\n"; print "<option value=\"<\" selected=\"selected\"><</option>\n"; print "<option value=\">=\">>=</option>\n"; print "<option value=\"<=\"><=</option>\n"; print "<option value=\"<>\">!=</option>\n"; print "<option value=\"like\">like</option>\n"; print "<option value=\"contains\">contains</option>\n"; break; case ">=": print "<option value=\"\">Operator</option>\n"; print "<option value=\"=\">=</option>\n"; print "<option value=\">\">></option>\n"; print "<option value=\"<\"><</option>\n"; print "<option value=\">=\" selected=\"selected\">>=</option>\n"; print "<option value=\"<=\"><=</option>\n"; print "<option value=\"<>\">!=</option>\n"; print "<option value=\"like\">like</option>\n"; print "<option value=\"contains\">contains</option>\n"; break; case "<=": print "<option value=\"\">Operator</option>\n"; print "<option value=\"=\">=</option>\n"; print "<option value=\">\">></option>\n"; print "<option value=\"<\"><</option>\n"; print "<option value=\">=\">>=</option>\n"; print "<option value=\"<=\" selected=\"selected\"><=</option>\n"; print "<option value=\"<>\">!=</option>\n"; print "<option value=\"like\">like</option>\n"; print "<option value=\"contains\">contains</option>\n"; break; case "<>": print "<option value=\"\">Operator</option>\n"; print "<option value=\"=\">=</option>\n"; print "<option value=\">\">></option>\n"; print "<option value=\"<\"><</option>\n"; print "<option value=\">=\">>=</option>\n"; print "<option value=\"<=\"><=</option>\n"; print "<option value=\"<>\" selected=\"selected\">!=</option>\n"; print "<option value=\"like\">like</option>\n"; print "<option value=\"contains\">contains</option>\n"; break; case "like": print "<option value=\"\">Operator</option>\n"; print "<option value=\"=\">=</option>\n"; print "<option value=\">\">></option>\n"; print "<option value=\"<\"><</option>\n"; print "<option value=\">=\">>=</option>\n"; print "<option value=\"<=\"><=</option>\n"; print "<option value=\"<>\">!=</option>\n"; print "<option value=\"like\" selected=\"selected\">like</option>\n"; print "<option value=\"contains\">contains</option>\n"; break; case "contains": print "<option value=\"\">Operator</option>\n"; print "<option value=\"=\">=</option>\n"; print "<option value=\">\">></option>\n"; print "<option value=\"<\"><</option>\n"; print "<option value=\">=\">>=</option>\n"; print "<option value=\"<=\"><=</option>\n"; print "<option value=\"<>\">!=</option>\n"; print "<option value=\"like\">like</option>\n"; print "<option value=\"contains\" selected=\"selected\">contains</option>\n"; break; } } print "</select>\n"; print "</td>\n"; print "</tr>\n"; print "</table>\n"; print "</td>\n"; // Displays the right hand side of the trigger condition row $side = "right"; print "<td rowspan=2>\n"; print "<table border=0>\n"; print "<tr>\n"; // Radio selection button to select if the left hand side // attribute is going to be compared with a constant or another attribute // belonging to the same or different data source that is compatible // By default, the radio buttons are not selected // Displays the radio button to select the data source option print "<input type=hidden name=constOrDS{$row} value=\"\">\n"; if (strcmp($action, "initial") != 0) { $const_or_ds_sel = $const_or_ds[$row]; } print "<td>\n"; if (strcmp($action, "initial") == 0 || strcmp($const_or_ds_sel, "ds") != 0) { print "<input type=radio name=constOrDS{$row} value=ds>\n"; } else { print "<input type=radio name=constOrDS{$row} value=ds checked>\n"; } print "</td>\n"; // Displays right hand side datasource select box print "<td>\n"; get_datasrc($side, $row, $action); print "</td>\n"; // Displays right hand side attribute select box print "<td>\n"; if (strcmp($action, "initial") == 0) { $datasrc = "not selected"; } else { $datasrc = $dsright[$row]; } get_attr($side, $row, $datasrc); print "</td>\n"; print "</tr>\n"; print "<tr>\n"; print "<td>\n"; // Displays the radio button to select the constant value option if (strcmp($action, "initial") == 0 || strcmp($const_or_ds_sel, "constant") != 0) { print "<input type=radio name=constOrDS{$row} value=constant>\n"; } else { print "<input type=radio name=constOrDS{$row} value=constant checked>\n"; } print "</td>\n"; // Print the constant value print "<td colspan=2>\n"; print "<div class=heading5>Constant:</div>\n"; print_constant($row, $action); print "</td>\n"; print "</tr>\n"; print "<tr>\n"; print "<td colspan=3>\n"; // If the user has just selected an attribute on the left hand side, // then help him by displaying a message on the compatible // data types that can be selected on the right hand side. if (strcmp($action, "refresh_help_msg") == 0) { $refresh_help_row = $_REQUEST['refresh_row_num']; if ($refresh_help_row == $row) { if (strcmp($dsleft[$row], "") != 0 && strcmp($attrleft[$row], "") != 0) { // Get the attribute type for the attribute selected on the left hand side. $attr_type = get_attr_type($connection_id, $dsleft[$row], $attrleft[$row]); // Get the message to help the user choose the right type of attribute on the // right hand side or enter the right type of constant value. $help_msg = get_attr_help_msg($attr_type); print "{$help_msg}"; } } } print "</td>\n"; print "</tr>\n"; print "</table>\n"; print "</td>\n"; print "</tr>\n"; // Display the error message if there is any for this particular row (that corresponds to // a trigger condition - like invalid constant values, incompatible attributes, empty fields etc.) print "<tr>\n"; print "<td colspan=3>\n"; if (strcmp($msg, "") != 0) { print "{$msg}\n"; } print "</td>\n"; print "</tr>\n"; print "</table>\n"; }