Zum Inhalt springen

Abfrage auf Bild vorhanden, sonst Dummy-Bild

Erstellt am 11. Dezember 2006 · 3 Antworten · letzte Antwort am 14. Dezember 2006

Tags: Bilder, Frage

typo3tester ·

Hallo,

ich möchte prüfen, ob ein Logo im Homeverzeichnis eines Users vorhanden ist, wenn ja, dann nehme dieses Logo, um einen Bereich im HTML-Template zu ersetzen, wenn nicht, dann nehme das Dummy-Logo.

subparts.LOGO=IMAGE
subparts.LOGO.file = fileadmin/user_upload/users/28/logo.jpg
subparts.LOGO.if.isTrue=1

würde also falsch zurückkgeben, wenn die Datei nicht geladen ist und somit subparts.LOGO zerstören.

Mein Problem ist, daß ich ja nicht nur eine IF-Abfrage brauche, ob das Bild vorhanden ist, sondern auch einen ELSE-Zweig, der mir das andere Bild nur dann einbaut, wenn das User-Logo nicht vorhanden ist.

Wie kann ich die Bedingung bauen, daß das funktioniert.

Bzw. gibt es eine völlig andere Möglichkeit?

Gruß, Regina

einpraegsam.​net ·

ohne Gewähr:

subparts.LOGO=IMAGE
subparts.LOGO.file = fileadmin/user_upload/users/28/logo.jpg
#subparts.LOGO.if.isTrue=1
subparts.LOGO.ifEmpty = fileadmin/user_upload/users/28/bild.jpg
typo3tester ·

Hi wunschtacho,

ich habs's grad nochmal ausprobiert, wäre ja zu schön gewesen, funktioniert aber nicht.
Aber so wie ich es verstehe, kann ich mit diesen Abfrage-Funktionen wie if und ifTrue und ifEmpty ect. nur auf True oder False abfragen und wenn False, dann wird das Objekt zerstört.
Ich kann aber keine neue Zuweisung damit machen.

Da fehlt mir einfach an dieser Stelle ein Konstrukt, das einen ELSE-Zweig vorsieht.

Gruß, Regina

typo3tester ·

HI,

ich habe das Problem jetzt über eine Bedingung gelöst, die eine User Funktion abfragt.

Code im Constant-Editor:

bild=fileadmin/freesite/image/logo.jpg
[userFunc= user_match(fileadmin/user_upload/users/28/logo.jpg)]
 bild=fileadmin/user_upload/users/28/logo.jpg
[global]

Code im Setup-Editor:

subparts.LOGO=IMAGE
 subparts.LOGO.file =  {$bild}

Funktion user_match in der Datei localconf.php

 function user_match($wunschfile) {   
   $result = false;
   if(file_exists(<Pfad auf PHP>.$wunschfile))
   {
   	
   	$result = true;
   }
   return $result;
 }

Ich weiß nicht warum, aber bei mir klappt es nur, wenn ich die Bedingung im Constanten-Editor baue und den Pfad nach unten als Konstante übergebe.
Wenn ich die Bedingung im Setup-Editor baue, dann gibt sie immer True zurück, egal, was ich als Parameter der Funktion übergebe.

Ich stelle das Thema trotzdem auf gelöst.

Gruß, Regina