Seite 1 von 1

Eigenen php-code in phpBB3 einbinden

Verfasst: 11.09.2010 10:16
von fishtown
Moin, leider hat mir die Suchfunktion keine Information zu meinem Problem gegeben. Daher frag ich mal hier:

Ich habe einen php-Code der Daten eines Shoutcastservers abfragt. Diese Daten werden dann über 'echo' ausgegeben. Leider muss ich bei dieser Variante die php-Funktion im Template einschalten.
Wie stell ich es an, das ich die php-Datei so einbinde, dass die Ausgabe über eine html-Seite geschieht, die ich dann einfach in meiner overall_header einbinde?

Hier mal der Code:

Code: Alles auswählen

<?php
## shoutcasthack by bikky on ##
$server = "XXX.XXX.XXX.XXX"; //hier deinen server eintragen z.b. musik.de oder 213.61.885.8
$port = 8000; //hier den port eintragen (ist standard (autom. korrigiert) 8000)
$fp = @fsockopen($server, $port, $errno, $errstr, 30);

if ($fp) {
fputs($fp, "GET /7.html HTTP/1.0\r\nUser-Agent: XML Getter (Mozilla Compatible)\r\n\r\n");
while(!feof($fp))
$page .= fgets($fp, 1000);
fclose($fp);
$page = ereg_replace(".*<body>", "", $page);
$page = ereg_replace("</body>.*", ",", $page);
$numbers = explode(",", $page);
$shoutcast_currentlisteners = $numbers[0]; //variable ueber die aktuelle anzahl der zuhoerer
$connected = $numbers[1]; //variable zum anzeigen ob ein sender verbunden sind
if($connected == 1) {
$radio_status = 1; //variable zum anzeigen ob radio an ist oder nicht
$wordconnected = "yes"; //zusaetzliche variable die ich brauchte
}
else
$wordconnected = "no"; //zusaetzliche variable die ich brauchte
$shoutcast_peaklisteners = $numbers[2]; //variable die die anzahl der peaks angiebt
$shoutcast_maxlisteners = $numbers[3]; //variable ueber die maximal moegliche anzahl der zuhoerer
$shoutcast_reportedlisteners = $numbers[4]; //
$shoutcast_bitrate = $numbers[5]; //bitrate
$shoutcast_cursong = $numbers[6]; //aktueller song
$shoutcast_curbwidth = $shoutcast_bitrate * $shoutcast_currentlisteners; //gesamtbandbreite
$shoutcast_peakbwidth = $shoutcast_bitrate * $shoutcast_peaklisteners; //gesamtpeakbandbreite
}

## output on ##
if ($radio_status == 1) {
echo '    <b><a style="text-decoration: none;font-size:12px;" href="http://XXX.XXX.XXX.XXX:8000/listen.pls"><img src="video.gif" align="middle">Videostream</img></a>&nbsp&nbsp&nbsp&nbsp<b><a style="text-decoration: none;font-size:12px;" href="http://XXX.XXX.XXX.XXX:8500/listen.pls"><img src="audio.gif" align="middle">Audiostream</img></a><br /><b> <font color="black"> Radio ist </font><font color="green">online</font> -<font color="black"> Aktuell:<marquee> >>' . $shoutcast_cursong . '<< </marquee><br />Zuhörer: ' . $shoutcast_currentlisteners . '/' . $shoutcast_maxlisteners . '</font></b>';
}
else {
echo '<b><img src="stop.gif" align="middle"></img>Radio ist zur Zeit <font color="red">offline</font>!</b>';
}
echo '</body></html>';
## output off ##
## shoutcasthack by bikky off ##
?>
Vielen Dank vorab für die Hilfe.

Re: Eigenen php-code in phpBB3 einbinden

Verfasst: 11.09.2010 18:01
von mojito
hi, es gibt einmal so ein

<!-- PHP -->

womit man sowas einfügen kann. ABER: bei mri hat das niemals funktioniert ^^

andere möglichkiet:

jede von diesen seiten hat ja 2 teile:

einen PHP-teil wo daten ausgelesen werden und bearbeitet werden und dann das style wo diese daten ausgegeben werden.

pack deinen quelltext einfach in die PHP-datei z.B. index.php und das was du mit echo ausgeben willst übergibst du einfach an das template:

bei der index.php findest du ingefähr inder 120igsten zeile folgendes:

Code: Alles auswählen

