<?php if (isset($request["update_public_form_omit_list"])) { list($g_success, $g_message) = ft_update_public_form_omit_list($request, $form_id); } $form_info = ft_get_form($form_id); $form_omit_list = ft_get_public_form_omit_list($form_id); // ------------------------------------------------------------------------------------------------ // a little hacky, but not too bad. Override the form nav links so that it always links to the main tab, not this // (possibly non-relevant) omit list page $page_vars["prev_tabset_link"] = !empty($links["prev_form_id"]) ? "edit.php?page=main&form_id={$links["prev_form_id"]}" : ""; $page_vars["next_tabset_link"] = !empty($links["next_form_id"]) ? "edit.php?page=main&form_id={$links["next_form_id"]}" : ""; $page_vars["page"] = "public_form_omit_list"; $page_vars["page_url"] = ft_get_page_url("edit_form_public_form_omit_list", array("form_id" => $form_id)); $page_vars["head_title"] = "{$LANG["phrase_edit_form"]} - {$LANG["phrase_public_form_omit_list"]}"; $page_vars["form_info"] = $form_info; $page_vars["form_omit_list"] = $form_omit_list; $page_vars["head_js"] = <<<EOF var page_ns = {}; page_ns.clear_omit_list = function() \t{ ft.select_all('selected_client_ids[]'); ft.move_options('selected_client_ids[]', 'available_client_ids[]'); } EOF; ft_display_page("admin/forms/edit.tpl", $page_vars);
/** * Returns an array of account information of all clients associated with a particular form. This * function is smart enough to return the complete list, depending on whether the form has public access * or not. If it's a public access form, it takes into account those clients on the form omit list. * * @param integer $form * @return array */ function ft_get_form_clients($form_id) { global $g_table_prefix; $access_type_query = mysql_query("SELECT access_type FROM {$g_table_prefix}forms WHERE form_id = {$form_id}"); $access_type_info = mysql_fetch_assoc($access_type_query); $access_type = $access_type_info["access_type"]; $accounts = array(); if ($access_type == "public") { $client_omit_list = ft_get_public_form_omit_list($form_id); $all_clients = ft_get_client_list(); foreach ($all_clients as $client_info) { $client_id = $client_info["account_id"]; if (!in_array($client_id, $client_omit_list)) { $accounts[] = $client_info; } } } else { $account_query = mysql_query("\n SELECT *\n FROM {$g_table_prefix}client_forms cf, {$g_table_prefix}accounts a\n WHERE cf.form_id = {$form_id} AND\n cf.account_id = a.account_id\n "); while ($row = mysql_fetch_assoc($account_query)) { $accounts[] = $row; } } extract(ft_process_hook_calls("end", compact("form_id", "accounts"), array("accounts")), EXTR_OVERWRITE); return $accounts; }