halli hallo,

ich brauche ganz dringend Hilfe. Ich habe mir damals ein Plugin für den community builder schreiben lassen der mir automatisch bei einer registrierung den user in einem Chat anlegt. da ich nun aber auf jomsocial umgestiegen bin brauch ich ganz dringend hilfe bei der umprogrammierung.

PHP-Code:
<?php
class BEventHandler {
   function 
BEventHandler() {
      
   }
   function 
onStartSaveUserRegistration() {
      
   }
   function 
onBeforeUserRegistration($row$rowExtras) {
      
   }
   function 
onAfterUserRegistration($row$rowExtras$bool) {
      
   }
   function 
onBeforeUserUpdate($row$rowExtras) {
      
   }
   function 
onAfterUserUpdate($row$rowExtras$bool) {
      
   }
   function 
onAfterLogin($row$bool) {
      
   }
   function 
onAfterLogout($row$bool) {
      
   }
}
?>
<?
function s_trim($txt){
$output trim($txt);
$output str_replace(array("\n""\r""\r\n""\n\r"), ""$output);
return(
$output);
}
class 
BSpinChatAdapter {
 <--- 
Hier stehen die Zugänge -->
        private function 
__construct() {

        }
        public static function 
getInstance() {
                static 
$instance;
                if(
is_null($instance)) {
                        
$instance = new BSpinChatAdapter();
                }
                return 
$instance;
        }
    private function 
executeCommand($cmd) {
      
$fp fsockopen(self::CHAT_HOSTself::CHAT_PORT$errno$errstr30);
      if (!
$fp) {

        echo 
"[BSpinChatAdapter.executeCommand] $errstr ($errno)\n<br />";
      } else {
          
$out $cmd "\r\n";
          
fwrite($fp$out);
        
$result "";
          while (!
feof($fp)) {
              
$result .= fgets($fp128);
          }
          
fclose($fp);
      }
      return(
$result);
          }
   public function 
createUser($username$password,
$servergroup_id=null$user_channels=null) {

     
$cmd "ASCII\r\nSU_ADMIN \"" self::ADMIN_USERNAME "\" " .
self::ADMIN_PASSWORD "\r\nADMIN_ADD_USER \"" $username "\" " .
$password." \r\n";

//Setzt die Server- und Channeleigenschaften, wenn als Parameterübergeben worden:
     
if($servergroup_id != null){
        
$cmd .= 'ADMIN_SET_SERVERGROUP "'.s_trim($username).'" ';
$cmd .= intval($servergroup_id);
$cmd .= " \r\n";
      }
if(isset(
$user_channels) and count($user_channels) > 0){
  foreach(
$user_channels as $channel_no => $channel_name){
  if(
$channel_name != '-'){ $channel_name '"'.$channel_name.'"'; }

  if(
$channel_name != '-' or ($channel_name == '-' and
count($user_channels) == 1)){
$cmd .= 'ADMIN_SET_CHANNELGROUP "'.s_trim($username).'" ';
$cmd .= intval($channel_no);
$cmd .= " ".s_trim($channel_name)." \r\n";
  }
  }
  }

      
$cmd .= "\r\nQUIT";
      
$result $this->executeCommand($cmd);
    }
    public function 
deleteUser($username$password) {

      
$cmd "ASCII\r\nSU_ADMIN \"" self::ADMIN_USERNAME "\" " .
self::ADMIN_PASSWORD "\r\nADMIN_SET_PASSWORD \"" $username "\" "
$password "\r\n";
      
$cmd .= "USER_DELETE \"" $username "\" " $password "\r\nQUIT";
      
$result $this->executeCommand($cmd);
    }

public function 
getChannels($min_user_number=0){
   
$cmd "ASCII\r\nSU_ADMIN \"" self::ADMIN_USERNAME "\" " .
self::ADMIN_PASSWORD "\r\n";
       
$cmd .= "LIST_CHANNELS " $min_user_number .  " -\r\nQUIT";
   
$result $this->executeCommand($cmd);

   
$arr1 explode("\n"$result);
   
$gather false;
foreach(
$arr1 as $arr1_part){ $arr1_part s_trim($arr1_part);

if(
$arr1_part == '101 LIST_CHANNELS'){ $gather false; }
if(
$gather == true){$arrChannels[] = $arr1_part;}
if(
$arr1_part == '100 LIST_CHANNELS '.$min_user_number.' -'){
$gather true; }

   }
   return(
$arrChannels);
}

public function 
getUserChannels($username$channels){
$cmd "ASCII\r\nSU_ADMIN \"" self::ADMIN_USERNAME "\" " .
self::ADMIN_PASSWORD "\r\n";
$cmd .= "ADMIN_GET_CHANNELGROUP \"".$username."\" -\r\n";
foreach(
$channels as $channel){
$cmd .= "ADMIN_GET_CHANNELGROUP \"".$username."\" \"".$channel."\"\r\n";
}
$cmd .= "QUIT";
$result $this->executeCommand($cmd);



$arr1 explode("\n"$result);
$arr1_i=0;
foreach(
$arr1 as $arr1_part){
$arr2 explode(' '$arr1_part);

if(isset(
$arr2[4]) and $arr2[4] != -1){
$user_channels[intval(s_trim($arr2[4]))] = s_trim($arr2[3]); }

$arr1_i++;
}

//Anführungszeichen entfernen:
$user_channels str_replace('"'''$user_channels);
return(
$user_channels);
}

public function 
getUserInfo($username){
   
$cmd "ASCII\r\nSU_ADMIN \"" self::ADMIN_USERNAME "\" " .
self::ADMIN_PASSWORD "\r\n";
       
$cmd .= "ADMIN_GET_SERVERGROUP \"" $username .  "\"\r\n";
   
$cmd .= "QUIT";
   
$result $this->executeCommand($cmd);

   
//IDs extrahieren und intern speichern -
   //String bei Leerzeichen oder Zeilenumbrüchen aufsplitten:
   
for($i_char=0;$i_char<strlen($result);$i_char++){
if(
$result[$i_char] == " " or $result[$i_char] == "\n"){
$arr1[] = $char_buffer;
$char_buffer "";
}else{
$char_buffer .= $result[$i_char];
}
  }

    
$arr1_i=0;
    foreach(
$arr1 as $arr1_part){
         if(
$arr1_part == "GET_SERVERGROUP"){
             
$servergroupid intval($arr1[$arr1_i 2]);
}
      
$arr1_i++;
     }
$arrReturn['SERVERGROUP_ID'] = $servergroupid;

//Anführungszeichen entfernen:
$arrReturn str_replace('"'''$arrReturn);

return(
$arrReturn);
}

    public function 
testServer() {
            
$cmd "ASCII\r\nLIST_REG_USERS 0 100\r\nQUIT";
            
$this->executeCommand($cmd);
    }
}
?>
<?php


