Page 1 of 1

[2.0.x]Eigener Block mit Ausgabe eines PHP-Files

Posted: 18. September 2011 19:46
by MyLady
Ich habe im Portal bis 1.0.6 einen eigenen Block gehabt, in dem ich einen Radiostatus (shoutcast-Abfrage) ausgeben konnte.

Dazu hatte ich einen Block (radio.html) Datei in styles/meinstyle/portal/block mit dem Inhalt

Code: Select all

{$LR_BLOCK_H_L}<!-- IF $S_BLOCK_ICON --><img src="{T_THEME_PATH}/images/portal/note.png" width="16" height="16" alt="" />&nbsp;<!-- ENDIF -->Radio{$LR_BLOCK_H_R}

<!-- PHP --> include("radio/radio_stats.php"); <!-- ENDPHP -->

{$LR_BLOCK_F_L}{$LR_BLOCK_F_R}
dieser Block wurde lediglich in der additional_blocks_left eingetragen mit

Code: Select all

<!-- INCLUDE portal/block/lradio.html -->
jetzt bin ich ratlos. Ich bin nicht besonders bewandert im coden - und mit dieser neuen Blockverwaltung in dem Fall aufgeschmissen. Wie bekomme ich jetzt die Ausgabe der radio_stats.php in einen eigenen Block an der Seite??

Würde mir da jemand behilflich sein? :oops:

Re: [2.0.x]Eigener Block mit Ausgabe eines PHP-Files

Posted: 18. September 2011 20:25
by Kirk
Hallo
Du müstest dir vielleicht eine neue Modul Datei erstellen. knowledge/kb_show.php?id=58

Re: [2.0.x]Eigener Block mit Ausgabe eines PHP-Files

Posted: 18. September 2011 21:55
by MyLady
ja, das hab ich auch erkannt. Aber das ganze Zeugs da mit language-files, Funktionen und Sprachvariablen hab ich doch gar nicht, alles was das Script macht, ist in der php.
Ich brauche nichts weiter als diese Includeanweisung da für die Ausgabe umgesetzt auf die neuen Boxen, denn die radio.php hat nix mit dem Forum zu tun und beinhaltet doch den gesamten Code, der benötigt wird.
Irgendwie ist mir das zu hoch. Und ich glaub, nicht nur mir ;)

So einfach die Verwaltung jetzt bei vorgegebenen Modulen geworden ist, so schwierig wirds nun bei eigenen Boxeninhalten.

Ok - ich bin sicher nicht der einzige, der gern eine Shoutcast-Statusbox einbauen möchte (Peak, Listener, Titel, Link). Hat jemand schon sowas umgesetzt für das neue Portal?



edit:// warum kompliziert, wenns auch einfach geht..

Bis es eine Modul-Lösung für eine Streambox gibt, habe ich mir so geholfen: man kann die alte html-Datei, die vorher die Box mit dem PHP-Teil gebildet hat, auch einfach in den Portalbody in die jeweilige Spalte includen. Wie vorher. Funktioniert.

Re: [2.0.x]Eigener Block mit Ausgabe eines PHP-Files

Posted: 19. September 2011 17:38
by Kirk
Hast du schon mal probiert diesen html Teil in eine Box einzufügen?
Ein Link zur der Seite wo du das her hast währe hilfreich.

Re: [2.0.x]Eigener Block mit Ausgabe eines PHP-Files

Posted: 21. September 2011 00:40
by MyLady
ehrlich gesagt weiß ich nicht mehr, wo ich das Script letztlich gefunden habe. Es ist ein sehr altes Script und es kursieren viele Versionen an wenigen Stellen davon, alle zurückgehend auf das eine Ursprungsfile von Daniel Brown für den Shoutcast-Stream. :D

Wenn du den Code haben möchtest - kein Problem. Glaubst du, du kannst da ein Modul basteln?

also wie im ersten Beitrag geschrieben, hat es bisher genügt, dieses script auf folgende Weise in die html-Datei der Box zu schreiben:

<!-- PHP --> include("radio/radio_stats.php"); <!-- ENDPHP -->

Dann wurde in der Box der html-Inhalt des php-Scriptes angezeigt. Das Script der radio_stats.php lautet folgendermaßen:

Code: Select all

  <?php
// Shoutcast Server Stats
// Parses shoutcasts xml to make an effective stats thing for any website
// ©2004-2005 Daniel Brown http://www.gmtt.co.uk
// Please refer to the readme file for use.


