<?php
	/*
	 *
	 * 2003 - 2022 @ Yal Publicidad - yLib
	 * www.yalpublicidad.com
	 * online@yalpublicidad.com
	 *
	 * @sisx.ylib
	 *
	 */
	
	/* Autorizo acceso */
	//defined('YPANEL_INI') or die( 'No dispones de acceso' );
	
	//* defino autorizacion de acceso al sistema web
	defined('WY_INI_WEBY') or define( "WY_INI_WEBY", true ); //define( "WY_INI_WEBY", true );
	//* defino autorizacion de acceso al sistema del panel
	defined('YPANEL_INI') or define("YPANEL_INI", true);
	//* Definiciones por defecto
	//* separador
	define("_DS",DIRECTORY_SEPARATOR);
	//* defino camino al sistema web
	define("_PATHW",dirname(__FILE__));
	//* directorio de sistema del panel de administracion
	define("_PATHP", dirname(__FILE__) . _DS . 'ypanel');
	
	/*function captcha($obtener=false){
		return ylib::captcha($obtener);
	}

	function valCaptcha($vCaptcha=NULL){
		return ylib::validar_captcha($vCaptcha);
	}*/

	function importar($ruta=NULL, $ext=NULL){
		ylib::importar($ruta,$ext);
	}

	function paquete($rPaquete=NULL){
		ylib::paquete($rPaquete);
	}

	function paquete_panel($rPaquete=NULL){
		ylib::paquete_panel($rPaquete);
	}

	class ylib
	{
		private static $rutaPaquete;	// ruta del paquete del sistema web
		private static $rutaPanel;	// ruta del panel
		private static $clCaptcha	= array();
		
		/* captcha() : Creo codigo captcha
		 * @param  bool  $obtener    true si desea obtener el valor captcha almacenado
		*/
		public static function captcha($obtener=false){
			$claveSession	= ( !empty( self::sesion('cCaptcha') ) ) ? self::sesion('cCaptcha') : self::sesion('cCaptcha', date('YmdHis') . rand(10,999));
			
			if($obtener==true){
				return (!empty(self::sesion($claveSession))) ? self::sesion($claveSession) : date('YmdHis') . rand(10,999);
			}
			
			return self::sesion($claveSession, md5(rand(10000,999999)));
			/*if(!isset($_SESSION)) session_start();
			$claveSession	= (isset($_SESSION['cCaptcha'])) ? $_SESSION['cCaptcha'] : $_SESSION['cCaptcha'] = date('YmdHis') . rand(10,999);
			if($obtener==true){
				return (isset($_SESSION[$claveSession])) ? $_SESSION[$claveSession] : date('YmdHis') . rand(10,999);
			}
			return $_SESSION[$claveSession] = md5(rand(10000,999999));*/
		}
		
		/* importar() : importa ficheros al sistema 
		 * @param  str  $rPaquete    ruta del paquete
		*/
		public static function importar($ruta=NULL, $ext=NULL){
			if(empty($ruta)) return false;
			// determino extension
			$ext	= (empty($ext)) ? '.php' : '.' . $ext;
			// creo ruta
			$ruta	= explode(".", $ruta);
			$rutax	= '';
			for($i=0;$i<count($ruta);$i++){
				// si encuentro 'sisx' en el index 0 reempazo por ruta del paquete del sistema ej. Webyplus
				if($ruta[0]=='sisx') {
					$ruta[0] = substr(self::$rutaPaquete,0,-1);
				}elseif($ruta[0]=='ypanelx') { // parametro adicional para incluir desde yPanel
					$ruta[0] = substr(self::$rutaPanel,0,-1);
				}else{
					$ruta[0] = self::$rutaPanel . $ruta[0];
				}
				
				$rutax .= $ruta[$i] . '/';
			}
			$rutax	= rtrim($rutax,'/');
			$path	= $rutax . $ext;
			// cargo fichero / leo ruta de archivo
			if(is_file($path)){
				include_once($path);
			}
			return;
		}
		
		/* paquete() : Cargo ruta del paquete sistema web ej. Webyplus 
		 * @param  str  $rPaquete    ruta del paquete
		*/
		public static function paquete($rPaquete=NULL){
			if(empty($rPaquete)) return false;
			self::$rutaPaquete = $rPaquete;
		}
		
		/* paquete() : Cargo ruta del paquete del panel ej. yPanel 
		 * @param  str  $rPaquete    ruta del paquete
		*/
		public static function paquete_panel($rPaquete=NULL){
			if(empty($rPaquete)) return false;
			self::$rutaPanel = $rPaquete;
		}
		
		/* sesion() : Creo/leo sesion interna
		 * @param  string  $nombre    nombre de la sesion que se creara/leera
		*/
		public static function sesion($nombre=NULL, $valor=NULL){
			if(empty($nombre)) return false;
			// verifico si existe tabla
			$tabla	= "ysesiones";
			$etabla	= _mysql_query("SHOW TABLES LIKE '$tabla'");
			// creo tabla si no existe ALTER TABLE `mt_videos`  ADD `prueba` INT(11) NOT NULL AUTO_INCREMENT  AFTER `publicado`,  ADD   PRIMARY KEY  (`prueba`);
			if($etabla){
				_mysql_query("CREATE TABLE IF NOT EXISTS `$tabla` (`id` int(11) NOT NULL AUTO_INCREMENT PRIMARY KEY, `nombre` varchar(100) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '', `valor` varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL DEFAULT '', `fecha` DATETIME NOT NULL DEFAULT '1000-01-01 00:00:00' ) ENGINE=InnoDB  DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;") or die(_mysql_error());
			}
			// si valor es diferente a null guardo sesion
			if(!empty($valor)){
				// verifico si la sesion existe
				if(_mysql_existe($tabla,"*","nombre='$nombre'")){
					//modifico dato de sesion
					if(_mysql_modificar_reg($tabla, "nombre='$nombre'", "valor='$valor', fecha='" . date('Y-m-d H:i:s') . "'")){
						return $valor;
					} 
					return false;
				}else{
					//inserto dato de sesion
					if(_mysql_insertar_reg($tabla, "nombre, valor, fecha", "'$nombre', '$valor', '" . date('Y-m-d H:i:s') . "'")){
						return $valor;
					} 
					return false;
				}
			}
			// leo sesion
			return _mysql_obtener_reg($tabla, "nombre='$nombre'", "valor");
		}
		
		/* validar_captcha() : Valida el captcha almacenado 
		 * @param  str  $vCaptcha    valor captcha que se va a comparar
		*/
		public static function validar_captcha($vCaptcha=NULL){
			if(!isset($_SESSION)) session_start();
			//$claveSession	= (isset($_SESSION['cCaptcha'])) ? $_SESSION['cCaptcha'] : date('YmdHis') . rand(10,999);
			//return (isset($_SESSION[$claveSession]) && $_SESSION[$claveSession]==$vCaptcha) ? true : false;
			return (self::captcha(true) == $vCaptcha) ? true : false;
		}
		
		
	}
	
	
?>