2009-02-03 22:29:55 +01:00
< ? php
/**
* This class is responsible for setting an system - wide spam protecter field
* and add the protecter field to a form
*/
2009-02-11 01:27:18 +01:00
class SpamProtecterManager {
2009-02-03 22:29:55 +01:00
static $spam_protecter = null ;
/**
* Set the name of the spam protecter class
* @ param string the name of protecter field class
*/
static function set_spam_protecter ( $protecter ) {
self :: $spam_protecter = $protecter ;
}
2009-03-25 03:14:26 +01:00
/**
* Get the name of the spam protector class
*/
static function get_spam_protecter () {
return self :: $spam_protecter ;
}
2009-02-03 22:29:55 +01:00
/**
* Add the spam protecter field to a form
* @ param Form the form that the protecter field added into
* @ param string the name of the field that the protecter field will be added in front of
* @ param array an associative array
* with the name of the spam web service ' s field , for example post_title , post_body , author_name
* and a string of field names ( seperated by comma ) as a value .
* The naming of the fields is based on the implementation of the subclass of SpamProtecterField .
* *** Most of the web service doesn ' t require this .
2009-02-24 01:35:59 +01:00
* @ return SpamProtector object on success or null if the spamprotecter class is not found
* also null if spamprotecterfield creation fails .
2009-02-03 22:29:55 +01:00
*/
2009-03-11 05:42:21 +01:00
static function update_form ( $form , $before = null , $fieldsToSpamServiceMapping = null ) {
2009-02-17 10:03:59 +01:00
if ( ! class_exists ( self :: $spam_protecter )) return null ;
2009-02-11 04:47:14 +01:00
$protecter = new self :: $spam_protecter ();
2009-02-24 01:35:59 +01:00
try {
2009-03-11 05:42:21 +01:00
$check = $protecter -> updateForm ( $form , $before , $fieldsToSpamServiceMapping );
2009-02-24 01:35:59 +01:00
}
catch ( Exception $e ) {
$form -> setMessage (
2009-03-10 05:21:04 +01:00
_t ( " SpamProtection.SPAMSPECTIONFAILED " , " This website is designed to be protected against spam by " . self :: $spam_protecter . " but this is not correctly set up currently. " ),
2009-02-24 01:35:59 +01:00
" warning "
);
return null ;
}
2009-02-17 10:03:59 +01:00
if ( ! $check ) return null ;
2009-02-11 04:47:14 +01:00
return $protecter ;
2009-02-03 22:29:55 +01:00
}
2009-02-16 01:28:53 +01:00
/**
2009-03-11 05:42:21 +01:00
* Send Feedback to the Spam Protection . The level of feedback
* will depend on the Protector class .
2009-02-16 01:28:53 +01:00
*
2009-03-11 05:42:21 +01:00
* @ param DataObject The Object which you want to send feedback about . Must have a
* SessionID field .
* @ param String Feedback on the $object usually 'spam' or 'ham' for non spam entries
2009-02-16 01:28:53 +01:00
*/
2009-03-11 05:42:21 +01:00
static function send_feedback ( $object , $feedback ) {
2009-02-16 01:28:53 +01:00
$protecter = new self :: $spam_protecter ();
2009-03-11 05:42:21 +01:00
return $protecter -> sendFeedback ( $object , $feedback );
2009-02-16 01:28:53 +01:00
}
2009-02-03 22:29:55 +01:00
}
?>