Новинка
Битрикс модуль «TS Умные вопросы и ответы, комментарии к товару»

TS Умные вопросы и ответы, комментарии к товару

Система вопросов, ответов и комментариев к товару, новостям, статьям и т.д.
Разработан специально для интернет-магазинов, для повышения качества обслуживания и конверсии сайта.

  • Не использует деревья в БД, обычный список записей, что дает минимальную нагрузку на БД и быструю скорость вывода
  • Бесконечная вложенность при выводе записей, что придает наглядное отличие обсуждений и удобную иерархию
  • Отличие ответа эксперта от вопросов и комментариев других участников
  • Ссылки в сообщениях не индексируются и не передают вес страницы на другие сайты, поисковый робот все видит текстом
  • Автоматическая подгрузка фото участника с сервиса Gravatar
  • Информативные уведомления при добавлении вопроса/ответа/комментария
  • Возможность изменения и удаления записей
  • Возможность поделиться ссылкой на вопрос/ответ/комментарий на форумах, в соц. сетях и т.д.
  • Разработан на ORM Битрикс + D7 API + jQuery + PHP + MySQL
  • и мн. др.

В модуле есть три типа записей:

  1. Q - Question (Вопрос)
  2. A - Answer (Ответ)
  3. C - Comment (Комментарий)

При выводе каждому типу добавляется соответствующий класс, что удобно при оформлении списка, можно более красиво оформить обсуждения с помощью css.

Вопрос

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

Ответ

Подсвечивается ярким бейджем, что визуально отделяет его от комментариев.
Добавить ответ может только тот пользователь, у которого разрешен доступ на запись в настройках доступа группы этого пользователя, по умолчанию доступ только у администратора.

Комментарий

Комментарии могут оставлять все участники обсуждений, у авторизованных выводится только одно поле "Ответ", а у гостей три поля "Имя, Email, Ответ"


Аватар

Аватар будет подгружаться автоматически по указанному e-mail с сервиса gravatar.com, что мне кажется очень удобным, не надо хранить картинки на сервере и нагружать при выводе вопросы ресайзом изображений и прочими сложностями с загрузкой аватаров на сайт.

Почтовые уведомления

С модулем установится три почтовых типа и три почтовых шаблона письма:

  1. API_QA_QUESTION_ADD - Новый вопрос
  2. API_QA_ANSWER_ADD - Новый ответ
  3. API_QA_COMMENT_ADD - Новый комментарий

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

По умолчанию в каждом письме будет заполнено поле Скрытая копия: #BCC# для копии письма администратору сайта, если вы не хотите получать такие уведомления, просто удалите макрос #BCC# и сохраните шаблон.

Все уведомления будут отправляться на e-mail администратора, сначала ищется e-mail в настройках сайта, если его там нет, ищется в настройках главного модуля, т.е. многосайтовость предусмотрена.

Оперативный план

  • Встроенный визуальный редактор
  • Голосование +/-, хотелось бы сделать только лайк и какую-нибудь прозрачную систему рейтинга отвечающего, кто больше помог, больше лайков, тот молодец и авторитет
  • Предупреждения, автоматическая или ручная блокировка/бан флудеров
  • Метка для ответа типа [Решено]

Пока все, если у вас будут какие-то интересные мысли по этому модулю, пожалуйста, пишите.

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

Требования

  • 1С-Битрикс: Управление сайтом 15+
    Возможно будет работать и на старых версиях, главное чтобы была поддержка D7 и ORM
  • Редакция 1С-Битрикс любая
  • Установленный модуль "Информационные блоки"
  • PHP 5.5+

Установка

Установка модуля обычная, вы можете:

  1. Установить демо-версию модуля на свой сайт по кнопке Тестировать (N) дней введя в всплывающем окне адрес своего сайта, пример: https://tuning-soft.ru

  2. Купить модуль, активировать и загрузить на сайт по инструкции из раздела Помощь
    Как купить Битрикс модуль?
    Как активировать Битрикс модуль?

Настройка

После установки модуля в визуальном редакторе в разделе Тюнинг-Софт появится раздел с компонентом списка вопросов и ответов
Компонент: Список вопросов и ответов

Вам необходимо настроить этот компонент, где-то в карточке товара в коде разместить и передать в параметры минимум два значения товара, вообще доступно пять:

1) IBLOCK_ID - Идентификатор инфоблока
Обязательно в этот ключ надо передать идентификатор инфоблока, например:
"IBLOCK_ID" => $arResult["IBLOCK_ID"]

