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);
}
Пример #3
0
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);
}
Пример #4
0
 /**
  * заменяет нужные теги 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;
 }
Пример #5
0
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\">&nbsp;&nbsp;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>&nbsp;&nbsp;Include Condition\n";
            } else {
                print "<input type=checkbox name=check{$row} value=\"checked\">&nbsp;&nbsp;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\">&nbsp;And&nbsp;&nbsp;\n";
            print "<input type=radio name=cond{$row} value=\"or\">&nbsp;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>&nbsp;And&nbsp;&nbsp;\n";
                print "<input type=radio name=cond{$row} value=\"or\">&nbsp;Or\n";
            } else {
                if (strcmp($and_or_sel, "or") == 0) {
                    print "<input type=radio name=cond{$row} value=and>&nbsp;And&nbsp;&nbsp;\n";
                    print "<input type=radio name=cond{$row} value=or checked>&nbsp;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";
}
Пример #6
0
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 '';
}