<?php
require_once("DBManager.class.php");

class blog{
	private $idblog;///
	private $idpersona;	
	private $titulo;
	private $detalle;
	private $estado;
	private $fechareg;
	
	private $visitas;
	private $interes;
	
	//////////////////////////////////////////
	public function Correlativo()
	{
		$vCorre2 = 1;		
		$vCont = 1;
		$vCeros = "";
		$delta_ceros = 0;
		$AnoSiguiente = 0;
		$AnoActual = 0;
		$fecha = getdate();
		
		$db= new DBManager();	
		$rs=$db->execute("SELECT idblog FROM blog ORDER BY idblog;");
		
		//Entra a este bloque si existe algun valor en el campo INroOrd		
		if($rs->lastRow())
		{			
			
		
			$vCorre1 = substr($rs->fields['idblog'],0,5);//variable que almacena los 4 primeros caracteres de INroOrd
			$vCorre2 = substr($rs->fields['idblog'],6); //extraigo los ultimos 5 caracteres de INroOrd 			
			
			$vCorre1 = intval($vCorre1); //obtengo el valor entero
			$vCorre2 = intval($vCorre2); //obtengo el valor entero
							
			$vCorre2++;//se incrementa en 1, es decir el correlativo
			
			//verifico si el correlativo llega a ocupar los 5 digitos
		 	$delta_ceros = 6 - strlen($vCorre2);
			
			if( $delta_ceros == 0 )// Si en el codigo  correlativo ya no existen ceros que poner es decir vCorre2 = 10000
			{
				//Si es que he pasado al siguiente año
				$AnoActual = intval($fecha['year']);
				if($AnoActual>$vCorre1)
				{   
					$AnoSiguiente = $vCorre1+=1;
					return $AnoSiguiente."0000001";
				}
				else{

						return ($vCorre1.$vCorre2);
					}			
			}
			
			if( $delta_ceros < 0 /*-1*/)// Si en el codigo correlativo ya no existen ceros que poner y ya llego al limite, en este caso delta_ceros = -1
			{
				$AnoSiguiente = $vCorre1+=1;
				return $AnoSiguiente."0000001";
			}
			
			if( $delta_ceros > 0) // Si en el codigo correlativo existen ceros que poner
			{
			
				//Si es que he pasado al siguiente año
				$AnoActual = intval($fecha['year']);
				if($AnoActual>$vCorre1)
				{   
					$AnoSiguiente = $vCorre1+=1;
					return $AnoSiguiente."0000001";
				}
				else{
						for($i=1; $i<$delta_ceros; $i++)
						{
							$vCont++;//contador de ceros
						}			
						$vCeros=str_pad($vCeros,$vCont,'0',STR_PAD_RIGHT);//rellenar de ceros al lado derecho		
						return($vCorre1.$vCeros.$vCorre2);
					}			
			}			

		}else{ 
				//Caso contrario esta vacio el campo al inicio de las acciones				
				return ($fecha['year']."000000".$vCorre2);				
			 }

		$rs->close();
		$db->closeConnection();//opcional			
	}
	
	///////////////////////////////////////////
	public function Crear($vi,$vid,$ti,$de,$es,$fr)
	{   
		$resp=false;		
		$db= new DBManager();		
		if($db->_execute("INSERT INTO blog(idblog,idpersona,titulo,detalle,estado,fechareg,visitas,interes) VALUES('".$vi."',".$vid.",'".$ti."','".$de."','".$es."','".$fr."',0,0)"))   
		{
			$resp=true;
		}
		return $resp;		
	}
	
	
	public function ListarPorPersona($v)
	{
		$vector=null;		
		$db= new DBManager();		
		$rs=$db->execute("select * from blog where(idpersona =".$v.") order by idblog desc");
		$num_rows=$rs->getNumOfRows();
		if($num_rows>0)
		{	$row=0;
			$rs->firstRow(); // opcional, pero recomendado
			while (!$rs->EOF) 
			{
   				$vector[$row]=array("idblog"   => $rs->fields["idblog"],
									"idpersona" 	    => $rs->fields["idpersona"],
									"titulo"         => $rs->fields["titulo"],
									"detalle"         => $rs->fields["detalle"],
									"estado"         => $rs->fields["estado"],
									"fechareg"         => $rs->fields["fechareg"],
									"visitas"         => $rs->fields["visitas"],
									"interes"         => $rs->fields["interes"]);
									
                $row++;
				$rs->nextRow(); // Nota: nextRow() Esta situado al final				
         	}			
        	return $vector;			
		}else return null;
		$rs->close(); 
		$db->closeConnection();//opcional cierra el enlace de la Base de Datos              						
	}
	
