FastComments.com

Налаштування та конфігурація

Контекст

Тут ви знайдете детальну документацію щодо кожної з функцій та налаштувань, які підтримує віджет коментарів.

Ця документація охоплює основні концепції та детально розглядає кожну область функціональності, включно з інструкціями "як це зробити" та поширеними підводними каменями.

Наведено приклади коду з виділенням відповідних рядків. За потреби будуть надані знімки екрана сторінок конфігурації.

Приклади коду використовують нашу бібліотеку vanilla JavaScript, однак параметри конфігурації мають точно ті самі назви для всіх версій віджета коментарів (React, Vue тощо).

Більшість налаштувань та функцій, описаних у цьому посібнику, не потребують написання коду.

Відображення одних і тих самих коментарів на різних сторінках Internal Link


Оскільки параметр urlId дозволяє нам визначити, до якої сторінки або ідентифікатора прив'язані коментарі, ми можемо просто встановити urlId на те саме значення на цих сторінках.

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

Користувацькі шрифти Internal Link

FastComments призначений для налаштування, і шрифт, який використовують наші віджети, не є винятком.

За замовчуванням FastComments використовує system font stack, щоб виглядати якомога краще на широкому діапазоні пристроїв.

Щоб задати власні шрифти, дивіться Документація з Custom CSS.

Там ви знайдете спосіб визначити кастомний CSS, що дозволить вам задати бажані шрифти.

Як задати шрифт

Щоб перевизначити шрифт, ми рекомендуємо визначати ваш CSS, використовуючи селектори .fast-comments, textarea. Наприклад:

Приклад зовнішнього шрифту
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

Підтримка темного фону (темний режим) Internal Link

За замовчуванням віджет коментарів FastComments автоматично визначає темний режим на більшості сайтів.

Коли виявлено темний режим, FastComments переключається з чорного тексту на білому фоні на білий текст на чорному фоні. Також змінюватимуться зображення.

Під час завантаження сторінки віджет намагатиметься визначити, наскільки темним є фон сторінки за віджетом коментарів. Це означає, що сторінка може мати білий фон, але якщо ви розмістите віджет коментарів всередині контейнера з чорним фоном, темний режим має все одно автоматично вмикатись, щоб зробити коментарі читабельними.

Проте механізм виявлення, який спирається на визначення "luminance", може не активувати темний режим тоді, коли ви цього хочете. Щоб примусово увімкнути його, встановіть прапорець hasDarkBackground у true таким чином:

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

Посилання з коментарів на сторінки Internal Link

Коли надсилаються сповіщення електронною поштою або відображаються коментарі в інтерфейсах користувача, наприклад на сторінці модерації, корисно мати можливість посилатися з коментаря на сторінку, де він розміщений.

Якщо URL ID не завжди є ідентифікатором, то потрібно зберігати URL в іншому місці. Для цього служить властивість "url", яка визначена так:

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

Поширений випадок використання — прив'язати тред коментарів до ідентифікатора, наприклад статті, а потім посилатися назад на конкретну сторінку, наприклад:

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 не очищується від типових маркетингових параметрів. За замовчуванням зберігається саме той URL, який є на поточній сторінці.

Визначення, яку сторінку відображати Internal Link


Під час отримання та відображення коментарів віджет коментарів має знати, з якої сторінки починати. За замовчуванням він починається з першої сторінки і відображає лише цю сторінку.

Якщо потрібно, точну сторінку, яку слід відобразити, можна передати віджету коментарів через налаштування 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

Зауважте, що нумерація сторінок починається з нуля, тому вищенаведений приклад відображає другу сторінку.


Перемикання гілок коментарів без перезавантаження сторінки Internal Link

Ми розглянули, як urlId — це ідентифікатор сторінки або статті, до яких прив'язані коментарі.

Також, нагадаємо, якщо urlId не визначено, він за замовчуванням прийматиме поточну URL-адресу сторінки.

А як бути з SPA, або односторінковими застосунками (Single-Page-Applications), де сторінка або вміст, до яких прив'язані коментарі, змінюється динамічно без повного перезавантаження сторінки?

Angular, React, Vue тощо

У наших бібліотеках, таких як Angular та React, достатньо оновити властивість urlId, передану віджету, щоб віджет коментарів оновився. Ви можете побачити це на прикладі React-додатку, наприклад, тут.

VanillaJS

