. * */ //Se incluyen los módulos necesarios function __autoload($class_name) { require_once $class_name . '.php'; } include 'inc/configuracion.inc'; define('NUMPASOS', 3); define('MINBYTES', 4096000); // post_max_size y max_upload van con esto define('CADENAMINBYTES', '4M'); // Si ya se ha ejecutado con anterioridad esta script no continúa. if (INSTALADO != 'no') { echo "El programa ya está instalado"; return 1; } $instalar = new Instalar(); echo $instalar->ejecuta(); class Instalar { private $resultados; private $contenido; private $plant; public function __construct() { //Selecciona la plantilla a utilizar $this->plant='plant/'; $this->plant.=PLANTILLA; $this->plant.='.html';; } public function ejecuta() { $paso = isset($_GET['paso']) ? $_GET['paso'] : 0; $paso = $paso > NUMPASOS ? '0' : $paso; //Si quiere ir a un determinado paso se asegura que estén completos los anteriores for ($i = 0; $i < $paso; $i++) { if (!$this->resultado[$i]) { //$funcion = "paso" . $i; //$this->contenido = $this->$funcion(); break; } } if ($paso == NUMPASOS) { $this->contenido = $this->pasoFinal(); } else { $funcion = "paso" . $i; $this->contenido = $this->$funcion(); } $salida = new Distribucion($this->plant, $this); return $salida->procesaPlantilla(); } private function inicializa() { for ($i = 0; $i < NUMPASOS; $i++) { $funcion = "validaPaso" . $i; $resultado[] = $funcion(); } } // Resumen de cuestiones realizadas private function pasoFinal() { } // Cuestiones relacionadas con el servidor private function paso0() { $displayErr = ini_get('display_errors'); $info = ''; if ($this->validaPaso0()) { $boton = ''; } else { $boton = ''; } $info .= $boton; $panel = $this->panelMensaje($info, 'info', 'PASO 1: Configuración del servidor'); return $panel; } private function retornaLabel($error, $mensaje, $tipo = "danger") { if ($error) { $nombre1 = $tipo; $nombre2 = "remove"; } else { $nombre1 = "success"; $nombre2 = "ok"; } $mensaje = ''; $mensaje .=''; return $mensaje; } private function retornaBytes($val) { $val = trim($val); $last = strtolower($val[strlen($val)-1]); switch($last) { // El modificador 'G' está disponble desde PHP 5.1.0 case 'g': $val *= 1024; case 'm': $val *= 1024; case 'k': $val *= 1024; } return $val; } private function validaPaso0() { $validar = true; $postMax = ini_get('post_max_size'); $uploadMax = ini_get('upload_max_filesize'); $mysql = extension_loaded('mysqli'); if ($this->retornaBytes($postMax) < MINBYTES) $validar = false; if ($this->retornaBytes($uploadMax) < MINBYTES) $validar = false; if (!$mysql) $validar = false; return $validar; } // Cuestiones de la base de datos private function paso2() { } private function validaPaso2() { return false; } // Usuario administrador private function paso3() { } private function validaPaso3() { return false; } private function panelMensaje($info, $tipo = "info", $cabecera = "¡Atención!") { $mensaje = '
'; $mensaje .= '

' . $cabecera . '

'; $mensaje .= '
'; $mensaje .= $info; $mensaje .= '
'; $mensaje .= '
'; return $mensaje; } public function contenido() { return $this->contenido; } public function menu() { return ''; } public function opcion() { return 'INSTALACIÓN'; } public function control() { return ''; } public function aplicacion() { return PROGRAMA . ' v' . VERSION; } public function usuario() { return ''; } public function fecha() { $idioma = 'es_ES'; if ($formato == '') $formato = "%d-%b-%y"; setlocale(LC_TIME, $idioma); return strftime($formato); } } ?>