コード例 #1
0
$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");
      }
コード例 #2
0
ファイル: index.php プロジェクト: jeffthestampede/excelsior
$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);
コード例 #3
0
ファイル: index.php プロジェクト: jdearaujo/core
$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") {
コード例 #4
0
// 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);
コード例 #5
0
ファイル: api.php プロジェクト: jeffthestampede/excelsior
/**
 * 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;
    }
}
コード例 #6
0
ファイル: index.php プロジェクト: jeffthestampede/excelsior
<?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);
コード例 #7
0
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;