示例#1
0
$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["timezone_offset"] = $_SESSION["ft"]["account"]["timezone_offset"];
// pull out a few things into top level placeholders for easy use
$placeholders["form_id"] = $form_id;
$placeholders["form_name"] = $form_info["form_name"];
$placeholders["form_url"] = $form_info["form_url"];
$placeholders["view_id"] = $view_id;
$placeholders["view_name"] = $view_info["view_name"];
$placeholders["settings"] = ft_get_settings();
$export_group_info = exp_get_export_group($export_group_id);
$export_types = exp_get_export_types($export_group_id);
// if the export type ID isn't available, the export group only contains a single (visible) export type
$export_type_info = array();
if (empty($export_type_id)) {
    foreach ($export_types as $curr_export_type_info) {
        if ($curr_export_type_info["export_type_visibility"] == "show") {
            $export_type_info = $curr_export_type_info;
            break;
        }
    }
} else {
    $export_type_info = exp_get_export_type($export_type_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["page_type"] = $export_group_info["action"];
/**
 * This function is used when drawing the visible export options to ths page. It determines which export groups &
 * types get displayed for a particular form, View and account.
 *
 * @param mixed $account_id - "admin" or the client ID
 * @param integer $form_id
 * @param integer $view_id
 * @return array an array of hashes
 */
function exp_get_assigned_export_types($account_id, $form_id, $view_id)
{
    global $g_table_prefix;
    $is_client = $account_id == "admin" ? false : true;
    // Step 1: get all accessible export GROUPS
    $private_client_accessible_export_group_ids = array();
    if ($is_client) {
        $query = mysql_query("\n      SELECT export_group_id\n      FROM   {$g_table_prefix}module_export_group_clients\n      WHERE  account_id = {$account_id}\n        ");
        while ($row = mysql_fetch_assoc($query)) {
            $private_client_accessible_export_group_ids[] = $row["export_group_id"];
        }
    }
    $export_groups = exp_get_export_groups();
    $accessible_export_groups = array();
    foreach ($export_groups as $group) {
        if ($group["visibility"] == "hide") {
            continue;
        }
        if ($group["access_type"] == "public") {
            $accessible_export_groups[] = $group;
        } else {
            if ($is_client) {
                if ($group["access_type"] != "admin" && in_array($group["export_group_id"], $private_client_accessible_export_group_ids)) {
                    $accessible_export_groups[] = $group;
                }
            } else {
                $accessible_export_groups[] = $group;
            }
        }
    }
    // so far so good. We now have a list of export groups that hav been filtered by visibility & whether
    // the client can see them. Next, factor in the current form ID and view ID
    $filtered_export_groups = array();
    foreach ($accessible_export_groups as $export_group) {
        if ($export_group["form_view_mapping"] == "all") {
            $filtered_export_groups[] = $export_group;
        } else {
            if ($export_group["form_view_mapping"] == "only") {
                $mapping = exp_deserialized_export_group_mapping($export_group["forms_and_views"]);
                if (!in_array($form_id, $mapping["form_ids"])) {
                    continue;
                }
                if (in_array("form{$form_id}_all_views", $mapping["view_ids"]) || in_array($view_id, $mapping["view_ids"])) {
                    $filtered_export_groups[] = $export_group;
                }
            } else {
                if ($export_group["form_view_mapping"] == "except") {
                    $mapping = exp_deserialized_export_group_mapping($export_group["forms_and_views"]);
                    if (in_array("form{$form_id}_all_views", $mapping["view_ids"])) {
                        continue;
                    }
                    if (in_array($view_id, $mapping["view_ids"])) {
                        continue;
                    }
                    $filtered_export_groups[] = $export_group;
                }
            }
        }
    }
    // Step 2: alright! Now we get the list of export types for the accessible Views
    $export_groups_and_types = array();
    foreach ($filtered_export_groups as $export_group) {
        $export_types = exp_get_export_types($export_group["export_group_id"], true);
        if (count($export_types) == 0) {
            continue;
        }
        $export_group["export_types"] = $export_types;
        $export_groups_and_types[] = $export_group;
    }
    return $export_groups_and_types;
}