$template->assign_vars(array(
	'TOTAL_POSTS'	=> sprintf($user->lang[$l_total_post_s], $total_posts),
vor das 'Total_Posts' fügst du dann irgensowas ein:

Code: Alles auswählen

'SHOUTCAST_CU' => $shoutcast_currentlisteners,
das gleiche dann bei dem anderen variablen die du ausgeben willst auch.


und in die indexbody.html deines styls kannst du dann "den inhalt" deiner VAriablen mit {SHOUTCAST_CU} aufrufen. wichtig ist das du das jeweils groß schreibst ^^


ich hoffe ich konnte dir damit weiterhelfen

Re: Eigenen php-code in phpBB3 einbinden

Verfasst: 11.09.2010 18:38
von fishtown
Ertmal Danke für die Info.
Also, wenn ich das jetzt richtig verstanden habe könnte ich es auch so machen:

1. Ich definiere in einer php-Datei die Variablen
2. Ich nehme per include diese Datei in die index.php auf
3. Ich definiere die Variablen wie von dir beschrieben in der index.php

Code: Alles auswählen

'SHOUTCAST_CU' => $shoutcast_currentlisteners,
4. Ich übernehme die Variablen in das Template.

Ist das echt so einfach? Wenn ja, 1000 Dank. Wenn nein, wo ist mein Denkfehler?

Re: Eigenen php-code in phpBB3 einbinden

Verfasst: 11.09.2010 20:27
von Pyramide
Wenn du die Infos im Header einbinden willst, dann ist es empfehlenswert, die Daten z.B. per Cronjob alle 15 Minuten zu aktualisieren und in eine statische HTML-Seite zu schreiben, die dann im Template eingebunden wird. Ansonsten verzögert sich jeder Seitenaufruf um die Zeit, bis der Shoutcast-Server geantwortet hat bzw. falls dieser mal nicht erreichbar ist, dauert es entsprechend lange, bis der Aufruf in einen Timeout läuft.

Re: Eigenen php-code in phpBB3 einbinden

Verfasst: 11.09.2010 20:39
von fishtown
Boah, die Antwort hilft mir genauso viel, wie sie mich verwirrt.
Pyramide hat geschrieben:Wenn du die Infos im Header einbinden willst, dann ist es empfehlenswert, die Daten z.B. per Cronjob alle 15 Minuten zu aktualisieren und in eine statische HTML-Seite zu schreiben, die dann im Template eingebunden wird. Ansonsten verzögert sich jeder Seitenaufruf um die Zeit, bis der Shoutcast-Server geantwortet hat bzw. falls dieser mal nicht erreichbar ist, dauert es entsprechend lange, bis der Aufruf in einen Timeout läuft.
Ich versteh, das keine Daten längere Ladezeiten bedeuten. Das war es was du mit "bis der Shoutcast-Server geantwortet hat bzw. falls dieser mal nicht erreichbar ist, dauert es entsprechend lange" gemeint hast.
Aber was ist mit Cronjob? Wie, wo? Muss ich nu wirklich in der VHS php lernen gehen, oder kannst du mir das genauer erklären?
Cronjob sagt mir was. Hab ich bei einem anderen Forum am laufen. Aber wie mach ich das hiermit? Ich bin php(BB) ein n00b. Zur Zeit passe ich nur scripte an oder füge sie ein.

Bin für alles dankbar.

Re: Eigenen php-code in phpBB3 einbinden

Verfasst: 11.09.2010 21:51
von Pyramide
fishtown hat geschrieben:Cronjob sagt mir was. Hab ich bei einem anderen Forum am laufen. Aber wie mach ich das hiermit?
Nun, anstatt dass du den Code zum Abfragen des Shoutcast-Servers im Header einfügst und dieser somit bei jedem Seitenaufruf aufgerufen wird, lässt du ihn als Cronjob laufen und das Ergebnis dann in eine Datei z.B. styles/prosilver/template/shoutcast.html schreiben. Diese kannst du dann in der overall_header.html einbinden.

Re: Eigenen php-code in phpBB3 einbinden

Verfasst: 12.09.2010 09:19
von fishtown
Also, die Idee ist perfekt. Genauso soll es sein.
Gibt es irgendwo eine Dokumentation darüber, wie ich es machen muss?
Oder gibt es einen anderen Mod, an dem ich sehen kann, wie es dort gemacht wird?

Grüße
Fish

Re: Eigenen php-code in phpBB3 einbinden

Verfasst: 13.09.2010 17:08
von Amenovis
Mhh das sieht in etwa auch genauso aus wie mein Problem. Es baut auf wenn man sich plötzlich nicht mehr alleine dumm fühlt. Ich werde das was hier steht an anderer Stelle auch ausprobieren vielen dank

Re: Eigenen php-code in phpBB3 einbinden

Verfasst: 13.09.2010 17:34
von Pyramide
Amenovis hat geschrieben:Mhh das sieht in etwa auch genauso aus wie mein Problem.
Ich habe den Eindruck, dass du entweder selbst nicht weißt, was du eigentlich willst oder das Problem nur nicht verständlich beschreiben kannst. Deinem ersten Beitrag entnehme ich, dass du unabhängig vom Forum eine home.php erstellen möchtest, in der der Benutzername ausgegeben wird. In deinem zweiten Beitrag schreibst du dann etwas von "um Votings erweitern". In diesem Thema hingegen geht es darum, die Daten eines Shoutcast-Servers im normalen Header des Forums einzubinden.

Für mich sind das drei komplett unterschiedliche Anforderungen, die außer "hat was mit phpBB zu tun" nicht viel gemeinsam haben.