* @var modX $modx * @var array $fields * @var QuipThreadReplyController $this * * @package quip * @subpackage processors */ $errors = array(); /* make sure not empty */ if (empty($fields['comment'])) { $errors['comment'] = $modx->lexicon('quip.message_err_ns'); } /* verify against spam */ if ($modx->loadClass('stopforumspam.StopForumSpam', $quip->config['modelPath'], true, true)) { $sfspam = new StopForumSpam($modx); $spamResult = $sfspam->check($_SERVER['REMOTE_ADDR'], $fields['email']); if (!empty($spamResult)) { $spamFields = implode($modx->lexicon('quip.spam_marked') . "\n<br />", $spamResult); $errors['email'] = $modx->lexicon('quip.spam_blocked', array('fields' => $spamFields)); } } else { $modx->log(modX::LOG_LEVEL_ERROR, '[Quip] ' . $modx->lexicon('quip.sfs_err_load')); } /* if requireAuth */ if ($this->getProperty('requireAuth', false) && !$this->hasAuth) { $errors['comment'] = $modx->lexicon('quip.err_not_logged_in'); return $errors; } /* if using reCaptcha */ $disableRecaptchaWhenLoggedIn = $this->getProperty('disableRecaptchaWhenLoggedIn', true, 'isset'); if ($this->getProperty('recaptcha', false) && !($disableRecaptchaWhenLoggedIn && $this->hasAuth)) {
/** * Ensure the a field passes a spam filter. * * Properties: * - spamEmailFields - The email fields to check. A comma-delimited list. * * @access public * @param array $fields An array of cleaned POST fields * @return boolean True if email was successfully sent. */ public function spam(array $fields = array()) { $passed = true; $spamEmailFields = $this->modx->getOption('spamEmailFields', $this->login->config, 'email'); $emails = explode(',', $spamEmailFields); if ($this->modx->loadClass('stopforumspam.StopForumSpam', $this->login->config['modelPath'], true, true)) { $sfspam = new StopForumSpam($this->modx); foreach ($emails as $email) { $spamResult = $sfspam->check($_SERVER['REMOTE_ADDR'], $fields[$email]); if (!empty($spamResult)) { $spamFields = implode($this->modx->lexicon('register.spam_marked') . "\n<br />", $spamResult); $this->errors[$email] = $this->modx->lexicon('register.spam_blocked', array('fields' => $spamFields)); $passed = false; } } } else { $this->modx->log(modX::LOG_LEVEL_ERROR, '[Register] Couldnt load StopForumSpam class.'); } return $passed; }