Eigenen php-code in phpBB3 einbinden

In diesem Forum kann man Fragen zur Programmierung stellen, die bei der Entwicklung von Mods für phpBB 3.0.x oder dem Modifizieren des eigenen Forums auftauchen.
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.
Antworten
Benutzeravatar
fishtown
Mitglied
Beiträge: 77
Registriert: 04.01.2009 13:19

Eigenen php-code in phpBB3 einbinden

Beitrag 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.
mojito
Mitglied
Beiträge: 99
Registriert: 10.06.2010 11:07

Re: Eigenen php-code in phpBB3 einbinden

Beitrag 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
Benutzeravatar
fishtown
Mitglied
Beiträge: 77
Registriert: 04.01.2009 13:19

Re: Eigenen php-code in phpBB3 einbinden

Beitrag 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?
Benutzeravatar
Pyramide
Ehrenadmin
Beiträge: 12734
Registriert: 19.04.2001 02:00
Wohnort: Meschede

Re: Eigenen php-code in phpBB3 einbinden

Beitrag 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.
KB:knigge
Benutzeravatar
fishtown
Mitglied
Beiträge: 77
Registriert: 04.01.2009 13:19

Re: Eigenen php-code in phpBB3 einbinden

Beitrag 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.
Benutzeravatar
Pyramide
Ehrenadmin
Beiträge: 12734
Registriert: 19.04.2001 02:00
Wohnort: Meschede

Re: Eigenen php-code in phpBB3 einbinden

Beitrag 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.
KB:knigge
Benutzeravatar
fishtown
Mitglied
Beiträge: 77
Registriert: 04.01.2009 13:19

Re: Eigenen php-code in phpBB3 einbinden

Beitrag 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
Amenovis
Mitglied
Beiträge: 11
Registriert: 13.09.2010 04:01

Re: Eigenen php-code in phpBB3 einbinden

Beitrag 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
Benutzeravatar
Pyramide
Ehrenadmin
Beiträge: 12734
Registriert: 19.04.2001 02:00
Wohnort: Meschede

Re: Eigenen php-code in phpBB3 einbinden

Beitrag 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.
KB:knigge
Antworten

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