<?php 

class UrlAmigable extends AppObjeto{


	protected static $_aliasTabla = 'a';
	protected static $_nombreTabla = 'url_amigable';
	protected static $_campoPK = 'id_url_amigable';
	
	public $url_real;
	public $url_amigable;
	public $id_relacionado;
	public $tipo;
	public $meta_title;
	public $meta_keywords;
	public $meta_description;
	public $buscable;
	public $busqueda_generada;
	public $modificada;
	
	public static $tipos = array('Cliente'=> 1);
	
	
	public static function getRequest(){
		
		$url = new UrlAmigable(1);
		
		$request = new Zend_Controller_Request_Http();
		
		$inicial = $_SERVER['PHP_SELF'];
		$largo = strlen($inicial)-17;
		$base = substr($inicial, 0, $largo);
		
		if(strpos($_SERVER['REQUEST_URI'], 'index.php')!== false){
			return $request;
		}
		
		
		$amigable = substr($_SERVER['REQUEST_URI'], $largo);
		$parametros = '';
		$posicion = strpos($base, '?');
		
		
		if(! $posicion === false){
			$parametros = substr($amigable, $posicion);
			$amigable = substr($amigable, 0, $posicion);
		}
		
		if(substr($amigable, 0, 8) == '/imagen/'){
			$datos_imagen = substr($amigable, 8);
			$array_imagen = explode('/', $datos_imagen);
			$destino = $inicial.'/imagenes/mostrar/imagen/'.$array_imagen[1].'/estilo/'.$array_imagen[0];
			
			
		}else{
		
		
			$url = self::loadByUrlAmigable($amigable);
			
			if($url === false){
				$destino = $inicial.$amigable;
				
				
			}else{
				
				$destino = $inicial.$url;
				
				
			}
		}
		
		$request->setRequestUri($destino);
		//$request->setRequestUri($url->url_real);
		return $request;
	}
	public static function loadByUrlAmigable($amigable){
		$inicial = $amigable;
		$terfimando = false;
		$ultima = 0;
		$parametros ='';
		while (!$terfimando){
			
			$select = self::camposConsulta();
			$select->where('a.url_amigable=?', $amigable);
			
			$resultado = self::fetchAll($select);
			
			if(count($resultado) == 1){
				$resultado = $resultado->toArray();
				return $resultado[0]['url_real'].$parametros;
			}
			$posicion = strripos($amigable, '/');
			
			if($posicion===false){
				$terfimando = true;
			}else{
				$amigable = substr($amigable, 0, $posicion);
				$parametros = substr($inicial, $posicion);
				
			}
			
		}
		return false;
		
		
		
		
	}
	
	
}