Кунена форум. Установка специального ранга для нового пользователя с помощью пользовательского плагина

все!
Не могли бы вы помочь мне со следующей проблемой.

Кунена 4.0.1. Я создал несколько специальных пользовательских рангов. У некоторых пользователей есть разрешение на создание новых пользователей. Задача состоит в том, чтобы установить ранг нового пользователя, отличающийся от значения по умолчанию, но одного из специальных рангов.
Я пытался сделать это с помощью пользовательского плагина, связанного с событием «onUserAfterSave». Но это не сработало. Что я делаю не так?

 function onUserAfterSave ($user, $isnew)
{

if ($isnew)
{
$NewKUser = KunenaFactory::getUser(intval($user['id']));
$NewKUser->rank['rank_id'] = 11;
$NewKUser->save(true);
}
}

0

Решение

Задача решена:

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();
}
}
0

Другие решения

Также у меня есть другое решение, код с одним вкладышем, но вам нужно отредактировать существующий плагин. Поэтому, когда пользователь регистрируется в 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();
}

Также лучше создать копию этого плагина перед редактированием.

0

По вопросам рекламы [email protected]