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