Exemple #1
0
/**
 * The main email function for Form Tools. This gets executed on particular events in a submissions life: when
 * first placed ("on_submission"), when edited ("on_edit") and when deleted ("on_delete"). This function does
 * the horrible job of figuring out precisely what the administrator wants, and sends the email(s) to the
 * appropriate recipients.
 *
 * @param string $event "on_submission", "on_edit", "on_delete"
 * @param integer $form_id
 * @param integer $submission_id
 */
function ft_send_emails($event, $form_id, $submission_id)
{
    $all_form_email_templates = ft_get_email_template_list($form_id);
    // filter out those templates that aren't for this event
    $email_templates = array();
    foreach ($all_form_email_templates as $template_info) {
        $events = explode(",", $template_info["email_event_trigger"]);
        if (!in_array($event, $events)) {
            continue;
        }
        if ($template_info["email_status"] == "disabled") {
            continue;
        }
        // if this email template has been mapped to or more particular View, make sure the View ID is
        // valid & that the submission can be seen in at least one of the Views
        if ($template_info["view_mapping_type"] == "specific") {
            $view_ids = $template_info["when_sent_view_ids"];
            $found = false;
            foreach ($view_ids as $view_id) {
                if (ft_check_view_contains_submission($form_id, $view_id, $submission_id)) {
                    $found = true;
                    break;
                }
            }
            if (!$found) {
                continue;
            }
        }
        $email_templates[] = $template_info;
    }
    // now process each template individually
    foreach ($email_templates as $template_info) {
        $email_id = $template_info["email_id"];
        ft_process_email_template($form_id, $submission_id, $email_id);
    }
}
 case "send_test_email":
     list($success, $message) = ft_send_test_email($request);
     $success = $success ? 1 : 0;
     echo "{ \"success\": \"{$success}\", \"message\": \"{$message}\" }";
     break;
 case "display_test_email":
     $form_id = $_SESSION["ft"]["form_id"];
     $email_id = $_SESSION["ft"]["email_id"];
     $info = ft_get_email_components($form_id, "", $email_id, true, $request);
     echo ft_convert_to_json($info);
     break;
 case "edit_submission_send_email":
     $form_id = $request["form_id"];
     $submission_id = $request["submission_id"];
     $email_id = $request["email_id"];
     list($success, $message) = ft_process_email_template($form_id, $submission_id, $email_id);
     if ($success) {
         $success = 1;
         $message = $LANG["notify_email_sent"];
     } else {
         $edit_email_template_link = "[<a href=\"{$g_root_url}/admin/forms/edit.php?form_id={$form_id}&email_id={$email_id}&page=edit_email\">edit email template</a>]";
         $success = 0;
         $message = $LANG["notify_email_not_sent_c"] . mb_strtolower($message) . " " . $edit_email_template_link;
     }
     $message = addslashes($message);
     echo "{ \"success\": \"{$success}\", \"message\": \"{$message}\" }";
     break;
 case "remember_edit_email_advanced_settings":
     $_SESSION["ft"]["edit_email_advanced_settings"] = $request["edit_email_advanced_settings"];
     break;
 case "smart_fill":