function smarty_function_textarea($params, $template) { $CI =& get_instance(); $attr = get_attr($params, $template); $value = $attr['value']; if (isset($template->block_data)) { $f = $template->block_data; } if ($f->state == 'readonly') { return create_tag('div', array('class' => array('form-element', 'textarea', 'readonly')), array(), $value); } return form_textarea($attr, $value); }
function smarty_block_select($params, $content, $template, &$repeat) { if ($repeat) { // Skip the first time return; } $attr = get_attr($params, $template); $options = get_default($params, 'options', array()); $selected = get_default($params, 'selected', array()); $extra = _parse_form_attributes($attr, array()); if (count($selected) == 0) { $selected = $attr['value']; } return form_dropdown($attr['name'], $options, $selected, $extra); }
function smarty_block_select($params, $content, $template, &$repeat) { if ($repeat) { // Skip the first time return; } $attr = get_attr($params, $template); $field = get_field($params, $template); $CI =& get_instance(); if (isset($field->model)) { $CI->load->model($field->model); $parent_vars = $template->parent->tpl_vars; $form_data = get_form_data($parent_vars); $options = widget_select_get_options(get_default($params, 'options', array()), $form_data, $field, $CI->{$field->model}); } else { $options = get_default($params, 'options', array()); } $attr['url'] = current_url(); if (isset($field->filters)) { $hasfield = false; $rel = array(); foreach ($field->filters as $key => $filter) { if (isset($filter->field)) { $rel[] = $filter->field; $hasfield = true; } } if ($hasfield) { $attr['data-rel'] = implode(',', $rel); } } if (isset($params['noselectboxit']) && $params['noselectboxit'] != '') { $attr["data-no-selectBoxIt"] = true; } $parent_vars = $template->parent->tpl_vars; $form_data = get_form_data($parent_vars); $selected = get_default($params, 'selected', array()); $extra = _parse_form_attributes($attr, array()); if (count($selected) == 0) { $selected = $attr['value']; } return form_dropdown($attr['name'], $options, $selected, $extra); }
/** * заменяет нужные теги html-кода на код кнопок * * @param string $html исходный html-код * @return string результирующий html-код */ function make_buttons($html) { $matches = array(); $res = preg_match_all('~<(?i:a)[^>]*?>([^<]*?)</(?i:a)>~', $html, $matches); for ($i = 0; $i < $res; $i++) { $classes = get_attr($matches[0][$i], 'class'); if (is_numeric(strpos($classes, 'guibutton'))) { $href = '#'; $alt = ''; if (is_numeric(strpos($classes, 'thickbox'))) { $href = get_attr($matches[0][$i], 'alt'); $alt = ''; } $onclick = str_replace('"', "'", get_attr($matches[0][$i], 'onclick')); $id = get_attr($matches[0][$i], 'id'); // thickbox needs that $jframe = get_attr($matches[0][$i], 'jframe') == 'no' ? "jframe=\"no\"" : ""; $disabled = get_attr($matches[0][$i], 'disabled') == 'disabled' ? "disabled=\"disabled\"" : ""; $title = get_attr($matches[0][$i], 'title'); $text = $matches[1][$i]; $html = str_replace($matches[0][$i], "<a id=\"{$id}\" {$disabled} class=\"{$classes}\" alt=\"{$alt}\" href=\"{$href}\" title=\"{$title}\" onclick=\"{$onclick}\"><b><b><b>{$text}</b></b></b></a>", $html); } } $res = preg_match_all('~<(?i:input)[^>]*?(?i:type)=(\'|")(?i:submit|button)\\1[^>]*?>~', $html, $matches); for ($i = 0; $i < $res; $i++) { $classes = get_attr($matches[0][$i], 'class'); if (is_numeric(strpos($classes, 'guibutton'))) { $onclick = str_replace('"', "'", get_attr($matches[0][$i], 'onclick')); $value = get_attr($matches[0][$i], 'value'); $id = get_attr($matches[0][$i], 'id'); $disabled = get_attr($matches[0][$i], 'disabled') == 'disabled' ? "disabled=\"disabled\"" : ""; // thickbox needs that $href = '#'; $alt = ''; if (is_numeric(strpos($classes, 'thickbox'))) { $href = get_attr($matches[0][$i], 'alt'); $alt = ''; } $jframe = get_attr($matches[0][$i], 'jframe') == 'no' ? "jframe=\"no\"" : ""; $title = get_attr($matches[0][$i], 'title'); $text = $value; $html = str_replace($matches[0][$i], "<a id=\"{$id}\" {$disabled} class=\"{$classes}\" alt=\"{$alt}\" href=\"{$href}\" title=\"{$title}\" onclick=\"{$onclick}\"><b><b><b>{$text}</b></b></b></a>", $html); } } $res = preg_match_all('~<(?i:button)[^>]*?(?i:type)=(\'|")(?i:submit|button)\\1[^>]*?>([^<]*?)</(?i:button)>~', $html, $matches); for ($i = 0; $i < $res; $i++) { $classes = get_attr($matches[0][$i], 'class'); if (is_numeric(strpos($classes, 'guibutton'))) { $onclick = str_replace('"', "'", get_attr($matches[0][$i], 'onclick')); $id = get_attr($matches[0][$i], 'id'); $disabled = get_attr($matches[0][$i], 'disabled') == 'disabled' ? "disabled=\"disabled\"" : ""; // thickbox needs that $href = '#'; $alt = ''; if (is_numeric(strpos($classes, 'thickbox'))) { $href = get_attr($matches[0][$i], 'alt'); $alt = ''; } $jframe = get_attr($matches[0][$i], 'jframe') == 'no' ? "jframe=\"no\"" : ""; $title = get_attr($matches[0][$i], 'title'); $text = $matches[2][$i]; $html = str_replace($matches[0][$i], "<a id=\"{$id}\" {$disabled} class=\"{$classes}\" alt=\"{$alt}\" href=\"{$href}\" title=\"{$title}\" onclick=\"{$onclick}\"><b><b><b>{$text}</b></b></b></a>", $html); } } $res = preg_match_all('~<(?i:select)[^>]*?>[\\s\\S]*?</(?i:select)>~', $html, $matches); for ($i = 0; $i < $res; $i++) { $classes = get_attr($matches[0][$i], 'class'); if (is_numeric(strpos($classes, 'guibutton'))) { $id = get_attr($matches[0][$i], 'id'); $disabled = get_attr($matches[0][$i], 'disabled') == 'disabled' ? "disabled=\"disabled\"" : ""; $jframe = get_attr($matches[0][$i], 'jframe') == 'no' ? "jframe=\"no\"" : ""; $options = array(); $ocnt = preg_match_all('~<(?i:option)[^>]*?>([\\s\\S]*?)</(?i:option)>~', $matches[0][$i], $options); $new_select = ''; $selected_text = $options[1][0]; $selected_onclick = str_replace('"', "'", get_attr($options[0][0], 'onclick')); for ($j = 0; $j < $ocnt; $j++) { $onclick = str_replace('"', "'", get_attr($options[0][$j], 'onclick')); $value = get_attr($options[0][$j], 'value'); $selected = ''; if (strtolower(get_attr($options[0][$j], 'selected')) == 'selected') { $selected = " class=\"selected\""; $selected_text = $options[1][$j]; } $new_select .= "<a{$selected} href=\"#\" onclick=\"{$onclick}\" rel=\"{$value}\">{$options[1][$j]}</a>"; } $title = get_attr($matches[0][$i], 'title'); if ($title != '') { $selected_text = $title; } $new_select = "<span id=\"{$id}\" {$disabled} onclick=\"{$selected_onclick}\" class=\"{$classes}\"><u class=\"\"><i>{$new_select}</i></u><b><b><b class=\"hasmenu\">{$selected_text}</b></b></b></span>"; $html = str_replace($matches[0][$i], $new_select, $html); } } return $html; }
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"; }
function smarty_function_input($params, $template) { // TODO: Maybe we can let the field configure the formatter even not in readonly state? $attr = get_attr($params, $template); if (is_class($template->block_data, "FormField")) { $f = $template->block_data; if ($f->state == 'readonly') { // We are in readonly format if (isset($f->formatter)) { return call_user_func($f->formatter, $attr); } else { return create_tag('span', array('class' => array('form-element', 'input', 'readonly')), array(), $attr['value']); } } } return form_input($attr); }
} else { if (strcmp($php_phase, "modify_ds_attr") == 0) { print "<td align=left valign=top>"; $php_user_group = $_REQUEST['user_group']; $php_datasrc = $_REQUEST['data_source']; modify_ds_attr($connection_id, $php_phase, $php_user_group, $php_datasrc); get_usergroup($connection_id, $php_phase); print "</td>"; print "<td align=center valign=top>"; print "<form action=\"usergroup_datasrc_privileges.php?phase=modify_ds&user_group={$php_user_group}\" method=\"post\" onsubmit=\"return validate(this, 'ds')\">"; get_datasrc($connection_id, $php_phase, $php_user_group); print "</form>"; print "</td>"; print "<td align=right valign=top>"; print "<form action=\"usergroup_datasrc_privileges.php?phase=modify_ds_attr&user_group={$php_user_group}&data_source={$php_datasrc}\" method=\"post\" onsubmit=\"return validate(this, 'attr')\">"; get_attr($connection_id, $php_phase, $php_user_group, $php_datasrc); print "</form>"; print "</td>"; } } } } } //End of outer table print "</tr>"; print "</table>"; @odbc_close($connection_id); ?> <?php
function get_sanitized_attr($name, $string) { $tagAttr = get_attr($name, $string); if ($tagAttr && !is_attr_forbidden($tagAttr)) { return $tagAttr['html_attr']; } return ''; }