Якщо ви використовуєте бібліотеку VanillaJS, це трохи складніше, оскільки немає фреймворку на кшталт Angular або React для обробки прив'язки даних або поширення стану.

Коли ви створюєте екземпляр віджету VanillaJS, він повертає деякі функції, які можна викликати для його оновлення.

Ось робочий приклад, де ми змінюємо хеш сторінки і оновлюємо віджет коментарів:

Приклад зміни хешу сторінки
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; // Ми також оновлюємо url, щоб сповіщення могли посилатися на правильну сторінку
29 config.urlId = locationString;
30
31 instance.update(config);
32 }
33 nextPage();
34 button.addEventListener('click', nextPage);
35 })();
36</script>
37

Вимкнути перенаправлення зображень Internal Link

За замовчуванням FastComments дозволяє користувачам завантажувати зображення. Коли користувач натискає на це зображення, FastComments за замовчуванням відкриває нову вкладку, щоб показати зображення у повному розмірі. Встановлення цього прапорця в true вимикає цю поведінку:

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

Якщо ви не плануєте самостійно перехоплювати натиск на зображення (див. onImageClicked), ми рекомендуємо поєднати це з певними стилями щоб прибрати вигляд того, що зображення можна натиснути.

Виділення нових коментарів Internal Link

FastComments пропонує кілька способів виділити нові коментарі.

По-перше й найголовніше, за замовчуванням коментарі, які спричинили внутрішнє сповіщення (відповіді, відповіді в тій же темі, або коментарі на сторінці на яку ви підписані), автоматично виділяються тим, що аватар користувача трохи світиться. Колір можна налаштувати через CSS використовуючи клас is-unread.

Коментарі, опубліковані протягом останніх 24 годин, мають застосований клас 24hr, який можна використовувати для стилізації.

Нарешті, будь-які нові живі коментарі, які з'являються в сесії користувача, будуть виділені протягом кількох секунд за допомогою анімації. Це робиться через is-live CSS клас і також може бути налаштоване.

Шаблони електронних листів Internal Link


Електронні листи, які надсилає FastComments вашим клієнтам, можна налаштувати. Шаблон, логіка, та переклади — усе можна змінити. Текст можна налаштовувати для кожної локалі, а оформлення можна навіть змінювати для кожного домену. Дізнайтеся більше про власні шаблони електронних листів тут.


Розміщувати нові живі коментарі внизу Internal Link

За замовчуванням нові live-коментарі з'являються у верхній частині списку коментарів у міру їхньої публікації в реальному часі.

Коли ця опція увімкнена, нові live-коментарі замість цього додаватимуться внизу списку. Це впливає на те, як коментарі з'являються під час їхньої публікації в реальному часі, коли користувачі переглядають тему коментарів.

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

With this setting enabled:

  • New live comments posted by other users will appear at the bottom of the comment list
  • Users will see new comments appear below existing comments in real-time
  • This only affects live comment updates - not the initial page load
  • This can help maintain reading flow when users are following a discussion

Note that this setting only affects where new live comments are placed as they arrive in real-time. It does not affect the initial sort order when the page loads.

Увімкнення безкінечного прокручування Internal Link

За замовчуванням віджет FastComments автоматично змінює свою висоту, щоб вмістити всі видимі коментарі. Пагінація реалізується за допомогою кнопки "Показати наступні" в кінці поточної сторінки, оскільки ми виявили, що така взаємодія найбільше подобається більшості користувачів.

Однак є випадки, коли віддають перевагу нескінченному прокручуванню. Наприклад, ми використовуємо цю функцію в нашому продукті Stream Chat.

Ми можемо приховати кнопки "Показати наступні" і переключитися на нескінченне прокручування, встановивши прапорець enableInfiniteScrolling у 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

Це також вимагає додавання власного CSS. Додайте кастомні стилі для селектора .comments, щоб увімкнути прокручування, наприклад:

Увімкнення нескінченного прокручування
Copy CopyRun External Link
1
2.comments {
3 max-height: 500px;
4 overflow-y: auto;
5}
6

Повний робочий приклад буде таким:

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

У наведеному вище прикладі ми використовуємо властивість customCSS, однак для причин продуктивності рекомендується замість цього використовувати інтерфейс налаштування віджета. Див. документацію з Custom CSS.


Відображення всіх коментарів одразу — вимкнути пагінацію Internal Link

