<?php
includeCommonClass('formulario');
includeCommonClass('funciones');
includeCommonClass('categoria');

/**
 * Clase que representa a los articulos
 * @author Luis Poggi
 * @package svcms2
 * @subpackage elementos
 * @todo Crear CRUD y utilizar la clase para administraci&oacute;n del articulo
 */
class articulo{
	/**
	 * Enter description here ...
	 * @var unknown_type
	 * @access private
	 */
	var $activos;
	/**
	 * Enter description here ...
	 * @var unknown_type
	 * @access private
	 */
	var $funciones;
	/**
	 * Enter description here ...
	 * @var unknown_type
	 * @access private
	 */
	var $rutaBase;
	/**
	 * Identificador del articulo
	 * @var String
	 */
	var $id;
	/**
	 * Titulo del articulo
	 * @var String
	 */
	var $titulo;
	/**
	 * Link al articulo
	 * @var String
	 */
	var $link;
	/**
	 * Resumen del articulo (512 caracteres)
	 * @var String
	 */
	var $resumen;
	/**
	 * Resumen completo del articulo
	 * @var String
	 */
	var $resumenCompleto;
	/**
	 * Nonbre de la imagen
	 * @var String
	 */
	var $imagen;
	/**
	 * Fuente de la imagen ya procesada
	 * @var String
	 */
	var $srcImg;
	/**
	 * Ultima fecha de modificacion del articulo
	 * @var DateTime
	 */
	var $fecha_mod;

	function __construct($id="",$titulo="",$resumen="",$imagen="",$fecha_mod="",$rutaBase=""){
		$this->funciones = new funciones();
		$this->rutaBase = $rutaBase;
		$this->id = $id;
		$this->titulo = $titulo;
		$this->link = "/articulo-".$this->funciones->slugify(utf8_encode($this->titulo));
		$this->resumen = utf8_encode(substr($resumen,0,512));
		$this->resumenCompleto = utf8_encode($resumen);
		$this->imagen = $imagen;
		$this->srcImg = $this->rutaBase."/contenido/turn/".utf8_encode($this->imagen);
		$this->fecha_mod = $fecha_mod;
		$this->activos=1;
	}

	/**
	 *
	 * @param unknown_type $ruta
	 * @access private
	 */
	function setRutaBase($ruta){
		$this->rutaBase = $ruta;
	}

	/**
	 * Permite obtener los articulos dadas las condiciones y ordenamiento
	 * @param String $condiciones
	 * @param String $orderBy
	 * @param Number $maxResults
	 */
	function obtenerArticulos($condiciones="", $orderBy="", $maxResults=0, $lan = 'es') {
		$query = " select id,titulo,imagen,fecha_mod,texto,textosimple,date_format(fecha_mod,'%d-%c-%Y') as fecha, date_format(fecha_mod,'%h:%i %p') as hora, resumen,cat_id,cat_nivel,meta_desc from articulo ";
		if ($this->activos==1){
			$query.= " where estatus=1 ";
			if ((isset($condiciones)) && $condiciones!=''){
				$query.= " and ".$condiciones;
			}
		}else{
			if ((isset($condiciones)) && $condiciones!=''){
				$query.= " where ".$condiciones;
			}
		}

		if ((isset($orderBy)) && $orderBy!=''){
			$query.= " order by ".$orderBy;
		}else{
			$query.= " order by orden, titulo, id ";
		}
		return $this->obtenerArticulosByQuery($query, $maxResults, $lan);
	}

