function smarty_function_form_fields_dropdown($params, &$smarty)
{
    global $LANG;
    if (empty($params["name_id"])) {
        $smarty->trigger_error("assign: missing 'name_id' parameter. This is used to give the select field a name and id value.");
        return;
    }
    if (empty($params["form_id"])) {
        $smarty->trigger_error("assign: missing 'form_id' parameter.");
        return;
    }
    $default_value = isset($params["default"]) ? $params["default"] : "";
    $onchange = isset($params["onchange"]) ? $params["onchange"] : "";
    $style = isset($params["style"]) ? $params["style"] : "";
    $display_column_names = isset($params["display_column_names"]) ? $params["display_column_names"] : false;
    $blank_option_value = isset($params["blank_option_value"]) ? $params["blank_option_value"] : "";
    $blank_option_text = isset($params["blank_option_text"]) ? $params["blank_option_text"] : "";
    $tabindex = isset($params["tabindex"]) ? $params["tabindex"] : "";
    $attributes = array("id" => $params["name_id"], "name" => $params["name_id"], "onchange" => $onchange, "style" => $style, "tabindex" => $tabindex);
    $attribute_str = "";
    while (list($key, $value) = each($attributes)) {
        if (!empty($value)) {
            $attribute_str .= " {$key}=\"{$value}\"";
        }
    }
    $column_info = ft_get_form_column_names($params["form_id"]);
    $rows = array();
    if (!empty($blank_option_value) && !empty($blank_option_text)) {
        $rows[] = "<option value=\"{$blank_option_value}\">{$blank_option_text}</option>";
    }
    while (list($col_name, $display_text) = each($column_info)) {
        if ($display_column_names) {
            $display_text = $col_name;
        }
        $rows[] = "<option value=\"{$col_name}\" " . ($default_value == $col_name ? "selected" : "") . ">{$display_text}</option>";
    }
    $dd = "<select {$attribute_str}>" . join("\n", $rows) . "</select>";
    return $dd;
}
/**
 * Used in the ft_search_submissions function. This figures out the additional SQL clauses required for
 * a custom search. Note: as of the Dec 2009 build, this function properly only searches those fields
 * marked as "is_searchable" in the database.
 *
 * @param integer $form_id
 * @param array $search_fields
 * @param array $columns the View columns that have been marked as "is_searchable"
 * @return string
 */
