. * */ 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', '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' : ' '; $normal = $this->datosConf['PLANTILLA'] == "normal" ? 'selected' : ' '; $bootstrap = $this->datosConf['PLANTILLA'] == "bootstrap" ? 'selected' : ' '; $salida = '