. */ class Configuracion { private $configuracion = 'inc/configuracion.inc'; private $confNueva = 'inc/configuracion.new'; private $confAnterior = 'inc/configuracion.ant'; private $datosConf; //Campos del fichero de configuración que se van a editar. private $lista = ['SERVIDOR', 'PUERTO', 'BASEDATOS', 'BASEDATOSTEST', 'USUARIO', 'CLAVE', 'CENTRO', 'NUMFILAS', 'ESTILO', 'PLANTILLA', 'COLORLAT', 'COLORFON', 'MYSQLDUMP', 'GZIP', 'TMP']; private $campos; public function __construct() { $this->campos = implode(',', $this->lista); } //Hecho público para poder efectuar los tests correspondientes. public function obtieneFichero() { return file_get_contents($this->configuracion, FILE_TEXT); } public function obtieneLista() { return $this->lista; } public function obtieneDatos($linea, &$clave, &$valor) { $filtro = str_replace("'", '', $linea); list($clave, $valor) = explode(',', $filtro); list($resto, $campo) = explode('(', $clave); list($valor, $resto) = explode(')', $valor); list($resto, $clave) = explode('(', $clave); $valor = trim($valor); } private function creaTitulo($titulo, $ayuda) { return ''.$titulo.''; } public function ejecuta() { $fichero = $this->obtieneFichero(); $datos = explode("\n", $fichero); $grabar = isset($_POST['SERVIDOR']); if ($grabar) { $fsalida = @fopen($this->confNueva, 'wb'); } foreach ($datos as $linea) { if (stripos($linea, 'DEFINE') !== false) { //Comprueba que tenga una definición correcta $this->obtieneDatos($linea, $clave, $valor); $this->datosConf[$clave] = $valor; if ($grabar && stripos($this->campos, $clave) !== false) { $linea = str_replace($valor, $_POST[$clave], $linea); $this->datosConf[$clave] = $_POST[$clave]; } //$salida = "DatosConf=".var_export($this->datosConf, true) . "stripos = " . stripos($campos, "GZIP"); //$salida .= "Post=" . var_export($_POST, true); } if ($grabar) { $registro = substr($linea, 0, 2) == '?>' ? $linea : $linea."\n"; fwrite($fsalida, $registro); } } $salida = $this->formulario(); if ($grabar) { $salida .= '
Configuración guardada correctamente
'; fclose($fsalida); //unlink($this->confAnterior); rename($this->configuracion, $this->confAnterior); rename($this->confNueva, $this->configuracion); unlink($this->confAnterior); } return $salida; } private function formulario() { $coloresLateral = ['Original' => '#C4FAEC', 'Verde' => '#7bd148', 'Azul marino' => '#5484ed', 'Azul' => '#a4bdfc', 'Turquesa' => '#46d6db', 'Verde claro' => '#7ae7bf', 'Verde oscuro' => '#51b749', 'Amarillo' => '#fbd75b', 'Naranja' => '#ffb878', 'Morado' => '#6633FF', 'Rojo oscuro' => '#dc2127', 'Púrpura' => '#dbadff', 'Gris' => '#e1e1e1', ]; $coloresFondo = ['Verde' => '#7bd148', 'Azul marino' => '#5484ed', 'Azul' => '#a4bdfc', 'Turquesa' => '#46d6db', 'Verde claro' => '#7ae7bf', 'Verde oscuro' => '#51b749', 'Amarillo' => '#fbd75b', 'Naranja' => '#ffb878', 'Rojo' => '#ff887c', 'Rojo oscuro' => '#dc2127', 'Púrpura' => '#dbadff', 'Gris' => '#e1e1e1', 'Original' => '#F3FEC8', ]; $personal = $this->datosConf['ESTILO'] == 'personal' ? 'selected' : ' '; $bluecurve = $this->datosConf['ESTILO'] == 'bluecurve' ? 'selected' : ' '; $cristal = $this->datosConf['ESTILO'] == 'cristal' ? 'selected' : ' '; $bootst = $this->datosConf['ESTILO'] == 'bootstrap' ? 'selected' : ' '; $normal = $this->datosConf['PLANTILLA'] == 'normal' ? 'selected' : ' '; $bootstrap = $this->datosConf['PLANTILLA'] == 'bootstrap' ? 'selected' : ' '; $salida = '
'; //$salida.='

'; $salida .= '

'; $salida .= ''; $salida .= ''.$this->creaTitulo('Nombre del Centro', 'Nombre que aparecerá en los informes y en la página principal de la aplicación').''; $salida .= ''.$this->creaTitulo('Número de filas', 'Número de filas que aparecerán en la pantalla de consulta de los maestros. Valor entre 10 y 25.').''; $salida .= ''.$this->creaTitulo('Plantilla', 'Plantilla html utilizada para mostrar el contenido de la aplicación.').''; $salida .= ''.$this->creaTitulo('Estilo', 'Estilo de los botones de control en los mantenimientos de los maestros').''; $salida .= ''.$this->creaTitulo('Color Lateral', 'Color que se aplicará a la parte izquierda de la aplicación donde aparece el menú').''; $salida .= ''.$this->creaTitulo('Color Fondo', 'Color que aparecerá como fondo en todas las pantallas de la aplicación').''; $salida .= ''.$this->creaTitulo('Directorio tmp', 'Directorio donde se almacenarán los archivos temporales de la aplicación y también los archivos e informes que genera').''; $salida .= ''; $salida .= ''.$this->creaTitulo('Servidor', 'Nombre o dirección IP del servidor MySQL. Normalmente localhost').''; $salida .= ''.$this->creaTitulo('Puerto', 'Número de puerto donde el servidor admite conexiones MySQL. Normalmente 3306').''; $salida .= ''.$this->creaTitulo('Base de datos', 'Nombre de la base de datos donde se almacenarán los datos de la aplicación').''; $salida .= ''.$this->creaTitulo('Base de datos Tests', 'Nombre de la base de datos donde se almacenarán los datos de prueba de la aplicación').''; $salida .= ''.$this->creaTitulo('Usuario', 'Usuario con permisos de lectura/escritura en la base de datos').''; $salida .= ''.$this->creaTitulo('Clave', 'Contraseña del usuario con permisos sobre la base de datos').''; $salida .= ''.$this->creaTitulo('mysqldump', 'Ruta completa a la utilidad mysqldump. Este programa es necesario para que se puedan hacer las copias de seguridad de la aplicación').''; $salida .= ''.$this->creaTitulo('gzip', 'Ruta completa a la utilidad gzip. Este programa es necesario para que se puedan comprimir las copias de seguridad de la aplicación').''; $salida .= '

'; $salida .= ''; $salida .= ""; return $salida; } }
Preferencias
Base de datos
Volver