Commit e0e0658a authored by Vadim's avatar Vadim

Readme

parent 2dbbcf7a
Плагин **Bg Az-Counter** обеспечивает работу клиентской части системы подсчета количества посещений страниц на базе Redis-based сервера `https://stat.azbyka.ru`. Код и описание работы сервера [см. здесь](https://gitlab.eterfund.ru/azbyka/stats-server). ## Плагин выполняет следующие функции: ### 1. Передает на сервер информацию об открытии страницы пользователем ### 2. Запрашивает сервер и отображает на странице количество пользователей, просматривающих в данный момент страницу и общее количество просмотров страницы. Для этого на странице должны быть размещена следующая HTML-разметка: ```html <span class="bg-az-counter" data-type="post" data-ID="1234"> <span class="bg-az-counter-now"></span> <span class="bg-az-counter-views"></span> </span> ``` где * ***data-type*** - тип записи (пока поддерживается только *post*, но при желании можно сделать *category*, *mark* и что-нибудь еще), * ***data-ID*** - ID записи (объекта). Для вставки HTML-кода на страницу используйте шорт-код `[bg_counter type='post' id='1234' now='true']` или php-функцию `bg_az_counter_views ($type, $id, $now);` в шаблоне записи (поста). Параметры ***type*** и ***ID*** описаны выше, если задан параметр ***now*** с значением ***true*** (или любое значение кроме null, false, 0, ""), то будут отображаться количество пользователей, просматривающих в данный момент страницу и общее количество просмотров страницы. Если параметрам ***type*** и/или ***ID*** заданы пустые значения, то будет выведено общее количество просмотров и онлайн-посетителей на сайте. В случае ***now=false*** (или 0, "") - только общее количество просмотров страницы. Если этот параметр не задан (или задан как ***now=null***), то используется значение, заданное в настройках плагина. Задавайте функцию `bg_az_counter_views` в шаблоне страниц так: ```php <?php if (function_exists('bg_az_counter_views')) {echo bg_az_counter_views ('post', $post->ID);} ?> ``` ### 3. Создает форму для оценки пользователем поста Для вставки формы на страницу используйте шорт-код `[bg_az_rating type='post' id='1234']` или php-функцию `bg_az_counter_rating ($type, $id);` в шаблоне записи (поста). Параметры ***type*** и ***ID*** те же, что и для счетчика просмотров страницы и описаны выше. По умолчанию ***type = 'post'*** и/или ***ID = <ID текущего поста>***. Задавайте функцию `bg_az_counter_views` в шаблоне страниц так: ```php <?php if (function_exists('bg_az_counter_rating')) {echo bg_az_counter_rating ('post', $post->ID);} ?> ``` Форма также формирует снипеты для поисковых ботов: ```html <span itemscope="" itemtype="http://schema.org/AggregateRating"> <meta itemprop="bestRating" content="5" /> <meta itemprop="worstRating" content="1" /> <meta itemprop="author" content="{$author}" /> <meta itemprop="itemReviewed" content="{$page_title}" /> <meta content="{$score}" itemprop="ratingValue"> <meta content="{$votes}" itemprop="ratingCount"> </span> ``` ### 4. Параметры JS-скриптов Описанные выше основные функции плагина реализованы на JavaScript, работают только на стороне клиента в реальном времени и не зависят от наличия и способа кеширования страниц. Параметры для JS-скрипта (в плагине задаются автоматически): ```html <script> var bg_counter = { "counterurl":"https://stat.azbyka.ru/counters", // Всегда "rateurl":"https://stat.azbyka.ru/rate", // Всегда "websocket":"wss://stat.azbyka.ru/realtime-view", // Всегда "project":"/project/propovedi", // Имя текущего проекта "type":"post", // Пока только "post" или пусто для ID="" "ID":"1234", // ID поста или пусто, чтобы не собирать статистику "votes5":"голосов", "votes2":"голоcа", "vote1":"голос", "voted":"Вы уже проголосовали", "price":["ужасно", "плохо", "удовлетворительно", "хорошо", "отлично"], "debug":"" // Выводить или нет инфу в консоль }; </script> ``` ### 5. Выводит на экран список популярных постов и рейтинга записей Для вывода списка популярных постов используйте шорт-код `[bg_counter_top_posts limit='10' number='true']` или php-функцию `getPopularPosts ($limit, $number);`, где ***limit ($limit)*** - количество постов в списке, ***number ($number) = true*** - нумерованный список, ***false*** - ненумерованный. В настройках плагина можно задать периодичность обновления списка популярных постов: моментально, каждый час, ежедневно, еженедельно, ежемесячно, ежегодно. Поскольку эта возможность реализована на серверной стороне WP необходимо согласовать это время с обновлением кеш страниц. Формат вывода списка на экран: ```html <ul class="bg-az-top-posts"> <li> <a href="https://azbyka.ru/.../?p=186" title="...">...</a> - <span class="bg-az-count">...</span> </li> <li> <a href="https://azbyka.ru/.../?p=263" title="...">...</a> - <span class="bg-az-count">...</span> </li> ... </ul> ``` Для вывода списка популярных постов используйте шорт-код `[bg_counter_post_rating limit='10' number='true']` или php-функцию `getPostRating ($limit, $number);`, где ***limit ($limit)*** - количество постов в списке, ***number ($number) = true*** - нумерованный список, ***false*** - ненумерованный. Для отображения в боковой панели используйте виджеты **"Популярные записи"** и **"Рейтинг записей"**, который работает аналогично соответствующему шорт-коду. **Виджет "Сейчас на сайте"**, выводит в боковую панель количество онлайн-посетителей на сайте и общее количество просмотров страниц. ## Импорт данных, архивирование и валидация данных Плагин позволяет загрузить на сервер данные из плагинов **Post Views Counter** и/или **WP Popular Posts**, а также из произвольных полей **"views"**. Данные рейтинга постов можно загрузить из плагина **Bg Az-Rating**. Кроме того плагин ежедневно сохраняет архив данных в файлах `wp-content/uploads/bg_az_counter.json` и `wp-content/uploads/bg_az_rating.json`, которые при необходимости можно также загрузить на сервер. В случае возникновения проблем при сохранении архива ошибки фиксируются в логе плагина: `wp-content/plugins/bg-az-counter/bg_counter.log`. Чтобы удалить лишние записи с сервера достаточно обнулить значения счетчиков. При ежедневном архивировании данных происходит их проверка на валидность. Проверяется есть ли в БД WP запись с данным **ID**, имеет ли эта запись тип *'post'*, *'page'* или ползователский тип, а статус - *'publish'*. Все некорректные записи обнуляются и будут удалены на сервере. **Внимание!** После удаления плагина файлы `wp-content/uploads/bg_az_counter.json` и `wp-content/uploads/bg_az_rating.json` **НЕ будут удалены**! При необходимости, удалите их вручную.
\ No newline at end of file
Плагин **Bg Az-Counter** обеспечивает работу клиентской части системы подсчета количества посещений страниц на базе Redis-based сервера `https://stat.azbyka.ru`. Код и описание работы сервера [см. здесь](https://gitlab.eterfund.ru/azbyka/stats-server). ## Плагин выполняет следующие функции: ### 1. Передает на сервер информацию об открытии страницы пользователем ### 2. Запрашивает сервер и отображает на странице количество пользователей, просматривающих в данный момент страницу и общее количество просмотров страницы. Для этого на странице должны быть размещена следующая HTML-разметка: ```html <span class="bg-az-counter" data-type="post" data-ID="1234"> <span class="bg-az-counter-now"></span> <span class="bg-az-counter-views"></span> </span> ``` где * ***data-type*** - тип записи (пока поддерживается только *post*, но при желании можно сделать *category*, *mark* и что-нибудь еще), * ***data-ID*** - ID записи (объекта). Для вставки HTML-кода на страницу используйте шорт-код `[bg_counter type='post' id='1234' now='true']` или php-функцию `bg_az_counter_views ($type, $id, $now);` в шаблоне записи (поста). Параметры ***type*** и ***ID*** описаны выше, если задан параметр ***now*** с значением ***true*** (или любое значение кроме null, false, 0, ""), то будут отображаться количество пользователей, просматривающих в данный момент страницу и общее количество просмотров страницы. Если параметрам ***type*** и/или ***ID*** заданы пустые значения, то будет выведено общее количество просмотров и онлайн-посетителей на сайте. В случае ***now=false*** (или 0, "") - только общее количество просмотров страницы. Если этот параметр не задан (или задан как ***now=null***), то используется значение, заданное в настройках плагина. Задавайте функцию `bg_az_counter_views` в шаблоне страниц так: ```php <?php if (function_exists('bg_az_counter_views')) {echo bg_az_counter_views ('post', $post->ID);} ?> ``` ### 3. Создает форму для оценки пользователем поста Для вставки формы на страницу используйте шорт-код `[bg_az_rating type='post' id='1234']` или php-функцию `bg_az_counter_rating ($type, $id);` в шаблоне записи (поста). Параметры ***type*** и ***ID*** те же, что и для счетчика просмотров страницы и описаны выше. По умолчанию ***type = 'post'*** и/или ***ID = <ID текущего поста>***. Задавайте функцию `bg_az_counter_views` в шаблоне страниц так: ```php <?php if (function_exists('bg_az_counter_rating')) {echo bg_az_counter_rating ('post', $post->ID);} ?> ``` Форма также формирует снипеты для поисковых ботов: ```html <span itemscope="" itemtype="http://schema.org/AggregateRating"> <meta itemprop="bestRating" content="5" /> <meta itemprop="worstRating" content="1" /> <meta itemprop="author" content="{$author}" /> <meta itemprop="itemReviewed" content="{$page_title}" /> <meta content="{$score}" itemprop="ratingValue"> <meta content="{$votes}" itemprop="ratingCount"> </span> ``` ### 4. Параметры JS-скриптов Описанные выше основные функции плагина реализованы на JavaScript, работают только на стороне клиента в реальном времени и не зависят от наличия и способа кеширования страниц. Параметры для JS-скрипта (в плагине задаются автоматически): ```html <script> var bg_counter = { "counterurl":"https://stat.azbyka.ru/counters", // Всегда "rateurl":"https://stat.azbyka.ru/rate", // Всегда "websocket":"wss://stat.azbyka.ru/realtime-view", // Всегда "project":"/project/propovedi", // Имя текущего проекта "type":"post", // Пока только "post" или пусто для ID="" "ID":"1234", // ID поста или пусто, чтобы не собирать статистику "votes5":"голосов", "votes2":"голоcа", "vote1":"голос", "voted":"Вы уже проголосовали", "price":["ужасно", "плохо", "удовлетворительно", "хорошо", "отлично"], "debug":"" // Выводить или нет инфу в консоль }; </script> ``` ### 5. Выводит на экран список популярных постов и рейтинга записей Для вывода списка популярных постов используйте шорт-код `[bg_counter_top_posts limit='10' number='true']` или php-функцию `getPopularPosts ($limit, $number);`, где ***limit ($limit)*** - количество постов в списке, ***number ($number) = true*** - нумерованный список, ***false*** - ненумерованный. В настройках плагина можно задать периодичность обновления списка популярных постов: моментально, каждый час, ежедневно, еженедельно, ежемесячно, ежегодно. Поскольку эта возможность реализована на серверной стороне WP необходимо согласовать это время с обновлением кеш страниц. Формат вывода списка на экран: ```html <ul class="bg-az-top-posts"> <li> <a href="https://azbyka.ru/.../?p=186" title="...">...</a> - <span class="bg-az-count">...</span> </li> <li> <a href="https://azbyka.ru/.../?p=263" title="...">...</a> - <span class="bg-az-count">...</span> </li> ... </ul> ``` Для вывода списка популярных постов используйте шорт-код `[bg_counter_post_rating limit='10' number='true']` или php-функцию `getPostRating ($limit, $number);`, где ***limit ($limit)*** - количество постов в списке, ***number ($number) = true*** - нумерованный список, ***false*** - ненумерованный. Для отображения в боковой панели используйте виджеты **"Популярные записи"** и **"Рейтинг записей"**, который работает аналогично соответствующему шорт-коду. **Виджет "Сейчас на сайте"**, выводит в боковую панель количество онлайн-посетителей на сайте и общее количество просмотров страниц. Количество онлайн-посетителей обновляется каждые 5 секунд. Остальные показатели не изменяются. ## Импорт данных, архивирование и валидация данных Плагин позволяет загрузить на сервер данные из плагинов **Post Views Counter** и/или **WP Popular Posts**, а также из произвольных полей **"views"**. Данные рейтинга постов можно загрузить из плагина **Bg Az-Rating**. Кроме того плагин ежедневно сохраняет архив данных в файлах `wp-content/uploads/bg_az_counter.json` и `wp-content/uploads/bg_az_rating.json`, которые при необходимости можно также загрузить на сервер. В случае возникновения проблем при сохранении архива ошибки фиксируются в логе плагина: `wp-content/plugins/bg-az-counter/bg_counter.log`. Чтобы удалить лишние записи с сервера достаточно обнулить значения счетчиков. При ежедневном архивировании данных происходит их проверка на валидность. Проверяется есть ли в БД WP запись с данным **ID**, имеет ли эта запись тип *'post'*, *'page'* или ползователский тип, а статус - *'publish'*. Все некорректные записи обнуляются и будут удалены на сервере. **Внимание!** После удаления плагина файлы `wp-content/uploads/bg_az_counter.json` и `wp-content/uploads/bg_az_rating.json` **НЕ будут удалены**! При необходимости, удалите их вручную.
\ No newline at end of file
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment