Commit 8496b75f authored by Vadim's avatar Vadim

Version 0.5

Расширен лог ошибок
parent 9ddccc4a
......@@ -46,6 +46,7 @@
Для вывода списка популярных постов в боковую панель используйте **виджет "Популярные записи"**, который работает аналогично соответствующему шорт-коду.
Плагин позволяет загрузить на сервер данные из плагина **WP Popular Posts**, а также ежедневно сохраняет архив данных в файле `wp-content/uploads/bg_az_counter.json`, которые при необходимости можно также загрузить на сервер.
В случае возникновения проблем при сохранении архива ошибки фиксируются в логе плагина: `wp-content/plugins/bg-az-counter/bg_counter.log`.
**Внимание!** После удаления плагина файл `wp-content/uploads/bg_az_counter.json` **НЕ будет удален**! При необходимости, удалите его вручную.
......@@ -3,7 +3,7 @@
Plugin Name: Bg Az-Counter
Plugin URI: https://bogaiskov.ru
Description: Подсчет количества посещений страниц на базе stat.azbyka.ru
Version: 0.4
Version: 0.5
Author: VBog
Author URI: https://bogaiskov.ru
License: GPL2
......@@ -38,7 +38,7 @@ if ( !defined('ABSPATH') ) {
die( 'Sorry, you are not allowed to access this page directly.' );
}
define('BG_COUNTER_VERSION', '0.4.2');
define('BG_COUNTER_VERSION', '0.5.1');
define('BG_COUNTER_LOG', dirname(__FILE__ ).'/bg_counter.log');
define('BG_COUNTER_STAT_COUNTERS','https://stat.azbyka.ru/counters');
define('BG_COUNTER_STAT_RAITING','https://stat.azbyka.ru/rating');
......@@ -109,7 +109,7 @@ function bg_counter_daily_action () {
// Сохраняем архив результатов
$result = bg_counter_saveStatictics();
if ($result !== false) update_option( 'bg_archive_status', "<div class='notice notice-info'><p><b>".date("Y-m-d H:i:s", time())."</b> сохранено <b>". $result ."</b> записей в файле архива статистики: <code>". BG_COUNTER_ARCHIVE ."</code></p></div>" );
else update_option( 'bg_archive_status', "<div class='notice notice-error'><p><b>".date("Y-m-d H:i:s", time())."</b> Ошибка при сохранении данных статистки</p></div>" );
else update_option( 'bg_archive_status', "<div class='notice notice-error'><p><b>".date("Y-m-d H:i:s", time())."</b> Ошибка при сохранении данных статистки. См. журнал ошибок: <code>". BG_COUNTER_LOG ."</code></p></div>" );
}
......@@ -149,7 +149,17 @@ function getPopularPosts ($limit, $offset=0) {
$option = get_option('bg_counter_options');
$result = wp_remote_get (BG_COUNTER_STAT_RAITING.$project."?limit=".$limit."&offset=".$offset."&type=post");
if( is_wp_error( $result ) ) return false;
if( is_wp_error( $result ) ) {
error_log( PHP_EOL .date("Y-m-d H:i:s ", time())." РЕЙТИНГ. Ошибка при получении данных с сервера: ".$result->get_error_message(), 3, BG_COUNTER_LOG ); // сообщение ошибки
error_log( " " .$result->get_error_code(), 3, BG_COUNTER_LOG ); // ключ ошибки
return false;
}
if (($code = wp_remote_retrieve_response_code( $result )) != 200) {
error_log( PHP_EOL .date("Y-m-d H:i:s ", time())." РЕЙТИНГ. Сервер вернул код ошибки: ".$code, 3, BG_COUNTER_LOG ); // сообщение ошибки
error_log( " " .wp_remote_retrieve_response_message( $result ), 3, BG_COUNTER_LOG ); // ключ ошибки
return false;
}
$json = wp_remote_retrieve_body($result);
......@@ -171,7 +181,10 @@ function getPopularPosts ($limit, $offset=0) {
set_transient( $the_key, $quote, $option['period'] );
}
return $quote;
} else return false;
} else {
error_log( PHP_EOL .date("Y-m-d H:i:s ", time())." РЕЙТИНГ. Сервер вернул ответ неудачи: ".print_r($response, true), 3, BG_COUNTER_LOG );
return false;
}
}
/*****************************************************************************************
POST /set-counter/<path>
......@@ -196,15 +209,19 @@ function setCounts ($path, $counter) {
if( is_wp_error( $result ) ) {
echo "<br>".$result->get_error_message(); // сообщение ошибки
echo "<br>".$result->get_error_code(); // ключ ошибки
error_log( PHP_EOL .date("Y-m-d H:i:s ", time())." СЧЁТЧИК. Ошибка при получении данных с сервера: ".$result->get_error_message(), 3, BG_COUNTER_LOG ); // сообщение ошибки
error_log( " " .$result->get_error_code(), 3, BG_COUNTER_LOG ); // ключ ошибки
return false;
}
$json = wp_remote_retrieve_body($result);
$response = json_decode($json, false);
if ($response->success) return true;
else echo $json;
return false;
else {
echo $json;
error_log( PHP_EOL .date("Y-m-d H:i:s ", time())." СЧЁТЧИК. Сервер вернул ответ неудачи: ".print_r($response, true), 3, BG_COUNTER_LOG );
return false;
}
}
......@@ -301,15 +318,21 @@ function bg_counter_saveStatictics() {
while ($count >= $limit) {
$result = wp_remote_get (BG_COUNTER_STAT_RAITING.$project."?limit=".$limit."&offset=".$offset."&type=post");
if( is_wp_error( $result ) ) {
error_log( PHP_EOL .date("Y-m-d H:i:s ", time()).$result->get_error_message(), 3, BG_COUNTER_LOG ); // сообщение ошибки
error_log( PHP_EOL .date("Y-m-d H:i:s ", time())." АРХИВ. Ошибка при получении данных с сервера: ".$result->get_error_message(), 3, BG_COUNTER_LOG ); // сообщение ошибки
error_log( " " .$result->get_error_code(), 3, BG_COUNTER_LOG ); // ключ ошибки
return false;
}
if (($code = wp_remote_retrieve_response_code( $result )) != 200) {
error_log( PHP_EOL .date("Y-m-d H:i:s ", time())." АРХИВ. Сервер вернул код ошибки: ".$code, 3, BG_COUNTER_LOG ); // сообщение ошибки
error_log( " " .wp_remote_retrieve_response_message( $result ), 3, BG_COUNTER_LOG ); // ключ ошибки
return false;
}
$json = wp_remote_retrieve_body($result);
$response = json_decode($json, false);
if (!$response->success) {
error_log( PHP_EOL .date("Y-m-d H:i:s ", time()).print_r($response, true), 3, BG_COUNTER_LOG );
error_log( PHP_EOL .date("Y-m-d H:i:s ", time())." АРХИВ. Сервер вернул ответ неудачи: ".print_r($response, true), 3, BG_COUNTER_LOG );
return false;
}
$count = count($response->data);
......@@ -318,7 +341,7 @@ function bg_counter_saveStatictics() {
}
$json = json_encode($data);
if (file_put_contents ( ABSPATH.BG_COUNTER_ARCHIVE, $json ) === false) {
error_log( PHP_EOL .date("Y-m-d H:i:s ", time())."Ошибка записи в файл ".BG_COUNTER_ARCHIVE, 3, BG_COUNTER_LOG );
error_log( PHP_EOL .date("Y-m-d H:i:s ", time())." АРХИВ. Ошибка записи в файл: ".BG_COUNTER_ARCHIVE, 3, BG_COUNTER_LOG );
return false;
}
return ($offset-$limit+$count);
......@@ -333,7 +356,7 @@ function bg_counter_sendArchiveData() {
// Получить данные из файла архива
$json = file_get_contents ( ABSPATH.BG_COUNTER_ARCHIVE);
if (!$json) {
echo "<br>" ."Ошибка чтения файла ".BG_COUNTER_ARCHIVE;
echo "<br>" ."Ошибка чтения файла: ".BG_COUNTER_ARCHIVE;
return false;
}
$data = json_decode($json, true);
......
<?php
class bg_counter_TopPostsWidget extends WP_Widget {
/*
* создание виджета
*/
// создание виджета
function __construct() {
parent::__construct(
'bg_counter_top_widget',
......@@ -12,9 +10,7 @@ class bg_counter_TopPostsWidget extends WP_Widget {
);
}
/*
* фронтэнд виджета
*/
// фронтэнд виджета
public function widget( $args, $instance ) {
$title = apply_filters( 'widget_title', $instance['title'] ); // к заголовку применяем фильтр (необязательно)
$posts_per_page = $instance['posts_per_page'];
......@@ -37,9 +33,7 @@ class bg_counter_TopPostsWidget extends WP_Widget {
echo $args['after_widget'];
}
/*
* бэкэнд виджета
*/
// бэкэнд виджета
public function form( $instance ) {
if ( isset( $instance[ 'title' ] ) ) {
$title = $instance[ 'title' ];
......@@ -59,9 +53,7 @@ class bg_counter_TopPostsWidget extends WP_Widget {
<?php
}
/*
* сохранение настроек виджета
*/
// сохранение настроек виджета
public function update( $new_instance, $old_instance ) {
$instance = array();
$instance['title'] = ( ! empty( $new_instance['title'] ) ) ? strip_tags( $new_instance['title'] ) : '';
......@@ -70,9 +62,7 @@ class bg_counter_TopPostsWidget extends WP_Widget {
}
}
/*
* регистрация виджета
*/
// регистрация виджета
function bg_counter_top_posts_widget_load() {
register_widget( 'bg_counter_TopPostsWidget' );
}
......
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