2016-07-25 5 views
0

みんな! 以下の問題で私を助けてください。クネナフォーラム。カスタムプラグインを使用して特別なランクを新規ユーザーに設定する

クネナ4.0.1。私はいくつかの特別なユーザーランクを作成しました。一部のユーザーには、新しいユーザーを作成する権限があります。新しいユーザのランクをデフォルト値に設定するが、特別なランクの1つを設定することです。 "onUserAfterSave"イベントに関連するカスタムプラグインを使用して試してみました。しかし、それは動作しませんでした。私は間違っているの?

function onUserAfterSave ($user, $isnew) 
    { 

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

詳細を記入してください。あなたが作ったプラグインの種類、例えばシステムプラグイン。クネーナプラグインなど?またあなたが与えたクラス名は?コードのデバッグに役立ちます。 –

+0

返信いただきありがとうございます!これはユーザープラグインです。クラスplgUsersetraionがJPluginを拡張 –

答えて

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

また、私は別の解決策、1つのライナーコードを持っていますが、既存のプラグインを編集する必要があります。ユーザーがjoomlaに登録すると、自動的にランクが割り当てられます。

これは、plugins->system->kunenaにある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(); 
     } 

編集する前に、そのプラグインのコピーを作成するために、その優れた単一の行を追加して、それを修正します。

関連する問題