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