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

Životný cyklus moderovania

Každá recenzia má ReviewStatus s hodnotou Pending, Approved alebo Rejected. Nové recenzie čakajú na schválenie, pokiaľ nie je zapnuté auto_approve, builder nezavolal approved() alebo ich neschválil moderátor.

use RoundlyConsulting\Reviews\Facades\Reviews;

Reviews::approve($review);            // marks approved, stamps approved_at
Reviews::reject($review, 'Spam');     // marks rejected, stores the reason in meta

$review->isPending();
$review->isApproved();
$review->isRejected();

$review->meta?->get('rejection_reason'); // 'Spam'
  • approve() nastaví stav approved, zapíše approved_at a spustí ReviewApproved.
  • reject() nastaví stav rejected, vymaže approved_at, uloží voliteľný dôvod do meta.rejection_reason a spustí ReviewRejected s týmto dôvodom.
  • Obe operácie sú idempotentné — schválenie už schválenej (alebo zamietnutie už zamietnutej) recenzie nič nezmení a nespustí žiadnu udalosť.
  • Schválenie zamietnutej recenzie odstráni jej neaktuálny rejection_reason.
  • Recenzia, ktorá skončí schválená alebo zamietnutá pri vytvorení či po úprave, spustí rovnaké udalosti.

Fronta na moderovanie

Reviews::query() pokrýva všetky predmety a rešpektuje vymenený reviews.model:

use RoundlyConsulting\Reviews\Facades\Reviews;

// The moderation queue — every subject, oldest first, owner responses excluded:
$queue = Reviews::query()->pending()->topLevel()->oldest()->paginate(20);

// Or newest first, as the README does:
Reviews::query()->pending()->latestFirst()->paginate();

Automatické schvaľovanie

V dôveryhodnom prostredí REVIEWS_AUTO_APPROVE=true schváli každú novú — aj znova moderovanú upravenú — recenziu hneď a moderátora preskočí. Ak chcete dôverovať len niektorým recenziám, schváľte ich jednotlivo cez ->approved() v builderi.

Enum stavu

ReviewStatus aj ModerationDecision používajú pomocníkov z Enums for Laravel, takže values(), labels(), options(), toOptions(), validationRule(), readable() a vyhľadávanie prípadov máte k dispozícii hneď:

use RoundlyConsulting\Reviews\Enums\ReviewStatus;

$review->status;                       // ReviewStatus::Pending
$review->status->isApproved();         // bool

ReviewStatus::values();                // collect(['pending', 'approved', 'rejected'])
ReviewStatus::validationRule();        // 'in:pending,approved,rejected'
ReviewStatus::toOptions();             // value => label map for select inputs
ReviewStatus::Approved->readable();    // 'Approved'

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.