Yii 2.0: yii2-antispam

Yii2 antispam extension for user messages and registrations
2 followers

Anti-spam extension by CleanTalk for Yii2 framework.

No Captcha, no questions, no counting animals, no puzzles, no math.

Build Status

Requirements

Yii 2.0 or above

Installation

The preferred way to install this extension is through composer.

Either run

php composer.phar require --prefer-dist cleantalk/yii2-antispam

or add

"cleantalk/yii2-antispam": "~1.0.0"

to the require section of your composer.json.

Usage

1) Get access key on https://cleantalk.org/register?platform=yii2

2) Open your application configuration in protected/config/web.php and modify components section:

// application components
'components'=>[
    ...
        'antispam' => [
            'class' => 'cleantalk\antispam\Component',
            'apiKey' => 'Your API KEY',
        ],
    ...
],

3) Add validator in your model, for example ContactForm:

namespace app\models;
 
use cleantalk\antispam\validators\MessageValidator;
use Yii;
use yii\base\Model;
 
/**
 * ContactForm is the model behind the contact form.
 */
class ContactForm extends Model
{
    public $name;
    public $email;
    public $body;
    /**
     * @inheritdoc
     */
    public function rules()
    {
        return [
            // name, email, subject and body are required
            [['name', 'email', 'subject', 'body'], 'required'],
            // email has to be a valid email address
            ['email', 'email'],
            ['body', MessageValidator::className(), 'emailAttribute'=>'email', /*'nickNameAttribute'=>'name'*/]
        ];
    }
}

4) In form view add widget for hidden Javascript checks:

<?php $form = ActiveForm::begin(); ?>
    ...
    <?= \cleantalk\antispam\Widget::widget()?>
    ...
    <?= Html::submitButton('Submit')?>
    ...
<?php ActiveForm::end(); ?>

User registration validator

See cleantalk\antispam\validators\UserValidator

Example rules:

/**
     * @inheritdoc
     */
    public function rules()
    {
        return [
            [['name', 'email'], 'required'],
            ['email', 'email'],
            ['email', UserValidator::className(), 'nickNameAttribute'=>'name']
        ];
    }

License

GNU General Public License

Resources

  • https://cleantalk.org/
  • https://github.com/CleanTalk/yii2-antispam

Be the first person to leave a comment

Please to leave your comment.

Create extension
Downloads
No downloadable files yet