// Add-On MAXLISTNERS insead of the / 10 MAXLISTENERS which was set, and the BITRATE add-on.
// Online and Offline graphics, and add-on code.
// Better HTML Script.

// Do Not Try To Edit This Only Unless You Know What You're Doing!!!!!!!
include('config_radio.php');

if(! $scfp = @fsockopen($scip, $scport, $errno, $errstr, 10)) {
$scsuccs=1;
// echo''.$scdef.' ist Offline'; 
echo'
<table border="0" border cellspacing="15" align="center">
<tr>
<td>
<p align="center">
<font face="Comic Sans MS" size="1" color="#0c95d9">Ladys Radio</font><br>
<img src="http://www.meinserver.de/images/offline.png"><br>

</p>
</td></tr>
</table>';
 }
if($scsuccs!=1){
 fputs($scfp,"GET /admin.cgi?pass=$scpass&mode=viewxml HTTP/1.0\r\nUser-Agent: SHOUTcast Song Status (Mozilla Compatible)\r\n\r\n");
 while(!feof($scfp)) {
  $page .= fgets($scfp, 1000);
 }
######################################################################################################################
/////////////////////////part 1 \\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
//define  xml elements
 $loop = array("STREAMSTATUS", "SERVERTITLE", "CURRENTLISTENERS", "MAXLISTENERS", "PEAKLISTENERS", "BITRATE");
 $y=0;
 while($loop[$y]!=''){
  $pageed = ereg_replace(".*<$loop[$y]>", "", $page);
  $scphp = strtolower($loop[$y]);
  $$scphp = ereg_replace("</$loop[$y]>.*", "", $pageed);
  if($loop[$y]==SERVERGENRE || $loop[$y]==SERVERTITLE || $loop[$y]==SONGTITLE || $loop[$y]==SERVERTITLE)
   $$scphp = urldecode($$scphp);

// uncomment the next line to see all variables
// echo'$'.$scphp.' = '.$$scphp.'<br>';
  $y++;
 }
//end intro xml elements
######################################################################################################################
######################################################################################################################
/////////////////////////part 2\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
//get song info and history
 $pageed = ereg_replace(".*<SONGHISTORY>", "", $page);
 $pageed = ereg_replace("<SONGHISTORY>.*", "", $pageed);
 $songatime = explode("<SONG>", $pageed);
 $r=1;
 while($songatime[$r]!=""){
  $t=$r-1;
  $playedat[$t] = ereg_replace(".*<PLAYEDAT>", "", $songatime[$r]);
  $playedat[$t] = ereg_replace("</PLAYEDAT>.*", "", $playedat[$t]);
  $song[$t] = ereg_replace(".*<TITLE>", "", $songatime[$r]);
  $song[$t] = ereg_replace("</TITLE>.*", "", $song[$t]);
  $song[$t] = urldecode($song[$t]);
  $dj[$t] = ereg_replace(".*<SERVERTITLE>", "", $page);
  $dj[$t] = ereg_replace("</SERVERTITLE>.*", "", $pageed);
$r++;
 }
//end song info
fclose($scfp);
}

//display stats
if($streamstatus == "1"){
//you may edit the html below, make sure to keep variable intact
echo'
<table border="0" border cellspacing="15" align="center">
<tr>
<td>
<center>
<a href="http://www.meinserver:8025/listen.pls"><img src="http://www.ladyscommunity.de/images/winamp1.png" border="0"><br>
<font face="Trebuchet MS" size="1" color="green">Play</font></a>
</center>
</td>
<td>
<center>
<font face="Comic Sans MS" size="2" color="#0c95d9">'.$servertitle.'</font><br>
<img src="http://www.meinserver.de/images/online.png"><br>
<font face="Trebuchet MS" size="1" color="green">
<b>Listeners:</b> '.$currentlisteners.' / '.$maxlisteners.'<br>
<b>Peak: </b> '.$peaklisteners.'<br>
<b>Now Playing:</b> '.$song[0].'</br><b>
</font>
</center>
</td>
<td>
<center>
<a href="http://meinserver:8025/listen.asx"><img src="http://www.meinserver.de/images/mplayer1.png" border="0"><br>
<font face="Trebuchet MS" size="1" color="green">Play</font></a>
</center>
</td>
</tr>
</table>';
}
if($streamstatus == "0")
{
//you may edit the html below, make sure to keep variable intact
echo'
<table border="0" border cellspacing="15" align="center">
<tr>
<td>
<p align="center">
<font face="Comic Sans MS" size="1" color="#0c95d9">Ladys Radio</font><br>
<img src="http://www.meinserver.de/images/offline.png"><br>

</p>
</td>
</table>';
}
?>
und so sieht das dann aus:

