]> git.llucax.com Git - z.facultad/75.43/tp1.git/blob - src/lib/info.functions.php
26db653530ef5d8f0219712e34c51a005c8a8fa5
[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 \r
168                                 $objInfo = new Info($pInfo_ID,0);\r
169                                 $objUsuario = new Usuario($objInfo->autor);\r
170                 /* Cargo la foto del usuario */\r
171                                 $objComentario->autor_original = $objUsuario->getId();\r
172                                 $objComentario->autor_foto = $objUsuario->getFotoFilename();\r
173                                 $objComentario->autor_apellido = $objUsuario->getApellido();\r
174 \r
175                                 $arr[] = $objComentario;\r
176                         }\r
177                 }\r
178         }\r
179         return $arr;\r
180 }\r
181 \r
182 function info_obtener_mayor_id_comentario($pInfo_ID) {\r
183         $arrComentarios = info_obtener_comentarios($pInfo_ID);\r
184         $cantidad_comentarios = count($arrComentarios);\r
185 \r
186         $maxId = 0;\r
187         if ($cantidad_comentarios != 0) {\r
188                 $objComentario  = $arrComentarios[$cantidad_comentarios - 1];\r
189                 $maxId                  = $objComentario->id;\r
190         }\r
191         return $maxId;\r
192 }\r
193 \r
194 \r
195 function info_ingresar_comentario( $__hidID, $pInfo_ID, $pComentario, $pAutor ) {\r
196         $objInfo = new Comentario(0,0,0);\r
197 \r
198         if ($__hidID == -1 ) {\r
199                 $__hidID = info_obtener_mayor_id_comentario($pInfo_ID) + 1;\r
200                 $resultado = $objInfo->ingresar( $__hidID, $pInfo_ID, $pComentario, $pAutor );\r
201                 if ( $resultado == "" ) {\r
202                         echo ok("Se agregó el comentario.");\r
203                 } else {\r
204                         echo warn($resultado);\r
205                 }\r
206         } else {\r
207                 $resultado = $objInfo->modificar( $__hidID, $pInfo_ID, $pComentario, $pAutor );\r
208                 if ( $resultado == "" ) {\r
209                         echo ok("Se modificó el comentario.");\r
210                 } else {\r
211                         echo warn($resultado);\r
212                 }\r
213         }\r
214         return $__hidID;\r
215 }\r
216 \r
217 function info_listar_comentarios( $header, $pInfo_ID ) {\r
218         file_log_add($_SESSION['user']->getId(),"Se listaron los comentarios (informacion id = " . $pInfo_ID . ")");\r
219         $arrComentarios = info_obtener_comentarios($pInfo_ID);\r
220         info_listador($header, $arrComentarios,'Comentarios',3);\r
221 }\r
222 \r
223 /************** Fin Funciones para Comentarios ***************/\r
224 \r
225 \r
226 \r
227 /************** Funciones para Info Generales ***************/\r
228 \r
229 function info_listador($header, $ObjetosAListar, $dataName = 'Items', $colspan = 0, $link = '', $cant = 5)\r
230 {\r
231         if ($link == '') {\r
232                 $link = $_SERVER['PHP_SELF'];\r
233         }\r
234         // Calculo posiciones\r
235     $total = count($ObjetosAListar);\r
236     if (!$total)\r
237     {\r
238         echo '<tr><td';\r
239                 if ($colspan) {\r
240                         echo ' colspan="' . $colspan . '"';\r
241                 }\r
242                 echo '>';\r
243                 echo error('No se encontraron ' . $dataName);\r
244                 echo '</td></tr>';\r
245         return;\r
246     }\r
247 \r
248         if (isset($_GET["lista_from"])) {\r
249                 $orig_from = intval($_GET["lista_from"]);\r
250         } else {\r
251                 $orig_from = 0;\r
252         }\r
253     $pags = ceil($total / $cant);\r
254     if ($pags != 1) { // Si tengo una sóla página\r
255                 // Arrastro query string, si corresponde\r
256                 if ( isset($_SERVER['QUERY_STRING'] ) )\r
257                         {\r
258                          $query = $_SERVER['QUERY_STRING'];\r
259                         }\r
260                         else\r
261                         {\r
262                          $query = '';\r
263                         }\r
264                 if (($pos = strpos($query, 'lista_from=')) !== false)\r
265                 {\r
266                         if ($pos) $query = substr($query, 0, --$pos);\r
267                         else      $query = '';\r
268                 }\r
269                 echo '<tr><td';\r
270                 if ($colspan) {\r
271                         echo ' colspan="' . $colspan . '"';\r
272                 }\r
273                 echo '>';\r
274         \r
275                 if (($orig_from - $cant) >= 0) {\r
276                         $from = $orig_from - $cant;\r
277                         $q = $query ? "$query&lista_from=$from" : "lista_from=$from";\r
278                         printf('<a href="%s?%s"><</a>&nbsp;', $link, $q);\r
279                 }\r
280                 for ($i = 0; $i < $pags; ++$i)\r
281                 {\r
282                         $from = $i * $cant;\r
283                         if ($from == $orig_from) {\r
284                                 $data = '<strong>' . ($i + 1) . '</strong>';\r
285                         } else {\r
286                                 $data = $i + 1;\r
287                         }\r
288                         $q = $query ? "$query&lista_from=$from" : "lista_from=$from";\r
289                         printf('<a href="%s?%s">%s</a>&nbsp;', $link, $q, $data);\r
290                 }\r
291                 if ( ($orig_from + $cant) <= $total ) {\r
292                         $from = $orig_from + $cant;\r
293                         $q = $query ? "$query&lista_from=$from" : "lista_from=$from";\r
294                         printf('<a href="%s?%s">></a>&nbsp;', $link, $q);\r
295                 }\r
296                 echo '</td></tr>';\r
297         }\r
298 \r
299         //Listo los resultados\r
300         $from = $orig_from;\r
301     $c = min($total - $from, $cant);\r
302 \r
303         echo $header;\r
304         while ( $c-- )\r
305     {\r
306         $obj = $ObjetosAListar[$from++];\r
307                 $obj->toHTML();\r
308     }\r
309 }\r
310 \r
311 /************** Fin Funciones para Info Generales ***************/\r
312 ?>\r