function _ft_get_search_submissions_search_where_clause($form_id, $search_fields, $searchable_columns)
{
    global $g_search_form_date_field_format;
    $search_where_clause = "";
    if (!empty($search_fields)) {
        $clean_search_fields = ft_sanitize($search_fields);
        $search_field = $clean_search_fields["search_field"];
        $search_date = $clean_search_fields["search_date"];
        $search_keyword = $clean_search_fields["search_keyword"];
        // search field can either be "all" or a database column name. "submission_date" and "last_modified_date"
        // have special meanings, since they allow for keyword searching within specific date ranges
        if ($search_field == "all") {
            if (!empty($search_keyword)) {
                // if we're searching ALL columns, get all col names. This shouldn't ever get called any more - but
                // I'll leave it in for regression purposes
                $clauses = array();
                if (!is_array($searchable_columns) && $searchable_columns == "all") {
                    $col_info = ft_get_form_column_names($form_id);
                    $col_names = array_keys($col_info);
                    unset($col_names["is_finalized"]);
                    unset($col_names["submission_date"]);
                    unset($col_names["last_modified_date"]);
                    foreach ($col_names as $col_name) {
                        $clauses[] = "{$col_name} LIKE '%{$search_keyword}%'";
                    }
                } else {
                    if (is_array($searchable_columns)) {
                        foreach ($searchable_columns as $col_name) {
                            $clauses[] = "{$col_name} LIKE '%{$search_keyword}%'";
                        }
                    }
                }
                if (!empty($clauses)) {
                    $search_where_clause = "AND (" . join(" OR ", $clauses) . ") ";
                }
            }
        } else {
            if (preg_match("/\\|date\$/", $search_field)) {
                $search_field = preg_replace("/\\|date\$/", "", $search_field);
                $is_core_date_field = $search_field == "submission_date" || $search_field == "last_modified_date" ? true : false;
                if (!$is_core_date_field) {
                    $search_field = "CAST({$search_field} as DATETIME) ";
                }
                if (!empty($search_date)) {
                    // search by date range
                    if (strpos($search_date, "-") !== false) {
                        $dates = explode(" - ", $search_date);
                        $start = $dates[0];
                        $end = $dates[1];
                        if ($g_search_form_date_field_format == "d/m/y") {
                            list($start_day, $start_month, $start_year) = explode("/", $start);
                            list($end_day, $end_month, $end_year) = explode("/", $end);
                        } else {
                            list($start_month, $start_day, $start_year) = explode("/", $start);
                            list($end_month, $end_day, $end_year) = explode("/", $end);
                        }
                        $start_day = str_pad($start_day, 2, "0", STR_PAD_LEFT);
                        $start_month = str_pad($start_month, 2, "0", STR_PAD_LEFT);
                        $end_day = str_pad($end_day, 2, "0", STR_PAD_LEFT);
                        $end_month = str_pad($end_month, 2, "0", STR_PAD_LEFT);
                        $start_date = "{$start_year}-{$start_month}-{$start_day} 00:00:00";
                        $end_date = "{$end_year}-{$end_month}-{$end_day} 23:59:59";
                        $search_where_clause = "AND ({$search_field} >= '{$start_date}' AND {$search_field} <= '{$end_date}') ";
                    } else {
                        if ($g_search_form_date_field_format == "d/m/y") {
                            list($day, $month, $year) = explode("/", $search_date);
                        } else {
                            list($month, $day, $year) = explode("/", $search_date);
                        }
                        $month = str_pad($month, 2, "0", STR_PAD_LEFT);
                        $day = str_pad($day, 2, "0", STR_PAD_LEFT);
                        $start = "{$year}-{$month}-{$day} 00:00:00";
                        $end = "{$year}-{$month}-{$day} 23:59:59";
                        $search_where_clause = "AND ({$search_field} >= '{$start}' AND {$search_field} <= '{$end}') ";
                    }
                    if (!empty($search_keyword)) {
                        $clauses = array();
                        foreach ($searchable_columns as $col_name) {
                            $clauses[] = "{$col_name} LIKE '%{$search_keyword}%'";
                        }
                        if (!empty($clauses)) {
                            $search_where_clause .= "AND (" . join(" OR ", $clauses) . ") ";
                        }
                    }
                }
            } else {
                if (!empty($search_keyword) && !empty($search_field)) {
                    $search_where_clause = "AND {$search_field} LIKE '%{$search_keyword}%'";
                }
            }
        }
    }
    return $search_where_clause;
}
Exemple #3
0
$view_fields_sortable_id = "view_fields";
$submission_list_sortable_id = "submission_list";
// a form ID & view ID should always be set when visiting this page
$view_id = ft_load_field("view_id", "form_{$form_id}_view_id");
// this updates all four sections of the view at once (since all may have been modified)
if (isset($request["update_view"])) {
    $request["form_id"] = $form_id;
    $request["view_fields_sortable_id"] = $view_fields_sortable_id;
    $request["submission_list_sortable_id"] = $submission_list_sortable_id;
    list($g_success, $g_message) = ft_update_view($view_id, $request);
}
$form_info = ft_get_form($form_id);
$form_fields = ft_get_form_fields($form_id, array("include_field_type_info" => true));
$view_info = ft_get_view($view_id);
$form_database_column_info = ft_get_form_column_names($form_id);
$view_clients = ft_get_view_clients($view_id);
$view_tabs = ft_get_view_tabs($view_id);
$grouped_fields = ft_get_grouped_view_fields($view_id);
$field_types = ft_get_field_type_names();
$new_view_submission_defaults = ft_get_new_view_submission_defaults($view_id);
// this returns ALL filters: standard and client map
$standard_filters = ft_get_view_filters($view_id, "standard");
$client_map_filters = ft_get_view_filters($view_id, "client_map");
$num_standard_filters = count($standard_filters);
$num_client_map_filters = count($client_map_filters);
$edit_view_tab = isset($_SESSION["ft"]["inner_tabs"]["edit_view"]) ? $_SESSION["ft"]["inner_tabs"]["edit_view"] : 1;
if (isset($request["edit_view_tab"])) {
    $edit_view_tab = $request["edit_view_tab"];
    $_SESSION["ft"]["inner_tabs"]["edit_view"] = $edit_view_tab;
}
Exemple #4
0
<?php

$email_id = ft_load_field("email_id", "email_id", "");
if (isset($request["update_email_template"])) {
    list($g_success, $g_message) = ft_update_email_template($email_id, $request);
}
$form_info = ft_get_form($form_id);
$form_fields = ft_get_form_fields($form_id);
$columns = ft_get_form_column_names($form_id);
$template_info = ft_get_email_template($email_id);
$event_trigger_arr = explode(",", $template_info["email_event_trigger"]);
$template_info["email_event_trigger"] = $event_trigger_arr;
$clients = $form_info["client_info"];
$admin_info = ft_get_admin_info();
$edit_email_tab = isset($_SESSION["ft"]["inner_tabs"]["edit_email_template"]) ? $_SESSION["ft"]["inner_tabs"]["edit_email_template"] : 1;
if (isset($request["edit_email_template"])) {
    $edit_email_tab = $request["edit_email_template"];
}
$form_has_file_upload_field = ft_check_form_has_file_upload_field($form_id);
$file_field_text = $form_has_file_upload_field ? $LANG["text_file_field_placeholders_info"] : "";
// values for the test email subpage
$num_submissions = ft_get_submission_count($form_id);
$test_email_format = ft_load_field("test_email_format", "test_email_format");
$test_email_recipient = ft_load_field("test_email_recipient", "test_email_recipient", $admin_info["email"]);
$test_email_data_source = ft_load_field("test_email_data_source", "test_email_data_source", "random_submission");
$test_email_submission_id = ft_load_field("test_email_submission_id", "test_email_submission_id", "");
$views = ft_get_views($form_id);
$filtered_views = array();
$selected_edit_submission_views = array();
$selected_when_sent_views = array();
foreach ($views["results"] as $view) {