Keine Anzeige trotz vorhandener & erreichbarer File-Src bei Flash-Ads
am 28.11.2008 - 19:56 Uhr in
Hallo,
wir setzen in einem Drupal 5 bisher erfolgreich das Ad-Modul (http://drupal.org/project/ad) ein.
Jetzt möchten wir auf Kundenwunsch auch Flash-Banner einsetzen, dazu habe ich die Erweiterung ad_flash:
http://drupal.org/node/135567#comment-1075048
installiert und etwas angepasst (verwende swfobject.js die wir sowieso schon in der Site einsetzen, anstatt der dort verwendeten AC_RunActiveContent.js)
So weit so gut, das entsprechende HTML wird auch korrekt gerendert:
<embed width="175" height="150" flashvars="autostart=true&clickTag=http://www.xyz.de/ad/redirect/191" wmode="transparent" quality="high" name="flashbanner-191" id="flashbanner-191" style="" src="http://www.xyz.de/system/files/banner.swf" type="application/x-shockwave-flash"/>
Der Banner wird jedoch nicht angezeigt (Film nicht geladen).
Rufe ich die Source direkt über die Adresszeile im Browser auf, so wird mir die .swf zum Download angeboten und auch mit korrektem Header (application/x-shockwave-flash) ausgeliefert.
Jetzt habe ich testweise das banner.swf mal per FTP ins Document Root hochgeladen und mit Fire-Bug die src entsprechend angepasst auf: src="http://www.xyz.de/banner.swf"
und sofort wird das Banner angezeigt. Das lässt mich irgendwie vermuten, das etwas beim Ausliefern der Datei über Drupal schief geht (aber warum klappt dann der direkte Aufruf über die Adresse der Datei?!)
Die Dateirechte haben wir auf "private" gesetzt, die entsprechenden Rechte "Hochgeladene Dateien anschauen" vom Upload-Modul sind aber gesetzt und z.B. die Image-Ads oder andere hochgeladene Dateien werden auch angezeigt.
Any ideas welcome!
- Anmelden oder Registrieren um Kommentare zu schreiben
Des Problems Ursache: content-disposition: attachment;
am 03.12.2008 - 10:44 Uhr
Rufe ich die Source direkt über die Adresszeile im Browser auf, so wird mir die .swf zum Download angeboten und auch mit korrektem Header (application/x-shockwave-flash) ausgeliefert.
So ganz korrekt sind die HTTP-Header dann wohl doch nicht, (habe mir das mal mit Live HTTP headers genauer angeschaut) da Drupal das .swf (im Gegensatz zu .gif oder .jpg) mit
content-disposition: attachment; filename=banner.swf
ausliefert, deshalb ja logischerweise auch der Download-Dialog im Browser.Und genau da liegt das Problem! Aber woher zum Teufel nimmt Drupal die Information bei .swf's diesen Header zu schicken?!
Konnte im gesamten Quellcode der Installation nur ein Vorkommen von
"Content-Disposition:"
finden - aber das in locale.inc für den Export des .po-Files.Habe jetzt in
file_transfer()
(includes/file.inc) einen Filter für diesen Header eingebaut und schon funktioniert die Anzeige des Flash-Banners:<?php
if (eregi(".swf$", $source)) {
if (!eregi("content-disposition", $header))
drupal_set_header($header);
}
else {
drupal_set_header($header);
}
?>
Aber das ist ja leider nicht gerade die schönste Lösung.
Gibt es nicht irgendwo eine Option, mit der man Regeln kann wie Drupal die verschiedenen Dateitypen ausliefert?
Mime-Type
am 03.12.2008 - 15:24 Uhr
Das sieht für mich nach der Weitergabe basierend auf den bekannten Mime-Types des Webservers aus und müßte da dann auch geändert/erweiter werden.
Gruß
Werner
.
Werner
drupal-training.de
Moderator und Drupal Trainer
* - - - - - - - - - - - - - - - - - - - - - - - - - - - *
Wirklich Mime-Type?
am 03.12.2008 - 16:39 Uhr
Hallo Werner,
Das sieht für mich nach der Weitergabe basierend auf den bekannten Mime-Types des Webservers aus...
Dagegen spricht doch aber
Sonst dürfte doch z. B. auch ein SWF mit einer Logo-Animation, das wir von Anfang in der Seite haben nicht vom Flash-Player geladen werden können?!