Commit 5873f023 authored by Vadim's avatar Vadim

Version 0.7

1. Настройка "Просматривают сейчас"
parent 9ddccc4a
......@@ -21,7 +21,13 @@
Для вставки HTML-кода на страницу используйте шорт-код `[bg_counter type='post' id='1234' now='true']` или php-функцию `bg_az_counter_views ($type, $id, $now);` в шаблоне записи (поста).
Параметры ***type*** и ***ID*** описаны выше, если задан параметр ***now*** с любым значением, то будут отображаться количество пользователей, просматривающих в данный момент страницу и общее количество просмотров страницы. В противном случае - только общее количество просмотров страницы.
Параметры ***type*** и ***ID*** описаны выше, если задан параметр ***now*** с значением ***true*** (или любое значение кроме null, false, 0, ""), то будут отображаться количество пользователей, просматривающих в данный момент страницу и общее количество просмотров страницы.
В случае ***now=false** (или 0, "") - только общее количество просмотров страницы.
Если этот параметр не задан (или задан как ***now=null***), то используется значение, заданное в настройках плагина.
Задавайте функцию `bg_az_counter_views` в шаблоне страниц так:
`<?php if (function_exists('bg_az_counter_views')) {echo bg_az_counter_views ('post', $post->ID);} ?>`
Эти две основные функции плагина реализованы на JavaScript, работают только на стороне клиента в реальном времени и не зависят от наличия и способа кеширования страниц.
......@@ -46,6 +52,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` **НЕ будет удален**! При необходимости, удалите его вручную.
.widget-item .bg-az-top-posts {
margin: 5px;
padding: 0;
}
.widget-item .bg-az-top-posts li {
padding: 5px;
list-style-type: none;
}
.widget-item .bg-az-top-posts>li:before {
content: '';
display: inline-block;
width: 4px;
height: 4px;
margin-right: 5px;
vertical-align: middle;
background: #90694a;
border: none;
border-radius: 50%;
}
.widget-item li a {
color: black;
}
.widget-item li .bg-az-count {
color: #999;
}
.widget-item li:hover {
background: #fff;
color: #e88f57;
transition: all .4s ease;
}
\ No newline at end of file
......@@ -4,13 +4,16 @@
*******************************************************************************************/
// Начальные значения
add_option('bg_counter_options', array('period'=>DAY_IN_SECONDS, 'debug'=>0, 'archive'=>0, 'wppp'=>0));
add_option('bg_counter_options', array('period'=>DAY_IN_SECONDS, 'now'=>0, 'debug'=>0, 'archive'=>0, 'wppp'=>0));
add_option('bg_wppp_loaded', '');
$val = get_option('bg_counter_options');
if (!isset($val['period'])) {
$val['period'] = DAY_IN_SECONDS;
update_option( 'bg_counter_period', $val['period'] );
}
if (!isset($val['now'])) {
$val['now'] = 0;
}
if (!isset($val['debug'])) {
$val['debug'] = 0;
}
......@@ -95,6 +98,7 @@ function bg_counter_settings(){
// параметры: $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_now', 'Просматривают сейчас', 'fill_bg_counter_now', 'bg_counter_page', 'section_1' );
add_settings_field('bg_counter_debug', 'Включить отладку', 'fill_bg_counter_debug', 'bg_counter_page', 'section_1' );
add_settings_field('bg_counter_archive', 'Загрузить данные из архива на сервер', 'fill_bg_counter_sendArchive', 'bg_counter_page', 'section_1' );
add_settings_field('bg_counter_wppp', 'Загрузить данные из WP Popular Posts на сервер', 'fill_bg_counter_wppp', 'bg_counter_page', 'section_1' );
......@@ -119,6 +123,15 @@ function fill_bg_counter_period(){
}
## Заполняем опцию 2
function fill_bg_counter_now(){
$val = get_option('bg_counter_options');
$val = $val ? $val['now'] : null;
?>
<label><input type="checkbox" name="bg_counter_options[now]" value="1" <?php checked(1, $val ); ?>/> (отображать количество пользователей, просматривающих запись в данный момент)</label>
<?php
}
## Заполняем опцию 3
function fill_bg_counter_debug(){
$val = get_option('bg_counter_options');
$val = $val ? $val['debug'] : null;
......@@ -163,9 +176,15 @@ function bg_counter_sanitize_callback( $options ){
if( $name == 'period' )
$val = intval( $val );
if( $name == 'now' )
$val = intval( $val );
if( $name == 'debug' )
$val = intval( $val );
if( $name == 'archive' )
$val = intval( $val );
if( $name == 'wppp' )
$val = intval( $val );
}
......
<?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