FastComments.com

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.


Prebacivanje 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ćavanje preusmeravanja slika 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 uživo komentari na dnu 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ćavanje beskonačnog skrolovanja 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.

Prikaz 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čavanje novih komentara na prvom 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.

Pregled jedinstvene prijave (SSO) Internal Link

SSO, odnosno single-sign-on, je skup konvencija koji omogućava vama ili vašim korisnicima da koriste FastComments bez potrebe za kreiranjem još jednog naloga.

Pod pretpostavkom da ne dozvoljavate anonimno komentarisanje, nalog je potreban da bi se komentarisalo sa FastComments. Mi ovaj proces prijave činimo vrlo jednostavnim — korisnik samo ostavi svoj email kada komentariše. Međutim, razumemo da je čak i to dodatna prepreka koju neke stranice žele da izbegnu.

Možemo smanjiti tu prepreku tako što ćemo imati samo jedan tok prijave za ceo vaš sajt.

How do I get it?

Svi tipovi naloga trenutno dobijaju pristup SSO. Međutim, maksimalan broj SSO korisnika varira u zavisnosti od vašeg paketa. Kao i kod drugih funkcija, Pro planovi i viši obezbeđuju direktnu razvojnu podršku.

Uporedićemo opcije, a zatim ćemo ući u detalje svake.

User and Comment Migrations

Kada migrirate sa platforme koja ima SSO, poput Disqus, već ćete imati korisnike i njihove komentare.

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

Sami korisnici se dodaju automatski prilikom prvog pregleda niti komentara. Alternativno, mogu biti unapred dodati preko API-ja, ali taj rad nema mnogo prednosti.

Ako su komentari importovani, a SSO korisnici nisu ručno dodatii preko API-ja, komentari će biti automatski dodeljeni korisničkom nalogu prvi put kada se nalog kreira kada korisnik pogleda bilo koju nit komentara. Oni će tada moći da upravljaju, uređuju i brišu komentare koje su prvobitno napisali.

Automatska migracija se radi putem email-a ili korisničkog imena. Neke platforme ne obezbeđuju emailove pri exportu, kao Disqus, pa se u tom slučaju oslanjamo na korisničko ime.

  • Sve dok prosledite odgovarajuće korisničko ime i email u SSO payload-u, dodaćemo email u pojedinačne objekte komentara tako da obaveštenja i pominjanja funkcionišu.

Ako želite da importujete komentare i korisnike odjednom, radite sa podrškom kako biste preneli komentare na odgovarajuće korisničke naloge nakon što su korisnici importovani preko API-ja.

Dakle, da sumiramo najlakši put za migraciju:

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

WordPress Users

Ako koristite naš WordPress dodatak, nema potrebe za pisanjem koda! Jednostavno idite na administratorsku stranicu dodatka, kliknite SSO Settings, i zatim Enable.

Ovo će vas odvesti do čarobnjaka sa jednim klikom koji će kreirati vaš API ključ, poslati ga na vašu WordPress instalaciju i uključiti SSO. Konsolidovali smo ovo u jedan klik za vas.

Obratite pažnju da ako instalirate dodatak po prvi put moraćete da završite proces podešavanja pre nego što vidite administratorsku stranicu sa dugmetom SSO Settings.

WordPress SSO - Moderators

Obratite pažnju da trenutno, da bi se bedž "Moderator" prikazao pored vaših moderatora kada komentarišu koristeći FastComments WordPress dodatak, oni takođe moraju biti dodati kao Moderator u FastComments kontrolnoj tabli, i imati svoj email verifikovan.

Custom Integrations

Za prilagođene integracije postoje dve opcije.

Option One - Secure SSO

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

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

Sa Secure SSO, SSO payload se kreira server-side koristeći HMAC autentifikaciju i zatim se prosleđuje widgetu na client-u.

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

Requirements

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

Pros

  • Sigurno.
  • Besprekorno iskustvo komentarisanja.

Cons

  • Zahteva razvoj na backend-u.

Updating User Data

Sa Secure SSO, svaki put kada prosledite sso user payload, mi ćemo ažurirati njihov nalog najnovijim informacijama. Na primer, ako korisnik ima korisničko ime X, i vi prosledite Y u SSO payload-u, njihovo korisničko ime će postati Y.

Ako želite da uklonite vrednosti koristeći ovaj pristup, postavite ih na null (ne undefined).

Secure SSO API

Takođe obezbeđujemo API za interakciju sa SSO korisnicima. Pogledajte the docs.

Napomena da kada koristite Secure SSO, korisnici se automatski kreiraju u pozadini prilikom učitavanja stranice. Ne morate masovno importovati svoje korisnike.

Option Two - Simple SSO

Alternativa Secure SSO je jednostavno prosleđivanje informacija o korisniku widgetu za komentarisanje.

Nije obavezno proslediti email sa Simple SSO, međutim bez njega njihovi komentari će se prikazivati kao "Unverified".

