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

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 CommentHidden

Zadrž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 only

Prí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-deleted

Enum 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 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.