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