FastComments.com

Prilagođavanja i konfiguracija

Prilagođavanja i konfiguracija

Kontekst

Ovde ćete pronaći detaljnu dokumentaciju o svakoj funkciji i podešavanju koje widget za komentare podržava.

Ova dokumentacija će pokriti osnovne pojmove i detaljno obraditi svako područje funkcionalnosti, sa uputstvima i uobičajenim zamkama.

Biće prikazani primeri koda, sa istaknutim relevantnim linijama. Tamo gde je primenljivo biće prikazani snimci ekrana stranica za konfiguraciju.

Primeri koda će koristiti našu vanilla JavaScript biblioteku, međutim opcije konfiguracije koriste tačno ista imena za sve verzije widgeta za komentare (React, Vue, itd.).

Većina podešavanja i funkcija opisanih u ovom vodiču ne zahteva pisanje koda.

Prikazivanje istih komentara na različitim stranicama Internal Link

Pošto parametar urlId omogućava da definišemo kojoj stranici, odnosno id-u, su komentari vezani, možemo jednostavno postaviti urlId na istu vrednost na tim stranicama.

The Same Comments on Multiple Pages
Copy CopyRun External Link
1
2<script async src="https://cdn.fastcomments.com/js/embed-v2-async.min.js"></script>
3<div id="fastcomments-widget"></div>
4<script>
5window.fcConfigs = [{
6 "tenantId": "demo",
7 "urlId": "https://example.com/source-page"
8}];
9</script>
10

Prilagođeni fontovi Internal Link

FastComments je dizajniran da bude prilagodljiv, i font koji koriste naši widgeti nije izuzetak.

Podrazumevano, FastComments koristi system font stack da izgleda što bolje na širokom spektru uređaja.

Da biste definisali sopstvene fontove, pogledajte Custom CSS dokumentaciju.

Tamo ćete pronaći način da definišete prilagođeni CSS, što će vam omogućiti da postavite željene fontove.

Kako definisati font

Da biste prebrisali font, preporučujemo da definišete svoj CSS koristeći selektore .fast-comments, textarea. Na primer:

Primer prilagođenog spoljnog fonta
Copy CopyRun External Link
1
2@import url('https://fonts.googleapis.com/css2?family=Roboto:wght@300&display=swap');
3.fast-comments, textarea {
4 font-family: 'Roboto', sans-serif;
5}
6

Podrška za tamne pozadine (tamni režim) Internal Link

Podrazumevano, FastComments widget za komentare će automatski detektovati tamni režim na većini sajtova.

Kada se otkrije tamni režim, FastComments će promeniti prikaz sa crnog teksta na belim pozadinama na beli tekst na crnoj pozadini. Slike će se takođe promeniti.

Prilikom učitavanja stranice, widget će pokušati da odredi koliko je tamna pozadina stranice iza widgeta za komentare. Ovo znači da stranica može imati belu pozadinu, ali ako postavite widget za komentare unutar kontejnera sa crnom pozadinom, tamni režim bi i dalje trebalo automatski da bude omogućen kako bi komentari bili čitljivi.

Međutim, mehanizam detekcije, koji se oslanja na određivanje "luminancije", možda neće omogućiti tamni režim kada to želite. Da biste ga prisilno omogućili, postavite zastavicu hasDarkBackground na true na sledeći način:

Force Dark Background Mode
Copy CopyRun External Link
1
2<script async src="https://cdn.fastcomments.com/js/embed-v2-async.min.js"></script>
3<div id="fastcomments-widget"></div>
4<script>
5window.fcConfigs = [{
6 "tenantId": "demo",
7 "hasDarkBackground": true
8}];
9</script>
10

Povezivanje komentara sa stranicama Internal Link

Kada se šalju obaveštenja putem e‑pošte, ili se komentari prikazuju u korisničkim interfejsima poput stranice za moderaciju, korisno je omogućiti povezivanje iz komentara na stranicu na kojoj se nalazi.