	public function ListarPublicos($v)
	{
		$vector=null;		
		$db= new DBManager();		
		$rs=$db->execute("select * from blog where titulo LIKE CONCAT('%','".$v."','%') and estado ='PUBLICO' order by idblog desc");
		$num_rows=$rs->getNumOfRows();
		if($num_rows>0)
		{	$row=0;
			$rs->firstRow(); // opcional, pero recomendado
			while (!$rs->EOF) 
			{
   				$vector[$row]=array("idblog"   => $rs->fields["idblog"],
									"idpersona" 	    => $rs->fields["idpersona"],
									"titulo"         => $rs->fields["titulo"],
									"detalle"         => $rs->fields["detalle"],
									"estado"         => $rs->fields["estado"],
									"fechareg"         => $rs->fields["fechareg"],
									"visitas"         => $rs->fields["visitas"],
									"interes"         => $rs->fields["interes"]);
									
                $row++;
				$rs->nextRow(); // Nota: nextRow() Esta situado al final				
         	}			
        	return $vector;			
		}else return null;
		$rs->close(); 
		$db->closeConnection();//opcional cierra el enlace de la Base de Datos              						
	}
	
	public function ListaPaginadaPublicos($vcli,$limitInf,$tampag)
	{    /////////////////////////////////////
		$vector=null;		
		$db= new DBManager();			
		$rs=$db->execute("SELECT * FROM blog WHERE titulo LIKE CONCAT('%','".$vcli."','%') and estado='PUBLICO' ORDER BY idblog desc limit ".$limitInf.",".$tampag.";");			
		$num_rows=$rs->getNumOfRows();
		if($num_rows>0)
		{	$row=0;
			$rs->firstRow(); // opcional, pero recomendado
			while (!$rs->EOF) 
			{    
   				$vector[$row]=array("idblog"   => $rs->fields["idblog"],
									"idpersona" 	    => $rs->fields["idpersona"],
									"titulo"         => $rs->fields["titulo"],
									"detalle"         => $rs->fields["detalle"],
									"estado"         => $rs->fields["estado"],
									"fechareg"         => $rs->fields["fechareg"],
									"visitas"         => $rs->fields["visitas"],
									"interes"         => $rs->fields["interes"]);
									
                $row++;
				$rs->nextRow(); // Nota: nextRow() Esta situado al final				
         	}			
        	return $vector;			
		}else return null;
		$rs->close(); 
		$db->closeConnection();//opcional cierra el enlace de la Base de Datos              						
	}
	
	public function ListarPorTitulo($v,$idp)
	{
		$vector=null;		
		$db= new DBManager();		
		$rs=$db->execute("select * from blog where titulo LIKE CONCAT('%','".$v."','%') and idpersona =".$idp." ");
		$num_rows=$rs->getNumOfRows();
		if($num_rows>0)
		{	$row=0;
			$rs->firstRow(); // opcional, pero recomendado
			while (!$rs->EOF) 
			{
   				$vector[$row]=array("idblog"   => $rs->fields["idblog"],
									"idpersona" 	    => $rs->fields["idpersona"],
									"titulo"         => $rs->fields["titulo"],
									"detalle"         => $rs->fields["detalle"],
									"estado"         => $rs->fields["estado"],
									"fechareg"         => $rs->fields["fechareg"],
									"visitas"         => $rs->fields["visitas"],
									"interes"         => $rs->fields["interes"]);
									
                $row++;
				$rs->nextRow(); // Nota: nextRow() Esta situado al final				
         	}			
        	return $vector;			
		}else return null;
		$rs->close(); 
		$db->closeConnection();//opcional cierra el enlace de la Base de Datos              						
	}
	
	public function ListaPaginada($vcli,$idp,$limitInf,$tampag)
	{    /////////////////////////////////////
		$vector=null;		
		$db= new DBManager();			
		$rs=$db->execute("SELECT * FROM blog WHERE titulo LIKE CONCAT('%','".$vcli."','%') and idpersona =".$idp."  ORDER BY idblog desc limit ".$limitInf.",".$tampag.";");			
		$num_rows=$rs->getNumOfRows();
		if($num_rows>0)
		{	$row=0;
			$rs->firstRow(); // opcional, pero recomendado
			while (!$rs->EOF) 
			{    
   				$vector[$row]=array("idblog"   => $rs->fields["idblog"],
									"idpersona" 	    => $rs->fields["idpersona"],
									"titulo"         => $rs->fields["titulo"],
									"detalle"         => $rs->fields["detalle"],
									"estado"         => $rs->fields["estado"],
									"fechareg"         => $rs->fields["fechareg"],
									"visitas"         => $rs->fields["visitas"],
									"interes"         => $rs->fields["interes"]);
									
                $row++;
				$rs->nextRow(); // Nota: nextRow() Esta situado al final				
         	}			
        	return $vector;			
		}else return null;
		$rs->close(); 
		$db->closeConnection();//opcional cierra el enlace de la Base de Datos              						
	}
		
	public function BuscarPorCodigo($vcod)
	{
		
		$resp=false;
		$num_rows=0;//numero de filas afectada por la consulta
		$db= new DBManager();
		$rs=$db->execute("select * from blog where(idblog = '".$vcod."')");
		$num_rows=$rs->getNumOfRows();
		if($num_rows>0)
		{	$resp=true;
			$rs->firstRow(); // opcional, pero recomendado
			while (!$rs->EOF) {
                // Coleccion de campos accesible mediante arrays asociativos también
	                  $this->idblog=$rs->fields["idblog"];
				      $this->idpersona=$rs->fields["idpersona"];	
					  $this->titulo=$rs->fields["titulo"];				
				      $this->detalle=$rs->fields["detalle"];			 
				      $this->estado=$rs->fields["estado"];
					  $this->fechareg=$rs->fields["fechareg"];
					  $this->visitas=$rs->fields["visitas"];
					  $this->interes=$rs->fields["interes"];
 				$rs->nextRow(); // Nota: nextRow() Esta situado al final				
        	}			
		}
		$rs->close(); 
		$db->closeConnection();//opcional cierra el enlace de la Base de Datos              
		return $resp;							
	}
	
	public function Verificar($vcod,$idpersona)
	{
		
		$resp=false;
		$num_rows=0;//numero de filas afectada por la consulta
		$db= new DBManager();
		$rs=$db->execute("select * from blog where(idblog = '".$vcod."' and idpersona=".$idpersona.")");
		$num_rows=$rs->getNumOfRows();
		if($num_rows>0)
		{	$resp=true;
			$rs->firstRow(); // opcional, pero recomendado
			while (!$rs->EOF) {
                // Coleccion de campos accesible mediante arrays asociativos también
	                  $this->idblog=$rs->fields["idblog"];
				      $this->idpersona=$rs->fields["idpersona"];	
					  $this->titulo=$rs->fields["titulo"];				
				      $this->detalle=$rs->fields["detalle"];			 
				      $this->estado=$rs->fields["estado"];
					  $this->fechareg=$rs->fields["fechareg"];
					  $this->visitas=$rs->fields["visitas"];
					  $this->interes=$rs->fields["interes"];
 				$rs->nextRow(); // Nota: nextRow() Esta situado al final				
        	}			
		}
		$rs->close(); 
		$db->closeConnection();//opcional cierra el enlace de la Base de Datos              
		return $resp;							
	}
	
	
	public function Actualizar($vi,$ti,$de,$es)			
	{
		$resp=false;		
		$db= new DBManager();	
		$vf = implode("-",array_reverse(explode("-",$vf)));	
		if($db->_execute("update blog set titulo = '".$ti."',detalle = '".$de."',estado='".$es."' where (idblog='".$vi."') "))//si es exitosa la consulta			   
		{
		  $resp=true; 
		}	
		return $resp;
	}
	
