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; }
$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; }
<?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) {