
Језик 🇧🇦 Српски (БиХ)
Позадина
АПИ
Развој проширења
Контекст
FastComments пружа могућност проширивања наше основне функционалности кроз скрипте које називамо Проширења.
An Extension може додати додатни маркуп у видџет за коментаре, слушаоце догађаја, и извршавати произвољан код.
Овдје ћете наћи примјере проширења која имамо у продукцији, као и документацију о томе како писати проширења.
Животни циклус екстензије 
Скрипт за свако проширење се преузима и позива прије него што виџет коментара започне преузимање првог сета коментара и рендеровање корисничког интерфејса.
При почетном учитавању, сљедећи подаци ће бити прикачени на објекат проширења:
config- Референца на објекатconfig.translations- Референца на објекатtranslations.commentsById- Референца на све коментаре по id.root- Референца на root DOM чвор.
Проширења треба да препишу жељене функције, које ће виџет коментара позивати у одговарајућим тренуцима.
Дефинисање екстензије 
Najmanje moguće proširenje bi bilo:
Run 
Za svrhe ovog primjera, sačuvajte 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, osim što pri učitavanju dohvaća objekat proširenja koji je kreirala osnovna biblioteka komentara.
Ovaj Extension objekat je singleton i nije dijeljen sa bilo kojim drugim proširenjima.
Zatim, da bismo učitali naše proširenje, moramo obavijestiti widget za komentare o njemu. Na primjer:
Run 
Za funkcionalne primjere, pogledajte sljedeći odjeljak.
Примери екстензија 
У FastComments-у, ми пишемо наше екстензије користећи исти API. Можете погледати неминифицирани код за ове екстензије на следећим крајњим тачкама:
Тамни режим
Екстензија Тамни режим се условно учитава када се открије страница која је "dark". Ова екстензија једноставно додаје неки CSS у видгет коментара. На овај начин не морамо учитавати CSS за тамни режим када то није потребно.
https://fastcomments.com/js/comment-ui/extensions/comment-ui.dark.extension.js
Модерација
Када је тренутни корисник модератор, користимо екстензију за модерацију.
Ово је добар пример за додавање слушаца догађаја заснованих на клику, прављење API захтева, додавање у мени коментара и у области коментара.
https://fastcomments.com/js/comment-ui/extensions/comment-ui.moderation.extension.js
Чет уживо
Екстензија Чет уживо (у комбинацији са другом конфигурацијом и стиловањем) претвара видгет коментара у компоненту за чат уживо.
https://fastcomments.com/js/comment-ui/extensions/live-chat.extension.js
Објекат екстензије 
Објекат проширења се састоји од сљедеће дефиниције:
Run 
АПИ екстензије 
Interakcija sa Extension je jednostavna, jer jednostavno definišemo reference na funkcije koje želimo pozvati.
Da nadogradimo raniji primjer, recimo da želimo dodati HTML na vrh svakog komentara:
Run 
Kad god vratite HTML ovako, on će biti spojen u UI putem DOM-diffing algoritma.
Ručno pokretanje ponovnog renderovanja komentara
Možemo sačekati inicijalno učitavanje stranice i ručno ponovo renderovati komentar pozivanjem reRenderComment:
Run 