phpBB TS Mod aus phpBB2 in phpBB 3 einbinden?

Du hast Probleme beim Einbau oder bei der Benutzung eines Mods? In diesem Forum bist du richtig.
Forumsregeln
phpBB 3.0 hat das Ende seiner Lebenszeit überschritten
phpBB 3.0 wird nicht mehr aktiv unterstützt. Insbesondere werden - auch bei Sicherheitslücken - keine Patches mehr bereitgestellt. Der Einsatz von phpBB 3.0 erfolgt daher auf eigene Gefahr. Wir empfehlen einen Umstieg auf die neuste phpBB-Version, welches aktiv weiterentwickelt wird und für welches regelmäßig Updates zur Verfügung gestellt werden.
Faithnall
Mitglied
Beiträge: 8
Registriert: 26.08.2009 20:39

phpBB TS Mod aus phpBB2 in phpBB 3 einbinden?

Beitrag von Faithnall »

Hallo ich versuche derzeit etwas vergeblich nach einen Update auf phpBB (3.0.5) das TS User Mod wieder an laufen zu bekommen, leider hat sich in der Datei Struktur etwas viel getan, das ich nun nicht mehr wirklich durch schaue wo was hin gehört.

Hier mal aus der mod Anleitung:

Code: Alles auswählen

