Badwords

Bukan, bukan kata2 jorok koq, kalo kata2 jorok mah disini allowed koq :)

Tapi ini badwords untuk spam2, ya.. meskipun gw berhasil pake antispam, tapi cara kerjanya yg kemaren masukin komen dulu, baru cek, spam apa bukan.

Inget di wp ada moderation_keys, kalo gw gak salah :D, gw juga pake yg gituan skr, gak.. gw gak liat gmn cara kerja mereka koq, gw ngira2 aja, jika ada kata2 yang gw masukn ke dalam list, komentar gak jadi di proses, tapi bakalan langsung di forward ke halaman depan aja.

Pertama, gw extends dulu valid helpernya, kira2 seperti ini:

class valid extends valid_Core
{
  static function nobadwords($comment)
  {
    $badwords = Options::instance()->badwords;
    $badwords = implode('|', array_map('trim', explode("\n", trim($badwords))));
    $comment  = trim(str_replace("\n", ' ', $comment));

    return (bool) ! preg_match("/{$badwords}/i", $comment);
  }
}

Lalu pada blog_comment controller gw ubah jadi kek gini:

$comment = Validation::factory($_POST)
           ->add_rules('comment_author', 'required', 'length[3,100]')
           ->add_rules('email', 'required', 'valid::email')
           ->add_rules('comment', 'required', 'valid::nobadwords')
           ;

if ($comment->validate())
{
  // proses
}

Lumayan menghemat space database :P, soalnya yg kemaren aja, space yg kepake gara2 spam, udah mau sampe 20Mb..

hufft…