<?php
/*
	Clase SuperSections para las secciones de la web
	@version 1.0
*/
//Esta clase utiliza el compresor/minificador
use MatthiasMullie\Minify;

class SuperMinify{
	//TODO => Si se modifica la sesión hay que limpiar los "media"
	public static function compress($listFiles = array(), $fileName = ''){

		require_once _WS_LIB_DIR_ . 'minify/src/Minify.php';
		require_once _WS_LIB_DIR_ . 'minify/src/CSS.php';
		require_once _WS_LIB_DIR_ . 'minify/src/JS.php';
		require_once _WS_LIB_DIR_ . 'minify/src/Exception.php';
		require_once _WS_LIB_DIR_ . 'minify/src/Exceptions/BasicException.php';
		require_once _WS_LIB_DIR_ . 'minify/src/Exceptions/FileImportException.php';
		require_once _WS_LIB_DIR_ . 'minify/src/Exceptions/IOException.php';
		require_once _WS_LIB_DIR_ . 'converter/src/ConverterInterface.php';
		require_once _WS_LIB_DIR_ . 'converter/src/Converter.php';
		
		
		//Vamos a convertir los ficheros:
		$minifier = NULL;
		$extension = pathinfo($fileName, PATHINFO_EXTENSION);
		$finalPath = _WS_DYNAMIC_DIR_ . 'media/' . $extension . '/';
		if ($extextension = 'js'){
			$minifier = new Minify\JS();
		}else{
			$minifier = new Minify\CSS();
		}
		foreach($listFiles->list as $clave => $filetime){
			//$minifier->add(_WS_DIR_ . _WS_THEMES_DIR_ . _WS_THEME_DIR_ . _WS_THEME_HTML_DIR_ . $clave);
			//Pedro 04/Mayo/2020 ==> El fichero puede estar en cualquier sitio así que vamos a obtener su ruta del tema:
			$path = Theme::findFile(basename($clave));
			$minifier->add($path);
		}
		
		$resultado = $minifier->minify();
		
		$resultado = static::fixWSPaths($resultado);
		if ($file = fopen($finalPath . $fileName, 'w')){
			fwrite($file, $imports . $resultado);
			fclose($file);
		}
	}
}