	public function ActualizarVisitas($vid,$visitas)			
	{
		$resp=false;		
		$db= new DBManager();
		if($db->_execute("update blog set visitas = ".$visitas." where (idblog='".$vid."') "))//si es exitosa la consulta			   
		{
		  $resp=true; 
		}	
		return $resp;
	}
	
	public function ActualizarInteres($vi,$es)			
	{
		$resp=false;		
		$db= new DBManager();
		if($db->_execute("update blog set interes = ".$es." where (idblog='".$vi."') "))//si es exitosa la consulta			   
		{
		  $resp=true; 
		}	
		return $resp;
	}
	
	////////////////////////////////*/
	public function ListaTotal()
	{
		$vector=null;
		$db= new DBManager();		
		$rs=$db->execute("select * from blog order by idblog desc");
		$num_rows=$rs->getNumOfRows();
		if($num_rows>0)
		{	$row=0;
			$rs->firstRow(); // opcional, pero recomendado
			while (!$rs->EOF) {
                $vector[$row]=array("idblog"   => $rs->fields["idblog"],
									"idpersona" 	    => $rs->fields["idpersona"],
									"titulo"         => $rs->fields["titulo"],
									"detalle"         => $rs->fields["detalle"],
									"estado"         => $rs->fields["estado"],
									"fechareg"         => $rs->fields["fechareg"],
									"visitas"         => $rs->fields["visitas"],
									"interes"         => $rs->fields["interes"]);
									
                $row++;
				$rs->nextRow(); // Nota: nextRow() Esta situado al final				
        	}			
        	return $vector;			
		}else return null;
		
		$rs->close(); 
		$db->closeConnection();//opcional cierra el enlace de la Base de Datos              						
	}	
	
	public function ListaUltimos($idp)
	{
		$vector=null;
		$db= new DBManager();		
		$rs=$db->execute("select * from blog where idpersona=".$idp." order by idblog desc limit 5");
		$num_rows=$rs->getNumOfRows();
		if($num_rows>0)
		{	$row=0;
			$rs->firstRow(); // opcional, pero recomendado
			while (!$rs->EOF) {
                $vector[$row]=array("idblog"   => $rs->fields["idblog"],
									"idpersona" 	    => $rs->fields["idpersona"],
									"titulo"         => $rs->fields["titulo"],
									"detalle"         => $rs->fields["detalle"],
									"estado"         => $rs->fields["estado"],
									"fechareg"         => $rs->fields["fechareg"],
									"visitas"         => $rs->fields["visitas"],
									"interes"         => $rs->fields["interes"]);
									
                $row++;
				$rs->nextRow(); // Nota: nextRow() Esta situado al final				
        	}			
        	return $vector;			
		}else return null;
		
		$rs->close(); 
		$db->closeConnection();//opcional cierra el enlace de la Base de Datos              						
	}	

	//////////////////////////////
	public function Eliminar($vcod)
	{
		$resp=false;		
		$db= new DBManager();		
		if($db->_execute("DELETE FROM blog WHERE (idblog=".$vcod.");"))   
		{
			$resp=true;
		}
		return $resp;		
	}	
	////////////////////////////////////////							
	
	public function getIdblog(){ return $this->idblog;}
	public function getIdpersona(){ return $this->idpersona;}
	public function getTitulo(){ return $this->titulo;}
	public function getDetalle(){ return $this->detalle;}
	public function getEstado(){ return $this->estado;}
	public function getFechareg(){ return $this->fechareg;}
	public function getVisitas(){ return $this->visitas;}
	public function getInteres(){ return $this->interes;}
}
?>
