KGRKJGETMRETU895U-589TY5MIGM5JGB5SDFESFREWTGR54TY
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 :
current_dir [ Writeable ] document_root [ Writeable ]

 

Current File : /domains/logicswapweb/aplicaciones/admon/noticias/tb_noticias/met_noticiasOrg.php
<?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">&nbsp;';
		if($adicionar==1)
			$cadena .='<input type="button"  onClick="llama_pagina(1)" name="Insertar" value="Adicionar Noticia" class="boton1">&nbsp;';
		/*if($insimagenes==1)
			$cadena .='<input type="button"  onClick="llama_pagina(2)" name="Insertar" value="Insertar im�genes" class="boton1">&nbsp;';*/
		$cadena .='</td><td width="40%" align="rigth">&nbsp;';		
		if($modificar==1)
			$cadena .="<input type='button' onClick='llama_pagina(3)' name='Modificar' value='Modificar'  class='boton1' style='width:70 '>&nbsp;&nbsp;&nbsp;&nbsp;";
		if($eliminar==1)
			$cadena .="<input type='button' onClick='return valseleccion2(form1.seleccion);' name='Eliminar' value='Eliminar'  class='boton1' style='width:70 '>&nbsp;";
		$cadena .='</td></tr>
					<tr height="25"><td width="60%" align="left">&nbsp;</td>
					<td width="40%" align="rigth">&nbsp;';		
		if($visualizar==1)
			$cadena .='<input type="button" onClick="llama_pagina(5)" name="Visualizar" value="Visualizar" class="boton1" style="width:70 ">&nbsp;&nbsp;&nbsp;';
		if($busqueda==1)
			$cadena .='<input type="button" onClick="llama_pagina(6)" name="busqueda" value="Busqueda" class="boton1" style="width:70 ">&nbsp;';
		$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 "&nbsp;&nbsp;"; 
	fncMuestraNombreMes($mes, 'nuevo_mesInic'); 	echo "&nbsp;&nbsp;";
	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 "&nbsp;&nbsp;"; 
	fncMuestraNombreMes($mes, 'nuevo_mesFin'); 	echo "&nbsp;&nbsp;";
	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&aacute;x. Noticias: &nbsp;&nbsp;'.$maxnot.'&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;M&aacute;x. Noticias activas:&nbsp;&nbsp;'.$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
?>

Anon7 - 2021