Ejemplo n.º 1
0
/**
 * Deletes an option list from the database. Note: it only deletes lists that don't have any
 * form fields assigned to them; generally this is prevented from being called unless that condition is
 * met, but it also checks here just in case.
 *
 * @param integer $list_id
 * @return array [0] T/F<br />
 *               [1] error/success message
 */
function ft_delete_option_list($list_id)
{
    global $g_table_prefix, $LANG;
    // slight behavioural change in 2.1.0. Now you CAN delete Option Lists that are used by one or more fields.
    // It just clears any references, thus leaving those fields incompletely configured (which isn't the end of
    // the world!)
    $fields = ft_get_fields_using_option_list($list_id);
    foreach ($fields as $field_info) {
        $field_id = $field_info["field_id"];
        $field_type_id = $field_info["field_type_id"];
        $settings = ft_get_field_type_settings($field_type_id);
        $setting_ids = array();
        foreach ($settings as $setting_info) {
            if ($setting_info["field_type"] == "option_list_or_form_field") {
                $setting_ids[] = $setting_info["setting_id"];
            }
        }
        if (empty($setting_ids)) {
            continue;
        }
        $setting_id_str = implode(",", $setting_ids);
        // now we delete any entries in the field_settings table with field_id, setting_id and a NUMERIC value for the
        // setting_value column. That column is also
        mysql_query("\n      DELETE FROM {$g_table_prefix}field_settings\n      WHERE field_id = {$field_id} AND\n            setting_id IN ({$setting_id_str}) AND\n            setting_value NOT LIKE 'form_field%'\n    ");
    }
    mysql_query("DELETE FROM {$g_table_prefix}field_options WHERE list_id = {$list_id}");
    mysql_query("DELETE FROM {$g_table_prefix}option_lists WHERE list_id = {$list_id}");
    mysql_query("DELETE FROM {$g_table_prefix}list_groups WHERE group_type = 'option_list_{$list_id}'");
    $success = true;
    $message = $LANG["notify_option_list_deleted"];
    extract(ft_process_hook_calls("end", compact("list_id"), array("success", "message")), EXTR_OVERWRITE);
    return array(true, $message);
}
Ejemplo n.º 2
0
$total_num_option_lists = ft_get_num_option_lists();
$total_pages = ceil($total_num_option_lists / $num_option_lists_per_page);
if ($option_list_page > $total_pages) {
    $option_list_page = $total_pages;
}
$list_info = ft_get_option_lists($option_list_page, $order);
$num_option_lists = $list_info["num_results"];
$option_lists = $list_info["results"];
$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;
Ejemplo n.º 3
0
<?php

// this tab displays all the form fields that use this field option group
$list_info = ft_get_option_list($list_id);
$form_fields = array();
if ($num_fields > 0) {
    $form_fields = ft_get_fields_using_option_list($list_id);
}
$forms = ft_get_forms();
$incomplete_forms = array();
foreach ($forms as $form_info) {
    if ($form_info["is_complete"] == "no") {
        $incomplete_forms[] = $form_info["form_id"];
    }
}
// ------------------------------------------------------------------------------------------------
$page_vars["list_info"] = $list_info;
$page_vars["page_url"] = ft_get_page_url("edit_option_list");
$page_vars["head_title"] = $LANG["phrase_edit_option_list"];
$page_vars["num_fields_using_option_list"] = $num_fields;
$page_vars["incomplete_forms"] = $incomplete_forms;
$page_vars["form_fields"] = $form_fields;
ft_display_page("admin/forms/option_lists/edit.tpl", $page_vars);