<?php
//---------------------------------------------------------------------------------------------------------
// 08/Noviembre/2018 ==> Módulo encargado de mostrar el recaptcha
//---------------------------------------------------------------------------------------------------------
//Los módulos heredan los atributos de la clase Module:
/*	$templateFile = '';
	$loadedModules = array();
	$modulesList = array();
	$options = NULL;
	$data_update = '';
*/

class Grecaptcha extends Module{
	private static $api_key = '';
	private static $secret_key = '';
	private static $api_url = 'https://www.google.com/recaptcha/api.js';
	private static $url_verify = 'https://www.google.com/recaptcha/api/siteverify';
	protected static $actionList = array('grecaptcha');

	//Función que instala el módulo
	public function install(){
		
	}
	
	//Función que desinstala el módulo
	public function uninstall(){
		
	}
	
	
	//constructor:
	public function __construct() {
		self::$api_url .= '?render=' . self::$api_key;
	}
	
	//Aquí vienen ahora las funciones que se encargan de añadir funciones a los eventos de webStore
	
	
	
	//Esta función es la encargada de ejecutar del módulo lo que sea necesario:
	public function execute(){
		$opciones_recibidas = new ObOptions($this->getModuleOptions());	//Recogemos las opciones que nos puedan haber mandado
		$hide_badge = $opciones_recibidas->getDefaultValue('hide_badge', false);
		//Dónde se ejecute el recaptcha hay que meter el controlador
		Module::insertActionController('grecaptcha', 'grecaptcha');
		$options = new stdClass();
		$options->api_key = self::$api_key;
		$options->api_url = self::$api_url;
		$options->hide_badge = $hide_badge;

		$this->setViewOptions($options);
	}
	
	public static function check($string){
		$return = false;
		/*echo("<pre>");
		var_dump($string);
		echo("</pre>");*/
		//$secretKey = '6Le0X6oUAAAAAI3UTNrT_UuSrdK-B3w5JqWP-ibG';
		$ip = $_SERVER['REMOTE_ADDR'];
		//$url = 'https://www.google.com/recaptcha/api/siteverify';
		$ch = curl_init();
		curl_setopt_array($ch, [
			CURLOPT_URL => self::$url_verify,
			CURLOPT_POST => true,
			CURLOPT_POSTFIELDS => [
				'secret' => self::$secret_key,
				'response' => $string,
				'remoteip' => $ip
			],
			CURLOPT_RETURNTRANSFER => true
		]);
		$output = curl_exec($ch);
		curl_close($ch);
		$responseKeys = json_decode($output);
		//-------------------------------
		//************PRUEBAS************
		//-------------------------------
		//$responseKeys->success = false;
		//-------------------------------
		//************PRUEBAS************
		//-------------------------------
		/*
		Email::sendMail(array(
			//Parámetros básicos
			'destinatario' => 'pedro@arminet.es,Esto es una prueba',
			'asunto' => 'valor respuesta',
			'contenido' => 'La respuesta es: ' . (($responseKeys->success) ? 'correcto' : 'incorrecto'),
			'templateFile' => 'email.php'
		));
		*/
		if($responseKeys->success) {
			$return = true;
		}
		return($return);
	}
}