Кунена форум. Установка специального ранга для нового пользователя с помощью пользовательского плагина
Все! Не могли бы вы помочь мне со следующей проблемой.
Кунена 4.0.1. Я создал несколько специальных пользовательских рангов. У некоторых пользователей есть разрешение на создание новых пользователей. Задача состоит в том, чтобы установить ранг нового пользователя, отличающийся от значения по умолчанию, но одного из специальных рангов. Я пытался сделать это с помощью пользовательского плагина, связанного с событием "onUserAfterSave". Но это не сработало. Что я делаю не так?
function onUserAfterSave ($user, $isnew)
{
if ($isnew)
{
$NewKUser = KunenaFactory::getUser(intval($user['id']));
$NewKUser->rank['rank_id'] = 11;
$NewKUser->save(true);
}
}
2 ответа
Задача решена:
function onUserAfterSave ($user, $isnew) {
if ($isnew) {
/*Current user rank*/
$SelfUser = KunenaUserHelper::getMyself();
$SelfUserRank = $SelfUser->getRank(0, false);
/*If current user has custom rank...*/
if ($SelfUserRank->rank_id >=11) {
/*Setting new user's rank equal to the current user's rank*/
$NewKUser = KunenaUser::getInstance(intval($user['id']), false);
$NewKUser->rank = $SelfUserRank->rank_id;
$NewKUser->save();
}
}
Также у меня есть другое решение, код с одним вкладышем, но вам нужно отредактировать существующий плагин. Поэтому, когда пользователь регистрируется в Joomla, ему автоматически присваивается ранг.
Для этого вам нужно отредактировать плагин системы kunena, который вы можете найти по адресу plugins->system->kunena
, если вы откроете kunena.php
вы найдете функцию
public function onUserAfterSave($user, $isnew, $success, $msg){
....
....
if ($isnew && intval($user ['id']))
{
$kuser = KunenaFactory::getUser(intval($user ['id']));
$kuser->save();
}
Изменить или изменить его, добавив одну строку $kuser->rank
public function onUserAfterSave($user, $isnew, $success, $msg){
....
....
if ($isnew && intval($user ['id']))
{
$kuser = KunenaFactory::getUser(intval($user ['id']));
$kuser->rank=11; // The rank which you want
$kuser->save();
}
Также лучше создать копию этого плагина перед редактированием.