. * */ 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 = array('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 = array("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 = array("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").''; $salida.=''.$this->creaTitulo("Puerto","Número de puerto donde el servidor admite conexiones MySQL").''; $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