
Jezik 🇭🇷 Hrvatski
Pozadina
API
Razvoj proširenja
Kontekst
FastComments pruža mogućnost proširenja naše osnovne funkcionalnosti putem skripti koje nazivamo proširenja.
An Extension can add additional markup to the comment widget, event listeners, and run arbitrary code.
Ovdje ćete pronaći primjere proširenja koja imamo u produkciji, kao i dokumentaciju o tome kako pisati proširenja.
Životni ciklus proširenja 
Skripta za svako proširenje dohvaća se i poziva prije nego što widget za komentare počne dohvaćati prvi skup komentara i prikazivati korisničko sučelje.
Pri početnom učitavanju, sljedeći će se podaci pridružiti objektu proširenja:
config- Referenca na objektconfig.translations- Referenca na objekttranslations.commentsById- Referenca na sve komentare po id-u.root- Referenca na korijenski DOM čvor.
Proširenja trebaju prebrisati željene funkcije koje će widget za komentare pozivati u odgovarajućim trenucima.
Definiranje proširenja 
Najmanje moguće proširenje bilo bi:
Run 
U svrhu ovog primjera, spremite ovo kao my-extension.js, i učinite ga dostupnim na https://example.com/my-extension.min.js.
Ovo proširenje ne radi ništa; pri učitavanju jedino dohvaća objekt proširenja koji je stvorila osnovna biblioteka komentara.
Ovaj Extension objekt je singleton i nije dijeljen s nijednim drugim proširenjem.
Sljedeće, da bismo učitali naše proširenje, moramo o tome obavijestiti widget za komentare. Na primjer:
Run 
Za funkcionalne primjere, pogledajte sljedeći odjeljak.
Primjeri proširenja 
U FastCommentsu pišemo vlastite ekstenzije, koristeći isti API. Možete pogledati neminificirani kod ovih ekstenzija na sljedećim endpointima:
Tamni način
Ekstenzija Tamni način se uvjetno učitava kada se otkrije stranica označena kao "dark". Ova ekstenzija jednostavno dodaje neke CSS stilove u widget za komentare. Na taj način ne moramo učitavati CSS za tamni način kada on nije potreban.
https://fastcomments.com/js/comment-ui/extensions/comment-ui.dark.extension.js
Moderacija
Kada je trenutni korisnik moderator, koristimo ekstenziju za moderaciju.
Ovo je dobar primjer za dodavanje slušača događaja na klik, obavljanje API zahtjeva i dodavanje u izbornik komentara te područja komentara.
https://fastcomments.com/js/comment-ui/extensions/comment-ui.moderation.extension.js
Razgovor uživo
Ekstenzija Razgovor uživo (u kombinaciji s drugom konfiguracijom i stilizacijom) pretvara widget za komentare u komponentu chata uživo.
https://fastcomments.com/js/comment-ui/extensions/live-chat.extension.js
Objekt proširenja 
Objekt proširenja sastoji se od sljedeće definicije:
Run 
API proširenja 
Interakcija s Extension-om je jednostavna, jer jednostavno definiramo reference na funkcije koje želimo pozvati.
Da nadogradimo prethodni primjer, pretpostavimo da želimo dodati HTML na vrh svakog komentara:
Run 
Kad god vratite HTML poput ovog, on će se spojiti u UI putem algoritma usporedbe DOM-a.
Ručno pokretanje ponovnog prikaza komentara
Možemo pričekati početno učitavanje stranice i ručno ponovno prikazati komentar pozivom reRenderComment:
Run 