	/**
	 * Permite obtener los articulos dado un query especificado
	 * @param String $query
	 * @param Number $maxResults
	 * @access private
	 */
	function obtenerArticulosByQuery($query, $maxResults, $lan = 'es'){
		$ConnArt = new formulario('db');
		$items = $ConnArt->estructura_db($query);
		if(count($items)>0){
			$i=0;

			$catId = $items[$i]['cat_id'];
			$catNivel = $items[$i]['cat_nivel'];
			if (isset($catId)){
				$categoria = new categoria();
				$datosCategoria = $categoria->obtenerCategoria($catId,$catNivel);
				$datos['categoria'] = $datosCategoria;
			}
			foreach($items as $item){
				$datos[$i]['id'] = $item['id'];
				
				/*
					Creador: Jesús Rafael Cova Huerta.
					
					Descripci&oacute;n: se utiliza para conocer la categoria del articulo.
				*/
					
					$s = "SELECT nombre FROM cont_categoria WHERE id = '".$item['cat_id']."'";
				
					$q = mysql_query ($s);
				
					$registro = mysql_fetch_array ($q);
					
					if ($registro['nombre'] == "") {
						$s = "SELECT nombre FROM cont_subcategoria WHERE id = '".$item['cat_id']."'";
				
						$q = mysql_query ($s);
				
						$registro = mysql_fetch_array ($q);
					}
					
					if ($registro['nombre'] == "") {
						$s = "SELECT nombre FROM cont_sub_subcategoria WHERE id = '".$item['cat_id']."'";
				
						$q = mysql_query ($s);
				
						$registro = mysql_fetch_array ($q);
					}
					
					if (mysql_num_rows(mysql_query("SHOW TABLES LIKE '"."articulos_valoraciones"."'")) == 1) {
						/*
						Creador: Jesús Rafae Cova Huerta.
						
						Descripci&oacute;n: se utiliza para conocer las valoraciones del articulo.
						*/
						
							$s_valoraciones = "SELECT * FROM articulos_valoraciones WHERE articulo = '".$item['id']."'";
					
							$q_valoraciones = mysql_query ($s_valoraciones);
						
							$registro_valoraciones = mysql_fetch_array ($q_valoraciones);
							
							$datos[$i]['totalpositivo'] = $registro_valoraciones['valoracion_positiva'];
								
							$datos[$i]['totalnegativo'] = $registro_valoraciones['valoracion_negativa'];
							
						//////////////////
					}
					
					/*
					Creador: Jesús Rafael Cova Huerta.
					
					Descripci&oacute;n: se utiliza para conocer los archivos adjuntos.
					*/
					
						$s_adjuntos = mysql_query("SELECT * FROM cont_adjunto WHERE art_id = '".$datos[$i]['id']."'");
						
						$j = 0;
						
						while($r_adjunto = mysql_fetch_array($s_adjuntos)) {
							if($r_adjunto['titulo'] != "") {
								if($j == 0) {
									$datos[$i]['titulo_adjuntos'] = $r_adjunto['titulo'];
									
									$datos[$i]['ruta_adjuntos'] = $this->rutaBase."/contenido/doc/".$r_adjunto['ruta'];
								} else {
									$datos[$i]['titulo_adjuntos'] = $datos[$i]['titulo_adjuntos']."-".$r_adjunto['titulo'];
									
									$datos[$i]['ruta_adjuntos'] = $datos[$i]['ruta_adjuntos']."-". $this->rutaBase ."/contenido/doc/".$r_adjunto['ruta'];;
								}
							
								$j = $j + 1;
							}
						}
						
					/////////////////
					
					$datos[$i]['categoria'] = $registro['nombre'];
					
					$datos[$i]['cat_id'] = $item['cat_id'];
					
					$datos[$i]['cat_nivel'] = $item['cat_nivel'];
					
					$s = "SELECT * FROM preferencias";
				
					$q = mysql_query ($s);
				
					$registro = mysql_fetch_array ($q);
					
					$datos[$i]['url_empresa'] = $registro['url_empresa'];
					
				////////////////////////
				// print_r(utf8_encode($item['titulo'].'<br />'));
				$datos[$i]['link'] = "/articulo-".$this->funciones->slugify(utf8_encode($item['titulo']));
				$datos[$i]['nombre'] = utf8_encode($item['titulo']);

				$date = new DateTime(utf8_encode($item['fecha_mod']));
				$datos[$i]['fecha_mod'] = $this->formatoDeFecha($item['fecha_mod'], false, $lan);//$item['fecha_mod'];//$date->format('d \d\e M \d\e Y'); //g:i a
				$datos[$i]['texto'] = utf8_encode($item['texto']);
				$datos[$i]['textosimple'] = utf8_encode($item['textosimple']);
				$datos[$i]['fecha'] = utf8_encode($item['fecha']);
				$datos[$i]['hora'] = utf8_encode($item['hora']);
				$datos[$i]['meta_desc'] = utf8_encode($item['meta_desc']);
				$datos[$i]['resumen'] = utf8_encode(substr($item['resumen'],0,512));
				$datos[$i]['srcImg'] = $this->rutaBase."/contenido/turn/".utf8_encode($item['imagen']);
				$datos[$i]['srcImgMed'] = $this->rutaBase."/contenido/med/".utf8_encode($item['imagen']);
				$datos[$i]['srcImgOrig'] = $this->rutaBase."/contenido/orig/".utf8_encode($item['imagen']);
				$datos[$i]['articulo'] = new articulo($item['id'],$item['titulo'],$item['resumen'],$item['imagen'],$item['fecha_mod'],$this->rutaBase);
				$i=$i+1;
				if ($maxResults!=0 && $maxResults<=$i){break;}
			}
		}
		$ConnArt->cerrar();
		return $datos;
	}
    
    /*
    Funcion para formatear fecha corta
    */
    
    function formatoDeFecha($fecha,$hora,$idioma){

        $fecha_completa = '';
        
        $arrayDate = explode("-", $fecha);
        
        $hora = '00';
        $minuto = '00';
        $meridiano = 'pm';
        
        $meses = array(
            'Ene',
            'Feb',
            'Mar',
            'Abr',
            'May',
            'Jun',
            'Jul',
            'Ago',
            'Sep',
            'Oct',
            'Nov',
            'Dic'
        );
    
        if($idioma == 'es'){
            $fecha_completa = substr($arrayDate[2],0,2).' de '.$meses[intval($arrayDate[1])-1].' de '.$arrayDate[0];
        }else if($idioma == 'en'){
            $date = new DateTime(utf8_encode($fecha));
            $fecha_completa = $date->format('d \d\e M \d\e Y'); //g:i a
        }
        
        return $fecha_completa;
    }
    
    

}

?>