FastComments.com

Prilagodbe i konfiguracija

Kontekst

Ovdje ćete pronaći detaljnu dokumentaciju o svakoj značajci i postavci koju widget za komentare podržava.

Ova dokumentacija će pokriti osnovne koncepte i detaljno obraditi svako područje funkcionalnosti, s uputama korak po korak i uobičajenim zamkama.

Bit će prikazani primjeri koda, s istaknutim odgovarajućim linijama. Snimke zaslona stranica za konfiguraciju bit će pružene gdje je primjenjivo.

Primjeri koda koristit će našu vanilla JavaScript knjižnicu, no opcije konfiguracije koriste točno iste nazive za sve verzije widgeta za komentare (React, Vue itd.).

Većina konfiguracija i značajki opisanih u ovom vodiču ne zahtijeva pisanje koda.

Prikaz istih komentara na različitim stranicama Internal Link

Budući da parametar urlId omogućuje da definiramo kojoj stranici, odnosno id‑u, su komentari pridruženi, možemo jednostavno postaviti urlId na istu vrijednost 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 se prilagodi, a font koji koriste naši widgeti nije iznimka.

Prema zadanim postavkama, FastComments koristi system font stack kako bi izgledao što bolje na širokom rasponu uređaja.

Za definiranje vlastitih fontova, pogledajte Dokumentacija o prilagođenom CSS-u.

Tamo ćete pronaći način za definiranje prilagođenog CSS-a, što će vam omogućiti definiranje željenih fontova.

Kako definirati font

Da biste nadjačali font, preporučujemo da svoj CSS definirate koristeći selektore .fast-comments, textarea. Na primjer:

Primjer prilagođenog vanjskog 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 tamnim pozadinama (tamni način rada) Internal Link

Po zadanim postavkama, FastComments widget za komentare automatski će otkriti tamni način rada na većini stranica.

Kad se otkrije tamni način rada, FastComments će prebaciti crni tekst na bijelim pozadinama u bijeli tekst na crnoj pozadini. Slike će se također promijeniti.

Prilikom učitavanja stranice, widget će pokušati odrediti koliko je pozadina stranice tamna iza widgeta za komentare. To znači da stranica može imati bijelu pozadinu, ali ako postavite widget za komentare unutar spremnika s crnom pozadinom, tamni način rada bi trebao i dalje biti automatski 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 način rada kada želite. Da biste ga prisilno omogućili, postavite hasDarkBackground flag na true kako slijedi:

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

Prilikom slanja obavijesnih e‑poruka ili prikazivanja komentara u korisničkim sučeljima kao što je stranica za moderaciju, korisno je moći povezati komentar sa stranicom na kojoj se nalazi.

Ako URL ID nije uvijek stvarni ID, moramo URL pohraniti negdje drugdje. Za to služi svojstvo "url", definirano na sljedeć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 s identifikatorom, npr. člankom, a zatim povezivanje natrag na određenu stranicu, na primjer:

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. Prema zadanim postavkama, koji god je trenutni URL stranice, taj se URL pohranjuje uz komentar.

Određivanje koju stranicu prikazati Internal Link

Prilikom dohvaćanja i prikazivanja komentara, widget za komentare treba znati s koje stranice početi. Po zadanim postavkama počinje s prvom stranicom, prikazujući samo tu stranicu.

Ako želite, točnu stranicu koja će se prikazati možete proslijediti widgetu za komentare putem postavke 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 prethodni primjer prikazuje drugu stranicu.

Prebacivanje niti komentara bez ponovnog učitavanja stranice Internal Link

Obradili smo kako je urlId ID stranice ili članka uz koji su komentari vezani.

Također, za podsjetnik, ako nije definirano, urlId će se zadano postaviti na URL trenutne stranice.

A što je s SPA-ovima, odnosno Single-Page Applicationima, gdje se stranica ili sadržaj kojem su komentari vezani mijenja dinamički bez ponovnog učitavanja stranice?

Angular, React, Vue, itd

