
Језик 🇲🇪 Српски (Црна Гора)
Позадина
АПИ
Развој проширења
Контекст
FastComments омогућава проширивање наше основне функционалности преко скрипти које називамо проширења.
Једно Extension може додати додатно HTML означавање у видгет за коментаре, регистровати слушаче догађаја и извршавати произвољан код.
Овдје ћете наћи примјере проширења која имамо у продукцији, као и документацију о томе како писати проширења.
Животни циклус екстензије 
Скрипта за сваку екстензију се преузима и извршава пре него што видгет за коментаре почне да преузима први скуп коментара и приказује кориснички интерфејс.
При почетном учитавању, следећи подаци ће бити додати на објекат екстензије:
config- Референца наconfigобјекат.translations- Референца наtranslationsобјекат.commentsById- Референца на све коментаре по id.root- Референца на root DOM чвор.
Екстензије треба да препишу жељене функције, које ће видгет за коментаре позивати у одговарајућим тренуцима.
Дефинисање екстензије 
Најмање могуће проширење би било:
Run 
У овом примеру, сачувајте ово као my-extension.js, и учините га доступним на https://example.com/my-extension.min.js.
Ово проширење не ради ништа, осим што при учитавању преузима објекат проширења који је креирала основна библиотека коментара.
Овај Extension објекат је синглтон и није дељен са ниједним другим проширењем.
Затим, да бисмо учитали наше проширење, морамо обавестити видџет за коментаре о њему. На пример:
Run 
За функционалне примјере, погледајте следећи одељак.
Примјери екстензија 
U FastCommentsu, pišemo naše sopstvene ekstenzije, koristeći isti API. Možete pogledati neminifikovan kod za ove ekstenzije na sljedećim endpointima:
Dark Mode
The Dark Mode extension is conditionally loaded when a "dark" page is detected. This extension simply adds some CSS to the comment widget. This way we do not have to load the dark mode CSS when it is not needed.
https://fastcomments.com/js/comment-ui/extensions/comment-ui.dark.extension.js
Moderation
When the current user is a moderator, we use the moderation extension.
This is a good example for adding click-based event listeners, making API requests, adding to the comment menu and comment areas.
https://fastcomments.com/js/comment-ui/extensions/comment-ui.moderation.extension.js
Live Chat
The Live Chat extension (in combination with other configuration and styling) turns the comment widget into a live chat component.
https://fastcomments.com/js/comment-ui/extensions/live-chat.extension.js
Објекат екстензије 
The extension object consists of the following definition:
Run 
АПИ екстензије 
Interakcija са Extension је једноставна, јер једноставно дефинишемо референце на функције које желимо да се позову.
Да надовежемо на пример раније, рецимо да желимо да додамо HTML на врх сваког коментара:
Run 
Кад год вратите HTML на овај начин, он ће бити спојен у UI помоћу dom-diffing алгоритма.
Ручно покретање поновног рендеровања коментара
Можемо сачекати почетно учитавање странице и ручно поново рендеровати коментар позивањем reRenderComment:
Run 