
Језик 🇷🇸 Српски
Позадина
API
Развој проширења
Контекст
FastComments пружа могућност проширења наше основне функционалности путем скрипти које зовемо проширења.
Један Extension може додати додатни маркап у видгет за коментаре, слушаоце догађаја и извршавати произвољни код.
Овде ћете пронаћи примере проширења која имамо у продукцији, као и документацију о томе како написати проширења.
Животни циклус екстензије 
Скрипт за свако проширење се преузима и извршава пре него што виџет коментара почне да преузима први скуп коментара и да приказује кориснички интерфејс.
При првом учитавању, следећи подаци ће бити додати на објекат проширења:
config- Референца на објекатconfig.translations- Референца на објекатtranslations.commentsById- Референца на све коментаре по id.root- Референца на root DOM чвор.
Проширења треба да замене жељене функције, које ће виџет коментара позивати у одговарајућим тренуцима.
Дефинисање екстензије 
Најмање могуће проширење изгледало би овако:
Run 
Заради овог примера, сачувајте ово као my-extension.js, и учините га доступним на https://example.com/my-extension.min.js.
Ово проширење не ради ништа посебно, осим што при учитавању преузима објекат проширења који креира основна библиотека коментара.
Овај објекат Extension је јединичан (singleton) и није дељен са другим проширењима.
Даље, да бисмо учитали наше проширење, морамо обавестити видгет за коментаре о њему. На пример:
Run 
За функционалне примере, погледајте следећи одељак.
Примери екстензија 
У 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 
API екстензије 
Interacting with the Extension is simple, as we simply define references to functions we want invoked.
Да бисмо надоградили претходни пример, рецимо да желимо да додамо HTML на врх сваког коментара:
Run 
Whenever you return HTML like this, it will get merged into the UI via a dom-diffing algorithm.
Ручно покретање поновног рендера коментара
Можемо сачекати почетно учитавање странице и ручно поново рендеровати коментар позивајући reRenderComment:
Run 