Example #1
0
$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;
}
$view_omit_list = ft_get_public_view_omit_list($view_id);
$num_clients_on_omit_list = count($view_omit_list);
// assumes view_ns.all_form_fields and view_ns.view_tabs JS arrays have been defined in manage_views.js
// The form fields info is needed throughout the Edit View tabs, so stashing them in the page JS makes sense
$js_string = "";
$all_form_fields = array();
$date_field_ids = array();
foreach ($form_fields as $field) {
    $display_name = htmlspecialchars($field["field_title"]);
    $col_name = $field["col_name"];
    $field_id = $field["field_id"];
    $is_system_field = $field["is_system_field"] == "yes" ? "true" : "false";
    $is_date_field = $field["is_date_field"] == "yes" ? "true" : "false";
    $field_type_id = $field["field_type_id"];
    $all_form_fields[] = "{ field_id: {$field_id}, display_name: \"{$display_name}\", " . "col_name: \"{$col_name}\", is_system_field: {$is_system_field}, " . "is_date_field: {$is_date_field}, field_type_id: {$field_type_id} }";
    if ($is_date_field == "true") {
Example #2
0
/**
 * Returns all Views for a form, grouped appropriately. This function introduces a new way of handling
 * loads of optional params (should have implemented this a long time ago!). The second $custom_params
 *
 * @param integer $form_id
 * @param array a hash with any of the following keys:
 *                       account_id => if this is specified, the results will only return View groups
 *                                     that have Views that a client account has access to
 *                       omit_empty_groups => (default: false)
 *                       omit_hidden_views => (default: false)
 *                       include_client => (default: false). If yes, returns assorted client information
 *                             for those that are mapped to the View
 * @param boolean $omit_empty_groups
 */
function ft_get_grouped_views($form_id, $custom_params = array())
{
    global $g_table_prefix;
    // figure out what settings
    $params = array("account_id" => isset($custom_params["account_id"]) ? $custom_params["account_id"] : "", "omit_empty_groups" => isset($custom_params["omit_empty_groups"]) ? $custom_params["omit_empty_groups"] : true, "omit_hidden_views" => isset($custom_params["omit_hidden_views"]) ? $custom_params["omit_hidden_views"] : false, "include_clients" => isset($custom_params["include_clients"]) ? $custom_params["include_clients"] : false);
    $group_query = mysql_query("\r\n    SELECT group_id, group_name\r\n    FROM   {$g_table_prefix}list_groups lg\r\n    WHERE  group_type = 'form_{$form_id}_view_group'\r\n    ORDER BY lg.list_order\r\n  ");
    $info = array();
    while ($row = mysql_fetch_assoc($group_query)) {
        $group_id = $row["group_id"];
        $hidden_views_clause = $params["omit_hidden_views"] ? " AND v.access_type != 'hidden'" : "";
        if (empty($params["account_id"])) {
            $view_query = mysql_query("\r\n        SELECT *\r\n        FROM   {$g_table_prefix}views v\r\n        WHERE  v.group_id = {$group_id}\r\n               {$hidden_views_clause}\r\n        ORDER BY v.view_order\r\n      ");
        } else {
            $view_query = mysql_query("\r\n        SELECT v.*\r\n        FROM   {$g_table_prefix}views v\r\n        WHERE  v.form_id = {$form_id} AND\r\n               v.group_id = {$group_id} AND\r\n               (v.access_type = 'public' OR v.view_id IN (\r\n                  SELECT cv.view_id\r\n                  FROM   {$g_table_prefix}client_views cv\r\n                  WHERE  account_id = {$params["account_id"]}\r\n               )) AND\r\n               v.view_id NOT IN (\r\n                  SELECT view_id\r\n                  FROM   {$g_table_prefix}public_view_omit_list\r\n                  WHERE  account_id = {$params["account_id"]}\r\n               )\r\n               {$hidden_views_clause}\r\n        ORDER BY v.view_order\r\n          ");
        }
        $views = array();
        while ($view_info = mysql_fetch_assoc($view_query)) {
            $view_id = $view_info["view_id"];
            if ($params["include_clients"]) {
                $view_info["client_info"] = ft_get_view_clients($view_id);
                $view_info["client_omit_list"] = ft_get_public_view_omit_list($view_id);
            }
            $view_info["columns"] = ft_get_view_columns($view_id);
            $view_info["fields"] = ft_get_view_fields($view_id);
            $view_info["tabs"] = ft_get_view_tabs($view_id, true);
            $view_info["filters"] = ft_get_view_filters($view_id, "all");
            $views[] = $view_info;
        }
        if (count($views) > 0 || !$params["omit_empty_groups"]) {
            $curr_group = array("group" => $row, "views" => $views);
            $info[] = $curr_group;
        }
    }
    return $info;
}