]> git.llucax.com Git - z.facultad/75.43/tp1.git/blob - src/lib/info.functions.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 / info.functions.php
1 <?php\r
2 require_once 'pagina.php';\r
3 require_once 'file.php';\r
4 require_once 'file.log.php';\r
5 require_once 'Tema.php';\r
6 require_once 'Info.php';\r
7 require_once 'Comentario.php';\r
8 require_once 'Usuario.php';\r
9 \r
10 /************** Funciones para Temas ***************/\r
11 function info_obtener_temas() {\r
12     $arr = array();\r
13         $temasCSVConst = 'data/temas.csv';\r
14 \r
15         if (is_file($temasCSVConst)) {\r
16                 $arrFile = fgetallcsv($temasCSVConst);\r
17         if ($arrFile) {\r
18             foreach ( $arrFile as $record_tema) {\r
19                                 $objTema = new Tema($record_tema,1);\r
20                                 $arr[] = $objTema;\r
21                         }\r
22                 }\r
23         }\r
24         return $arr;\r
25 }\r
26 \r
27 function info_obtener_mayor_id() {\r
28         $arrTemas = info_obtener_temas();\r
29         $cantidad_temas = count($arrTemas);\r
30 \r
31         $maxId = 0;\r
32         if ($cantidad_temas != 0) {\r
33                 $objTema        = $arrTemas[$cantidad_temas - 1];\r
34                 $maxId          = $objTema->id;\r
35         }\r
36         return $maxId;\r
37 }\r
38 \r
39 function info_ingresar_tema( $__hidID, $pNombre, $pAutor, $pDescripcion, $pIcono ) {\r
40         $objTema = new Tema(0,0);\r
41     if ($__hidID == -1 ) {\r
42                 $__hidID = info_obtener_mayor_id() + 1;\r
43                 $resultado = $objTema->ingresar( $__hidID, $pNombre, $pAutor, $pDescripcion, $pIcono );\r
44                 if ( $resultado == "" ) {\r
45                         echo ok("Se agregó el Tema '" . $pNombre . "'");\r
46                 } else {\r
47                         echo warn($resultado);\r
48                 }\r
49         } else {\r
50                 $resultado = $objTema->modificar( $__hidID, $pNombre, $pAutor, $pDescripcion, $pIcono );\r
51                 if ( $resultado == "" ) {\r
52                         echo ok("Se modificó el Tema '" . $pNombre . "'");\r
53                 } else {\r
54                         echo warn($resultado);\r
55                 }\r
56         }\r
57 \r
58         return $__hidID;\r
59 }\r
60 \r
61 function info_listar_temas ($header) {\r
62         file_log_add($_SESSION['user']->getId(),"Se listaron los temas");\r
63         $arrTemas = info_obtener_temas();\r
64         info_listador($header,$arrTemas,'Temas',6);\r
65 }\r
66 /************** Fin Funciones para Temas ***************/\r
67 \r
68 \r
69 \r
70 \r
71 /************** Funciones para Infos ***************/\r
72 function info_obtener_infos($loadPrintData,$simpleSort,$tema) {\r
73     $arr = array();\r
74         $infosCSVConst = 'data/infos.csv';\r
75 \r
76         if (is_file($infosCSVConst)) {\r
77                 $arrFile = fgetallcsv($infosCSVConst);\r
78         if ($arrFile) {\r
79             foreach ( $arrFile as $record_info) {\r
80                                 $objInfo = new Info($record_info,1);\r
81                                 if ($loadPrintData) {\r
82                                         $objUsuario = new Usuario($objInfo->autor);\r
83                                         $objTema = new Tema($objInfo->tema,0);\r
84                                         /* Cargo la foto del usuario */\r
85                                         $objInfo->autor_foto = $objUsuario->getFotoFilename();\r
86                                         $objInfo->autor_apellido = $objUsuario->getApellido();\r
87                                         /* Cargo el icono del Tema */\r
88                                         $objInfo->tema_icono = $objTema->icono;\r
89                                 }\r
90                                 if ($simpleSort == -1 ) {\r
91                                         $arr[] = $objInfo;\r
92                                 } else {\r
93                     if (($tema == -1) || ($tema == $objInfo->tema)) {\r
94                                                 $arr[] = array($objInfo->ranking,$objInfo);\r
95                                         }\r
96                                 }\r
97                                 \r
98                         }\r
99                 }\r
100         }\r
101         if ($simpleSort != -1) {\r
102         rsort($arr);\r
103                 $sortedarr = array();\r
104                 foreach($arr as $objArr) {\r
105                         $sortedarr[] = $objArr[1];\r
106                 }\r
107                 return $sortedarr;\r
108         } else {\r
109                 return $arr;\r
110         }\r
111 }\r
112 \r
113 function info_obtener_mayor_id_info() {\r
114         $arrInfos = info_obtener_infos(false, -1, -1);\r
115         $cantidad_infos = count($arrInfos);\r
116 \r
117         $maxId = 0;\r
118         if ($cantidad_infos != 0) {\r
119                 $objInfo        = $arrInfos[$cantidad_infos - 1];\r
120                 $maxId          = $objInfo->id;\r
121         }\r
122         return $maxId;\r
123 }\r
124 \r
125 function info_ingresar_info( $__hidID, $pTema, $pURL, $pAutor, $pComentario ) {\r
126         $objInfo = new Info(0,0);\r
127         if ($__hidID == -1 ) {\r
128                 $__hidID = info_obtener_mayor_id_info() + 1;\r
129                 $resultado = $objInfo->ingresar( $__hidID, $pTema, $pURL, $pAutor, $pComentario );\r
130                 if ( $resultado == "" ) {\r
131                         echo ok("Se agregó la información.");\r
132                 } else {\r
133                         echo warn($resultado);\r
134                 }\r
135         } else {\r
136                 $resultado = $objInfo->modificar( $__hidID, $pTema, $pURL, $pAutor, $pComentario );\r
137                 if ( $resultado == "" ) {\r
138                         echo ok("Se modificó la información.");\r
139                 } else {\r
140                         echo warn($resultado);\r
141                 }\r
142         }\r
143         return $__hidID;\r
144 }\r
145 \r
146 function info_listar_infos ($header, $simpleSort = 1, $tema = -1) {\r
147         file_log_add($_SESSION['user']->getId(),"Se listaron las informaciones");\r
148     $arrInfos = info_obtener_infos(true,$simpleSort,$tema);\r
149         info_listador($header,$arrInfos,'Informaciones',6);\r
150 }\r
151 /************** Fin Funciones para Infos ***************/\r
152 \r
153 \r
154 \r
155 \r
156 /************** Funciones para Comentarios ***************/\r
157 \r
158 function info_obtener_comentarios($pInfo_ID) {\r
159     $arr = array();\r
160         $comentariosCSVConst = 'data/comentarios.' . $pInfo_ID . '.csv';\r
161 \r
162         if (is_file($comentariosCSVConst)) {\r
163                 $arrFile = fgetallcsv($comentariosCSVConst);\r
164         if ($arrFile) {\r
165             foreach ( $arrFile as $record_comentario) {\r
166                                 $objComentario = new Comentario($record_comentario,$pInfo_ID,1);\r
167                                 $objInfo = new Info($pInfo_ID,0);\r
168 \r
169                                 /*Datos del usuario original*/\r
170                 $objComentario->autor_original = $objInfo->autor;\r
171 \r
172                                 /*Datos del usuario del comentario*/\r
173                                 $objUsuario = new Usuario($objComentario->autor);\r
174                                 $objTema = new Tema($objInfo->tema,0);\r
175                                 $objComentario->tema_icono = $objTema->icono;\r
176                 $objComentario->autor_foto = $objUsuario->getFotoFilename();\r
177                                 $objComentario->autor_apellido = $objUsuario->getApellido();\r
178 \r
179                                 $arr[] = $objComentario;\r
180                         }\r
181                 }\r
182         }\r
183         return $arr;\r
184 }\r
185 \r
186 function info_obtener_mayor_id_comentario($pInfo_ID) {\r
187         $arrComentarios = info_obtener_comentarios($pInfo_ID);\r
188         $cantidad_comentarios = count($arrComentarios);\r
189 \r
190         $maxId = 0;\r
191         if ($cantidad_comentarios != 0) {\r
192                 $objComentario  = $arrComentarios[$cantidad_comentarios - 1];\r
193                 $maxId                  = $objComentario->id;\r
194         }\r
195         return $maxId;\r
196 }\r
197 \r
198 \r
199 function info_ingresar_comentario( $__hidID, $pInfo_ID, $pComentario, $pAutor ) {\r
200         $objInfo = new Comentario(0,0,0);\r
201 \r
202         if ($__hidID == -1 ) {\r
203                 $__hidID = info_obtener_mayor_id_comentario($pInfo_ID) + 1;\r
204                 $resultado = $objInfo->ingresar( $__hidID, $pInfo_ID, $pComentario, $pAutor );\r
205                 if ( $resultado == "" ) {\r
206                         echo ok("Se agregó el comentario.");\r
207                 } else {\r
208                         echo warn($resultado);\r
209                 }\r
210         } else {\r
211                 $resultado = $objInfo->modificar( $__hidID, $pInfo_ID, $pComentario, $pAutor );\r
212                 if ( $resultado == "" ) {\r
213                         echo ok("Se modificó el comentario.");\r
214                 } else {\r
215                         echo warn($resultado);\r
216                 }\r
217         }\r
218         return $__hidID;\r
219 }\r
220 \r
221 function info_listar_comentarios( $header, $pInfo_ID ) {\r
222         file_log_add($_SESSION['user']->getId(),"Se listaron los comentarios (informacion id = " . $pInfo_ID . ")");\r
223         $arrComentarios = info_obtener_comentarios($pInfo_ID);\r
224         info_listador($header, $arrComentarios,'Comentarios',3);\r
225 }\r
226 \r
227 /************** Fin Funciones para Comentarios ***************/\r
228 \r
229 \r
230 \r
231 /************** Funciones para Info Generales ***************/\r
232 \r
233 function info_listador($header, $ObjetosAListar, $dataName = 'Items', $colspan = 0, $link = '', $cant = 5)\r
234 {\r
235         if ($link == '') {\r
236                 $link = $_SERVER['PHP_SELF'];\r
237         }\r
238         // Calculo posiciones\r
239     $total = count($ObjetosAListar);\r
240     if (!$total)\r
241     {\r
242         echo '<tr><td';\r
243                 if ($colspan) {\r
244                         echo ' colspan="' . $colspan . '"';\r
245                 }\r
246                 echo '>';\r
247                 echo error('No se encontraron ' . $dataName);\r
248                 echo '</td></tr>';\r
249         return;\r
250     }\r
251 \r
252         if (isset($_GET["lista_from"])) {\r
253                 $orig_from = intval($_GET["lista_from"]);\r
254         } else {\r
255                 $orig_from = 0;\r
256         }\r
257     $pags = ceil($total / $cant);\r
258     if ($pags != 1) { // Si tengo una sóla página\r
259                 // Arrastro query string, si corresponde\r
260                 if ( isset($_SERVER['QUERY_STRING'] ) )\r
261                         {\r
262                          $query = $_SERVER['QUERY_STRING'];\r
263                         }\r
264                         else\r
265                         {\r
266                          $query = '';\r
267                         }\r
268                 if (($pos = strpos($query, 'lista_from=')) !== false)\r
269                 {\r
270                         if ($pos) $query = substr($query, 0, --$pos);\r
271                         else      $query = '';\r
272                 }\r
273                 echo '<tr><td';\r
274                 if ($colspan) {\r
275                         echo ' colspan="' . $colspan . '"';\r
276                 }\r
277                 echo '>';\r
278         \r
279                 if (($orig_from - $cant) >= 0) {\r
280                         $from = $orig_from - $cant;\r
281                         $q = $query ? "$query&lista_from=$from" : "lista_from=$from";\r
282                         printf('<a href="%s?%s"><</a>&nbsp;', $link, $q);\r
283                 }\r
284                 for ($i = 0; $i < $pags; ++$i)\r
285                 {\r
286                         $from = $i * $cant;\r
287                         if ($from == $orig_from) {\r
288                                 $data = '<strong>' . ($i + 1) . '</strong>';\r
289                         } else {\r
290                                 $data = $i + 1;\r
291                         }\r
292                         $q = $query ? "$query&lista_from=$from" : "lista_from=$from";\r
293                         printf('<a href="%s?%s">%s</a>&nbsp;', $link, $q, $data);\r
294                 }\r
295                 if ( ($orig_from + $cant) <= $total ) {\r
296                         $from = $orig_from + $cant;\r
297                         $q = $query ? "$query&lista_from=$from" : "lista_from=$from";\r
298                         printf('<a href="%s?%s">></a>&nbsp;', $link, $q);\r
299                 }\r
300                 echo '</td></tr>';\r
301         }\r
302 \r
303         //Listo los resultados\r
304         $from = $orig_from;\r
305     $c = min($total - $from, $cant);\r
306 \r
307         echo $header;\r
308         while ( $c-- )\r
309     {\r
310         $obj = $ObjetosAListar[$from++];\r
311                 $obj->toHTML();\r
312     }\r
313 }\r
314 \r
315 /************** Fin Funciones para Info Generales ***************/\r
316 ?>\r