Ako URL ID nije uvek pravi ID, onda moramo URL sačuvati negde drugo. Za to služi svojstvo "url", definisano na sledeći način.

Defining a Custom URL
Copy CopyRun External Link
1
2<script async src="https://cdn.fastcomments.com/js/embed-v2-async.min.js"></script>
3<div id="fastcomments-widget"></div>
4<script>
5window.fcConfigs = [{
6 "tenantId": "demo",
7 "url": "https://example.com/article-5"
8}];
9</script>
10

Uobičajen slučaj upotrebe je povezivanje niza komentara sa identifikatorom, na primer člankom, i zatim povezivanje nazad na konkretnu stranicu, na primer:

Defining Custom URL and URL IDs together
Copy CopyRun External Link
1
2<script async src="https://cdn.fastcomments.com/js/embed-v2-async.min.js"></script>
3<div id="fastcomments-widget"></div>
4<script>
5window.fcConfigs = [{
6 "tenantId": "demo",
7 "url": "https://example.com/article-5",
8 "urlId": "article-5"
9}];
10</script>
11

URL se ne čisti od uobičajenih marketinških parametara. Podrazumevano, šta god da je trenutni URL stranice, taj URL se čuva uz komentar.

Određivanje koju stranicu prikazati Internal Link

Prilikom preuzimanja i renderovanja komentara, widget za komentare mora znati od koje stranice da počne. Podrazumevano, počinje sa prvom stranicom i prikazuje samo tu stranicu.

Ako želite, tačnu stranicu koja će se renderovati možete proslediti widgetu za komentare kao podešavanje startingPage.

Specifying The Page to Render
Copy CopyRun External Link
1
2<script async src="https://cdn.fastcomments.com/js/embed-v2-async.min.js"></script>
3<div id="fastcomments-widget"></div>
4<script>
5window.fcConfigs = [{
6 "tenantId": "demo",
7 "startingPage": 1
8}];
9</script>
10

Imajte na umu da brojevi stranica počinju od nule, pa gornji primer prikazuje drugu stranicu.

Promena niti komentara bez ponovnog učitavanja stranice Internal Link

Objasnili smo kako je urlId identifikator stranice ili članka na koji su komentari vezani.

Takođe, da rezimiramo, ako nije definisan, urlId će podrazumevano biti URL trenutne stranice.

Šta je sa SPA-ima, odnosno Single-Page-Applications, gde se stranica ili sadržaj na koji su komentari vezani menja dinamički bez ponovnog učitavanja cele stranice?

Angular, React, Vue, i dr.

Sa našim bibliotekama kao što su Angular i React, jednostavno ažuriranje urlId svojstva prosleđenog widgetu prouzrokovaće osvežavanje widgeta za komentare. To možete videti u praksi za React aplikaciju, na primer, ovde.

VanillaJS

Ako koristite VanillaJS biblioteku, to je malo složenije jer nema framework-a poput Angular-a ili React-a koji bi rukovao vezivanjem podataka ili propagacijom stanja.

Kada instancirate VanillaJS widget, on vraća neke funkcije koje se mogu pozvati da ga ažuriraju.

Evo funkcionalnog primera gde menjamo hash stranice i ažuriramo widget za komentare:

Primer promene hash-a stranice
Copy CopyRun External Link
1
2<script src="https://cdn.fastcomments.com/js/embed-v2.min.js"></script>
3<button id="change-page"></button>
4<div id="fastcomments-widget"></div>
5<script>
6 (function fastCommentsMain() {
7 let config = {
8 tenantId: 'demo'
9 };
10 let instance = window.FastCommentsUI(document.getElementById('fastcomments-widget'), config);
11
12 let page = '#page-1';
13 function getNextPage() {
14 if (page === '#page-1') {
15 return '#page-2';
16 } else {
17 return '#page-1';
18 }
19 }
20
21 let button = document.getElementById('change-page');
22 function nextPage() {
23 page = getNextPage();
24 button.innerText = 'Go to ' + getNextPage();
25 window.location.hash = page;
26 let locationString = window.location.toString();
27
28 config.url = locationString; // Takođe ažuriramo url, kako bi obaveštenja mogla da vode nazad na pravu stranicu
29 config.urlId = locationString;
30
31 instance.update(config);
32 }
33 nextPage();
34 button.addEventListener('click', nextPage);
35 })();
36</script>
37

