Role v.0.5 - автороли, блоки ролей, аватары к ролям, визуальное выделение пользователей
В текущем обновление увы не все реализовано что планировалось, но даже то что готово думаю порадует владельцев плагина.
Рейтинг при достижении/уменьшении порога которого будет меняться роль пользователю устанавливается в настройках роли. Также предусмотрена вожножность исключить пользователей из автоматического изменения ролей — настройка находится в конфиге.
По смыслу этот функционал схож с функционалом плагина «Уровни», но в виду того что с автором его так и не удалось посотрудничать в направлении интеграции — пришлось пилить самостоятельно.
Также сделаны багфиксы (к сожалению пока не все), и некоторые доработки в сторону совместимости со сторонними плагинами.
вывод названия роли
Теперь используем все вместе.
пример изменения цвета логина пользователя в прямом эфире:
открываем файл \templates\skin\new-jquery\block.stream_comment.tpl и после строчки
и еще пример для вывода иконки роли наложеной на аватар в профиле пользователя:
в файле \templates\skin\new-jquery\actions\ActionProfile\whois.tpl строку
на сегодня все.
Новый функционал «Автороли»
— это функионал автоматического изменения роли пользователя в зависимости от набраного им рейтинга как в сторону увеличения так и в сторону его уменьшения).Рейтинг при достижении/уменьшении порога которого будет меняться роль пользователю устанавливается в настройках роли. Также предусмотрена вожножность исключить пользователей из автоматического изменения ролей — настройка находится в конфиге.
По смыслу этот функционал схож с функционалом плагина «Уровни», но в виду того что с автором его так и не удалось посотрудничать в направлении интеграции — пришлось пилить самостоятельно.
Новый функционал «Аватары ролей»
— добавлена возможность загружать аватар для каждой роли. Насторйки размеров ресайзов для аватаров хрянятся в конфиге. Используются по умолчанию — в «блоках ролей», в кнопках выбора ролей при регистрации. Так же можно использовать в шаблонах небольшой код (о коде — ниже по тексту) для вывода аватара рядом с логином пользователя.Новый функционал «Блок роли»
— теперь пользователей каждой роли можно вывести в блок в сайдбар, и по мимо этого можно указать на какой странице, или страницах, будет этот блок выводиться.Также сделаны багфиксы (к сожалению пока не все), и некоторые доработки в сторону совместимости со сторонними плагинами.
Теперь немного хаков которые можно использовать в шаблонах.
код для получения роли пользователя в шаблоне:{if $oUser && $oUser->getRole()}
{assign var="aUserRole" value=$oUser->getRole()}
{/if}
вывод названия роли
{$aUserRole.object->getTitle()}
вывод аватара роли<img src="{$aUserRole.object->getAvatarPath(24)}" />
Теперь используем все вместе.
пример изменения цвета логина пользователя в прямом эфире:
открываем файл \templates\skin\new-jquery\block.stream_comment.tpl и после строчки
{assign var="oBlog" value=$oTopic->getBlog()}
добавляем{if $oUser && $oUser->getRole()}
{assign var="aUserRole" value=$oUser->getRole()}
{/if}
и добавляем атрибут тегу если есть роль у пользователя, строку<a href="{$oUser->getUserWebPath()}" class="user">{$oUser->getLogin()}</a> &rarr
изменяем к следующему виду<a href="{$oUser->getUserWebPath()}" class="user" {if $aUserRole and $aUserRole.object and $aUserRole.object->getId()==1}style="color:red"{/if}>{$oUser->getLogin()}</a> &rarr
и еще пример для вывода иконки роли наложеной на аватар в профиле пользователя:
в файле \templates\skin\new-jquery\actions\ActionProfile\whois.tpl строку
<div class="user-profile">
изменяем на <div class="user-profile" style="position: relative">
и после нее добавляем{if $oUserProfile && $oUserProfile->getRole()}
{assign var="aUserRole" value=$oUserProfile->getRole()}
{if $aUserRole and $aUserRole.object}
<img src="{$aUserRole.object->getAvatarPath(24)}" style="position: absolute; top: 2px; left: 2px;" />
{/if}
{/if}
на сегодня все.
48 комментариев
А Стена что такое?
Я правильно понимаю, что можно запретить юзерам стирать свои посты или добавлять комментарии (то есть, можно сократить права по умолчанию)?
новости — это плагин cck
Объясните, Стена — это чат? Твиттер внутри сайта? А подгрузка новых сообщений в реальном времени есть? Или для чего это?
Ну и чтобы два раза не вставать, скажу тоже: этот (Role) — классный плагин, удобный, всем советую.
конфликт с плагином неограниченное голосования админам. Минус не работает, отключил роле, все ок.
Сделал я роль модера… дал права на удаление профилей.
объясни как юзер будет удалять людей?.. он же в админку не имеет доступа.
=(
— это коммент автора;
— юзер — создатель/админ/модер блога, в котором висит тред, в котором комментарий.
но всеравно будут расматриваться не ранее 15 июня
P.S. И всё же чуток обидно — столько пропало возможностей для ускорения из-за этой доработки.
Ещё один выход — если позволят мощности, разбить количество слотов хранилища данных на большое, порядка 16, то есть:
Откат на unmodified, эх…
«Чистый» плагин, и всё те же баги. При любых комбинациях. ><
Только вот баг превредный найден, который поломал БД. Суть такова, что при удалении пользователя этим плагином остается много зависимостей в БД, непочищенных, и поэтому темы/блоги/прочее, где светился удалённый пользователь — ломаются.
Выход простой: немного чаю, пошарить в MySQL запросами типа DELETE FROM `ls_comment` WHERE `user_id` NOT IN (SELECT `user_id` FROM `ls_user`)… но всё равно не очень-то и приятно.
… ладно. Автору сотни маффинов за труд, и ещё раз огромное спасибо.
Буду искать баги. Найду, напишу.
aceadminpanel
admvote
birthdays
greeting
openid
page
role
showvotes
skinswitch
spoiler
usersearch
LS 0.5, полёт нормальный.
а с этим никак
SQL Error: Table 'role.prefix_role_place_block' doesn't exist at /var/www/upbase/data/www/role.upbase.ru/plugins/role/classes/modules/role/mapper/Role.mapper.class.php line 410
Array ( [code] => 1146 [message] => Table 'role.prefix_role_place_block' doesn't exist [query] => SELECT r.*, prb.role_id FROM prefix_role_place_block prb LEFT JOIN prefix_role r ON prb.role_id = r.role_id WHERE '/' LIKE prb.place_url [context] => /var/www/upbase/data/www/role.upbase.ru/plugins/role/classes/modules/role/mapper/Role.mapper.class.php line 410 )
и #header-back нет в верстке, это скорее всего чтото Ваше
Подскажите пожалуйста, а можно заменить стандартную аватарку на аватарку роли? Чтобы везде она отображалась по сайту вместо обычной аватарки, как это сделать?