Seite 1 von 2

Attachment Mod: JW FLV Media Player einbinden

Verfasst: 01.10.2008 14:34
von Dungeonwatcher
Hi! 8)

Ich versuche seit Stunden den JW FLV Media Player anstelle des reinen Flasplayer in den Attachment Mod einzubinden. Dazu habe ich diesen Codeblock:

Code: Alles auswählen

      <script type="text/javascript" language="javascript">
        //<![CDATA[ /// Flash Javay method
        var ua = navigator.userAgent.toLowerCase();
        if ((ua.indexOf("msie") != -1) && (ua.indexOf("opera") == -1) && (ua.indexOf("webtv") == -1)){
        document.write('<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/#version=9,0,23,0" width="{postrow.attach.cat_swf.WIDTH}" height="{postrow.attach.cat_swf.HEIGHT}">');
        document.write('<param name="movie" value="{postrow.attach.cat_swf.U_DOWNLOAD_LINK}" /></object> '); }
        else{ document.write('<object data="{postrow.attach.cat_swf.U_DOWNLOAD_LINK}" type="application/x-shockwave-flash" width="{postrow.attach.cat_swf.WIDTH}" height="{postrow.attach.cat_swf.HEIGHT}"></object>'); }
        //]]>
      </script>
      <noscript>
        <object data="{postrow.attach.cat_swf.U_DOWNLOAD_LINK}" type="application/x-shockwave-flash" width="{postrow.attach.cat_swf.WIDTH}" height="{postrow.attach.cat_swf.HEIGHT}">
          <param name="movie" value="{postrow.attach.cat_swf.U_DOWNLOAD_LINK}" />
        </object>
      </noscript>
durch diesen ersetzt:

Code: Alles auswählen

      <p id="fvideo" class="media">{postrow.attach.cat_swf.U_DOWNLOAD_LINK}</p>
        <script type="text/javascript" src="./templates/swfobject.js"></script>
		<script type="text/javascript">
          var s1 = new SWFObject("./templates/player.swf","ply","640","480","9","#ffffff");
          s1.addParam("allowfullscreen","true");
          s1.addParam("autostart","true");
          s1.addParam("flashvars","file=../../forum/{postrow.attach.cat_swf.U_DOWNLOAD_LINK}");
          s1.write("fvideo");
      </script>
Solange es nur ein einziges Video im Thread gibt, tut dies auch bestens funktionieren. Sobald aber ein zweites oder mehr dazu kommen gibt es Chaos. Teilweise wird das falsche Video abgespielt, teilweise wird der Player garnicht erst angezeigt. :-?

Was läuft da falsch?

Bye

Verfasst: 01.10.2008 15:29
von StarWolf3000
Hätte da einen Vorschlag:

Anstatt die Player-ID "fvideo" fest hineinzuschreiben, würde ich eine ID generieren lassen, bspw. "fvideo_attachPost-Nummer" (ergibt z.B. "fvideo_attach18", wenn das Video im Beitrag Nr. 18 in der Datenbank ist).

Code: Alles auswählen

      <p id="fvideo_attach{postrow.attach.cat_swf.POST_ID}" class="media">{postrow.attach.cat_swf.U_DOWNLOAD_LINK}</p> 
        <script type="text/javascript" src="./templates/swfobject.js"></script> 
      <script type="text/javascript"> 
          var s1 = new SWFObject("./templates/player.swf","ply","640","480","9","#ffffff"); 
          s1.addParam("allowfullscreen","true"); 
          s1.addParam("autostart","true"); 
          s1.addParam("flashvars","file=../../forum/{postrow.attach.cat_swf.U_DOWNLOAD_LINK}"); 
          s1.write("fvideo_attach{postrow.attach.cat_swf.POST_ID}"); 
      </script>
In der /attach_mod/displaying.php müsste dann nur noch die Template-Variable "POST_ID" in den "postrow.attach.cat_swf"-Block der Funktion display_attachments() eingebunden werden.
Suche (innerhalb von function display_attachments())