Onemogući preusmeravanje slike Internal Link

Podrazumevano, FastComments dozvoljava korisnicima da otpremaju slike. Kada korisnik klikne tu sliku, FastComments će, podrazumevano, otvoriti novu karticu da prikaže tu sliku u punoj veličini. Podešavanje ove zastavice na true onemogućava ovo ponašanje:

Disable Image Redirect
Copy CopyRun External Link
1
2<script async src="https://cdn.fastcomments.com/js/embed-v2-async.min.js"></script>
3<div id="fastcomments-widget"></div>
4<script>
5window.fcConfigs = [{
6 "tenantId": "demo",
7 "disableImageRedirect": true
8}];
9</script>
10

Ako ne planirate sami da uhvatite klik na sliku (pogledajte onImageClicked), preporučujemo da se ovo kombinuje sa nekim stilizovanjem kako biste uklonili utisak da je slika klikabilna.

Isticanje novih komentara Internal Link

FastComments pruža nekoliko načina za isticanje novih komentara.

Prvo i najvažnije, podrazumevano komentari koji su pokrenuli in-app obaveštenje (odgovori, odgovori u istoj niti, ili komentari na stranici na koju ste pretplaćeni), biće automatski istaknuti sa avatarom korisnika koji blago svetli. Boja se može prilagoditi putem CSS-a koristeći is-unread klasu.

Komentari postavljeni u poslednja 24 sata imaju primenjenu 24hr klasu koja se može koristiti za stilizovanje.

Na kraju, svi novi komentari u realnom vremenu koji se pojave u korisničkoj sesiji biće istaknuti na nekoliko sekundi putem animacije. Ovo se radi putem is-live CSS klase i takođe se može prilagoditi.

Šabloni e-pošte Internal Link

Emailovi koje FastComments šalje vašim korisnicima mogu se prilagoditi. Šablon, logika, i prevodi se mogu menjati. Tekst se može prilagoditi po lokalima, a stil može biti promenjen čak i po domenu. Saznajte više o prilagođenim email šablonima ovde.

Novi live komentari na dno Internal Link

Podrazumevano, novi komentari uživo pojavljuju se na vrhu liste komentara kako se objavljuju u realnom vremenu.

Kada je ova opcija omogućena, novi komentari uživo će umesto toga biti dodati na dno liste. Ovo utiče na način na koji se komentari pojavljuju kada se objavljuju uživo dok korisnici gledaju nit komentara.

New Live Comments to Bottom
Copy CopyRun External Link
1
2<script async src="https://cdn.fastcomments.com/js/embed-v2-async.min.js"></script>
3<div id="fastcomments-widget"></div>
4<script>
5window.fcConfigs = [{
6 "tenantId": "demo",
7 "newCommentsToBottom": true
8}];
9</script>
10

Kada je ova postavka omogućena:

  • Novi komentari uživo koje objave drugi korisnici pojaviće se na dnu liste komentara
  • Korisnici će videti kako se novi komentari pojavljuju ispod postojećih komentara u realnom vremenu
  • Ovo utiče samo na ažuriranja komentara uživo - ne na početno učitavanje stranice
  • Ovo može pomoći u održavanju toka čitanja kada korisnici prate diskusiju

Imajte na umu da ova postavka utiče samo na mesto gde se novi komentari uživo postavljaju kada stignu u realnom vremenu. Ne utiče na početni redosled sortiranja kada se stranica učitava.

