Pasos para crear un pequeño gestor de archivos.
La configuración no se creará desde cero, se utilizará la misma estructura del sistema de venta
Base de Datos
-- MariaDB dump 10.19 Distrib 10.4.24-MariaDB, for Win64 (AMD64)
--
-- Host: localhost Database: gestion_archivos
-- ------------------------------------------------------
-- Server version 10.4.24-MariaDB
/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
/*!40101 SET NAMES utf8mb4 */;
/*!40103 SET @OLD_TIME_ZONE=@@TIME_ZONE */;
/*!40103 SET TIME_ZONE='+00:00' */;
/*!40014 SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0 */;
/*!40014 SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0 */;
/*!40101 SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='NO_AUTO_VALUE_ON_ZERO' */;
/*!40111 SET @OLD_SQL_NOTES=@@SQL_NOTES, SQL_NOTES=0 */;
--
-- Table structure for table `archivos`
--
DROP TABLE IF EXISTS `archivos`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8 */;
CREATE TABLE `archivos` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`nombre` varchar(255) NOT NULL,
`tipo` varchar(100) NOT NULL,
`fecha_create` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(),
`id_carpeta` int(11) NOT NULL,
PRIMARY KEY (`id`),
KEY `id_carpeta` (`id_carpeta`),
CONSTRAINT `archivos_ibfk_1` FOREIGN KEY (`id_carpeta`) REFERENCES `carpetas` (`id`) ON DELETE CASCADE ON UPDATE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Dumping data for table `archivos`
--
LOCK TABLES `archivos` WRITE;
/*!40000 ALTER TABLE `archivos` DISABLE KEYS */;
/*!40000 ALTER TABLE `archivos` ENABLE KEYS */;
UNLOCK TABLES;
--
-- Table structure for table `carpetas`
--
DROP TABLE IF EXISTS `carpetas`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8 */;
CREATE TABLE `carpetas` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`nombre` varchar(255) NOT NULL,
`fecha_create` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(),
`id_usuario` int(11) NOT NULL,
PRIMARY KEY (`id`),
KEY `id_usuario` (`id_usuario`),
CONSTRAINT `carpetas_ibfk_1` FOREIGN KEY (`id_usuario`) REFERENCES `usuarios` (`id`) ON DELETE CASCADE ON UPDATE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Dumping data for table `carpetas`
--
LOCK TABLES `carpetas` WRITE;
/*!40000 ALTER TABLE `carpetas` DISABLE KEYS */;
/*!40000 ALTER TABLE `carpetas` ENABLE KEYS */;
UNLOCK TABLES;
--
-- Table structure for table `detalle_archivos`
--
DROP TABLE IF EXISTS `detalle_archivos`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8 */;
CREATE TABLE `detalle_archivos` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`fecha_add` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(),
`correo` varchar(100) NOT NULL,
`estado` int(11) NOT NULL DEFAULT 1,
`id_carpeta` int(11) NOT NULL,
`id_archivo` int(11) NOT NULL,
`id_usuario` int(11) NOT NULL,
PRIMARY KEY (`id`),
KEY `id_archivo` (`id_archivo`),
KEY `id_carpeta` (`id_carpeta`),
KEY `id_usuario` (`id_usuario`),
CONSTRAINT `detalle_archivos_ibfk_1` FOREIGN KEY (`id_archivo`) REFERENCES `archivos` (`id`) ON DELETE CASCADE ON UPDATE CASCADE,
CONSTRAINT `detalle_archivos_ibfk_2` FOREIGN KEY (`id_carpeta`) REFERENCES `carpetas` (`id`) ON DELETE CASCADE ON UPDATE CASCADE,
CONSTRAINT `detalle_archivos_ibfk_3` FOREIGN KEY (`id_usuario`) REFERENCES `usuarios` (`id`) ON DELETE CASCADE ON UPDATE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Dumping data for table `detalle_archivos`
--
LOCK TABLES `detalle_archivos` WRITE;
/*!40000 ALTER TABLE `detalle_archivos` DISABLE KEYS */;
/*!40000 ALTER TABLE `detalle_archivos` ENABLE KEYS */;
UNLOCK TABLES;
--
-- Table structure for table `usuarios`
--
DROP TABLE IF EXISTS `usuarios`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!40101 SET character_set_client = utf8 */;
CREATE TABLE `usuarios` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`nombre` varchar(100) NOT NULL,
`apellido` varchar(100) NOT NULL,
`correo` varchar(100) NOT NULL,
`telefono` varchar(15) NOT NULL,
`direccion` varchar(255) NOT NULL,
`perfil` varchar(100) DEFAULT NULL,
`clave` varchar(200) NOT NULL,
`token` varchar(100) DEFAULT NULL,
`fecha` timestamp NOT NULL DEFAULT current_timestamp() ON UPDATE current_timestamp(),
`estado` int(11) NOT NULL DEFAULT 1,
`rol` int(11) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
/*!40101 SET character_set_client = @saved_cs_client */;
--
-- Dumping data for table `usuarios`
--
LOCK TABLES `usuarios` WRITE;
/*!40000 ALTER TABLE `usuarios` DISABLE KEYS */;
/*!40000 ALTER TABLE `usuarios` ENABLE KEYS */;
UNLOCK TABLES;
/*!40103 SET TIME_ZONE=@OLD_TIME_ZONE */;
/*!40101 SET SQL_MODE=@OLD_SQL_MODE */;
/*!40014 SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS */;
/*!40014 SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS */;
/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;
/*!40111 SET SQL_NOTES=@OLD_SQL_NOTES */;
-- Dump completed on 2023-01-25 15:16:11
Adaptar la plantilla de Login
Para adquirir la plantilla solicítalo por medio de Facebook o Instagram, se encuentra en la parte superior.
Se te compartirá de manera gratuita
Crear Favicon
Librerías
https://sweetalert2.github.io/
https://apalfrey.github.io/select2-bootstrap-5-theme/
Listado de zonas horarias admitidas – Manual – PHP
https://www.php.net/manual/es/timezones.php
date_default_timezone_set('America/Lima');
Dar formato de fecha
function time_ago ($fecha){
$diferencia = time() - $fecha;
if ($diferencia < 1) {
return 'Justo ahora';
}
$condicion = array(
12 * 30 * 24 * 60 * 60 => 'año',
30 * 24 * 60 * 60 => 'mes',
24 * 60 * 60 => 'dia',
60 * 60 => 'hora',
60 => 'minuto',
1 => 'segundo'
);
foreach ($condicion as $secs => $str) {
$d = $diferencia / $secs;
if ($d >= 1) {
//redondear
$t = round($d);
return 'hace ' . $t. ' ' .$str. ($t > 1 ? 's' : '');
}
}
}
Cambiar color folder.
$color = substr(md5($valor), 0, 6);
Limpiar valor de select2
$('select').val(null).trigger('change');
Sumar fecha
$fecha = date('Y-m-d');
$nueva= date("Y-m-d", strtotime($fecha . '+1 month'));
Saludos Angel , tienes este sistemita completo con su base de datos, puedes proporcionarme, saludos Edgar Ferrer, motivo estudio