Code: Alles auswählen

				$template->assign_block_vars('postrow.attach.cat_swf', array(
					'U_DOWNLOAD_LINK'		=> $filename,
					'S_UPLOAD_IMAGE'		=> $upload_image,
Danach einfügen

Code: Alles auswählen

					'POST_ID'				=> $post_id,

Verfasst: 01.10.2008 15:49
von Dungeonwatcher
StarWolf3000 hat geschrieben:Hätte da einen Vorschlag:

Anstatt die Player-ID "fvideo" fest hineinzuschreiben, würde ich eine ID generieren lassen, bspw. "fvideo_attachAttachment-Nummer" (ergibt z.B. "fvideo_attach18", wenn das Video das Attachment Nr. 18 in der Datenbank ist).
Ja genau, an diese Player-ID dachte ich auch schon. Wenn ich es richtig verstehe, bekommen alle Player Fenster die gleich ID. Die Browser kommen dadurch logischerweise ins trudeln.

Deine Idee klingt gut.
In der viewtopic.php müsste dann nur noch die Template-Variable "ATTACH_ID" in den "postrow.attach.cat_swf"-Block eingebunden werden.
Hmmm, in der viewtopic.php finde ich nichts passendes? Dafür in der displaying.php. Der Code Block dürfte dieser sein:

Code: Alles auswählen

					$template->assign_block_vars('postrow.attach.cat_swf', array(
						'U_DOWNLOAD_LINK' => $filename,
						'DOWNLOAD_NAME' => $display_name,
						'FILESIZE' => $filesize,
						'SIZE_VAR' => $size_lang,
						'COMMENT' => $comment,
						'L_DOWNLOADED_VIEWED' => $lang['Viewed'],
						'WIDTH' => $width,
						'HEIGHT' => $height)
					);
Wie müsste das dann hier aussehen?

Verfasst: 01.10.2008 16:06
von StarWolf3000
Beitrag schneller geändert, als du antworten konntest.

Weiter im Text:
Das ganze hat natürlich auch einen Nachteil: Wenn mehrere Videos pro Beitrag eingebunden werden, funktioniert das natürlich nicht mehr, da dann auch wieder alle die selbe ID haben. Das macht aber nichts, denn auch dazu habe ich eine passende Lösung parat:

Suchen (wieder in der Funktion)

Code: Alles auswählen

$template->assign_block_vars('postrow.attach.cat_swf', array(
Davor einfügen

Code: Alles auswählen

srand ((double)microtime() * 1000000);
$zufall = rand(0,99999);
Suche (innerhalb function display_attachments())

Code: Alles auswählen

'POST_ID'            => $post_id,
Ersetzen mit

Code: Alles auswählen

'POST_ID'            => $post_id . "_" . $zufall,

Verfasst: 01.10.2008 16:13
von Dungeonwatcher
StarWolf3000 hat geschrieben:Beitrag schneller geändert, als du antworten konntest.
So schnell kann ich garnicht den Code editieren wie du schreibst... :wink:

Verfasst: 01.10.2008 16:30
von StarWolf3000
Ändere die Variable in dem Temlate von POST_ID auf RANDOM_ID um, wir bauen jetzt die Post-ID wieder aus.

Suchen (innerhalb function display_attachments())

Code: Alles auswählen

'POST_ID'            => $post_id . "_" . $zufall,
Ersetzen durch

Code: Alles auswählen

'RANDOM_ID'            => $zufall,
In der function display_attachments_preview() machen wir jetzt das gleiche nochmal:

Suche

Code: Alles auswählen

					$template->assign_block_vars('postrow.attach.cat_swf', array(
						'U_DOWNLOAD_LINK'		=> $filename,
						'DOWNLOAD_NAME'			=> $display_name,
Davor einfügen

Code: Alles auswählen

srand ((double)microtime() * 1000000); 
$zufall = rand(0,99999);
Danach einfügen

Code: Alles auswählen

'RANDOM_ID'            => $zufall,

Verfasst: 01.10.2008 18:15
von Dungeonwatcher
Hi! 8)

Ein riesengroßes Dankeschön!! :)

Das tut jetzt bestens funktionieren. Ich habe selber kein Durcheinander festgestellt und ich gehe davon aus das meine User auch nichts dergleichen beobachten werden.

THNX

Bye

Re: Attachment Mod: JW FLV Media Player einbinden

Verfasst: 30.11.2010 10:46
von MDuss
Hi Leute.

Ich habe gestern auch den Attach Mod 2.45 eingebaut.
Kann mir bitte jemand hier beschreiben, welche Dateien ich hier wie ändern muss, damit ich den JW FLV Media Player auch nutzen kann.
Ich würde diesen gerne für Video und Audio Dateien nutzen.

Hier wird ja leider nicht genau beschrieben zu, welche Datei genau geändert wird.

Im Eröffnungsthread steht z.B. nur: Dazu habe ich diesen Codeblock durch diesen ersetzt.
Aber es steht nirgends, wo dieser Block zu finden ist.

Und selbst gefunden habe ich diesen bisher auch nicht.

MfG
MDuss

Re: Attachment Mod: JW FLV Media Player einbinden

Verfasst: 30.11.2010 11:35
von Dungeonwatcher
Hi! 8-)
MDuss hat geschrieben:Ich habe gestern auch den Attach Mod 2.45 eingebaut.
Ich eine Vorgängerversion, genaue weiss ich aber nicht mehr.
Hier wird ja leider nicht genau beschrieben zu, welche Datei genau geändert wird.

Im Eröffnungsthread steht z.B. nur: Dazu habe ich diesen Codeblock durch diesen ersetzt.
Aber es steht nirgends, wo dieser Block zu finden ist.
Im Text weiter unten steht's aber. :wink:

Es ist die ...\attach_mod\displaying.php

Da ich das Original nicht mehr habe, hier mal der kplt. Code:

displaying.php

Bye

Re: Attachment Mod: JW FLV Media Player einbinden

Verfasst: 01.12.2010 10:40
von MDuss
Hi

Dungeonwatcher.

Danke für deine Antwort.

Wo ich aber noch Probleme habe:
Du schreibst ja:
Dungeonwatcher hat geschrieben:

Code: Alles auswählen

<script type="text/javascript" language="javascript">
        //<![CDATA[ /// Flash Javay method
        var ua = navigator.userAgent.toLowerCase();
        if ((ua.indexOf("msie") != -1) && (ua.indexOf("opera") == -1) && (ua.indexOf("webtv") == -1)){
        document.write('<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/#version=9,0,23,0" width="{postrow.attach.cat_swf.WIDTH}" height="{postrow.attach.cat_swf.HEIGHT}">');
        document.write('<param name="movie" value="{postrow.attach.cat_swf.U_DOWNLOAD_LINK}" /></object> '); }
        else{ document.write('<object data="{postrow.attach.cat_swf.U_DOWNLOAD_LINK}" type="application/x-shockwave-flash" width="{postrow.attach.cat_swf.WIDTH}" height="{postrow.attach.cat_swf.HEIGHT}"></object>'); }
        //]]>
      </script>
      <noscript>
        <object data="{postrow.attach.cat_swf.U_DOWNLOAD_LINK}" type="application/x-shockwave-flash" width="{postrow.attach.cat_swf.WIDTH}" height="{postrow.attach.cat_swf.HEIGHT}">
          <param name="movie" value="{postrow.attach.cat_swf.U_DOWNLOAD_LINK}" />
        </object>
      </noscript>
ersetzen mit

Code: Alles auswählen

<p id="fvideo" class="media">{postrow.attach.cat_swf.U_DOWNLOAD_LINK}</p>
        <script type="text/javascript" src="./templates/swfobject.js"></script>
      <script type="text/javascript">
          var s1 = new SWFObject("./templates/player.swf","ply","640","480","9","#ffffff");
          s1.addParam("allowfullscreen","true");
          s1.addParam("autostart","true");
          s1.addParam("flashvars","file=../../forum/{postrow.attach.cat_swf.U_DOWNLOAD_LINK}");
          s1.write("fvideo");
      </script>
Mein Problem dabie:
Ich finde weder den einen noch den anderen Code. ich muss aber doch angeben, wo z.B. der Palyer (also die Palyer.swf) auf dem Server liegt. Und dies ist im obigen Code angegeben. Aber wo muss ich diesen Teil einbauen?

Diesen Code finde ich auch nicht in der Datei displaying.php

MfG
MDuss