Щоб відключити пагінацію і відобразити всі коментарі одразу, встановіть startingPage на -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

Запобігти створенню нових коментарів верхнього рівня Internal Link


Встановлення noNewRootComments в true призведе до того, що віджет приховає область відповіді на кореневі коментарі, але все ще дозволятиме користувачам відповідати на дочірні коментарі. Ви, наприклад, можете встановити це умовно під час завантаження сторінки, щоб лише деяким користувачам дозволити залишати коментарі верхнього рівня.

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

Максимальна глибина відповідей Internal Link

За замовчуванням FastComments дозволяє необмежену глибину вкладення відповідей, створюючи структуру нитки, де користувачі можуть нескінченно відповідати на відповіді.

Опція maxReplyDepth дозволяє обмежити, наскільки глибоко можуть розвиватися ланцюжки відповідей. Коли досягається максимальна глибина, користувачі більше не бачитимуть кнопку відповіді для коментарів на цьому рівні.

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:

  • Користувачі можуть залишати коментарі на верхньому рівні (глибина 0)
  • Користувачі можуть відповідати на коментарі верхнього рівня (глибина 1)
  • Користувачі можуть відповідати на ці відповіді (глибина 2)
  • Подальші відповіді не дозволені за межами глибини 2

Встановлення значення 1 дозволить лише відповіді на коментарі верхнього рівня, створюючи більш пласку структуру обговорення.

Встановлення maxReplyDepth у 0 відключить усі відповіді, дозволяючи лише коментарі верхнього рівня. Якщо не вказано, відповіді можуть вкладатися без обмежень.

Огляд єдиного входу (SSO) Internal Link

SSO, або єдиний вхід, — це набір конвенцій, що дозволяє вам або вашим користувачам використовувати FastComments без необхідності створювати ще один акаунт.

Якщо ви не дозволяєте анонімні коментарі, для коментування з FastComments потрібен акаунт. Ми робимо процес реєстрації дуже простим — користувач просто залишає свою електронну пошту під час коментування. Однак ми розуміємо, що навіть це може бути зайвим тертям, якого деякі сайти прагнуть уникнути.

Ми можемо зменшити це тертя, маючи лише один потік входу для всього вашого сайту.

How do I get it?

Всі типи акаунтів наразі отримують доступ до SSO. Проте максимальна кількість користувачів SSO буде відрізнятися залежно від вашого пакету. Як і з іншими функціями, плани Pro і вище надають пряму підтримку розробників.

Давайте порівняємо варіанти, а потім детальніше розберемо кожен.

User and Comment Migrations

Під час міграції з платформи з SSO, як-от Disqus, у вас вже будуть користувачі та їхні коментарі.

Коментарі імпортуються як частина вашої міграції — або через API, наш Import UI, або через підтримку клієнтів. Import UI є пріоритетним, якщо він підтримує платформу, з якої ви мігруєте, оскільки він включає обробку помилок, витяг та завантаження аватарів і медіа, а також систему моніторингу пакетних завдань.

Користувачі додаються автоматично при першому перегляді ниток коментарів. Альтернативно, їх можна додати заздалегідь через API, але це не дає багато переваг.

Якщо коментарі імпортовано, а користувачі SSO не додані вручну через API, то коментарі автоматично будуть переміщені до акаунта користувача при першому створенні акаунта, коли він перегляне будь-яку нитку коментарів. Після цього вони зможуть керувати, редагувати та видаляти коментарі, які вони спочатку написали.

Автоматична міграція здійснюється за електронною поштою або ім'ям користувача. Деякі платформи не надають електронні адреси при експорті, як-от Disqus, тому в такому випадку ми повертаємося до імені користувача.

  • Поки ви передаєте відповідне ім'я користувача і електронну пошту в SSO payload, ми додамо електронну пошту до окремих об'єктів коментарів, щоб працювали сповіщення та згадки.

Якщо бажано імпортувати коментарі та користувачів одночасно, працюйте з підтримкою, щоб перенести коментарі до відповідних акаунтів користувачів після імпорту користувачів через API.

Отже, щоб підсумувати, найпростіший шлях міграції такий:

  1. Імпортуйте коментарі.
    1. Аватари та інші медіа мігруються автоматично, якщо використовувати Import UI в Manage Data -> Imports.
  2. Налаштуйте Secure або Simple SSO.
  3. Дозвольте міграції відбуватися автоматично для кожного користувача при їхньому першому вході.
    1. Це зазвичай додає менше секунди до часу завантаження сторінки, якщо у користувача менше ніж 50k коментарів.

