Bild/Datei in Addon einbinden

Alles über die Anwendung und Entwicklung von AddOns.

Bild/Datei in Addon einbinden

Beitragvon spiegel » 29. Apr 2009, 23:14

Irgendwie raff ich es nicht:
ich möchte eine Datei z.B. ein Bild, dass NICHT aus dem Ordner root/files oder redaxo->include->media kommt in einem Addon einbinden sondern z.B. in addons/example/files, weil ich die Datei nicht in eines der Verzeichnisse bei der Installation des Addons kopieren möchte.

Wenn ich nun die Datei über:

Code: Alles auswählen
$Basedir = dirname(__FILE__);
$image = $Basedir. '/../files/test.jpg';
echo '<img src="'. $image.'" />';


oder über:

Code: Alles auswählen
$image = 'include/addons/example/files/test.jpg';
echo '<img src="' .$image. '" />';


in example/pages/index.inc.php oder in example/pages/xxx.inc.php einbinde wird das Bild nicht angezeigt.

Wenn ich hingegen den Pfad zum Bild aus dem Quellcode der Seite herauskopiere und über den Browser aufrufe, wird es wie zu erwarten ist korrekt angezeigt.

Ich habe so ziemlich jede Variante ausprobiert aber ohne Erfolg. Hat jemand nen Tipp was ich falsch mache? Das müsste doch einfach zu bewerkstelligen sein?!

Als Grundlage habe ich das Beispiel Addon http://www.redaxo.de/180-0-addon-details.html?addon_id=69 genommen.

Sorry wenn ich mein Anliegen dämlich ist :oops: aber ich bin wirklich dankbar für jeden Hinweis!
spiegel
 
Beiträge: 30
Registriert: 15. Okt 2007, 15:57

Beitragvon anita » 30. Apr 2009, 08:58

hallo,

setze mal statt include $REX['INCLUDE_PATH']
entsprechende Syntax bekommst Du sicher selbst hin
Gruß Anita

javanita engineering, immer eine zündende Idee
http://www.javanita.com
Benutzeravatar
anita
 
Beiträge: 291
Registriert: 25. Jan 2007, 09:25
Wohnort: Finsterwalde

Beitragvon spiegel » 30. Apr 2009, 09:53

Hallo Anita,

danke für die Antwort, aber leider wie ich befürchtet habe hilft es nicht :cry:
Die Datei wird weiterhin nicht angezeigt. Wenn ich den Pfad aus dem Quellcode
herauskopiere und in dei Adresseleiste des Browsers direkt eingebe wird sie angezeigt: der Pfad stimmt also offensichtlich.

