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


class categoria{
	var $funciones;
	var $rutaBase;
	var $nivel;

	function __construct (){
		$this->activos=1;
		$this->nivel=1;
		$this->funciones = new funciones();
	}

	function setRutaBase($ruta){
		$this->rutaBase = $ruta;
	}

	function obtenerCategoria($catId, $catNivel){
		$condiciones = " id = ".$catId;
		$categorias = $this->obtenerCategorias($condiciones, $catNivel);
		if (count($categorias)>0){
			$categoriaRetorno = $categorias[0];
			$catHijas = $this->obtenerSubCategorias($catId, $catNivel);
			if  (isset($catHijas)) {
				$categoriaRetorno['catHijas'] = count($catHijas)-1;
			}
			else{ $categoriaRetorno['catHijas'] = 0;
			}
			return $categoriaRetorno;
		}
	}

	function obtenerCategorias($condiciones="", $nivel=1, $orderBy="", $maxResults=0){
		$query = " select id, nombre, descrip, imagen, orden, users from ";
		if (isset($nivel)){
			if ($nivel == 1){
				$query.= " cont_categoria ";
			}else if ($nivel == 2){
				$query.= " cont_subcategoria ";
			}else if ($nivel == 3){
				$query.= " cont_sub_subcategoria ";
			}else{
				return;
			}
		}else{
			$query.= " cont_categoria ";
		}
		if ((isset($condiciones)) && $condiciones!=''){
			$query.= " where ".$condiciones;
		}

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

	function obtenerCategoriasByQuery($query, $maxResults){
		$ConnArt = new formulario('db');
		$items = $ConnArt->estructura_db($query);
		if(count($items)>0){
			$i=0;
                        $nivelActual = $this->nivel;
			foreach($items as $item){

				$catHijas = $this->obtenerSubCategorias($item['id'], $nivelActual);
				if  (isset($catHijas)) {
					$datos[$i]['link'] = "/SV-listado-categorias-art.php?nivel=".$nivelActual."&catid=".$item['id'];
				}else{
					$datos[$i]['link'] = "/SV-listado-articulos.php?nivel=".$nivelActual."&catid=".$item['id'];
				}

				$datos[$i]['id'] = $item['id'];
				$datos[$i]['nombre'] = utf8_encode($item['nombre']);
				$datos[$i]['descrip'] = utf8_encode($item['descrip']);
				$datos[$i]['resumen'] = utf8_encode($item['descrip']);
				$datos[$i]['imagen'] = $item['imagen'];
				$datos[$i]['orden'] = $item['orden'];
				$datos[$i]['users'] = $item['users'];
				$datos[$i]['srcImg'] = $this->rutaBase."/categoria/turn/".utf8_encode($item['imagen']);
				$datos[$i]['srcImgMed'] = $this->rutaBase."/categoria/med/".utf8_encode($item['imagen']);
				$datos[$i]['srcImgOrig'] = $this->rutaBase."/categoria/orig/".utf8_encode($item['imagen']);
				$i=$i+1;
				if ($maxResults!=0 && $maxResults<=$i){
					break;
				}
			}
		}
		$ConnArt->cerrar();
		return $datos;
	}

	function obtenerSubCategorias($catId, $nivel=1){
		if (isset($nivel)){
			if ($nivel == 1){
				$condiciones.= " cat_id=".$catId;
			}else if ($nivel == 2){
				$condiciones.= " sub_id=".$catId;
			}else{
				return;
			}
		}else{
			return;
		}
		$datos = $this->obtenerCategorias($condiciones, $nivel+1);
		if (empty($datos)) return;
		$categoria = new categoria();
		$datosCategoria = $categoria->obtenerCategoria($catId,$catNivel);
		$datos['categoria'] = $datosCategoria;
		return $datos;
	}

}

?>