]> git.llucax.com Git - z.facultad/75.43/tp1.git/blobdiff - src/lib/info.functions.php
Lo mismo del & para el resto del querystring.
[z.facultad/75.43/tp1.git] / src / lib / info.functions.php
index fa9aaba4734f7c1fdaf2d4d1cf4ed2464741d4e0..91ed33f744276fc295a2b51ac91a6f4e369e0dd9 100644 (file)
@@ -1,8 +1,10 @@
 <?php\r
 require_once 'pagina.php';\r
 require_once 'file.php';\r
+require_once 'file.log.php';\r
 require_once 'Tema.php';\r
 require_once 'Info.php';\r
+require_once 'Comentario.php';\r
 require_once 'Usuario.php';\r
 \r
 /************** Funciones para Temas ***************/\r
@@ -34,25 +36,32 @@ function info_obtener_mayor_id() {
        return $maxId;\r
 }\r
 \r
-function info_ingresar_tema( $pNombre, $pAutor, $pDescripcion, $pIcono ) {\r
+function info_ingresar_tema( $__hidID, $pNombre, $pAutor, $pDescripcion, $pIcono ) {\r
        $objTema = new Tema(0,0);\r
-       $pId = info_obtener_mayor_id() + 1;\r
-\r
-    $resultado = $objTema->ingresar( $pId, $pNombre, $pAutor, $pDescripcion, $pIcono );\r
-    if ( $resultado == "" ) {\r
-               echo ok("Se agregó el Tema '" . $pNombre . "'");\r
-               return true;\r
+    if ($__hidID == -1 ) {\r
+               $__hidID = info_obtener_mayor_id() + 1;\r
+               $resultado = $objTema->ingresar( $__hidID, $pNombre, $pAutor, $pDescripcion, $pIcono );\r
+               if ( $resultado == "" ) {\r
+                       echo ok("Se agregó el Tema '" . $pNombre . "'");\r
+               } else {\r
+                       echo warn($resultado);\r
+               }\r
        } else {\r
-               echo warn($resultado);\r
-               return false;\r
+               $resultado = $objTema->modificar( $__hidID, $pNombre, $pAutor, $pDescripcion, $pIcono );\r
+               if ( $resultado == "" ) {\r
+                       echo ok("Se modificó el Tema '" . $pNombre . "'");\r
+               } else {\r
+                       echo warn($resultado);\r
+               }\r
        }\r
+\r
+       return $__hidID;\r
 }\r
 \r
-function info_listar_temas () {\r
+function info_listar_temas ($header) {\r
+       file_log_add($_SESSION['user']->getId(),"Se listaron los temas");\r
        $arrTemas = info_obtener_temas();\r
-       foreach ( $arrTemas as $objTema) {\r
-               $objTema->toHTML();\r
-       }\r
+       info_listador($header,$arrTemas,'Temas',6);\r
 }\r
 /************** Fin Funciones para Temas ***************/\r
 \r
@@ -60,7 +69,7 @@ function info_listar_temas () {
 \r
 \r
 /************** Funciones para Infos ***************/\r
-function info_obtener_infos($loadPrintData,$simpleSort) {\r
+function info_obtener_infos($loadPrintData,$simpleSort,$tema) {\r
     $arr = array();\r
        $infosCSVConst = 'data/infos.csv';\r
 \r
@@ -81,10 +90,8 @@ function info_obtener_infos($loadPrintData,$simpleSort) {
                                if ($simpleSort == -1 ) {\r
                                        $arr[] = $objInfo;\r
                                } else {\r
-                                       if ($simpleSort == 1) {\r
+                    if (($tema == -1) || ($tema == $objInfo->tema)) {\r
                                                $arr[] = array($objInfo->ranking,$objInfo);\r
-                                       } else {\r
-                                               $arr[] = array($objInfo->tema * 1, $objInfo->ranking * -1,$objInfo);\r
                                        }\r
                                }\r
                                \r
@@ -93,12 +100,18 @@ function info_obtener_infos($loadPrintData,$simpleSort) {
        }\r
        if ($simpleSort != -1) {\r
         rsort($arr);\r
+               $sortedarr = array();\r
+               foreach($arr as $objArr) {\r
+                       $sortedarr[] = $objArr[1];\r
+               }\r
+               return $sortedarr;\r
+       } else {\r
+               return $arr;\r
        }\r
-       return $arr;\r
 }\r
 \r
 function info_obtener_mayor_id_info() {\r
-       $arrInfos = info_obtener_infos(false, -1);\r
+       $arrInfos = info_obtener_infos(false, -1, -1);\r
        $cantidad_infos = count($arrInfos);\r
 \r
        $maxId = 0;\r
@@ -109,48 +122,194 @@ function info_obtener_mayor_id_info() {
        return $maxId;\r
 }\r
 \r
-function info_ingresar_info( $pTema, $pURL, $pAutor, $pComentario ) {\r
+function info_ingresar_info( $__hidID, $pTema, $pURL, $pAutor, $pComentario ) {\r
        $objInfo = new Info(0,0);\r
-    $pId = info_obtener_mayor_id_info() + 1;\r
+       if ($__hidID == -1 ) {\r
+               $__hidID = info_obtener_mayor_id_info() + 1;\r
+               $resultado = $objInfo->ingresar( $__hidID, $pTema, $pURL, $pAutor, $pComentario );\r
+               if ( $resultado == "" ) {\r
+                       echo ok("Se agregó la información.");\r
+               } else {\r
+                       echo warn($resultado);\r
+               }\r
+       } else {\r
+               $resultado = $objInfo->modificar( $__hidID, $pTema, $pURL, $pAutor, $pComentario );\r
+               if ( $resultado == "" ) {\r
+                       echo ok("Se modificó la información.");\r
+               } else {\r
+                       echo warn($resultado);\r
+               }\r
+       }\r
+       return $__hidID;\r
+}\r
+\r
+function info_listar_infos ($header, $simpleSort = 1, $tema = -1) {\r
+       file_log_add($_SESSION['user']->getId(),"Se listaron las informaciones");\r
+    $arrInfos = info_obtener_infos(true,$simpleSort,$tema);\r
+       info_listador($header,$arrInfos,'Informaciones',6);\r
+}\r
+/************** Fin Funciones para Infos ***************/\r
+\r
+\r
+\r
+\r
+/************** Funciones para Comentarios ***************/\r
+\r
+function info_obtener_comentarios($pInfo_ID) {\r
+    $arr = array();\r
+       $comentariosCSVConst = 'data/comentarios.' . $pInfo_ID . '.csv';\r
+\r
+       if (is_file($comentariosCSVConst)) {\r
+               $arrFile = fgetallcsv($comentariosCSVConst);\r
+        if ($arrFile) {\r
+            foreach ( $arrFile as $record_comentario) {\r
+                               $objComentario = new Comentario($record_comentario,$pInfo_ID,1);\r
+                               $objInfo = new Info($pInfo_ID,0);\r
+\r
+                               /*Datos del usuario original*/\r
+                $objComentario->autor_original = $objInfo->autor;\r
+\r
+                               /*Datos del usuario del comentario*/\r
+                               $objUsuario = new Usuario($objComentario->autor);\r
+                               $objComentario->autor_foto = $objUsuario->getFotoFilename();\r
+                               $objComentario->autor_apellido = $objUsuario->getApellido();\r
+\r
+                               $arr[] = $objComentario;\r
+                       }\r
+               }\r
+       }\r
+       return $arr;\r
+}\r
+\r
+function info_obtener_mayor_id_comentario($pInfo_ID) {\r
+       $arrComentarios = info_obtener_comentarios($pInfo_ID);\r
+       $cantidad_comentarios = count($arrComentarios);\r
+\r
+       $maxId = 0;\r
+       if ($cantidad_comentarios != 0) {\r
+               $objComentario  = $arrComentarios[$cantidad_comentarios - 1];\r
+               $maxId                  = $objComentario->id;\r
+       }\r
+       return $maxId;\r
+}\r
+\r
 \r
-       $resultado = $objInfo->ingresar( $pId, $pTema, $pURL, $pAutor, $pComentario );\r
-    if ( $resultado == "" ) {\r
-               echo ok("Se agregó la informacion.");\r
-               return true;\r
+function info_ingresar_comentario( $__hidID, $pInfo_ID, $pComentario, $pAutor ) {\r
+       $objInfo = new Comentario(0,0,0);\r
+\r
+       if ($__hidID == -1 ) {\r
+               $__hidID = info_obtener_mayor_id_comentario($pInfo_ID) + 1;\r
+               $resultado = $objInfo->ingresar( $__hidID, $pInfo_ID, $pComentario, $pAutor );\r
+               if ( $resultado == "" ) {\r
+                       echo ok("Se agregó el comentario.");\r
+               } else {\r
+                       echo warn($resultado);\r
+               }\r
        } else {\r
-               echo warn($resultado);\r
-               return false;\r
+               $resultado = $objInfo->modificar( $__hidID, $pInfo_ID, $pComentario, $pAutor );\r
+               if ( $resultado == "" ) {\r
+                       echo ok("Se modificó el comentario.");\r
+               } else {\r
+                       echo warn($resultado);\r
+               }\r
        }\r
+       return $__hidID;\r
 }\r
 \r
-function info_listar_infos ($simpleSort = 1) {\r
-       if ($simpleSort) {\r
-               $arrInfos = info_obtener_infos(true,$simpleSort);\r
-               echo '<tr><td>Tema</td><td>Autor</td><td>URL</td><td>Descripcion</td><td>Ranking</td></tr>';\r
-               foreach ( $arrInfos as $objInfo ) {\r
-                       $objInfo[1]->toHTML();\r
+function info_listar_comentarios( $header, $pInfo_ID ) {\r
+       file_log_add($_SESSION['user']->getId(),"Se listaron los comentarios (informacion id = " . $pInfo_ID . ")");\r
+       $arrComentarios = info_obtener_comentarios($pInfo_ID);\r
+       info_listador($header, $arrComentarios,'Comentarios',3);\r
+}\r
+\r
+/************** Fin Funciones para Comentarios ***************/\r
+\r
+\r
+\r
+/************** Funciones para Info Generales ***************/\r
+\r
+function info_listador($header, $ObjetosAListar, $dataName = 'Items', $colspan = 0, $link = '', $cant = 5)\r
+{\r
+       if ($link == '') {\r
+               $link = $_SERVER['PHP_SELF'];\r
+       }\r
+       // Calculo posiciones\r
+    $total = count($ObjetosAListar);\r
+    if (!$total)\r
+    {\r
+        echo '<tr><td';\r
+               if ($colspan) {\r
+                       echo ' colspan="' . $colspan . '"';\r
                }\r
+               echo '>';\r
+               echo error('No se encontraron ' . $dataName);\r
+               echo '</td></tr>';\r
+        return;\r
+    }\r
+\r
+       if (isset($_GET["lista_from"])) {\r
+               $orig_from = intval($_GET["lista_from"]);\r
        } else {\r
-        $mtxInfos = info_obtener_infos(true,$simpleSort);\r
-               $oldTema = 0;\r
-               $newTema = 0;\r
-               $max = count($mtxInfos);\r
-               $index = $max - 1;\r
-        while ($index >= 0) {\r
-                       $arrInfos = $mtxInfos[$index];\r
-            $objTema = new Tema($arrInfos[0],0);\r
-                       $newTema = $objTema->id;\r
-                       if ($oldTema != $newTema ) {\r
-                               if ($oldTema) {\r
-                                       echo '<tr><td colspan="5">&nbsp;</td></tr>';\r
-                               }\r
-                               $oldTema = $newTema;\r
-                               echo '<tr><td colspan="5">"' . $objTema->nombre . '"</td></tr>';\r
-                               echo '<tr><td>Tema</td><td>Autor</td><td>URL</td><td>Descripcion</td><td>Ranking</td></tr>';\r
+               $orig_from = 0;\r
+       }\r
+    $pags = ceil($total / $cant);\r
+    if ($pags != 1) { // Si tengo una sóla página\r
+               // Arrastro query string, si corresponde\r
+               if ( isset($_SERVER['QUERY_STRING'] ) )\r
+                       {\r
+                        $query = $_SERVER['QUERY_STRING'];\r
                        }\r
-            $arrInfos[2]->toHTML();\r
-                       $index--;\r
+                       else\r
+                       {\r
+                        $query = '';\r
+                       }\r
+               if (($pos = strpos($query, 'lista_from=')) !== false)\r
+               {\r
+                       if ($pos) $query = substr($query, 0, --$pos);\r
+                       else      $query = '';\r
+               }\r
+               $query = str_replace('&', '&amp;', $query);\r
+               echo '<tr><td';\r
+               if ($colspan) {\r
+                       echo ' colspan="' . $colspan . '"';\r
                }\r
+               echo '>';\r
+       \r
+               if (($orig_from - $cant) >= 0) {\r
+                       $from = $orig_from - $cant;\r
+                       $q = $query ? "$query&amp;lista_from=$from" : "lista_from=$from";\r
+                       printf('<a href="%s?%s"><</a>&nbsp;', $link, $q);\r
+               }\r
+               for ($i = 0; $i < $pags; ++$i)\r
+               {\r
+                       $from = $i * $cant;\r
+                       if ($from == $orig_from) {\r
+                               $data = '<strong>' . ($i + 1) . '</strong>';\r
+                       } else {\r
+                               $data = $i + 1;\r
+                       }\r
+                       $q = $query ? "$query&amp;lista_from=$from" : "lista_from=$from";\r
+                       printf('<a href="%s?%s">%s</a>&nbsp;', $link, $q, $data);\r
+               }\r
+               if ( ($orig_from + $cant) <= $total ) {\r
+                       $from = $orig_from + $cant;\r
+                       $q = $query ? "$query&amp;lista_from=$from" : "lista_from=$from";\r
+                       printf('<a href="%s?%s">></a>&nbsp;', $link, $q);\r
+               }\r
+               echo '</td></tr>';\r
        }\r
+\r
+       //Listo los resultados\r
+       $from = $orig_from;\r
+    $c = min($total - $from, $cant);\r
+\r
+       echo $header;\r
+       while ( $c-- )\r
+    {\r
+        $obj = $ObjetosAListar[$from++];\r
+               $obj->toHTML();\r
+    }\r
 }\r
+\r
+/************** Fin Funciones para Info Generales ***************/\r
 ?>\r