WordPress Users

Якщо ви використовуєте наш плагін WordPress, то писати код не потрібно! Просто перейдіть на сторінку адміністрування плагіна, натисніть SSO Settings, а потім Enable.

Це перенесе вас до майстра в один клік, який створить ваш API-ключ, відправить його на ваш WordPress інсталяцію та увімкне SSO. Ми об'єднали це в один клік для вашої зручності.

Зверніть увагу, що якщо ви встановлюєте плагін уперше, вам доведеться завершити процес налаштування перш ніж ви побачите сторінку адміністратора з кнопкою SSO Settings.

WordPress SSO - Moderators

Зверніть увагу, що наразі, щоб поруч з вашими модераторами відображався значок "Moderator" під час коментування через плагін FastComments для WordPress, їх також потрібно додати як Moderator в панелі керування FastComments і підтвердити їхню електронну пошту.

Custom Integrations

Для користувацьких інтеграцій є два варіанти.

Option One - Secure SSO

З Secure SSO FastComments знає, що користувач, який коментує, голосує та читає коментарі, є реальним користувачем на вашому сайті.

Поки ви створюєте дійсний payload, користувач завжди матиме безшовний досвід коментування.

З Secure SSO SSO payload створюється на стороні сервера з використанням HMAC-автентифікації, а потім передається віджету на клієнті.

З Secure SSO акаунт користувача є повністю відокремленим від решти бази користувачів FastComments. Це означає, що якщо у нас є два партнери Company A і Company B, кожен може мати SSO-користувача з ім'ям користувача "Bob".

Requirements

  • Базові знання бекенд-розробки.
  • Базові знання роботи з секретними API-ключами.
  • Базові знання розробки API або рендерингу на стороні сервера.

Pros

  • Захищено.
  • Безшовний досвід коментування.

Cons

  • Потребує розробки на бекенді.

Updating User Data

З Secure SSO щоразу, коли ви передаєте sso user payload, ми оновлюємо їхній акаунт з останньою інформацією. Наприклад, якщо у користувача було ім'я користувача X, а ви передаєте Y в SSO payload, їхнє ім'я користувача стане Y.

Якщо ви хочете видалити значення, використовуючи цей підхід, то встановіть їх у null (не undefined).

Secure SSO API

Ми також надаємо API для взаємодії з SSO-користувачами. Див. the docs.

Зверніть увагу, що при використанні Secure SSO користувачі автоматично створюються за лаштунками при завантаженні сторінки. Вам не потрібно масово імпортувати ваших користувачів.

Option Two - Simple SSO

Альтернативою Secure SSO є просто передача інформації про користувача віджету коментарів.

Надання електронної пошти в Simple SSO не є обов'язковим, проте без неї їхні коментарі відображатимуться як "Unverified".

Увага! Починаючи з початку 2022 року імена користувачів у Simple SSO не повинні бути унікальними по всьому FastComments.com.

Ідеально, якщо Simple SSO обирають тільки при розробці на платформі, яка не надає доступу до бекенду.

Requirements

  • Базові знання клієнтської розробки.
  • Потрібно знати принаймні електронну пошту користувача.

Pros

  • Просто.
  • Вся активність все ще перевіряється.
  • Користувач ніколи не вводить своє ім'я користувача або електронну пошту.

Cons

  • Менш безпечно, ніж Secure SSO, оскільки payload на клієнті може бути підроблений, щоб стати будь-яким користувачем.

Simple SSO API

Користувачі, автоматично створені через Simple SSO, зберігаються як об'єкти SSOUser. До них можна отримати доступ і керувати ними через API SSOUser. Див. the docs.


Користувацькі інтеграції — простий єдиний вхід (SSO) Internal Link

За допомогою Simple SSO ми можемо надати віджетові коментування інформацію про користувача, щоб йому не довелося вводити ім'я користувача або електронну пошту для коментування.

Ми можемо сконфігурувати Simple SSO таким чином:

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

Користувач увійде в систему, і за лаштунками буде створено SSO-користувача. У користувача буде встановлено createdFromSimpleSSO в значення true, якщо його отримано з API.

