.
*
*/
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 = '