Image

Re: [2.0.x]Eigener Block mit Ausgabe eines PHP-Files

Posted: 22. September 2011 18:26
by Kirk
Mit diesem Code alleine kann ich leider nichts anfangen weil mir zb. die config_radio.php fehlt
ich erhalte noch weiter Fehler.
Bin leider nicht so sehr bewandert auf diesem Gebiet.
Vielleicht findet ein anderer der dir weiter helfen kann.

Re: [2.0.x]Eigener Block mit Ausgabe eines PHP-Files

Posted: 23. September 2011 13:54
by MyLady
ah ok - wenn du dich noch damit auseinandersetzen möchtest, würde ich dir privat die aktuellen Dateien mit korrekten Daten zustellen - über PN oder mail. Ich möchte die Daten hier nicht öffentlich aushängen, weil privat. ;), wäre auch nur für einen Test erforderlich, im allgemeinen muss es ja änderbar sein auf die jeweiligen Streamdaten, die benutzt werden sollen.

Gegebenenfalls könnten wir uns auch über icq kurzschließen, weil der Stream nur zu bestimmten Zeiten eingeschaltet wird.

edit:// falls noch jemand an der Lösung bastelt, vorsorglich der Inhalt einer config.php dazu

Code: Select all

<?php

$scdef = "Loginname";               
$scip = "meinstreamserver.org";
$scport = "8025";                  
$scpass = "meinpasswort";                 

?>
Struktur:
Ordner radio - Inhalt: config_radio.php und radio_stats.php, listen.pls und listen.asx
---Unterordner images, Inhalt: die Bilder für die Play-Buttons.

Einige Versionen der Scripts gibts zum Beispiel hier: StreamSolution (wobei dort nur die html-Komponente fehlt). Es gibt noch viele andere Scripte, die mit sehr viel mehr Dateien arbeiten ;), auch gab es schon Umsetzungen für PhpBB, die aber überwiegend abandoned sind. Für so eine Box wäre jedes Script geeignet, das konfigurierbar die üblichen Variablen von Shoutcast-Server (ursprünglich Winamp) für aktuelle Zuhörer, gesamt mögliche Zuhörer, Peak, aktuell laufender Titel, Titelhistorie ausliest.

Re: [2.0.x]Eigener Block mit Ausgabe eines PHP-Files

Posted: 10. October 2011 10:51
by MyLady
das hat sich für mich zunächst mal erledigt.
Ich fand eine Lösung mit Flash.

Re: [2.0.x]Eigener Block mit Ausgabe eines PHP-Files

Posted: 8. November 2013 12:52
by Carsten
hallo MyLady

könntest du das hier einstellen deine Lösung ?
mfg Carsten ^^

Re: [2.0.x]Eigener Block mit Ausgabe eines PHP-Files

Posted: 19. November 2013 17:06
by MyLady
natürlich, gern. Hm.. das ist inzwischen schon ne Weile her, und ich brauchs nun selbst nicht mehr. Aber wir kriegen das wieder zusammen.

Ich benutzte damals ffmp3 player (Seitenblock) und native shoutcast player, Downloadlink siehe unten, (Mittelblock) als Webplayer im Portal. Dazu ein paar selbstgemachte Buttons, um ein Popup je Stream aufmachen zu können - man will ja nicht immer die Seite offen halten.

Im eigenen Block habe ich folgenden Code verwendet:

Seitenblock, FFMP3 - zwei verschiedene Streams, mit Buttons für Player im Popup, und für Winamp (listen.pls) statt auf der Seite
Image

Code: Select all

<div style="text-align: center;">
<!-- BEGINS: Radio1 FFMP3 CODE -->
<object width="180" height="60">
<param name="movie" value="/radio/ffmp3-config.swf" />
<param name="flashvars" value="url=http://radiostreamurlundport.org:28025/;&lang=ger&codec=mp3&volume=50&traking=false&jsevents=false&buffering=5&skin=ffmp3-mcclean.xml&title=Ladys%20Radio" />
<param name="wmode" value="transparent" />
<param name="allowscriptaccess" value="always" />
<param name="scale" value="noscale" />
<embed src="/radio/ffmp3-config.swf" flashvars="url=http://radiostreamurlundport.org:28025/;&lang=ger&codec=mp3&volume=50&traking=false&jsevents=false&buffering=5&skin=ffmp3-mcclean.xml&title=Ladys%20Radio" width="180" scale="noscale" height="60" wmode="transparent" allowscriptaccess="always" type="application/x-shockwave-flash" />
</object>
<!-- ENDS: AUTO-GENERATED FFMP3 CODE -->
<br />
<p>
<a href="http://meinforum.de/radio/ffmp3.html" onclick="popup(this.href, 186, 62); return false;"  title="Popup"><img src="/img/popup.png" width="64" height="24" /></a><a href="http://radiostreamurlundport.org:28025/listen.pls"><img src="/img/winampx15.png" width="69" height="24" /></a>	 <br>

