Бесплатно В корзину

Top user by rating - очередное чудо моей мысли, которое позволит вам выводить топ пользователей по рейтингу за определенный промежуток времени, а так же создавать свои шаблоны вывода.

Вывод ТОПа пользователей

Вывод происходит через шорткод [ top_user_rating ] который может принимать следующие атрибуты:

templates - имя шаблона для вывода пользователей.

По-умолчанию "block" (в комплекте на данный момент 3 шаблона: block, list и mini)

Для создания своего шаблона можете посмотреть готовые примеры в папке templates, которая внутри папки дополнение. Даете своему шаблону имя user-tubr-ВАШЕИМЯ.php и помещаете его в папку /wp-content/wp-recall/templates/

Шаблон "mini" создан для вывода в сайдбаре, для него я рекомендую отключать параметр sorting (sorting="0")

sorting - включать или нет вывод списка для сортировки, по-умолчанию включено. (1 - включено, 0 - выключено)

По-умолчанию "1"

При включении перед ТОПом пользователей отобразится выпадающий список, в котором вы сможете выбрать за какой промежуток отобразить ТОП. Обновление ТОПа происходит через ajax без перезагрузки страницы. По-умолчанию selected установлено на "За месяц", однако если вы выберете свой промежуток времени через параметр day (ниже) то в селект добавится новый options с вашим кол-вом дней и он будет selected.

limit - Сколько пользователей отображать. (при включенной навигации отвечает за кол-во юзеров на странице)

По-умолчанию "50"

day - За какой промежуток времени считать набранный рейтинг.

По-умолчанию "30"

Если установить значение "0" то будет считаться рейтинг за все время.

period - За какой период считать рейтинг, указывается как начальная дата:конечная дата.

Пример: 2016-03-01:2016-03-18 (год-месяц-день)

Так же в этот параметр можно указать:

{current_week} - будет считаться рейтинг за текущую неделю

{current_month} - будет считаться рейтинг за текущий месяц

По-умолчанию "" - ничего

paged - укажите 1 что бы включить навигацию

По-умолчанию "" - выключена

exclude - позволяет исключить пользователей из рейтинга по id. Для исключения нескольких пользователей перечисляйте их id через запятую

По-умолчанию "" - пусто.

type - для подсчета только определенного типа рейтинга (post - записи, comment - комментарии)

По-умолчанию "" - пусто, весь рейтинг

role - для включения в рейтинг только определенные роли пользователей. Указывается цифрами

10 - Admin, 7 - Editor, 2 - Author, 1 - Contributor, 0 - Subscriber

По-умолчанию: "" - пусто, учитываются все роли

cache_time - Время кеширования результата, ajax не кешируется.

По-умолчанию: "86400" - сутки


Примечание: Я постарался сделать код таким, что бы на одной странице можно было разместить сколько угодно шорткодов (ну мало ли) вроде это получилось, по-крайней мере если зайти на страницу с ТОПом и в сайдбаре так же будет ТОП пользователей, то при ajax обновлении обновится только тот топ, который вы хотите обновить.

На этом вроде все с шорткодом, давайте дальше перейдем к примерам, а затем я покажу код одного из шаблонов вывода с комментариями, чтобы вы могли сделать свой шаблон.

Примеры ТОПов

[ top_user_rating ]

(параметров нет, значит используются по-умолчанию)

[ top_user_rating sorting="0" limit="10" ]

( выключим блок с сортировкой, установим лимит пользователей в 10)

[ top_user_rating  templates="list" day="100" ]

(Используем для вывода шаблон "list" и выберем промежуток в 100 дней)

[ top_user_rating  templates="mini" day="30" sorting="0" limit="10" ]

(Используем для вывода шаблон "mini" выберем промежуток в 30 дней, установим ограничение пользователей в 10(limit="10"), отключим sorting, а так же выведем это чудо через do_shortcode() в сайдбаре)

Вроде все примеры.

Формирование своего шаблона

Тут я приведу код шаблона list с максимальными пояснениями, но в целом что вас стоит знать:

В шаблоне вам будут доступны 2 переменные из дополнения:

$top_user - Массив.

$top_user["object_author"] -> ID текущего юзера

$top_user["total_rating"] -> Суммарный рейтинг

$position - Обычный каунтер в цикле, в данном случает будет соответствовать уровню пользователя в ТОПе

$firstCheck - текущий счетчик цикла, проверяйте на единицу для вывода заголовка таблицы и т.п.