S našim bibliotekama poput Angulara i Reacta, jednostavnim ažuriranjem svojstva urlId koje se prosljeđuje widgetu, widget za komentare će se osvježiti. Ovo možete vidjeti u praksi za React aplikaciju, na primjer, ovdje.

VanillaJS

Ako koristite VanillaJS biblioteku, stvar je nešto složenija jer ne postoji okvir poput Angulara ili Reacta koji bi rukovao vezivanjem podataka ili propagacijom stanja.

Kada instancirate VanillaJS widget, on vraća neke funkcije koje se mogu pozvati za njegovo ažuriranje.

Evo funkcionalnog primjera u kojem mijenjamo hash stranice i ažuriramo widget za komentare:

Primjer promjene 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đer ažuriramo url, kako bi obavijesti mogle voditi natrag 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 preusmjeravanja slika Internal Link

Po zadanim postavkama FastComments dopušta korisnicima da učitavaju slike. Kad korisnik klikne tu sliku, FastComments će, po zadanim postavkama, otvoriti novu karticu kako bi prikazao sliku u punoj veličini. Postavljanje ove zastavice na true onemogućuje 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 uhvatiti klik na sliku (vidi onImageClicked), preporučujemo da se ovo kombinira s nekim stilovima kako bi se uklonio dojam da se slika može kliknuti.


Isticanje novih komentara Internal Link

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

Prije svega, prema zadanim postavkama komentari koji su pokrenuli obavijest unutar aplikacije (odgovori, odgovori u istoj niti, ili komentari na stranici na koju ste pretplaćeni), automatski će biti istaknuti tako da avatar korisnika blago svijetli. Boju je moguće prilagoditi putem CSS-a koristeći klasu is-unread.

Komentari objavljeni u posljednja 24 sata imaju primijenjenu klasu 24hr koja se može koristiti za stiliziranje.

Na kraju, svi novi komentari uživo koji se pojave u korisničkoj sesiji bit će istaknuti nekoliko sekundi putem animacije. To se radi pomoću CSS klase is-live i također se može prilagoditi.

Predlošci e-pošte Internal Link

E-poruke koje FastComments šalje vašim kupcima mogu se prilagoditi. Predložak, logika i prijevodi svi se mogu promijeniti. Tekst se može prilagoditi po lokalizaciji, a stil se čak može mijenjati po domeni. Saznajte više o prilagođenim predlošcima e-pošte ovdje.

Novi komentari uživo na dnu Internal Link


Po zadanim postavkama, novi komentari uživo pojavljuju se na vrhu popisa komentara kako se objavljuju u stvarnom vremenu.

Kada je ova opcija omogućena, novi komentari uživo bit će umjesto toga dodavani na dno liste. Ovo utječe na način na koji se komentari prikazuju kada se objavljuju uživo dok korisnici pregledavaju 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 pojavit će se na dnu liste komentara
  • Korisnici će u stvarnom vremenu vidjeti nove komentare koji se pojavljuju ispod postojećih komentara
  • Ovo utječe samo na ažuriranja komentara uživo - ne i na inicijalno učitavanje stranice
  • To može pomoći u održavanju toka čitanja kada korisnici prate raspravu

Imajte na umu da ova postavka utječe samo na mjesto na koje se novi komentari uživo smještaju kada stignu u stvarnom vremenu. Ne utječe na početni redoslijed sortiranja pri učitavanju stranice.

Omogućavanje beskonačnog pomicanja Internal Link

Po defaultu, FastComments widget će se vertikalno promijeniti veličinu kako bi odgovarao svim vidljivim komentarima. Paginacija se ostvaruje putem gumba "View Next" na kraju trenutne stranice, budući da smo ustanovili da je to interakcija koja većini korisnika najviše odgovara.

Međutim, postoje slučajevi u kojima je poželjno beskonačno pomicanje. Na primjer, ovu značajku koristimo u našem Stream Chat proizvodu.

Možemo sakriti gumbe "View Next" i prebaciti se na beskonačno pomicanje postavljanjem 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

To također zahtijeva dodavanje prilagođenog CSS-a. Dodajte prilagođeni CSS za selektor .comments kako biste omogućili pomicanje, na primjer:

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