Omogući beskonačno skrolovanje Internal Link

Po podrazumevanoj vrednosti, FastComments widget će se vertikalno prilagoditi tako da stane sve vidljive komentare. Paginacija se postiže putem dugmeta "Prikaži sledeće" na kraju trenutne stranice, jer smo utvrdili da je to interakcija koja najviše odgovara većini korisnika.

Međutim, postoje slučajevi kada se preferira beskonačno skrolovanje. Na primer, ovu funkciju koristimo u našem proizvodu Stream Chat.

Možemo sakriti dugmad "Prikaži sledeće" i preći na beskonačno skrolovanje podešavanjem zastavice enableInfiniteScrolling na true:

Enabling Infinite Scrolling
Copy CopyRun External Link
1
2<script async src="https://cdn.fastcomments.com/js/embed-v2-async.min.js"></script>
3<div id="fastcomments-widget"></div>
4<script>
5window.fcConfigs = [{
6 "tenantId": "demo",
7 "enableInfiniteScrolling": true
8}];
9</script>
10

Ovo takođe zahteva dodavanje prilagođenog CSS-a. Dodajte prilagođeni CSS za selektor .comments da omogućite skrolovanje, na primer:

Omogućavanje beskonačnog skrolovanja
Copy CopyRun External Link
1
2.comments {
3 max-height: 500px;
4 overflow-y: auto;
5}
6

Kompletan radni primer bi bio:

Enabling Infinite Scrolling
Copy CopyRun External Link
1
2<script async src="https://cdn.fastcomments.com/js/embed-v2-async.min.js"></script>
3<div id="fastcomments-widget"></div>
4<script>
5window.fcConfigs = [{
6 "tenantId": "demo",
7 "enableInfiniteScrolling": true,
8 "customCSS": ".comments { max-height: 500px; overflow-y: auto; }"
9}];
10</script>
11

U gornjem primeru koristimo svojstvo customCSS, međutim preporučuje se da se umesto toga koristi Widget Configuration UI iz razloga performansi. Pogledajte dokumentaciju o prilagođenom CSS-u.

Prikazivanje svih komentara odjednom - onemogući paginaciju Internal Link

Da biste onemogućili paginaciju i prikazali sve komentare odjednom, postavite startingPage na -1.

Render All Comments
Copy CopyRun External Link
1
2<script async src="https://cdn.fastcomments.com/js/embed-v2-async.min.js"></script>
3<div id="fastcomments-widget"></div>
4<script>
5window.fcConfigs = [{
6 "tenantId": "demo",
7 "startingPage": -1
8}];
9</script>
10

Spreči nove komentare na najvišem nivou Internal Link

Postavljanje noNewRootComments na true će uzrokovati da widget sakrije polje za odgovore na najvišem nivou, ali i dalje dozvoljava korisnicima da odgovaraju na podkomentare. Na primer, možete ovo uslovno postaviti prilikom učitavanja stranice kako biste dozvolili samo nekim korisnicima da ostavljaju komentare najvišeg nivoa.

Prevent New Root Comments
Copy CopyRun External Link
1
2<script async src="https://cdn.fastcomments.com/js/embed-v2-async.min.js"></script>
3<div id="fastcomments-widget"></div>
4<script>
5window.fcConfigs = [{
6 "tenantId": "demo",
7 "noNewRootComments": true
8}];
9</script>
10

Maksimalna dubina odgovora Internal Link

Podrazumevano, FastComments dozvoljava neograničeno ugnježđavanje odgovora, stvarajući strukturu teme gde korisnici mogu beskonačno odgovarati na odgovore.

Opcija maxReplyDepth vam omogućava da ograničite koliko duboko mogu ići nitovi odgovora. Kada se dostigne maksimalna dubina, korisnici više neće videti dugme za odgovor na komentarima na tom nivou.

