$num_registered_form_emails = count($registered_form_emails); // a little irksome, but we also need to retrieve ALL emails, for the "Create Email From Existing Email" dropdown $all_form_emails = ft_get_email_template_list($form_id); $php_self = ft_get_clean_php_self(); // compile the templates information $page_vars["page"] = "emails"; $page_vars["page_url"] = ft_get_page_url("edit_form_emails", array("form_id" => $form_id)); $page_vars["form_emails"] = $form_emails; $page_vars["all_form_emails"] = $all_form_emails; $page_vars["num_form_emails"] = $num_form_emails; $page_vars["head_title"] = "{$LANG["phrase_edit_form"]} - {$LANG["word_emails"]}"; $page_vars["form_info"] = $form_info; $page_vars["js_messages"] = array("word_edit", "word_remove"); // build values to pass along in nav query string $pass_along_str = "page=emails&form_id={$form_id}"; $page_vars["pagination"] = ft_get_page_nav($num_form_emails, $_SESSION["ft"]["settings"]["num_emails_per_page"], $emails_page, $pass_along_str, "emails_page"); $page_vars["num_registered_form_emails"] = $num_registered_form_emails; $page_vars["head_js"] = <<<END var page_ns = {}; page_ns.delete_dialog = \$("<div></div>"); page_ns.delete_email = function(email_id) { ft.create_dialog({ title: "{$LANG["phrase_please_confirm"]}", content: "{$LANG["confirm_delete_email_template"]}", popup_type: "warning", buttons: [{ text: "{$LANG["word_yes"]}", click: function() { window.location = "{$php_self}?form_id={$form_id}&page=emails&delete=" + email_id; \$(this).dialog("close"); }
$updated_field_option_groups = array(); $updated_option_lists = array(); foreach ($option_lists as $option_list) { $list_id = $option_list["list_id"]; // add the number of fields that use this option group $option_list["num_fields"] = ft_get_num_fields_using_option_list($list_id); if ($option_list["num_fields"] > 0) { $option_list["fields"] = ft_get_fields_using_option_list($list_id, array("group_by_form" => true)); } // add the total number of options in this group $option_list["num_option_list_options"] = ft_get_num_options_in_option_list($list_id); $updated_option_lists[] = $option_list; } $all_option_lists = ft_get_option_lists("all"); // ------------------------------------------------------------------------------------------------ // compile template info $page_vars = array(); $page_vars["page"] = "option_lists"; $page_vars["text_option_list_page"] = ft_eval_smarty_string($LANG["text_option_list_page"], array("link" => "../add/step1.php")); $page_vars["page_url"] = ft_get_page_url("option_lists"); $page_vars["head_title"] = $LANG["phrase_option_lists"]; $page_vars["option_lists"] = $updated_option_lists; $page_vars["num_option_lists"] = $num_option_lists; $page_vars["all_option_lists"] = $all_option_lists["results"]; $page_vars["order"] = $order; $page_vars["js_messages"] = array("validation_delete_non_empty_option_list", "confirm_delete_option_list", "phrase_please_confirm", "word_yes", "word_no", "word_edit", "word_remove"); $page_vars["pagination"] = ft_get_page_nav($num_option_lists, $num_option_lists_per_page, $option_list_page); $page_vars["head_string"] = <<<END <script src="{$g_root_url}/global/scripts/manage_option_lists.js"></script> END; ft_display_page("admin/forms/option_lists/index.tpl", $page_vars);
$page_vars["search_num_results"] = $search_num_results; $page_vars["view_num_results"] = $view_num_results; $page_vars["default_date_field_search_value"] = $default_date_field_search_value; $page_vars["total_form_submissions"] = $_SESSION["ft"]["form_{$form_id}_num_submissions"]; $page_vars["grouped_views"] = $grouped_views; $page_vars["view_info"] = $view_info; $page_vars["settings"] = $settings; $page_vars["preselected_subids"] = $preselected_subids; $page_vars["page_submission_ids"] = $submission_id_str; $page_vars["results_per_page"] = $results_per_page; $page_vars["display_fields"] = $display_fields; $page_vars["order"] = $order; $page_vars["field_types"] = $field_types; $page_vars["has_searchable_field"] = $has_searchable_field; $page_vars["curr_search_fields"] = $_SESSION["ft"]["current_search"]["search_fields"]; $page_vars["pagination"] = ft_get_page_nav($search_num_results, $results_per_page, $current_page, ""); $page_vars["js_messages"] = array("validation_select_rows_to_view", "validation_select_rows_to_download", "validation_select_submissions_to_delete", "confirm_delete_submission", "confirm_delete_submissions", "phrase_select_all_X_results", "phrase_select_all_on_page", "phrase_all_X_results_selected", "phrase_row_selected", "phrase_rows_selected", "confirm_delete_submissions_on_other_pages", "confirm_delete_submissions_on_other_pages2", "word_yes", "word_no", "phrase_please_confirm", "validation_please_enter_search_keyword", "notify_invalid_search_dates"); $page_vars["head_string"] = <<<END <link rel="stylesheet" href="../../global/css/ui.daterangepicker.css" type="text/css" /> <script src="../../global/scripts/manage_submissions.js"></script> <script src="../../global/scripts/daterangepicker.jquery.js"></script> <script src="{$g_root_url}/global/scripts/field_types.php"></script> <link rel="stylesheet" href="{$g_root_url}/global/css/field_types.php" type="text/css" /> {$shared_resources} END; $page_vars["head_js"] = <<<END var rules = []; rules.push("function,ms.check_search_keyword"); rules.push("if:search_field=submission_date,required,search_date,{$LANG["validation_please_enter_search_date_range"]}"); rules.push("function,ms.check_valid_date"); if (typeof ms == "undefined") {
// compile the template fields $page_vars["page"] = "fields"; $page_vars["page_url"] = ft_get_page_url("edit_form_fields", array("form_id" => $form_id)); $page_vars["head_title"] = "{$LANG["phrase_edit_form"]} - {$LANG["word_fields"]}"; $page_vars["form_info"] = $form_info; $page_vars["form_fields"] = $form_fields; $page_vars["order_start_number"] = 1; $page_vars["num_fields_per_page"] = "all"; $page_vars["pagination"] = ""; $page_vars["sortable_id"] = $sortable_id; $page_vars["limit_fields"] = isset($g_max_ft_form_fields) && !empty($g_max_ft_form_fields) ? true : false; if ($num_fields_per_page != "all") { $page_vars["order_start_number"] = ($fields_page - 1) * $num_fields_per_page + 1; $page_vars["num_fields_per_page"] = $num_fields_per_page; $pagination_settings = array("show_total_results" => false, "show_page_label" => false); $page_vars["pagination"] = ft_get_page_nav($total_form_fields, $num_fields_per_page, $fields_page, "", "fields_page", "", $pagination_settings); } $page_vars["head_string"] = <<<END <script src="{$g_root_url}/global/scripts/sortable.js?v=2"></script> <script src="{$g_root_url}/global/scripts/manage_fields.js?v=3"></script> END; $replacement_info = array("views_tab_link" => "{$php_self}?page=views&form_id={$form_id}"); $page_vars["text_fields_tab_summary"] = ft_eval_smarty_string($LANG["text_fields_tab_summary"], $replacement_info); $page_vars["js_messages"] = array("validation_no_form_field_name", "validation_invalid_form_field_names", "word_okay", "word_error", "validation_num_rows_to_add", "word_row", "phrase_please_confirm", "confirm_smart_fill_db_column_fields", "confirm_smart_fill_db_column_fields_desc", "word_cancel", "phrase_smart_fill", "validation_no_display_text", "validation_no_form_field_name", "validation_duplicate_form_field_name", "validation_no_column_name", "validation_col_name_is_reserved_word", "validation_invalid_column_name", "validation_no_two_column_names", "phrase_edit_field", "word_close", "phrase_save_changes", "phrase_field_specific_settings", "phrase_edit_field_c", "notify_no_field_settings", "word_value", "word_field", "phrase_use_default_value_q", "word_setting", "phrase_please_select", "notify_field_changes_saved", "phrase_create_new_option_list", "phrase_edit_option_list", "word_no", "word_yes", "validation_no_display_text_single", "validation_no_form_field_single", "validation_no_db_column_single", "notify_edit_field_new_field", "notify_edit_option_list_after_save", "confirm_save_change_before_redirect", "notify_error_saving_fields", "phrase_select_field", "word_order", "word_settings", "phrase_field_type_no_validation", "phrase_validation_rule", "text_error_message_to_show", "phrase_no_option_lists_available", "phrase_available_option_lists", "phrase_form_field_contents", "word_validation"); $edit_field_onload_js = ""; $limit_fields_enabled_js = $page_vars["limit_fields"] ? "fields_ns.limit_fields_enabled = true;\n fields_ns.max_fields = {$g_max_ft_form_fields};" : ""; if (isset($_GET["field_id"])) { $edit_field_onload_js = <<<EOF var row_group = \$(".sr_order[value={$_GET["field_id"]}]").closest(".row_group"); if (row_group.length) { fields_ns.edit_field(row_group);
/** * This function lets you display the content generated from an export type into a webpage. You can * use this function on any export type in the database - even the ones that have been marked as "hidden". Note: * this function requires the Export Manager to be installed and enabled. * * @param integer $form_id * @param integer $view_id * @param integer $export_type_id * @param integer $page_num (defaults to 1) * @param array $options optional parameter that lets you configure the appearance of the data in a variety of ways. * * num_per_page - (integer) by default, it returns the number of results per page specified by * the View. This setting overrides that. * submission_ids - (integer or array of integers) this limits the results returned to the submission ID * or submission IDs specified in this field * order - (string) the database column name with a -DESC or -ASC suffix (e.g. col_1-ASC). * page_num_identifier - (string) passed via the query string to denote what page it's on (default: "page") * show_columns_only - (boolean) limits the fields that are displayed to those fields marked as "Column" * in the View. Defaults to false. * return_as_string - (boolean) if this value is set to true, instead of outputting the result it returns * the HTML as a string. * pagination_theme - (string) the pagination links (<< 1 2 3 ...) HTML is generated by the pagination.tpl * template, found in each of the theme folders. Generally this file is the same for * all themes, but in case it isn't, this setting lets you choose the theme folder with * which to render the HTML. * pagination_location - (string) accepts the values "top" (the default), "bottom", "both" or "none". This * determines where (if anywhere) the pagination links should appear. By default it only * appears at the top of the page, but you can set this value to either "both" or "bottom" * to have it appear there instead / as well. * * @return mixed the return value of this function depends on the API settings & the options passed to it. Namely: * * If error: * if $g_api_debug == true, the error page will be displayed displaying the error code. * if $g_api_debug == false, it returns an array with two indexes: * [0] false * [1] the API error code * If successful: * if "return_as_string" option key is set, it returns an array with two indexes: * [0] true * [1] the HTML content * if "return_as_string" not set, it just prints the HTML to the page (the default behaviour) */ function ft_api_show_submissions($form_id, $view_id, $export_type_id, $page_num = 1, $options = array()) { global $g_table_prefix, $LANG, $g_api_debug, $g_smarty; // sanitize all incoming data $form_id = ft_sanitize($form_id); $view_id = ft_sanitize($view_id); $export_type_id = ft_sanitize($export_type_id); $page_num = ft_sanitize($page_num); $options = ft_sanitize($options); // check the Export Manager module is enabled if (ft_check_module_enabled("export_manager")) { ft_include_module("export_manager"); } else { if ($g_api_debug) { $page_vars = array("message_type" => "error", "error_code" => 400, "error_type" => "user"); ft_display_page("error.tpl", $page_vars); exit; } else { return array(false, 400); } } // check the form ID, View ID and export ID are valid $form_query = mysql_query("SELECT count(*) as c FROM {$g_table_prefix}forms WHERE form_id = {$form_id}"); $result = mysql_fetch_assoc($form_query); $form_found = $result["c"] == 1 ? true : false; if (!$form_found) { if ($g_api_debug) { $page_vars = array("message_type" => "error", "error_code" => 401, "error_type" => "user"); ft_display_page("error.tpl", $page_vars); exit; } else { return array(false, 401); } } $view_query = mysql_query("SELECT count(*) as c FROM {$g_table_prefix}views WHERE form_id = {$form_id} AND view_id = {$view_id}"); $result = mysql_fetch_assoc($view_query); $view_found = $result["c"] == 1 ? true : false; if (!$view_found) { if ($g_api_debug) { $page_vars = array("message_type" => "error", "error_code" => 402, "error_type" => "user"); ft_display_page("error.tpl", $page_vars); exit; } else { return array(false, 402); } } $export_type_query = mysql_query("SELECT count(*) as c FROM {$g_table_prefix}module_export_types WHERE export_type_id = {$export_type_id}"); $result = mysql_fetch_assoc($export_type_query); $export_type_found = $result["c"] == 1 ? true : false; if (!$export_type_found) { if ($g_api_debug) { $page_vars = array("message_type" => "error", "error_code" => 403, "error_type" => "user"); ft_display_page("error.tpl", $page_vars); exit; } else { return array(false, 403); } } // okay, now lets figure out what needs to be displayed & rendered $form_info = ft_get_form($form_id); $form_fields = ft_get_form_fields($form_id, array("include_field_type_info" => true, "include_field_settings" => true)); $view_info = ft_get_view($view_id); $export_type_info = exp_get_export_type($export_type_id); $export_group_id = $export_type_info["export_group_id"]; $export_group_info = exp_get_export_group($export_group_id); // number of submissions per page (an integer or "all") $num_per_page = $view_info["num_submissions_per_page"]; if (isset($options["num_per_page"])) { $num_per_page = $options["num_per_page"]; } $order = "{$view_info["default_sort_field"]}-{$view_info["default_sort_field_order"]}"; if (isset($options["order"])) { $order = $options["order"]; } $display_fields = array(); $columns = "all"; if (isset($options["show_columns_only"]) && $options["show_columns_only"]) { $columns = array(); foreach ($view_info["columns"] as $view_field_info) { $curr_field_id = $view_field_info["field_id"]; foreach ($form_fields as $form_field_info) { if ($form_field_info["field_id"] != $curr_field_id) { continue; } $display_fields[] = array_merge($form_field_info, $view_field_info); $columns[] = $form_field_info["col_name"]; } } } else { foreach ($view_info["fields"] as $view_field_info) { $curr_field_id = $view_field_info["field_id"]; foreach ($form_fields as $form_field_info) { if ($form_field_info["field_id"] != $curr_field_id) { continue; } $display_fields[] = array_merge($form_field_info, $view_field_info); } } } /* $columns = "all"; if (isset($options["show_columns_only"]) && $options["show_columns_only"]) { $columns = array(); foreach ($view_info["columns"] as $view_col_info) { foreach ($display_fields as $field_info) { if ($field_info["field_id"] == $view_col_info["field_id"]) { $columns[] = $field_info["col_name"]; } } } } */ $submission_ids = array(); if (isset($options["submission_ids"])) { if (is_numeric($options["submission_ids"])) { $submission_ids[] = $options["submission_ids"]; } else { if (is_array($submission_ids)) { $submission_ids = $options["submission_ids"]; } } } // perform the almighty search query $results_info = ft_search_submissions($form_id, $view_id, $num_per_page, $page_num, $order, $columns, array(), $submission_ids); $search_num_results = $results_info["search_num_results"]; $settings = ft_get_settings(); // now build the list of information we're going to send to the export type smarty template $placeholders = exp_get_export_filename_placeholder_hash(); $placeholders["export_group_id"] = $export_group_id; $placeholders["export_type_id"] = $export_type_id; $placeholders["export_group_results"] = "all"; $placeholders["same_page"] = ft_get_clean_php_self(); $placeholders["display_fields"] = $display_fields; $placeholders["submissions"] = $results_info["search_rows"]; $placeholders["num_results"] = $results_info["search_num_results"]; $placeholders["view_num_results"] = $results_info["view_num_results"]; $placeholders["form_info"] = $form_info; $placeholders["view_info"] = $view_info; $placeholders["field_types"] = ft_get_field_types(true); $placeholders["settings"] = $settings; // ... $placeholders["date_format"] = $settings["default_date_format"]; $placeholders["timezone_offset"] = $settings["timezone_offset"]; // pull out a few things into top level placeholders for easy use $placeholders["form_name"] = $form_info["form_name"]; $placeholders["form_id"] = $form_id; $placeholders["form_url"] = $form_info["form_url"]; $placeholders["view_name"] = $view_info["view_name"]; $placeholders["view_id"] = $view_id; $placeholders["export_group_name"] = ft_create_slug(ft_eval_smarty_string($export_group_info["group_name"])); $placeholders["export_group_type"] = ft_create_slug(ft_eval_smarty_string($export_type_info["export_type_name"])); $placeholders["filename"] = ft_eval_smarty_string($export_type_info["filename"], $placeholders, "", $g_smarty->plugins_dir); $template = $export_type_info["export_type_smarty_template"]; $placeholders["export_type_name"] = $export_type_info["export_type_name"]; $export_type_smarty_template = ft_eval_smarty_string($template, $placeholders, "", $g_smarty->plugins_dir); // if we're not displaying all results on the single page, generate the pagination HTML $pagination = ""; if ($num_per_page != "all") { $page_num_identifier = isset($options["page_num_identifier"]) ? $options["page_num_identifier"] : "page"; $theme = isset($options["pagination_theme"]) ? $options["pagination_theme"] : $settings["default_theme"]; $pagination = ft_get_page_nav($search_num_results, $num_per_page, $page_num, "", $page_num_identifier, $theme); } $pagination_location = isset($options["pagination_location"]) ? $options["pagination_location"] : "top"; switch ($pagination_location) { case "top": $html = $pagination . $export_type_smarty_template; break; case "both": $html = $pagination . $export_type_smarty_template . $pagination; break; case "bottom": $html = $export_type_smarty_template . $pagination; break; case "none": $html = $export_type_smarty_template; break; // this is in case the user entered an invalid value // this is in case the user entered an invalid value default: if ($g_api_debug) { $page_vars = array("message_type" => "error", "error_code" => 404, "error_type" => "user"); ft_display_page("error.tpl", $page_vars); exit; } else { return array(false, 404); } break; } if (isset($options["return_as_string"]) && $options["return_as_string"]) { return array(true, $html); } else { echo $html; } }
<?php require_once "../../global/library.php"; ft_init_module_page(); $folder = dirname(__FILE__); require_once "{$folder}/library.php"; if (isset($_GET["delete"])) { list($g_success, $g_message) = pg_delete_page($_GET["delete"]); } $page = ft_load_module_field("pages", "page", "module_pages_page", 1); $num_pages_per_page = ft_get_module_settings("num_pages_per_page"); $pages_info = pg_get_pages($num_pages_per_page, $page); $results = $pages_info["results"]; $num_results = $pages_info["num_results"]; $text_intro_para_2 = ft_eval_smarty_string($L["text_intro_para_2"], array("url" => "../../admin/settings/index.php?page=menus")); // ------------------------------------------------------------------------------------------------ $page_vars = array(); $page_vars["pages"] = $results; $page_vars["head_title"] = $L["module_name"]; $page_vars["pagination"] = ft_get_page_nav($num_results, $num_pages_per_page, $page, ""); $page_vars["js_messages"] = array("word_edit", "phrase_please_confirm", "word_yes", "word_no"); $page_vars["module_js_messages"] = array("confirm_delete_page"); $page_vars["text_intro_para_2"] = $text_intro_para_2; $page_vars["head_string"] = <<<EOF <script type="text/javascript" src="scripts/pages.js"></script> EOF; ft_display_module_page("templates/index.tpl", $page_vars);
if (isset($request["delete"])) { list($g_success, $g_message) = ft_delete_client_menu($request["delete"]); } if (isset($_GET["mass_assign"])) { list($g_success, $g_message) = ft_update_client_menus($_GET["accounts"], $_GET["menu_id"]); } $menus = ft_get_menus($menu_page); // compile the header information $page_vars = array(); $page_vars["page"] = "menus"; $page_vars["page_url"] = ft_get_page_url("settings_menus"); $page_vars["tabs"] = $tabs; $page_vars["head_title"] = "{$LANG["word_settings"]} - {$LANG["word_menus"]}"; $page_vars["menus"] = $menus["results"]; $page_vars["total_num_menus"] = $menus["num_results"]; $page_vars["pagination"] = ft_get_page_nav($menus["num_results"], $_SESSION["ft"]["settings"]["num_menus_per_page"], $menu_page, "page=menus", "menu_page"); $page_vars["js_messages"] = array("word_remove"); $page_vars["head_js"] = <<<END var page_ns = { delete_menu_dialog: \$("<div></div>") } page_ns.delete_menu = function(menu_id) { ft.create_dialog({ dialog: page_ns.delete_menu_dialog, title: "{$LANG["phrase_please_confirm"]}", content: "{$LANG["confirm_delete_menu"]}", popup_type: "warning", buttons: { "{$LANG["word_yes"]}": function() { window.location = "index.php?page=menus&delete=" + menu_id;