mirror of
https://github.com/rmontanana/inventario2.git
synced 2025-08-15 15:35:56 +00:00
solve #23 Arreglado añadiendo en insertar un valor null en el caso de "NOHACERNADA"
Arreglado pequeño problema de formato del grid bootstrap en resoluciones pequeñas.
This commit is contained in:
@@ -28,6 +28,25 @@ define('FORMULARIO_ACCESO', '<form name="formulario_acceso" action="index.php?re
|
||||
'<br><br><button type="submit" name="iniciar" class="btn btn-primary">Iniciar <span class="glyphicon glyphicon-log-in"></span></button></form>');
|
||||
define('MENSAJE_DEMO', 'Puede Iniciar sesión con<br>usuario <i><b>demo</b></i><br>contraseña <i>demo</i><br>');
|
||||
define('USUARIO_INCORRECTO', '<label class="error">Usuario y clave incorrectos!</label><br><br>');
|
||||
define('CREDITOS', '<div class="modal fade" tabindex="-1" id="creditos" role="dialog" aria-labelledby="modalCreditos" aria-hidden="true">
|
||||
<div class="modal-dialog modal-lg">
|
||||
<div class="modal-content">
|
||||
<div class="modal-header">
|
||||
<button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button>
|
||||
<h4>Créditos</h4>
|
||||
</div>
|
||||
<div class="modal-body">
|
||||
<div class="jumbotron">
|
||||
<img src="img/logo.png" class="img-responsive img-rounded" style="float:left">
|
||||
<h1>Inventario2</h1>
|
||||
<p> Aplicación para controlar el inventario de un centro educativo.</p><br><br><br><br><br><br>
|
||||
<p><small>Copyright (C) 2008-2014 Ricardo Montañana Gómez<br>
|
||||
Esta aplicación se distribuye con licencia <a target="_blank" href="http://www.gnu.org/licenses/gpl-3.0.html">GPLv3 </a></small></p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>');
|
||||
|
||||
// Esta clase aportará el contenido a la plantilla
|
||||
class AportaContenido {
|
||||
@@ -181,8 +200,9 @@ class AportaContenido {
|
||||
list($opcion, $parametro) = explode("&", $this->opcionActual);
|
||||
switch ($opcion) {
|
||||
case 'principal': // contenido inicial
|
||||
return '<br><br><center><img src="img/logo.png" alt="' . PROGRAMA . '">' .
|
||||
'<br><label>' . CENTRO . '</label></center><br><br>' . PIE;
|
||||
$creditos = "$('#creditos').modal({keyboard: false});";
|
||||
return '<br><br><center><img src="img/logo.png" alt="' . PROGRAMA . '" onClick="' . $creditos . '" >' .
|
||||
'<br><label>' . CENTRO . '</label></center><br><br>' . PIE . CREDITOS;
|
||||
case 'articulos':
|
||||
case 'ubicaciones':
|
||||
case 'test':
|
||||
|
@@ -1,3 +1,5 @@
|
||||
-Inventario.php llama al instalador si la aplicación no está instalada
|
||||
-Añadido dialogo modal de Créditos cuando se pulsa sobre el gráfico de código de barras de la aplicación
|
||||
-Quitados los usuarios de ejemplo en el archivo setup.sql
|
||||
-Creado el programa instalar.php que permitirá configurar el acceso a la base de datos, comprobar la configuración del servidor y la creación del usuario administrador
|
||||
-Añadido un parámetro en el archivo configuracion.inc que permite o no ejecutar el programa instalar.php
|
||||
|
103
Instalar.php
103
Instalar.php
@@ -24,7 +24,8 @@
|
||||
function __autoload($class_name) {
|
||||
require_once $class_name . '.php';
|
||||
}
|
||||
include 'inc/configuracion.inc';
|
||||
|
||||
require_once 'inc/configuracion.inc';
|
||||
define('NUMPASOS', 3);
|
||||
//Para el Paso 1
|
||||
define('MINBYTES', 4096000); // post_max_size y max_upload van con esto
|
||||
@@ -35,13 +36,11 @@ define('TMP', './tmp');
|
||||
define('INC', './inc');
|
||||
|
||||
$instalar = new Instalar();
|
||||
if (!$instalar->error) {
|
||||
echo $instalar->ejecuta();
|
||||
} else {
|
||||
echo $instalar->cabecera();
|
||||
echo $instalar->panelMensaje($instalar->error_msj, "danger", "¡ERROR!");
|
||||
echo "</body></html>";
|
||||
if ($instalar->error) {
|
||||
echo $instalar->panelError();
|
||||
return;
|
||||
}
|
||||
echo $instalar->ejecuta();
|
||||
|
||||
class Instalar {
|
||||
private $contenido;
|
||||
@@ -173,6 +172,12 @@ class Instalar {
|
||||
}
|
||||
}
|
||||
|
||||
private function botonVolver($enlace)
|
||||
{
|
||||
$boton = '<button type="button" onClick="location.href=' . "'$enlace'" . '" class="btn btn-success btn-lg pull-left">Paso anterior <span class="glyphicon glyphicon-arrow-left"></span></button>';
|
||||
return $boton;
|
||||
}
|
||||
|
||||
private function retornaLabel($error, $mensaje, $tipo = "danger")
|
||||
{
|
||||
if ($error) {
|
||||
@@ -230,18 +235,61 @@ class Instalar {
|
||||
return $validar;
|
||||
}
|
||||
|
||||
private function actualizaConfiguracion($grabar, $campos, &$datos)
|
||||
{
|
||||
$conf = new Configuracion();
|
||||
$fichero = $conf->obtieneFichero();
|
||||
$datosFichero = explode("\n", $fichero);
|
||||
if ($grabar) {
|
||||
$fsalida = @fopen(CONFIGTMP, "wb");
|
||||
}
|
||||
foreach ($datosFichero as $linea) {
|
||||
if (stripos($linea, "DEFINE") !== false) {
|
||||
$conf->obtieneDatos($linea, $clave, $valor);
|
||||
if (stripos($campos, $clave) !== false) {
|
||||
if ($grabar) {
|
||||
$linea = str_replace($valor, $datos[$clave], $linea);
|
||||
$valor = $datos[$clave];
|
||||
}
|
||||
}
|
||||
$datos[$clave] = $valor;
|
||||
}
|
||||
$registro = substr($linea, 0, 2) == "?>" ? $linea : $linea . "\n";
|
||||
if ($grabar) {
|
||||
fwrite($fsalida, $registro);
|
||||
}
|
||||
}
|
||||
if ($grabar) {
|
||||
fclose($fsalida);
|
||||
unlink(CONFIGURACION);
|
||||
rename(CONFIGTMP, CONFIGURACION);
|
||||
}
|
||||
}
|
||||
|
||||
// Cuestiones de la base de datos
|
||||
private function paso1()
|
||||
{
|
||||
$grabar = isset($_POST['SERVIDOR']);
|
||||
//Lee y si hace falta actualiza los datos del formulario en el fichero de configuración
|
||||
$conf = new Configuracion();
|
||||
$grabar = isset($_POST['SERVIDOR']);
|
||||
$campos = 'SERVIDOR,PUERTO,BASEDATOS,USUARIO,CLAVE';
|
||||
//Lee y si hace falta actualiza los datos del formulario en el fichero de configuración
|
||||
if ($grabar) {
|
||||
foreach ($_POST as $clave => $valor) {
|
||||
$datos[$clave] = $valor;
|
||||
}
|
||||
} else {
|
||||
$datos = array();
|
||||
}
|
||||
$this->actualizaConfiguracion($grabar, $campos, $datos);
|
||||
if ($grabar && $this->validaPaso1()) {
|
||||
//Pasa al paso siguiente
|
||||
return $this->paso2();
|
||||
}
|
||||
/*$conf = new Configuracion();
|
||||
$fichero = $conf->obtieneFichero();
|
||||
$datos = explode("\n", $fichero);
|
||||
if ($grabar) {
|
||||
$fsalida = @fopen(CONFIGTMP, "wb");
|
||||
}
|
||||
$campos = 'SERVIDOR,PUERTO,BASEDATOS,USUARIO,CLAVE';
|
||||
foreach ($datos as $linea) {
|
||||
if (stripos($linea, "DEFINE") !== false) {
|
||||
$conf->obtieneDatos($linea, $clave, $valor);
|
||||
@@ -266,7 +314,7 @@ class Instalar {
|
||||
//Pasa al paso siguiente
|
||||
return $this->paso2();
|
||||
}
|
||||
}
|
||||
}*/
|
||||
|
||||
$info = '<form method="post" name="conf" action="instalar.php?paso=1">';
|
||||
$info .= '<ul class="list-group">';
|
||||
@@ -277,6 +325,7 @@ class Instalar {
|
||||
$info .= '<li class="list-group-item">Usuario <input type="text" name="USUARIO" class="form-control" placeholder="Usuario" value="'. $datos['USUARIO'] .'"></li>';
|
||||
$info .= '<li class="list-group-item">Contraseña <input type="text" name="CLAVE" class="form-control" placeholder="Contraseña" value="'. $datos['CLAVE'] .'"></li>';
|
||||
$info .= '</ul>';
|
||||
$info .= $this->botonVolver("instalar.php");
|
||||
$info .= $this->validaPaso1() ? $this->retornaBoton(false, "instalar.php?paso=1", false) : $this->retornaBoton(true, "instalar.php?paso=1", false);
|
||||
$info .= '</form>';
|
||||
$panel = $this->panelMensaje($info, 'primary', 'PASO 2: Configuración de la Base de Datos.');
|
||||
@@ -311,7 +360,7 @@ class Instalar {
|
||||
if (isset($_POST['usuario'])) {
|
||||
//ha enviado el formulario.
|
||||
//Crea la base de datos
|
||||
$borra_database = "DROP DATABASE IF EXISTS " . BASEDATOS . ";";
|
||||
$borra_database = "DROP DATABASE " . BASEDATOS . " ;";
|
||||
$database = "CREATE DATABASE " . BASEDATOS . " DEFAULT CHARACTER SET utf8;";
|
||||
$articulos = "CREATE TABLE `Articulos` (
|
||||
`id` smallint(6) NOT NULL auto_increment COMMENT 'ordenable',
|
||||
@@ -391,6 +440,9 @@ class Instalar {
|
||||
if ($sql->error()) {
|
||||
return $this->panelMensaje($sql->mensajeError(), "danger", "ERROR");
|
||||
}
|
||||
$campos="INSTALADO";
|
||||
$datos['INSTALADO'] = "sí";
|
||||
$this->actualizaConfiguracion(true, $campos, $datos);
|
||||
return $this->resumen();
|
||||
}
|
||||
|
||||
@@ -415,7 +467,8 @@ class Instalar {
|
||||
</div>
|
||||
|
||||
<div class="form-group col-sm-12">
|
||||
<button type="submit" class="btn btn-primary pull-right btn-lg" disabled="disabled">Crear base de datos y usuario administrador <span class="glyphicon glyphicon-arrow-right"></button>
|
||||
' . $this->botonVolver("instalar.php?paso=1") . '
|
||||
<button type="submit" class="btn btn-primary pull-right btn-lg" disabled="disabled">Crear base de datos y usuario <span class="glyphicon glyphicon-arrow-right"></button>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
@@ -507,9 +560,29 @@ class Instalar {
|
||||
<body>';
|
||||
}
|
||||
|
||||
public function panelError()
|
||||
{
|
||||
$mensaje = $this->cabecera();
|
||||
$mensaje .= $this->panelMensaje($this->error_msj, "danger", "¡ERROR!");
|
||||
$mensaje .= "</body></html>";
|
||||
return $mensaje;
|
||||
}
|
||||
|
||||
private function resumen()
|
||||
{
|
||||
return 'Todo se ha hecho correctamente';
|
||||
$info = '<ul class="list-group">';
|
||||
$info .= '<li class="list-group-item list-group-item-info">Paso 1</li>';
|
||||
$info .= $this->retornaElemento($this->retornaLabel(false, ""), "Configuración de PHP");
|
||||
$info .= $this->retornaElemento($this->retornaLabel(false, ""), "Configuración de la aplicación");
|
||||
$info .= '<li class="list-group-item list-group-item-info">Paso 2</li>';
|
||||
$info .= $this->retornaElemento($this->retornaLabel(false, ""), "Configuración de la base de datos");
|
||||
$info .= '<li class="list-group-item list-group-item-info">Paso 3</li>';
|
||||
$info .= $this->retornaElemento($this->retornaLabel(false, ""), "Creación de Base de datos");
|
||||
$info .= $this->retornaElemento($this->retornaLabel(false, ""), "Creación del usuario administrador");
|
||||
$info .= '</ul>';
|
||||
$info .= $this->retornaBoton(false, "index.php", true);
|
||||
$panel = $this->panelMensaje($info, 'success', 'Instalación finalizada.');
|
||||
return $panel;
|
||||
|
||||
}
|
||||
}
|
||||
|
@@ -40,6 +40,11 @@ class Inventario {
|
||||
// Analizamos la cadena de solicitud para saber
|
||||
// qué opción es la actual
|
||||
$this->opcActual = $_SERVER['QUERY_STRING'] == '' ? 'principal' : $_SERVER['QUERY_STRING'];
|
||||
//Si el programa no está instalado, llama al instalador.
|
||||
if (INSTALADO == "no") {
|
||||
header('location: instalar.php');
|
||||
return;
|
||||
}
|
||||
// Iniciamos una sesión
|
||||
session_start();
|
||||
//Conexión con la base de datos.
|
||||
|
2
Sql.php
2
Sql.php
@@ -63,7 +63,7 @@ class Sql {
|
||||
*/
|
||||
public function __construct($servidor,$usuario,$clave,$baseDatos)
|
||||
{
|
||||
$this->bdd=new mysqli($servidor,$usuario,$clave,$baseDatos);
|
||||
$this->bdd = @new mysqli($servidor,$usuario,$clave,$baseDatos);
|
||||
if (mysqli_connect_errno()) {
|
||||
$this->mensajeError='<h1>Fallo al conectar con el servidor MySQL.</h1>';
|
||||
$this->mensajeError.="Servidor [".$servidor ."] usuario=[".$usuario."] clave [".$clave."] base [".$baseDatos."]";
|
||||
|
@@ -25,7 +25,7 @@ require_once 'version.inc';
|
||||
|
||||
define('SERVIDOR', 'localhost'); //Ubicación del servidor MySQL
|
||||
define('PUERTO', '3306'); //Puerto donde se conecta a MySQL
|
||||
define('BASEDATOS', 'Inventario2'); //Nombre de la base de datos.
|
||||
define('BASEDATOS', 'Inventario'); //Nombre de la base de datos.
|
||||
define('BASEDATOSTEST', 'Inventario_test'); //Base de datos para los tests.
|
||||
define('USUARIO', 'test'); //Usuario con permisos de lectura/escritura en la base de datos
|
||||
define('CLAVE', 'tset'); //contraseña del usuario.
|
||||
@@ -40,5 +40,5 @@ define('COLORFON', '#ffb878'); //Color del fondo de la pantalla
|
||||
define('MYSQLDUMP', '/usr/local/bin/mysqldump'); //camino a mysqldump
|
||||
define('GZIP', '/usr/bin/gzip'); //Camino a gzip
|
||||
define('IMAGEDATA', 'img.data'); //Directorio donde se almacenarán las imágenes
|
||||
define('INSTALADO', 'no'); //no = permite la ejecución de instalar.php
|
||||
define('INSTALADO', 'sí') //Indicador que permite ejecutar instalar.php
|
||||
?>
|
||||
|
Reference in New Issue
Block a user