Potpuni radni primjer bio bi:

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 primjeru koristimo svojstvo customCSS, međutim preporučuje se korištenje Widget Configuration UI umjesto toga iz razloga izvedbe. Pogledajte dokumentaciju o prilagođenom CSS-u.


Prikaz svih komentara odjednom - onemogućavanje straničenja 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

Sprječavanje novih komentara na najvišoj razini Internal Link


Postavljanje noNewRootComments na true uzrokovat će da widget sakrije područje za odgovaranje na najvišoj razini, ali će i dalje dopustiti korisnicima da odgovaraju na podkomentare. Možete, na primjer, postaviti ovo uvjetno pri učitavanju stranice kako biste samo nekim korisnicima omogućili ostavljanje komentara na najvišoj razini.

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

Prema zadanim postavkama, FastComments dopušta neograničeno ugnježđivanje odgovora, stvarajući strukturu niti u kojoj korisnici mogu neograničeno odgovarati jedni na druge.

Opcija maxReplyDepth omogućuje vam ograničavanje koliko duboko niti odgovora mogu ići. Kada se postigne maksimalna dubina, korisnici više neće vidjeti gumb za odgovor na komentarima na toj razini.

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

With maxReplyDepth set to 2:

  • Korisnici mogu komentirati na najvišoj razini (dubina 0)
  • Korisnici mogu odgovarati na komentare na najvišoj razini (dubina 1)
  • Korisnici mogu odgovarati na te odgovore (dubina 2)
  • Nisu dopušteni daljnji odgovori iznad dubine 2

Postavljanje na 1 dopuštalo bi samo odgovore na komentare na najvišoj razini, stvarajući plitkiju strukturu rasprave.

Postavljanje maxReplyDepth na 0 onemogućilo bi sve odgovore, dopuštajući samo komentare na najvišoj razini. Ako nije navedeno, odgovori se mogu ugnježđivati bez ograničenja.

Pregled jedinstvene prijave (SSO) Internal Link

SSO, odnosno prijava jednom (single-sign-on), je skup konvencija koje omogućuju vama ili vašim korisnicima korištenje FastComments bez potrebe za stvaranjem dodatnog računa.

Pod pretpostavkom da ne dopuštate anonimno komentiranje, račun je potreban za komentiranje putem FastComments. Pojednostavljujemo proces prijave — korisnik jednostavno ostavi svoj email kad komentira. Međutim, razumijemo da i to može predstavljati dodatnu prepreku koju neki sajtovi žele izbjeći.

Tu trenutačno možemo smanjiti tu zapreku tako da postoji samo jedan tok prijave za cijeli vaš sajt.

Kako dobijem pristup?

Sve vrste računa trenutno dobivaju pristup SSO-u. Međutim, maksimalan broj SSO korisnika razlikovat će se ovisno o vašem paketu. Kao i kod drugih značajki, Pro planovi i viši nude izravnu razvojnu podršku.

Usporedimo opcije, a zatim ćemo ući u detalje svake od njih.

Migracije korisnika i komentara

Prilikom migracije s platforme koja koristi SSO, kao što je Disqus, već ćete imati korisnike i njihove komentare.

Komentari se uvoze kao dio vaše migracije, bilo putem API-ja, našeg Import UI-a ili korisničke podrške. Import UI je poželjan ako podržava platformu s koje migrirate, jer uključuje obradu pogrešaka, izdvajanje i učitavanje avatara i medija te sustav za praćenje batch poslova.

Korisnici se dodaju automatski pri prvom otvaranju niti komentara. Alternativno, mogu se prethodno dodati putem API-ja, ali taj postupak nema mnogo prednosti.

Ako su komentari uvezeni, a SSO korisnici nisu ručno dodani putem API-ja, komentari će se automatski premjestiti na račun korisnika prvi put kada se on kreira pri pregledavanju bilo koje niti komentara. Tada će moći uređivati i brisati komentare koje su izvorno napisali.

