You are here

function cleantalk_validate_contact_message in Anti Spam by CleanTalk 7.2

Same name and namespace in other branches
  1. 8.4 cleantalk.module \cleantalk_validate_contact_message()
  2. 8 cleantalk.module \cleantalk_validate_contact_message()
  3. 8.3 cleantalk.module \cleantalk_validate_contact_message()
  4. 7.5 cleantalk.module \cleantalk_validate_contact_message()
  5. 7 cleantalk.module \cleantalk_validate_contact_message()
  6. 7.4 cleantalk.module \cleantalk_validate_contact_message()
  7. 9.1.x cleantalk.module \cleantalk_validate_contact_message()

Cleantalk contact message validation function.

1 string reference to 'cleantalk_validate_contact_message'
_cleantalk_form_alter in ./cleantalk.module
Cleantalk inner function - alters needed form.

File

./cleantalk.module, line 1562
Main CleanTalk integration module functions.

Code

function cleantalk_validate_contact_message(&$form, &$form_state) {
  global $user;

  // Don't check reged user with >= 'cleantalk_comments' approved msgs.
  if ($user->uid > 0) {

    # Don't check admin activity
    if (isset($user->roles) && is_array($user->roles)) {
      if (in_array('administrator', $user->roles)) {
        return;
      }
    }
    $result = db_query('SELECT count(*) AS count FROM {comment} WHERE uid=:uid AND status=1', array(
      ':uid' => $user->uid,
    ));
    $count = intval($result
      ->fetchObject()->count);
    $ct_comments = variable_get('cleantalk_comments', 3);
    if ($count >= $ct_comments) {
      return;
    }
  }
  $spam_check = array();
  $spam_check['type'] = 'contact';
  $spam_check['sender_email'] = !empty($form_state['values']['mail']) ? $form_state['values']['mail'] : '';
  $spam_check['sender_nickname'] = !empty($form_state['values']['name']) ? $form_state['values']['name'] : '';
  $spam_check['message_title'] = !empty($form_state['values']['subject']) ? $form_state['values']['subject'] : '';
  $spam_check['message_body'] = !empty($form_state['values']['message']) ? $form_state['values']['message'] : '';
  $spam_result = _cleantalk_check_spam($spam_check);
  if (isset($spam_result) && is_array($spam_result) && $spam_result['errno'] == 0 && $spam_result['allow'] != 1 && $spam_result['stop_queue'] == 1) {

    // Value of ct_result_comment is sanitized already (before storing).
    form_set_error('comment_body', $spam_result['ct_result_comment']);
  }
}