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

Peter Klein peter at umloud.dk
Thu Mar 16 16:44:45 CET 2006


Hej Peter. Jeg gør det sådan her:

-- cut --
 function exportCSV() {
  $this->conf["csvFields"] = 
"status,first,last,title,organization,department,address,zip,city,country,email,phone,comments,tstamp,crdate";
  $from_table = 'tx_xeventos_participants';
  $where_clause = "eventuid=".$this->eventUid;
  $res = 
$GLOBALS['TYPO3_DB']->exec_SELECTquery($this->conf["csvFields"],$from_table,$where_clause,$groupBy='',$orderBy='status',$limit='');
  $rowArr=array();
  // Add DB keys as header row
  $rowArr[]=t3lib_div::csvValues(array_keys($row));
  while($row = $GLOBALS['TYPO3_DB']->sql_fetch_assoc($res)) {
       $rowArr[]=t3lib_div::csvValues($row);
  }
  if (count($rowArr)>1) {
   $filename="EventosExport_".date("dmy-Hi").".csv";
   $mimeType = "application/octet-stream";
   Header("Content-Type: ".$mimeType);
   Header("Content-Disposition: attachment; filename=".$filename);
   echo implode(chr(13).chr(10),$rowArr);
   exit;
  }
  else {
   return "Empty list";
  }
 }

-- cut --

Hvilket minder meget om den metode du beskriver.

-- 
Peter Klein/Umloud Untd


"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