Automatska migracija vrši se putem emaila ili username-a. Neke platforme ne daju emailove pri eksportu, poput Disqus-a, pa u tom slučaju koristimo username.

  • Sve dok pošaljete odgovarajući username i email u SSO payloadu, mi ćemo dodati email na pojedinačne objekte komentara kako bi obavijesti i spominjanja radili.

Ako želite uvesti komentare i korisnike odjednom, surađujte s podrškom kako bi komentari bili migrirani na odgovarajuće korisničke račune nakon što su korisnici uvezeni putem API-ja.

Dakle, za sažetak, najlakši put za migraciju je:

  1. Uvezite komentare.
    1. Avatari i drugi mediji se migriraju automatski ako koristite Import UI u Manage Data -> Imports.
  2. Postavite Secure ili Simple SSO.
  3. Dopustite da migracija nastupi po korisniku automatski kad se prvi put prijave.
    1. To obično dodaje manje od sekunde na vrijeme učitavanja stranice ako korisnik ima manje od 50k komentara.

Korisnici WordPress-a

Ako koristite naš WordPress dodatak, nema potrebe pisati kod! Jednostavno idite na administratorsku stranicu dodatka, kliknite SSO Settings, a zatim Enable.

To će vas odvesti na čarobnjak s jednom tipkom koji će kreirati vaš API ključ, poslati ga na vašu WordPress instalaciju i uključiti SSO. Ovo smo objedili u jedan klik za vas.

Imajte na umu da ako instalirate dodatak prvi put, morat ćete dovršiti proces postavljanja prije nego što vidite administratorsku stranicu s gumbom SSO Settings.

WordPress SSO - Moderatori

Imajte na umu da se trenutno za prikaz značke "Moderator" pored vaših moderatora kada komentiraju putem FastComments WordPress dodatka, moraju također dodati kao Moderator u FastComments nadzornoj ploči i imati verificiran email.

Prilagođene integracije

Za prilagođene integracije postoje dvije opcije.

Opcija jedna - Secure SSO

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

Sve dok kreirate valjan payload, korisnik će uvijek imati besprijekorno iskustvo komentiranja.

Sa Secure SSO-om, SSO payload se kreira server-side koristeći HMAC authentication i zatim se prosljeđuje widgetu na client strani.

Sa Secure SSO-om, korisnički račun 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 s username-om "Bob".

Zahtjevi

  • Osnovno znanje o backend razvoju.
  • Osnovno znanje o radu s tajnim API ključevima.
  • Osnovno znanje o razvoju API-ja ili server-side renderiranju.

Prednosti

  • Sigurno.
  • Besprijekorno iskustvo komentiranja.

Nedostaci

  • Zahtijeva razvoj na backend-u.

Ažuriranje podataka korisnika

Sa Secure SSO-om, svaki put kada pošaljete sso user payload, mi ćemo ažurirati njihov korisnički račun s najnovijim informacijama. Na primjer, ako korisnik ima username X, i vi pošaljete Y u SSO payloadu, njihov username će postati Y.

Ako želite ukloniti vrijednosti koristeći ovaj pristup, postavite ih na null (ne undefined).

Secure SSO API

Također pružamo API za interakciju sa SSO korisnicima. Pogledajte the docs.

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

Opcija dva - Simple SSO

Alternativa Secure SSO-u je jednostavno proslijediti korisničke informacije widgetu za komentiranje.

Nije obavezno proslijediti email s Simple SSO-om, međutim bez njega njihovi komentari će se prikazivati kao "Unverified".

Note! Od početka 2022. username-i kod Simple SSO-a ne moraju biti jedinstveni preko cijelog FastComments.com.

Idealno, Simple SSO bi se trebao odabrati samo pri razvoju na platformi koja ne omogućuje pristup backend-u.

Zahtjevi

  • Osnovno znanje o razvoju na strani klijenta.
  • Morate poznavati barem email korisnika.

Prednosti

  • Jednostavno.
  • Sva aktivnost se i dalje verificira.
  • Korisnik nikad ne unosi svoj username ili email.

Nedostaci

  • Manje sigurno od Secure SSO-a jer payload na strani klijenta može biti konstruiran da postane bilo koji korisnik.

Simple SSO API