class BSpinChatEventHandler extends BEventHandler {
  const 
USERNAME_BLACKLIST "admin bot dermimwolftanzt domi dominik
hugo netzwerk sadmin serveradmin testperson testuser2"
;
  function 
BSpinChatEventHandler() {

    
parent::__construct();
  }
  function 
onBeforeUserRegistration($row$rowExtras) {


    
$usernames explode(" "self::USERNAME_BLACKLIST);
    if (
in_array($row->username$usernames)) {
      global 
$_PLUGINS;

      
$_PLUGINS->_setErrorMSG("Dieser Benutzername ist bereits vergeben.");
      
$_PLUGINS->raiseError(0);
    }
  }
  function 
onAfterUserRegistration($row$rowExtras$bool) {

    
$username $row->username;
    
$db =& JFactory::getDBO();
    
$sql "
      SELECT u.password
      FROM #__users AS u
      WHERE u.id = " 
$row->id "
    "
;
    
$db->setQuery$sql );
    
$rows $db->loadAssocList();
    
$passwordHash $rows[0]['password'];
    
$password substr($passwordHash08);
    
BSpinChatAdapter::getInstance()->createUser($username$password);
  }
  function 
onBeforeUserUpdate($row$rowExtras) {

    
$newUsername $row->username;
    
$user =& JFactory::getUser();
    
$oldUsername $user->username;
    
$oldPassword substr($user->password08);
$arrUserInfo BSpinChatAdapter::getInstance()->getUserInfo($oldUsername);
$arrChannels BSpinChatAdapter::getInstance()->getChannels();
$arrUserChannels =
BSpinChatAdapter::getInstance()->getUserChannels($oldUsername,
$arrChannels);
$this->_last_servergroup_id $arrUserInfo['SERVERGROUP_ID'];
$this->_last_user_channels $arrUserChannels;

    
BSpinChatAdapter::getInstance()->deleteUser($oldUsername$oldPassword);
  }
  function 