<?php
/*
$user_id - id пользователя
$rating - рейтинг пользователя за промежуток
$user_info - инфа о пользователе (get_userdata())
*/
//Записываем id юзера для удобства
$user_id = $top_user["object_author"];
//Записываем суммарный рейтинг за промежуток для удобства
$rating = $top_user["total_rating"];
//Берем инфо юзера
$user_info = get_userdata($user_id);
?>
<?php
//Текущий пользователь (не в рейтинге, а кто его смотрит)
global $user_ID;

//Если текущий пользователь равен пользователю в рейтинге - значит он видит себя
//Выделим его в рейтинге

if ($user_id == $user_ID) {
	$your = 'style="font-weight:bold;"';
} else {
	$your = false;
}
//Выведем 1 раз заголовок рейтинга, что-то типо заголовка таблицы
if ($firstCheck== 1) {
?>
	<div class="tubr-user-title">
	<div class="tubr-user-position">Место</div>
	<div class="tubr-user-name">Пользователь</div>
	<div class="tubr-user-rating">Получено рейтинга</div>
	</div>
	
<?php } ?>

//Тут ничего нового
<div class="tubr-user" data-user-id="<?php echo $user_id ;?>" <?php echo $your; ?>>
		
	<div class="tubr-user-position"><?php echo $position; ?></div>
	
	<div class="tubr-user-name">
		
		<a href="/author/<?php echo $user_info->user_login; ?>/" target="_blank">
			
			<?php echo $user_info->display_name; ?>
		
		</a>
	
	</div>
			
	<div class="tubr-user-rating">
		
		<div class="tubr-user-value"><?php echo $rating; ?></div>
	
	</div>
		
</div>

Спасибо Андрею за консультации )

Стандартная. Выбрать архив с дополнением и нажать "Установить". Или ручками поместить папку дополнения в /wp-content/wp-recall/add-on/

2.0.4 =
* Добавлена поддержка wp-recall 16.22.3+
= 2.0.3

* Исправлена ошибка, когда при выводе ТОПа за все время минусовой рейтинг отображался как плюсовой
= 2.0.2 =
* Добавлен параметр role для шорткода, позволяющий включать в рейтинг только определенные роли пользователей. Роли указываются числами, значения:
* 10 - Admin, 7 - Editor, 2 - Author, 1 - Contributor, 0 - Subscriber
= 2.0.1 =
* Фикс выпадающего меню фильтрации
= 2.0 =
* Добавлена навигация
* Добавлены опции для настройки фильтров
= 1.8.1 =
* fa -> rcli
= 1.8 =
* Исправлена ошибка с подсчетом рейтинга при указании разных параметров
= 1.7 =
* Добавлен новый шаблон list2
= 1.6 =
* Добавлен атрибут period для указания промежутка подсчета рейтинга. См. комментарии к дополнению
= 1.5 =
* Изменен вывод рейтинга за все время, теперь работает быстрее
* Добавлена возможность вывести место пользователя в ЛК, в области counters
* Внимание! С этой версии по-умолчанию параметр day = 0 т.е. рейтинг за все время!
= 1.4 =
* Добавлено больше вариантов выбора промежутка в выпадающем меню сортировки
= 1.3 =
* Добавлена поддержка кеша recall
* Добавлен атрибут exclude для исключения пользователей из рейтинга по их ID
* Добавлен атрибут type для вывода ТОПа пользователей основываясь на определенном типе рейтинга
* Атрибут cache_time при включении кеша recall можете указать свое время кеша, по-умолчанию 86400 (сутки)
* Вроде что-то еще сделал, а вроде нет, уже не помню, ну ладно...

= 1.2 =
* Фикс получения ссылки на страницу пользователя
= 1.1 =
* Если отображаем ТОП за все время, то берем данные из таблицы rating_totals, иначе из rating_values
= 1.0 =
* Релиз

5
Условия поддержки: На форуме
Контактные данные: Личные сообщения
Авторство: Товар опубликован его непосредственным автором
Форум поддержки : При возникновении проблемы, создайте соответствующую тему на форуме поддержки товара
Бесплатно В корзину
Помните! Данный продукт защищён авторским правом, его нарушение влечёт за собой административную и уголовную ответственность.

Автор публикации

не в сети 15 часов

Preci

1 497
Telegram: https://t.me/preci_123
Комментарии: 498Публикации: 83Регистрация: 11-11-2014Продаж/Покупок: 8048/131