CSVTable.class.php (2039B)
1 <?php 2 // OpenRat Content Management System 3 // Copyright (C) 2002-2012 Jan Dankert, cms@jandankert.de 4 // 5 // This program is free software; you can redistribute it and/or 6 // modify it under the terms of the GNU General Public License 7 // as published by the Free Software Foundation; either version 2 8 // of the License, or (at your option) any later version. 9 // 10 // This program is distributed in the hope that it will be useful, 11 // but WITHOUT ANY WARRANTY; without even the implied warranty of 12 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 // GNU General Public License for more details. 14 // 15 // You should have received a copy of the GNU General Public License 16 // along with this program; if not, write to the Free Software 17 // Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. 18 use cms\model\File; 19 20 21 /** 22 * Aus einer CSV-Datei wird eine HTML-Tabelle erstellt. 23 * 24 * @author Jan Dankert 25 */ 26 class CSVList extends Macro 27 { 28 /** 29 * Id der Datei, welche die Werte enthält. 30 * @var unknown_type 31 */ 32 var $fileid = 0; 33 34 /** 35 * CSS-Klasse der Tabelle. 36 * @var unknown_type 37 */ 38 var $css_class = 'table'; 39 40 /** 41 * Trennzeichen (Default: Komma). 42 * @var unknown_type 43 */ 44 var $seperator = ','; 45 46 /** 47 * Bitte immer eine Beschreibung benutzen, dies ist fuer den Web-Developer hilfreich. 48 * @type String 49 */ 50 var $description = 'Creates a HTML-table from a CSV-file'; 51 52 53 54 function execute() 55 { 56 $this->output('<table class="'.$this->css_class.'">'); 57 58 // Datei lesen 59 $file = new File( $this->fileid ); 60 $values = $file->loadValue(); 61 62 // In einzelne Zeilen zerlegen. 63 $lines = explode("\n",$values); 64 65 foreach( $lines as $line ) 66 { 67 $this->output('<tr>'); 68 69 // In einzelne Spalten zerlegen. 70 $columns = explode($seperator,$line); 71 foreach( $columns as $column ) 72 { 73 $this->output('<td>' ); 74 $this->output($column); 75 $this->output('</td>'); 76 } 77 $this->output('</tr>'); 78 } 79 80 $this->output('</table>'); 81 } 82 } 83 84 85 ?>