]> git.llucax.com Git - z.facultad/75.43/tp1.git/blob - src/lib/Tema.php
Bugfixing para el bug que reportó LLucax con respecto a que no se veian los temas...
[z.facultad/75.43/tp1.git] / src / lib / Tema.php
1 <?php\r
2 // Grupo 10\r
3 //\r
4 // Lucarella, Schein, Arena\r
5 //\r
6 // Creado: Sebastian Arena\r
7 //\r
8 \r
9 require_once 'Item.php';\r
10 require_once 'file.php';\r
11 require_once 'Usuario.php';\r
12 require_once 'file.log.php';\r
13 \r
14 class Tema extends Item\r
15 {\r
16         var $id;\r
17         var $icono;\r
18         var $nombre;\r
19 \r
20         var $temasCSVConst = 'data/temas.csv';\r
21     /* \r
22                 Formato en Disco:\r
23                         id | autor | nombre | icono | descripcion | fecha\r
24         */\r
25 \r
26         function Tema($param, $loadFromRecord) {\r
27                 if (!$loadFromRecord) {\r
28                         if ($param) {\r
29                                 $this->id = $param;\r
30                                 $this->reload();\r
31                         }\r
32                 } else {\r
33                         $this->id               = $param[0];\r
34                         $this->autor    = $param[1];\r
35                         $this->nombre   = $param[2];\r
36                         $this->icono    = $param[3];\r
37                         $this->texto    = $param[4];\r
38                         $this->fecha    = $param[5];\r
39                 }\r
40     }\r
41 \r
42         function reload() {\r
43                 if (is_file($this->temasCSVConst)) {\r
44                         $record_tema = fsearchcsv($this->temasCSVConst, $this->id);\r
45                         if ($record_tema) {\r
46                                 $this->id               = $record_tema[0];\r
47                                 $this->autor    = $record_tema[1];\r
48                                 $this->nombre   = $record_tema[2];\r
49                                 $this->icono    = $record_tema[3];\r
50                                 $this->texto    = $record_tema[4];\r
51                                 $this->fecha    = $record_tema[5];\r
52                         }\r
53                 }\r
54         }\r
55 \r
56         function saveNew() {\r
57                 return fappendcsv($this->temasCSVConst, array($this->id, $this->autor, $this->nombre, $this->icono, $this->texto, $this->fecha));\r
58         }\r
59 \r
60         function saveExisting() {\r
61                 if (($f = fopen($this->temasCSVConst, 'r')) == false) return false; // error\r
62                 $index = 0;\r
63                 $indexSave = 0;\r
64         while (!feof($f))\r
65                 {\r
66                         $d = fgetcsv($f, 4096);\r
67                         $index++;\r
68                         if ($d[0] == $this->id)\r
69                         {\r
70                 fclose($f);\r
71                                 if (($f = fopen($this->temasCSVConst, 'r+')) == false) return false; // error\r
72                                 while ($indexSave!=($index-1)) { fgetcsv($f, 4096); $indexSave++; }\r
73                 fputcsv($f, array($this->id, $this->autor, $this->nombre, $this->icono, $this->texto, $this->fecha));\r
74                                 fclose($f);\r
75                                 return true;\r
76                         }\r
77                 }\r
78                 fclose($f);\r
79                 return false;\r
80         }\r
81 \r
82         function saveLoadThis( $pId, $pNombre, $pAutor, $pDescripcion, $pIcono ) {\r
83                 $this->id               = $pId;\r
84                 $this->autor    = $pAutor;\r
85                 $this->nombre   = $pNombre;\r
86                 $this->icono    = 'temas/' . $pId;\r
87                 $this->texto    = preg_replace('[\n|\r\n]','<br/>',$pDescripcion);\r
88                 $this->fecha    = time();\r
89         }\r
90 \r
91     function ingresar( $pId, $pNombre, $pAutor, $pDescripcion, $pIcono ) {\r
92                 $this->saveLoadThis( $pId, $pNombre, $pAutor, $pDescripcion, $pIcono );\r
93                 $resultado = "";\r
94         if (!$this->saveNew()) {\r
95                         $resultado = "<strong>ERROR</strong> al agregar el Tema '" . $pNombre . "'. Revise que los parametros sean los adecuados";\r
96                         file_log_add( $pAutor, $resultado);\r
97                 } else {\r
98             if (!copy($pIcono, "temas/" . $pId)) {\r
99                                 $resultado = "No se pudo copiar la foto.";\r
100                                 file_log_add( $pAutor, $resultado);\r
101                         } else {\r
102                                 file_log_add( $pAutor, "Se modificó el el '" . $pNombre . "'");\r
103                         }\r
104                 }\r
105                 return $resultado;\r
106         }\r
107 \r
108         function modificar( $pId, $pNombre, $pAutor, $pDescripcion, $pIcono ) {\r
109         $this->saveLoadThis( $pId, $pNombre, $pAutor, $pDescripcion, $pIcono );\r
110                 $resultado = "";\r
111         //Se obtiene el ID mas alto actual\r
112                 if (!$this->saveExisting()) {\r
113                         $resultado = "<strong>ERROR</strong> al modificar el Tema '" . $pNombre . "'. Revise que los parametros sean los adecuados";\r
114                         file_log_add( $pAutor, $resultado);\r
115                 } else {\r
116             if (!copy($pIcono, "temas/" . $pId)) {\r
117                                 $resultado = "No se pudo modificar la foto.";\r
118                                 file_log_add( $pAutor, $resultado);\r
119                         } else {\r
120                                 file_log_add( $pAutor, "Se modificó el el '" . $pNombre . "'");\r
121                         }\r
122                 }\r
123                 return $resultado;\r
124         }\r
125 \r
126         function toHTML() {\r
127                 $objUser = new Usuario($this->autor);\r
128                 ?><tr>\r
129             <td><?php echo $this->id;?></td>\r
130                         <td><img src="<?php echo $this->icono;?>" border="0" alt="icono tema <?php echo $this->id;?>"/></td>\r
131                         <td><?php echo $this->nombre;?></td>\r
132             <td><?php echo $this->texto;?></td>\r
133                         <td><img src="<?php echo $objUser->getFotoFilename();?>" border="0" alt="icono usuario <?php echo $objUser->getId();?>"/></td>\r
134                         <td><?php echo $objUser->getApellido() . ", " . $objUser->getNombre() . " (". $objUser->getId() . ")";?></td>\r
135                   </tr>\r
136                 <?php\r
137         }\r
138 }\r
139 ?>\r