Korisnici automatski kreirani putem Simple SSO toka pohranjuju se kao SSOUser objekti. Do njih se može pristupiti i upravljati putem SSOUser API-ja. Pogledajte the docs.

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


Pomoću Simple SSO-a možemo pružiti widgetu za komentare informacije o korisniku tako da ne moraju unositi svoje korisničko ime ili e-poštu da bi komentirali.

Simple SSO možemo konfigurirati na sljedeć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 u pozadini će se stvoriti SSO korisnik. Korisnik će imati createdFromSimpleSSO postavljeno na true ako je dohvaćen iz API-ja.

Napomene:

  • E-pošta je jedinstveni identifikator za Simple SSO.
  • Davanje e-pošte s Simple SSO-om nije obavezno, međutim, prema zadanim postavkama njihovi će komentari biti prikazani kao "Unverified". Ako e-pošta nije navedena, korisnik se ne može u potpunosti autentificirati.
  • NEW Od siječnja 2022.: Korisnička imena ne moraju biti jedinstvena širom fastcomments.com
  • Simple SSO može automatski stvarati i ažurirati SSO korisnike ako je e-pošta dostavljena i ako korisnik nije prvotno stvoren putem Secure SSO.
  • Možete specificirati značke za korisnika koristeći svojstvo badgeConfig. Niz badgeIds sadrži ID-jeve znački koje će se povezati s korisnikom. Ako je override postavljen na true, zamijenit će sve postojeće značke prikazane na komentarima; ako je false, dodat će ih postojećim značkama.

Prilagođene integracije - migracija s 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 s Disqus-a jednostavna - promijenite algoritam hashiranja s SHA1 na SHA256 i ažurirajte nazive svojstava koji se prosljeđuju UI-u.

Prilagođene integracije - migracija s Commento SSO Internal Link

Commento koristi drastično drugačiji pristup SSO-u - zahtijevaju da imate endpoint koji oni pozivaju kako bi autentificirali korisnika.

FastComments je obrnuto - jednostavno kodirajte i hashirajte informacije o korisniku koristeći vaš tajni ključ i proslijedite ih dalje.

Povratni pozivi Internal Link

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

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

Podržani povratni pozivi su:

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

Točni potpisi mogu se pronaći u TypeScript definitions.

Evo primjera sa svim korištenim povratnim pozivima:

Primjeri povratnih poziva
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; // vratite true da spriječite zadano ponašanje (otvaranje korisničkog profila na fastcomments.com).
31 },
32 onCommentSubmitStart: function(comment, continueSubmitFn, cancelFn) {
33 console.log('Trying to submit comment', comment);
34 setTimeout(function() { // emuliranje asinkronog 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 // komentari su sortirani prema zadanom načinu sortiranja na stranici, koji može biti Najrelevantniji (npr. najviše glasova itd.) ili Najnoviji prvi
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 povezan je s navedenim urlId i spremljen za upotrebu u alatima za moderaciju.

Po zadanom, ovo se dohvaća iz document.title.

Ako želite, svoj naslov stranice možete navesti na sljedeć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 ugniježđenih odgovora Internal Link

Broj komentara prikazan na vrhu widgeta za komentare može prikazivati ili sve "komentare najviše razine", što znači one odgovore koji su odgovori izravno na stranicu ili članak, ili može biti brojanje svih ugniježđenih komentara.

Po zadanom je ovo true - to je brojanje potonjeg - svih komentara. U starijim verzijama widgeta za komentare zadana vrijednost je false.

Možemo promijeniti ponašanje, tako da bude brojanje svih ugniježđenih 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 brojanje odražava samo komentare najviše razine, 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

Trenutno se ovo ne može prilagoditi bez promjena u kodu.

ID-ovi grupa za spominjanje Internal Link

Popis id-ova za korištenje u automatskom dovršavanju @mentions. Korisno kada želite spriječiti označavanje korisnika koji nemaju zajedničke grupe.

Kada je navedeno, u automatskom dovršavanju će biti ponuđeni samo korisnici iz drugih grupa nakon upisivanja znaka @.

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