#-----[ OPEN ]------------------------------------------
#
index.php
#
#-----[ FIND ]------------------------------------------
#
include($phpbb_root_path . 'common.'.$phpEx);
#
#-----[ AFTER, ADD ]------------------------------------------
#
include($phpbb_root_path . 'tsuser.'.$phpEx);
#
#-----[ FIND ]------------------------------------------
#
	$template->assign_vars(array(
		'TOTAL_POSTS' => sprintf($l_total_post_s, $total_posts),
		'TOTAL_USERS' => sprintf($l_total_user_s, $total_users),
		'NEWEST_USER' => sprintf($lang['Newest_user'], '<a href="' . append_sid("profile.$phpEx?mode=viewprofile&" . POST_USERS_URL . "=$newest_uid") . '">', $newest_user, '</a>'), 

#
#-----[ AFTER, ADD ]------------------------------------------
#
    'tsuser' => getTSInfo($ip,$port,$tPort,$basic,$bgcolor),



Bis hierher kein Problem ...

Code: Alles auswählen


#-----[ OPEN ]------------------------------------------
#
templates/subSilver/index_body.tpl
#
#-----[ FIND ]------------------------------------------
#
	<td class="row1" align="left"><span class="gensmall">{TOTAL_USERS_ONLINE} &nbsp; [ {L_WHOSONLINE_ADMIN} ] &nbsp; [ {L_WHOSONLINE_MOD} ]<br />{RECORD_USERS}<br />{LOGGED_IN_USER_LIST}</span></td>
#
#-----[ REPLACE WITH ]------------------------------------------
#
	<td class="row1" align="left"><span class="gensmall">{TOTAL_USERS_ONLINE} &nbsp; [ {L_WHOSONLINE_ADMIN} ] &nbsp; [ {L_WHOSONLINE_MOD} ]<br /> {tsuser} <br />{RECORD_USERS}<br />{LOGGED_IN_USER_LIST}</span></td>

Auch das hab ich mit etwas suchen gefunden die Datein sind ja nun html. Habe sie aber nicht gleich komplett ersetrzt sondern erst mal nur das {tsuser} eingebaut.

Code: Alles auswählen


#-----[ OPEN ]------------------------------------------
#
includes/functions.php
#
#-----[ FIND ]------------------------------------------
#

?>

#
#-----[ BEFORE, ADD ]------------------------------------------
#

function getTSInfo($ip,$port,$tPort,$basic,$bgcolor)
{
	
	function indexOf($str,$strChar)
	{
	if(strlen(strchr($str,$strChar))>0) {
		$position_num = strpos($str,$strChar) + strlen($strChar);		
		return $position_num;
	} else {
		return -1;
	}
	}
	global $name, $lang;	
	$out = "";
	$fp = @fsockopen($ip, $tPort, $errno, $errstr, 5);
	if(!$fp) {$tsuser_fkt=$lang['ts_user_off'];}
	if($fp) {
		fputs($fp, "sel ".$port."\n");
		fputs($fp, "si\n");
		fputs($fp, "quit\n");
		while(!feof($fp)) {
			$out .= fgets($fp, 1024);
		}		
		
		$out   	= str_replace("[TS]", "", $out);
		$out   	= str_replace("OK", "", $out);
		$out 	= trim($out);
		
		$name=substr($out,indexOf($out,"server_name="),strlen($out));
		$name=substr($name,0,indexOf($name,"server_platform=")-strlen("server_platform="));
		
		
	
			$ts_user=substr($out,indexOf($out,"server_currentusers="),strlen($out));
			$ts_user=substr($ts_user,0,indexOf($ts_user,"server_currentchannels=")-strlen("server_currentchannels="));		
			

				
			
		if($ts_user >2)
		{
				$tsuser_fkt= "Insgesamt sind <b>".$ts_user."</b> Benutzer auf dem TeamSpeak-Server.\n";
		}
		elseif($ts_user >1)
		{
	    	$tsuser_fkt= $lang['ts_user_1'];
		}
		else
		{
	    	$tsuser_fkt = $lang['ts_user_0'];
		}

							
		
		fclose($fp);
	}
	return $tsuser_fkt; 
}
Hier bin ich nicht sicher ob es wirklich die Functions sein soll ?! Oder die functions_display.php

Code: Alles auswählen

#
#-----[ OPEN ]------------------------------------------
#
language/lang_german/lang_main.php

#
#-----[ FIND ]------------------------------------------
#

?>

#
#-----[ BEFORE, ADD ]------------------------------------------
#


$lang['ts_user_off'] = '<b>Unser Teamspeakserver ist leider offline</b>';
$lang['ts_user_0'] = 'Es ist <b>kein</b> Benutzer auf dem TeamSpeak-Server.';
$lang['ts_user_1'] = 'Insgesamt ist <b>ein</b> Benutzer auf dem TeamSpeak-Server.';

So nun wirds richtig Lustig hier hat sich der code doch stark geändert.

Zum einen muss es nun wohl von schreibart so aussehen:

Code: Alles auswählen

    'ts_user_off'                   => 'Unser Teamspeakserver ist leider offline',
    'ts_user_0'                     => 'Es ist <b>kein</b> Benutzer auf dem TeamSpeak-Server.',
    'ts_user_1'                     => 'Insgesamt ist <b>ein</b> Benutzer auf dem TeamSpeak-Server.',
Doch in welche der vielen deutschen Lang´s gehört der Code nun ?

Wenn ich nun in der Template Datei irgendwo {tsuser} einsetzte wird dies nicht aufgeschlüsselt sondern genau so angezeigt.
Ypselon
Mitglied
Beiträge: 150
Registriert: 29.06.2008 16:03

Re: phpBB TS Mod aus phpBB2 in phpBB 3 einbinden?

Beitrag von Ypselon »

Also wie es aussieht, würde ich es probieren den Text in die 'language/de/common.php' einzubauen.

gebe den Code so ein :

Code: Alles auswählen

// TS Mod
'TS_USER_OFF'			=> 'Unser Teamspeakserver ist leider offline',
'TS_USER_0'			=> 'Es ist <b>kein</b> Benutzer auf dem TeamSpeak-Server.',
'TS_USER_1'			=> 'Insgesamt ist <b>ein</b> Benutzer auf dem TeamSpeak-Server.',
Wo du den am besten plazierst, musste ausprobieren.
Faithnall
Mitglied
Beiträge: 8
Registriert: 26.08.2009 20:39

Re: phpBB TS Mod aus phpBB2 in phpBB 3 einbinden?

Beitrag von Faithnall »

So ich hab das nun mal in der common.php eingebunden.

Das diese ja Alphabetisch aufgebaut ist also so :

Code: Alles auswählen

    'TOTAL_USERS_ZERO'	=> 'Mitglieder insgesamt: <strong>0</strong>',
    'TRACKED_PHP_ERROR'	=> 'Aufgefangene PHP-Fehler: %s',
    'TS_USER_OFF'               => 'Unser Teamspeakserver ist leider offline',
    'TS_USER_0'                   => 'Es ist <b>kein</b> Benutzer auf dem TeamSpeak-Server.',
    'TS_USER_1'                   => 'Insgesamt ist <b>ein</b> Benutzer auf dem TeamSpeak-Server.',

    'UNABLE_GET_IMAGE_SIZE'	=> 'Die Größe des Bildes konnte nicht ermittelt werden.', 
Das Problem besteht weiterhin.

in der functions.php habe ich an ende also vor ?> die Funktion eingebaut:

Code: Alles auswählen

function getTSInfo($ip,$port,$tPort,$basic,$bgcolor)
{

	function indexOf($str,$strChar)
	{
	if(strlen(strchr($str,$strChar))>0) {
		$position_num = strpos($str,$strChar) + strlen($strChar);
		return $position_num;
	} else {
		return -1;
	}
	}
	global $name, $lang;
	$out = "";
	$fp = @fsockopen($ip, $tPort, $errno, $errstr, 5);
	if(!$fp) {$tsuser_fkt=$lang['ts_user_off'];}
	if($fp) {
		fputs($fp, "sel ".$port."\n");
		fputs($fp, "si\n");
		fputs($fp, "quit\n");
		while(!feof($fp)) {
			$out .= fgets($fp, 1024);
		}

		$out   	= str_replace("[TS]", "", $out);
		$out   	= str_replace("OK", "", $out);
		$out 	= trim($out);

		$name=substr($out,indexOf($out,"server_name="),strlen($out));
		$name=substr($name,0,indexOf($name,"server_platform=")-strlen("server_platform="));



			$ts_user=substr($out,indexOf($out,"server_currentusers="),strlen($out));
			$ts_user=substr($ts_user,0,indexOf($ts_user,"server_currentchannels=")-strlen("server_currentchannels="));




		if($ts_user >2)
		{
				$tsuser_fkt= "Insgesamt sind <b>".$ts_user."</b> Benutzer auf dem TeamSpeak-Server.\n";
		}
		elseif($ts_user >1)
		{
	    	$tsuser_fkt= $lang['ts_user_1'];
		}
		else
		{
	    	$tsuser_fkt = $lang['ts_user_0'];
		}



		fclose($fp);
	}
	return $tsuser_fkt;
}
Ich bekomm auch keine Fehlermeldung.

in der index.php sind die beiden stellen von mir so eingebaut.

Code: Alles auswählen

include($phpbb_root_path . 'common.' . $phpEx);
include($phpbb_root_path . 'tsuser.' . $phpEx);
include($phpbb_root_path . 'includes/functions_display.' . $phpEx);
und

Code: Alles auswählen

$template->assign_vars(array(
	'TOTAL_POSTS'	=> sprintf($user->lang[$l_total_post_s], $total_posts),
	'TOTAL_TOPICS'	=> sprintf($user->lang[$l_total_topic_s], $total_topics),
	'TOTAL_USERS'	=> sprintf($user->lang[$l_total_user_s], $total_users),
	'NEWEST_USER'	=> sprintf($user->lang['NEWEST_USER'], get_username_string('full', $config['newest_user_id'], $config['newest_username'], $config['newest_user_colour'])),
    'tsuser'        => getTSInfo($ip,$port,$tPort,$basic,$bgcolor),
zum testen habe ich in der index_body.html ganz an ende erst mal den aufruf eingebaut:

Code: Alles auswählen

</table>
Hallo welt  {tsuser}

<!-- INCLUDE overall_footer.html -->
Das Hallo Welt diente dazu um überhaupt zu sehen ob es zur anzeige kommt. Habe natürlich in der Board config Rekompilieren veralteter Style-Komponenten: auf JA gestellt.

{tsuser} wird noch immer nicht aufgeschlüsselt.
Helmut
Mitglied
Beiträge: 2048
Registriert: 27.12.2002 20:35
Wohnort: Augsburg

Re: phpBB TS Mod aus phpBB2 in phpBB 3 einbinden?

Beitrag von Helmut »

Hallo Faithnall,

ganz so einfach ist es nicht, einen 2er Mod auf 3.0.x zu übertragen, da sich einiges geändert hat, wie du schon selber schreibst.

So gibt es im 3er keine profile.php mehr, wie in dem Ausschnitt der Modanleitung zu sehen ist (append_sid("profile.$phpEx?mode=viewprofile&" ......), das läuft jetzt über die memberlist.php. Dann wird eine tsuser.php includet, die müsste auch angepasst werden usw.

Also das bedeutet, dass du den Mod erst mal auseinander nehmen musst, um zu schauen, was alles anders gemacht werden muss. Davon abgesehen, hast du mal geschaut, ob es vielleicht schon einen Mod gibt, der das gleiche macht?

Gruß Helmut
Ich bin nicht ganz dicht.... na und.
Faithnall
Mitglied
Beiträge: 8
Registriert: 26.08.2009 20:39

Re: phpBB TS Mod aus phpBB2 in phpBB 3 einbinden?

Beitrag von Faithnall »

Ich antworte mal in umgekehrter reihenfolge :)

Also ein anderes fertiges Mod was dies macht, habe ich in der Moddatenbank und Forum suche nicht gefunden.

die tsuser.php ist nur die Aufnahme für die TS Server Einstellungen und lag beim Mod bei:

Code: Alles auswählen

<?php

/*****************************************************
* Connection variables	
* Verbindungseinstellungen						      
*****************************************************/
$ip 	= "78.111.226.28";	// Hier Die TeamSpeak-Serveradresse eingeben
$tPort 	= "51234";			// Server QueryPort
$port 	= "8810";			// Port des TS2 server

?>
Ich hab bis jetzt auch versucht die Einbindungen gemäß 3 vorzunehmen nur irgendwo harkt es, kann halt nur nicht feststellen woran.

Mal anders gefragt wenn in der lang Datei ein Eintrag nicht vorhanden ist z.B. {keineahnung} wird gesetzt aber dazu gibt es kein Eintrag in der Sprachdatei, schreibt er es dann als normalen text hin? Dann wüsste ich zumindest wo ich weiter suchen muss.
Helmut
Mitglied
Beiträge: 2048
Registriert: 27.12.2002 20:35
Wohnort: Augsburg

Re: phpBB TS Mod aus phpBB2 in phpBB 3 einbinden?

Beitrag von Helmut »

Hallo Faithnall,

ich habemal ein bischen auf phpbb.com gestöbert und das hier gefunden:

[BETA] Teamspeak login integration v:0.3.1
[BETA] Teamspeak Viewer MOD

Könntest du mal einen Link zum alten Mod einstellen damit man sich den mal ganz anschauen kann?

Gruß Helmut
Ich bin nicht ganz dicht.... na und.
Faithnall
Mitglied
Beiträge: 8
Registriert: 26.08.2009 20:39

Re: phpBB TS Mod aus phpBB2 in phpBB 3 einbinden?

Beitrag von Faithnall »

Klar nichts leichter als das, da ich das Mod ja hier von der Mod Datenbank habe :)

http://www.phpbb.de/moddb/mod.php?id=428

Habe mir nun mal die anderen beiden angeschaut grade das zweite scheint die gleichen Funktionen (oder mehr) zu haben als das was ich hier gefunden habe. Leider gottes will dieses aber auch nicht, vermute aber mal das es an sockets enabled liegt, code hab ich mehrfach kontrolliert.

Das andere geht mir ehrlich gesagt zu weit, ich möchte eigentlich nicht die User daten von Forum und TS verbinden.
Helmut
Mitglied
Beiträge: 2048
Registriert: 27.12.2002 20:35
Wohnort: Augsburg

Re: phpBB TS Mod aus phpBB2 in phpBB 3 einbinden?

Beitrag von Helmut »

Hallo Faithnall,

ich habe mir mal den Mod angeschaut, da ist ja echt fast nichts dran. Ich vermute mal, dass es rein an der Textausgabe der Sprachvariablen liegt.

Ändere mal die Funktion so ab:

Code: Alles auswählen

function getTSInfo($ip,$port,$tPort,$basic,$bgcolor)
{

   function indexOf($str,$strChar)
   {
   if(strlen(strchr($str,$strChar))>0) {
      $position_num = strpos($str,$strChar) + strlen($strChar);
      return $position_num;
   } else {
      return -1;
   }
   }
   global $user;
   $out = "";
   $name = $user->data['username'];
   $fp = @fsockopen($ip, $tPort, $errno, $errstr, 5);
   if(!$fp) {$tsuser_fkt=$user->lang['TS_USER_OFF'];}
   if($fp) {
      fputs($fp, "sel ".$port."\n");
      fputs($fp, "si\n");
      fputs($fp, "quit\n");
      while(!feof($fp)) {
         $out .= fgets($fp, 1024);
      }

      $out      = str_replace("[TS]", "", $out);
      $out      = str_replace("OK", "", $out);
      $out    = trim($out);

      $name=substr($out,indexOf($out,"server_name="),strlen($out));
      $name=substr($name,0,indexOf($name,"server_platform=")-strlen("server_platform="));



         $ts_user=substr($out,indexOf($out,"server_currentusers="),strlen($out));
         $ts_user=substr($ts_user,0,indexOf($ts_user,"server_currentchannels=")-strlen("server_currentchannels="));




      if($ts_user >2)
      {
            $tsuser_fkt= "Insgesamt sind <b>".$ts_user."</b> Benutzer auf dem TeamSpeak-Server.\n";
      }
      elseif($ts_user >1)
      {
          $tsuser_fkt= $user->lang['TS_USER_1'];
      }
      else
      {
          $tsuser_fkt = $user->lang['TS_USER_0'];
      }



      fclose($fp);
   }
   return $tsuser_fkt;
} 
Die Sprachvariablen setzt du dann so ein, wie Ypselon es schon weiter oben sagte. Damit sollte es dann laufen. Mir war jetzt nur nicht klar, ob $name den Usernamen vom Forum enthält.

Gruß Helmut
Ich bin nicht ganz dicht.... na und.
Faithnall
Mitglied
Beiträge: 8
Registriert: 26.08.2009 20:39

Re: phpBB TS Mod aus phpBB2 in phpBB 3 einbinden?

Beitrag von Faithnall »

So nachdem ich mal alle groß und kleinschreibweisen auf einen Nenner = GROß gebracht habe, hab ich es nun doch hinbekommen.

zu sehen : Forum wo TS Mod läuft.

Würde ja den Mod nun mit neuer mod datei noch mal hier rein stellen da das ursprüngliche Script aber nicht von mir ist, weiß ich nun nicht wie ich das sauber machen kann ohne das es zu vorwürfen kommt.
Benutzeravatar
Mahony
Ehemaliges Teammitglied
Beiträge: 12179
Registriert: 17.11.2005 22:33
Wohnort: Ostfildern Kemnat
Kontaktdaten:

Re: phpBB TS Mod aus phpBB2 in phpBB 3 einbinden?

Beitrag von Mahony »

Hallo
Alle veröffentlichten MODs unterliegen der GNU General Public License und können, von jedem der sich dazu in der Lage fühlt, weiter bearbeitet werden. Du musst dich allerdings dabei an die Lizenz halten und die Credits des ursprünglichen Programmierers in die install.xml eintragen.

P.S. Ein Testuser für dein Forum ( um den MOD beurteilen zu können), wäre nicht das schlechteste (siehe KB:testuser).


Grüße: Mahony
Taekwondo in Berlin
Wer fragt, ist ein Narr für fünf Minuten, wer nicht fragt, ist ein Narr für immer.
Antworten

Zurück zu „[3.0.x] Mod Support“