PHP библиотека

PHP библиотека

Данная библиотека является только одной из возможных реализаций, она не включает в себя выгрузку в локальную базу и закрузку комментариев из локальный базы в систему Recobox. Библиотека работает на основе HTTP уведомлений.

Пример использования:

<div id="rcb-comments">
<?php
    require_once 'recobox/recobox.php';
    $recobox = new Recobox();
    echo $recobox->getCommentsFormChannel();
?>
</div>
<script type="text/javascript">
    RCB = window.RCB || []; RCB.push({widget:"Comments",id: 10,});
    (function() {
        var RCBS = document.createElement("script");
        RCBS.type = "text/javascript"; RCBS.async = true;
        RCBS.src = "https://recobox.ru/widget/widget.js";
        var s = document.getElementsByTagName("script")[0];
        s.parentNode.insertBefore(RCBS, s.nextSibling);
    })();
</script>

Заметьте что php код добавлен к контейнер где будет выводится виджет комментариев, это нужно для того чтобы после того как сервер выведет комментарии из локальной базы, они затерлись самим виджетом. Так поисковые системы смогут проиндексировать комментарии.

Описание кода:
require_once 'recobox/recobox.php';

Подключаем класс для выгрузки комментариев из локальной базы.

$recobox = new Recobox();
echo $recobox->getCommentsFormChannel();

Создаем новый экземпляр и вызываем метод который получит из базы комментарии для текущей страницы.
У создании нового экземпляра класса есть 2 опции:

$recobox = new Recobox([
        'channel_with_query' => false, // по умолчанию
        'comments_limit' => 100 // по умолчанию
    ]);

По умолчанию метод getCommentsFormChannel() получает комментарии на основе url текущей страницы, т.е. если url имеет вид http://site.ru/test, то канал будет /test.
Если имеет вид http://site.ru/test?p=param1&p2=param2, то канал все равно будет иметь значение /test.
Но если активировать опцию 'channel_with_query' => true, то канал уже будет с параметрами /test?p=param1&p2=param2

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

Метод getCommentsFormChannel() можно вызывать с параметром названия канала, но по умолчанию название канала берется из url по правилам описанным выше.

В папке recobox есть php class для работы с базой данных safemysql.class.php, на 77 строке необходимо указать данные базы данных где будут храниться добавляемые комментарии(сервер, имя базы, имя пользователя и пароль).

Файл recobox_request.php принимает HTTP уведомления от Recobox и работает с базой. Путь к этому скрипту необходимо указать в настройках HTTP уведомлений виджета.

Файл tables.sql содержит структуру двух таблиц для базы данных.

Скачать