[gelöst] Bilder im Template -> werden nicht mit Imagecache angezeigt.
am 23.08.2010 - 17:13 Uhr in
Hallo,
ich stehe mal wieder vor einem Rätsel. Ich wollte folgende Funktion verwenden um ein Bild im user-profile.tpl.php anzuzeigen:
<?php print theme_imagecache('profile', $path); ?>
Doch nichts passiert. Wenn ich mir mit print $path den Pfad ausgebe und die Adresse in den Browser kopiere, wird das Bild angezeigt (somit stimmt der Pfad).
Das Preset im ImageCache heisst auch "profile". Was mache ich falsch?
Auch folgende Varianten funktionieren nicht:
<?php theme_imagecache('profile', $path); ?>
<?php print theme('imagecache', 'profile', $path); ?>Vielen Dank, viele Grüße Stefan
- Anmelden oder Registrieren um Kommentare zu schreiben

Hast Du denn auch in
am 23.08.2010 - 17:18 Uhr
Hast Du denn auch in Imagecache eine Preset namens "profile" angelegt? Per Default hat Imagecache nämlich gar keine Presets und Du willst hier etwas mit dem Preset "profile" anzeigen lassen. Das geht aber nur, wenn das existiert.
Beste Grüße
Werner
Hallo Werner, danke für die
am 23.08.2010 - 17:44 Uhr
Hallo Werner,
danke für die schnelle Antwort.
Ein Preset namens "profile" habe ich angelegt.
Irgendwie stimmt in meinem Code etwas nicht, ich poste diesen mal:
<?php
global $user;
global $base_url;
$node = content_profile_load('person_photo', $user->uid);
$path = $base_url.'/'.conf_path().'/files/images/profile/'.$node->field_p_photo_person[0][filename];
print theme_imagecache('profile', $path]);
?>
Im Ordner "imagecache/profile/" ist auch nur das Drupallogo enthalten, sonst nichts :(
print $path ergibt auch den richtigen Pfad: http://localhost/Photo/sites/default/files/images/profile/IMG_0018.JPG
Setze doch mal hart den
am 23.08.2010 - 18:10 Uhr
Setze doch mal hart den korrekten Pfad in den Theme_Imagecache-Aufruf. Das wird vermutlich korrekt ausgegeben. Hast Du Dir mal die Struktur von $node ausgegeben? Ich kenne jetzt Deine Nodestruktur nicht, aber das sieht mir komisch aus.
Beste Grüße
Werner
Hallo Werner, wenn ich den
am 23.08.2010 - 19:05 Uhr
Hallo Werner,
wenn ich den direkten Pfad einsetze, wird das Foto leider auch nicht angezeigt.
print theme_imagecache('profile', 'http://localhost/Photo/sites/default/files/images/profile/IMG_0018.JPG');Der direkte Pfad im Browser selbst funktioniert allerdings (wie schon erwähnt).
Hast Du Dir mal die Struktur von $node ausgegeben? Ich kenne jetzt Deine Nodestruktur nicht, aber das sieht mir komisch aus.
Meinst du print dsm($node)? Was sollte mir das bringen? Der Pfad wir ja in der "$path"-Variable richtig zusammengesetzt, somit müsste das doch in Ordnung sein, oder?
Ich hab auch schon den Cache geleert etc., aber ImageCache will nicht funktionieren :(
Vielleicht noch ne Idee woran es liegen könnte?
DANKE,
viele Grüße Stefan
Im Anhang dsm($node)
Du setzt allerdings einen URL
am 23.08.2010 - 19:49 Uhr
Du setzt allerdings einen URL und keinen Pfad ein. Das ist bei manchen Routinen unerheblich, aber hier muß es wohl der Pfad sein.
/**
* Create and image tag for an imagecache derivative
*
* @param $presetname
* String with the name of the preset used to generate the derivative image.
* @param $path
* String path to the original image you wish to create a derivative image
* tag for.
* @param $alt
* Optional string with alternate text for the img element.
* @param $title
* Optional string with title for the img element.
* @param $attributes
* Optional drupal_attributes() array. If $attributes is an array then the
* default imagecache classes will not be set automatically, you must do this
* manually.
* @param $getsize
* If set to TRUE, the image's dimension are fetched and added as width/height
* attributes.
* @return
* HTML img element string.
*/
function theme_imagecache($presetname, $path, $alt = '', $title = '', $attributes = NULL, $getsize = TRUE) {
Lass "http://" weg und probiere es damit.
Beste Grüße
Werner
Danke für deine Geduld. Es
am 23.08.2010 - 20:17 Uhr
Danke für deine Geduld.
Es klappt leider immer noch nicht :(
Ich füge folgende Zeile in der user-profile.tpl.php ein
<?php print theme_imagecache('profile', 'localhost/Photo/sites/default/files/images/profile/IMG_0018.JPG'); ?>Zur Kontrolle habe ich diese Zeile in einer anderen node-xxx.tpl.php eingefügt, Auch dort wird das Bild nicht angezeigt. Im IE taucht allerdings das Default-Bild auf. Rechte Maustaste, "Eigenschaften", zeigt mir folgende URL des Bildes:
http://localhost/Photo/sites/default/files/imagecache/profile/localhost/Photo/sites/default/files/images/profile/IMG_0018.JPGDas ist ja auch total falsch. Ich verstehe es nicht :(
Nachtrag:
Lösche ich den Pfad und trage nur IMG_0018.JPG als "$path" ein. So wird das Bild auch nicht angezeigt. IM IE wieder auf Eigenschaften geklickt, zeigt mir aber den richtigen Pfad zum Bild:
http://localhost/Photo/sites/default/files/imagecache/profile/IMG_0018.JPGIm Ordner imagecache/profile ist auch kein Bild gespeichert worden.
Mit einem neu angelegten Preset funktioniert es auch nicht :(
Hast Du die Einstellungen
am 23.08.2010 - 20:32 Uhr
Hast Du die Einstellungen fürs Dateisystem überprüft? Stimmen die beiden Pfade, existieren die Verzeichnisse und sind die Rechte in beiden Fällen auf 777 gestellt? Wie stehen die Rechte für das Verzeichnis files/imagecache? Ist irgendein Hinweis im PHP-Errorlog zu finden?
So langsam gehen mir auch die Ideen aus.
Beste Grüße
Werner
PHP-Errorlog zeigt folgenden
am 23.08.2010 - 21:17 Uhr
PHP-Errorlog zeigt folgenden Fehler:
Typ imagecache
Datum Montag, August 23, 2010 - 21:59
Benutzer admin
Ortsangabe http://localhost/Photo/sites/default/files/imagecache/test2/localhost/Ph...
Referrer http://localhost/Photo/user/1
Nachricht 404: Unable to find
Schweregrad Fehler
Hostname 127.0.0.1
Operationen
Der Pfad wird falsch eingetragen, obwohl dieser ausgeschrieben in der Funktion eingetragen wird:
print theme_imagecache('test2', 'localhost/Photo/sites/default/files/images/profile/IMG_0018.JPG');Und der Pfad stimmt 100%ig. Genau dort ist das Bild hinterlegt. Keine Tippfehler, im Browser eingegeben, erscheint das Bild.
Die Rechte stimmen. Wenn ich ein neues Preset anlege, wird auch der Presetordner inkl. dem "imagecache_sample.png" automatisch angelegt.
Mir gehen leider auch die Ideen aus. Ich werde mal das Modul neu installieren und weiter probieren. Wenn ich eine Lösung finde, poste ich sie hier.
Vielen Dank für deine Geduld. Falls du doch noch eine Idee hast, immer her damit. Danke.
Viele Grüße Stefan
Jetzt klappts endlich
am 24.08.2010 - 00:43 Uhr
Ich habe einen neuen Inhaltstypen angelegt. Anfangs hat es mit diesem nach obiger Methode auch nicht geklappt.
Aber wenn ich anstatt den absoluten Pfad nur folgendes eingebe, klappt es ENDLICH.
print theme_imagecache('test2', $node->field_p_photo_person[0]['filename']);oder
print theme_imagecache('test2', $node->field_p_photo_person[0]['filepath']);Und nach dieser Methode klappt es auch bei dem "alten" Inhaltstyp
Danke für die viele Hilfe, Werner.
Viele Grüße und gute Nacht, Stefan