Napomena! Od početka 2022. korisnička imena sa Simple SSO ne moraju biti jedinstvena preko celog FastComments.com.

Idealno, Simple SSO bi trebalo da se bira samo kada razvijate na platformi koja ne obezbeđuje pristup backend-u.

Requirements

  • Osnovno znanje o client-side razvoju.
  • Morate bar poznavati email korisnika.

Pros

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

Cons

  • Manje sigurno od Secure SSO jer se client-side payload može falsifikovati da postane bilo koji korisnik.

Simple SSO API

Korisnici koji su automatski kreirani putem Simple SSO toka sačuvani su kao SSOUser objekti. Može im se pristupiti i upravljati preko SSOUser API-ja. Pogledajte the docs.

Prilagođene integracije - jednostavna jedinstvena prijava (SSO) Internal Link

Sa Simple SSO-om, možemo obezbediti widgetu za komentare informacije o korisniku tako da ne moraju da unose svoje korisničko ime ili email da bi komentarisali.

Možemo konfigurisati Simple SSO na sledeći način:

Simple SSO
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 "simpleSSO": {
8 "username": "Bob",
9 "email": "bob@example.com",
10 "avatar": "https://example.com/bob.png",
11 "websiteUrl": "https://example.com/profiles/bob",
12 "displayName": "Bob's Name",
13 "displayLabel": "VIP User",
14 "loginURL": "https://example.com/login",
15 "logoutURL": "https://example.com/logout",
16 "badgeConfig": {
17 "badgeIds": [
18 "badge-id-1",
19 "badge-id-2"
20 ],
21 "override": false
22 }
23 }
24}];
25</script>
26

Korisnik će biti prijavljen, i biće kreiran SSO User u pozadini. Korisnik će imati createdFromSimpleSSO postavljeno na true ako je dohvaćen iz API-ja.

Notes:

  • Email je jedinstveni identifikator za Simple SSO.
  • Navođenje email adrese uz Simple SSO nije obavezno, međutim po defaultu njihovi komentari će se prikazivati kao "Unverified". Ako nije obezbeđen email, korisnik ne može biti u potpunosti autentifikovan.
  • NOVO Od januara 2022: Korisnička imena ne moraju biti jedinstvena na celom fastcomments.com
  • Simple SSO može automatski da kreira i ažurira SSO korisnike, ako je email obezbeđen, i ako korisnik nije originalno kreiran preko Secure SSO.
  • Možete odrediti bedževe za korisnika pomoću svojstva badgeConfig. Niz badgeIds sadrži ID-jeve bedževa koji će biti povezani sa korisnikom. Ako je override postavljen na true, zamenit će sve postojeće bedževe prikazane na komentarima; ako je false, dodaće se postojećim bedževima.

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 widget za komentare (trenutno Angular, React, Vue) podržavaju callback-ove.

Callback-ovi 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 callback-ova
Copy CopyRun External Link
1
2<script src="https://cdn.fastcomments.com/js/embed-v2.min.js"></script>
3<div id="fastcomments-widget"></div>
4<script>
5 window.FastCommentsUI(document.getElementById('fastcomments-widget'), {
6 tenantId: 'demo',
7 onInit: function () {
8 console.log('Library started to fetch comments!');
9 },
10 onAuthenticationChange: function (eventName, userObj) {
11 console.log('User authenticated!', eventName, userObj);
12 },
13 onRender: function () {
14 console.log('Render event happened!');
15 },
16 commentCountUpdated: function (newCount) {
17 console.log('New comment count:', newCount);
18 },
19 onReplySuccess: function (comment) {
20 console.log('New comment saved!', comment);
21 },
22 onVoteSuccess: function (comment, voteId, direction, status) {
23 console.log('New vote saved!', comment, voteId, direction, status);
24 },
25 onImageClicked: function (src) {
26 console.log('Image clicked!', src);
27 },
28 onOpenProfile: function (userId) {
29 console.log('User tried to open profile', userId);
30 // return true; // vrati true da sprečite podrazumevano ponašanje (otvaranje fastcomments.com profila korisnika).
31 },
32 onCommentSubmitStart: function(comment, continueSubmitFn, cancelFn) {
33 console.log('Trying to submit comment', comment);
34 setTimeout(function() { // emuliranje asinhronog ponašanja (pozivanje API-ja itd).
35 if(confirm('Should submit?')) {
36 continueSubmitFn();
37 } else {
38 cancelFn('Some optional error message');
39 }
40 }, 1000);
41 },
42 onCommentsRendered: function(comments) {
43 // comments su sortirani prema podrazumevanom poretku na stranici koji može biti 'Most Relevant' (npr: najviše upvotovani, itd), ili 'Newest First'
44 const topCommentInList = comments[0];
45 console.log('First Comment Rendered:', topCommentInList.avatarSrc, topCommentInList.commenterName, topCommentInList.commentHTML);
46 }
47 });
48</script>
49

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