Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
B
bg-az-counter
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Registry
Registry
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
azbyka_bg
bg-az-counter
Commits
5a17b1c5
Commit
5a17b1c5
authored
Dec 22, 2019
by
Vadim
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Version 2.8
В админку добавлен блок для фальсификации статистики
parent
f6bba74c
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
96 additions
and
2 deletions
+96
-2
bg_az-counter.php
bg_az-counter.php
+49
-2
counter.php
inc/counter.php
+47
-0
No files found.
bg_az-counter.php
View file @
5a17b1c5
...
@@ -3,7 +3,7 @@
...
@@ -3,7 +3,7 @@
Plugin Name: Bg Az-Counter
Plugin Name: Bg Az-Counter
Plugin URI: https://bogaiskov.ru
Plugin URI: https://bogaiskov.ru
Description: Подсчет количества посещений страниц на базе stat.azbyka.ru
Description: Подсчет количества посещений страниц на базе stat.azbyka.ru
Version: 2.
7.6
Version: 2.
8
Author: VBog
Author: VBog
Author URI: https://bogaiskov.ru
Author URI: https://bogaiskov.ru
License: GPL2
License: GPL2
...
@@ -38,7 +38,7 @@
...
@@ -38,7 +38,7 @@
if
(
!
defined
(
'ABSPATH'
)
)
{
if
(
!
defined
(
'ABSPATH'
)
)
{
die
(
'Sorry, you are not allowed to access this page directly.'
);
die
(
'Sorry, you are not allowed to access this page directly.'
);
}
}
define
(
'BG_COUNTER_VERSION'
,
'2.
7.6
'
);
define
(
'BG_COUNTER_VERSION'
,
'2.
8
'
);
define
(
'BG_COUNTER_LOG'
,
dirname
(
__FILE__
)
.
'/bg_counter.log'
);
define
(
'BG_COUNTER_LOG'
,
dirname
(
__FILE__
)
.
'/bg_counter.log'
);
define
(
'BG_COUNTER_STAT_COUNTERS'
,
'https://stat.azbyka.ru/counters'
);
define
(
'BG_COUNTER_STAT_COUNTERS'
,
'https://stat.azbyka.ru/counters'
);
...
@@ -155,3 +155,50 @@ function bg_counter_deinstall() {
...
@@ -155,3 +155,50 @@ function bg_counter_deinstall() {
include_once
(
"inc/counter.php"
);
include_once
(
"inc/counter.php"
);
// Запускаем голосование
// Запускаем голосование
include_once
(
"inc/rating.php"
);
include_once
(
"inc/rating.php"
);
/*****************************************************************************************
Блок фальсификации данных статистики
******************************************************************************************/
add_action
(
'admin_init'
,
'azbyka_falsification'
,
1
);
// Создание блока в админке
function
azbyka_falsification
()
{
add_meta_box
(
'azbyka_falsification'
,
'Фальсификация статистики'
,
'azbyka_falsification_box_func'
,
'post'
,
'side'
,
'high'
);
}
// Добавление поля 'Фальсификация данных статистики'
function
azbyka_falsification_box_func
(
$post
){
wp_nonce_field
(
basename
(
__FILE__
),
'azbyka_falsification_nonce'
);
$path
=
'/post/'
.
$post
->
ID
;
$count
=
getCount
(
$path
);
if
(
$count
)
$count
=
$count
->
total
;
else
$count
=
"Нет счетчика"
;
?>
<b>
Количество посещений:
</b>
<?php
echo
$count
;
?>
<br>
<label>
Введите любое число > 0:
<br>
<input
type=
"number"
name=
"azbyka_falsh_counts"
value=
""
min=
1
/><br>
и нажмите кнопку "Опубликовать/Обновить".
</label>
<i>
Если оставить поле пустым, счетчик сохранит свое истинное значение.
</i>
<?php
}
// Сохранение значений счетчика при автосохранении поста
add_action
(
'save_post'
,
'azbyka_falsification_update'
,
0
);
// Сохранение значений счетчика при сохранении поста
function
azbyka_falsification_update
(
$post_id
){
// проверяем, пришёл ли запрос со страницы с метабоксом
if
(
!
isset
(
$_POST
[
'azbyka_falsification_nonce'
]
)
||
!
wp_verify_nonce
(
$_POST
[
'azbyka_falsification_nonce'
],
basename
(
__FILE__
)
)
)
return
$post_id
;
// проверяем, является ли запрос автосохранением
if
(
defined
(
'DOING_AUTOSAVE'
)
&&
DOING_AUTOSAVE
)
return
$post_id
;
// проверяем, права пользователя, может ли он редактировать записи
if
(
!
current_user_can
(
'edit_post'
,
$post_id
)
)
return
$post_id
;
if
(
!
empty
(
$_POST
[
'azbyka_falsh_counts'
]
)
)
{
$counter
=
(
int
)
$_POST
[
'azbyka_falsh_counts'
];
$path
=
'/post/'
.
$post_id
;
if
(
$counter
>
0
)
setCount
(
$path
,
$counter
);
}
}
inc/counter.php
View file @
5a17b1c5
...
@@ -77,6 +77,53 @@ function getPopularPosts ($limit, $offset=0, $number=false) {
...
@@ -77,6 +77,53 @@ function getPopularPosts ($limit, $offset=0, $number=false) {
}
}
}
}
/*****************************************************************************************
/*****************************************************************************************
GET /counters/<path>
Возвращает текущие значения счётчика - общий счётчик и количество
просматривающих в данный момент.
Пример запроса:
GET /counters/project/test/author/1/book/3
Пример ответа:
{
"success":true,
"data":{
"now":3,
"total":34
}
}
******************************************************************************************/
// Получить 1 счетчик
function
getCount
(
$path
)
{
global
$project
;
$result
=
wp_remote_get
(
BG_COUNTER_STAT_COUNTERS
.
$project
.
$path
);
if
(
is_wp_error
(
$result
)
)
{
error_log
(
PHP_EOL
.
current_time
(
'mysql'
)
.
" COUNTERS. Ошибка при получении данных с сервера: "
.
$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
.
current_time
(
'mysql'
)
.
" RATING (top posts). Сервер вернул код ошибки: "
.
$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
)
{
return
$response
->
data
;
}
else
{
error_log
(
PHP_EOL
.
current_time
(
'mysql'
)
.
" COUNTERS. Сервер вернул ответ неудачи:
\n
"
.
$json
,
3
,
BG_COUNTER_LOG
);
return
false
;
}
}
/*****************************************************************************************
POST /set-counter/<path>
POST /set-counter/<path>
Задаёт значение счётчика и создаёт его, если счётчик не существовал.
Задаёт значение счётчика и создаёт его, если счётчик не существовал.
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment