<?php

class Noticia {
    
    var $TITULO;
    var $CONTENIDO;
    var $FECHA_CREACION;
    var $FECHA_EDICION;
    var $ESTADO;
    var $FECHA_PUBLICACION;
    var $FECHA_DESPUBLICACION;
    var $SECCION_ID;
    var $USUARIO_ID;
    var $bd;
    
    function Noticia( $titulo = null, $contenido = null, $fecha_creacion = null, $fecha_edicion = null, $estado = null, $fecha_publicacion = null, $fecha_despublicacion = null, $seccion_id = null, $usuario_id = null ){
        
        $this->TITULO = $titulo;
        $this->CONTENIDO = $contenido;
        $this->FECHA_CREACION = $fecha_creacion;
	$this->FECHA_EDICION = $fecha_edicion;
	$this->ESTADO = $estado;
        $this->FECHA_PUBLICACION = $fecha_publicacion;
	$this->FECHA_DESPUBLICACION = $fecha_despublicacion;
	$this->SECCION_ID = $seccion_id;
	$this->USUARIO_ID = $usuario_id;
        
        //Instancia de Base_Datos()
        $this->bd = new Base_Datos(DB,SERVER,USER,PASSWD,DB_PORT);
        
    }
    
    function Agregar(){
        
        $this->bd->ConsultaSQL("INSERT INTO ".TABLA_NOTICIAS."
			       (titulo, contenido, fecha_creacion, fecha_edicion, estado,
			       fecha_publicacion, fecha_despublicacion, seccion_id, usuario_id)
			       VALUES ('{$this->TITULO}', '{$this->CONTENIDO}',
			       '{$this->FECHA_CREACION}', '{$this->FECHA_EDICION}',
			       '{$this->ESTADO}','{$this->FECHA_PUBLICACION}',
			       '{$this->FECHA_DESPUBLICACION}', '{$this->SECCION_ID}',
			       '{$this->USUARIO_ID}');");
	
    }
    
    function Editar( $id = null ){
        
        $this->bd->ConsultaSQL("UPDATE ".TABLA_NOTICIAS." SET titulo = '{$this->TITULO}',
			       contenido = '{$this->CONTENIDO}',fecha_edicion = '{$this->FECHA_EDICION}',
			       estado = '{$this->ESTADO}', fecha_publicacion = '{$this->FECHA_PUBLICACION}',
			       fecha_despublicacion = '{$this->FECHA_DESPUBLICACION}',
			       seccion_id = '{$this->SECCION_ID}', usuario_id = '{$this->USUARIO_ID}'
			       WHERE id = '{$id}'");
        
    }
    
    function Borrar( $id = null ) {
        
    	return $this->bd->ConsultaSQL("DELETE FROM ".TABLA_NOTICIAS." WHERE id='{$id}'");
        
    }
    
    function Publica( $id = null ) {
        
    	$res = $this->bd->enArray($this->bd->ConsultaSQL("SELECT estado FROM ".TABLA_NOTICIAS." WHERE id='{$id}'"));
	
	$estado = $res['estado']==0?1:0;
	
	$this->bd->ConsultaSQL("UPDATE ".TABLA_NOTICIAS." SET estado = '{$estado}' WHERE id='{$id}'");
        
    }
    
    function Despublica(){
	
	$resultado = $this->bd->ConsultaSQL("SELECT id FROM ".TABLA_NOTICIAS."
				      WHERE fecha_despublicacion < DATE_FORMAT(NOW(),'%Y/%m/%d')
				      AND fecha_despublicacion NOT IN (0000-00-00,'NULL')");
	
	if( mysql_num_rows($resultado) > 0 ){
	
	    while($res = $this->bd->enArray($resultado))
		$ides[] = $res['id'];
	    
	    //echo '<pre>';
	    //print_r($ides);
	    //echo '</pre>';
	    $ides = implode(',',$ides);
	    
	    $this->bd->ConsultaSQL("UPDATE ".TABLA_NOTICIAS." SET estado = 0 WHERE id IN ({$ides})");
	
	}
	
    }
    
    function Listar( $por = "id" , $inicio = 0 , $limite = 30 ){
        
	return $this->bd->ConsultaSQL("SELECT ".TABLA_NOTICIAS.".id, ".TABLA_NOTICIAS.".titulo,
				      DATE_FORMAT(".TABLA_NOTICIAS.".fecha_publicacion,'%d/%m/%Y') AS fecha_publicacion,
				      ".TABLA_NOTICIAS.".estado, ".TABLA_SECCIONES.".titulo AS seccion,
				      ".TABLA_USUARIOS.".user AS autor
				      FROM (".TABLA_NOTICIAS." INNER JOIN ".TABLA_SECCIONES." ON
				      ".TABLA_NOTICIAS.".seccion_id = ".TABLA_SECCIONES.".id)
				      INNER JOIN ".TABLA_USUARIOS." ON ".TABLA_NOTICIAS.".usuario_id = ".TABLA_USUARIOS.".id 
				      ORDER BY {$por} DESC LIMIT {$inicio},{$limite}");
     
    }
    
    function ver( $id = null ){
        
	return $this->bd->enArray($this->bd->ConsultaSQL("SELECT ".TABLA_NOTICIAS.".id, ".TABLA_NOTICIAS.".titulo,
				      DATE_FORMAT(".TABLA_NOTICIAS.".fecha_creacion,'%d/%m/%Y') AS fecha_creacion,
				      DATE_FORMAT(".TABLA_NOTICIAS.".fecha_edicion,'%d/%m/%Y') AS fecha_edicion,
				      DATE_FORMAT(".TABLA_NOTICIAS.".fecha_publicacion,'%d/%m/%Y') AS fecha_publicacion,
				      DATE_FORMAT(".TABLA_NOTICIAS.".fecha_despublicacion,'%d/%m/%Y') AS fecha_despublicacion,
				      ".TABLA_NOTICIAS.".estado, ".TABLA_NOTICIAS.".contenido,
				      ".TABLA_SECCIONES.".titulo AS seccion, ".TABLA_USUARIOS.".user AS autor
				      FROM (".TABLA_NOTICIAS." INNER JOIN ".TABLA_SECCIONES." ON
				      ".TABLA_NOTICIAS.".seccion_id = ".TABLA_SECCIONES.".id)
				      INNER JOIN ".TABLA_USUARIOS." ON ".TABLA_NOTICIAS.".usuario_id = ".TABLA_USUARIOS.".id 
				      WHERE ".TABLA_NOTICIAS.".id = '{$id}'"));
     
    }
    
    function Buscar( $q = null, $tipo = null ){
	
	switch ($tipo):
        
	    case "xnombre":
                
                return $this->bd->ConsultaSQL("SELECT * FROM ".TABLA_NOTICIAS." WHERE titulo like '%{$q}%' ;");
		break;
            
            case "xid":
                
		return $this->bd->enArray($this->bd->ConsultaSQL("SELECT * FROM ".TABLA_NOTICIAS." WHERE id='{$q}';"));
		break;
            
	    default:
            
	endswitch;
        
    }
 
}
?>