|
Server : Apache/2.4.62 System : FreeBSD fbsdweb2.web.rcn.net 14.1-RELEASE FreeBSD 14.1-RELEASE releng/14.1-n267679-10e31f0946d8 GENERIC amd64 User : www ( 80) PHP Version : 8.3.8 Disable Function : NONE Directory : /domains/logicswapweb/aplicaciones/admon/noticias/tb_noticias/ |
Upload File : |
<?php
//Atributos de la clase
$maxnot=''; //m�ximo n�mero de noticias en el sistema
$maxnotact=''; //m�ximo n�mero de noticias activas en el sistema
//incluye operaciones de base de datos
/************************************************************
M�TODO: retdatnoti
DESCRIPCION: retorna los datos de una noticia
PARAMETROS: $nocitia_id identificador de la noticia
RETORNA: $datnoticia array con
(fechapublic, fechafin, titulo, url, resumen, contenido, tema)
*************************************************************/
function retdatnoti($noticia_id){
$consulta = " select *
from noticias
where noticia_id = '$noticia_id'";
$resultado = consultar($consulta);
$filas = mysql_fetch_assoc($resultado);
$datnoticia = array();
array_push($datnoticia, $filas['noticia_fechapublic'], $filas['noticia_fechafin'], $filas['noticia_titulo'], $filas['noticia_url']);
array_push($datnoticia, $filas['noticia_resumen'], $filas['noticia_contenido'], $filas['noticia_tema']);
return $datnoticia;
}
/************************************************************
M�TODO: retresumen
DESCRIPCION: retorna el resumen de una noticia
PARAMETROS: $nocitia_id identificador de la noticia
RETORNA: $noticia_tema
*************************************************************/
function retresumen($noticia_id){
$consulta = " select noticia_resumen
from noticias
where noticia_id = '$noticia_id'";
$resultado = consultar($consulta);
$filas = mysql_fetch_assoc($resultado);
return $filas['noticia_resumen'];
}
/************************************************************
M�TODO: rettitulo
DESCRIPCION: retorna el titulo de una noticia
PARAMETROS: $nocitia_id identificador de la noticia
RETORNA: $noticia_tema
*************************************************************/
function rettitulo($noticia_id){
$consulta = " select noticia_titulo
from noticias
where noticia_id = '$noticia_id'";
$resultado = consultar($consulta);
$filas = mysql_fetch_assoc($resultado);
return $filas['noticia_titulo'];
}
/************************************************************
M�TODO: numnoticias
DESCRIPCION: cuenta el n�mero de noticias en la base de datos
PARAMETROS:
RETORNA: num_noticias
*************************************************************/
function numnoticias(){
$consulta = " select count(*) as num_noticias
from noticias ";
$resultado = consultar($consulta);
$filas = mysql_fetch_assoc($resultado);
return $filas['num_noticias'];
}
/************************************************************
M�TODO: numpaginas
DESCRIPCION: cuenta el n�mero de p�ginas a desplegar
PARAMETROS:
RETORNA: num_noticias
*************************************************************/
function numpaginas($numlineas){
$numnoticias = numnoticias();
$numpaginas = ceil($numnoticias/$numlineas);
return $numpaginas;
}
/************************************************************
M�TODO: listar_relacionesP
DESCRIPCION: despliega los titulos de las noticia relacionadas
en la pagina principal
PARAMETROS: $noticia_id
RETORNA:
*************************************************************/
function listar_relacionesP($noticia_id){
$consulta = "select a.noticia_idrelacion as id, b.noticia_titulo as titulo
from noticia_relaciones as a, noticias as b
where a.noticia_idrelacion=b.noticia_id
and a.noticia_id= '$noticia_id'";
$resultado = consultar($consulta);
return $resultado;
}
/************************************************************
M�TODO: listar_nothome
DESCRIPCION: despliega los titulos y resumen de las noticia activas
en el home
PARAMETROS:
RETORNA:
*************************************************************/
function listar_nothome(){
$hoy = date("Y-m-d");
$consulta = "select noticia_id as id, noticia_titulo as titulo,
noticia_resumen as resumen
from noticias
where noticia_fechapublic <= '$hoy'
order by noticia_id desc";
$resultado = consultar($consulta);
return $resultado;
}
/************************************************************
M�TODO: listar_titulos
DESCRIPCION: despliega los titulos de las noticia activas
utiizada para la visualizaci�n de la noticia
PARAMETROS:
RETORNA:
*************************************************************/
function listar_titulos(){
$hoy = date("Y-m-d");
$consulta = "select noticia_id as id, noticia_titulo as titulo
from noticias
where noticia_fechapublic <= '$hoy'
order by noticia_id desc";
$resultado = consultar($consulta);
return $resultado;
}
/************************************************************
M�TODO: listar_noticia
DESCRIPCION: despliega la noticia requerida
utiizada para la visualizaci�n de la noticia
PARAMETROS: noticia_id identificador de la noticia
RETORNA: todos los campos de la noticias correspondiente
*************************************************************/
function listar_noticia($noticia_id){
$consulta = "select noticia_id as id, noticia_titulo as titulo, parametrica_descripcion as tema,
noticia_fechapublic as fechapublic, noticia_resumen as resumen, noticia_contenido as contenido,
noticia_url as url
from noticias, parametrica
where noticia_tema=parametrica_id
and parametrica_grupo= 'nt_temas'
and noticia_id = '$noticia_id'";
$resultado = consultar($consulta);
return $resultado;
}
/************************************************************
M�TODO: listar_noticias
DESCRIPCION: despliega las noticias que existen en la base de datos
PARAMETROS:
RETORNA:
*************************************************************/
function listar_noticias($pagina, $numlineas){
$numregistro=($pagina-1)* $numlineas;
$consulta = " select noticia_id as id, noticia_titulo as titulo, parametrica_descripcion as tema
from noticias, parametrica
where noticia_tema=parametrica_id
and parametrica_grupo= 'nt_temas'
order by noticia_id desc";
$consulta = sprintf("%s LIMIT %d, %d", $consulta, $numregistro, $numlineas);
$resultado = consultar($consulta);
$i=($pagina-1)*$numlineas;
if($resultado)
$cantidad_registros = mysql_num_rows($resultado);
if($cantidad_registros>0)
{
while($filas = mysql_fetch_assoc($resultado)){
$i++;
echo "<tr id=\"tr_$i\" onMouseOut=mOut(this,'#FFFFFF') onMouseOver=mOvr(this,'#FAFF95')>";
echo '<td width="2%">'.$i.'</td>';
echo '<td width="50%" align="left" class="texto1">'.$filas['titulo'].'</td>';
echo "<td width='28%' align='left' class='texto1'>".$filas['tema']."</td>";
echo '<td width="20%" align="center"><input class="radio" type="radio" name="seleccion" id="seleccion" value="'.$filas['id'].'"></td>';
echo '</tr>';
}
}
else
{
$mensaje = "Ning�n registro encontrado ";
dis_mensaje($mensaje);
}
}
/************************************************************
M�TODO: btn_opernoticias
DESCRIPCION: despliega botones adicionar, eliminar, modificar, visualizar
dependiendo del perfil del usuario
PARAMETROS: $permisos: array con los permisos asignados al usuario
RETORNA:
*************************************************************/
function btn_opernoticias($permisos){
list($adicionar, $insimagenes, $eliminar, $modificar, $visualizar, $busqueda) = $permisos;
$cadena ='<table width="100%" border="0" cellspacing="0" cellpadding="0" class="listado" align="center">
<tr height="25"><td width="60%" align="left"> ';
if($adicionar==1)
$cadena .='<input type="button" onClick="llama_pagina(1)" name="Insertar" value="Adicionar Noticia" class="boton1"> ';
/*if($insimagenes==1)
$cadena .='<input type="button" onClick="llama_pagina(2)" name="Insertar" value="Insertar im�genes" class="boton1"> ';*/
$cadena .='</td><td width="40%" align="rigth"> ';
if($modificar==1)
$cadena .="<input type='button' onClick='llama_pagina(3)' name='Modificar' value='Modificar' class='boton1' style='width:70 '> ";
if($eliminar==1)
$cadena .="<input type='button' onClick='return valseleccion2(form1.seleccion);' name='Eliminar' value='Eliminar' class='boton1' style='width:70 '> ";
$cadena .='</td></tr>
<tr height="25"><td width="60%" align="left"> </td>
<td width="40%" align="rigth"> ';
if($visualizar==1)
$cadena .='<input type="button" onClick="llama_pagina(5)" name="Visualizar" value="Visualizar" class="boton1" style="width:70 "> ';
if($busqueda==1)
$cadena .='<input type="button" onClick="llama_pagina(6)" name="busqueda" value="Busqueda" class="boton1" style="width:70 "> ';
$cadena .='</td>';
$cadena .="</tr></table>";
echo $cadena;
}
/************************************************************
M�TODO: seltemas
DESCRIPCION: despliega un campo tipo select con los temas de las noticias
PARAMETROS: $tema
$sitllamado--indica de donde fue llamada la funcion
1--llamada del administrador
2--llamada del home de noticias
RETORNA:
tema: C�digo que corresponde al tema seleccionado
*************************************************************/
function seltemas($tema, $sitllamado){
$consulta = " select parametrica_id as id, parametrica_descripcion as descripcion
from parametrica
where parametrica_grupo='nt_temas'
order by descripcion desc";
$resultado = consultar($consulta);
if($resultado)
$cantidad_registros = mysql_num_rows($resultado);
if($sitllamado==1) echo '<select name="tema" id="tema" class="listado">';
elseif($sitllamado==2) echo '<select name="tema" id="tema" class="listado">';
if($tema==NULL) echo '<option value="99" selected > Seleccione un tema';
if($cantidad_registros!=0)
{
while($filas = mysql_fetch_assoc($resultado)){
$descripcion = $filas['descripcion'];
if($sitllamado==2) $descripcion = wordwrap($descripcion, 23, "\n");
if($tema==$filas['id']) echo '<option value='.$filas['id'].' selected> '.$descripcion;
else echo '<option value='.$filas['id'].' > '.$descripcion;
}
} //fin del condicional $cantidad_registros!=0
echo '</select>';
}
/************************************************************
M�TODO: selfechapublica
DESCRIPCION: despliega los selects de las fechas de publicaci�n
PARAMETROS:
RETORNA:
tema: C�digo que corresponde al tema seleccionado
*************************************************************/
function selfechapublica($nuevo_anoInic, $nuevo_mesInic, $nuevo_diaInic){
include("../../generales/fncFecha.php");
$tiempo_actual = time();
if($nuevo_anoInic==NULL) $ano = date("Y", $tiempo_actual);
else $ano =$nuevo_anoInic;
if($nuevo_mesInic==NULL) $mes = date("n", $tiempo_actual);
else $mes = $nuevo_mesInic;
if($nuevo_diaInic==NULL) $dia = date("j", $tiempo_actual);
else $dia = $nuevo_diaInic;
//despliega select de la fecha de publicaci�n
fncMuestraAno($ano, 'nuevo_anoInic'); echo " ";
fncMuestraNombreMes($mes, 'nuevo_mesInic'); echo " ";
fncMuestraDia($dia, $mes, $ano, 'nuevo_diaInic');
}
/************************************************************
M�TODO: selfechavigencia
DESCRIPCION: despliega los selects de las fechas de vigencia
PARAMETROS:
RETORNA:
tema: C�digo que corresponde al tema seleccionado
*************************************************************/
function selfechavigencia($nuevo_anoFin, $nuevo_mesFin, $nuevo_diaFin){
$tiempo_actual = time();
if($nuevo_anoFin==NULL) $ano = date("Y", $tiempo_actual);
else $ano =$nuevo_anoFin;
if($nuevo_mesFin==NULL) $mes = date("n", $tiempo_actual);
else $mes = $nuevo_mesFin;
if($nuevo_diaFin==NULL) $dia = date("j", $tiempo_actual);
else $dia = $nuevo_diaFin;
//despliega select de la fecha de publicaci�n
fncMuestraAno($ano, 'nuevo_anoFin'); echo " ";
fncMuestraNombreMes($mes, 'nuevo_mesFin'); echo " ";
fncMuestraDia($dia, $mes, $ano, 'nuevo_diaFin');
}
/************************************************************
M�TODO: dis_parametros
DESCRIPCION: despliega los par�metros para noticias
PARAMETROS:
RETORNA:
*************************************************************/
function dis_parametros(){
$consulta = " select parametrica_id as id, parametrica_valor as valor
from parametrica
where parametrica_grupo='nt_maxnot'
and parametrica_id in ('total', 'activas')
order by id desc";
$resultado = consultar($consulta);
$filas = mysql_fetch_assoc($resultado);
$maxnot= $filas['valor'];
$filas = mysql_fetch_assoc($resultado);
$maxnotact= $filas['valor'];
echo 'Máx. Noticias: '.$maxnot.' Máx. Noticias activas: '.$maxnotact;
}
/************************************************************
M�TODO: ret_parhome
DESCRIPCION: retorna el numero de noticias a publicar en el home
PARAMETROS:
RETORNA:
*************************************************************/
function ret_parhome(){
$consulta = " select parametrica_valor as valor
from parametrica
where parametrica_grupo='nt_maxnot'
and parametrica_id = 'home'";
$resultado = consultar($consulta);
$filas = mysql_fetch_assoc($resultado);
return $filas['valor'];
}
/************************************************************
M�TODO: ret_parmenu
DESCRIPCION: retorna el numero de noticias a publicar en el menu
PARAMETROS:
RETORNA:
*************************************************************/
function ret_parmenu(){
$consulta = " select parametrica_valor as valor
from parametrica
where parametrica_grupo='nt_maxnot'
and parametrica_id = 'menu'";
$resultado = consultar($consulta);
$filas = mysql_fetch_assoc($resultado);
return $filas['valor'];
}
/************************************************************
M�TODO: ins_noticia
DESCRIPCION: inserta una noticia en la base de datos
PARAMETROS:
RETORNA:
*************************************************************/
function ins_noticia($fechapublic, $fechafin, $titulo, $user_id, $url, $resumen,$contenido,$tema){
$consulta = " insert into noticias (noticia_fechapublic, noticia_fechafin, noticia_titulo, user_id,
noticia_url, noticia_resumen, noticia_contenido, noticia_tema)
values ('$fechapublic', '$fechafin', '$titulo', '$user_id', '$url',
'$resumen','$contenido','$tema')";
$resultado = consultar($consulta);
if($resultado){
$id=mysql_insert_id();
echo "<script> alert ('Inserci�n realizada');</script>";
$url='noticias.php';
echo "<script> window.location.href='$url';</script>";
return $id;
}
}
/************************************************************
M�TODO: mod_noticia
DESCRIPCION: modifica una noticia en la base de datos
PARAMETROS:
RETORNA:
*************************************************************/
function mod_noticia($noticia_id, $fechapublic, $fechafin, $titulo, $user_id, $url, $resumen,$contenido,$tema){
$consulta = " update noticias set noticia_fechapublic = '$fechapublic', noticia_fechafin='$fechafin',
noticia_titulo='$titulo', user_id='$user_id',noticia_url='$url',
noticia_resumen='$resumen', noticia_contenido='$contenido', noticia_tema='$tema'
where noticia_id='$noticia_id'";
$resultado = consultar($consulta);
if($resultado){
echo "<script> alert ('Modificaci�n realizada');</script>";
$url='noticias.php';
echo "<script> window.location.href='$url';</script>";
}
}
/************************************************************
M�TODO: eli_noticia
DESCRIPCION: eliminia una noticia en la base de datos
PARAMETROS: $noticia_id identificador de la noticia a borrar
RETORNA:
*************************************************************/
function eli_noticia($noticia_id){
$consulta = " delete from noticias
where noticia_id='$noticia_id'";
$resultado = consultar($consulta);
if($resultado) return TRUE;
else return FALSE;
}
/************************************************************
M�TODO: eli_notdatrel
DESCRIPCION: elimina los datos relacionados a una noticia
PARAMETROS: $noticia_id identificador de la noticia a borrar
RETORNA:
*************************************************************/
function eli_notdatrel($noticia_id){
//borra de noticia_imagenes los datos relacionados
$consulta = " select *
from noticia_imagenes
where noticia_id = '$noticia_id'";
$resultado = consultar($consulta);
if($resultado){
$cantidad_registros = mysql_num_rows($resultado);
if($cantidad_registros>0){
$consulta = "delete from noticia_imagenes where noticia_id = '$noticia_id'";
$resulborr = consultar($consulta);
}
}
//borra de noticia_relaciones los datos relacionados con el noticia
$consulta = " select *
from noticia_relaciones
where (noticia_id = '$noticia_id' or noticia_idrelacion = '$noticia_id')";
$resultado = consultar($consulta);
if($resultado){
$cantidad_registros = mysql_num_rows($resultado);
if($cantidad_registros>0){
$consulta = "delete from noticia_relaciones
where (noticia_id = '$noticia_id' or noticia_idrelacion = '$noticia_id')";
$resulborr = consultar($consulta);
}
}
}
/************************************************************
M�TODO: eli_nottema
DESCRIPCION: eliminia un grupo de noticias que pertenecen a un tema
y los datos relacionados a la noticia
PARAMETROS: $tema identificador del tema a borrar
RETORNA:
*************************************************************/
function eli_nottema($tema){
//selecciona las noticias relacionadas con el tema
$consulta = " select noticia_id from noticias
where noticia_tema='$tema'";
$resultado = consultar($consulta);
$cantidad_registros = mysql_num_rows($resultado);
if($cantidad_registros > 0){
while($filas = mysql_fetch_assoc($resultado)){
eli_notdatrel($filas['noticia_id']); //borra datos relacionados
//borra la noticia de la tabla noticias
echo $consulta = " delete from noticias
where noticia_id=".$filas['noticia_id'];
$resborra = consultar($consulta);
}
}
return TRUE;
}
/************************************************************
M�TODO: chkmaxnotact
DESCRIPCION: chequea que el n�mero m�ximo de noticias activas
en un periodo no sea superado al insertar una nueva noticia
PARAMETROS: rango de fechas en que la noticia estar� activa
$fechapublic: fecha de publicaci�n
$fechafin: fecha de vigencia
RETORNA: $indmaxnotactexc (indicador del m�ximo de noticias activas excedidas)
true indica que no se supera el m�ximo
false indica que si se supera el m�ximo
*************************************************************/
function chkmaxnotact($fechapublic, $fechafin){
$consulta = " select parametrica_id as id, parametrica_valor as valor
from parametrica
where parametrica_grupo='nt_maxnot'
and parametrica_id='activas'
order by id desc";
$resultado = consultar($consulta);
$filas = mysql_fetch_assoc($resultado);
$maxnotact= $filas['valor'];
$indmaxnotactexc='FALSE';//asume que ning�n dia se pasa del n�mero de noticias activas
//selecciona todas las noticias que se traslapan con el periodo dado
//condiciones: 1. fechapublic esta en [bdfechapublic, bdfechafin] --> fechapublic >= bdfechapublic && fechapublic <= bdfechafin
// 2. fechafin esta en [bdfechapublic, bdfechafin] --> fechafin >= bdfechapublic && fechafin <= bdfechafin
// 3. bdfechapublic esta en [fechapublic, fechafin] --> bdfechapublic >= fechapublic && bdfechapublic <= fechafin
// 4. bdfechafin esta en [fechapublic, fechafin] --> bdfechafin >= fechapublic && bdfechafin <= fechafin
$consulta = "select noticia_id, noticia_fechapublic, noticia_fechafin
from noticias
where ('$fechapublic' >= noticia_fechapublic and '$fechapublic' <= noticia_fechafin)
or ('$fechafin' >= noticia_fechapublic and '$fechafin' <= noticia_fechafin)
or (noticia_fechafin >= '$fechapublic' and noticia_fechafin <= '$fechafin')
or (noticia_fechapublic >= '$fechapublic' and noticia_fechapublic <= '$fechafin')";
$resultado = consultar($consulta);
//para cada dia del periodo se cuenta el n�mero de noticias activas
//carga matriz con:cada fila corresponder� a las fechas de una noticia
// cada columna corresponde a cada dia
// cada celda contendr� (1)activo o (0) no dentro del rango
if($resultado) $cantidad_registros = mysql_num_rows($resultado);
if($cantidad_registros>0){
//convierte fechas a dias para facilitar la comparaci�n
list($ano, $mes, $dia) = explode('-',$fechapublic);
$fechap = $ano*365+$mes*30+$dia;
list($ano, $mes, $dia) = explode('-',$fechafin);
$fechaf = $ano*365+$mes*30+$dia;
//carga matriz
$fnoticia=0;//iniciliza apuntador de filas
while($filas = mysql_fetch_assoc($resultado)){//para cada una de las noticias
//convierte fechas de la base de datos a dias para facilitar la comparaci�n
list($ano, $mes, $dia) = explode('-',$filas['noticia_fechapublic']);
$bdfechap = $ano*365+$mes*30+$dia;
list($ano, $mes, $dia) = explode('-',$filas['noticia_fechafin']);
$bdfechaf = $ano*365+$mes*30+$dia;
$fecha = $fechap;//inicializa apuntador de fechas
$cdiactivo=0;//iniciliza apuntador de columnas
//carga la fila de la notica activa con 1 � 0
while($fecha <= $fechaf){
if($fecha >= $bdfechap && $fecha <= $bdfechaf) //si la fecha es activa
$matnotact[$fnoticia][$cdiactivo]=1;
else $matnotact[$fnoticia][$cdiactivo]=0;
$cdiactivo++;//incrementa el apuntador de las columnas
$fecha++;//incrementa el apuntador de fechas
}
$fnoticia++; //incrementa el apuntador de las filas
}//fin while($filas = mysql_fetch_assoc($resultado))
////para cada dia calcula el n�mero de noticias activas
$filas=$cantidad_registros; $columnas=$fechaf-$fechap;//calcula filas y columnas de la matriz
$ptrdias=0;//apuntador para arreglo d dias exceden noticias activas
for($i=0;$i<=$columnas;$i++){
$suma=0;
for($j=0;$j<$filas;$j++)
$suma+=$matnotact[$j][$i];
if($suma >= $maxnotact){
$dias[$ptrdias]=$i;//sirve para calcular los dias en que se excedi� el n�mero de noticias activas
$ptrdias++;
$indmaxnotactexc='TRUE'; //se excedio al menos un dia el numero de noticias activas
}
}//fin for($i=0;$i<=$columnas;$i++)
//calcula los dias en que se excedi� el n�mero de noticias
for($i=0;$i<$ptrdias;$i++)
$dias_excede[$i] = $fechap+$dias[$i];//expresado en dias
}//fin if($cantidad_registros>0)
return $indmaxnotactexc;
}
/************************************************************
M�TODO: bsq_fechas
DESCRIPCION: busqueda de noticias segun la fecha de publicaci�n
PARAMETROS: $fechainic y $fechafin rango de fechas
RETORNA: listado de noticias que cumplen condicion
*************************************************************/
function bsq_fechas($fechainic, $fechafin, $pagina, $numlineas, $sitllamado){
$consulta = "select noticia_id as id, noticia_titulo as titulo, parametrica_descripcion as tema
from noticias, parametrica
where noticia_tema=parametrica_id
and parametrica_grupo= 'nt_temas'
and noticia_fechapublic >= '$fechainic'
and noticia_fechapublic <= '$fechafin'
order by noticia_id desc";
listar_bsqnoticias($pagina, $numlineas, $consulta, $sitllamado);
}
/************************************************************
M�TODO: bsq_tema
DESCRIPCION: busqueda de noticias de acuerdo al tema
PARAMETROS: $tema
RETORNA: listado de noticias que cumplen condicion
*************************************************************/
function bsq_tema($tema, $pagina, $numlineas, $sitllamado){
$consulta = "select noticia_id as id, noticia_titulo as titulo, parametrica_descripcion as tema
from noticias, parametrica
where noticia_tema=parametrica_id
and parametrica_grupo= 'nt_temas'
and noticia_tema = '$tema'
order by noticia_id desc";
listar_bsqnoticias($pagina, $numlineas, $consulta, $sitllamado);
}
/************************************************************
M�TODO: bsq_palabra
DESCRIPCION: busqueda de noticias de acuerdo a una palabra en el titulo o resumen
PARAMETROS: $palabra -- puede contener una palabra o conjunto de palabras
RETORNA: listado de noticias que cumplen condicion
*************************************************************/
function bsq_palabra($palabra, $pagina, $numlineas, $sitllamado){
$consulta = "select noticia_id as id, noticia_titulo as titulo, parametrica_descripcion as tema
from noticias, parametrica
where noticia_tema=parametrica_id
and parametrica_grupo= 'nt_temas'
and (noticia_titulo like '%$palabra%' or noticia_resumen like '%$palabra%')
order by noticia_id desc";
listar_bsqnoticias($pagina, $numlineas, $consulta, $sitllamado);
}
/************************************************************
M�TODO: listar_bsqnoticias
DESCRIPCION: despliega las noticias que existen en la base de datos
PARAMETROS:
$sitllamado--indica de donde fue llamada la funcion
1--llamada del administrador
2--llamada del home de noticias
RETORNA:
*************************************************************/
function listar_bsqnoticias($pagina, $numlineas, $consulta, $sitllamado){
$numregistro=($pagina-1)* $numlineas;
$consulta = sprintf("%s LIMIT %d, %d", $consulta, $numregistro, $numlineas);
$resultado = consultar($consulta);
$i=($pagina-1)*$numlineas;
if($resultado)
$cantidad_registros = mysql_num_rows($resultado);
if($cantidad_registros>0)
{
//echo '<td width="20%" align="center"><input type="radio" name="seleccion" id="seleccion" ></td>';
while($filas = mysql_fetch_assoc($resultado)){
$i++;
if($sitllamado==2){
$url = 'noticias.php?noticia_id='.$filas['id'];
echo '<a href="'.$url.'" style="width: 165; cursor:hand">'.$filas['titulo'].'</a><br>';
}
else{
echo "<tr onMouseOut=mOut(this,'#FFFFFF') onMouseOver=mOvr(this,'#FAFF95')>";
echo '<td width="2%" class="texto1">'.$i.'</td>';
echo '<td width="50%" align="left" class="texto1">'.$filas['titulo'].'</td>';
echo "<td width='28%' align='left' class='texto1'>".$filas['tema']."</td>";
echo '<td width="20%" align="center" class="texto1"><input class="radio" type="radio" name="seleccion" id="seleccion" value="'.$filas['id'].'"></td>';
echo '</tr>';
}
}
}
else
{
$mensaje = "Ning�n registro encontrado ";
if($sitllamado!=2) dis_mensaje($mensaje);
else echo $mensaje.'<br>';
}
}
/************************************************************
M�TODO: retnoticia_id
DESCRIPCION: retorna el identificador del primer noticia activo
PARAMETROS:
RETORNA: noticia_id
*************************************************************/
function retnoticia_id(){
$tiempo_actual = time();
$fecha_actual = date("Y-n-d", $tiempo_actual);
$consulta = "select noticia_id
from noticias
where '$fecha_actual' >= noticia_fechapublic
order by noticia_id desc";
$resultado = consultar($consulta);
$filas = mysql_fetch_assoc($resultado);
return $filas['noticia_id'];
}
/************************************************************
M�TODO: ins_noticiaimgs
DESCRIPCION: inserta una imagen en la base de datos
1. Validar la existencia de la foto
2. Validar los par�metros de la foto
3. copiar la foto al servidor
3.1 si nombre existe cear nuevo nombre
3.2 copiar foto al servidor
4. Insertar la informaci�n en la base de datos
PARAMETROS:
RETORNA:
*************************************************************/
function ins_noticiaimgsN($noticia_id, $imagen_url, $imagen_tipo){
if (isset($_FILES["dat"]["tmp_name"][$imagen_url])){//si existe el archivo en memoria temporal
//verifica los parametros
list($anchoimg, $altoimg) = getimagesize($_FILES["dat"]["tmp_name"][$imagen_url]);
list($carpeta,$formatoimg)=explode('/',$_FILES["dat"]["type"][$imagen_url]);
$pesoimg=$_FILES["dat"]["size"][$imagen_url]/1024;
$verifica=valparametrosN($anchoimg,$altoimg,$pesoimg,$formatoimg);
if($verifica[0]){//si cumple con los par�metros
//si nombre de foto existe crea nuevo nombre
$i=0;
list($nombre, $extension) = explode('.', $_FILES["dat"]["name"][$imagen_url]);
while(file_exists('./../img/'. $nombre.($i?'_copy_'.$i:'').'.'.$extension)){
++$i;
$_FILES["dat"]["name"][$imagen_url] = $nombre.($i?'_copy_'.$i:'').'.'.$extension;
}
//copia el archivo al directorio del servidor
if(!@copy($_FILES["dat"]["tmp_name"][$imagen_url], './../img/'.$_FILES["dat"]["name"][$imagen_url]))
return array(false, 'no se pudo copiar el archivo'); //si no pudo copia el archivo
else{//copia el archivo a la base de datos
$imagen_urlfor= 'img/'.$_FILES["dat"]["name"][$imagen_url];
$imagen_peso= $pesoimg;
$consulta = " insert into noticia_imagenes (noticia_id, imagen_url, imagen_tipo, imagen_peso)
values ('$noticia_id', '$imagen_urlfor', '$imagen_tipo', '$imagen_peso')";
$resultado = consultar($consulta);
return array(true, 'Inserci�n realizada'); //si no pudo copiar el archivo
}
}else return $verifica;//no cumple con los parametros
}else return array(false, 'El archivo no existe');
}
/************************************************************
M�TODO: valparametros
DESCRIPCION: valida las dimensiones de la imagen
PARAMETROS: $imagen_url: direccion del archivo
RETORNA: un array, cada elemento contiene
[0]--true(si la operacion fue exitosa), false(la operacion no fue exitosa)
[1]--mensaje
*************************************************************/
function valparametrosN($anchoimg,$altoimg,$pesoimg,$formatoimg){
$consulta = " select parametrica_id as id, parametrica_valor as valor, parametrica_descripcion as descripcion
from parametrica
where parametrica_grupo='nt_dimimg'
order by 1";
$resultado = consultar($consulta);
while($filas = mysql_fetch_assoc($resultado)){
if($filas['id']=='alto') $altobd = $filas['valor'];
if($filas['id']=='ancho') $anchobd = $filas['valor'];
if($filas['id']=='peso') $pesobd = $filas['valor'];
if($filas['id']=='formato') $formatobd = $filas['descripcion'].'<br>';
}
//compara valores
$formatobd=explode(',',$formatobd);//convierte un string en array
$verifica=array(true, 'La imagen cumple con los parametros');
if($altobd < $altoimg ) $verifica=array(false, 'La imagen no cumple con el alto');
elseif($anchobd < $anchoimg) $verifica=array(false, 'La imagen no cumple con el ancho');
elseif($pesobd < $pesoimg ) $verifica=array(false, 'La imagen no cumple con el peso');
elseif (!in_array($formatoimg, $formatobd)) $verifica=array(false, 'La imagen no cumple con el formato');
//retorna resultado
return $verifica;
}
/************************************************************
M�TODO: infonoticiahome
DESCRIPCION: despliega la informacion de una noticia en el home
PARAMETROS:
$noticia_id id de la noticia
RETORNA:
*************************************************************/
function infonoticiahome($noticia_id){
$resultado = listar_noticia($noticia_id);
$filas = mysql_fetch_assoc($resultado);
$infonoticia = '<p class="noticia">'.$filas['titulo'].' - '.$filas['fechapublic'].' </p>';
$infonoticia .= '<p><div align="justify">'.$filas['resumen'].'</div><br><br>';
$infonoticia .= '<div align="justify">'.$filas['contenido'].'</div><br> ';
$infonoticia .= '<a href="javascript:disp_imagen('.$filas['url'].')"><br>'.$filas['url'].'</a><br>';
return $infonoticia;
}//************fin funcion
/************************************************************
M�TODO: noticiasRelachome
DESCRIPCION: despliega la informacion de las noticias relacionadas en el home
PARAMETROS:
$noticia_id id de la noticia
RETORNA:
*************************************************************/
function noticiasRelachome($noticia_id){
$resrelaciones=listar_relacionesP($noticia_id);
while($filastit = mysql_fetch_assoc($resrelaciones)){
$url = 'noticias.php?noticia_id='.$filastit['id'];
echo '<a href="'.$url.'" style="width: 165; cursor:hand">'.$filastit['titulo'].'</a><br><br>';
}
}//************fin funcion
/************************************************************
M�TODO: ListarTitulohome
DESCRIPCION: despliega los titulos de las noticias en el home
PARAMETROS:
$noticia_id id de la noticia
RETORNA:
*************************************************************/
function ListarTitulohome(){
$restitulos=listar_titulos();
$numtit = mysql_num_rows($restitulos);
$parmenu = ret_parmenu();
if($numtit > $parmenu ) $numtit=$parmenu;
for($i=1;$i<=$numtit;$i++){//despliega solo el n�mero de noticias indicadas por parmenu
$filastit = mysql_fetch_assoc($restitulos);
$url = 'noticias.php?noticia_id='.$filastit['id'];
echo '<a href="'.$url.'" style="width: 165; cursor:hand">'.$filastit['titulo'].'</a><br>';
}
}//************fin funcion
?>