[TYPO3-UG Denmark] Plugin der spytter CSV-filer ud

Sune Vestergaard sune at typoconsult.dk
Thu Mar 16 23:46:13 CET 2006


Hej Peter (og Peter)

Den "rigtige" TYPO3-måde er velsagtens at definere et nyt PAGE objekt i en 
extension template på en eller anden side. Derefter bygge indholdet op i et 
plugin som du selv visualiserer - men i stedet for at skrive til skærmen - 
så blot returnere indholdet.
Page objektet skulle vel så se nogenlunde sådan ud:

cvsExport = PAGE
cvsExport.typoNum = 123
cvsExport.disableAllHeaderCode = 1
cvsExport.additionalHeaders = Content-type: application/vnd.ms-excel | 
Content-disposition: inline; filename=liste.csv
cvsExport.10 < plugin.my_csv_export_key_pi1

- det er naturlivis komplet utestet - men så vidt jeg kan regne ud så virker 
det :-)

Det antages her at du har lavet en ny extension med navnet 
"my_csv_export_key" og deri laver et plugin den PHP kode du selv angiver - 
men blot returnerer indholdet af filen i stedet for at printe det.

Du får så fat i dine data ved at kalde den side hvor dette TS er defineret 
med '&type=123' i din querystring.

MVH
Sune Vestergaard



"Peter Makholm" <peter at makholm.net> skrev i en meddelelse 
news:mailman.12936.1142522077.3122.typo3-ug-denmark at lists.netfielders.de...
> Jeg har lavet et plugin der genererer et datasæt og præsenterer det i
> noget HTML. Nu vil jeg egentlig også gerne "præsentere" de samme data
> som en CSV-fil, XML-fil, whatever...
>
> Jeg har tidligere haft noget der redefinerer mit PAGE-objekt i
> TyoScript for et delhierarki, men det er IMHO lidt et hack.
>
> Mulighed nummer 2 er at gøre noget ala:
>
>                $query = "SELECT * FROM tx_table;"
>                $res   = mysql(TYPO3_db,$query);
>
>                header('Content-type: application/vnd.ms-excel');
>                header('Content-disposition: inline; filename=liste.csv');
>                while($row = mysql_fetch_assoc($res) ) {
>                        echo $row['title'].";".$row['type']."\n";
>                }
>
>                exit;
>
> i main() i pluginnet. En smule pænere, men jeg afbryder Typo3 ret
> brutalt og får derfor ikke glæde af caching og hvad Typo3 nu ellers
> kunne finde på...
>
> Har jeg en tredje mulighed? Hvad er den kanoniske måde at gøre det på?
>
> -- 
> Peter Makholm     |    According to the hacker ethic, the meaning of life
> peter at makholm.net |            is not Friday, but it is not Sunday either
> http://hacking.dk |                                      -- Pekka Himanen 





More information about the TYPO3-UG-denmark mailing list