Limiting Reply Depth to 2 Levels
Copy CopyRun External Link
1
2<script async src="https://cdn.fastcomments.com/js/embed-v2-async.min.js"></script>
3<div id="fastcomments-widget"></div>
4<script>
5window.fcConfigs = [{
6 "tenantId": "demo",
7 "maxReplyDepth": 2
8}];
9</script>
10

Kada je maxReplyDepth postavljen na 2:

  • Korisnici mogu komentarisati na najvišem nivou (dubina 0)
  • Korisnici mogu odgovarati na komentare na najvišem nivou (dubina 1)
  • Korisnici mogu odgovarati na te odgovore (dubina 2)
  • Dalji odgovori nisu dozvoljeni iznad dubine 2

Podešavanje na 1 bi dozvolilo samo odgovore na komentare sa najvišeg nivoa, stvarajući pliću strukturu diskusije.

Postavljanje maxReplyDepth na 0 bi onemogućilo sve odgovore, dozvoljavajući samo komentare na najvišem nivou. Ako nije navedeno, odgovori se mogu ugnježđavati bez ograničenja.

Upozori pre napuštanja sa neslanim komentarom Internal Link

Podrazumevano, ako korisnik napiše komentar, a zatim osveži stranicu, zatvori tab ili ode negde drugde pre slanja, skica se tiho gubi.

Postavljanje warnOnUnsavedComment na true čini da pregledač pita korisnika da potvrdi pre napuštanja stranice dok bilo koje polje za komentar ili uređivanje u toku još uvek sadrži tekst. Kada se komentar pošalje, tekst se briše, pa se ne prikazuje nijedan prompt.

Warn On Unsaved Comment
Copy CopyRun External Link
1
2<script async src="https://cdn.fastcomments.com/js/embed-v2-async.min.js"></script>
3<div id="fastcomments-widget"></div>
4<script>
5window.fcConfigs = [{
6 "tenantId": "demo",
7 "warnOnUnsavedComment": true
8}];
9</script>
10

Prompt koristi sopstveni dijalog pregledača. Moderni pregledači prikazuju sopstveni tekst i ignorišu prilagođeni tekst, tako da se poruka ne može prilagoditi.

Ova opcija učitava mali dodatak po potrebi, tako da ne dodaje ništa widgetu za sajtove koji je ne omoguće.

Pregled Single Sign On (SSO) Internal Link

SSO, ili single-sign-on, je skup konvencija koje vam ili vašim korisnicima omogućavaju da koristite FastComments bez potrebe za kreiranjem novog naloga.

Pod pretpostavkom da ne dozvoljavate anonimno komentiranje, nalog je potreban za komentiranje putem FastComments. Proces registracije činimo vrlo jednostavnim - korisnik samo ostavlja svoj email prilikom komentiranja. Ipak, razumemo da i to predstavlja dodatnu prepreku koju neke sajtove žele da izbegnu.

Tu prepreku možemo smanjiti tako da postoji samo jedan tok prijave za ceo vaš sajt.

Kako da ga dobijem?

Svi tipovi naloga trenutno imaju pristup SSO-u. Međutim, maksimalan broj SSO korisnika varira u zavisnosti od vašeg paketa. Kao i kod drugih funkcionalnosti, Pro planovi i viši pružaju direktnu razvojnu podršku.

Uporedimo opcije, a zatim uđimo u detalje svake od njih.

Migracija korisnika i komentara

Prilikom migracije sa platforme koja koristi SSO, poput Disqus-a, već ćete imati korisnike i njihove komentare.

Komentari se uvoze kao deo vaše migracije, bilo putem API-ja, našeg Import UI-ja, ili korisničke podrške. Import UI je preferiran ako podržava platformu sa koje se migrirate, jer uključuje rukovanje greškama, ekstrakciju i otpremanje avatara i medija, kao i sistem za praćenje batch poslova.

Sam korisnici se dodaju automatski prilikom prvog pregledanja niti komentara. Alternativno, mogu se unapred dodati putem API-ja, ali taj posao nema mnogo prednosti.

