Пример #1
0
 /**
  * General method to check if something is spam
  *
  * @param string $content The content that was submitted.
  * @param string $permaLink The permanent location of the entry the comment was submitted to.
  * @param string[optional] $author Commenters name.
  * @param string[optional] $email Commenters email address.
  * @param string[optional] $URL Commenters URL.
  * @param string[optional] $type May be blank, comment, trackback, pingback, or a made up value like "registration".
  * @return bool|string Will return a boolean, except when we can't decide the status (unknown will be returned in that case)
  */
 public static function isSpam($content, $permaLink, $author = null, $email = null, $URL = null, $type = 'comment')
 {
     // get some settings
     $akismetKey = self::getModuleSetting('core', 'akismet_key');
     // invalid key, so we can't detect spam
     if ($akismetKey === '') {
         return false;
     }
     // require the class
     require_once PATH_LIBRARY . '/external/akismet.php';
     // create new instance
     $akismet = new Akismet($akismetKey, SITE_URL);
     // set properties
     $akismet->setTimeOut(10);
     $akismet->setUserAgent('Fork CMS/' . FORK_VERSION);
     // try it, to decide if the item is spam
     try {
         // check with Akismet if the item is spam
         return $akismet->isSpam($content, $author, $email, $URL, $permaLink, $type);
     } catch (Exception $e) {
         // in debug mode we want to see exceptions, otherwise the fallback will be triggered
         if (SPOON_DEBUG) {
             throw $e;
         }
         // return unknown status
         return 'unknown';
     }
     // when everything fails
     return false;
 }
Пример #2
0
 /**
  * Submit spam, his call is for submitting comments that weren't marked as spam but should have been.
  *
  * @return	bool						If everything went fine true will be returned, otherwise an exception will be triggered.
  * @param	string $userIp				IP address of the comment submitter.
  * @param	string $userAgent			User agent information.
  * @param	string[optional] $content	The content that was submitted.
  * @param	string[optional] $author	Submitted name with the comment.
  * @param	string[optional] $email		Submitted email address.
  * @param	string[optional] $url		Commenter URL.
  * @param	string[optional] $permalink	The permanent location of the entry the comment was submitted to.
  * @param	string[optional] $type		May be blank, comment, trackback, pingback, or a made up value like "registration".
  * @param	string[optional] $referrer	The content of the HTTP_REFERER header should be sent here.
  * @param	array[optional] $others		Other data (the variables from $_SERVER).
  */
 public static function submitSpam($userIp, $userAgent, $content, $author = null, $email = null, $url = null, $permalink = null, $type = null, $referrer = null, $others = null)
 {
     // get some settings
     $akismetKey = self::getModuleSetting('core', 'akismet_key');
     // invalid key, so we can't detect spam
     if ($akismetKey === '') {
         return false;
     }
     // require the class
     require_once PATH_LIBRARY . '/external/akismet.php';
     // create new instance
     $akismet = new Akismet($akismetKey, SITE_URL);
     // set properties
     $akismet->setTimeOut(10);
     $akismet->setUserAgent('Fork CMS/2.1');
     // try it to decide it the item is spam
     try {
         // check with Akismet if the item is spam
         return $akismet->submitSpam($userIp, $userAgent, $content, $author = null, $email = null, $url = null, $permalink = null, $type = null, $referrer = null, $others = null);
     } catch (Exception $e) {
         // in debug mode we want to see exceptions, otherwise the fallback will be triggered
         if (SPOON_DEBUG) {
             throw $e;
         }
     }
     // when everything fails
     return false;
 }