2) ELEMENT_ID - Идентификатор элемента
В этот ключ надо передать идентификатор элемента/товара/статьи/новости и т.д., например:
"ELEMENT_ID" => $arResult["ID"]

3) PAGE_URL - Относительный адрес страницы товара из настроек инфоблока
Это необязательный параметр, в него нужно передавать относительные url - товара инфоблока, например:
"PAGE_URL" => $arResult["DETAIL_PAGE_URL"]

Если оставить пустым, компонент сам возьмет адрес элемента в инфоблоке, просто это +1 запрос к БД, если ваш сайт работает медленно и есть такая возможность передать адрес товара, рекомендую все же передать, но дополнительно получать адрес и передавать сюда смысла нет, тогда лучше оставить пустым.

4) XML_ID - Внешний код элемента (строка макс. 255 символов)
Если на вашем сайте идентификаторы элемента изменяются периодически или настроена синхронизация с 1С, то возможно вам подойдет привязка вопросов не к ELEMENT_ID в к XML_ID

5) CODE - Символьный кода элемента (строка макс. 255 символов)
Также добавил на всякий случай привязку к коду элемента, бывает и такой случай, когда айдишники изменяются, а символьный код товара сохраняется, тогда вам подойдет привязка вопросов не к ELEMENT_ID в к CODE

Т.е. обязательно надо передать в компонент идентификатор инфоблока и один из трех идентификаторов товара:
IBLOCK_ID + ELEMENT_ID|XML_ID|CODE

Это все, если все настроили верно, вопросы будут привязываться к Инфоблоку и Товару, привязка к инфоблоку обязательна.

Готовый код вызова компонента, имейте ввиду, с годами модуль обновляется, часть настроек тут могут быть устаревшими, но я стараюсь их обновлять.
<? $APPLICATION->IncludeComponent(
    "api:qa.list",
    "",
    array(
        "IBLOCK_ID" => $arResult["IBLOCK_ID"],
        "ELEMENT_ID" => $arResult["ID"],
        "XML_ID" => "",
        "CODE" => "",
        "PAGE_URL" => "",
        "INCLUDE_CSS" => "Y",
        "THEME" => "flat",
        "COLOR" => "orange1",
        "HASH" => "",
        "FORM_QUESTION_MESS_TITLE" => "Задать вопрос",
        "FORM_QUESTION_MESS_SUBMIT" => "Отправить",
        "FORM_QUESTION_MESS_SUBMIT_AJAX" => "Отправляется",
        "FORM_QUESTION_MESS_REPLY" => "Получать ответы на почту",
        "FORM_QUESTION_MESS_NAME" => "Ваше имя *",
        "FORM_QUESTION_MESS_EMAIL" => "Эл. почта *",
        "FORM_QUESTION_MESS_TEXT" => "Вопрос *",
        "FORM_ANSWER_MESS_TITLE" => "Добавить ответ",
        "FORM_ANSWER_MESS_SUBMIT" => "Отправить",
        "FORM_ANSWER_MESS_SUBMIT_AJAX" => "Отправляется",
        "FORM_ANSWER_MESS_REPLY" => "Получать ответы на почту",
        "FORM_ANSWER_MESS_NAME" => "Ваше имя *",
        "FORM_ANSWER_MESS_EMAIL" => "Эл. почта *",
        "FORM_ANSWER_MESS_TEXT" => "Ответ *",
        "LIST_QUESTION_MESS_EXPERT" => "Эксперт",
        "LIST_QUESTION_MESS_BUTTON_ANSWER" => "Ответить",
        "LIST_QUESTION_MESS_BUTTON_EDIT" => "Изменить",
        "LIST_QUESTION_MESS_BUTTON_DELETE" => "Удалить",
        "LIST_QUESTION_MESS_LINK" => "Ссылка на вопрос/ответ №#ID#",
        "LIST_QUESTION_MESS_BUTTON_SAVE" => "Сохранить",
        "LIST_QUESTION_MESS_BUTTON_CANCEL" => "Отмена",
        "LIST_QUESTION_MESS_CONFIRM_DELETE" => "Желаете удалить запись №#ID#?",
        "LIST_QUESTION_MESS_TEXT_DELETE" => "Сообщение удалено"
    ),
    false
); ?>