Ako se komentari uvezu, a SSO korisnici nisu ručno dodati putem API-ja, komentari će automatski biti migrirani na nalog korisnika prilikom njegovog prvog kreiranja kada pregleda bilo koju nit komentara. Tada će moći da upravljaju, uređuju i brišu komentare koje su prvobitno napisali.

Automatska migracija se vrši putem email-a ili korisničkog imena. Neke platforme ne pružaju email adrese pri eksportu, poput Disqus-a, pa u tom slučaju koristimo korisničko ime.

  • Sve dok prosledite odgovarajuće korisničko ime, i email u SSO payload-u, dodaćemo email pojedinačnim objektima komentara kako bi notifikacije i pominjanja radili.

Ako želite da uvezete komentare i korisnike odjednom, sarađujte sa podrškom da se komentari migriraju na odgovarajuće naloge korisnika nakon što se korisnici uvezu putem API-ja.

Dakle, da rezimiramo najlakši put za migraciju:

  1. Uvezite komentare.
    1. Avatari i ostali mediji se migriraju automatski ako koristite Import UI u Manage Data -> Imports.
  2. Podesite Secure ili Simple SSO.
  3. Dozvolite da migracija obavi automatski po korisniku kada se prvi put prijavi.
    1. Ovo obično dodaje manje od sekunde vremenu učitavanja stranice ako korisnik ima manje od 50k komentara.

WordPress korisnici

Ako koristite naš WordPress plugin, ne morate pisati kod! Jednostavno idite na Admin stranicu plugina, kliknite SSO Settings, a zatim Enable.

Ovo će vas odvesti na čarobnjak sa jednim klikom dugmetom koji će kreirati vaš API ključ, poslati ga na vašu WordPress instalaciju i uključiti SSO. Ovo smo konsolidovali u jedan klik dugmeta za vas.

Imajte na umu da ako instalirate plugin prvi put, moraćete da završite proces podešavanja pre nego što vidite admin stranicu sa dugmetom SSO Settings.

WordPress SSO - Moderatori

Imajte na umu da trenutno, kako bi se "Moderator" bedž prikazao pored vaših moderatora kada komentiraju putem FastComments WordPress plugina, oni takođe moraju biti dodati kao Moderator u FastComments kontrolnoj tabli, i imati verifikovan email.

Prilagođene integracije

Za prilagođene integracije, postoje dve opcije.

Opcija jedan - Secure SSO

Sa Secure SSO-om, FastComments zna da korisnik koji komentariše, glasa i čita komentare je stvaran korisnik na vašem sajtu.

Sve dok kreirate validan payload, korisnik će uvek imati besprekorno iskustvo komentiranja.

Sa Secure SSO-om, SSO payload se kreira server-side koristeći HMAC autentikaciju, a zatim se prosleđuje vidžetu na klijentu.

Sa Secure SSO-om, nalog korisnika je potpuno odvojen od ostatka FastComments korisničke baze. To znači da ako imamo dva partnera, Kompanija A i Kompanija B, svaka može imati SSO korisnika sa korisničkim imenom "Bob".

Zahtevi

  • Osnovno znanje o backend razvoju.
  • Osnovno znanje o radu sa tajnim API ključevima.
  • Osnovno znanje o API razvoju ili server-side renderovanju.

Prednosti

  • Bezbedno.
  • Besprekorno iskustvo komentiranja.

Nedostaci

  • Zahteva backend razvoj.

Ažuriranje podataka korisnika

Sa Secure SSO-om, svaki put kada prosledite sso user payload, ažuriraćemo njihovog korisnika sa najnovijim informacijama. Na primer, ako korisnik ima korisničko ime X, a vi prosledite Y u SSO payload-u, njihovo korisničko ime će postati Y.

Ako želite da uklonite vrednosti ovim pristupom, postavite ih na null (ne undefined).

Secure SSO API

