Moderovanie
Každý komentár má stav — pending, approved alebo hidden — reprezentovaný enumom CommentStatus. Predvolene sa nové komentáre schvaľujú okamžite; ak ich chcete najprv skontrolovať, zapnite require_approval (COMMENTS_REQUIRE_APPROVAL=true):
use RoundlyConsulting\Comments\Facades\Comments;
Comments::approve($comment); // status → approved, dispatches CommentApproved
Comments::hide($comment); // status → hidden, dispatches CommentHiddenZadržaný komentár neupozorní nikoho, koho spomína: jeho schválenie odošle CommentMentioned pre každú priradenú zmienku, každej osobe raz — pozrite @zmienky.
Moderovacie fronty
Moderovacia fronta naprieč celým webom — všetky subjekty naraz — začína od Comments::query():
use RoundlyConsulting\Comments\Facades\Comments;
Comments::query()->pending()->mostReported()->paginate(); // every subject at once
Comments::query()->pending()->approveAll();Fungujú aj obyčajné scopy na modeli Comment:
use RoundlyConsulting\Comments\Models\Comment;
Comment::pending()->get(); // awaiting review
Comment::approved()->get(); // approved
Comment::hidden()->get(); // hidden
Comment::visible()->get(); // visible === true AND status === approved
Comment::roots()->get(); // top-level comments onlyPríznak visible a stav sú nezávislé: komentár sa verejne zobrazí, len keď je visible true a stav approved — presne to kontroluje scope visible() aj approvedComments.
Hromadné moderovanie
Fluentné query moderuje všetko, čo mu vyhovuje. Každý terminál prejde výsledky podľa primárneho kľúča a každý riadok pošle cez manažér — policy, udalosť aj Comments::fake() teda uvidia každý komentár — a vráti počet dotknutých:
// Bulk moderation — each row runs through the manager, so the policy, the lifecycle
// event and Comments::fake() all see every comment:
Comments::for($post)->pending()->approveAll(); // int: comments approved
Comments::byAuthor($user)->hideAll(); // int: comments hidden
Comments::for($post)->deleteAll(); // int: comments soft-deletedEnum stavu
use RoundlyConsulting\Comments\Enums\CommentStatus;
$comment->status === CommentStatus::Pending;
CommentStatus::values()->all(); // ['pending', 'approved', 'hidden']
CommentStatus::labels()->all(); // ['Pending', 'Approved', 'Hidden']
CommentStatus::options(); // Collection of options (value, label, name)
CommentStatus::validationRule(); // 'in:pending,approved,hidden'
CommentStatus::Hidden->readable(); // 'Hidden'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 kryptomienOdoslaní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.