</p>
<!-- BEGINS: Radio2 FFMP3 CODE -->
<object width="180" height="60">
<param name="movie" value="/radio/ffmp3-config.swf" />
<param name="flashvars" value="url=http://radiostreamurlundport.de:8015/;&lang=ger&codec=mp3&volume=50&traking=false&jsevents=false&buffering=5&skin=ffmp3-mcclean.xml&title=Ela%20und%20Vince%20Radio" />
<param name="wmode" value="transparent" />
<param name="allowscriptaccess" value="always" />
<param name="scale" value="noscale" />
<embed src="/radio/ffmp3-config.swf" flashvars="url=http://radiostreamurlundport.de:8015/;&lang=ger&codec=mp3&volume=50&traking=false&jsevents=false&buffering=5&skin=ffmp3-mcclean.xml&title=Ela%20und%20Vince%20Radio" width="180" scale="noscale" height="60" wmode="transparent" allowscriptaccess="always" type="application/x-shockwave-flash" />
</object>
<!-- ENDS: AUTO-GENERATED FFMP3 CODE -->
<br />
<p>
<a href="http://meinforum.de/radio/ffmp32.html" onclick="popup(this.href, 186, 62); return false;"  title="Popup"><img src="/img/popup.png" width="64" height="24" /></a><a href="http://radiostreamurlundport.de:8015/listen.pls"><img src="/img/winampx15.png" width="69" height="24" /></a>
</p>

		</div>

Mittelblock, Native Radio
Image

Code: Select all

<script type="text/javascript" src="/radio/swfobject.js"></script>
<div id="flashcontent" style="text-align: center;">
	<p>
    	<strong>Sorry this site have a flash based native radio and needed adobe flash 10+ support. </strong><br />
	    <a href="http://www.adobe.com/shockwave/download/download.cgi?P1_Prod_Version=ShockwaveFlash">Download Flash here.</a>
    </p>

</div>

<script type="text/javascript">
	// <![CDATA[
	
	var so = new SWFObject("/radio/nativeradio2big.swf", "nativeradio", "398", "130", "10", "#cccccc");
	so.addParam("scale", "noscale");
	so.addVariable("swfcolor", "B0C1CB");
	so.addVariable("swfstreamurl", "http://s7.pop-stream.de:7160");
	so.addVariable("swfpause", "1");
	so.write("flashcontent");
	
	// ]]>
</script>
</div>    </p>
<div style="text-align: center;">
<a href="http://meinforum.de/radio/natbig.html" onclick="popup(this.href, 430, 150); return false;"  title="Popup"><img src="/img/popup.png" width="64" height="24" /></a><br></div>
Für Popups, wenn du die auch haben willst, muss natürlich zusätzlich je eine html-Datei pro Stream erstellt werden, Beispiel für Radio2, Seitenplayer, klein:

Code: Select all

<div style="text-align: center;">
<!-- BEGINS: Radio2 FFMP3 CODE -->
<object width="180" height="60">
<param name="movie" value="ffmp3-config.swf" />
<param name="flashvars" value="url=http://radiostreamurlundport.de:8015/;&lang=ger&codec=mp3&volume=100&traking=false&jsevents=false&buffering=5&skin=ffmp3-mcclean.xml&title="Ela%20und%20Vince%20Radio"" />
<param name="wmode" value="transparent" />
<param name="allowscriptaccess" value="always" />
<param name="scale" value="noscale" />
<embed src="ffmp3-config.swf" flashvars="url=http://radiostreamurlundport:8015/;&lang=ger&codec=mp3&volume=100&traking=false&jsevents=false&buffering=5&skin=ffmp3-mcclean.xml&title=Meinradio" width="180" scale="noscale" height="60" wmode="transparent" allowscriptaccess="always" type="application/x-shockwave-flash" />
</object>
<!-- ENDS: Radio2 FFMP3 CODE -->
</div>
Im Grunde also nichts weiter, als ein Auszug aus dem Code oben. Die html Datei muss dann halt entsprechend benannt und verlinkt werden. In meinem Beispiel für Radio 2 ist es die "ffmp32.html", wie du oben im Block-Code sehen kannst

