<?php
//---------------------------------------------------------------------------------
//	02/Octubre/2018 ==> Este fichero es el encargado de configurar las secciones
//
//
//---------------------------------------------------------------------------------

$seccion_error = 'error';

//Obtenemos la url
$real_url = 'http' . ((Shop::$configuracion->https_on) ? 's' : '') . '://' . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'];
$url_base = Shop::$configuracion->url;

$url = str_replace($url_base, '', $real_url);
//Si no tenemos parámetros, creamos unos nuevos
Sections::checkParams();
//Vamos a quitar lo que haya después de la interrogación:
$interrogacion = strpos($url, '?');
if ($interrogacion !== false){
	//Quitamos de la URL la interrogación y lo que hay a la derecha:
	$url = substr($url, 0, $interrogacion);
}

	/*var_dump($_POST);
	echo("\n");
	var_dump($_GET);*/
	//MUY IMPORTANTE:
	//Cuando trabajamos con API-REST necesitamos el usuario y contraseña de la consulta para asegurarnos de que tiene permisos:
	$user = Getter::get('user', NULL);
	$password = Getter::get('password', NULL);
	$action = Getter::get('action', '');
	$condition = Getter::get('condition', '');
	$view = Getter::get('view', '');
	//traza:
	/*echo("
		User = {$user}
		Password = {$password}
		Acción = {$action}
		Condición = {$condition}
		Vista = {$view}
	");*/
	//Vamos a tratar de hacer login:
		//pw de arminet para test:
		//52e936dae1405ff2188bfeed77cd59d9b8a5da81
	//Por ahora hacemos la select de esta manera, después usaremos una clase para esto
	$sentencia_sql = 'SELECT ID FROM `api_rest_credentials` WHERE `user` = \'' . $user . '\' AND `password` = \'' . $password . '\';';
	$bd = new BaseDatos();
	if ($action == ''){
		Sections::$current_section = 'error_login';
		Sections::setParam('cod_error', 1);
	}else if (! ((strtoupper($action) == 'SELECT' ) || (strtoupper($action) == 'INSERT' ) || (strtoupper($action) == 'UPDATE' ) || (strtoupper($action) == 'DELETE' )) ){
		Sections::$current_section = 'error_login';
		Sections::setParam('cod_error', 2);
	}else if ($condition == ''){
		Sections::$current_section = 'error_login';
		Sections::setParam('cod_error', 3);
	}else if ($view == ''){
		Sections::$current_section = 'error_login';
		Sections::setParam('cod_error', 4);
	}else if ( ($bd->isConectado()) && ($bd->setConsultaSQL($sentencia_sql)) && ($fila = $bd->getFila()) && ($fila['ID'] > 0) ) {	//Como PHP hace la consulta secuencial, lo hacemos en un solo IF
		//Vamos a insertar en la sección los parámetros, no debemos usar el get en las secciones
		Sections::setParam('action', $action);
		Sections::setParam('condition', $condition);
		Sections::setParam('view', $view);
		//Vamos a componer las secciones
		if ( ($url == '') || ($url == '/')){
			//Estamos en el home:
			Sections::$current_section = 'home';
			
		}else{
			//Partimos de una sección erronea
			Sections::$current_section = $seccion_error;
			//Hay que limpiar la url para quitar la / inicial y final si la tuviese:
			if (substr($url, 0, 1) == '/'){
				$url = substr($url, 1, strlen($url) - 1);
			}
			if (substr($url, -1) == '/'){
				$url = substr($url, 0, strlen($url) - 1);
			}
			
			//Vamos a componer la ruta:
			Sections::extractUrlPart($url);
			//Ahora tengo la ruta a la inversa, la invertimos en un nuevo array para tratarla
			$lista = Sections::$path;
			//Pedro 29/Mayo/2019 ==> OJO, Cuando sólo hay un elemento en la lista, puede que ya tenga paginación. Además inicializamos la sección siempre aquí
			Sections::$current_section = $seccion_actual = $lista[0];
			if (count($lista) == 1){
				$valores = Sections::getValueAndPage($lista[0]);
				Sections::$current_section =  $seccion_actual = $valores[0];
				if (isset($valores[1])){
					Sections::setParam('pagina', $valores[1]);
				}
			}
			//Según la lista, vamos a ver qué hacemos:
			switch($seccion_actual){
				case 'home':
					Sections::$current_section = 'home';
					//var_dump($lista);
				break;
				case 'articulos':
					Sections::$current_section = 'articulos';
					//var_dump($lista);
				break;
			}
			
		}
	}