---
title: "Filter spamu a blocklist — Comments for Laravel | Roundly"
description: "Odmietnite, podržte na kontrolu alebo skryte komentáre so zakázanými slovami či regulárnymi výrazmi, alebo telo skontrolujte sami — bez externej služby."
url: https://roundly-consulting.com/sk/open-source/navody/comments-for-laravel/filter-spamu
language: sk
---

[Všetky balíky](https://roundly-consulting.com/sk/open-source.md)

[Comments for Laravel](https://roundly-consulting.com/sk/open-source/navody/comments-for-laravel.md)

# Filter spamu a blocklist

Nastavte zakázané slová alebo regulárne výrazy a spôsob, ako naložiť so zhodou:

```php
// config/comments.php
'blocklist' => ['spam', '/casino|viagra/i'],
'blocklist_action' => 'reject', // 'reject' | 'pending' | 'hidden'
```

- Obyčajné reťazce sa porovnávajú ako celé slová bez ohľadu na veľkosť písmen — spam zachytí „Spam!“, ale nie „spammer“.
- Položky s oddeľovačmi, napríklad /casino|viagra/i, sa použijú ako regulárne výrazy presne tak, ako sú zapísané.
- Prázdna položka alebo položka, ktorá nie je reťazec, vyhodí InvalidConfigurationException s názvom comments.blocklist.

## Akcie

| Akcia | Nový komentár so zhodou sa… | Úprava so zhodou… |
| --- | --- | --- |
| `reject` | Neuloží — vyhodí sa CommentRejectedException. | Sa odmietne — vyhodí sa CommentRejectedException. |
| `pending` | Uloží so stavom pending a čaká na kontrolu. | Presunie schválený komentár do pending; skrytý zostane skrytý. |
| `hidden` | Uloží so stavom hidden. | Presunie komentár do hidden. |

Úpravy prechádzajú tým istým filtrom, takže komentár uverejnený bez problému nemožno úpravou zmeniť na spam a nechať ho verejný. Úprava stav vždy len sprísni — skrytý komentár nikdy nevráti do pending a čistá úprava nechá zadržaný komentár na schválenie moderátorovi.

```php
use RoundlyConsulting\Comments\Exceptions\CommentRejectedException;

try {
    Comments::on($post)->as($user)->body($body)->post();
} catch (CommentRejectedException $e) {
    // $e->getMessage(): "This comment contains content that is not allowed."
}
```

## Vlastná kontrola tela

Comments::blocklisted($body) sa toho istého filtra opýta priamo: či sa telo zhoduje s niektorým nastaveným slovom alebo vzorom, skontrolované presne ako pri zápise (po orezaní). blocklist\_action ignoruje a nikdy neodmieta, takže odpovie aj pri akcii reject — výnimku InvalidConfigurationException vyhodí len chybne nastavený blocklist. Pomocou nej odlíšite komentár, ktorý ako pending zadržal blocklist, od komentára zadržaného cez require\_approval — napríklad pred automatickým schválením —, alebo používateľa upozorníte ešte pred uverejnením. Ide o čítanie, preto ho Comments::fake() nezaznamená:

```php
use RoundlyConsulting\Comments\Enums\CommentStatus;
use RoundlyConsulting\Comments\Facades\Comments;

$comment = Comments::on($ticket)->as($user)->body($text)->post();

if ($comment->status === CommentStatus::Pending && ! Comments::blocklisted($comment->comment)) {
    Comments::approve($comment);   // held only by require_approval, not by the blocklist
}
```

## Prejavte lásku k open source

Tento balík je zadarmo pod licenciou MIT. Ak vám šetrí čas, jednorazový príspevok alebo členstvo na Patreone nám pomôže ho ďalej udržiavať, testovať a dokumentovať.

[Ďalšie spôsoby podpory vrátane kryptomien](https://roundly-consulting.com/sk/podporte-nas.md)

Odoslaním daru súhlasíte s našimi [podmienkami prijímania darov](https://roundly-consulting.com/sk/podmienky-darov.md).

[Podporte našu open-source prácu (otvorí sa v novej karte)](https://donate.stripe.com/dRmeVe8FX5PF1Qd9pXcEw00) [Pridajte sa k nám na Patreone (otvorí sa v novej karte)](https://www.patreon.com/cw/roundly)

## Chcete to zabudovať do svojho produktu?

Naše balíky integrujeme do zákazkových Laravel a AI riešení. Napíšte nám, na čom pracujete, a ozveme sa do 48 hodín.

[Ponuka do 48 hodín](https://roundly-consulting.com/sk/kontakt.md) [Prezrieť všetky balíky](https://roundly-consulting.com/sk/open-source/navody/comments-for-laravel.md)
