Commit 5873f023 authored by Vadim's avatar Vadim

Version 0.7

1. Настройка "Просматривают сейчас"
parent 9ddccc4a
...@@ -21,7 +21,13 @@ ...@@ -21,7 +21,13 @@
Для вставки HTML-кода на страницу используйте шорт-код `[bg_counter type='post' id='1234' now='true']` или php-функцию `bg_az_counter_views ($type, $id, $now);` в шаблоне записи (поста). Для вставки 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, работают только на стороне клиента в реальном времени и не зависят от наличия и способа кеширования страниц. Эти две основные функции плагина реализованы на JavaScript, работают только на стороне клиента в реальном времени и не зависят от наличия и способа кеширования страниц.
...@@ -46,6 +52,7 @@ ...@@ -46,6 +52,7 @@
Для вывода списка популярных постов в боковую панель используйте **виджет "Популярные записи"**, который работает аналогично соответствующему шорт-коду. Для вывода списка популярных постов в боковую панель используйте **виджет "Популярные записи"**, который работает аналогично соответствующему шорт-коду.
Плагин позволяет загрузить на сервер данные из плагина **WP Popular Posts**, а также ежедневно сохраняет архив данных в файле `wp-content/uploads/bg_az_counter.json`, которые при необходимости можно также загрузить на сервер. Плагин позволяет загрузить на сервер данные из плагина **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` **НЕ будет удален**! При необходимости, удалите его вручную. **Внимание!** После удаления плагина файл `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 @@ ...@@ -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', ''); add_option('bg_wppp_loaded', '');
$val = get_option('bg_counter_options'); $val = get_option('bg_counter_options');
if (!isset($val['period'])) { 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['now'])) {
$val['now'] = 0;
}
if (!isset($val['debug'])) { if (!isset($val['debug'])) {
$val['debug'] = 0; $val['debug'] = 0;
} }
...@@ -95,6 +98,7 @@ function bg_counter_settings(){ ...@@ -95,6 +98,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_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_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_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' ); 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(){ ...@@ -119,6 +123,15 @@ function fill_bg_counter_period(){
} }
## Заполняем опцию 2 ## Заполняем опцию 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(){ function fill_bg_counter_debug(){
$val = get_option('bg_counter_options'); $val = get_option('bg_counter_options');
$val = $val ? $val['debug'] : null; $val = $val ? $val['debug'] : null;
...@@ -163,9 +176,15 @@ function bg_counter_sanitize_callback( $options ){ ...@@ -163,9 +176,15 @@ function bg_counter_sanitize_callback( $options ){
if( $name == 'period' ) if( $name == 'period' )
$val = intval( $val ); $val = intval( $val );
if( $name == 'now' )
$val = intval( $val );
if( $name == 'debug' ) if( $name == 'debug' )
$val = intval( $val ); $val = intval( $val );
if( $name == 'archive' )
$val = intval( $val );
if( $name == 'wppp' ) if( $name == 'wppp' )
$val = intval( $val ); $val = intval( $val );
} }
......
<?php <?php
class bg_counter_TopPostsWidget extends WP_Widget { class bg_counter_TopPostsWidget extends WP_Widget {
/* // создание виджета
* создание виджета
*/
function __construct() { function __construct() {
parent::__construct( parent::__construct(
'bg_counter_top_widget', 'bg_counter_top_widget',
...@@ -12,9 +10,7 @@ class bg_counter_TopPostsWidget extends WP_Widget { ...@@ -12,9 +10,7 @@ class bg_counter_TopPostsWidget extends WP_Widget {
); );
} }
/* // фронтэнд виджета
* фронтэнд виджета
*/
public function widget( $args, $instance ) { public function widget( $args, $instance ) {
$title = apply_filters( 'widget_title', $instance['title'] ); // к заголовку применяем фильтр (необязательно) $title = apply_filters( 'widget_title', $instance['title'] ); // к заголовку применяем фильтр (необязательно)
$posts_per_page = $instance['posts_per_page']; $posts_per_page = $instance['posts_per_page'];
...@@ -37,9 +33,7 @@ class bg_counter_TopPostsWidget extends WP_Widget { ...@@ -37,9 +33,7 @@ class bg_counter_TopPostsWidget extends WP_Widget {
echo $args['after_widget']; echo $args['after_widget'];
} }
/* // бэкэнд виджета
* бэкэнд виджета
*/
public function form( $instance ) { public function form( $instance ) {
if ( isset( $instance[ 'title' ] ) ) { if ( isset( $instance[ 'title' ] ) ) {
$title = $instance[ 'title' ]; $title = $instance[ 'title' ];
...@@ -59,9 +53,7 @@ class bg_counter_TopPostsWidget extends WP_Widget { ...@@ -59,9 +53,7 @@ class bg_counter_TopPostsWidget extends WP_Widget {
<?php <?php
} }
/* // сохранение настроек виджета
* сохранение настроек виджета
*/
public function update( $new_instance, $old_instance ) { public function update( $new_instance, $old_instance ) {
$instance = array(); $instance = array();
$instance['title'] = ( ! empty( $new_instance['title'] ) ) ? strip_tags( $new_instance['title'] ) : ''; $instance['title'] = ( ! empty( $new_instance['title'] ) ) ? strip_tags( $new_instance['title'] ) : '';
...@@ -70,9 +62,7 @@ class bg_counter_TopPostsWidget extends WP_Widget { ...@@ -70,9 +62,7 @@ class bg_counter_TopPostsWidget extends WP_Widget {
} }
} }
/* // регистрация виджета
* регистрация виджета
*/
function bg_counter_top_posts_widget_load() { function bg_counter_top_posts_widget_load() {
register_widget( 'bg_counter_TopPostsWidget' ); 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