Takođe pružamo API za interakciju sa SSO korisnicima. Pogledajte dokumentaciju.

Imajte na umu da prilikom korišćenja Secure SSO-a, korisnici se automatski kreiraju u pozadini pri učitavanju stranice. Ne morate masovno uvoziti svoje korisnike.

Opcija dva - Simple SSO

Alternativa Secure SSO-u je jednostavno prosleđivanje informacija o korisniku vidžetu za komentiranje.

Prosleđivanje email-a sa Simple SSO-om nije obavezno, međutim bez toga njihovi komentari će se prikazivati kao "Unverified".

Napomena! Od početka 2022. korisnička imena sa Simple SSO-om ne moraju biti jedinstvena na celom FastComments.com.

Idealno, Simple SSO bi trebalo birati samo prilikom razvoja na platformi koja ne pruža backend pristup.

Zahtevi

  • Osnovno znanje o client-side razvoju.
  • Potrebno je znati barem email korisnika.

Prednosti

  • Jednostavno.
  • Sva aktivnost se i dalje verifikuje.
  • Korisnik nikada ne unosi svoje korisničko ime ili email.

Nedostaci

  • Manje bezbedno od Secure SSO-a jer client-side payload može biti falsifikovan da postane bilo koji korisnik.

Simple SSO API

Korisnici automatski kreirani putem Simple SSO toka čuvaju se kao SSOUser objekti. Mogu se pristupiti i upravljati njima putem SSOUser API-ja. Pogledajte dokumentaciju.

Prilagođene integracije – migracija sa Disqus SSO Internal Link

Najveće razlike između Disqus i FastComments Secure SSO su u tome što Disqus koristi SHA1 za enkripciju, dok mi koristimo SHA256.

To znači da je migracija sa Disqus laka - promenite algoritam heširanja sa SHA1 na SHA256 i ažurirajte nazive svojstava koji se prosleđuju UI.

Prilagođene integracije – migracija sa Commento SSO Internal Link

Commento koristi drastično drugačiji SSO pristup - oni zahtevaju da imate endpoint koji oni pozivaju da bi autentifikovali korisnika. FastComments je suprotno - jednostavno enkodirajte i hešujte informacije o korisniku koristeći vaš tajni ključ i prosledite ih.

Povratni pozivi Internal Link

Sve biblioteke za komentarski widget (trenutno Angular, React, Vue) podržavaju povratne pozive.

Povratni pozivi se navode u konfiguracionom objektu, sa istim potpisom za svaku biblioteku.

Podržani callback-ovi su:

  • onInit
  • onAuthenticationChange
  • onRender
  • commentCountUpdated
  • onReplySuccess
  • onVoteSuccess
  • onImageClicked
  • onOpenProfile
  • onCommentSubmitStart
  • onCommentsRendered

Tačne potpise možete pronaći u TypeScript definicijama.

Evo primera sa svim callback-ovima:

