2016-09-21 3 views
1

Ich schreibe ein paar Plugins, um Benutzerinformationen über eine API zu behandeln. Es gibt keine Standardprozesse, die ich gefunden habe, die das vollständig behandeln könnten, also verwende ich onAfterRoute, um die Komponentenmodellklassen zu überschreiben.Joomla überschreiben Benutzer Komponentemodell

Dies ist die Überprüfung nur, dass die Komponente = com_users und die Ansicht = Reset oder erinnern:

class plgSystemUseroverride extends JPlugin { 

      public function __construct(&$subject, $config = array()) { 
       parent::__construct($subject, $config); 
      } 

      public function onAfterRoute() { 
       $app = JFactory::getApplication(); 
       $input = $app->input; 
       if('com_users' == $input->get('option') && 'reset' == $input->get('view') && !$app->isAdmin()) {    
        require_once(dirname(__FILE__) . '/user/reset.php'); 
       } 

       if('com_users' == $input->get('option') && 'remind' == $input->get('view') && !$app->isAdmin()) { 
        require_once(dirname(__FILE__) . '/user/remind.php'); 
       } 
      } 
    } 

Die Dateien aus dem Benutzer-Komponente kopiert werden, und ich geändert ‚erinnern‘ für meine Prüfung: Methode processRemindRequest:

$return = JFactory::getMailer()->sendMail($data['mailfrom'], $data['fromname'], $user->email, $subject . " TEST Subject", $body); 

Die Modifikation funktioniert gut, wenn bearbeiten die Komponente-Dateien direkt, sondern als die Klassen-Plugin nicht außer Kraft gesetzt werden.

Antwort

0

Nevermind, ich habe es herausgefunden. Entfernen Sie die Ansicht und überprüfen Sie nur, dass die Komponente "com_users" ist. Ich habe auch JLoader gesetzt, um die Klassen zu registrieren:

public function onAfterRoute() { 
     $app = JFactory::getApplication(); 
     if('com_users' == JRequest::getCMD('option') && !$app->isAdmin()) {  
      JLoader::register('UsersModelReset', dirname(__FILE__) . '/user/reset.php'); 
      JLoader::register('UsersModelRemind', dirname(__FILE__) . '/user/remind.php'); 
     } 
    } 
Verwandte Themen