- b2evolution CMS User Manual
- Developer Reference
- Plugins
- Plugin development
- Creating an Antispam Plugin
Creating an Antispam Plugin
An Antispam Plugin is a plugin that implements methods to prevent/fight back at spam.
Creating an Antispam Plugin is the same as creating a "regular" plugin. This page only handles topics and introduces methods that are common to Antispam plugins.
Feedback spam
Your plugin should implement the method GetSpamKarmaForComment(). This gets passed the following values in the $params function parameter array:
- "Comment": the comment object
The following values are interesting if you want to skip your test:
- ‘cur_karma’: current karma value (cur_karma_abs/cur_karma_divider)
- ‘cur_karma_abs’: current karma absolute value
- ‘cur_karma_divider’: current divider (sum of weights)
- ‘cur_count_plugins’: number of Plugins that have already been asked
Your plugin should return an integer value between -100 and 100, where -100 means "it’s absolutely not spam" and 100 means "I’m damn sure this is spam.".
If you don’t want to return a spam probability value (e.g. because ‘’cur_karma'’ is already above a certain value), just return NULL.
For example:
Step1:
- if domain ends with ‘.info’ => return 20
- if domain ends with ‘.biz’ => return 30
- no match => return 0
Step2
- if domain contains ’search’ => return 20
- no match => return 0
Step3
- if full url contains ‘-anal-’ => return 80
- if full url contains ‘anal’ => return 20
- no match => return 0
Step4
- …
The core then decides upon the results of
$karma_abs / $karma_divider
what to do with the comment. Your plugin provides a part of $karma_abs and $karma_divider is the total weight of the antispam plugins, which can be setup in Settings - Spam Detection Relevance Weight.