onAfterUserUpdate($row$rowExtras$bool) {
    
$username $row->username;
    
$password substr($row->password08);
    
BSpinChatAdapter::getInstance()->createUser($username$password,
$this->_last_servergroup_id$this->_last_user_channels);

//Leeren:
$this->_last_servergroup_id null;
$this->_last_user_channels null;
  }
}
?>
<?php
defined
('_JEXEC') or die( 'Restricted access' );
jimport('joomla.plugin.plugin');


defined'_VALID_MOS' ) or die( 'Direct Access to this location is not allowed.' );

if (
$_PLUGINS) {
$_PLUGINS->registerFunction('onAfterLogin''onAfterLogin''plgUserBcommunitybuilderbridge');
$_PLUGINS->registerFunction('onStartSaveUserRegistration''onStartSaveUserRegistration''plgUserBcommunitybuilderbridge');
$_PLUGINS->registerFunction('onBeforeUserRegistration''onBeforeUserRegistration''plgUserBcommunitybuilderbridge');
$_PLUGINS->registerFunction('onAfterUserRegistration''onAfterUserRegistration''plgUserBcommunitybuilderbridge');
$_PLUGINS->registerFunction('onBeforeUserUpdate''onBeforeUserUpdate''plgUserBcommunitybuilderbridge');
$_PLUGINS->registerFunction('onAfterUserUpdate''onAfterUserUpdate''plgUserBcommunitybuilderbridge');
$_PLUGINS->registerFunction('onAfterLogin''onAfterLogin''plgUserBcommunitybuilderbridge');
$_PLUGINS->registerFunction('onAfterLogout''onAfterLogout''plgUserBcommunitybuilderbridge');
}
class 
plgUserBcommunitybuilderbridge  {
   private 
$_eventHandler null;
   function 
plgUserBcommunitybuilderbridge() {
      
            
$this->_eventHandler = new BSpinChatEventHandler();
   }
   function 
onStartSaveUserRegistration() {
      
      
$this->_eventHandler->onStartSaveUserRegistration($row$rowExtras$bool);
   }
   function 
onBeforeUserRegistration($row$rowExtras) {
      
      
$this->_eventHandler->onBeforeUserRegistration($row$rowExtras$bool);
   }
   function 
onAfterUserRegistration($row$rowExtras$bool) {
      
      
$this->_eventHandler->onAfterUserRegistration($row$rowExtras$bool);
   }
   function 
onBeforeUserUpdate($row$rowExtras) {
      
      
$this->_eventHandler->onBeforeUserUpdate($row$rowExtras);
   }
   function 
onAfterUserUpdate($row$rowExtras$bool) {
      
      
$this->_eventHandler->onAfterUserUpdate($row$rowExtras$bool);
   }
   function 
onAfterLogin($row$bool) {
      
      
$this->_eventHandler->onAfterLogin($row$bool);
   }
   function 
onAfterLogout($row$bool) {
      
      
$this->_eventHandler->onAfterLogout($row$bool);
   }
}
?>