Notes:

  • Електронна пошта є унікальним ідентифікатором для Simple SSO.
  • Надання електронної пошти для Simple SSO не є обов'язковим, однак за замовчуванням їхні коментарі будуть показані як "Не перевірено". Якщо електронна пошта не надана, користувача неможливо повністю автентифікувати.
  • НОВЕ З січня 2022: Імена користувачів не мають бути унікальними по всьому fastcomments.com
  • Simple SSO може автоматично створювати та оновлювати SSO-користувачів, якщо вказано електронну пошту, і якщо користувач не був спочатку створений через Secure SSO.
  • Ви можете задати бейджі для користувача за допомогою властивості badgeConfig. Масив badgeIds містить ID бейджів, які потрібно пов'язати з користувачем. Якщо override встановлено в true, це замінить усі існуючі бейджі, що відображаються в коментарях; якщо false — додасться до існуючих бейджів.

Користувацькі інтеграції — міграція з Disqus SSO Internal Link

Найбільші відмінності між Disqus і FastComments Secure SSO полягають у тому, що Disqus використовує SHA1 для шифрування, тоді як ми використовуємо SHA256. Це означає, що міграція з Disqus проста - змініть алгоритм хешування з SHA1 на SHA256 і оновіть імена властивостей, які передаються до UI.

Користувацькі інтеграції — міграція з Commento SSO Internal Link

Commento використовує радикально інший підхід до SSO - вони вимагають, щоб у вас був endpoint, який вони викликають для аутентифікації користувача.

FastComments робить навпаки - просто закодуйте й захешуйте інформацію про користувача, використовуючи ваш секретний ключ, і передайте її.

Зворотні виклики Internal Link

Усі бібліотеки для віджета коментарів (наразі Angular, React, Vue) підтримують зворотні виклики.

Зворотні виклики вказуються в об’єкті конфігурації й мають однакову сигнатуру для кожної бібліотеки.

Підтримувані зворотні виклики:

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

Точні сигнатури можна знайти в визначеннях TypeScript.

Ось приклад із використанням усіх зворотних викликів:

Приклади зворотних викликів
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; // повернути true, щоб запобігти поведінці за замовчуванням (відкриттю профілю користувача на fastcomments.com).
31 },
32 onCommentSubmitStart: function(comment, continueSubmitFn, cancelFn) {
33 console.log('Trying to submit comment', comment);
34 setTimeout(function() { // емулюємо асинхронну поведінку (виклик API тощо).
35 if(confirm('Should submit?')) {
36 continueSubmitFn();
37 } else {
38 cancelFn('Some optional error message');
39 }
40 }, 1000);
41 },
42 onCommentsRendered: function(comments) {
43 // comments відсортовані за сортуванням за замовчуванням на сторінці, яке може бути Most Relevant (наприклад: найбільше проголосовані тощо), або Newest First
44 const topCommentInList = comments[0];
45 console.log('First Comment Rendered:', topCommentInList.avatarSrc, topCommentInList.commenterName, topCommentInList.commentHTML);
46 }
47 });
48</script>
49

Заголовки сторінок Internal Link

Поточний заголовок сторінки асоціюється з вказаним urlId і зберігається для використання в інструментах модерації.

За замовчуванням він отримується з document.title.

Якщо бажано, власний заголовок сторінки можна вказати таким чином:

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

Кількість коментарів та підрахунок усіх вкладених відповідей Internal Link

Кількість коментарів, яка відображається у верхній частині віджета коментарів, може показувати або всі "top-level" коментарі, тобто ті відповіді, що є відповідями безпосередньо до сторінки або статті, або вона може бути підрахунком усіх вкладених коментарів.

За замовчуванням це true - це підрахунок останнього варіанту - усіх коментарів. У старіших версіях віджета коментарів значення за замовчуванням було false.

Ми можемо змінити поведінку так, щоб вона була підрахунком усіх вкладених коментарів, встановивши прапорець countAll в 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

Якщо ми хочемо, щоб підрахунок відображав лише коментарі верхнього рівня, ми встановлюємо прапорець у 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

Наразі це не можна налаштувати без змін у коді.

Ідентифікатори груп для згадування Internal Link

Список id для використання в автозаповненні @mentions. Корисно, коли потрібно запобігти відміченню користувачів, які не мають спільних груп.

Коли вказано, в автозаповненні після введення символу @ будуть показані лише користувачі з інших груп.

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