Виджет

Виджет последних комментариев

Установка

Добавить следующий код на страницу где нужно расположить виджет с последними комментариями:


<div id="anycomment-stream"></div>
<script>
    AnyComment = window.AnyComment || [];
    AnyComment.CommentStream = [];
    AnyComment.CommentStream.push({
        app_id: APP_ID,
        root: "anycomment-stream"
    });
    var s = document.createElement("script");
    s.type = "text/javascript";
    s.async = true;
    s.src = "https://widget.anycomment.io/stream/embed.js";
    var sa = document.getElementsByTagName("script")[0];
    sa.parentNode.insertBefore(s, s.nextSibling);
</script>

Замените APP_ID на ID своего сайта. Для этого нужно зарегистрироваться и добавить сайт.

Опции

ПараметрТипОписание
rootstringID элемента, куда будет добавлен виджет
app_idintegerID сайта, возможно получить после регистрации сайта на сервисе
urlstringURL страницы для которой отобразить последние комментарии. Если не указано, тогда отобразятся комментарии со всего сайта.
languagestringЯзык виджета. Доступные: ru, en, uk.
designobjectОпции по настройке дизайна виджета. Подробнее смотерть "Настройки дизайна".
limitnumberКоличество комментариев для отображения. Максимально 100. по умолчанию: 5.
widgetWidthnumberШирина виджета. Можно указать %, em, rem или число для пикселей. По умолчанию на всю ширину.
showWidgetHeaderbooleanСкрыть заголовок виджета или нет.
openCommentNewTabbooleanОпция позволяет контролировать нажатие на комментарий - открыть в новой вкладке или в той же.
maximumPreviewCharsintegerМаксимальное количество символов в тексте комментария для отображения. По умолчанию: 100. 0 - без ограничений (весь комментарий).
pageUrlMutatorfunctionФункция для обработки ссылку для перехода на комментарий. Подробнее смотреть "Настройка ссылки на комменатрий".
pageTitlePositionstringПозиция заголовка страницы. Возможные значения: beforeComment (перед комментарием), afterComment (после комментария).
avatarSizestring or numberРазмер аватарки автора комментария. По умолчанию: '30px'. Если указать как число, к нему автоматически добавится px.
i18nobjectОпция позволяет контролировать переводы виджета. Подробнее смотреть "Настройка языка".

Настройка дизайна

Вы можете использовать объект design для кастомизации дизайна виджета под сайт.

ПараметрТипОписание
primaryColorstringОсновной цвет в HEX формате.
hintColorstringЦвет текста в HEX для второстепенны элементов, такие как даты, кол-во комментариев на странице.
widgetBackgroundColorstringЦвет текста в HEX для фона виджета.

Настройка языка

По умолчанию, если не указывать опцию i18n, тогда она состоит из следующих переводов:

{
  "ru": {
    "no_comments": "Пока еще не было комментариев.",
    "widget_title": "Последние комментарии"
  },
  "en": {
    "no_comments": "No comments so far.",
    "widget_title": "Latest comments"
  }
}

Структура данных следующая: ключ объекта - это язык, значение - это строки перевода.

Давайте рассмотрим пример того, как заменить переводы для русского языка:

AnyComment.CommentStream.push({
    app_id: APP_ID,
    root: "anycomment-stream",
    i18n: {
        ru: {
            no_comments: 'Нет комментариев.',
            widget_title: 'Лента комментариев',
        }
    }
});

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

Настройка ссылки на комментарий

Вы можете использовать параметр pageUrlMutator для манипуляции ссылок на комментарий.

Например, вы можете задать собственный домен:

AnyComment.CommentStream.push({
    app_id: APP_ID,
    root: "anycomment-stream",
    pageUrlMutator: function (url) {
        const link = document.createElement('a');
        link.href = url;
        return 'http://example.com' + link.pathname + link.hash;
    }
});

Или устанавливать домен на основе того, где стоит виджет:

AnyComment.CommentStream.push({
    app_id: APP_ID,
    root: "anycomment-stream",
    pageUrlMutator: function (url) {
        const link = document.createElement('a');
        link.href = url;
        return window.location.origin + link.pathname + link.hash;
    }
});