2017-07-08 4 views
1

Ich versuche, die RainLab User-Plugin zu erweitern und benötigt ein Feld im Backend-Formular zu filtern.OctoberCMS - Extend eine Plugin filterFields Methode

Wenn ich das User-Modell direkt bearbeiten, bekomme ich es funktioniert, aber ich versuche, aus meiner eigenen Plugin Registrierungsdatei mit „addDynamicMethod“ ohne Glück zu tun. -Code auf der User-Modell-Datei:

public function filterFields($fields, $context = null) 
{ 
    if (property_exists($fields, 'usertype')) { 

     $userType = $fields->usertype->value; 

     if($userType == $this->AGENT || $userType == null) { 
      $fields->agent->hidden = true; 
     } 
    } 
} 

Antwort

1

Unten ist das Beispiel Code, den ich in einem meiner benutzerdefinierten Plugins tat, um mein Backend Benutzer Plugin zu erweitern. Sie können in Ihrem benutzerdefinierten Plugins boot() Funktion unten Art von Logik setzen.

use Backend\Models\User as BackendUserModel; 
public function boot() 
{ 
    // Add Team field in user administartor form 
    BackendUsersController::extendFormFields(function($form, $model, $context){ 

     if (!$model instanceof BackendUserModel) 
      return; 

     $form->addTabFields([ 
      'team' => [ 
       'label' => 'Team', 
       'comment' => 'Associate this user with a team.', 
       'type' => 'recordfinder', 
       'list' => '$/technobrave/team/models/team/columns.yaml', 
       'prompt' => 'Click the %s to find a team', 
       'select' => 'id', 
       'nameFrom'=> 'name', 
       'tab' => 'Account', 
       'disabled' => true      
      ] 
     ]); 
    }); 
} 

Hier in über Funktion, ich habe das Feld zu aktualisieren für Benutzer deaktiviert.

Sie können über Code als Beispiel nehmen und mit ihm nach Ihren Anforderungen umgehen.

Hoffe, das hilft.