.
*
*/
//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 = '
';
$mensaje = $mysql ? $this->retornaLabel(false, 'Tiene que estar cargada la extensión MySQLi para poder funcionar') :
$this->retornaLabel(true, 'Tiene que estar cargada la extensión MySQLi para poder funcionar');
$info .= $mensaje . ' extensión MySQLi: ' . $mysql . ' ' . '';
$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);
}
}
?>