[TYPO3-german] Pop Up für Bilder

Widmann, Manfred mpunktw at gmx.net
Fri Jan 4 14:38:56 CET 2008


"Corrado Viotto" <corrado at corrado.li> schrieb im Newsbeitrag 
news:mailman.1.1199437147.16599.typo3-german at lists.netfielders.de...
> Gutes neues Jahr
>
> Habe eine kleine Extension gebastelt, die mir ein paar Daten inkl. Bilder 
> aus der DB liest und auf der Page anzeigt.
> Anschliessend habe ich bei der Listen- Ansicht die Grösse des 
> anzuzeigenden Bildes definiert (mit einem CObject) und habe es auch 
> verlinkt für den PopUp (mit imageLinkwrap)
>
> Alles funktioniert.
>
> Nun mein Problem:
> Für die Einzelansicht möchte ich das Bild in einer anderen Grösse.
> Dachte ich könnte einfach der
> getFieldContent Funktion eine weitere Bedingung hinzufügen im Stil (image 
> ist für Listenansicht, image_singleview für Einzel- Ansicht):
>
> case "image":
> $imgTSConfig = $this->conf['imageCObject.'];
> $imgTSConfig['file'] = 
> 'uploads/tx_userartgallery/'.$this->internal["currentRow"][$fN];
> return $this->cObj->IMAGE($imgTSConfig);
> break;
>
> case "image_singleview":
> $imgTSConfig = $this->conf['image_singleviewCObject.'];
> $imgTSConfig['file'] = 
> 'uploads/tx_userartgallery/'.$this->internal["currentRow"][image];
> return $this->cObj->IMAGE($imgTSConfig);
> break;
>
> Wie ihr sehen könnt kann ich aber da nicht mehr auf die Variable $fN 
> zurückgreifen um das Bild anzuzeigen und musste daher direkt den Namen des 
> DB Feldes (image) eingeben. Jetzt funktioniert zwar das Anzeigen in einer 
> anderen Grösse aber der PopUp über imageLinkwrap natürlich nicht mehr.
>
> In meinen Augen ein absoluter Murks.
>
> Hat mir Jemand ne Idee wie ich das elegant lösen könnte?
>
> Vielen herzlichen Dank schon mal
> Gruss
> Corrado

Hi Corrado!

Ich mach das in vielen Extensions so:

01     $image = explode(',',$row["picture"]); // Nur erstes Bild wird 
verarbeitet
02     $conf["picture."]["file"]                                     = 
'uploads/tx_wmcontact/' . $image[0];
03     if ($conf["picture."]["file."]["maxW"] == "")
04       $conf["picture."]["file."]["maxW"]                          = 
"200m";
05     if ($conf["picture."]["border"] == "")
06       $conf["picture."]["border"]                                 = "0";
07     $conf["picture."]["altText"]                                  = 
$title . " " . $firstname . " " . $lastname;
08     $conf["picture."]["imageLinkWrap"]                            = 1;
09     $conf["picture."]["imageLinkWrap."]["enable"]                 = 1;
10     if ($conf["onClickLightbox"]) {  // use Lightbox from Ext. pmkslinbox
11       $conf["picture."]["imageLinkWrap."]["typolink."]["title"]      = 
$title . " " . $firstname . " " . $lastname;
12       $conf["picture."]["imageLinkWrap."]["typolink."]["parameter"]  = 
'uploads/tx_wmcontact/' . $image[0];
13       $conf["picture."]["imageLinkWrap."]["typolink."]["ATagParams"] = 
'rel="lightbox"';
14     }
15     else {                           // use simple "on Click enlarge" 
mechanism
16       $conf["picture."]["imageLinkWrap."]["title"]                   = 
$title . " " . $firstname . " " . $lastname;
17       $conf["picture."]["imageLinkWrap."]["bodyTag"]                 = 
'<BODY bgColor="#B8D0EC">';
18       $conf["picture."]["imageLinkWrap."]["wrap"]                    = 
'<A href="javascript:close();"> | </A>';
19       $conf["picture."]["imageLinkWrap."]["JSwindow"]                = 1;
20       if ($conf["picture."]["imageLinkWrap."]["JSwindow."]["expand"] == 
"")
21         $conf["picture."]["imageLinkWrap."]["JSwindow."]["expand"]   = 
"5,5";
22       $conf["picture."]["imageLinkWrap."]["JSwindow."]["newWindow"]  = 1;
23     }
24
25     $picture = $this->cObj->IMAGE($conf["picture."]);

zu 1: $row["picture"] kommt aus der Datenbank
zu 2 - 25: Ich bekomme das IMAGE-Objekt aus dem TS-Code, somit kann man im 
TS-Template ziemlichen Einfluss auf das rendering des Bildes nehmen
zu 7: $title, $firstname, $lastname kommen indirekt aus der DB
zu 11 - 13: funktioniert nur, wenn die Extension pmkslimbox installiert ist: 
Dann wird das Bild mit JavaScript eingeblendet, schaut gut aus
zu 16 - 22: herkömmlicher "On Click Enlarge"-Mechanismus
zu 25: Rendern des Bildes durch IMAGE-Methode

hth
Manfred 




More information about the TYPO3-german mailing list