User title by rating - позволит вам указывать титулы для пользователей по их рейтингу, а так же выводить шкалу прогресса, в которой указаны оставшиеся % до следующего титула.
Дополнение на самом деле довольно простое, оно не заводит каких-то новых таблиц и не создает никакой нагрузки (проверял вывод титулов для записи с 100+ комментариев). Все что оно делает - выводит титул пользователя по его рейтингу.
Сами титулы и необходимое количество рейтинга вы задаете сами, а значит вы можете позиционировать это как титулы, звания, ранги или уровни - все зависит от вашей фантазии.
Базовый пример титула:
Теперь давайте я покажу вам опции плагина и за что они отвечают.
Первая и самая главная опция - данные для присваивания титула
В этом поле вам необходимо будет указать соответствие рейтинга титулу.
Внимание! Обязательно указывайте по-убывающей.
Например:
- 100:Красавчик
- 50:Нормальный
- 25:Сойдет
- 15:Такой себе
- 10:Фу
- 0:Нейтрально
- -9999:Плохой
Что это будет означать:
- Для тех у кого рейтинг 100 и выше - титул будет Красавчик
- Для тех у кого рейтинг от 50 до 100 - титул будет Нормальный
- Для тех у кого рейтинг от 25 до 50 - титул будет Сойдет
- Для тех у кого рейтинг от 15 до 25 - титул будет Такой себе
- Для тех у кого рейтинг от 10 до 15 - титул будет Фу
- Для тех у кого рейтинг от 0 до 10 - титул будет Нейтрально
- Для тех у кого рейтинг от -9999 до 0 - титул будет Плохой
Но не обязательно это должен быть титул, вы можете позиционировать это как уровень:
Например:
- 1000:Уровень 10
- 900:Уровень 9
- 800:Уровень 8
- 700:Уровень 7
- 600:Уровень 6
- 500:Уровень 5
- 400:Уровень 4
- 300:Уровень 3
- 200:Уровень 2
- 100:Уровень 1
- 0:Уровень 0
- -9999:Уровень -1
Что будет означать:
- Для тех у кого рейтинг 1000 и выше - Уровень 10
- Для тех у кого рейтинг от 900 до 1000 - Уровень 9
- ...
- Для тех у кого рейтинг от 100 до 200 - Уровень 1
- Для тех у кого рейтинг от 0 до 100 - Уровень 0
- Для тех у кого рейтинг от -9999 до 0 - Уровень -1
Думаю все должно быть просто и понятно, главное соблюдайте следующие правила:
- Указывайте данные по-убывающей, а не вразнобой.
- Каждая пара рейтинг:титул указывается с новой строки
- Первым идет рейтинг, а затем титул
- Рейтинг и титул разделяются двоеточием ":"
Вторая опция - цветовое оформление
Думаю тут все понятно, если выбрано "Указать в админке" - то вы можете выбрать цвета для фона прогресс-бара, заполнения прогресс-бара и обводки. Если вы выберете опцию "Указать через css" - то данные из админки работать не будут и вы сможете прописать свои стили для прогресс-бара, например сделать его с тенью, градиентом, картинкой и т.п.
Третья опция - настройки вывода
Тут вы можете кастомизировать вывод блока титула.
Титул - позволит вам выводить какой-либо текст до или после титула. На самом деле это можно задать и при формировании пары рейтинг:титул, но можно и тут. Помните мы делали пары рейтинг:уровень? так вот вы можете убрать там слово "Уровень" и вписать в эту опцию: "Уровень: %title%" - где %title% будет заменено на титул соответствующий рейтингу.
Осталось до следующего Титула - Если навести курсор на бар опыта под титулом, то будет всплывающая подсказка, в которой указано количество оставшегося рейтинга до следующего титула. Например вы можете написать там: "Осталось рейтинга: %rating%" - где %rating% будет заменено на количество рейтинга оставшегося до следующего титула. Или вы можете написать "До следующего уровня осталось %rating% опыта"
Четвертая опция и последняя - автоматический вывод титула
Как вы понимаете темы и сайты у всех разные, а значит где-то автоматический вывод будет отлично смотреться, а где-то криво. Для этого я дал вам возможность отключать автоматический вывод, чтобы при желании вы могли вывести вывести его сами там, где вам удобно.
Вот вам примеры доступных выводов
Форум bbpress
Личный кабинет recall
Это тема саншайн
А это тема грейс
После ника в комментариях
А самое главное - вы можете этот вывод отключить и вывести все сами!
Функция для вывода блока титула в любом месте
echo rcl_user_rating_title_math($rating,$user_ID,$hide_line);
Где:
$rating - рейтинг для которого вычисляем титул, если он указан то $user_ID можно не указывать. Такой подход используется в комментариях, ведь у них в глобальной переменной $comment уже есть общий рейтинг автора комментария.
$user_ID - ID пользователя для которого необходимо вывести блок титула. Если вы не указываете $rating, то это поле обязательно.
$hide_line - принимает 0 и 1, по-умолчанию 0. Как вы догадались, если установить 1, то выведется только титул, без шкалы прогресса.
Вроде это все. Если будут какие-то интересные предложения - пишите в комментарии, а если проблемы - на форум.
Стандартная. Выбрать архив с дополнением и нажать "Установить". Или ручками поместить папку дополнения в /wp-content/wp-recall/add-on/
* Обновлено под wp-recall 16.22.3+
= 2.0 =
* Полностью переписан, теперь использует шаблоны recall для вывода титула
= 1.6.2 =
* Переписаны опции плагина под новый стандарт
= 1.6.1 =
* Фикс меню
= 1.6 =
* Фикс предупреждения в логах
= 1.5 =
* Добавлена поддержка PrimeForum
= 1.4 =
* Добавлена поддержка Asgaros Forum
= 1.3 =
* Теперь вы можете включить присваивание титула по ID юзера
= 1.2.1 =
* Теперь всплывающая подсказка при наведении привязана к родительскому блоку титула (.utr-user-title)
= 1.2 =
* Блоку рейтинга добавлен новый класс rating-X
= 1.1 =
* Добавлена возможность включить уведомление при изменении титула и самому настроить шаблон уведомления
= 1.0 =
* Релиз
Здравствуйте! Жаль только, что по половому признаку не предусмотрены титулы, например король/королева. А то все будут королями, даже дамы)
Если делать разные титулы для м и ж, то придется указывать титул, например, так:
рейтинг:Титул для М::Титул для ж и еще надо будет указывать само кастомное поле с полом... Вообще сами титулы, мне кажется, можно подобрать нейтральные
Добавил новую опцию - "Уведомление о изменении титула"
При включении вы сможете настроить шаблон уведомления:
Заголовок - то что вверху уведомления (например "Комментарий к публикации", "Изменение рейтинга")
Содержание - контент уведомления (например для рейтинга он "Пользователь XXX проголосовал X за ваш комментарий")
В содержании вы можете указать:
%old_title% - Будет заменено на старый титул
%new_title% - Будет заменено на новый титул
Внимание! Уведомление срабатывает ТОЛЬКО при изменении общего рейтинга юзера, это значит что если у вас в настройках Рейтинга, например у рейтинга комментариев стоит "Влияние на общий рейтинг пользователя: Нет" - то общий рейтинг пользователя при голосовании за комментарий не изменяется, а значит не меняется титул и не будет уведомления.
если у пользователя определенный уровень, который он заработал накопил рейтинг, то при снятии рейтинга админом уровень упадет? для меня важно было б так что бы уровень не падал бы после редактирования рейтинга админом, то есть шкала имела фиксированный вид...
Титул динамический, он не имеет своих таблиц и не хранит никаких данных. Титул вычисляется в реальном времени из текущего рейтинга пользователя, а значит если вы отредактируете рейтинг какого-то человека, то его титул может измениться (если новый рейтинг соответствует новому титулу)
Здравствуйте! А что если предусмотреть, скажем, возможность загрузки миниатюрки рядом с названием титула? Типа фавикона. Например, кто-то захочет сделать титулы по принципу планет Солнечной системы. Вот рядом с титулом Марс можно загрузить картинку Марса. Очень миниатюрную, конечно.
Если у каждого титула есть свой класс, то стилями через ::after или ::before можно все что вам нужно сделать
спасибо, попробую.
Вот вам пример, выведет перед титулом иконку сатурна для тех, у кого титул требующий 10 рейтинга
А вот как выглядит это
Спасибо большое!
Добавил блоку рейтинга новый класс rating-X где X - кол-во рейтинга для титула. Т.е. теперь можно через .utr-user-title.rating-2 - задать стили для титула требующего рейтинг 2 и выше.
Например у нас в настройках указано:
100:Уровень 4
50:Уровень 3
10:Уровень 2
0:Уровень 1
-9999:Уровень 0
То если у человека рейтинга 70, значит его уровень 3 и класс будет: .utr-user-title.rating-50
и да я так понял подписчики могут видеть титулы друг у друга в кабинетах?
Если поставить галочку "Выводить в кабинете recall" то титул будет виден всем, вообще он всем виден по-умолчанию, скрыть его от кого-то можно только если выводить самому, через фунцию
Здравствуйте. А можно как-то убрать вывод шкалы прогресса из ЛК, в которой указаны оставшиеся % до следующего титула и оставить просто всплывающую подсказку, где указано по сути тоже самое - количество оставшегося рейтинга до следующего титула.
Обновил доп, теперь всплывающая подсказка привязана не к полосе прогресса, а к родительскому блоку (.utr-user-title) а значит будет работать и без вывода линии.
Скрыть линию в ЛК можно 2мя способами:
1. Отключить вывод в личном кабинете в опциях плагина и вывести самому
2. Просто стилями скрыть (я бы рекомендовал так, если вас устраивает местоположение)
Для скрытия стилями достаточно в ваш файл стилей добавить:
Спасибо, так и сделал (скрыл стилями) - местоположение вполне устраивает.
Так толком и не понял, как вычисляются оставшиеся % до следующего титула и что он вообще значит?
К примеру указал следующие титулы:
500:Элита
400:Эксперт
300:Профи
200:Знаток
100:Просвещённый
50:Местный житель
30:Поселенец
10:Любопытный
0:Новичок
-10:Агрессор
-20:Диверсант
-30:Мусорщик
-50:Враг народа
У меня сейчас рейтинг 33, в подсказке написано до следующего титула осталось 17 рейтинга, а на шкале 15%
У др. пользователя рейтинг 20, в подсказке до следующего надо ещё 10 рейтинга, а на шкале 50%
У др. пользователя рейтинг 1, в подсказке до следующего надо ещё 9 рейтинга, а на шкале 10%
Смотрите:
1. У вас рейтинг 33, значит ваш титул Поселенец. Рейтинга на ваш титул надо 30, а до следующего титула Местный житель надо 50. т.е. получается 50-30 = 20, значит 20 - это 100% у вас из 20 необходимых до 50 набрано 3, а 3 от 20 это 15%
2. У пользователя рейтинг 20, значит его титул Любопытный - на который надо 10 рейтинга.До следующего рейтинга Поселенец ему надо набрать 30 рейтинга, т.е. получается 30 - 10 = 20, значит 20 - это 100%, а у пользователя набрано только 10 - это 50% от 20
3. У пользователя рейтинг 1, значит его титул Новичок. На этот титул надо 0 рейтинга, а до следуюшего титула Любопытный надо 10 рейтинга. т.е. получается 10 - 0 = 10, значит 10 - это 100%, у пользователя набрано 1, а 1 это 10% от 10
Т.е. во всплывающей подсказке отображается сколько РЕЙТИНГА (абсолютное значение) надо до следующего титула. А на полоске отображается сколько % набрано от текущего титула, до следующего.
p.s. ой как я намучился с этой формулой... ))
Добавил в основной блок опций возможность включить присваивание титула пользователю по его ID.
Зачем это может быть нужно: например если вы хотите поощрить каких-то пользователей уникальным титулом или указать такой для администратора.
Титулы указываются аналогично тому что и титулы по рейтингу, только вместо рейтинга указываете ID юзера, например:
1:Титул для Администратора
32:Титул для пользователя с ID 32
16543:Титул для пользователя 16543
Если опция будет включена, то титул для этого юзера не будет вычисляться по его рейтингу, а будет указан тому что вы указали. Так же в таком случае блок титула не будет иметь шкалы прогресса, ибо в ней не будет смысла. Подсказки "Осталось рейтинга" так же не будет, ибо в ней опять же нет смысла.
Для юзеров чей титул берется из новой опции, а не вычисляется по рейтингу, блок с титулом будет иметь новый класс user-ID, чтобы вы могли указать ему свои стили.
Например:
Включаем в опциях выдачу титулов по ID пользователя и прописываем в текстовое поле:
1:Администратор
Затем в ваши стили добавляем:
В итоге будет как-то так:
http://imgur.com/H3SmPT7
Здравствуйте,а возможно ли как нибудь привязать звания к другой системе комментирования,соответственно к другой системе начисления рейтинга. К примеру к Solid Opinion. ?
Нет. Только переписав на 100% дополнение. Т.к. этот доп берет данные из другой таблички.
Сколько будет стоит переписать?Примерно
Оценивает стоимость исполнитель - по объему работ в т.з. и своей часовой ставке.
Задания публикуются здесь https://codeseller.ru/publikaciya-zadaniya/
Приветствую Preci!
Возможно или если будет желание включить плагин форума Asgaros Forum в ваше дополнение. Вот так оно работает:
add_action('asgarosforum_after_post_author', 'asgarosforum_after_author_rating_title', 10, 3);
function asgarosforum_after_author_rating_title($author_id, $author_posts, $hide_line) {
echo ''.rcl_user_rating_title_math($rating,$author_id,$hide_line).';';
}
У меня нет вашего допа и поэтому налепил все что можно, не зная что содержит)), но сделал на основе ваших комментов к нему и у пользователя работает как надо. Выводит в моем допе под званием. Соответственно без моего допа будет выводить под количеством постов.
Код порезался, но смыл понятен.
Добавил
Обновил. Теперь поддерживает PrimeForum
http://imgur.com/MMW1HJP
Респект 😀
Обновил плагин. Переписал опции под новый стандарт, теперь не должно быть проблем в опциях, если у кого они вдруг остались.
Класс! Но не плохо бы сделать вывод полоски и название профиля по центру - для мобильной версии. Это личный кабинет я имею в виду
Скажите, а можно ли как-то связать это дополнение и Top user by rating? Так например можно между определёнными ТИТУЛАМИ разыгрывать какае-нибудь призы на сайте. То есть, на странице где идёт вывод ТОП пользователей от дополнения Top user by rating сделать вывод дополнительных вкладок, которые бы разделяли ТИТУЛЫ. ТОП 10 для каждого титула и десятка отбиралась бы так же по количеству рейтинга но в своём ТИТУЛЕ. Для каждого титула можно было бы делать определённый приз и разыгрывать в обычном рандоме на стороннем сайте (к примеру http://randstuff.ru/nUMBER/).
Титул вычисляется на лету, так что перед составлением ТОПа придется вычислить титул для всех пользователей на сайте, а это тупо. Так что так сделать невозможно.
Выводится ли титул в списке пользователей /users по умолчанию?
Нет, надо править нужный шаблон
хорошее дополнение) еще б было круто если когда наконец добираешься до последнего титула не писалось до следущего титула осталось, так как следующего титула нет)
Добрый День! Подскажите, а с помощью WP key ultimat, возможно будет сделать переход на уровень платным?
Нельзя
Не выводится в третьем стандартном для wp-recall шаблоне WebX, буду очень благодарен если добавите)
Я даже не знаю куда там его сувать.
Вы можете скопировать файл /wp-content/plugins/wp-recall/add-on/theme-webx/templates/office.php в /wp-content/wp-recall/templates
И в нужном месте вывести титул с помощью кода:
if(function_exists('rcl_user_rating_title_math')) {
global $user_LK;
echo rcl_user_rating_title_math('', $user_LK);
};
Да хоть куда)) главное чтобы было, его наличие изначально в стандартной теме будет плюсом к репе этого допа)
Пойду тестить)))
Не получается в теме вывести, а возможно сделать вывод шорткодом?