Primeri povratnih poziva
Copy CopyRun External Link
1
2<script async src="https://cdn.fastcomments.com/js/embed-v2-async.min.js"></script>
3<div id="fastcomments-widget"></div>
4<script>
5 window.fcConfigs = [{
6 target: '#fastcomments-widget',
7 tenantId: 'demo',
8 onInit: function () {
9 console.log('Library started to fetch comments!');
10 },
11 onAuthenticationChange: function (eventName, userObj) {
12 console.log('User authenticated!', eventName, userObj);
13 },
14 onRender: function () {
15 console.log('Render event happened!');
16 },
17 commentCountUpdated: function (newCount) {
18 console.log('New comment count:', newCount);
19 },
20 onReplySuccess: function (comment) {
21 console.log('New comment saved!', comment);
22 },
23 onVoteSuccess: function (comment, voteId, direction, status) {
24 console.log('New vote saved!', comment, voteId, direction, status);
25 },
26 onImageClicked: function (src) {
27 console.log('Image clicked!', src);
28 },
29 onOpenProfile: function (userId) {
30 console.log('User tried to open profile', userId);
31 // return true; // vrati true da spreči podrazumevano ponašanje (otvaranje fastcomments.com korisničkog profila).
32 },
33 onCommentSubmitStart: function(comment, continueSubmitFn, cancelFn) {
34 console.log('Trying to submit comment', comment);
35 setTimeout(function() { // emulira asinhrono ponašanje (pozivanje API-ja itd).
36 if(confirm('Should submit?')) {
37 continueSubmitFn();
38 } else {
39 cancelFn('Some optional error message');
40 }
41 }, 1000);
42 },
43 onCommentsRendered: function(comments) {
44 // comments je sortirana prema podrazumevanom sortiranju na stranici koje može biti Najrelevantnije (npr: najviše glasova, itd), ili Najnovije prvo
45 const topCommentInList = comments[0];
46 console.log('First Comment Rendered:', topCommentInList.avatarSrc, topCommentInList.commenterName, topCommentInList.commentHTML);
47 }
48 }];
49</script>
50

Naslovi stranica Internal Link

Trenutni naslov stranice je povezan sa navedenim urlId i sačuvan za upotrebu u alatima za moderaciju.

Podrazumevano se preuzima iz document.title.

Ako želite, možete navesti sopstveni naslov stranice na sledeći način:

Specifying The Page Title
Copy CopyRun External Link
1
2<script async src="https://cdn.fastcomments.com/js/embed-v2-async.min.js"></script>
3<div id="fastcomments-widget"></div>
4<script>
5window.fcConfigs = [{
6 "tenantId": "demo",
7 "pageTitle": "Article 42"
8}];
9</script>
10

Broj komentara i brojanje svih ugnježdenih odgovora Internal Link

Broj komentara koji se prikazuje na vrhu komentarskog vidžeta može da prikazuje ili sve "top-level" komentare, što znači odgovore koji su direktno odgovori na stranicu ili članak, ili može biti broj svih ugnježdenih komentara.

Po defaultu, ovo je true - to je broj potonjeg - svi komentari. U starijim verzijama komentarskog vidžeta podrazumevana vrednost je false.

Možemo promeniti ponašanje, tako da bude broj svih ugnježdenih komentara postavljanjem zastavice countAll na true.

Counting All Comments
Copy CopyRun External Link
1
2<script async src="https://cdn.fastcomments.com/js/embed-v2-async.min.js"></script>
3<div id="fastcomments-widget"></div>
4<script>
5window.fcConfigs = [{
6 "tenantId": "demo",
7 "countAll": true
8}];
9</script>
10

Ako želimo da broj odražava samo komentare najvišeg nivoa, postavimo zastavicu na false.

Counting Top Level Comments
Copy CopyRun External Link
1
2<script async src="https://cdn.fastcomments.com/js/embed-v2-async.min.js"></script>
3<div id="fastcomments-widget"></div>
4<script>
5window.fcConfigs = [{
6 "tenantId": "demo",
7 "countAll": false
8}];
9</script>
10

Ovo trenutno ne može da se prilagodi bez izmena koda.

Pominjanje ID-ova grupa Internal Link

Lista ID-jeva koja se koristi za automatsko dopunjavanje @mentions. Korisno kada želite sprečiti označavanje korisnika koji nemaju zajedničke grupe.

Kada je naveden, u automatskom dopunjavanju će, nakon kucanja karaktera @, biti prikazani samo korisnici iz drugih grupa.

Limit Groups for Mentions
Copy CopyRun External Link
1
2<script async src="https://cdn.fastcomments.com/js/embed-v2-async.min.js"></script>
3<div id="fastcomments-widget"></div>
4<script>
5window.fcConfigs = [{
6 "tenantId": "demo",
7 "mentionGroupIds": [
8 "yxZAhjzda",
9 "QT19nXbqB"
10 ]
11}];
12</script>
13