function engagements_send_email_or_txt_form_submit

7.x engagements.module engagements_send_email_or_txt_form_submit($form, &$form_state)
6.x engagements.module engagements_send_email_or_txt_form_submit($form, &$form_state)
1 string reference to 'engagements_send_email_or_txt_form_submit'
engagements_form_alter in modules/engagements/engagements.module
Implements hook_form_alter

File

modules/engagements/engagements.module, line 3118
This is the primary module file for the engagements module.

Code

function engagements_send_email_or_txt_form_submit($form, &$form_state) 
 {

  global $user;

  $values = $form_state ['values'];
  $cid = $form_state ['content_object']->cid; // At this point, the content has already been saved, so we know its cid.
  $content = $form_state ['content_object'];
  $engagement_type = $values ['engagement_type'];

  $manual_entry = @trim(strtoupper($values ['manual_entry']));

  if ($engagement_type != 'email' && $engagement_type != 'txt_msg') {
    return; // we are not interested, harmlessly return.
  }

  $db = get_global_database_handler();
  $student_id = $values ['student_id'];
  $faculty_id = $values ['faculty_id'];
  $faculty_name = $db->get_faculty_name($faculty_id);

  $initials = variable_get("school_initials", "DEMO");

  $initials = variable_get_for_school("school_initials", "DEMO", db_get_school_id_for_student_id($student_id));

  // get the "from_number"
  $from_number = $values ['from_sms_phone'];

  // this needs to be a setting with replacement values!
  // Add header to msg...
  $header = engagements_sms_replace_patterns(variable_get('sms_header', '(@initials) from @name:'), $from_number, $user);

  $msg = $values ['engagement_msg'];

  $db = get_global_database_handler();

  if ($engagement_type == 'email' && $manual_entry != 'Y') {
    $student_email = fp_get_student_email($student_id);

    $subject = $values ['title'];

    // Add our tracking pixel to the end of the email msg (but not what is saved to our database).
    // We will use that to tell how many times the message gets opened.
    $tracking_img_url = engagements_create_new_tracking_img_url($cid);


    $msg .= "<br><br>----<br>You may respond directly to this email.  It will be stored with FlightPath for $faculty_name to then review.";

    $msg .= "\n\n<img src='$tracking_img_url'>";


    // Were there any attachments with this content?

    $attachments = array();
    $attachment_csv = trim(@$content->field__attachment ['value']);
    if ($attachment_csv) {
      $temp = explode(",", $attachment_csv);
      foreach ($temp as $fid) {
        if ($fid == "") {
          continue;
        }
        $file = content_get_uploaded_file($fid);
        if ($file) {
          // Handle encrypted files  
          $fcont = file_get_contents($file ['full_filename']); // the full_filename already contains the path to the file
          if (intval($file ['is_encrypted']) === 1) {
            $fcont = encryption_decrypt($fcont);
          }
          $attachments [$file ['original_filename']] = $fcont;
        }
      }
    }



    smtp_mail($student_email, $subject, $header . "<br><br>" . $msg, TRUE, $attachments, TRUE); // the TRUE sends as HTML.
    fp_add_message(t("Email has been successfully sent."));
  } // type == 'email'


  $mobile_phone = '';

  if ($engagement_type == 'txt_msg' && $manual_entry != 'Y') {

    $student_user_id = db_get_user_id_from_cwid($student_id, 'student');

    $temp = user_get_attribute($student_user_id, 'mobile_phone');
    $mobile_phone = engagements_convert_to_valid_phone_number(trim($temp));
    // Since we have passed validation, we will assume we have a valid phone number for this student.

    // Send the message!
    $external_msg_id = engagements_send_sms_to_number($mobile_phone, $header . "\n" . $msg, $student_id, $from_number);

    if ($external_msg_id) {
      fp_add_message(t("Text Message has been successfully sent."));
      // save the external_msg_id with the content.
      $content->field__external_msg_id ['value'] = $external_msg_id;

      $content->field__to_sms_phone ['value'] = $mobile_phone;
      $content->field__from_sms_phone ['value'] = $from_number;

      $content->log = "[AUTO] Updating external_msg_id";
      content_save($content);
    }
  } // type == 'txt_msg'

  if ($manual_entry != 'Y') {
    watchdog("engagements", "sent $engagement_type to $student_id ($mobile_phone)");
  }
  else {
    watchdog("engagements", "logged $engagement_type to $student_id");
  }

  watchdog("engagements", "$engagement_type message to $student_id: $header <br> $msg", array(), WATCHDOG_DEBUG);
}