Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Julio de 2013
Diseo e implementacin de una plataforma web para gestin documental ( WebDoc )
Agradecimientos
Querra expresar mi agradecimiento a toda mi familia, en especial a mi mujer, a mi
hijo, a mis padres y hermana, ya que, sin ellos, no podra haber llegado hasta aqu.
El que habla por su cuenta, busca su propia gloria; pero el que busca la gloria del
que le ha enviado, ese es veraz; y no hay impostura en l.
Jn 7:18
2
Diseo e implementacin de una plataforma web para gestin documental ( WebDoc )
3
Diseo e implementacin de una plataforma web para gestin documental ( WebDoc )
Resumen
En este memoria se expondr el desarrollo de una plataforma web ( WebDoc ),
diseada y desarrollada bajo la premisa de automatizar la gestin documental de una
organizacin lo mximo posible. Para ello se ha diseado un mtodo semi-automtico
de clasificacin de diferentes tipos de archivos, as como un sistema de monitorizacin
sobre la creacin y borrado de archivos, un etiquetado unvoco de los mismos (accesible
desde un ordenador o desde un dispositivo mvil) as como la inclusin de un sistema
ligero de bsqueda y un inventariado basado en el tipo de archivo.
4
Diseo e implementacin de una plataforma web para gestin documental ( WebDoc )
5
Diseo e implementacin de una plataforma web para gestin documental ( WebDoc )
6
Diseo e implementacin de una plataforma web para gestin documental ( WebDoc )
1. Introduccin.
Tabla de contenidos
1.1. Motivacin y tecnologas utilizadas....................................................................11
1.2. Objetivos..........................................................................................................11
1.3. Estructura........................................................................................................12
2. Tecnologas, entornos de ejecucin e implementacin.
2.1. Tecnologas utilizadas.......................................................................................13
2.2. Entorno de Ejecucin........................................................................................14
2.3. Herramientas de Desarrollo.............................................................................14
3. Ingeniera Web.
3.1. Introduccin.....................................................................................................15
3.2. Especificacin de Requisitos Software...............................................................15
3.2.1. Especificacin de Requisitos Software.................................................15
1. Introduccin.
ESPECIFICACIN DE REQUISITOS SOFTWARE
1.1. Propsito...............................................................................17
1.2. mbito..................................................................................17
1.3. Definiciones, acrnimos y abreviaturas..................................18
1.4. Referencias............................................................................19
1.5. Visin global..........................................................................19
2. Descripcin general.
2.1. Perspectiva del producto........................................................20
2.2. Funciones del producto..........................................................20
2.3. Caractersticas del usuario.....................................................21
2.4. Restricciones generales..........................................................21
2.5. Supuestos y dependencias......................................................22
3. Requisitos Especficos.
3.1. Requisitos de interfaces externos.
3.1.1. Interfaces de usuario.....................................................23
3.1.2. Interfaces hardware......................................................23
3.1.3. Interfaces software........................................................23
3.1.4. Interfaces de comunicaciones.........................................23
3.2. Requisitos funcionales.
3.2.1. Modo Creacin De Documentos......................................24
3.2.2. Modo Visualizacin De Documentos...............................25
3.2.3. Modo Administracin....................................................27
3.3. Requisitos de rendimiento......................................................28
3.4. Restricciones de diseo.
3.4.1. Estndares cumplidos...................................................28
3.4.2. Limitaciones hardware.................................................28
3.5. Atributos.
3.5.1. Seguridad.....................................................................28
3.5.2. Mantenimiento.............................................................29
3.6. Otros requisitos.
3.6.1. Bases de datos...............................................................29
7
Diseo e implementacin de una plataforma web para gestin documental ( WebDoc )
8
Diseo e implementacin de una plataforma web para gestin documental ( WebDoc )
3.7. WebDoc.
3.7.1. Acceso (login).....................................................................................71
3.7.2. Desktop.............................................................................................72
3.7.3. Documents Manager..........................................................................73
9
Diseo e implementacin de una plataforma web para gestin documental ( WebDoc )
10
Diseo e implementacin de una plataforma web para gestin documental ( WebDoc )
1. Introduccin
1.1. Motivacin y tecnologas utilizadas.
La gestin documental en una organizacin es una tarea ardua,
incluso hoy en da, con todos los medios informticos al alcance de la
mayora de la poblacin.
1.2. Objetivos.
Los objetivos a conseguir por el presente proyecto son los siguientes:
11
Diseo e implementacin de una plataforma web para gestin documental ( WebDoc )
1.2. Estructura.
Esta memoria est organizada en 4 grandes secciones:
Seccin 1: Introduccin.
12
Diseo e implementacin de una plataforma web para gestin documental ( WebDoc )
13
Diseo e implementacin de una plataforma web para gestin documental ( WebDoc )
14
Diseo e implementacin de una plataforma web para gestin documental ( WebDoc )
3. Ingeniera Web
3.1. Introduccin.
15
Diseo e implementacin de una plataforma web para gestin documental ( WebDoc )
Especificacin de
Requisitos
Software
(IEE Std. 830-1998)
(Revisin del IEEE Std. 830-1993)
16
Diseo e implementacin de una plataforma web para gestin documental ( WebDoc )
1.Introduccin.
1.1. Propsito.
El propsito de esta Especificacin de Requisitos Software (ERS)
es definir cules son los requerimientos que debe tener una plataforma
Web que se encargue de la gestin documental en una organizacin.
1.2. mbito.
La plataforma que vamos a desarrollar se identifica con el
nombre WebDoc. La misma se encargar de unificar en un nico lugar,
clasificar (por tipo de documento y por categora, hasta un nmero de 10
por tipo de documento) y presentar los documentos, que los usuarios de
la misma decidan almacenar. Las 10 categoras por tipo de archivo,
aunque fijas en nmero, podrn cambiar su nombre, desde la parte de
administracin de la plataforma, para facilitar su identificacin por los
usuarios.
Donde:
17
Diseo e implementacin de una plataforma web para gestin documental ( WebDoc )
18
Diseo e implementacin de una plataforma web para gestin documental ( WebDoc )
1.4. Referencias.
19
Diseo e implementacin de una plataforma web para gestin documental ( WebDoc )
2. Descripcin general.
2.1. Perspectiva del producto.
1. Men Documentos
1. Gestor de Documentos
2. Men Usuario
1. Mi perfil
2. Salir del sistema
3. Men Tipos de Archivo
1. Portable Document Format (PDF)
Categora 1
Categora 2
Categora 3
Categora 4
Categora 5
Categora 6
Categora 7
Categora 8
Categora 9
Categora 10
2. Microsoft Word
Categora 1
[...]
Categora 10
3. Microsoft Excel
Categora 1
[...]
Categora 10
4. Microsoft PowerPoint
Categora 1
[...]
Categora 10
20
Diseo e implementacin de una plataforma web para gestin documental ( WebDoc )
21
Diseo e implementacin de una plataforma web para gestin documental ( WebDoc )
22
Diseo e implementacin de una plataforma web para gestin documental ( WebDoc )
3. Requisitos Especficos.
3.1. Requisitos de interfaces externos.
Servidor Apache
Web
23
Diseo e implementacin de una plataforma web para gestin documental ( WebDoc )
CREAR_CARPETA
CREAR_DOCUMENTO
24
Diseo e implementacin de una plataforma web para gestin documental ( WebDoc )
ELIMINAR_CARPETA
ELIMINAR_DOCUMENTO
LISTAR_TODOS_LOS_DOCUMENTOS
LISTAR_TODOS_LOS_DOCUMENTOS_DE_UN_TIPO
25
Diseo e implementacin de una plataforma web para gestin documental ( WebDoc )
LISTAR_UNA_CATEGORIA_DADO_UN_TIPO_DE_DOCUMENTO
BUSCAR_DOCUMENTO
PROCESO Se muestran todos los documentos que coinciden con las palabras
clave de la entrada.
Cada documento tiene una serie de campos, por cuya informacin
puede buscarse en la plataforma.
Dichos campos son:
- Nombre (nombre del archivo).
- ID (UUID).
- Usuario (su correo electrnico).
- Departamento.
- Descripcin.
SALIDAS Listado.
CREAR_PERFIL_USUARIO
ACTUALIZAR_PERFIL_USUARIO
26
Diseo e implementacin de una plataforma web para gestin documental ( WebDoc )
LISTAR_REGISTROS_DOCUMENTOS_BORRADOS
ELIMINAR_REGISTRO_DOCUMENTO_BORRADO
SALIDAS (Ninguna)
CREAR_PERFIL_USUARIO
ACTUALIZAR_PERFIL_USUARIO
AUTORIZAR_PERFIL_USUARIO
DESAUTORIZAR_PERFIL_USUARIO
27
Diseo e implementacin de una plataforma web para gestin documental ( WebDoc )
DESAUTORIZAR_PERFIL_USUARIO
BORRAR_PERFIL_USUARIO
SALIDAS (Ninguna)
3.5. Atributos.
3.5.1. Seguridad.
28
Diseo e implementacin de una plataforma web para gestin documental ( WebDoc )
3.5.2 Mantenimiento.
29
Diseo e implementacin de una plataforma web para gestin documental ( WebDoc )
[FIN]
Especificacin de
Requisitos
Software
30
Diseo e implementacin de una plataforma web para gestin documental ( WebDoc )
3.2.2.1. Introduccin.
Crea Documento
Elimina
Crea
Elimina Carpeta
Usuario
Administrador
31
Diseo e implementacin de una plataforma web para gestin documental ( WebDoc )
Buscar
Todos
Usuario
De una categora
perteneciente a un tipo
Crear
Administrador
Actualizar Perfil
Listar
Registro Documento
Borrado
Eliminar
Administrador
Crear
Actualizar
Perfil
Autorizar
Desautorizar
Borrar
32
Diseo e implementacin de una plataforma web para gestin documental ( WebDoc )
3.2.3.1. Introduccin.
Creacin De Documentos
CREAR_CARPETA
CREAR_DOCUMENTO
Super User
Publisher
ELIMINAR CARPETA
ELIMINAR_DOCUMENTO
Registered
33
Diseo e implementacin de una plataforma web para gestin documental ( WebDoc )
Visualizacin De Documentos
LISTAR_TODOS_LOS_DOC
UMENTOS
Super User
Publisher
LISTAR_TODOS_LOS_DOC
UMENTOS_DE_UN_TIPO
LISTAR_UNA_CATEGORI
A_DADO_UN_TIPO_DE_D
OCUMENTO
BUSCAR_DOCUMENTO
CREAR_PERFIL_US
UARIO
ACTUALIZAR_PERFIL
_USUARIO
Registered
Administracin
LISTAR_REGISTROS_
DOCUMENTOS_BOR
RADOS
Super User
ELIMINAR_REGIS
TRO_DOCUMENT
O_BORRADO
Publisher
CREAR_PERFIL_U
SUARIO
ACTUALIZAR_PERFIL
_USUARIO
Registered
AUTORIZAR_PER
FIL_USUARIO
DESAUTORIZAR_PER
FIL_USUARIO
BORRAR_PERFIL_USU
ARIO
34
Diseo e implementacin de una plataforma web para gestin documental ( WebDoc )
3.3. Anlisis.
3.3.1. Introduccin.
CREAR_CARPETA
Confirmacin de Creacin
Super User
Publisher
IU Crear Carpeta Carpeta
Gestor de Documentos
35
Diseo e implementacin de una plataforma web para gestin documental ( WebDoc )
CREAR_DOCUMENTO
Creacin de BIDI
Confirmacin de Creacin
Utiliza
Super User
Creacin de UUID
E-mail
Gestor de Emails
Confirmacin de Envo
ELIMINAR_CARPETA
Eliminar Carpeta
Super User
Publisher
IU Eliminar Carpeta
Gestor de Documentos Confirmacin de Eliminacin
36
Diseo e implementacin de una plataforma web para gestin documental ( WebDoc )
Confirmacin de Eliminacin
Super User
Utiliza
Publisher
IU Eliminar Documento Registro de Documento Eliminado
Gestor de Documentos
E-mail
Gestor de Emails
Confirmacin de Envo
LISTAR_TODOS_LOS_DOCUMENTOS
LISTAR_TODOS_LOS_DOCUMENTOS_DE_UN_TIPO
LISTAR_UNA_CATEGORIA_DADO_UN_TIPO_DE_DOCUMENTO
Categora
Gestor de Categoras
Publisher
IU Listados Listado
Super User Gestor de Listados
LISTAR_TODOS_LOS_DOCUMENTOS
LISTAR_TODOS_LOS_DOCUMENTOS_DE_UN_TIPO
LISTAR_UNA_CATEGORIA_DADO_UN_TIPO_DE_DOCUMENTO
37
Diseo e implementacin de una plataforma web para gestin documental ( WebDoc )
BUSCAR_DOCUMENTO
Publisher
IU Bsqueda Listado
Super User Gestor de Bsquedas
CREAR_PERFIL_USUARIO
E-mail
Gestor de Emails
Confirmacin de Envo
38
Diseo e implementacin de una plataforma web para gestin documental ( WebDoc )
ACTUALIZAR_PERFIL_USUARIO
Publisher
Registered
LISTAR_REGISTROS_DOCUMENTOS_BORRADOS Utiliza
Super User
39
Diseo e implementacin de una plataforma web para gestin documental ( WebDoc )
ELIMINAR_REGISTRO_DOCUMENTO_BORRADO
ELIMINAR_REGISTRO_DOCUMENTO_BORRADO
Utiliza
Super User
IU Eliminar Registro Article Manager Listado Registros
Empty Trash
CREAR_PERFIL_USUARIO
Super User
Gestor de Usuarios Usuario
IU Creacin Perfil
E-mail
Gestor de Emails
40
Diseo e implementacin de una plataforma web para gestin documental ( WebDoc )
ACTUALIZAR_PERFIL_USUARIO
ACTUALIZAR_PERFIL_USUARIO
AUTORIZAR_PERFIL_USUARIO
DESAUTORIZAR_PERFIL_USUARIO
Gestor de Grupos
Super User
IU Autorizacin/Desautorizacin Perfil Gestor de Usuarios Usuario
Listado de Grupos
AUTORIZAR_PERFIL_USUARIO
DESAUTORIZAR_PERFIL_USUARIO
41
Diseo e implementacin de una plataforma web para gestin documental ( WebDoc )
BORRAR_PERFIL_USUARIO
BORRAR_PERFIL_USUARIO
Super User
IU Borrar Perfil Gestor de Usuarios
42
Diseo e implementacin de una plataforma web para gestin documental ( WebDoc )
3.4. Diseo.
3.4.1. Introduccin.
CREAR_CARPETA
Publisher
43
Diseo e implementacin de una plataforma web para gestin documental ( WebDoc )
CREAR_DOCUMENTO
Creacion_de_BIDI
Super User
Publisher
Gestor_De_Emails E-mail
+Confirmacin de Envo()
*
ELIMINAR_CARPETA
Gestor_De_Documentos Eliminar_Carpeta
+Confirmar_Crear_Carpeta()
+UUID()
Super User IU_Eliminar_Carpeta +Confirmar_Eliminar_Carpeta()
+Gestor_Marcas_De_Tiempo()
+Confirmar_Eliminar_Archivo()
+Crear_Registro_Documento_Eliminado()
Publisher
44
Diseo e implementacin de una plataforma web para gestin documental ( WebDoc )
ELIMINAR_DOCUMENTO Eliminar_Archivo
Super User
Gestor_De_Documentos
+Confirmar_Crear_Carpeta()
IU_Eliminar_Documento +UUID()
+Confirmar_Eliminar_Carpeta()
+Gestor_Marcas_De_Tiempo()
+Confirmar_Eliminar_Archivo()
+Crear_Registro_Documento_Eliminado()
LISTAR_TODOS_LOS_DOCUMENTOS
LISTAR_TODOS_LOS_DOCUMENTOS_DE_UN_TIPO Gestor_De_Categorias Categoria
LISTAR_UNA_CATEGORIA_DADO_UN_TIPO_DE_DOCUMENTO *
Publisher
Super User
LISTAR_TODOS_LOS_DOCUMENTOS
LISTAR_TODOS_LOS_DOCUMENTOS_DE_UN_TIPO
LISTAR_UNA_CATEGORIA_DADO_UN_TIPO_DE_DOCUMENTO
45
Diseo e implementacin de una plataforma web para gestin documental ( WebDoc )
BUSCAR_DOCUMENTO
Super User
CREAR_PERFIL_USUARIO
Registered
Gestor_De_Emails E-mail
+Confirmacin de Envo() *
46
Diseo e implementacin de una plataforma web para gestin documental ( WebDoc )
ACTUALIZAR_PERFIL_USUARIO
Publisher
Super User
Registered
3.4.4.1. Introduccin
En el modo Administracin de la plataforma, se va a hacer
un uso intensivo de las opciones de administracin que nos
proporciona la plataforma Joomla! Por ello, en los diagramas
de clase de los casos de uso, las clases estn etiquetadas con la
forma J_XXX (donde XXX es el nombre identificativo de la
clase). Ello significa que estas clases forman parte del ncleo de
Joomla! [5].
47
Diseo e implementacin de una plataforma web para gestin documental ( WebDoc )
LISTAR_REGISTROS_DOCUMENTOS_BORRADOS J_Filter
Super User
ELIMINAR_REGISTRO_DOCUMENTO_BORRADO
ELIMINAR_REGISTRO_DOCUMENTO_BORRADO
J_Filter
Super User
J_Empty_Trash
48
Diseo e implementacin de una plataforma web para gestin documental ( WebDoc )
CREAR_PERFIL_USUARIO
CREAR_PERFIL_USUARIO
Super User
Gestor_De_Emails E-mail
+Confirmacin de Envo() *
ACTUALIZAR_PERFIL_USUARIO
CREAR_PERFIL_USUARIO
Super User
Gestor_De_Emails E-mail
+Confirmacin de Envo() *
49
Diseo e implementacin de una plataforma web para gestin documental ( WebDoc )
AUTORIZAR_PERFIL_USUARIO
DESAUTORIZAR_PERFIL_USUARIO
CREAR_PERFIL_USUARIO
Super User
Gestor_De_Emails E-mail
+Confirmacin de Envo() *
AUTORIZAR_PERFIL_USUARIO
DESAUTORIZAR_PERFIL_USUARIO
BORRAR_PERFIL_USUARIO
BORRAR_PERFIL_USUARIO
IU_Borrar_Perfil J_Gestor_De_Usuarios
Super User
50
Diseo e implementacin de una plataforma web para gestin documental ( WebDoc )
3.5. Implementacin.
3.5.1. Introduccin.
51
Cat 1
Cat 2
Cat 3
PDF Cat 4
Cat 5
Cat 1 Cat 1
Cat 6
Cat 2 Cat 2
Cat 7 Cat 3
Cat 3
Cat 8 Cat 4
Cat 5 Cat 4
Cat 9
Cat 6
Cat 10 Cat 5
Core Cat 7
Cat 6
Microsoft Word
Cat 8
Cat 7
Cat 9
Cat 8
Cat 10
Cat 9
Microsoft Excel
System Cat 10
1
Cat 1 Cat 1
2
Cat 2
3 DeskTop Cat 2
PDF Microsoft PowerPoint Cat 3
4
1
Login Microsoft Word Cat 1 Cat 4
5 Cat 3
2
6 Microsoft Excel Cat 2 Cat 5
New Document Cat 4
3
7 Microsoft PowerPoint Cat 3 Cat 6 Cat 1
52
4 Cat 5
8 Navigation OpenDocument Text Cat 4
5 PDF OpenDocument Text Cat 7 Cat 2
9 PDF
6 OpenDocument Presentation Cat 5 Cat 8 Cat 6 Cat 3
Word Cat 1
10
7 Cat 6 Cat 9
Microsoft Word OpenDocument Spreadsheet Cat 2 Cat 7 Cat 4
1 8 Excel Cat 7
Other Cat 10 Cat 5
Cat 3 Cat 8
2 9 PowerPoint Cat 8
OpenDocument Presentation
3 10 Cat 4 Cat 9 Cat 6
OD Text Cat 9
4 Core Cat 5 Cat 7
Microsoft Excel OD Present. Cat 10 Cat 10
5 Cat 6
Cat 8
6 Categories
OD Spread. Cat 7
7 File Formats
1 Cat 8 Cat 9
8 Other
2 Microsoft PowerPoint Cat 9
9 Cat 10
3 Cat 10
10 PDF
Desktop
4
1 OpenDocument Spreadsheet
5 1
System 2
6 2 Word
3
7 3 1
4
8 4
5 2
9 5 Other
6 3
10 1 6
Navigation 7 4
2 7
OpenDocument Text 8 5 Excel
8 PDF
3
9 6
4 9 1
10 7
Power Point
5 10 2
8
6 3 1
1 OpenDocument Presentation 9
7 4
Mini Frontpage (presentacin de resultados) 10 2 OD Text
2 8 Microsoft Word 5
3
3 1
9 6
4
4 10 7 2
5
5 8 3
OpenDocument Spreadsheet 6
Microsoft Excel
6 9 4
7
7 10 5
Other 8
8 1 6
Login 9
9 2 7
10
10 3 Desktop 8
Microsoft PowerPoint
4 PDF 9
5 10
Word
6
Excel OpenDocument Text
7 OD Present.
WMenu
8 Cat 1
PowerPoint 1
9 WebDoc WMenu PDF
Cat 2
OD Text 2
10
Cat 3 WMenu Word 3
Cat 4 OD Present. 4
Articles WMenu Excel
Cat 5 OD Spread. OpenDocument Presentation 5
ALL
WMenu Generales WMenu PowerPoint
Cat 6 6
Other 1
WMenu OD Text 7
Cat 1 Cat 7
2 8
Cat 2 Mobile WMenu OD Present.
Cat 8 New Document
3 9
Cat 3
Cat 9 WMenu OD Spread. 4 10
Cat 4
Cat 10 PDF WebDoc 5 OD Spread.
Cat 5 WMenu Other
6 ALL OpenDocument Spreadsheet 1
Microsoft Word
Cat 6
7
1 2
Cat 7 Cat 1 8
Microsoft Excel PDF Other 3
2
Cat 8 9
Cat 2 1 4
3 Other
Cat 9 Cat 1 10
5
Cat 3 Menus 4 2
Cat 10 Cat 2 6
Microsoft PowerPoint 5 3
Cat 4
Cat 3 7
Modules 6 4
Cat 5 WMenu (menes de la plataforma)
Cat 4 8
Cat 1 7 ALL 5
Cat 6 Cat 5 8 9
Cat 2 OpenDocument Text 1 6
10
Cat 7 Cat 6 9 7
Cat 3 2
Cat 4 10 8
Cat 8 Cat 7 3
Microsoft Word
Cat 5 9
Cat 9 Cat 8 4 ALL
10
Cat 6 5
Cat 10 Cat 9
1
Cat 7 6
Cat 10 2
Cat 1 Cat 8 7
Cat 9 8 3
Cat 2
Microsoft Excel
4
Cat 10 9
Cat 3 ALL
10 5
Cat 4 OpenDocument Presentation 6 1
Cat 5 7
Cat 1 2
8
Cat 6 3
Cat 2
9
Cat 7 4
Cat 3 OpenDocument Spreadsheet 10
Cat 8 5
Microsoft PowerPoint
Cat 4
6
Cat 9
Cat 5 Cat 1 Other
7
Cat 10
Cat 6 Cat 2 8
Cat 7 Cat 3 9
10
Cat 8 Cat 4
Cat 7 2
3
Cat 8
4
WMenu Word 8
9
WMenu Excel
10
WMenu OD Text 1
ALL
5 3 ALL
WMenu Other
6 4 1 ALL
7 5
2
1
8 6 ALL
PDF 3
7 2
9 4 1
10 8 3
5
4 2
9
6
5 3
10
Microsoft Word 7
Diseo e implementacin de una plataforma web para gestin documental ( WebDoc )
4
6
8
Microsoft Excel 5
7
9
8 6
10
7
9
Route (Ruta de cada elemento) ALL
10 8
Microsoft PowerPoint 9 1
10 2
3
OpenDocument Text
4
OpenDocument Presentation 5
6
ALL
7
OpenDocument Spreadsheet 1 8
9
Facebook 2
10
ALL 3
Socials Twitter 1 4
Other
5
2
LinkedIN 6
3
7
4
Header 8
5
9
6
10
Footer 7
UPV Logo 8
9
Logos UPV Logo Horizontal
Other Modules 10
WebDoc Logo
Separador Horizontal
Separadores
Separador Horizontal
Diseo e implementacin de una plataforma web para gestin documental ( WebDoc )
(V.E.P.)
53
Diseo e implementacin de una plataforma web para gestin documental ( WebDoc )
/modules/plugins/content/jsmallfib/jsmallfib.php
[ -------------------------------- ]
[ ---------[ Lnea 186 ]--------- ]
[ -------------------------------- ]
// --------------------------------------------------------------------------------------------------------------
// Funcin, muy elegante, generadora de UUID sacada de:
// http://stackoverflow.com/questions/2040240/php-function-to-generate-v4-uuid
// --------------------------------------------------------------------------------------------------------------
function guidv4()
{
$data = openssl_random_pseudo_bytes(8);
// ------------------------------------------------------------------------------
/**
* The database object.
*/
var $db;
// --------------------------------------------------------------------------------------------------------------
[ -------------------------------- ]
[ ---------[ Lnea 2468 ]--------- ]
[ -------------------------------- ]
// --------------------------------------------------------------------------------------------------------------
// En este IF se comprueba que el fichero existe, por tanto, habra que poner la variable de comprobacin
// en este lugar. Un booleano que nos dijera que el fichero ya existe y que no hace falta crear un nuevo
// artculo en Joomla.
// --------------------------------------------------------------------------------------------------------------
$ExisteFichero = TRUE;
// --------------------------------------------------------------------------------------------------------------
[ -------------------------------- ]
[ ---------[ Lnea 2523 ]--------- ]
[ -------------------------------- ]
if(!$ExisteFichero)
{
$user=& JFactory::getUser();
// Las extensiones de fichero para Adobe PDF estn sacadas de esta Web:
// http://en.wikipedia.org/wiki/Portable_Document_Format#Forms_Data_Format_.28FDF.29
// Las extensiones de fichero para Microsoft Office estn sacadas de esta Web:
// http://office.microsoft.com/en-us/help/introduction-to-new-file-name-extensions-HA010006935.aspx
// Las extensiones de fichero para OpenDocument estn sacadas de esta Web:
// http://es.wikipedia.org/wiki/OpenDocument
$icono = "";
$TipoDeFichero = strtolower($NombreDeFicheroYExtensionPorSeparado[1]);
54
Diseo e implementacin de una plataforma web para gestin documental ( WebDoc )
/modules/plugins/content/jsmallfib/jsmallfib.php
switch($TipoDeFichero)
{
case "pdf":
case "fdf":
case "xfdf":
$supercat = 8;
$cat = [94,95,96,97,98,99,100,101,126,127];
$icono = "pdf";
break;
case "docx":
case "docm":
case "dotx":
case "dotm":
case "doc":
$supercat = 9;
$cat = [102,103,104,105,106,107,108,109,128,129];
$icono = "doc";
break;
case "xlsx":
case "xlsm":
case "xltx":
case "xltm":
case "xlsb":
case "xlam":
case "xls":
$supercat = 11;
$cat = [110,111,112,113,114,115,116,117,130,131];
$icono = "xls";
break;
case "pptx":
case "pptm":
case "potx":
case "potm":
case "ppam":
case "ppsx":
case "ppsm":
case "sldx":
case "sldm":
case "thmx":
case "ppt":
$supercat = 10;
$cat = [118,119,120,121,122,123,124,125,132,133];
$icono = "ppt";
break;
case "odt":
$supercat = 16;
$cat = [54,55,56,57,58,59,60,61,134,135];
$icono = "odt";
break;
case "odp":
$supercat = 17;
$cat = [62,63,64,65,66,67,68,69,136,137];
$icono = "odp";
break;
case "ods":
$supercat = 18;
$cat = [70,71,72,73,74,75,76,77,138,139];
$icono = "ods";
break;
default:
$supercat = 20;
$cat = [78,79,80,81,82,83,84,85,140,141];
$icono = "other";
}
$NombreSinGuionBajo = explode("_",$NombreDeFicheroYExtensionPorSeparado[0]);
if(sizeof($NombreSinGuionBajo)==2)
switch ($NombreSinGuionBajo[1])
{
case "1":
$subcat = 1;
break;
case "2":
$subcat = 2;
55
Diseo e implementacin de una plataforma web para gestin documental ( WebDoc )
/modules/plugins/content/jsmallfib/jsmallfib.php
break;
case "3":
$subcat = 3;
break;
case "4":
$subcat = 4;
break;
case "5":
$subcat = 5;
break;
case "6":
$subcat = 6;
break;
case "7":
$subcat = 7;
break;
case "8":
$subcat = 8;
break;
case "9":
$subcat = 9;
break;
case "10":
$subcat = 10;
break;
default:
$subcat = 0;
break;
}
else
{
// Si entramos aqu, es porque no haba un subguin bajo en el nombre del fichero,
// por lo que le asignamos la supercategora.
$subcat = 0;
}
// ----------------------------------------------------------------------------
switch ($subcat)
{
case 1:
$catid = $cat[0];
break;
case 2:
$catid = $cat[1];
break;
case 3:
$catid = $cat[2];
break;
case 4:
$catid = $cat[3];
break;
case 5:
$catid = $cat[4];
break;
case 6:
$catid = $cat[5];
break;
case 7:
$catid = $cat[6];
break;
case 8:
$catid = $cat[7];
break;
case 9:
$catid = $cat[8];
break;
case 10:
$catid = $cat[9];
break;
default:
$catid = $supercat;
break;
}
$UUID = $TipoDeFichero.'-'.$this->guidv4();
56
Diseo e implementacin de una plataforma web para gestin documental ( WebDoc )
/modules/plugins/content/jsmallfib/jsmallfib.php
// -----------------------------------------------------------------------------------------------------
// Clculo de URL nica:
// Las URLs nicas, son del tipo >
// http://webdoc.webtory.es/index.php/component/search/?
searchword=ppt_cd06-0270-2c85&ordering=newest&searchphrase=exact&limit=20&areas[0]=content&Itemid=101
// -----------------------------------------------------------------------------------------------------
$URLUnique = JURI::base().'index.php/component/search/?searchword='.
$UUID.'&ordering=newest&searchphrase=exact&limit=20&areas[0]=content&Itemid=101';
// -----------------------------------------------------------------------------------------------------
$URL_QR = JURI::base().'images/UpLoad'.$toks[1];
$data = array(
'catid' => $catid,
'title' => $NombreSinGuionBajo[0],
'alias' => $UUID,
'introtext' => '<div style="width:748px; height: 80; vertical-align: middle; text-align: right;"><img
src="templates/webdoc/lib/phpqrcode/QRMaker.php?texto='.urlencode($URL_QR).'" height="90px" width="90px"/> <a
href="/images/UpLoad'.$toks[1].'"><img src="images/FileTypes/'.$icono.'.png" height="90px" width="71px"></a></
div>',
'fulltext' => $fullText,
'state' => 1,
);
$HayError = FALSE;
$MensajeError = '';
// Bind data
if (!$table->bind($data))
{
$MensajeError = 'The data format sent to WebDoc is not correct!</br>';
$MensajeError .= $table->getError();
$HayError = TRUE;
}
if(!$HayError)
{
// Reordenamos la categora de Joomla, que no se hace automticamente.
// ------------------------------------------------------------------------------------
// Correo de confirmacin de la creacin de un nuevo fichero en WebDoc.
// ------------------------------------------------------------------------------------
57
Diseo e implementacin de una plataforma web para gestin documental ( WebDoc )
/modules/plugins/content/jsmallfib/jsmallfib.php
$mail->setSender($sender);
$this->db->setQuery($queryAdminEmail);
$result_queryAdminEmail = $this->db->loadRowList();
// --------------------------------------------------------------
foreach($result_queryAdminEmail as $OneEmailAsArray)
$mail->addRecipient($OneEmailAsArray[0],$OneEmailAsArray[1]);
// ------------------------------------------------------------------------------------
58
Diseo e implementacin de una plataforma web para gestin documental ( WebDoc )
(V.E.P.)
59
Diseo e implementacin de una plataforma web para gestin documental ( WebDoc )
/modules/plugins/content/jsmallfib/jsmallfib.php
[ -------------------------------- ]
[ ---------[ Lnea 1193 ]--------- ]
[ -------------------------------- ]
// --------------------------------------------------------------------------------------------------------------
// ---------------------------------------------------------------------------------------------------------------
// DELETE: Procedemos a borrar el artculo de Joomla que equivale al fichero que estamos borrando.
// ---------------------------------------------------------------------------------------------------------------
// ---------------------------------------------------------------------------------------------------------------
// DEBUG ----------------------------------------------------------
// $texto_error = '<div><br/> Document to Delete: '.$_GET["delfile"].'</div>';
// $error .= JText::sprintf($texto_error);
// ----------------------------------------------------------------
if(sizeof($deleted_document)==2)
{
$TipoDeFichero = explode(".", $deleted_document[1]);
$Document_Title = $deleted_document[0];
}
else
{
$TipoDeFichero = explode(".", $deleted_document[0]);
$Document_Title = $TipoDeFichero[0];
}
switch($TipoDeFichero[1])
{
case "pdf":
case "fdf":
case "xfdf":
$supercat = 8;
$cat = [94,95,96,97,98,99,100,101,126,127];
break;
case "docx":
case "docm":
case "dotx":
case "dotm":
case "doc":
$supercat = 9;
$cat = [102,103,104,105,106,107,108,109,128,129];
break;
case "xlsx":
case "xlsm":
case "xltx":
case "xltm":
case "xlsb":
case "xlam":
case "xls":
$supercat = 11;
$cat = [110,111,112,113,114,115,116,117,130,131];
break;
case "pptx":
case "pptm":
case "potx":
case "potm":
case "ppam":
case "ppsx":
case "ppsm":
case "sldx":
case "sldm":
case "thmx":
case "ppt":
$supercat = 10;
$cat = [118,119,120,121,122,123,124,125,132,133];
break;
case "odt":
$supercat = 16;
$cat = [54,55,56,57,58,59,60,61,134,135];
break;
case "odp":
$supercat = 17;
$cat = [62,63,64,65,66,67,68,69,136,137];
break;
case "ods":
$supercat = 18;
$cat = [70,71,72,73,74,75,76,77,138,139];
break;
default:
$supercat = 20;
$cat = [78,79,80,81,82,83,84,85,140,141];
60
Diseo e implementacin de una plataforma web para gestin documental ( WebDoc )
/modules/plugins/content/jsmallfib/jsmallfib.php
if(sizeof($deleted_document)==2)
switch ($TipoDeFichero[0])
{
case "1":
$subcat = 1;
break;
case "2":
$subcat = 2;
break;
case "3":
$subcat = 3;
break;
case "4":
$subcat = 4;
break;
case "5":
$subcat = 5;
break;
case "6":
$subcat = 6;
break;
case "7":
$subcat = 7;
break;
case "8":
$subcat = 8;
break;
case "9":
$subcat = 9;
break;
case "10":
$subcat = 10;
break;
default:
$subcat = 0;
break;
}
else
{
// Si entramos aqu, es porque no haba un subguin bajo en el nombre del fichero,
// por lo que le asignamos la supercategora.
$subcat = 0;
}
switch ($subcat)
{
case 1:
$catid = $cat[0];
break;
case 2:
$catid = $cat[1];
break;
case 3:
$catid = $cat[2];
break;
case 4:
$catid = $cat[3];
break;
case 5:
$catid = $cat[4];
break;
case 6:
$catid = $cat[5];
break;
case 7:
$catid = $cat[6];
break;
case 8:
$catid = $cat[7];
break;
case 9:
$catid = $cat[8];
break;
case 10:
$catid = $cat[9];
break;
default:
$catid = $supercat;
break;
}
// WEBTORY _____________________________________________________________________________
//
// Procedemos a actualizar la base de datos de Joomla, con la eliminacin del artculo.
//
//
61
Diseo e implementacin de una plataforma web para gestin documental ( WebDoc )
/modules/plugins/content/jsmallfib/jsmallfib.php
$query = $this->db->getQuery(true);
$query->select($this->db->quoteName('id'));
$query->from($this->db->quoteName('#__content'));
$query->where(
$this->db->quoteName('title') . ' = ' . "'".$Document_Title."'"
." AND ".
$this->db->quoteName('catid') . ' = ' .$catid
);
$this->db->setQuery($query);
$result_query = (String) $this->db->loadResult();
// DEBUG ----------------------------------------------------------
// $texto_error = '<div>----------------------------------<br/>Query: '.(String) $query.'</div>'
// .'<div><br/>Result: '.$result_query.'</div>';
// $error .= JText::sprintf($texto_error);
// ----------------------------------------------------------------
if($result_query != '')
{
$query2 = $this->db->getQuery(true);
$query2->update($this->db->quoteName('#__content'));
$query2->set($this->db->quoteName('state'). ' = -2');
$query2->where($this->db->quoteName('id') . ' = ' . $result_query);
$this->db->setQuery($query2);
$result_query2 = (String) $this->db->loadResult();
// Actualizamos el nombre del fichero en la base de datos, para que se pueda subir,
// posteriormente, con el mismo nombre. Esto se hace as, por motivos operativos, ya
// que el artculo se tiene que borrar desde el administrador de Joomla, pues, al borrar
// un artculo se actualizan muchas tuplas de muchas relaciones, y no se puede eliminar
// la tupla simplemente.
// --------------------------------------------------------------------------------------
$query3 = $this->db->getQuery(true);
$query3->update($this->db->quoteName('#__content'));
$query3->set($this->db->quoteName('title'). ' = ' ."'".$Document_Title.$outputMS."' ");
$query3->where($this->db->quoteName('id') . ' = ' . $result_query);
$this->db->setQuery($query3);
$result_query3 = (String) $this->db->loadResult();
// ------------------------------------------------------------------------------------
// Correo de confirmacin del borrado de un nuevo fichero en WebDoc.
// ------------------------------------------------------------------------------------
$mail->setSender($sender);
// Lo dejamos comentado para posibles notificaciones futuras al propio usuario que realiza la
accin.
// $user =& JFactory::getUser();
// $recipient = $user->email;
62
Diseo e implementacin de una plataforma web para gestin documental ( WebDoc )
/modules/plugins/content/jsmallfib/jsmallfib.php
AND
u.sendEmail = 1;";
$this->db->setQuery($queryAdminEmail);
$result_queryAdminEmail = $this->db->loadRowList();
// --------------------------------------------------------------
foreach($result_queryAdminEmail as $OneEmailAsArray)
$mail->addRecipient($OneEmailAsArray[0],$OneEmailAsArray[1]);
$mail->isHTML(true);
$mail->Encoding = 'base64';
$mail->setBody($title.$body);
// ------------------------------------------------------------------------------------
}
else
{
$texto_error = '<div style="text-align:center;">The document does not exists in database!</div>';
// . '<div style="text-align:center;"><br/>'.(String) $query.'</div>'; // << DEBUG
$error .= JText::sprintf($texto_error);
}
// --------------------------------------------------------------------------------------------------------------
// --------------------------------------------------------------------------------------------------------------
63
Diseo e implementacin de una plataforma web para gestin documental ( WebDoc )
(V.E.P.)
(V.E.P.)
(V.E.P.)
(V.E.P.)
(V.E.P.)
ELIMINAR_REGISTRO_DOCUMENTO_BORRADO
(V.E.P.)
CREAR_PERFIL_USUARIO
(V.E.P.)
ACTUALIZAR_PERFIL_USUARIO
(V.E.P.)
64
Diseo e implementacin de una plataforma web para gestin documental ( WebDoc )
AUTORIZAR_PERFIL_USUARIO
DESAUTORIZAR_PERFIL_USUARIO
(V.E.P.)
BORRAR_PERFIL_USUARIO
(V.E.P.)
65
Diseo e implementacin de una plataforma web para gestin documental ( WebDoc )
3.6. Pruebas.
3.6.1. Introduccin.
3.6.2.1. Introduccin.
66
Diseo e implementacin de una plataforma web para gestin documental ( WebDoc )
: Confirmacin De Creacin
5: Generar
: Carpeta
4: Crear Carpeta
: Gestor_De_Documentos
67
68
Super User & Publisher : IU_Crear_Documento : Gestor_De_Documentos : Creacion_de_BIDI : Creacin de UUID : Documento : Confirmacin de Creacin : Gestor_De_Emails : E-mail : Confirmacin de Envo
3.1.1: BIDI
Departamento (opcional)
Descripcin (opcional) 4: UUID()
4.1: UUID
caso de uso
5: Generar Documento
6: Generar
7: Enviar
7.1: Enviar
7.2: Generar
Diseo e implementacin de una plataforma web para gestin documental ( WebDoc )
: Confirmacin de Eliminacin
4: Generar
: Eliminar_Carpeta
3: Eliminar
: Gestor_De_Documentos
2: Confirmar Pulsacin
: IU_Eliminar_Carpeta
69
70
Super User & Publisher : IU_Eliminar_Documento : Gestor_De_Documentos : Eliminar_Archivo : Gestor De Marcas De Tiempo : Registro De Documento Eliminado : Confirmacin de Eliminacin : Gestor_De_Emails : E-mail : Confirmacin de Envo
2: Confirmar pulsacin
3: Eliminar
4: Obtener Marca
caso de uso
5: Crear Registro
6: Generar
7: Enviar
7.1: Enviar
7.2: Generar
Diseo e implementacin de una plataforma web para gestin documental ( WebDoc )
3.7. WebDoc.
71
Diseo e implementacin de una plataforma web para gestin documental ( WebDoc )
3.7.2. Desktop.
72
Diseo e implementacin de una plataforma web para gestin documental ( WebDoc )
73
Diseo e implementacin de una plataforma web para gestin documental ( WebDoc )
74
Diseo e implementacin de una plataforma web para gestin documental ( WebDoc )
Figura 47. Un directorio con archivos tipo PDF en el Gestor de Documentos de la plataforma WebDoc.
Figura 48. Un directorio con archivos tipo PDF pertenecientes a la categora 1 en el Gestor de Documentos de la plataforma WebDoc.
75
Diseo e implementacin de una plataforma web para gestin documental ( WebDoc )
3.7.6. Administracin.
76
Diseo e implementacin de una plataforma web para gestin documental ( WebDoc )
77
Diseo e implementacin de una plataforma web para gestin documental ( WebDoc )
Figura 53. Pantalla de Cambio de Grupo (ACL) de un Perfil de Usuario de la plataforma WebDoc.
78
Diseo e implementacin de una plataforma web para gestin documental ( WebDoc )
4. Conclusiones finales
4.1. Consecucin de Objetivos.
(1) Se propuso un sistema de gestin de usuarios, con altas
automticas y acceso restringido por defecto. Aprovechando al mximo
el sistema de gestin de usuarios de Joomla! que se puede describir de
la siguiente manera:
79
Diseo e implementacin de una plataforma web para gestin documental ( WebDoc )
Se ampli dicho mdulo, para que, cada vez que se produjera una
subida de un archivo al sistema de archivos del servidor, se creara un
artculo en la plataforma Joomla!; cada vez que se subiera un archivo
ya existente en el servidor, slo se cambiara el archivo y no el artculo en
Joomla! (ya que para cambiar la meta-informacin del documento est
el editor estndar de artculos de Joomla!) y cada vez que se borrara un
archivo en el servidor, se borrara el archivo, y el artculo en Joomla!
pasara a estar en modo Trashed, pero con una marca de tiempo, que le
indicara al Administrador (Super User) cundo se borr dicho
documento.
80
Diseo e implementacin de una plataforma web para gestin documental ( WebDoc )
CDIGO PHP
<?php
// ID's de las categoras a buscar su nombre.
// Categoras Cadenas configurables --------
$cat = [,,,,,,,,,];
// -------------------------------------------
$cat_size = sizeof($cat);
$cat_name = array();
// Get the database object.
$this->db = JFactory::getDBO();
for($i=0;$i<$cat_size;$i++)
{
$query = $this->db->getQuery(true);
$query->select($this->db->quoteName('title'));
$query->from($this->db->quoteName('#__categories'));
$query->where($this->db->quoteName('id') . ' = ' .
$cat[$i]);
$this->db->setQuery($query);
$result_query = (String) $this->db->loadResult();
array_push($cat_name, $result_query);
}
?>
81
Diseo e implementacin de una plataforma web para gestin documental ( WebDoc )
Por ello se propone cambiar el mdulo Mini Frontpage que lista los
documentos de cada categora, por otro mdulo que sea dinmico y que
cambie segn la cantidad de subcategoras para cada tipo de archivo y
que no dependa de un nmero fijo de las mismas.
4.2. Conclusiones.
En general, puede afirmarse que se han conseguido todos los
objetivos propuestos inicialmente.
82
Diseo e implementacin de una plataforma web para gestin documental ( WebDoc )
5. Bibliografa
[1] PHP Definition. (s.f.) Accedido el 18 de Junio de 2013. http://php.net/
[3] CSS Specifications & Drafts (s.f.) Accedido el 18 de Junio de 2013. http://
www.w3.org/Style/CSS/
[9] Matilde Celma Gimnez, Juan Carlos Casamayor Rdenas, Laura Mota Herranz. El
lenguaje SQL, Bases de datos relacionales, Pearson Prentice-Hall, pp. 107-180, 2003.
[13] Announcing the JQuery Blog (24 de Enero de 2006) Accedido el 20 de Junio de
2013. http://blog.jquery.com/2006/01/
[16] The Apache Software Foundation (s.f.) Accedido el 1 de Julio de 2013. http://
www.apache.org/
[17] MySQL. The worlds most popular open source database (s.f.) Accedido el 1 de
Julio de 2013. http://www.mysql.com/
83
Diseo e implementacin de una plataforma web para gestin documental ( WebDoc )
[19] Systems Modeling Language (SysML) (s.f.) Accedido el 3 de Julio de 2013. http://
www.sysml.org/
[26] Joomla! 2.5 Gua para Principiantes (s.f.) Accedido el 16 de Julio de 2013. http://
ayuda.joomlaspanish.org/ayuda-joomla/j25es.pdf
84