+ Antworten
Ergebnis 1 bis 3 von 3

Thema: chat plugin für jomsocial umschreiben

  1. #1
    Neu an Board
    Registriert seit
    29.11.2007
    Beiträge
    96
    Bedankte sich
    2
    Erhielt 0 Danksagungen
    in 0 Beiträgen

    Standard chat plugin für jomsocial umschreiben

    halli hallo,

    ich habe ein chatplugin für den community builder und würde dieses gerne für JomSocial umschreiben lassen, kann mir dabei jemand behilflich sein? das script lautet:

    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 {
            const 
    CHAT_HOST "";
            const 
    CHAT_PORT 8000;
            const 
    ADMIN_USERNAME "";
            const 
    ADMIN_PASSWORD "";
            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.' );
    $_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 extends cbTabHandler {
        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);
        }
    }
    ?>
    wäre echt toll - zeige mich auch gerne erkenntlich - ist mir sehr sehr wichtig

  2. #2
    Gehört zum Inventar Avatar von deejey
    Registriert seit
    22.04.2006
    Ort
    HH
    Beiträge
    9.309
    Bedankte sich
    509
    Erhielt 1.791 Danksagungen
    in 1.583 Beiträgen
    Kein Support über PM; Ignoriermodus aktiv bei "dringend", "schnell", "eilt", denn: Zeit ist relativ

  3. #3
    Neu an Board
    Registriert seit
    29.11.2007
    Beiträge
    96
    Bedankte sich
    2
    Erhielt 0 Danksagungen
    in 0 Beiträgen

    Standard

    ja ich dachte hier passt das vielleicht besser rein sorry

+ Antworten

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein