NovinkaZverejnili sme 50+ Laravel balíkov ako open source
Custom AI apps, agents and automation — Roundly ConsultingRoundly
Všetky balíky
Comments for Laravel

Nahlasovanie a automatické moderovanie

Komentáre sú subjektom nahlásení cez Reports for Laravel (Comment implementuje Reportable): nahlasujte urážlivé či spamové komentáre s deduplikáciou, typovanými dôvodmi aj v mene hosťa. Nahlasovateľ sa vždy odovzdáva explicitne:

use RoundlyConsulting\Reports\Facades\Reports;

Reports::report($comment)->by($user)->for('spam')->create();
Reports::report($comment)->asGuest($fingerprint)->for('abuse')->create();

$comment->hasBeenReported();
$comment->isReportedBy($user);

Moderovacia fronta

// Moderation queue on the CommentQuery builder:
Comments::for($post)->mostReported()->get();
Comments::for($post)->reportedMoreThan(3)->get();
Comments::for($post)->withReportCounts()->get(); // each row: ->reports_count

Automatické skrytie

Keď sa nahlásenie potvrdí (ReportResolved) alebo komentár prekročí globálny reports.threshold (ReportThresholdReached), listener SyncCommentVisibilityFromReports komentár skryje — stav sa zmení na hidden a odošle sa CommentHidden rovnako ako pri ručnom skrytí. Subjekty, ktoré nie sú komentármi, ignoruje a koná len pri aktuálne schválenom komentári, takže nikdy neskryje dvakrát. Obe cesty sa riadia konfiguráciou:

// config/comments.php
'moderation' => [
    'on_resolved' => 'hide', // null disables the upheld-report path
    'auto_hide' => true,     // false ignores ReportThresholdReached
],

Cesta cez limit funguje, len ak je v konfigurácii Reports nastavený reports.threshold — predvolene je tam null (vypnuté).

Schválenie viacerými moderátormi

Reports rieši nahlásenia cez Approvals for Laravel, takže schválenie viacerými moderátormi nevyžaduje žiadny ďalší kód. Moderátori sú uložené Eloquent modely — typicky váš User s traitom GivesApprovals z Approvals (implements GivesApprovalsInterface), ktorý pridáva vzťah givenApprovals():

use RoundlyConsulting\Approvals\Enums\ApprovalRule;
use RoundlyConsulting\Reports\Exceptions\ModeratorRequiredException;
use RoundlyConsulting\Reports\Facades\Reports;

Reports::moderate($report)->requiring([$alice, $bob])->rule(ApprovalRule::Quorum)->quorum(2)->open();
Reports::resolve($report, by: $alice);           // 1/2 — comment stays visible
Reports::resolve($report, by: $mallory);         // not named → ModeratorRequiredException, nothing recorded
Reports::resolve($report, by: $bob);             // quorum reached → comment hidden

Kým je žiadosť otvorená, rozhodovať môžu len moderátori uvedení v requiring([...]) — alebo ich zástupca v Approvals; ktokoľvek iný, ako aj volanie bez by:, dostane ModeratorRequiredException z Reports.

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

Odoslaním daru súhlasíte s našimi podmienkami prijímania darov.

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.