[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