Code: Select all

...
<p>
<a href="http://meinforum.de/radio/ffmp32.html" onclick="popup(this.href, 186, 62); return false;"  title="Popup"><img src="/img/popup.png" width="64" height="24" /></a><a href="http://radiostreamurlundport.de:8015/listen.pls"><img src="/img/winampx15.png" width="69" height="24" /></a>
</p>
...
Alle Titel, Urls, Ports und Streamingbefehle sind natürlich anzupassen. Beachte auch die Hinweise des verwendeten Players.

ffmp3, Download und Codegenerator (Seitenblock)
Installationsanleitung Native Radio Player, Download (Seitenversion, Mittelversion)

Ich hoffe, das hilft dir weiter ;)

Re: [2.0.x]Eigener Block mit Ausgabe eines PHP-Files

Posted: 19. November 2013 18:08
by heiner
Hallo, hier haben wir es mit html und Einbinden eines Flash- SWF-Objektes zu tun.
All das sollte mit einem eigenen und vorgefertigtem Portalmodul, vorausgesetzt das "native Internetradio" ist auf dem eigenen Server bereits eingerichtet, problemlos zu realisieren sein.
Ich denke hierfür ist kein neues spezielles "Board-III-Portal - Modul" mit der benötigten Dateistruktur, Sprachvariablen usw. zu erfinden und in das Portal einzubinden.
Der vorgegebenen Modulname läßt sich im ACP des Portals beliebig und wunschgemäß umbenennen.
Die richtigen Pfadangaben im Code sind natürlich aus Sicht des Forums, hier spielt die Musik, anzupassen und müssen passen.
Letztlich ist dann nur noch zu beachten, dass BB-Code zu deaktivieren ist.
Das sollte mit dem Blockinhalt des alten 1.0.6-Portals spielen.
Heiner

Re: [2.0.x]Eigener Block mit Ausgabe eines PHP-Files

Posted: 23. November 2013 02:00
by MyLady
heiner wrote:Hallo, hier haben wir es mit html und Einbinden eines Flash- SWF-Objektes zu tun.
Da hast du ganz Recht, Heiner. Allerdings erst jetzt, nach so langer Zeit ;)

Ursprünglich ging es um ein Modul für das neue Portal, um die Radiogeschichte, die vorher als html-Ausgabe eines php-Files in den alten Block eingebunden werden konnte, wieder darstellen zu können.

Weil ich mit der Anleitung zum Bau eines entsprechenden Moduls überfordert bin, und weil auch sonst keiner eines angeboten hat, habe ich mich um eine andere Lösung bemüht. Und das war die mit dem swf-Flash-Objekt, das nun eben den Stream der oben genannten radio.php abfragt ;)
Diese habe ich auf Wunsch eingestellt.

Das hat nun nichts am Grundthema geändert (es gibt noch immer kein Modul für die direkte Ausgabe der php-Datei), sondern lediglich einen Weg zum Ziel um eine weitere Ecke herum als Ersatzlösung gebracht. Das hilft leider auch nur in diesem speziellen Fall, nicht aber für die allgemeine Frage.

Re: [2.0.x]Eigener Block mit Ausgabe eines PHP-Files

Posted: 23. November 2013 19:10
by heiner
Ausgabe bzw. Darstellung des Ergebnisses einer PHP-Datei in einem Modul in der aktuellen Portalversion ist generell nicht möglich.
Die php-Funktion ist in das phpBB-Forum (Sektion "include"), bzw, Portal zu portieren, und die Ausgabe muss danach in eine eigens hierfür benötigte HTML-Datei verpackt werden. Die HTML kann danach in eine Portalmodul als HTML eingefügt dann auch aufgerufen werden.
Noch einmal -" php" in einem Custom- bzw Benutzer-Modul ist nicht möglich. Hier geht nur BB-Code oder HTML. Eigenes HTML funktioniert aber nur, wenn auch die Funktionen und Variablen im Forum/Board definiert sind.
PS: Von einem "WEB-Radio" würde ich die Finger lassen. (GEMA - kann zusätzliche Kosten verursachen.)
Ein schönes WE
Heiner