Commit a779923b authored by Vadim's avatar Vadim

Version 2.4

Опция Периодичность обновления счетчиков online-посетителей
parent 85473d5c
...@@ -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.3.2 Version: 2.4
Author: VBog Author: VBog
Author URI: https://bogaiskov.ru Author URI: https://bogaiskov.ru
License: GPL2 License: GPL2
...@@ -37,7 +37,7 @@ ...@@ -37,7 +37,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.3.2'); define('BG_COUNTER_VERSION', '2.4');
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');
...@@ -106,6 +106,7 @@ function bg_counter_enqueue_frontend_scripts () { ...@@ -106,6 +106,7 @@ function bg_counter_enqueue_frontend_scripts () {
'scoreurl' => BG_COUNTER_STAT_SCORE, // Всегда 'https://stat.azbyka.ru/item-score' 'scoreurl' => BG_COUNTER_STAT_SCORE, // Всегда 'https://stat.azbyka.ru/item-score'
'websocket' => BG_COUNTER_REALTIME_VIEW, // Всегда 'wss://stat.azbyka.ru/realtime-view' 'websocket' => BG_COUNTER_REALTIME_VIEW, // Всегда 'wss://stat.azbyka.ru/realtime-view'
'updatesocket' => BG_COUNTER_REALTIME_UPDATES, // Всегда 'wss://stat.azbyka.ru/updates' 'updatesocket' => BG_COUNTER_REALTIME_UPDATES, // Всегда 'wss://stat.azbyka.ru/updates'
'updatetime' => (int) $option['update'], // Время обновление счетчиков онлайн-посетителей
'project' => $project, // Имя текущего проекта, например, '/propovedi' 'project' => $project, // Имя текущего проекта, например, '/propovedi'
'type' => $type, // Пока только 'post' или пусто 'type' => $type, // Пока только 'post' или пусто
'ID' => $postID, // ID поста 'ID' => $postID, // ID поста
...@@ -140,55 +141,3 @@ function bg_counter_deinstall() { ...@@ -140,55 +141,3 @@ function bg_counter_deinstall() {
include_once ("inc/counter.php"); include_once ("inc/counter.php");
// Запускаем голосование // Запускаем голосование
include_once ("inc/rating.php"); include_once ("inc/rating.php");
/*****************************************************************************************
Этот блок позволяет найти на сайте посты-ссылки,
по наличию произвольного поля 'link'
Шорт-код [find_meta_link] выводит на экран список таких постов
с ссылкой на страницу его редактирования
******************************************************************************************/
// Регистрируем шорт-код find_meta_link
add_shortcode( 'find_meta_link', 'find_meta_link_shortcode' );
// [find_meta_link]
function find_meta_link_shortcode( $atts ) {
// Список типов записей имеющих страницу во форонте
$post_types = get_post_types( [ 'publicly_queryable'=>1 ] );
$post_types['page'] = 'page'; // встроенный тип не имеет publicly_queryable
unset( $post_types['attachment'] ); // удалим attachment
$true_query = new WP_Query( $true_args );
// задаем нужные нам критерии выборки данных из БД
$args = array(
'posts_per_page' => -1,
'post_type' => $post_types,
'meta_query' => array(
array(
'key' => 'link'
)
)
);
$query = new WP_Query( $args );
// Цикл
if ( $query->have_posts() ) {
$quote .= '<ol>';
while ( $query->have_posts() ) {
$query->the_post();
$quote .= '<li><a href="'.site_url().'/wp-admin/post.php?post=' . get_the_ID() . '&action=edit">' . get_the_title() . '</a></li>';
}
}
$quote .= '</ol>';
// Возвращаем оригинальные данные поста. Сбрасываем $post.
wp_reset_postdata();
return "{$quote}";
}
...@@ -4,7 +4,7 @@ ...@@ -4,7 +4,7 @@
*******************************************************************************************/ *******************************************************************************************/
// Начальные значения // Начальные значения
add_option('bg_counter_options', array('period'=>DAY_IN_SECONDS, 'views'=>1, 'now'=>1, 'rate'=>1, 'title'=>'', 'author'=>'', 'debug'=>0, 'archive'=>0, 'pvc'=>0, 'wppp'=>0, 'wppm'=>0, 'bgar'=>0)); add_option('bg_counter_options', array('period'=>DAY_IN_SECONDS, 'update'=>3000, 'views'=>1, 'now'=>1, 'rate'=>1, 'title'=>'', 'author'=>'', 'debug'=>0, 'archive'=>0, 'pvc'=>0, 'wppp'=>0, 'wppm'=>0, 'bgar'=>0));
add_option('bg_pvc_loaded', ''); add_option('bg_pvc_loaded', '');
add_option('bg_wppp_loaded', ''); add_option('bg_wppp_loaded', '');
add_option('bg_wppm_loaded', ''); add_option('bg_wppm_loaded', '');
...@@ -14,6 +14,10 @@ if (!isset($val['period'])) { ...@@ -14,6 +14,10 @@ if (!isset($val['period'])) {
$val['period'] = DAY_IN_SECONDS; $val['period'] = DAY_IN_SECONDS;
update_option( 'bg_counter_period', $val['period'] ); update_option( 'bg_counter_period', $val['period'] );
} }
if (!isset($val['update'])) {
$val['update'] = 3000;
update_option( 'bg_counter_period', $val['update'] );
}
if (!isset($val['views'])) { if (!isset($val['views'])) {
$val['views'] = 0; $val['views'] = 0;
} }
...@@ -188,6 +192,7 @@ function bg_counter_settings(){ ...@@ -188,6 +192,7 @@ function bg_counter_settings(){
// параметры: $id, $title, $callback, $page, $section, $args // параметры: $id, $title, $callback, $page, $section, $args
add_settings_field('bg_counter_period', 'Периодичность обработки данных', 'fill_bg_counter_period', 'bg_counter_page', 'section_1' ); add_settings_field('bg_counter_period', 'Периодичность обработки данных', 'fill_bg_counter_period', 'bg_counter_page', 'section_1' );
add_settings_field('bg_counter_update', 'Периодичность обновления счетчиков online-посетителей', 'fill_bg_counter_update', 'bg_counter_page', 'section_1' );
add_settings_field('bg_counter_views', 'Просмотров всего', 'fill_bg_counter_views', 'bg_counter_page', 'section_1' ); add_settings_field('bg_counter_views', 'Просмотров всего', 'fill_bg_counter_views', 'bg_counter_page', 'section_1' );
add_settings_field('bg_counter_now', 'Просматривают сейчас', 'fill_bg_counter_now', 'bg_counter_page', 'section_1' ); add_settings_field('bg_counter_now', 'Просматривают сейчас', 'fill_bg_counter_now', 'bg_counter_page', 'section_1' );
add_settings_field('bg_counter_rate', 'Оценка пользователями', 'fill_bg_counter_rate', 'bg_counter_page', 'section_1' ); add_settings_field('bg_counter_rate', 'Оценка пользователями', 'fill_bg_counter_rate', 'bg_counter_page', 'section_1' );
...@@ -202,7 +207,7 @@ function bg_counter_settings(){ ...@@ -202,7 +207,7 @@ function bg_counter_settings(){
} }
## Заполняем опцию 1 ## Заполняем опцию 1a
function fill_bg_counter_period(){ function fill_bg_counter_period(){
$val = get_option('bg_counter_options'); $val = get_option('bg_counter_options');
$val = $val ? $val['period'] : DAY_IN_SECONDS; $val = $val ? $val['period'] : DAY_IN_SECONDS;
...@@ -219,6 +224,15 @@ function fill_bg_counter_period(){ ...@@ -219,6 +224,15 @@ function fill_bg_counter_period(){
<?php <?php
} }
## Заполняем опцию 1b
function fill_bg_counter_update(){
$val = get_option('bg_counter_options');
$val = $val['update'];
?>
<input type="number" name="bg_counter_options[update]" value="<?php echo esc_attr( $val ) ?>" step="100" min="500" /> мсек.
<?php
}
## Заполняем опцию 2a ## Заполняем опцию 2a
function fill_bg_counter_views(){ function fill_bg_counter_views(){
$val = get_option('bg_counter_options'); $val = get_option('bg_counter_options');
......
...@@ -62,7 +62,7 @@ jQuery( document ).ready(function() { ...@@ -62,7 +62,7 @@ jQuery( document ).ready(function() {
}); });
var json = JSON.stringify(data); var json = JSON.stringify(data);
var request = bg_counter.updatesocket; var request = bg_counter.updatesocket+(bg_counter.updatetime?('?time='+bg_counter.updatetime):'');
// Создаем сокет // Создаем сокет
var updatesocket = new ReconnectingWebSocket(request); var updatesocket = new ReconnectingWebSocket(request);
// Отправляем данные, как только сокет будет подключен // Отправляем данные, как только сокет будет подключен
......
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