Commit 39ce2ba89c8e5b855771872220bb4cffa85eac6c

Authored by Edmar Moretti
1 parent dff9619b

--no commit message

Showing 1 changed file with 0 additions and 231 deletions   Show diff stats
pacotes/classesphp/class.CSVHandler.php
... ... @@ -1,231 +0,0 @@
1   -<?php
2   -# This program is free software; you can redistribute it and/or modify
3   -# it under the terms of the GNU Library General Public License as published by
4   -# the Free Software Foundation either version 2 of the License, or
5   -
6   -//=====================================================================================================================
7   -//classdef CSVHandler 0.91 :: CSV Handling Wrapper
8   -//=====================================================================================================================
9   -#
10   -#
11   -# Copyright (C) 2005 by Andreas Müller
12   -
13   -class CSVHandler {
14   - var $Separator; //
15   - var $DataFile;
16   - var $DataKey;
17   - var $HeaderData; //
18   - var $ItemsList; //
19   - var $Items_Count;
20   - var $color;
21   - var $RecordsList;
22   -
23   -// Standard User functions
24   - function CSVHandler($Filename, $Separator, $KeyFieldName) { //Constructor
25   - $this->DataFile=$Filename;
26   - $this->DataKey=$KeyFieldName;
27   - $this->Separator=$Separator;
28   - $this->color="#FFFFFF";
29   - }
30   - function ReadCSV() { //read data into this->ItemsList and return it in an array
31   - $this->Items_Count=0;
32   - $this->ItemsList=array();
33   - $Item=array();
34   - $fp = fopen ($this->DataFile,"r");
35   - $this->HeaderData = fgetcsv ($fp, 3000, $this->Separator);
36   - while ($DataLine = fgetcsv ($fp, 3000, $this->Separator)) {
37   - for($i=0;$i<count($this->HeaderData);$i++){
38   - $Item[$this->HeaderData[$i]]=$DataLine[$i];
39   - }
40   - array_push($this->ItemsList,$Item);
41   - $this->Items_Count++;
42   - }
43   - fclose($fp);
44   - return ($this->ItemsList);
45   - }
46   - function Select($needle,$column="all") { //get items in a sort of SQL Select query and return them in an array
47   - $this->ReadCSV();
48   - if($needle=="*") {
49   - $result=$this->ItemsList;
50   - } else {
51   - $result=array();
52   - if($column=="all") {
53   - while(list($key,$line)=each($this->ItemsList)) {
54   - if (stristr(implode("",$line),$needle)) array_push($result,$line);
55   - }
56   - } else {
57   - while(list($key,$line)=each($this->ItemsList)) {
58   - if (stristr($line[$column],$needle)) array_push($result,$line);
59   - }
60   - }
61   - }
62   - return ($result);
63   - }
64   - function ListAll() { //prints a list of all Data
65   - $Data=$this->ReadCSV();
66   - reset ($this->ItemsList);
67   - reset ($this->HeaderData);
68   - $HHeaders="";
69   - $HData="";
70   - while(list($HKey,$HVal)=each($this->HeaderData)) { //Create Headers Line
71   - $HHeaders.=$this->HTTD($HVal);
72   - }
73   - $HHeaders=$this->HTTR($HHeaders);
74   - while(list($LineKey,$LineVal)=each($this->ItemsList)) { //Read Data Lines
75   - $HDataLine="";
76   - while(list($DataKey,$DataVal)=each($LineVal)) { //Dissect one Data Line
77   - $HDataLine.=$this->HTTD($DataVal);
78   - }
79   - $HData.=$this->HTTR($HDataLine); //and add HTML to Data
80   - }
81   - print ($this->HTPage($this->HTTable($HHeaders.$HData)));
82   - }
83   - function GetValues($field) { //Fetch all values of a specified field and return values in array
84   - $Data=$this->ReadCSV();
85   - $values=array();
86   - while(list($key,$val)=each($this->ItemsList)) {
87   - if(!in_array($val[$field],$values)) array_push($values,$val[$field]);
88   - }
89   - sort($values);
90   - return $values;
91   - }
92   - function Edit() { //All edit function in one Table
93   - $Data=$this->ReadCSV();
94   - if(isset($_POST['commit'])) {
95   - $this->Update($_POST[$this->DataKey],$_POST);
96   - $Data=$this->ReadCSV();
97   - }
98   - if(isset($_POST['add'])) {
99   - $this->Add($_POST[$this->DataKey],$_POST);
100   - $Data=$this->ReadCSV();
101   - }
102   - if(isset($_POST['delete'])) {
103   - $this->Delete($_POST[$this->DataKey]);
104   - $Data=$this->ReadCSV();
105   - }
106   - $PAGE=$this->EditList();
107   - print $PAGE;
108   - }
109   -
110   -// Administration Area
111   - function Update($key,$data) { //Updating Item "key" with "data" named array
112   - $this->ReadCSV();
113   - for($i=0;$i<count($this->ItemsList);$i++) {
114   - If($this->ItemsList[$i][$this->DataKey]==$key){
115   - while(list($key,$val)=each($this->HeaderData)) {
116   - if(isset($data[$val])) $this->ItemsList[$i][$val]=$data[$val];
117   - }
118   - }
119   - }
120   - $this->WriteData();
121   - return($this->ItemsList);
122   - }
123   - function Add($key,$data) { //add an Item "key" with "data" named array
124   - $this->ReadCSV();
125   - $NewLine=array();
126   - $NewItem=array($this->DataKey=>$key);
127   - while(list($key,$val)=each($this->HeaderData)) {
128   - if(isset($data[$val])) {
129   - $NewItem[$val]=$data[$val];
130   - } else {
131   - $NewItem[$val]=$data[$val]="";
132   - }
133   - }
134   - array_push($this->ItemsList,$NewItem);
135   - $this->WriteData();
136   - return($this->ItemsList);
137   - }
138   - function EditList() { //returns Editor's List of Items
139   - reset ($this->ItemsList);
140   - reset ($this->HeaderData);
141   - $HHeaders=$this->HTTD(" ");
142   - $HData="";
143   - while(list($HKey,$HVal)=each($this->HeaderData)) { //Create Headers Line
144   - $HHeaders.=$this->HTTD($HVal);
145   - }
146   - $HHeaders=$this->HTTR($HHeaders);
147   - while(list($LineKey,$LineVal)=each($this->ItemsList)) { //Read Data Lines
148   - $HDataLine="";
149   - while(list($DataKey,$DataVal)=each($LineVal)) { //Dissect one Data Line
150   - $HDataLine.=$this->HTInput($DataKey,$DataVal);
151   - }
152   - $HData.=$this->HTForm($LineVal[$this->DataKey],$this->HTTR($this->HTButton("commit").$HDataLine.$this->HTButton("delete"))); //and add HTML to Data
153   - }
154   - $HDataLine="";
155   - reset($this->HeaderData);
156   - while(list($DataKey,$DataVal)=each($this->HeaderData)) { // Add an extra Line for Adding a record
157   - $HDataLine.=$this->HTInput($DataVal,"");
158   - }
159   - $HData.=$this->HTForm($LineVal[$this->DataKey],$this->HTTR($this->HTButton("add").$HDataLine)); //and add HTML to Data
160   - return($this->HTPage($this->HTTable($HHeaders.$HData)));
161   - }
162   - function Delete($DeleteKey) { //Remove Item "Key" from the file
163   - $inter=array();
164   - while(list($key,$val)=each($this->ItemsList)) {
165   - If($val[$this->DataKey]!=$DeleteKey) array_push($inter,$val);
166   - }
167   - $this->ItemsList=$inter;
168   - $this->WriteData();
169   - return($this->ItemsList);
170   - }
171   - function WriteData() { //writing contents of ItemList to Datafile
172   - reset($this->ItemsList);
173   - $Output=implode($this->Separator, $this->HeaderData)."\n";
174   - while(list($key,$val)=each($this->ItemsList)) {
175   - for($i=0;$i<count($this->HeaderData);$i++){
176   - $writekey=$this->HeaderData[$i];
177   - $writeitem[$writekey]=$val[$writekey];
178   - }
179   - $Output.=implode($this->Separator, $writeitem)."\n";
180   - }
181   - $fp = fopen ($this->DataFile,"w");
182   - flock($fp,2);
183   - fputs($fp,$Output);
184   - flock($fp,3);
185   - fclose($fp);
186   - }
187   -
188   -// Accessory HTML output functions
189   - function HTPage($value) { // Places $value into BODY of HTML Page
190   - $result = "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\">\n";
191   - $result.="<html><head><title>".$this->DataFile." Editor</title>\n";
192   - $result.="<meta http-equiv=\"Content-Type\" content=\"text/html; charset=iso-8859-1\">\n";
193   - $result.="<style type=\"text/css\">";
194   - $result.="<!-- td { margin: 0px; padding: 0px; border: 1px solid #003399; } --></style></head>\n";
195   - $result.="<body>\n".$value."</body>\n</html>";
196   - return $result;
197   - }
198   - function HTForm($item,$data) { //places $data into form $item
199   - return "<form name=\"".$item."\" method=\"post\">\n".$data."</form>\n";
200   - }
201   - function HTTable($value) { //places $value into TABLE
202   - return "<table width=\"96%\" border=\"0\" cellspacing=\"0\" cellpadding=\"0\">\n".$value."</table>\n";
203   - }
204   - function HTTR($value) { //places $value into TR
205   - $this->SRotate();
206   - return "<tr>\n".$value."</tr>\n";
207   - }
208   - function HTTD($value) { // places $value into TD
209   - return "<td bgcolor=\"".$this->color."\">".$value."</td>\n";
210   - }
211   - function HTInput($field,$value) { //returns TD input field
212   - $Olen=strlen($value);
213   - if($Olen<3) {
214   - $Ilen=12;
215   - } else {
216   - $Ilen=$Olen;
217   - }
218   - return "<td bgcolor=\"".$this->color."\"><input name=\"".$field."\" type=\"text\" id=\"".$field."\" value=\"".$value."\" size=\"".$Ilen."\"></td>\n";
219   - }
220   - function HTButton($value) { // returns "$value" button
221   - return "<td><input name=\"".$value."\" type=\"submit\" id=\"".$value."\" value=\"".$value."\"></td>\n";
222   - }
223   - function SRotate() { //rotating colors for more readability of tables
224   - if($this->color=="#FFFFFF") {
225   - $this->color="#CCEEFF";
226   - } else {
227   - $this->color="#FFFFFF";
228   - }
229   - }
230   -}
231   -?>