Дополнительно

  • Вопросы/ответы/комментарии можно сделать для любой информации, которая записывается в инфоблоки в виде элементов, хоть статьи, хоть новости, хоть товары.
  • Если вопросы встроены в табы и чтобы при переходе по ссылкам из почты в карточке товара переключались табы с хэшем/якорем, в настройках компонента предусмотрен параметр #Якорь детальной ссылки, в него надо вписать ваш якорь и он будет подставляться во все ссылки в самом конце, например, у меня это #tab-qa, в коде будет выглядеть так "HASH" => "#tab-qa"
    У вас табы могут быть, но возможности переключения их по якорю может и не быть, в этом случае либо меняйте плагин с табами, либо оставляйте эту настройку пустой, т.к. она вам не поможет.
  • Компонент  необходимо размещать вне кэша, если он закэшируется в карточке товара в html, то ничего работать конечно не будет
  • Разместить компонента можно в некэшируемых файлах шаблона компонента, которые вводят товары, например:
    component_epilog.php, element.php
  • Если вопросы и ответы нужно обязательно размещать в шаблоне в файле template.php, то при включенном кэшировании вам поможет доп. модуль TS Некешируемая область
  • Если на вашем сайте включен Композит, то модуль TS Некешируемая область вам не поможет, в этом случае пробуйте размечать динамические области и размещать там компонент с вопросами.
    Bitrix\Main\Page\Frame::getInstance()->startDynamicWithID("ID");
    //Компонент с вопросами
    Bitrix\Main\Page\Frame::getInstance()->finishDynamicWithID("ID", "");
    Или такой вариант
    $dynamicArea = new \Bitrix\Main\Page\FrameStatic("reviews");
    $dynamicArea->setAnimation(true);
    $dynamicArea->setStub('');
    $dynamicArea->setContainerID("reviews");
    $dynamicArea->startDynamicArea();
    ?>
    //Компонент с вопросами
    <?
    $dynamicArea->finishDynamicArea();

  • Либо вообще отключите кэш в карточке товара и все проблемы решатся одной кнопкой, если не хотите заморачиваться, это конечно моветон, но, смотрите сами, всякое в жизни бывает, бывает и с отключенным кэшем сайт быстрее работает)
  • Чтобы не приходили свои Ответы на вопросы, удалите #BCC# в поле Скрытая копия в почтовом шаблоне API_QA_ANSWER_ADD
    https://monosnap.com/file/uQOKNRmIyplr1nuEyjw51C0E6D3mFp.png

Технические данные

Опубликован:
01.03.2017
Обновлен:
04.07.2017
Версия:
1.5.1
Установок:
Менее 50
Битрикс:
Первый сайт, Старт, Стандарт, Малый бизнес, Эксперт, Бизнес
Адаптивность:
Да
Композит:
Нет

История версий

Версия 1.5.1
[x] Фикс параметров компонента
Версия 1.5.0
[+] Добавлена возможность использовать комментарии на текстовых/статических страницах
[+] Добавлена возможность записи в таблицу два новых поля:
PAGE_TITLE - Заголовок страницы
PAGE_URL - HTTP-адрес страницы
Если передать их через параметры компонента, то в уведомлениях на почту также будут приходить эти данные, а не элемента инфоблока.
Подробная инструкция, как сделать комментарии на текстовой странице читайте на моем сайте в разделе Статьи
https://tuning-soft.ru/articles/bitrix-modules/1c-bitrix-how-to-create-a-page-question-and-answer-faq-comments.html
Версия 1.4.0
[+] Добавлена премодерация в раздел настроек компонента "Основные параметры"
[+] Добавлена поддержка 152-ФЗ о персональных данных в раздел настроек "Обработка персональных данных"
Версия 1.3.0
[+] Добавлено удаление дерева записей и стирание только одного
Необходимо открыть настройки компонента и пересохранить, чтобы применились описания кнопок и подсказок.
Текст удаления запиписи в окне необходимо заменить на новый:
Все комментарии к записи будут удалены. Желаете удалить запись №#ID#?
Версия 1.2.0
[+] Добавлен административный интерфейс управления комментариями в раздел Сервисы
Версия 1.1.0
[+] Добавлен новый компонент "Последние комментарии"
При добавлении нового вопроса/ответа/комментария кэш компонента будет обновляться
Версия 1.0.5
[x] Текстовые ссылки заменены на кликабельные с помошью JS, полностью закрытые от индексации
Версия 1.0.4
[х] Фикс описания компонента
Версия 1.0.3
[x] Фикс авторесайза поля вопроса/ответа
Версия 1.0.2
[+] Добавлен Gravatar
[x] Фикс интерфейса
Установка модуля