. * */ 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'); 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); } 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.=''; $salida.=''; $salida.=''; $salida.=''; $salida.=''; $salida.=''; $salida.=''; $salida.=''; $salida.=''; $salida.=''; $salida.=''; $salida.=''; $salida.=''; $salida.=''; $salida.=''; $salida.='

'; $salida.=''; $salida.=""; return $salida; } } ?>
Preferencias
Nombre del Centro
Número de filas
Plantilla
Estilo
Color Lateral (bootstrap)
Color Fondo (bootstrap)
Base de datos
Servidor
Puerto
Base de datos
Base de datos Tests
Usuario
Clave
mysqldump
gzip