[TYPO3-german] skalierte Bilder per FE-Plugin ausliefern

bernd wilke x00nsji02 at sneakemail.com
Fri Jul 31 15:35:39 CEST 2009


Am Fri, 31 Jul 2009 14:35:29 +0200 schrieb Rainer Schleevoigt:

> bernd wilke schrieb:
>> Am Thu, 30 Jul 2009 09:42:49 +0200 schrieb Rainer Schleevoigt:
>>
>>
> Hallo Bernd,
> 
> nun denke ich mal, ich begleite das Plugin in TS etwa so:
> 
> ==== schnipp =======
> plugin.ras_geoblog_pi1 = USER
> plugin.ras_geoblog_pi1 {
>    userFunc = ras_geoblog_pi1->main
>    maxwith  = 600
> }
> img = PAGE
> img  {
>     config {
>     disableAllHeaderCode = 1
>     additionalHeaders = Content-type:image/jpg
>     }
>     typeNum = 21
>     10 < plugin.ras_geoblog_pi1
> }
> =====schnapp ======
> 
> Das Plugin müsste also aus der conf die Größe (600) rausziehen und den
> Bildpfad aus einem GET-Parameter.
> Dein Script ist schon mal eine gute Vorlage:
> 
> function main($content, $conf)    {
>         $this->conf = $conf;
>         $imgpath='uploads/tx_rasgeoblog/';
>         $ts['img']='IMAGE';    // müste das nicht IMG_RESOURCE sein?

das ist hier eigentlich irrelevant, da der eigentliche Typ durch den 
Funktionsaufruf bestimmt wird.

>         $ts['img.']['file'] = $imgpath . $this->cObj->data['image'];
> //kommt bei mir aus GET ?
>         $ts['img.']['format']='jpg';
>         if ($this->cObj->data['imagewidth']) {  // Abfrage verstehe ich
> nicht.

ich hole die Angaben aus dem aktuellen ContentElement ($this->cObj-
>data). Wenn dort keine Größe gesetzt ist es ziemlich sinnlos einfach 
blind den Wert des Feldes, der dann nämlich als 0 interpretiert wird als 
Breite zu nehmen.

>             $ts['img.']['file.']['maxW']= $this->conf['maxwidth'];
>         }
>         $img=$this->cObj->IMG_RESSOURCE($ts['img.']);
>       /// wie wird das  Ding eiegntluch ausgeliefert?  Ein Bytestrom?

IMAGE liefert ein fertiges a-Tag inkl. Pfad auf generiertes Bild
IMG_RESSOURCE liefert nur den Pfad auf das generierte Bild
(siehe TSREF)

>     // sowas wie return  (file_get_contents($img)); ??
>        
>        
>    }

das ganze ist nur ein Teil eines Plugins und der Rückgabewert wird 
entsprechend nur als Teilergebnis benutzt um es weiter zum Rückgabewert 
des Plugins zu verarbeiten, zb. als Markerersetzung, oder einfach als 
Teil des vom Plugin erzeugten HTML.

Deine Art der Anwendung mit eigenem Seitentyp für Bilder erscheint mir 
sehr kompliziert, aber vielleicht seh ich nur nicht deinen Anwendungsfall.
Zumindest muss du dann wohl das Bild als Bytestrom zurückgeben. Also 
Datei öffnen, deren Namen du in $img bekommen hast und ausgeben.

bernd
-- 
http://www.pi-phi.de/t3v4/cheatsheet.html


More information about the TYPO3-german mailing list