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

Rainer Schleevoigt rainer at webmasterei-hamburg.de
Fri Jul 31 18:56:05 CEST 2009


bernd wilke schrieb:

Hallo Bernd,

ich denke mal, ich brauche kein Plugin, sondern einfach nur TS.  In 
meiner Anwendung brauche ich eben einfach nur skalierte Bilder außerhalb 
eines HTML-Seitenkontextes, nämlich als Bilder in einer Flash-Slideshow.

Die Bilder hätten da die Adresse 
index.php?id=23&type=20&fn=DSCG1234.jpg&width=600

Im Prinzip müsste man nur IMG_RESOURCE aufrufen und mit de 
GET-Parametern das TS füttern.

Ich suche schon eine Weile im Netz, finde aber kein Tipp.

Rainer


> 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
>   



More information about the TYPO3-german mailing list