
Език 🇧🇬 Български
Обща информация
API
Разработване на разширения
Контекст
FastComments предоставя възможност за разширяване на основната ни функционалност чрез скриптове, които наричаме Extensions.
Един Extension може да добави допълнителна маркировка към коментарния уиджет, да добави слушатели на събития и да изпълнява произволен код.
Тук ще намерите примери за разширения, които имаме в продукция, както и документация за това как да пишете разширения.
Жизнен цикъл на разширението 
Скриптът за всяко разширение се изтегля и извиква преди компонентът за коментари да започне да извлича първия набор от коментари и да рендерира потребителския интерфейс.
При първоначално зареждане следните данни ще бъдат добавени към обекта на разширението:
config- Препратка към обектаconfig.translations- Препратка към обектаtranslations.commentsById- Препратка към всички коментари по id.root- Препратка към кореновия DOM възел.
Разширенията трябва да презапишат желаните функции, които компонентът за коментари ще извика в подходящите моменти.
Дефиниране на разширение 
Най-малкото възможно разширение би изглеждало така:
Run 
За целите на този пример, запазете това като my-extension.js, и го направете достъпно на https://example.com/my-extension.min.js.
Това разширение не прави нищо, освен че при зареждане извлича обекта на разширението, създаден от основната библиотека за коментари.
Този Extension обект е единствен екземпляр и не се споделя с други разширения.
След това, за да заредим нашето разширение, трябва да уведомим коментарния уиджет за него. Например:
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 за разширения 
Взаимодействието с Extension е просто, тъй като просто дефинираме референции към функции, които искаме да бъдат извикани.
За да надградим предишния пример, да кажем, че искаме да добавим HTML в горната част на всеки коментар:
Run 
Всеки път, когато върнете HTML по този начин, той ще бъде обединен в потребителския интерфейс чрез алгоритъм за dom-diffing.
Ръчно задействане на повторното изобразяване на коментар
Можем да изчакаме първоначалното зареждане на страницата и да ръчно преизобразим коментар, като извикаме reRenderComment:
Run 