Wenn ich die Datei in dern Ordner redaxo->media kopiere und dorthin verweise wird sie korrekt angezeigt :( Das kopieren möchte ich allerdings vermeiden.

Kann es was mit den Berechtigungen zu tun haben?

Ich habe unter http://www.kunden-spiegel.info/rex/example.zip das Beispiel Addon mit den Änderungen abgelegt falls sich jemand die Mühe machen kann da einfach rein zu schauen. Verändert sind nur, dass es einen Ordner files gibt in dem die Datei liegt und die Datei pages/default_page.inc.php in der ich wie du vorsgeschlagen hast

Code: Alles auswählen
$REX['INCLUDE_PATH']


verwendet habe.

Hier komplett:
Code: Alles auswählen
$image = $REX['INCLUDE_PATH'] . '/addons/example/files/mime-png.gif';
echo '<img src="' . $image . '" height="44px" width="98px" />';


Danke für jede Hilfe, ich verzweifle dran.
Ich hoffe nur es kein dämlicher Fehler meinerseits :shock:

Grüße
spiegel
 
Beiträge: 30
Registriert: 15. Okt 2007, 15:57

Re: Bild/Datei in Addon einbinden

Beitragvon Gregor.Harlan » 30. Apr 2009, 10:11

Hallo,

Dateien innerhalb des include-Ordners sind eigentlich vor dem direkten Aufruf geschützt (Also auch vor "<img src="..." />"). Daher kann das so nicht funktionieren.
spiegel hat geschrieben:Wenn ich hingegen den Pfad zum Bild aus dem Quellcode der Seite herauskopiere und über den Browser aufrufe, wird es wie zu erwarten ist korrekt angezeigt.
Das ist allerdings sehr merkwürdig, weil es ist eben aus dem oben genannten Grund nicht zu erwarten. Wenn ich bei mir das Bild im Browser direkt aufrufe, erhalte ich eine "Forbidden"-Fehlermeldung.

Benutzt du REX 4.1 oder 4.2? In der 4.2 wird bei der Addoninstallation geschaut, ob sich im Addonordner ein Ordner "files" befindet, und falls ja, wird dieser nach root/files/addons/ kopiert. Die Dateien dort sind dann nicht mehr geschützt, und können direkt aufgerufen werden.

Gruß, Gregor
Benutzeravatar
Gregor.Harlan
Entwickler
 
Beiträge: 825
Registriert: 4. Jun 2007, 09:35
Wohnort: Dresden

Beitragvon spiegel » 30. Apr 2009, 10:57

Hallo,

Das ist allerdings sehr merkwürdig, weil es ist eben aus dem oben genannten Grund nicht zu erwarten. Wenn ich bei mir das Bild im Browser direkt aufrufe, erhalte ich eine "Forbidden"-Fehlermeldung.

das mit dem direkten Zugriff teste ich lokal. Hier greift der Schutz nicht. Übers Internet kommt natürlich die "Forbidden"!

Benutzt du REX 4.1 oder 4.2? In der 4.2 wird bei der Addoninstallation geschaut, ob sich im Addonordner ein Ordner "files" befindet, und falls ja, wird dieser nach root/files/addons/ kopiert. Die Dateien dort sind dann nicht mehr geschützt, und können direkt aufgerufen werden.

Ich verwende Rex 4.1.
Ich möchte ja vermeiden Dateien aus dem Addonverzeichniss irgendwo in z.B. root/files Dateien zu kopieren. Aus dem einfachen Grund, dass ich an einem Addon schreibe, in dem ein interaktives Tool, geschreiben in Flash, zum Einsatz kommt, das Daten in die Datenbank schreibt und deshalb auf keinen Fall direkt zugänglich sein darf, was es ja wäre wenn ich es in den Ordner redaxo/media ablege.

Iregndwie muss das auch möglich sein. Bei meiner Recherche bin ich alle möglichen Addons durchgegangen und auf das Addon JMCrop - Ajax - Imagecrop für Redaxo http://www.redaxo.de/18-0-addons.html gestoßen, in dem eine CSS-Datei aus einem Ordner des Addons miteingebunden wird und es funktioniert. Aber ich komme nicht darauf wie :evil:
spiegel
 
Beiträge: 30
Registriert: 15. Okt 2007, 15:57

Beitragvon Gregor.Harlan » 30. Apr 2009, 11:13

Hallo,

spiegel hat geschrieben:das mit dem direkten Zugriff teste ich lokal. Hier greift der Schutz nicht. Übers Internet kommt natürlich die "Forbidden"!
Bei mir greift der Schutz auch lokal.

spiegel hat geschrieben:Ich verwende Rex 4.1.
Ich möchte ja vermeiden Dateien aus dem Addonverzeichniss irgendwo in z.B. root/files Dateien zu kopieren. Aus dem einfachen Grund, dass ich an einem Addon schreibe, in dem ein interaktives Tool, geschreiben in Flash, zum Einsatz kommt, das Daten in die Datenbank schreibt und deshalb auf keinen Fall direkt zugänglich sein darf, was es ja wäre wenn ich es in den Ordner redaxo/media ablege.
Es wird ja auch nicht das gesamte addon-Verzeichnis in den files-ordner kopiert, sondern nur der Ordner "files" im Addonverzeichnis. In den tut man dann Dateien, die man direkt aufrufen möchte, und die auch keinen Schaden anrichten können. Also Bilder, CSS-Dateien etc.

spiegel hat geschrieben:Iregndwie muss das auch möglich sein. Bei meiner Recherche bin ich alle möglichen Addons durchgegangen und auf das Addon JMCrop - Ajax - Imagecrop für Redaxo http://www.redaxo.de/18-0-addons.html gestoßen, in dem eine CSS-Datei aus einem Ordner des Addons miteingebunden wird und es funktioniert. Aber ich komme nicht darauf wie :evil:
Entweder, indem man im Addonordner irgendwo den Schutz wieder aufhebt, oder indem man die Dateien über PHP ausliest (war bei 4.1 bei CSS-Dateien in Addons üblich).
Im Imagecrop Addon wird der Schutz im Ordner imagecrop/files/ wieder aufgehoben (.htaccess).

Gruß, Gregor
Benutzeravatar
Gregor.Harlan
Entwickler
 
Beiträge: 825
Registriert: 4. Jun 2007, 09:35
Wohnort: Dresden

Beitragvon spiegel » 30. Apr 2009, 12:26

Hallo,

Bei mir greift der Schutz auch lokal.

Mit lokal meinte ich nicht http://localhost/dummy_redaxo_4_1/redax ... addons/etc
da greift der Schutz natürlich

sondern

/Users/xxx/Documents/Htdocs/dummy_redaxo_4_1/redaxo/include/addons/etc

Sorry wenn ich mich missverständlich ausgedrückt habe!

Es wird ja auch nicht das gesamte addon-Verzeichnis in den files-ordner kopiert, sondern nur der Ordner "files" im Addonverzeichnis. In den tut man dann Dateien, die man direkt aufrufen möchte, und die auch keinen Schaden anrichten können. Also Bilder, CSS-Dateien etc.

Das nicht das ganze Addon in das Verzeichnis "files" kopiert wird ist mir klar. Habe ich auch so probiert und zum Laufen bekomme. Aber ich möchte wie gesagt ein Flash-File einbinden und das kann/muss auf die Datenbank zugreifen. Nicht sehr sicher, oder?

Vielen Dank für deine Mühe jedenfalls. Ich probier es mal mit dem Tipp mit der .htaccess Datei im addon/files Verzeichnis. Wobei das ja wieder das Flash-File, wenn man den absoluten Pfad weiss - eher unwahrrscheinlich, aber man weiss ja nie! - von Aussen zugänglich macht?!

Sonst fällt wahrscheinlich auch niemandem ne andere Lösung ein, oder??? :(

Grüße
spiegel
 
Beiträge: 30
Registriert: 15. Okt 2007, 15:57

Beitragvon spiegel » 30. Apr 2009, 13:36

Schade,
den Ordner addons/example/files über ne .htaccess freigegeben so das zb. http://localhost/dummy_redaxo_4_1/redax ... me-png.gif direkt aufgerufen das Bild auch im Browser angezeigt wird aber im Addon selbst immer noch nicht:
Code: Alles auswählen
<img src="'.$REX["INCLUDE_PATH"].'/addons/example/files/mime-png.gif" />


Ich verzweifle!
spiegel
 
Beiträge: 30
Registriert: 15. Okt 2007, 15:57

Beitragvon Gregor.Harlan » 30. Apr 2009, 15:00

An der Stelle darfste $REX["INCLUDE_PATH"] nicht nehmen.
Also:
Code: Alles auswählen
<img src="include/addons/example/files/mime-png.gif" />

Gruß, Gregor
Benutzeravatar
Gregor.Harlan
Entwickler
 
Beiträge: 825
Registriert: 4. Jun 2007, 09:35
Wohnort: Dresden

Beitragvon spiegel » 30. Apr 2009, 15:51

Hallo,

das hat jetzt geklappt!
Der 1. Mai scheint doch gerettet zu sein :D

Vielen Dank und schönen Feiertag

Gruß
Christian
spiegel
 
Beiträge: 30
Registriert: 15. Okt 2007, 15:57


Zurück zu AddOns [R4]

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 2 Gäste