2. memoria 2.1 introducción -...

85
16 2. MEMORIA 2.1 Introducción Tras analizar el contexto en el que se plantea la necesidad de realización del proyecto, en este apartado desglosaremos técnicamente su desarrollo. Desde los objetivos iniciales planteados, hasta las conclusiones finales obtenidas, pasando por una presentación de las técnicas empleadas en su implementación. El proyecto planteado se compone de tres partes perfectamente diferenciadas: Interfaz de usuario: se trata de una web dedicada a la presentación de contenidos, que llamaremos “web GRVC” en adelante. Interfaz de administración: es la web desde la que se realizará la gestión de contenidos que aparecen en la web GRVC. La denominaremos “web de administración”. phpMyAdmin: se trata de una herramienta de gestión de base de datos que proporcionará el soporte DDL 7 en su totalidad y DML 8 masivo (carga y exportación de datos mediante scripts). En apartados sucesivos detallaremos el desarrollo de las interfaces de usuario y administración y la instalación y configuración de la herramienta empleada. 7 Lenguaje de definición de datos (Data Definition Language). Véase http://es.wikipedia.org/wiki/Lenguaje_de_definici%C3%B3n_de_datos 8 Lenguaje de Manipulación de Datos (Data Manipulation Language). Véase http://es.wikipedia.org/wiki/DML

Upload: lynga

Post on 12-Jul-2019

216 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: 2. MEMORIA 2.1 Introducción - bibing.us.esbibing.us.es/proyectos/abreproy/11957/descargar_fichero/Volumen+1+-+Memoria+del... · Véase C3%B3n_de_datos 8 Lenguaje de Manipulación

16

2. MEMORIA 2.1 Introducción

Tras analizar el contexto en el que se plantea la necesidad de

realización del proyecto, en este apartado desglosaremos técnicamente su

desarrollo. Desde los objetivos iniciales planteados, hasta las conclusiones

finales obtenidas, pasando por una presentación de las técnicas empleadas

en su implementación.

El proyecto planteado se compone de tres partes perfectamente

diferenciadas:

� Interfaz de usuario: se trata de una web dedicada a la presentación

de contenidos, que llamaremos “web GRVC” en adelante.

� Interfaz de administración: es la web desde la que se realizará la

gestión de contenidos que aparecen en la web GRVC. La

denominaremos “web de administración”.

� phpMyAdmin: se trata de una herramienta de gestión de base de

datos que proporcionará el soporte DDL7 en su totalidad y DML8

masivo (carga y exportación de datos mediante scripts).

En apartados sucesivos detallaremos el desarrollo de las interfaces de

usuario y administración y la instalación y configuración de la herramienta

empleada.

7 Lenguaje de definición de datos (Data Definition Language). Véase http://es.wikipedia.org/wiki/Lenguaje_de_definici%C3%B3n_de_datos 8 Lenguaje de Manipulación de Datos (Data Manipulation Language). Véase http://es.wikipedia.org/wiki/DML

Page 2: 2. MEMORIA 2.1 Introducción - bibing.us.esbibing.us.es/proyectos/abreproy/11957/descargar_fichero/Volumen+1+-+Memoria+del... · Véase C3%B3n_de_datos 8 Lenguaje de Manipulación

17

2.2 Objetivos y alcance

En línea con lo comentado en la introducción, el objetivo del proyecto

es beneficiarnos de las enormes posibilidades que nos ofrecen las TIC9 para

dotar al Grupo de Robótica, Visión y Control de un medio de difusión de la

información con un reducido coste en recursos, así como facilidad de

mantenimiento para que sea factible la actualización de los contenidos que

ofrece.

La opción elegida se compone de un portal web de presentación de

contenidos, “web GRVC”, unido a una interfaz web para gestión de esos

contenidos, “web de administración”, todo realizado en software libre. Se ha

elegido PHP como la forma de implementación más apropiada.

Para la persistencia de datos se ha seleccionado un servidor de base

de datos MySQL.

El portal web GRVC deberá cumplir los siguientes objetivos:

� Presentación clara, detallada, accesible y atractiva de la

información.

� Interfaz intuitiva y dinámica.

� Navegación sencilla y con acceso rápido a los diversos apartados.

� Posibilidad de escoger el idioma de la información en castellano o

inglés.

� Evitar mostrar e-mail en código.

� Tablón donde situar contenidos destacables.

� Herramienta para exportar información a archivo en formato

BibTeX.

� Herramienta que permita buscar contenidos concretos.

� Todos los contenidos deben obtenerse de la base de datos.

� Integración de aplicación de control de estadísticas de tráfico web.

9 Tecnologías de la información y la comunicación. Véase http://es.wikipedia.org/wiki/TIC

Page 3: 2. MEMORIA 2.1 Introducción - bibing.us.esbibing.us.es/proyectos/abreproy/11957/descargar_fichero/Volumen+1+-+Memoria+del... · Véase C3%B3n_de_datos 8 Lenguaje de Manipulación

18

La interfaz web de administración también deberá seguir unas pautas:

� Autenticación de usuarios contra la base de datos.

� Accesibilidad directa y sencilla a cualquier tabla.

� Mostrar información del modelo de datos (estructura de las tablas).

� Proporcionar mantenimiento de la base de datos MySQL.

� Herramienta para exportar información a archivo en formato

BibTeX.

� Herramienta para importar información de archivo en formato

BibTeX.

� Herramienta que permita buscar contenidos concretos.

� Integración de editor para insertar texto enriquecido.

� La interfaz debe ser sencilla e intuitiva, dada la posibilidad de que

sea utilizada por personas carentes de conocimientos técnicos en

bases de datos.

En el alcance se han detallado algunos objetivos:

� El acceso al portal web de administración se realizara vía url, nunca

a través de un enlace desde la web GRVC.

� El soporte DDL de la base de datos MySQL será ofrecido por la

aplicación phpMyAdmin, no por la interfaz web de administración.

� La carga de datos mediante scripts será ofrecido por la aplicación

PHPMyAdmin, no por la interfaz web de administración.

� El soporte DML de la base de datos MySQL será realizado por la

interfaz web de administración.

� La exportación a un archivo en formato BibTeX deberá

implementarse tanto a nivel de tabla como de registro.

� La importación de un archivo en formato BibTeX se limitará a un

solo registro.

� La funcionalidad de importación/exportación BibTeX solo será

necesaria para el bloque publicaciones y estará integrada en el

buscador.

Page 4: 2. MEMORIA 2.1 Introducción - bibing.us.esbibing.us.es/proyectos/abreproy/11957/descargar_fichero/Volumen+1+-+Memoria+del... · Véase C3%B3n_de_datos 8 Lenguaje de Manipulación

19

� Para editar contenidos HTML se ha optado por integrar un editor

WYSIWYG, pero solo será necesario en un campo del bloque

proyectos.

2.3 Análisis del entorno tecnológico

2.3.1 Introducción

El desarrollo web demanda cada vez más interactividad y capacidad de

personalización de los sitios; las limitaciones que imponen enfoques como el

de HTML pueden ser superadas empleando tecnologías que ofrecen nuevas

posibilidades como PHP, JavaScript y MySQL.

En el presente proyecto fin de carrera se plantea desarrollar una

aplicación web compuesta por tres entidades principales:

� Un portal de presentación de contenidos realizado en PHP

� Un portal de gestión de contenidos realizado en PHP

� Una base de datos soportada por un servidor MySQL

La arquitectura cliente-servidor es la elegida para implementar la

aplicación y la conforman varios componentes:

� Un nodo cliente (navegador)

� Una nodo servidor (servidor web Apache con intérprete PHP)

� Un servidor de base de datos MySQL

En el cliente se ejecutará el código JavaScript, mientras el código PHP

se ejecutará en el servidor devolviendo éste las páginas formateadas en

HTML, que es el lenguaje que comprende la entidad cliente.

El servidor de base de datos MySQL es el que proporcionará la

persistencia de los datos de la aplicación.

Page 5: 2. MEMORIA 2.1 Introducción - bibing.us.esbibing.us.es/proyectos/abreproy/11957/descargar_fichero/Volumen+1+-+Memoria+del... · Véase C3%B3n_de_datos 8 Lenguaje de Manipulación

20

Podemos ver un esquema de la arquitectura empleada:

Figura 1. Arquitectura en la que está implementado el proyecto.

2.3.2 PHP

PHP10 es un lenguaje de programación interpretado11 de alto nivel,

embebido en el código HTML, diseñado originalmente para la creación de

páginas web dinámicas. Es usado principalmente en interpretación del lado

del servidor (server-side scripting) pero actualmente puede ser utilizado

desde una interfaz de línea de comandos o en la creación de otros tipos de

programas incluyendo aplicaciones con interfaz gráfica.

Cuando el cliente hace una petición al servidor para que le envíe una

página web, el servidor ejecuta el intérprete de PHP. Éste procesa el script

solicitado que generará el contenido de manera dinámica (por ejemplo

obteniendo información de una base de datos). El resultado es enviado por el

intérprete al servidor, quien a su vez se lo envía al cliente.

10 Véase http://es.wikipedia.org/wiki/PHP 11 Lenguaje de programación que está diseñado para ser ejecutado por medio de un intérprete, es decir, que cada instrucción debe pasar por una interpretación en tiempo de ejecución. Véase http://es.wikipedia.org/wiki/Lenguaje_interpretado

Page 6: 2. MEMORIA 2.1 Introducción - bibing.us.esbibing.us.es/proyectos/abreproy/11957/descargar_fichero/Volumen+1+-+Memoria+del... · Véase C3%B3n_de_datos 8 Lenguaje de Manipulación

21

Sus principales ventajas son:

� Permite la programación dinámica de sitios web.

� Combina potencia, versatilidad y sencillez de aprendizaje.

� Se comunica perfectamente con HTML y Java Script, permitiendo

alcanzar un elevado nivel de integración con el navegador.

� Es un lenguaje de programación Open Source.

Su interacción con MySQL se basa en el envío de peticiones con

sentencias SQL a través de las funciones que contiene el API12. El API de

PHP es muy amplio, cuenta con multitud de funciones para manejar cadenas,

arrays y en general cualquier tipo de datos.

2.3.3 MySQL

MySQL13 es un sistema de gestión de base de datos relacional,

multihilo14 y multiusuario. Está desarrollado en su mayor parte en ANSI C.

Sus principales ventajas son:

� Es una herramienta Open Source. Aunque existen licencias de pago

destinadas a grandes usuarios.

� Existen en Internet gran cantidad de documentación.

� Es más rápido y eficiente que la mayoría de los gestores que hay

en el mercado.

� Permite una gran versatilidad a la hora de almacenar y gestionar

todo tipo de datos.

� Se administra mediante sentencias SQL.

12 Interfaz de programación de aplicaciones o API es el conjunto de funciones y procedimientos que ofrece cierta biblioteca para ser utilizado por otro software como una capa de abstracción. Véase http://es.wikipedia.org/wiki/API 13 Véase http://es.wikipedia.org/wiki/MySQL 14 Hilo de ejecución o subproceso es una característica que permite a una aplicación realizar varias tareas a la vez (concurrentemente). Véase http://es.wikipedia.org/wiki/Hilo_en_sistemas_operativos

Page 7: 2. MEMORIA 2.1 Introducción - bibing.us.esbibing.us.es/proyectos/abreproy/11957/descargar_fichero/Volumen+1+-+Memoria+del... · Véase C3%B3n_de_datos 8 Lenguaje de Manipulación

22

2.3.4 Servidor HTTP Apache

El servidor HTTP Apache15 es un servidor web HTTP Open Source

que implementa el protocolo HTTP/1.1 y la noción de sitio virtual. El servidor

Apache se desarrolla dentro del proyecto HTTP Server (httpd) de la Apache

Software Foundation.

Apache presenta entre otras características altamente configurables,

bases de datos de autenticación y negociado de contenido, pero fue criticado

por la falta de una interfaz gráfica que ayude en su configuración.

La mayoría de las vulnerabilidades de la seguridad descubiertas y

resueltas tan sólo pueden ser aprovechadas por usuarios locales y no

remotamente. Sin embargo, algunas se pueden accionar remotamente en

ciertas situaciones, o explotar por los usuarios locales malévolos en las

disposiciones de recibimiento compartidas que utilizan PHP como módulo de

Apache.

La arquitectura del servidor Apache es muy modular. El servidor

consta de una sección core y diversos módulos que aportan mucha de la

funcionalidad que podría considerarse básica para un servidor web. Algunos

de estos módulos son:

� mod_ssl - Comunicaciones Seguras vía TLS.

� mod_rewrite - reescritura de direcciones (generalmente utilizado

para transformar páginas dinámicas como php en páginas estáticas

HTML para así engañar a los navegantes o a los motores de búsqueda

en cuanto a cómo fueron desarrolladas estas páginas).

� mod_dav - Soporte del protocolo WebDAV (RFC 2518).

� mod_deflate - Compresión transparente con el algoritmo deflate del

contenido enviado al cliente.

� mod_auth_ldap - Permite autentificar usuarios contra un servidor

LDAP.

15 Véase http://es.wikipedia.org/wiki/Servidor_HTTP_Apache

Page 8: 2. MEMORIA 2.1 Introducción - bibing.us.esbibing.us.es/proyectos/abreproy/11957/descargar_fichero/Volumen+1+-+Memoria+del... · Véase C3%B3n_de_datos 8 Lenguaje de Manipulación

23

� mod_proxy_ajp - Conector para enlazar con el servidor Jakarta

Tomcat de páginas dinámicas en Java (servlets y JSP).

El servidor de base puede ser extendido con la inclusión de módulos

externos entre los cuales se encuentran:

• mod_cband - Control de tráfico y limitador de ancho de banda.

• mod_perl - Páginas dinámicas en Perl.

• mod_php - Páginas dinámicas en PHP.

• mod_python - Páginas dinámicas en Python.

• mod_rexx - Páginas dinámicas en REXX y Object REXX.

• mod_ruby - Páginas dinámicas en Ruby.

• mod_aspdotnet - Páginas dinámicas en .NET de Microsoft (Módulo

retirado).

• mod_mono - Páginas dinámicas en Mono

• mod_security - Filtrado a nivel de aplicación, para seguridad.

Apache es usado principalmente para enviar páginas web estáticas y

dinámicas en la World Wide Web. Muchas aplicaciones web están diseñadas

asumiendo como ambiente de implantación a Apache, o que utilizarán

características propias de este servidor web.

La mayor parte de la configuración se realiza en el fichero apache2.conf o

httpd.conf, según el sistema donde esté corriendo. Cualquier cambio en este

archivo requiere reiniciar el servidor, o forzar la lectura de los archivos de

configuración nuevamente.

Page 9: 2. MEMORIA 2.1 Introducción - bibing.us.esbibing.us.es/proyectos/abreproy/11957/descargar_fichero/Volumen+1+-+Memoria+del... · Véase C3%B3n_de_datos 8 Lenguaje de Manipulación

24

2.3.5 Javascript

Javascript16 es un lenguaje de programación interpretado, dialecto

del estándar ECMAScript17. Se define como orientado a objetos18, basado en

prototipos19, imperativo20, débilmente tipado y dinámico.

Se utiliza principalmente en su forma del lado del cliente (client-side),

implementado como parte de un navegador web permitiendo mejoras en la

interfaz de usuario y páginas web dinámicas, aunque existe una forma de

Javascript del lado del servidor (Server-side Javascript o SSJS).

2.3.5.1 Plugins jqueryUI 1.8.2

jQuery UI21 es una biblioteca de componentes para el framework22

jQuery que le añaden un conjunto de plug-ins23, widgets24 y efectos visuales

para la creación de aplicaciones web.

16 Véase http://es.wikipedia.org/wiki/JavaScript 17 ECMAScript es una especificación de lenguaje de programación publicada por ECMA Internacional. Véase http://es.wikipedia.org/wiki/ECMAScript 18 Paradigma de programación que usa objetos y sus interacciones, para diseñar aplicaciones y programas informáticos. Los objetos son entidades que combinan estado (atributo), comportamiento (método) e identidad. Véase http://es.wikipedia.org/wiki/Programaci%C3%B3n_orientada_a_objetos 19 Estilo de programación orientada a objetos en el cual, las "clases" no están presentes, y la re-utilización de procesos (conocida como herencia en lenguajes basados en clases) se obtiene a través de la clonación de objetos ya existentes, que sirven de prototipos, extendiendo sus funcionalidades. Véase http://es.wikipedia.org/wiki/Programaci%C3%B3n_basada_en_prototipos 20 Paradigma de programación que describe la programación en términos del estado del programa y sentencias que cambian dicho estado. Véase http://es.wikipedia.org/wiki/Programaci%C3%B3n_imperativa 21 Véase http://es.wikipedia.org/wiki/JQuery_UI 22 Estructura conceptual y tecnológica de soporte definida. Véase http://es.wikipedia.org/wiki/Framework 23 Aplicación que se relaciona con otra para aportarle una función nueva y generalmente muy especifica. Véase http://es.wikipedia.org/wiki/Plugin 24 Pequeña aplicación o programa, usualmente presentado en archivos o ficheros pequeños que son ejecutados por un motor de widgets o Widget Engine. Véase http://es.wikipedia.org/wiki/Widget

Page 10: 2. MEMORIA 2.1 Introducción - bibing.us.esbibing.us.es/proyectos/abreproy/11957/descargar_fichero/Volumen+1+-+Memoria+del... · Véase C3%B3n_de_datos 8 Lenguaje de Manipulación

25

La biblioteca se divide en cuatro módulos:

� Núcleo: contiene las funciones básicas para el resto de módulos.

� Interacciones: añade comportamientos complejos a los elementos:

� Draggable: Hace al elemento arrastrable.

� Droppable: Permite que el elemento responda a elementos

arrastrables.

� Resizable: Permite redimensionar el elemento.

� Selectable: Permite seleccionar entre una lista de

elementos.

� Sortable: Ordena una lista de elementos.

� Widgets: Es un conjunto completo de controles UI. Cada

control tiene un conjunto de opciones configurables y se les

pueden aplicar estilos CSS.

� Accordion: Menú con efecto acordeón.

� Dialog: Ventanas con contenido.

� Slider: Elemento para elegir en un rango de valores.

� Tabs: Pestañas

� Datepicker: Calendario gráfico.

� Progressbar: Barra de progreso.

� Efectos: una API para añadir transiciones animadas y facilidades

para interacciones.

Se utiliza igual que cualquier otra extensión para jQuery, sólo hay que

añadir los ficheros .js a la página. Primero debe aparecer la biblioteca jQuery

y después el resto:

<link type="text/css" href="css/themename/jquery-ui-1.7.1.custom.css" rel="Stylesheet" /> <script type="text/javascript" src="js/jquery-1.3.2.min.js"></script> <script type="text/javascript" src="js/jquery-ui-1.7.1.custom.min.js"></script>

Ejemplo 1. Código que permite integrar jQueryUI en el proyecto.

Page 11: 2. MEMORIA 2.1 Introducción - bibing.us.esbibing.us.es/proyectos/abreproy/11957/descargar_fichero/Volumen+1+-+Memoria+del... · Véase C3%B3n_de_datos 8 Lenguaje de Manipulación

26

2.3.5.2 nicEdit 0.9 r23

NicEdit25 es un editor WYSIWYG integrado para sitios web. Su

objetivo es ser lo más simple y rápido como sea posible para los usuarios de

la aplicación.

NicEdit es extremadamente ligero y puede ser fácilmente integrado a

cualquier sitio con un impacto mínimo, al mismo tiempo proporcionando a

los visitantes un medio eficaz para expresarse en texto enriquecido.

Figura 2. Ventana emergente del editor WYSIWYG.

2.3.5.3 BibTeX Parser 0.1

JavaScript BibTeX Parser es un conjunto de funciones codificadas

en JavaScript que toman un archivo BibTeX (.bib), lo analizan y devuelven

25 Véase http://nicedit.com/

Page 12: 2. MEMORIA 2.1 Introducción - bibing.us.esbibing.us.es/proyectos/abreproy/11957/descargar_fichero/Volumen+1+-+Memoria+del... · Véase C3%B3n_de_datos 8 Lenguaje de Manipulación

27

los valores asociados a los campos apropiados. Entonces estos datos pueden

formatearse para adaptarse a la tecnología de persistencia empleada. El

archivo BibTeX puede contener uno o varios registros.

2.3.5.4 Google Analytics

Google Analytics26 es un servicio gratuito de estadísticas de sitios

web. Ofrece información agrupada según los intereses de tres tipos distintos

de personas involucradas en el funcionamiento de una página: ejecutivos,

técnicos de marketing y webmasters.

Se pueden obtener informes como el seguimiento de usuarios

exclusivos, el rendimiento del segmento de usuarios, los resultados de la

campaña de marketing, el marketing de motores de búsqueda, las pruebas

de versión de anuncios, el rendimiento del contenido, el análisis de

navegación, los objetivos y proceso de redireccionamiento o los parámetros

de diseño web.

Se comienza añadiendo un código JavaScript a cada una de las

páginas que se desea analizar, al que se denomina GATC (Google Analytics

Tracking Code). Este carga algunos archivos desde los servidores Google y

monitoriza para luego enviar toda esta información al servidor Google y

almacenarla en la cuenta de cada usuario.

Para funcionar, el GATC carga un archivo más grande desde el

servidor web de Google, y luego asigna a las variables con el número de

cuenta del usuario. El archivo más grande (actualmente conocido como

ga.js) es típicamente de 18 KB en tamaño y solo se descarga una vez al

comienzo de la visita, ya que se almacenará en la caché durante el resto de

la sesión. Como todos los sitios web que implementan Google Analytics con

el código de ga.js usan el mismo archivo maestro de Google, un visitante

que anteriormente hubiera visitado cualquier otro sitio con este código

implementado también tendrá el archivo en el caché de su máquina. El

26 Véase http://es.wikipedia.org/wiki/Google_Analytics

Page 13: 2. MEMORIA 2.1 Introducción - bibing.us.esbibing.us.es/proyectos/abreproy/11957/descargar_fichero/Volumen+1+-+Memoria+del... · Véase C3%B3n_de_datos 8 Lenguaje de Manipulación

28

resultado es que el aumento del tiempo de carga de la página al incluir el

código es mínima.

Tiene una interfaz muy completa de informes con gráficos

desarrollados en Adobe Flash. Recientemente se actualizó la interfaz pero

aun está disponible la interfaz antigua habilitada.

2.3.6 BibTeX

BibTeX27 es una herramienta para dar formato a listas de

referencias28 que se utiliza habitualmente con el sistema de preparación de

documentos LaTeX29.

Facilita la realización de citas bibliográficas de un modo consistente

mediante la separación de la información bibliográfica de la presentación de

esta información.

Usa un formato de archivo basado en texto e independiente del estilo

para definir listas de elementos bibliográficos, como artículos, libros, tesis.

Los archivos de bibliografía de BibTeX usualmente terminan en .bib. Los

ítems bibliográficos incluidos en un .bib están separados por tipos. Los tipos

siguientes son reconocidos por virtualmente todos los estilos de BibTeX:

� article: Un artículo de un journal o revista.

� book: Un libro con una editorial explícita. Campos requeridos:

author o editor, title, publisher, year.

� booklet: Una obra que está impresa y encuadernada (bound),

pero sin una editorial o institución patrocinadora (sponsoring).

� conference: Lo mismo que inproceedings, incluido para

compatibilidad con el lenguaje de markup Scribe.

27 Véase http://es.wikipedia.org/wiki/Bibtex 28 Listas de referencias o bibliografía es el estudio de referencia de los textos. Véase http://es.wikipedia.org/wiki/Bibliograf%C3%ADa 29 Sistema de composición de textos, orientado especialmente a la creación de libros, documentos científicos y técnicos que contengan fórmulas matemáticas. Véase http://es.wikipedia.org/wiki/LaTeX

Page 14: 2. MEMORIA 2.1 Introducción - bibing.us.esbibing.us.es/proyectos/abreproy/11957/descargar_fichero/Volumen+1+-+Memoria+del... · Véase C3%B3n_de_datos 8 Lenguaje de Manipulación

29

� inbook: Una parte de un libro, que puede ser un capítulo (o

sección) o un rango de páginas.

� incollection: Una parte de un libro que tiene su propio título.

� inproceedings: Un artículo en las actas de sesiones (proceedings)

de una conferencia.

� manual: Documentación técnica.

� mastersthesis: Una tesis de maestría o proyecto fin de carrera.

� misc: Para uso cuando los demás tipos no corresponden.

� phdthesis: Una tesis de doctorado.

� proceedings: Las actas de sesiones (proceedings) de una

conferencia.

� techreport: Un reporte publicado por una escuela (school) u otra

institución, usualmente numerado dentro de una serie.

� unpublished: Un documento que tiene un autor y título, pero que

no fue formalmente publicado.

En nuestro proyecto solo trabajaremos con cuatro tipos:

� article (revistas)

� book (libro)

� inbook (capítulos de libros)

� inproceedings (conferencias)

Un archivo .bib puede contener la siguiente entrada, que describe un manual

de matemáticas:

@Book{abramowitz+stegun, author = "Milton Abramowitz and Irene A. Stegun", title = "Handbook of Mathematical Functions", publisher = "Dover", year = 1964, address = "New York", edition = "ninth Dover printing, tenth GPO printing", isbn = "0-486-61272-4" }

Ejemplo 2. Registro con formato BibTeX.

Page 15: 2. MEMORIA 2.1 Introducción - bibing.us.esbibing.us.es/proyectos/abreproy/11957/descargar_fichero/Volumen+1+-+Memoria+del... · Véase C3%B3n_de_datos 8 Lenguaje de Manipulación

30

2.3.7 Herramientas de desarrollo

2.3.7.1 Eclipse (Galileo SR2)

Para realizar el desarrollo de los portales web se ha empleado como

IDE30 Eclipse (Galileo), por ser el más sencillo y versátil.

2.3.7.2 XAMPP 1.7.3

Como soporte de servidores se ha empleado XAMPP31, que es un

servidor independiente de plataforma, software libre, que consiste

principalmente en la base de datos MySQL, el servidor Web Apache y los

intérpretes para lenguajes de script: PHP y Perl. El nombre proviene del

acrónimo de X (para cualquiera de los diferentes sistemas operativos),

Apache, MySQL, PHP, Perl. El programa está liberado bajo la licencia GNU y

actúa como un servidor Web libre, fácil de usar y capaz de interpretar

páginas dinámicas.

2.3.7.3 MySQL Workbench 5.1.18

MySQL Workbench32 es un software creado por Sun Microsystems.

Esta herramienta permite modelar diagramas de entidad-relación para bases

de datos MySQL. Puede utilizarse para diseñar el esquema de una base de

datos nueva, documentar una ya existente o realizar una migración

compleja.

La aplicación elabora una representación visual de las tablas, vistas,

procedimientos almacenados y claves foráneas de la base de datos. Además,

es capaz de sincronizar el modelo en desarrollo con la base de datos real,

ingeniería inversa para importar el esquema de una base de datos ya

30 Un entorno de desarrollo integrado (integrated development environment) es un programa informático compuesto por un conjunto de herramientas de programación. Véase http://es.wikipedia.org/wiki/Entorno_de_desarrollo_integrado 31 Véase http://es.wikipedia.org/wiki/XAMPP 32 Véase http://es.wikipedia.org/wiki/MySQL_Workbench

Page 16: 2. MEMORIA 2.1 Introducción - bibing.us.esbibing.us.es/proyectos/abreproy/11957/descargar_fichero/Volumen+1+-+Memoria+del... · Véase C3%B3n_de_datos 8 Lenguaje de Manipulación

31

existente el cual haya sido guardado o hecho copia de seguridad con MySql

Administrator.

MySQL Workbench también puede generar el guión necesario para

crear la base de datos que se ha dibujado en el esquema.

2.3.7.4 phpMyAdmin 3.2.4

phpMyAdmin33 es una herramienta escrita en PHP con la intención de

manejar la administración de MySQL a través de páginas web, utilizando

Internet. Actualmente puede crear y eliminar Bases de Datos, crear, eliminar

y alterar tablas, borrar, editar y añadir campos, ejecutar cualquier sentencia

SQL, administrar claves en campos, administrar privilegios, exportar datos

en varios formatos y está disponible en 62 idiomas. Se encuentra disponible

bajo la licencia GPL.

2.3.8 Doxygen 1.7.1

Doxygen34 es un generador de documentación para C++, C, Java,

Objective-C, Python, IDL (versiones Corba y Microsoft) y en cierta medida

para PHP, C# y D. Doxygen es un acrónimo de dox(document)

gen(generator), generador de documentación para código fuente.

El siguiente ejemplo ilustra la forma de documentar un fichero fuente:

/** * La clase Time representa un momento del tiempo. * * \author Nombre del Autor */ class Time { /** * El constructor que inicializa el valor de tiempo. * \param timemillis Número de milisegundos desde el 1 de enero de 1970 */

33 Véase http://es.wikipedia.org/wiki/PhpMyAdmin 34 Véase http://es.wikipedia.org/wiki/Doxygen

Page 17: 2. MEMORIA 2.1 Introducción - bibing.us.esbibing.us.es/proyectos/abreproy/11957/descargar_fichero/Volumen+1+-+Memoria+del... · Véase C3%B3n_de_datos 8 Lenguaje de Manipulación

32

Time(int timemillis) { ... } /** * Obtener la hora actual. * \return Un objeto time, con la hora actual. */ static Time now() { ... } }

Ejemplo 3. Código que permite comentar una clase usando Doxygen.

2.4 Desarrollo del trabajo

2.4.1 Arquitectura de los portales

La Arquitectura de Software en la que está basado el proyecto es

impuesta por la tecnología empleada en su desarrollo. PHP+MySQL trabajan

en una arquitectura cliente-servidor35. PHP requiere una interpretación en el

servidor que devuelve código HTML que es leído por el cliente y el

funcionamiento de MySQL se basa en el lanzamiento, por parte del cliente,

de sentencias SQL contra el servidor de base de datos.

Figura 3. Arquitectura en la que está implementado el proyecto.

35 Esta arquitectura consiste básicamente en un cliente que realiza peticiones a otro programa (el servidor) que le da respuesta. Véase http://es.wikipedia.org/wiki/Cliente-servidor

Page 18: 2. MEMORIA 2.1 Introducción - bibing.us.esbibing.us.es/proyectos/abreproy/11957/descargar_fichero/Volumen+1+-+Memoria+del... · Véase C3%B3n_de_datos 8 Lenguaje de Manipulación

33

Durante la planificación del proyecto se ha tratado de orientar esta

arquitectura cliente-servidor hacia un modelo basado en tres niveles o

capas36:

� Capa de presentación: es la que ve el usuario (también se la

denomina "capa de usuario"), presenta el sistema al usuario, le

comunica la información y captura la información del usuario en

un mínimo de proceso (realiza un filtrado previo para

comprobar que no hay errores de formato). También es

conocida como interfaz gráfica y debe tener la característica de

ser "amigable" (entendible y fácil de usar) para el usuario. Esta

capa se comunica únicamente con la capa de negocio.

� Capa de negocio: es donde residen los programas que se

ejecutan, se reciben las peticiones del usuario y se envían las

respuestas tras el proceso. Se denomina capa de negocio (e

incluso de lógica del negocio) porque es aquí donde se

establecen todas las reglas que deben cumplirse. Esta capa se

comunica con la capa de presentación, para recibir las

solicitudes y presentar los resultados, y con la capa de datos,

para solicitar al gestor de base de datos almacenar o recuperar

datos de él. También se consideran aquí los programas de

aplicación.

� Capa de datos: es donde residen los datos y es la encargada

de acceder a los mismos. Está formada por uno o más gestores

de bases de datos que realizan todo el almacenamiento de

datos, reciben solicitudes de almacenamiento o recuperación de

información desde la capa de negocio.

36 La programación por capas es un estilo de programación en el que el objetivo primordial es la

separación de la lógica de negocios de la lógica de diseño; un ejemplo básico de esto consiste en separar la capa de datos de la capa de presentación al usuario. Véase http://es.wikipedia.org/wiki/Arquitectura_de_tres_niveles

Page 19: 2. MEMORIA 2.1 Introducción - bibing.us.esbibing.us.es/proyectos/abreproy/11957/descargar_fichero/Volumen+1+-+Memoria+del... · Véase C3%B3n_de_datos 8 Lenguaje de Manipulación

34

Figura 4. Modelo de niveles o capas.

Si bien, dada la naturaleza intrínseca del proyecto, solo ha sido posible

implementar en parte la arquitectura en capas mencionada:

� Capa de presentación y de negocio: tanto la navegación

como la consulta genérica de contenidos se ha decidido integrar

junto con la presentación de estos, dada la simplicidad de las

peticiones.

� Capa de negogio: podemos exceptuar, sin embargo, algunas

funcionalidades concretas de la aplicación que al ser más

complejas se han aislado para facilitar el mantenimiento. Es el

caso de los buscadores y la importación y exportación BibTeX.

� Capa de datos: se concreta en una clase que implementa

todos los métodos que interactúan con la base de datos MySQL.

Cada paradigma de desarrollo exige diferente número y tipo de vistas o

modelos para describir una arquitectura. No obstante, existen al menos tres

vistas absolutamente fundamentales en cualquier arquitectura:

Page 20: 2. MEMORIA 2.1 Introducción - bibing.us.esbibing.us.es/proyectos/abreproy/11957/descargar_fichero/Volumen+1+-+Memoria+del... · Véase C3%B3n_de_datos 8 Lenguaje de Manipulación

35

� La visión estática: describe qué componentes tiene la

arquitectura. En las figuras 5 y 6, podemos observar dos

diagramas que muestran los componentes de ambos portales web,

así como la relación existente entre ellos.

� La visión funcional: describe qué hace cada componente. Esta

información se especifica en la documentación obtenida mediante

doxygen en el apartado 2.4.5, en la que se detalla la función y el

comportamiento de cada componente.

� La visión dinámica: describe cómo se comportan los componentes

a lo largo del tiempo y como interactúan entre sí. Por su

simplicidad no parece necesario un análisis temporal del sistema.

Page 21: 2. MEMORIA 2.1 Introducción - bibing.us.esbibing.us.es/proyectos/abreproy/11957/descargar_fichero/Volumen+1+-+Memoria+del... · Véase C3%B3n_de_datos 8 Lenguaje de Manipulación

36

Figura 5. Diagrama de flujo de la interfaz de usuario.

Page 22: 2. MEMORIA 2.1 Introducción - bibing.us.esbibing.us.es/proyectos/abreproy/11957/descargar_fichero/Volumen+1+-+Memoria+del... · Véase C3%B3n_de_datos 8 Lenguaje de Manipulación

37

Figura 6. Diagrama de flujo de la interfaz de administración.

Page 23: 2. MEMORIA 2.1 Introducción - bibing.us.esbibing.us.es/proyectos/abreproy/11957/descargar_fichero/Volumen+1+-+Memoria+del... · Véase C3%B3n_de_datos 8 Lenguaje de Manipulación

38

2.4.2 Interfaces

Las interfaces de ambos portales han sido diseñadas para simplificar el

acceso a la información tanto para el usuario común, como para el usuario

administrador, incluso si el portal es desconocido.

2.4.2.1 Interfaz de usuario

La interfaz de usuario es el portal de presentación de contenidos, que

hemos denominado web GRVC. Se divide básicamente en tres partes:

� Cabecera o header: contiene varios enlaces a otras webs y la

selección del idioma del portal.

� Menú: nos permite navegar a través de los contenidos de la

web.

� Pantalla principal: incorpora complementos como un

calendario, un tablón de contenidos destacados o un buscador

de contenidos.

Figura 7. Página principal de la interfaz de usuario.

Navegando a través del menú, podemos analizar la pantalla que nos

permite visualizar los contenidos de un bloque, en este caso proyectos.

Page 24: 2. MEMORIA 2.1 Introducción - bibing.us.esbibing.us.es/proyectos/abreproy/11957/descargar_fichero/Volumen+1+-+Memoria+del... · Véase C3%B3n_de_datos 8 Lenguaje de Manipulación

39

En la figura 8, en color rojo, podemos ver un submenú compuesto por

pestañas, que nos permite visualizar diferentes temáticas dentro de un

mismo bloque.

En la misma figura, en color naranja y verde observamos la estructura

de acordeón (accordion), desplegado y plegado respectivamente, que hemos

elegido para presentar la información de forma compacta.

Figura 8. Bloque proyectos de la interfaz de usuario. 2.4.2.2 Interfaz de administración

La interfaz de administración es el portal de gestión de contenidos,

que hemos denominado web de administración. Se divide de nuevo en tres

partes:

� Cabecera o header: contiene varios enlaces a otras webs y un

buscador de contenidos del portal que también permite la

exportación de los resultados a formato BibTeX.

Page 25: 2. MEMORIA 2.1 Introducción - bibing.us.esbibing.us.es/proyectos/abreproy/11957/descargar_fichero/Volumen+1+-+Memoria+del... · Véase C3%B3n_de_datos 8 Lenguaje de Manipulación

40

� Menú: nos permite navegar a través de las tablas del esquema.

� Pantalla principal: nos muestra la estructura de las tablas del

esquema, también podemos acceder a ellas pulsando sobre su

nombre.

Figura 9. Pantalla principal de la interfaz de administración.

Analizando en la figura 10, la pantalla que muestra el contenido de

una tabla distinguimos en rojo un grupo de iconos cuyo ámbito de actuación

es la tabla completa. El grupo de iconos destacados en verde, solo se aplican

sobre el registro anexo. Además, en naranja encuadramos la información

contenida en la tabla.

Figura 10. Vista detalle de una tabla de la interfaz de administración.

Page 26: 2. MEMORIA 2.1 Introducción - bibing.us.esbibing.us.es/proyectos/abreproy/11957/descargar_fichero/Volumen+1+-+Memoria+del... · Véase C3%B3n_de_datos 8 Lenguaje de Manipulación

41

2.4.2.3 Interfaz de phpMyAdmin

La interfaz del gestor de contenidos phpMyAdmin tiene una estructura

similar a nuestra web de administración. Solo debería emplearse para

modificar la estructura de datos del esquema (funciones DDL) y para

importar o exportar datos de forma masiva mediante el uso de scripts, ya

que el resto de funciones DML son implementadas por nuestro gestor de

contenidos propio, en una interfaz mejor adaptada a nuestras necesidades.

Figura 11. Pantalla principal de la interfaz de phpMyAdmin. 2.4.3 Modelo de datos

La estructura de datos en la que se sustenta la persistencia de los

contenidos de nuestra web es simplemente un conjunto de tablas cuya

información está relacionada en su contexto, pero sin la presencia de foreign

keys37.

37 En el contexto de bases de datos relacionales, una clave foránea (o Foreign Key FK) es una limitación referencial entre dos tablas. Véase http://es.wikipedia.org/wiki/Clave_for%C3%A1nea

Page 27: 2. MEMORIA 2.1 Introducción - bibing.us.esbibing.us.es/proyectos/abreproy/11957/descargar_fichero/Volumen+1+-+Memoria+del... · Véase C3%B3n_de_datos 8 Lenguaje de Manipulación

42

La tecnología de almacenamiento que implementa la base de datos de

la web es InnoDB38. Se ha seleccionado en detrimento de MyISAM39 debido a

que ésta carece de tres características fundamentales:

� Incapacidad de ejecutar transacciones de tipo ACID40.

� No soporta bloqueo de registros.

� Integridad referencial no soportada.

Aunque nuestra actual configuración de datos no requiere integridad

referencial, pues no incorpora relaciones entre las tablas (foreign keys), es

posible que para una futura ampliación del esquema si sea necesario que la

tecnología de almacenamiento soporte esta característica.

En los siguientes apartados realizamos un análisis de las tablas y sus campos

realizando una división en tres grandes bloques:

� Publicaciones: incluye todas las tablas relacionadas con

publicaciones del Grupo de Robótica, Visión y Control.

� Proyectos: compuesto por las tablas que almacenan datos sobre los

proyectos realizados por el GRVC.

� Otros contenidos: el resto de información la incluimos en un solo

bloque genérico. Estas tablas son individuales y contienen información

diversa.

38 InnoDB es una tecnología de almacenamiento de datos de código abierto para la base de datos MySQL. Véase http://es.wikipedia.org/wiki/InnoDB 39 MyISAM es la tecnología de almacenamiento de datos usada por defecto por el sistema administrador de bases de datos relacionales MySQL. Véase http://es.wikipedia.org/wiki/MyISAM 40 ACID es un acrónimo de Atomicity, Consistency, Isolation and Durability: Atomicidad, Consistencia, Aislamiento y Durabilidad en español. Véase http://es.wikipedia.org/wiki/ACID

Page 28: 2. MEMORIA 2.1 Introducción - bibing.us.esbibing.us.es/proyectos/abreproy/11957/descargar_fichero/Volumen+1+-+Memoria+del... · Véase C3%B3n_de_datos 8 Lenguaje de Manipulación

43

2.4.3.1 Publicaciones

En este bloque almacenamos todas las tablas relacionadas con

cualquier publicación de contenidos, independientemente de su carácter:

libros, revistas, capítulos de libros, congresos…

La funcionalidad BibTeX comentada en el apartado de objetivos, es

exclusiva para este bloque de contenidos.

La autenticación de los usuarios en la interfaz de administración se

realiza contra la tabla pub_gestores.

Figura 12. Modelo de datos del bloque publicaciones.

2.4.3.2 Proyectos

En este bloque almacenamos todas las tablas relacionadas con

cualquier proyecto realizado, independientemente de su temática (robótica,

control o percepción) o de su ámbito (nacional o internacional). Las tablas

están duplicadas porque contienen datos en los dos idiomas disponibles en la

web.

El editor WYSIWYG integrado en las funciones de inserción y

actualización de registros es exclusivo para este bloque de contenidos.

Page 29: 2. MEMORIA 2.1 Introducción - bibing.us.esbibing.us.es/proyectos/abreproy/11957/descargar_fichero/Volumen+1+-+Memoria+del... · Véase C3%B3n_de_datos 8 Lenguaje de Manipulación

44

Figura 13. Modelo de datos del bloque proyectos.

2.4.3.3 Otros contenidos

Este bloque es genérico y contiene información diversa no incluida en

los dos anteriores. Se trata de contenido con escaso volumen de datos.

Figura 14. Modelo de datos del bloque genérico.

Page 30: 2. MEMORIA 2.1 Introducción - bibing.us.esbibing.us.es/proyectos/abreproy/11957/descargar_fichero/Volumen+1+-+Memoria+del... · Véase C3%B3n_de_datos 8 Lenguaje de Manipulación

45

2.4.4 Algoritmos no triviales

En este apartado analizaremos más detalladamente los algoritmos

más complejos implementados en nuestros portales web. Esto pretende

facilitar la mantenibilidad de la aplicación. En la documentación generada

con Doxygen, también podemos encontrar información sobre ellos, pero con

un carácter menos detallado.

2.4.4.1 Importar BibTeX

Detallamos todos los pasos que se siguen para realizar esta

funcionalidad:

I.- Se accede a la funcionalidad a través de un icono habilitado en

cualquier tabla del bloque publicaciones. Este, nos lleva a una página

que nos permite cargar un documento que contenga información en

formato BibTeX.

II.- La página para cargar el documento se implementa como un

formulario HTML que incluye una propiedad enctype=”multipart/form-

data”. Al adjuntar el documento, nos redirige a una página en la que

se analiza el contenido del documento.

III.- En esta nueva página, se extrae el texto incluido en el documento

mediante funciones de lectura implementadas en las librerías de PHP y

se almacena en una variable.

IV.- El flujo web cambia a tecnología JavaScript transfiriendo la

variable que contiene la información BibTeX previamente almacenada

en la parte PHP de la página. Todo este proceso es invisible al usuario.

Una librería JavaScript nos proporciona las funciones necesarias

para el procesamiento de la información obtenida del documento,

formateando la cadena de caracteres inicial como un vector de

cadenas, facilitando el análisis de los datos.

Page 31: 2. MEMORIA 2.1 Introducción - bibing.us.esbibing.us.es/proyectos/abreproy/11957/descargar_fichero/Volumen+1+-+Memoria+del... · Véase C3%B3n_de_datos 8 Lenguaje de Manipulación

46

De este modo, detectamos el tipo de dato BibTeX (inbook, book,

article o inproceedings), formateando el resto de los datos en función

de esto.

V.- Una vez finalizado el análisis, se produce la transferencia inversa

de los datos a HTML, mediante un formulario HTML dinámico

implementado desde JavaScript. Esto nos devuelve el flujo web a la

pantalla, para que el usuario pueda comprobar los datos una vez

importados.

VI.- Si el usuario confirma que no existen errores, se transforma el

formato para realizar una inserción en nuestra tabla, simplemente

asociando los campos BibTeX obtenidos del documento, a los campos

de nuestra tabla.

2.4.4.2 Exportar BibTeX

Esta funcionalidad está implementada tanto en la web GRVC como en

la web de administración. El proceso en ambos casos es el mismo, con

alguna pequeña particularidad:

I.- El acceso a la funcionalidad puede efectuarse de dos formas

diferentes:

a.- En exclusiva desde la web de administración, a través de

dos iconos habilitados en cualquier tabla del bloque

publicaciones. Uno de los iconos realizará la exportación a nivel

de tabla y otro a nivel de registro. Ambos nos llevan a una

página que nos permitirá convertir la información de nuestra

base de datos a formato BibTeX.

b.- Desde ambos portales, podemos transformar un número

discreto de registros a formato BibTeX configurando así la salida

del buscador de contenidos. Esto nos lleva a la misma página

indicada en el caso anterior.

Page 32: 2. MEMORIA 2.1 Introducción - bibing.us.esbibing.us.es/proyectos/abreproy/11957/descargar_fichero/Volumen+1+-+Memoria+del... · Véase C3%B3n_de_datos 8 Lenguaje de Manipulación

47

II.- La página simplemente realiza una consulta filtrando por los

parámetros transferidos y establece el resultado obtenido en formato

BibTeX, imprimiéndolo paralelamente por pantalla y en un documento.

III.- Podemos extraer este documento posteriormente llamando a una

nueva página HTML con una cabecera especial header(‘Content-

Description: File Transfer’).

2.4.4.3 Editor WYSIWYG

La única dificultad de este algoritmo es el uso de una ventana

emergente (dialogue). El procedimiento es el siguiente:

I.- Se accede a la funcionalidad desde la pantalla de inserción o

actualización de las tablas del bloque de proyectos, a través de un

icono habilitado solamente en el campo “cuerpo” (“body” en el caso de

las tablas en inglés). Este, abre una ventana emergente empleando

funciones desarrolladas en JavaScript, en la que está integrado el

editor WYSIWYG.

II.- Si se accede desde la pantalla de inserción, el editor aparecerá sin

contenido, pero si se accede desde actualización, el contenido del

registro se volcará en el editor.

III.- Una vez finalizada la introducción de texto, se guarda,

recuperándose el contenido del editor en la misma página. Los datos

se recogen de la url, empleando $_SERVER[‘REQUEST_URI’] y se

devuelve como valor de retorno de la ventana emergente, volcándose

en el registro correspondiente de la ventana de inserción o

actualización.

Page 33: 2. MEMORIA 2.1 Introducción - bibing.us.esbibing.us.es/proyectos/abreproy/11957/descargar_fichero/Volumen+1+-+Memoria+del... · Véase C3%B3n_de_datos 8 Lenguaje de Manipulación

48

2.4.5 Documentación generada con Doxygen 2.4.5.1 Jerarquía de directorios y lista de archivos 2.4.5.1.1 grvc/adm/

Referencia del directorio C:/xampp/htdocs/grvc/adm/

� cargarBibtexAdm.php

Permite incorporar un fichero en formato BibTeX para analizarlo posteriormente.

Referencia del Archivo C:/xampp/htdocs/grvc/adm/cargarBibtexAdm.php

Definición en el archivo cargarBibtexAdm.php.

Descripción detallada

Permite incorporar un fichero en formato BibTeX para analizarlo posteriormente.

Autor:

Jose Maria Maqueda Tamairón

Nota:

El fichero puede ser .bib o .txt y menor de un 1KB

Ver también:

importarBibtexAdm.php

� delete.php

Eliminación de registros.

Referencia del Archivo C:/xampp/htdocs/grvc/adm/delete.php

Definición en el archivo delete.php.

Descripción detallada

Eliminación de registros.

Autor:

Jose Maria Maqueda Tamairón

Page 34: 2. MEMORIA 2.1 Introducción - bibing.us.esbibing.us.es/proyectos/abreproy/11957/descargar_fichero/Volumen+1+-+Memoria+del... · Véase C3%B3n_de_datos 8 Lenguaje de Manipulación

49

Nota:

Los registros ya eliminados se muestran por pantalla, para poder recuperarlos en caso de borrado accidental

Variables

$sql = new MySQLDB

Object: gestión de la conexión BD.

$connection = null

Connection: identificador de conexión a la BD.

$tabla = null

String: tabla en la que se encuentra el registro a eliminar.

$pk = null

String: campo que contiene la clave primaria de la tabla.

$id = 0

Integer: identificador único del registro a eliminar.

$dml = null

String: sentencia de eliminación a realizar sobre $tabla.

$array_dml = null

Array: conjunto de sentencias dml a realizar en una misma transacción sobre $tabla.

$query = null

String: consulta realizada sobre $tabla.

$select = null

Pointer: recurso BD devuelto por el método lanzar_query().

Ver también:

MySQLDB Definición en la línea 33 del archivo delete.php.

$record = null

Array: registro BD devuelto por el método fetch_row().

Ver también:

MySQLDB Definición en la línea 38 del archivo delete.php.

$query_desc = null

String: consulta de la estructura de $tabla.

$describe = null

Pointer: recurso BD devuelto por el método lanzar_query().

Ver también:

MySQLDB Definición en la línea 45 del archivo delete.php.

$record_desc = null

Array: registro BD devuelto por el método fetch_row().

Ver también:

Page 35: 2. MEMORIA 2.1 Introducción - bibing.us.esbibing.us.es/proyectos/abreproy/11957/descargar_fichero/Volumen+1+-+Memoria+del... · Véase C3%B3n_de_datos 8 Lenguaje de Manipulación

50

MySQLDB Definición en la línea 50 del archivo delete.php.

� descargarBibtexAdm.php

Permite descargar un archivo exportado previamente a formato BibTeX desde parte de administración.

Referencia del Archivo C:/xampp/htdocs/grvc/adm/descargarBibtexAdm.php

Definición en el archivo descargarBibtexAdm.php.

Descripción detallada

Permite descargar un archivo exportado previamente a formato BibTeX desde parte de administración.

Autor:

Jose Maria Maqueda Tamairón

Nota:

Solo disponible para las tablas de publicaciones

Ver también:

exportarBibtexAdm.php

Variables

$nombre_archivo = null

String: recupera el nombre del archivo enviado por exportarBibtexAdm.php.

� exportarBibtexAdm.php

Mostrar el detalle de la tabla o el resultado de la consulta en formato BibTeX.

Referencia del Archivo C:/xampp/htdocs/grvc/adm/exportarBibtexAdm.php

Definición en el archivo exportarBibtexAdm.php.

Descripción detallada

Mostrar el detalle de la tabla o el resultado de la consulta en formato BibTeX.

Page 36: 2. MEMORIA 2.1 Introducción - bibing.us.esbibing.us.es/proyectos/abreproy/11957/descargar_fichero/Volumen+1+-+Memoria+del... · Véase C3%B3n_de_datos 8 Lenguaje de Manipulación

51

Autor:

Jose Maria Maqueda Tamairón

Nota:

Solo disponible para tablas del bloque publicaciones

Ver también:

descargarBibtexAdm.php

Variables

$sql = new MySQLDB

Object: gestión de la conexión BD.

$connection = null

Connection: identificador de conexión a la BD.

$tabla = null

String: recupera la tabla de la consulta.

$columna = null

String: recupera la columna que filtra la consulta.

$condicion = null

String: recupera la condición que filtra la consulta.

$valor = null

String: recupera el valor que filtra la consulta.

$orden = null

String: recupera el orden establecido para el resultado de la consulta.

$texto = null

String: muestra por pantalla la consulta realizada sobre $tabla.

$query = null

String: consulta realizada sobre $tabla.

$select = null

Pointer: recurso BD devuelto por el método lanzar_query().

Ver también:

MySQLDB Definición en la línea 35 del archivo exportarBibtexAdm.php.

$record = null

Array: registro BD devuelto por el método fetch_row().

Ver también:

MySQLDB Definición en la línea 40 del archivo exportarBibtexAdm.php.

$header = null

String: cabecera del documento BibTeX.

$cols = null

Page 37: 2. MEMORIA 2.1 Introducción - bibing.us.esbibing.us.es/proyectos/abreproy/11957/descargar_fichero/Volumen+1+-+Memoria+del... · Véase C3%B3n_de_datos 8 Lenguaje de Manipulación

52

String: columnas de la consulta.

$num_cols = 0

Integer: número de columnas de la tabla y/o posición de la PK de la tabla.

$col_year = 0

Integer: posición del campo 'anyo' en la consulta.

$query_counter = null

String: consulta del número de registros.

$select_counter = null

Pointer: recurso BD devuelto por el método lanzar_query().

Ver también:

MySQLDB Definición en la línea 55 del archivo exportarBibtexAdm.php.

$record_counter = 0

Array: registro BD devuelto por el método fetch_row().

Ver también:

MySQLDB Definición en la línea 60 del archivo exportarBibtexAdm.php.

$id = 0

Integer: valor de la pk del registro usado en el título BibTeX.

$year = 0

Integer: valor del campo 'anyo' usado en el título BibTeX.

$query_desc = null

String: consulta de la estructura de $tabla.

$describe = null

Pointer: recurso BD devuelto por el método lanzar_query().

Ver también:

MySQLDB Definición en la línea 71 del archivo exportarBibtexAdm.php.

$record_desc = null

Array: registro BD devuelto por el método fetch_row().

Ver también:

MySQLDB Definición en la línea 76 del archivo exportarBibtexAdm.php.

$tit_col = null

Array: campos $cols ordenados según el formato BibTeX.

$bibtex = null

Array: títulos de los campos en formato BibTeX.

$dat_col = null

Array: contenido de los campos $cols.

$contenido = null

String: texto del archivo para descargar.

$i = 0

Integer: índice.

Page 38: 2. MEMORIA 2.1 Introducción - bibing.us.esbibing.us.es/proyectos/abreproy/11957/descargar_fichero/Volumen+1+-+Memoria+del... · Véase C3%B3n_de_datos 8 Lenguaje de Manipulación

53

$j = 0

Integer: índice.

$nombre_archivo = null

String: nombre del archivo para descargar.

$gestor = null

Pointer: valor devuelto por la función que abre el archivo para descargar.

Ver también:

fopen() Definición en la línea 95 del archivo exportarBibtexAdm.php.

$output = null

String: valor devuelto tras generar en el archivo para descargar.

� importarBibtexAdm.php

Permite analizar un fichero incorporado en formato BibTeX para insertarlo posteriormente.

Referencia del Archivo C:/xampp/htdocs/grvc/adm/importarBibtexAdm.php

Definición en el archivo importarBibtexAdm.php.

Descripción detallada

Permite analizar un fichero incorporado en formato BibTeX para insertarlo posteriormente.

Autor:

Jose Maria Maqueda Tamairón

Nota:

Se emplea javascript para decodificar el fichero. En el caso de importar un registro INPROCEEDINGS debemos acceder desde la tabla en la que queremos insertar (pub_congesp o pub_conginter)

Ver también:

- cargarBibtexAdm.php - js/BibTex.js

Variables

$tabla = null

String: recupera la tabla desde la que se invoca la importación (se tiene en cuenta solo en registros INPROCEEDINGS).

$tipo_archivo = null

Page 39: 2. MEMORIA 2.1 Introducción - bibing.us.esbibing.us.es/proyectos/abreproy/11957/descargar_fichero/Volumen+1+-+Memoria+del... · Véase C3%B3n_de_datos 8 Lenguaje de Manipulación

54

String: campo que contiene el tipo del archivo incorporado.

$tamano_archivo = null

String: campo que contiene el tamaño del archivo incorporado.

$nombre_archivo = null

String: campo que contiene el nombre del archivo incorporado.

$end = null

String: valor devuelto tras la comprobación del archivo incorporado.

$message = null

String: mensaje que se muestra por pantalla tras la incorporación del documento.

$path = null

String: ruta donde se encuentra el archivo incorporado.

$texto = null

String: texto que contiene el archivo incorporado.

$fp = null

Pointer: recurso de fichero devuelto por el método fopen().

$linea = null

String: texto que contiene la línea leída del archivo incorporado.

� index.php

Autenticación de la gestión de contenidos de la web del Grupo de Robótica, Visión y Control.

Referencia del Archivo C:/xampp/htdocs/grvc/adm/index.php

Definición en el archivo index.php.

Descripción detallada

Autenticación de la gestión de contenidos de la web del Grupo de Robótica, Visión y Control.

Autor:

Jose Maria Maqueda Tamairón

� indexAdm.php

Gestión de contenidos de la web del Grupo de Robótica, Visión y Control.

Referencia del Archivo C:/xampp/htdocs/grvc/adm/indexAdm.php

Definición en el archivo indexAdm.php.

Page 40: 2. MEMORIA 2.1 Introducción - bibing.us.esbibing.us.es/proyectos/abreproy/11957/descargar_fichero/Volumen+1+-+Memoria+del... · Véase C3%B3n_de_datos 8 Lenguaje de Manipulación

55

Descripción detallada

Gestión de contenidos de la web del Grupo de Robótica, Visión y Control.

Autor:

Jose Maria Maqueda Tamairón

Nota:

El resto de pantallas vuelven aquí para redireccionarse: - Mostrar detalle de la tabla - Mostrar resultado de la exportación a formato BibTeX - Mostrar resultado de la importación en formato BibTeX - Insertar, actualizar o eliminar registros de las tablas - Mostrar la página inicial con el modelo de datos en otro caso

� insert.php

Inserción de registros.

Referencia del Archivo C:/xampp/htdocs/grvc/adm/insert.php

Definición en el archivo insert.php.

Descripción detallada

Inserción de registros.

Autor:

Jose Maria Maqueda Tamairón

Nota:

Los registros ya insertados se muestran por pantalla

Variables

$sql = new MySQLDB

Object: gestión de la conexión BD.

$connection = null

Connection: identificador de conexión a la BD.

$tabla = null

String: tabla en la que se encuentra el registro a insertar.

$pk = null

String: campo que contiene la clave primaria de $tabla.

$dml = null

String: sentencia de inserción a realizar sobre $tabla.

Page 41: 2. MEMORIA 2.1 Introducción - bibing.us.esbibing.us.es/proyectos/abreproy/11957/descargar_fichero/Volumen+1+-+Memoria+del... · Véase C3%B3n_de_datos 8 Lenguaje de Manipulación

56

$array_dml = null

Array: conjunto de sentencias dml a realizar en una misma transacción sobre $tabla.

$query = null

String: consulta realizada sobre $tabla.

$select = null

Pointer: recurso BD devuelto por el método lanzar_query().

Ver también:

MySQLDB Definición en la línea 30 del archivo insert.php.

$record = null

Array: registro BD devuelto por el método fetch_row().

Ver también:

MySQLDB Definición en la línea 35 del archivo insert.php.

$query_desc = null

String: consulta de la estructura de $tabla.

$describe = null

Pointer: recurso BD devuelto por el método lanzar_query().

Ver también:

MySQLDB Definición en la línea 42 del archivo insert.php.

$record_desc = null

Array: registro BD devuelto por el método fetch_row().

Ver también:

MySQLDB Definición en la línea 47 del archivo insert.php.

$query_id = null

String: consulta el siguiente valor de la $pk de $tabla.

$select_id = null

Pointer: recurso BD devuelto por el método lanzar_query().

Ver también:

MySQLDB Definición en la línea 54 del archivo insert.php.

$record_id = null

Array: registro BD devuelto por el método fetch_row().

Ver también:

MySQLDB Definición en la línea 59 del archivo insert.php.

$camposAGuardar = null

String: campos para insertar en $tabla que se almacenan al presentar la pantalla de insert.

$campoEntrada = null

String: nombre de los campos a insertar en $tabla separados por ','.

Page 42: 2. MEMORIA 2.1 Introducción - bibing.us.esbibing.us.es/proyectos/abreproy/11957/descargar_fichero/Volumen+1+-+Memoria+del... · Véase C3%B3n_de_datos 8 Lenguaje de Manipulación

57

$arrayCampos = null

Array: conjunto nombres de los campos a insertar en $tabla.

$valor = null

String: nombres de los campos a insertar en $tabla almacenados individualmente.

$valores = null

String: valor de los campos a insertar en $tabla separados por ','.

$rows = 0

Integer: variable para indicar el tamaño del textarea.

� logAdmin.php

Pantalla de comprobación de usuario de la parte de administración.

Referencia del Archivo C:/xampp/htdocs/grvc/adm/logAdmin.php

Definición en el archivo logAdmin.php.

Descripción detallada

Pantalla de comprobación de usuario de la parte de administración.

Autor:

Jose Maria Maqueda Tamairón

Ver también:

login.php

Variables

$connection = null

Connection: identificador de conexión a la BD.

$usuario = null

String: usuario de conexión.

$pass = null

String: contraseña de conexión.

$tabla = null

String: tabla de comprobación.

$query = null

String: consulta de comprobación usuario.

$select = null

Pointer: recurso BD devuelto por el método lanzar_query().

Ver también:

Page 43: 2. MEMORIA 2.1 Introducción - bibing.us.esbibing.us.es/proyectos/abreproy/11957/descargar_fichero/Volumen+1+-+Memoria+del... · Véase C3%B3n_de_datos 8 Lenguaje de Manipulación

58

MySQLDB Definición en la línea 28 del archivo logAdmin.php.

$record = null

Array: registro BD devuelto por el método fetch_row().

Ver también:

MySQLDB Definición en la línea 33 del archivo logAdmin.php.

� login.php

Pantalla de autenticación de la parte de administración.

Referencia del Archivo C:/xampp/htdocs/grvc/adm/login.php

Definición en el archivo login.php.

Descripción detallada

Pantalla de autenticación de la parte de administración.

Autor:

Jose Maria Maqueda Tamairón

Ver también:

logAdmin.php

� mostrarTabla.php

Muestra el detalle de la tabla seleccionada o el resultado de la consulta realizada.

Referencia del Archivo C:/xampp/htdocs/grvc/adm/mostrarTabla.php

Definición en el archivo mostrarTabla.php.

Descripción detallada

Muestra el detalle de la tabla seleccionada o el resultado de la consulta realizada.

Autor:

Jose Maria Maqueda Tamairón

Nota:

Permite realizar las siguientes funciones:

Page 44: 2. MEMORIA 2.1 Introducción - bibing.us.esbibing.us.es/proyectos/abreproy/11957/descargar_fichero/Volumen+1+-+Memoria+del... · Véase C3%B3n_de_datos 8 Lenguaje de Manipulación

59

- Insertar registro - Actualizar registro - Eliminar registro - Exportar tabla a formato BibTeX - Exportar registro a formato BibTex - Importar registro en formato BibTeX

Variables

$sql = new MySQLDB

Object: gestión de la conexión BD.

$connection = null

Connection: identificador de conexión a la BD.

$tabla = null

String: recupera la tabla de la consulta.

$pk = null

String: campo que contiene la clave primaria de la tabla.

$columna = null

String: recupera la columna que filtra la consulta.

$condicion = null

String: recupera la condición que filtra la consulta.

$valor = null

String: recupera el valor que filtra la consulta.

$orden = null

String: recupera el orden establecido para el resultado de la consulta.

$cols = null

String: columnas de la consulta.

$numcols = 0

Integer: número de campos de la tabla.

$numcols_aux = 0

String: número de columnas de datos de la tabla.

$texto = null

String: muestra por pantalla la consulta realizada sobre $tabla.

$query = null

String: consulta realizada sobre $tabla.

$select = null

Pointer: recurso BD devuelto por el método lanzar_query().

Ver también:

MySQLDB Definición en la línea 48 del archivo mostrarTabla.php.

$record = null

Array: registro BD devuelto por el método fetch_row().

Ver también:

MySQLDB

Page 45: 2. MEMORIA 2.1 Introducción - bibing.us.esbibing.us.es/proyectos/abreproy/11957/descargar_fichero/Volumen+1+-+Memoria+del... · Véase C3%B3n_de_datos 8 Lenguaje de Manipulación

60

Definición en la línea 53 del archivo mostrarTabla.php.

$query_desc = null

String: consulta de la estructura de $tabla.

$describe = null

Pointer: recurso BD devuelto por el método lanzar_query().

Ver también:

MySQLDB Definición en la línea 60 del archivo mostrarTabla.php.

$record_desc = null

Array: registro BD devuelto por el método fetch_row().

Ver también:

MySQLDB Definición en la línea 65 del archivo mostrarTabla.php.

$query_counter = null

String: consulta del número de registros.

$select_counter = null

Pointer: recurso BD devuelto por el método lanzar_query().

Ver también:

MySQLDB Definición en la línea 72 del archivo mostrarTabla.php.

$record_counter = 0

Array: registro BD devuelto por el método fetch_row().

Ver también:

MySQLDB Definición en la línea 77 del archivo mostrarTabla.php.

� update.php

Actualización de registros.

Referencia del Archivo C:/xampp/htdocs/grvc/adm/update.php

Definición en el archivo update.php.

Descripción detallada

Actualización de registros.

Autor:

Jose Maria Maqueda Tamairón

Nota:

Los registros ya actualizados se muestran por pantalla

Page 46: 2. MEMORIA 2.1 Introducción - bibing.us.esbibing.us.es/proyectos/abreproy/11957/descargar_fichero/Volumen+1+-+Memoria+del... · Véase C3%B3n_de_datos 8 Lenguaje de Manipulación

61

Variables

$sql = new MySQLDB

Object: gestión de la conexión BD.

$connection = null

Connection: identificador de conexión a la BD.

$tabla = null

String: tabla en la que se encuentra el registro a actualizar.

$pk = null

String: campo que contiene la clave primaria de $tabla.

$id = 0

Integer: identificador único del registro a actualizar.

$dml = null

String: sentencia de actualización a realizar sobre $tabla.

$array_dml = null

Array: conjunto de sentencias dml a realizar en una misma transacción sobre $tabla.

$query = null

String: consulta realizada sobre $tabla.

$select = null

Pointer: recurso BD devuelto por el método lanzar_query().

Ver también:

MySQLDB Definición en la línea 32 del archivo update.php.

$record = null

Array: registro BD devuelto por el método fetch_row().

Ver también:

MySQLDB Definición en la línea 37 del archivo update.php.

$query_desc = null

String: consulta de la estructura de $tabla.

$describe = null

Pointer: recurso BD devuelto por el método lanzar_query().

Ver también:

MySQLDB Definición en la línea 44 del archivo update.php.

$record_desc = null

Array: registro BD devuelto por el método fetch_row().

Ver también:

MySQLDB Definición en la línea 49 del archivo update.php.

$query_id = null

String: consulta el siguiente valor de la $pk de $tabla.

$select_id = null

Page 47: 2. MEMORIA 2.1 Introducción - bibing.us.esbibing.us.es/proyectos/abreproy/11957/descargar_fichero/Volumen+1+-+Memoria+del... · Véase C3%B3n_de_datos 8 Lenguaje de Manipulación

62

Pointer: recurso BD devuelto por el método lanzar_query().

Ver también:

MySQLDB Definición en la línea 56 del archivo update.php.

$record_id = null

Array: registro BD devuelto por el método fetch_row().

Ver también:

MySQLDB Definición en la línea 61 del archivo update.php.

$camposAGuardar = null

String: campos para actualizar en $tabla que se almacenan al presentar la pantalla de update.

$campoEntrada = null

String: nombre de los campos a actualizar en $tabla separados por ','.

$arrayCampos = null

Array: conjunto nombres de los campos a actualizar en $tabla.

$valor = null

String: nombres de los campos a actualizar en $tabla almacenados individualmente.

$valores = null

String: valor de los campos a actualizar en $tabla separados por ','.

$rows = 0

Integer: variable para indicar el tamaño del textarea.

� wysiwyg.php

Editor HTML integrado.

Referencia del Archivo C:/xampp/htdocs/grvc/adm/wysiwyg.php

Definición en el archivo wysiwyg.php.

Descripción detallada

Editor HTML integrado.

Autor:

Jose Maria Maqueda Tamairón

Nota:

Solo se muestra para los campos 'cuerpo' o 'body' del bloque proyectos

Page 48: 2. MEMORIA 2.1 Introducción - bibing.us.esbibing.us.es/proyectos/abreproy/11957/descargar_fichero/Volumen+1+-+Memoria+del... · Véase C3%B3n_de_datos 8 Lenguaje de Manipulación

63

2.4.5.1.2 grvc/

Referencia del directorio C:/xampp/htdocs/grvc/

� componente.php

Componentes del Grupo de Robótica, Visión y Control.

Datos almacenados en la tabla 'ge_tcomponentes' o 'ege_tmembers'.

Referencia del Archivo C:/xampp/htdocs/grvc/componente.php

Definición en el archivo componente.php.

Descripción detallada

Componentes del Grupo de Robótica, Visión y Control Datos almacenados en la tabla 'ge_tcomponentes' o 'ege_tmembers'.

Autor:

Jose Maria Maqueda Tamairón

Nota:

El campo 'puesto' solo se imprime si su valor actual es diferente del registro anterior Para controlar esto se emplea una subconsulta

Variables

$sql = new MySQLDB

Object: gestión de la conexión BD.

$sql_puesto = new MySQLDB

Object: gestión auxiliar de la conexión BD para subconsulta $query_puesto.

$connection = null

Connection: identificador de conexión a la BD.

$tabla = null

String: tabla que contiene los datos de componentes.

$campos = null

Array: campos que se van a mostrar de $tabla.

$orden = null

Array: orden en el que se van a mostrar los registros de $tabla.

$contador = 0

Integer: contador de registros cuyo campo 'puesto' se repite.

$contador_puesto = 0

Page 49: 2. MEMORIA 2.1 Introducción - bibing.us.esbibing.us.es/proyectos/abreproy/11957/descargar_fichero/Volumen+1+-+Memoria+del... · Véase C3%B3n_de_datos 8 Lenguaje de Manipulación

64

Integer: contador auxiliar de registros que se inicializa con el valor de $contador.

$puesto_actual = null

String: copia el campo 'puesto' del registro actual para compararlo con los siguientes.

$query = null

String: consulta realizada sobre $tabla.

$query_puesto = null

String: consulta auxiliar filtrando por el campo 'puesto' del registro actual.

$select = null

Pointer: recurso BD devuelto por el método lanzar_query(). Ver también:

MySQLDB Definición en la línea 39 del archivo componente.php.

$select_puesto = null

Pointer: recurso BD devuelto por el método lanzar_query() para la subconsulta por 'puesto'.

Ver también:

MySQLDB Definición en la línea 44 del archivo componente.php.

$record = null

Array: registro BD devuelto por el método fetch_row(). Ver también:

MySQLDB Definición en la línea 49 del archivo componente.php.

� cursos.php

Cursos y seminarios del Grupo de Robótica, Visión y Control.

Datos almacenados en las tablas 'cu_tseminarios' o 'ecu_tseminaries'.

Referencia del Archivo C:/xampp/htdocs/grvc/cursos.php

Definición en el archivo cursos.php.

Descripción detallada

Cursos y seminarios del Grupo de Robótica, Visión y Control Datos almacenados en las tablas 'cu_tseminarios' o 'ecu_tseminaries'.

Autor:

Jose Maria Maqueda Tamairón

Nota:

Page 50: 2. MEMORIA 2.1 Introducción - bibing.us.esbibing.us.es/proyectos/abreproy/11957/descargar_fichero/Volumen+1+-+Memoria+del... · Véase C3%B3n_de_datos 8 Lenguaje de Manipulación

65

La información de cada registro se representa formateada en una estructura tab+accordion

Variables

$sql = new MySQLDB

Object: gestión de la conexión BD.

$connection = null

Connection: identificador de conexión a la BD.

$tabla = null

String: tabla que contiene los datos de cursos y seminarios.

$campos = null

Array: campos que se van a mostrar de $tabla.

$orden = null

Array: orden en el que se van a mostrar los registros de $tabla.

$query = null

String: consulta realizada sobre $tabla.

$select = null

Pointer: recurso BD devuelto por el método lanzar_query(). Ver también:

MySQLDB Definición en la línea 29 del archivo cursos.php.

$record = null

Array: registro BD devuelto por el método fetch_row(). Ver también:

MySQLDB Definición en la línea 34 del archivo cursos.php.

� descargarBibtex.php Permite descargar un archivo exportado previamente a formato BibTeX desde la parte de usuario.

Referencia del Archivo C:/xampp/htdocs/grvc/descargarBibtex.php

Definición en el archivo descargarBibtex.php.

Descripción detallada

Permite descargar un archivo exportado previamente a formato BibTeX desde la parte de usuario.

Page 51: 2. MEMORIA 2.1 Introducción - bibing.us.esbibing.us.es/proyectos/abreproy/11957/descargar_fichero/Volumen+1+-+Memoria+del... · Véase C3%B3n_de_datos 8 Lenguaje de Manipulación

66

Autor:

Jose Maria Maqueda Tamairón

Nota:

Solo disponible en el bloque publicaciones

Ver también:

exportarBibtex.php

Variables

$nombre_archivo = null

String: recupera el nombre del archivo enviado por exportarBibtex.php.

� exportarBibtex.php

Resultado de la consulta en formato BibTeX.

Permite exportar el resultado de una consulta a un archivo en formato BibTeX.

Referencia del Archivo C:/xampp/htdocs/grvc/exportarBibtex.php

Definición en el archivo exportarBibtex.php.

Descripción detallada

Resultado de la consulta en formato BibTeX Permite exportar el resultado de una consulta a un archivo en formato BibTeX.

Autor:

Jose Maria Maqueda Tamairón

Nota:

Solo disponible en el bloque publicaciones

Ver también:

descargarBibtex.php

Variables

$sql = new MySQLDB

Page 52: 2. MEMORIA 2.1 Introducción - bibing.us.esbibing.us.es/proyectos/abreproy/11957/descargar_fichero/Volumen+1+-+Memoria+del... · Véase C3%B3n_de_datos 8 Lenguaje de Manipulación

67

Object: gestión de la conexión BD.

$connection = null

Connection: identificador de conexión a la BD.

$bloque = null

String: recupera el bloque de contenidos de la consulta (publicaciones).

$tabla = null

String: recupera la tabla de la consulta.

$columna = null

String: recupera la columna que filtra la consulta.

$valor = null

String: recupera el valor que filtra la consulta.

$query = null

String: consulta realizada sobre $tabla.

$select = null

Pointer: recurso BD devuelto por el método lanzar_query().

Ver también:

MySQLDB Definición en la línea 32 del archivo exportarBibtex.php.

$record = null

Array: registro BD devuelto por el método fetch_row().

Ver también:

MySQLDB Definición en la línea 37 del archivo exportarBibtex.php.

$header = null

String: cabecera del documento BibTeX.

$cols = null

String: columnas de la consulta.

$num_cols = 0

Integer: número de columnas de la tabla y/o posición de la PK de la tabla.

$col_year = 0

Integer: posición del campo 'anyo' en la consulta.

$query_counter = null

String: consulta del número de registros.

$select_counter = null

Pointer: recurso BD devuelto por el método lanzar_query().

Ver también:

MySQLDB Definición en la línea 52 del archivo exportarBibtex.php.

$record_counter = 0

Array: registro BD devuelto por el método fetch_row().

Ver también:

MySQLDB Definición en la línea 57 del archivo exportarBibtex.php.

Page 53: 2. MEMORIA 2.1 Introducción - bibing.us.esbibing.us.es/proyectos/abreproy/11957/descargar_fichero/Volumen+1+-+Memoria+del... · Véase C3%B3n_de_datos 8 Lenguaje de Manipulación

68

$id = 0

Integer: valor de la pk del registro usado en el título BibTeX.

$year = 0

Integer: valor del campo 'anyo' usado en el título BibTeX.

$query_desc = null

String: consulta de la estructura de $tabla.

$describe = null

Pointer: recurso BD devuelto por el método lanzar_query().

Ver también:

MySQLDB Definición en la línea 68 del archivo exportarBibtex.php.

$record_desc = null

Array: registro BD devuelto por el método fetch_row().

Ver también:

MySQLDB Definición en la línea 73 del archivo exportarBibtex.php.

$tit_col = null

Array: campos $cols ordenados según el formato BibTeX.

$bibtex = null

Array: títulos de los campos en formato BibTeX.

$dat_col = null

Array: contenido de los campos $cols.

$contenido = null

String: texto del archivo para descargar.

$i = 0

Integer: índice.

$j = 0

Integer: índice.

$nombre_archivo = null

String: nombre del archivo para descargar.

$gestor = null

Pointer: valor devuelto por la función que abre el archivo para descargar.

Ver también:

fopen() Definición en la línea 92 del archivo exportarBibtex.php.

$output = null

String: valor devuelto tras generar en el archivo para descargar.

Page 54: 2. MEMORIA 2.1 Introducción - bibing.us.esbibing.us.es/proyectos/abreproy/11957/descargar_fichero/Volumen+1+-+Memoria+del... · Véase C3%B3n_de_datos 8 Lenguaje de Manipulación

69

� index.php Marco de la web del Grupo de Robótica, Visión y Control.

Referencia del Archivo C:/xampp/htdocs/grvc/index.php

Definición en el archivo index.php

Descripción detallada

Marco de la web del Grupo de Robótica, Visión y Control.

Autor:

Jose Maria Maqueda Tamairón

� líneas.php Líneas de investigación del Grupo de Robótica, Visión y Control.

Datos almacenados en la tabla 'li_tinvestigacion' o 'eli_tresearch'.

Referencia del Archivo C:/xampp/htdocs/grvc/lineas.php

Definición en el archivo lineas.php.

Descripción detallada

Líneas de investigación del Grupo de Robótica, Visión y Control Datos almacenados en la tabla 'li_tinvestigacion' o 'eli_tresearch'.

Autor:

Jose Maria Maqueda Tamairón

Nota:

La información de cada registro se representa formateada en una estructura tab+accordion El campo 'linea' solo se imprime si su valor actual es diferente del registro anterior Para controlar esto se emplea una subconsulta

Ver también:

- js/jquery-ui.js - js/jquery-ui-1.8.4.custom.min

Page 55: 2. MEMORIA 2.1 Introducción - bibing.us.esbibing.us.es/proyectos/abreproy/11957/descargar_fichero/Volumen+1+-+Memoria+del... · Véase C3%B3n_de_datos 8 Lenguaje de Manipulación

70

Variables

$sql = new MySQLDB

Object: gestión de la conexión BD.

$connection = null

Connection: identificador de conexión a la BD.

$tabla = null

String: tabla que contiene los datos de lineas de investigación.

$campos = null

Array: campos que se van a mostrar de $tabla.

$orden = null

Array: orden en el que se van a mostrar los registros de $tabla.

$linea_actual = null

String: copia el campo 'linea' del registro actual para compararlo con los siguientes.

$query = null

String: consulta realizada sobre $tabla.

$query_linea = null

String: consulta auxiliar filtrando por el campo 'linea' del registro actual.

$select = null

Pointer: recurso BD devuelto por el método lanzar_query().

Ver también:

MySQLDB Definición en la línea 36 del archivo lineas.php.

$select_linea = null

Pointer: recurso BD devuelto por el método lanzar_query() para la subconsulta por 'linea'.

Ver también:

MySQLDB Definición en la línea 41 del archivo lineas.php.

$record = null

Array: registro BD devuelto por el método fetch_row().

Ver también:

MySQLDB Definición en la línea 46 del archivo lineas.php.

$record_linea = null

Array: registro BD devuelto por el método fetch_row() para la subconsulta por 'linea'.

Ver también:

MySQLDB Definición en la línea 51 del archivo lineas.php.

Page 56: 2. MEMORIA 2.1 Introducción - bibing.us.esbibing.us.es/proyectos/abreproy/11957/descargar_fichero/Volumen+1+-+Memoria+del... · Véase C3%B3n_de_datos 8 Lenguaje de Manipulación

71

� mostrarBusqueda.php

Resultado de la consulta en formato Tabla.

Referencia del Archivo C:/xampp/htdocs/grvc/mostrarBusqueda.php

Definición en el archivo mostrarBusqueda.php.

Descripción detallada

Resultado de la consulta en formato Tabla.

Autor:

Jose Maria Maqueda Tamairón

Nota:

Solo disponible en los bloques proyectos y publicaciones

Variables

$sql = new MySQLDB

Object: gestión de la conexión BD.

$connection = null

Connection: identificador de conexión a la BD.

$bloque = null

String: recupera el bloque de contenidos de la consulta (proyectos o publicaciones).

$tabla = null

String: recupera la tabla de la consulta.

$columna = null

String: recupera la columna que filtra la consulta.

$valor = null

String: recupera el valor que filtra la consulta.

$cols = null

String: columnas de la consulta.

$numcols = 0

Integer: número de campos de la tabla.

$numcols_aux = 0

String: número de columnas de datos de la tabla.

$query = null

String: consulta realizada sobre $tabla.

$select = null

Pointer: recurso BD devuelto por el método lanzar_query().

Page 57: 2. MEMORIA 2.1 Introducción - bibing.us.esbibing.us.es/proyectos/abreproy/11957/descargar_fichero/Volumen+1+-+Memoria+del... · Véase C3%B3n_de_datos 8 Lenguaje de Manipulación

72

Ver también:

MySQLDB Definición en la línea 41 del archivo mostrarBusqueda.php.

$record = null

Array: registro BD devuelto por el método fetch_row().

Ver también:

MySQLDB Definición en la línea 46 del archivo mostrarBusqueda.php.

$query_desc = null

String: consulta de la estructura de $tabla.

$describe = null

Pointer: recurso BD devuelto por el método lanzar_query().

Ver también:

MySQLDB Definición en la línea 53 del archivo mostrarBusqueda.php.

$record_desc = null

Array: registro BD devuelto por el método fetch_row().

Ver también:

MySQLDB Definición en la línea 58 del archivo mostrarBusqueda.php.

$query_counter = null

String: consulta del número de registros.

$select_counter = null

Pointer: recurso BD devuelto por el método lanzar_query().

Ver también:

MySQLDB Definición en la línea 65 del archivo mostrarBusqueda.php.

$record_counter = 0

Array: registro BD devuelto por el método fetch_row().

Ver también:

MySQLDB Definición en la línea 70 del archivo mostrarBusqueda.php.

� presentacion.php

Presentación del Grupo de Robótica, Visión y Control.

Datos almacenados en la tabla 'ge_tintroduccion' o 'ege_tintroduction'.

Referencia del Archivo C:/xampp/htdocs/grvc/presentacion.php

Definición en el archivo presentacion.php.

Page 58: 2. MEMORIA 2.1 Introducción - bibing.us.esbibing.us.es/proyectos/abreproy/11957/descargar_fichero/Volumen+1+-+Memoria+del... · Véase C3%B3n_de_datos 8 Lenguaje de Manipulación

73

Descripción detallada

Presentación del Grupo de Robótica, Visión y Control Datos almacenados en la tabla 'ge_tintroduccion' o 'ege_tintroduction'.

Autor:

Jose Maria Maqueda Tamairón

Nota:

La ordenación de los párrafos se realiza por orden ascendente

Variables

$sql = new MySQLDB

Object: gestión de la conexión BD.

$connection = null

Connection: identificador de conexión a la BD.

$tabla = null

String: tabla que contiene los datos de la presentacion.

$campos = null

Array: campos que se van a mostrar de $tabla.

$orden = null

Array: orden en el que se van a mostrar los registros de $tabla.

$query = null

String: consulta realizada sobre $tabla.

$select = null

Pointer: recurso BD devuelto por el método lanzar_query().

Ver también:

MySQLDB Definición en la línea 28 del archivo presentacion.php.

$record = null

Array: registro BD devuelto por el método fetch_row(). Ver también:

MySQLDB Definición en la línea 33 del archivo presentacion.php.

� proyectos.php

Proyectos del Grupo de Robótica, Visión y Control.

Datos almacenados en las tablas:

- 'pr_tinternacional' o 'epr_tinternational' - 'pr_tnacional' o 'epr_tnational' - 'pr_tpercepcion' o 'epr_tperception'

Page 59: 2. MEMORIA 2.1 Introducción - bibing.us.esbibing.us.es/proyectos/abreproy/11957/descargar_fichero/Volumen+1+-+Memoria+del... · Véase C3%B3n_de_datos 8 Lenguaje de Manipulación

74

- 'pr_trobotica' o 'epr_trobotics' - 'pr_tcontrol' o 'epr_tcontrol'

Referencia del Archivo C:/xampp/htdocs/grvc/proyectos.php

Definición en el archivo proyectos.php.

Descripción detallada

Proyectos del Grupo de Robótica, Visión y Control Datos almacenados en las tablas:

- 'pr_tinternacional' o 'epr_tinternational' - 'pr_tnacional' o 'epr_tnational' - 'pr_tpercepcion' o 'epr_tperception' - 'pr_trobotica' o 'epr_trobotics' - 'pr_tcontrol' o 'epr_tcontrol'

Autor:

Jose Maria Maqueda Tamairón

Nota:

La información de cada registro se representa formateada en una estructura tab+accordion

Variables

$sql = new MySQLDB

Object: gestión de la conexión BD.

$connection = null

Connection: identificador de conexión a la BD.

$tabla = null

String: tabla que contiene los datos de proyectos.

$campos = null

Array: campos que se van a mostrar de $tabla.

$orden = null

Array: orden en el que se van a mostrar los registros de $tabla.

$query = null

String: consulta realizada sobre $tabla.

$select = null

Pointer: recurso BD devuelto por el método lanzar_query(). Ver también:

MySQLDB Definición en la línea 33 del archivo proyectos.php.

Page 60: 2. MEMORIA 2.1 Introducción - bibing.us.esbibing.us.es/proyectos/abreproy/11957/descargar_fichero/Volumen+1+-+Memoria+del... · Véase C3%B3n_de_datos 8 Lenguaje de Manipulación

75

$record = null

Array: registro BD devuelto por el método fetch_row(). Ver también:

MySQLDB Definición en la línea 38 del archivo proyectos.php.

� publicaciones.php

Publicaciones del Grupo de Robótica, Visión y Control.

Datos almacenados en las tablas:

- ‘pub_caplibros' - 'pub_congesp' - 'pub_conginter' - 'pub_libros' - 'pub_revistas'

Referencia del Archivo C:/xampp/htdocs/grvc/publicaciones.php

Definición en el archivo publicaciones.php.

Descripción detallada

Publicaciones del Grupo de Robótica, Visión y Control. Datos almacenados en las tablas:

- ‘pub_caplibros' - 'pub_congesp' - 'pub_conginter' - 'pub_libros' - 'pub_revistas'

Autor:

Jose Maria Maqueda Tamairón

Nota:

La información de cada registro se representa formateada en una estructura tab+accordion

Variables

$sql = new MySQLDB

Object: gestión de la conexión BD.

Page 61: 2. MEMORIA 2.1 Introducción - bibing.us.esbibing.us.es/proyectos/abreproy/11957/descargar_fichero/Volumen+1+-+Memoria+del... · Véase C3%B3n_de_datos 8 Lenguaje de Manipulación

76

$connection = null

Connection: identificador de conexión a la BD.

$tabla = null

String: tabla que contiene los datos de publicaciones.

$campos = null

Array: campos que se van a mostrar de $tabla.

$orden = null

Array: orden en el que se van a mostrar los registros de $tabla.

$meses = null

Array: decodifica el campo 'mes' en $tabla.

$query = null

String: consulta realizada sobre $tabla.

$select = null

Pointer: recurso BD devuelto por el método lanzar_query().

Ver también:

MySQLDB Definición en la línea 36 del archivo publicaciones.php.

$record = null

Array: registro BD devuelto por el método fetch_row().

Ver también:

MySQLDB Definición en la línea 41 del archivo publicaciones.php.

� tesis.php Tesis doctorales del Grupo de Robótica, Visión y Control.

Datos almacenados en las tablas 'te_tdoctorales' o 'ete_tdissertations'.

Referencia del Archivo C:/xampp/htdocs/grvc/tesis.php

Definición en el archivo tesis.php.

Descripción detallada

Tesis doctorales del Grupo de Robótica, Visión y Control Datos almacenados en las tablas 'te_tdoctorales' o 'ete_tdissertations'.

Autor:

Jose Maria Maqueda Tamairón

Nota:

La información de cada registro se representa formateada en una estructura tab+accordion

Page 62: 2. MEMORIA 2.1 Introducción - bibing.us.esbibing.us.es/proyectos/abreproy/11957/descargar_fichero/Volumen+1+-+Memoria+del... · Véase C3%B3n_de_datos 8 Lenguaje de Manipulación

77

Variables

$sql = new MySQLDB

Object: gestión de la conexión BD.

$connection = null

Connection: identificador de conexión a la BD.

$tabla = null

String: tabla que contiene los datos de tesis doctorales.

$campos = null

Array: campos que se van a mostrar de $tabla.

$orden = null

Array: orden en el que se van a mostrar los registros de $tabla.

$query = null

String: consulta realizada sobre $tabla.

$select = null

Pointer: recurso BD devuelto por el método lanzar_query().

Ver también:

MySQLDB Definición en la línea 29 del archivo tesis.php.

$record = null

Array: registro BD devuelto por el método fetch_row().

Ver también:

MySQLDB Definición en la línea 34 del archivo tesis.php.

Page 63: 2. MEMORIA 2.1 Introducción - bibing.us.esbibing.us.es/proyectos/abreproy/11957/descargar_fichero/Volumen+1+-+Memoria+del... · Véase C3%B3n_de_datos 8 Lenguaje de Manipulación

78

2.4.5.1.3 grvc/includes/

Referencia del directorio C:/xampp/htdocs/grvc/includes/

� application_bottom.php

Liberación de recursos y cierre de la base de datos de la aplicación.

Referencia del Archivo C:/xampp/htdocs/grvc/includes/application_bottom.php

Definición en el archivo application_bottom.php.

Descripción detallada

Liberación de recursos y cierre de la base de datos de la aplicación.

Autor:

Jose Maria Maqueda Tamairón

� application_top.php

Precarga de archivos necesarios para la aplicación.

Referencia del Archivo C:/xampp/htdocs/grvc/includes/application_top.php

Definición en el archivo application_top.php.

Descripción detallada

Precarga de archivos necesarios para la aplicación.

Autor:

Jose Maria Maqueda Tamairón

Page 64: 2. MEMORIA 2.1 Introducción - bibing.us.esbibing.us.es/proyectos/abreproy/11957/descargar_fichero/Volumen+1+-+Memoria+del... · Véase C3%B3n_de_datos 8 Lenguaje de Manipulación

79

� configure.php Constantes de configuración de la aplicación.

Referencia del Archivo C:/xampp/htdocs/grvc/includes/configure.php

Definición en el archivo configure.php.

Descripción detallada

Constantes de configuración de la aplicación.

Autor:

Jose Maria Maqueda Tamairón

Constantes

DB_SERVER

Nombre del servidor donde se encuentra alojada la base de datos de la aplicación.

DB_SERVER_USERNAME

Usuario de la base de datos de la aplicación.

DB_SERVER_PASSWORD

Contraseña de la base de datos de la aplicación.

DB_DATABASE

Nombre de la base de datos de la aplicación.

� constantes.php Constantes de la aplicación.

Referencia del Archivo C:/xampp/htdocs/grvc/includes/constantes.php

Definición en el archivo constantes.php.

Descripción detallada

Constantes de la aplicación.

Autor:

Jose Maria Maqueda Tamairón

Page 65: 2. MEMORIA 2.1 Introducción - bibing.us.esbibing.us.es/proyectos/abreproy/11957/descargar_fichero/Volumen+1+-+Memoria+del... · Véase C3%B3n_de_datos 8 Lenguaje de Manipulación

80

Constantes

TITULO_PAGINA

Nombre de la página principal de la web.

PAGE_TITLE

Nombre de la página principal de la web en inglés.

UNIVERSIDAD

Icono US.

ESI

Icono ESI.

GRUPO

Icono GRVC.

UNIVERSITY

Icono US en inglés.

ES

Icono ESI en inglés.

GROUP

Icono GRVC en inglés.

BIENVENIDA

Mensaje en la página principal.

WELCOME

Mensaje en la página principal en inglés.

TITULO_PAGINA_ADM

Nombre de la página principal de la gestión de contenidos de la web.

PHPMYADMIN

Icono PHPMYADMIN.

� database.php

Clase que almacena los métodos y funciones relacionadas con la base de datos.

Referencia del Archivo C:/xampp/htdocs/grvc/includes/database.php

Definición en el archivo database.php.

Descripción detallada

Clase que almacena los métodos y funciones relacionadas con la base de datos.

Autor:

Jose Maria Maqueda Tamairón

Page 66: 2. MEMORIA 2.1 Introducción - bibing.us.esbibing.us.es/proyectos/abreproy/11957/descargar_fichero/Volumen+1+-+Memoria+del... · Véase C3%B3n_de_datos 8 Lenguaje de Manipulación

81

Nota:

Incorpora funciones de conversión de encoding

Estructuras de datos

class MySQLDB

Funciones

convertUtf ($cadena)

Convierte el encoding de $cadena de UTF-8 a ISO-8859-1.

cadena objeto de la conversión

Devuelve:

String Definición en la línea 14 del archivo database.php.

convertIso ($cadena)

Convierte el encoding de $cadena de ISO-8859-1 a UTF-8.

cadena objeto de la conversión

Devuelve:

String Definición en la línea 23 del archivo database.php.

� header.php

Cabecera de la interfaz de usuario.

Referencia del Archivo C:/xampp/htdocs/grvc/includes/header.php

Definición en el archivo header.php.

Descripción detallada

Cabecera de la interfaz de usuario.

Autor:

Jose Maria Maqueda Tamairón

Nota:

Contiene la selección del idioma

Page 67: 2. MEMORIA 2.1 Introducción - bibing.us.esbibing.us.es/proyectos/abreproy/11957/descargar_fichero/Volumen+1+-+Memoria+del... · Véase C3%B3n_de_datos 8 Lenguaje de Manipulación

82

� htmlOutput.php

Genera HTML dinámicamente.

Referencia del Archivo C:/xampp/htdocs/grvc/includes/htmlOutput.php

Definición en el archivo htmlOutput.php.

Descripción detallada

Genera HTML dinámicamente.

Autor:

Jose Maria Maqueda Tamairón

Funciones

crearInputText ( $id, $etiqueta=false, $required=false, $readonly=false, $value='', $maxlength=15, $style= '', $onAlgo= '', $password=0 )

Crea un input text/password dinámicamente.

Definición en la línea 192 del archivo htmlOutput.php.

Parámetros:

$id del objeto $etiqueta mostrar etiqueta $required es requerido $readonly solo lectura $value valor por defecto $maxlength tamaño maximo $style formato $onAlgo evento javascript $password genera un type password

Page 68: 2. MEMORIA 2.1 Introducción - bibing.us.esbibing.us.es/proyectos/abreproy/11957/descargar_fichero/Volumen+1+-+Memoria+del... · Véase C3%B3n_de_datos 8 Lenguaje de Manipulación

83

Devuelve:

unknown_type

Ver también:

- login.php - update.php - insert.php

crearInputTextNoMaxLenght ( $id, $etiqueta=false, $required=false, $readonly=false, $value='', $maxlength=15, $style= '', $onAlgo= '' )

Crea un input text sin limite de caracteres, solo limita el tamaño del input.

Definición en la línea 230 del archivo htmlOutput.php.

Parámetros:

$id del objeto $etiqueta mostrar etiqueta $required es requerido $readonly solo lectura $value valor por defecto $maxlength tamaño maximo $style formato $onAlgo evento javascript

Devuelve:

unknown_type

Ver también:

- update.php - insert.php

crearInputTextNoEcho ( $id, $etiqueta=false, $required=false, $readonly=false, $value='', $maxlength=15, $style= '', $onAlgo= '' )

Page 69: 2. MEMORIA 2.1 Introducción - bibing.us.esbibing.us.es/proyectos/abreproy/11957/descargar_fichero/Volumen+1+-+Memoria+del... · Véase C3%B3n_de_datos 8 Lenguaje de Manipulación

84

Crea un input text y lo devuelve, no lo imprime.

Definición en la línea 267 del archivo htmlOutput.php.

Parámetros:

$id del objeto $etiqueta mostrar etiqueta $required es requerido $readonly solo lectura $value valor por defecto $maxlength tamaño maximo $style formato $onAlgo evento javascript

Devuelve:

unknown_type crearCheck ( $id, $etiqueta=false, $readonly=false, $checked=false, $style= '', $onAlgo= '' )

Crea un checkbox.

Definición en la línea 302 del archivo htmlOutput.php.

Parámetros:

$id del objeto $etiqueta mostrar etiqueta $readonly solo lectura $checked valor por defecto $style formato $onAlgo evento javascript

Devuelve:

unknown_type crearTextArea ( $id, $etiqueta=false, $required=false, $readonly=false, $value='', $cols=17, $rows=2, $style= '', $onAlgo= '' )

Crea un text area.

Page 70: 2. MEMORIA 2.1 Introducción - bibing.us.esbibing.us.es/proyectos/abreproy/11957/descargar_fichero/Volumen+1+-+Memoria+del... · Véase C3%B3n_de_datos 8 Lenguaje de Manipulación

85

Definición en la línea 340 del archivo htmlOutput.php.

Parámetros:

$id del objeto $etiqueta mostrar etiqueta $required es requerido $readonly solo lectura $value valor por defecto $cols anchura $rows altura $style formato $onAlgo evento javascript

Devuelve:

unknown_type

Ver también:

- update.php - insert.php

crearTextArea2 ( $id, $etiqueta=false, $required=false, $readonly=false, $value='', $cols=17, $rows=2, $style= '', $onAlgo= '' )

Se utiliza para la configuracion, el size solo es para el largo del campo, no se aplica al tamaño de entrada.

Definición en la línea 378 del archivo htmlOutput.php.

Parámetros:

$id del objeto $etiqueta mostrar etiqueta $required es requerido $readonly solo lectura $value valor por defecto $cols anchura $rows altura $style formato $onAlgo evento javascript

Devuelve:

unknown_type crearCombo (

Page 71: 2. MEMORIA 2.1 Introducción - bibing.us.esbibing.us.es/proyectos/abreproy/11957/descargar_fichero/Volumen+1+-+Memoria+del... · Véase C3%B3n_de_datos 8 Lenguaje de Manipulación

86

$sql, $id, $etiqueta, $required=false, $opcionDefecto=false, $onAlgo= '', $valor= '', $disabled=false )

Crea un combo.

Definición en la línea 415 del archivo htmlOutput.php.

Parámetros:

$sql datos del combo $id del objeto $etiqueta mostrar etiqueta $required es requerido $opcionDefecto valor por defecto $onAlgo evento javascript $valor valor del combo $disabled deshabilitado

Devuelve:

unknown_type � menú.php

Menú de opciones de la parte de usuario.

Ofrece un índice de los bloques de contenido disponibles en la web.

Referencia del Archivo C:/xampp/htdocs/grvc/includes/menu.php

Definición en el archivo menu.php.

Descripción detallada

Menú de opciones de la parte de usuario.

Autor:

Jose Maria Maqueda Tamairón

Nota:

Page 72: 2. MEMORIA 2.1 Introducción - bibing.us.esbibing.us.es/proyectos/abreproy/11957/descargar_fichero/Volumen+1+-+Memoria+del... · Véase C3%B3n_de_datos 8 Lenguaje de Manipulación

87

Para dar suavidad a la transición se emplea la función javascript cargarApartado('')

Ver también:

general.js

� principal.php

Pantalla inicial de la parte de usuario.

Referencia del Archivo C:/xampp/htdocs/grvc/includes/principal.php

Definición en el archivo principal.php.

Descripción detallada

Pantalla inicial de la parte de usuario.

Autor:

Jose Maria Maqueda Tamairón

Nota:

Componentes: - Módulo de consulta - Calendario - Tablón de destacados - Google Analytics

Ver también:

ui.datepicker-es.js

Variables

$sql = new MySQLDB

Object: gestión de la conexión BD.

$tabla = null

String: tabla seleccionada en el módulo de consulta.

$query_desc = null

String: consulta de la estructura de $tabla.

$describe = null

Resource BD: recurso BD devuelto por el método lanzar_query().

Ver también:

Page 73: 2. MEMORIA 2.1 Introducción - bibing.us.esbibing.us.es/proyectos/abreproy/11957/descargar_fichero/Volumen+1+-+Memoria+del... · Véase C3%B3n_de_datos 8 Lenguaje de Manipulación

88

MySQLDB Definición en la línea 26 del archivo principal.php.

$record_desc = null

Array: registro BD devuelto por el método fetch_row().

Ver también:

MySQLDB Definición en la línea 31 del archivo principal.php.

Page 74: 2. MEMORIA 2.1 Introducción - bibing.us.esbibing.us.es/proyectos/abreproy/11957/descargar_fichero/Volumen+1+-+Memoria+del... · Véase C3%B3n_de_datos 8 Lenguaje de Manipulación

89

2.4.5.1.4 grvc/adm/includes/

Referencia del directorio C:/xampp/htdocs/grvc/adm/includes/

� application_topAdm.php

Precarga de archivos necesarios para la gestión de contenidos.

Referencia del Archivo C:/xampp/htdocs/grvc/adm/includes/application_topAdm.php

Definición en el archivo application_topAdm.php.

Descripción detallada

Precarga de archivos necesarios para la gestión de contenidos.

Autor:

Jose Maria Maqueda Tamairón

� headerAdm.php

Cabecera de la parte de administración.

Referencia del Archivo C:/xampp/htdocs/grvc/adm/includes/headerAdm.php

Definición en el archivo headerAdm.php.

Descripción detallada

Cabecera de la parte de administración.

Autor:

Jose Maria Maqueda Tamairón

Nota:

Contiene un módulo de búsqueda

Page 75: 2. MEMORIA 2.1 Introducción - bibing.us.esbibing.us.es/proyectos/abreproy/11957/descargar_fichero/Volumen+1+-+Memoria+del... · Véase C3%B3n_de_datos 8 Lenguaje de Manipulación

90

Variables

$_REQUEST ["tab"]

Tabla seleccionada en la consulta.

$_REQUEST ["cond"]

Condición seleccionada en la consulta.

$_REQUEST ["col"]

Columna seleccionada en la consulta.

$_REQUEST ["valor"]

Valor de filtrado.

$_REQUEST ["ord"]

Orden seleccionado en la consulta.

$_REQUEST ["formato"]

Formato de salida seleccionado en la consulta.

$sql = new MySQLDB

Object: gestión de la conexión BD.

$connection = null

Connection: identificador de conexión a la BD.

$query = null

String: consulta del nombre del esquema.

$select = null

Pointer: recurso BD devuelto por el método lanzar_query().

Ver también:

MySQLDB Definición en la línea 36 del archivo headerAdm.php.

$record = null

Array: registro BD devuelto por el método fetch_row().

Ver también:

MySQLDB Definición en la línea 41 del archivo headerAdm.php.

� menuAdm.php

Menú de opciones de la parte de administración.

Ofrece un índice de las tablas del modelo de datos.

Referencia del Archivo C:/xampp/htdocs/grvc/adm/includes/menuAdm.php

Definición en el archivo menuAdm.php.

Page 76: 2. MEMORIA 2.1 Introducción - bibing.us.esbibing.us.es/proyectos/abreproy/11957/descargar_fichero/Volumen+1+-+Memoria+del... · Véase C3%B3n_de_datos 8 Lenguaje de Manipulación

91

Descripción detallada

Menú de opciones de la parte de administración.

Autor:

Jose Maria Maqueda Tamairón

Nota:

Para dar suavidad a la transición se emplea la función javascript cargarApartado('')

Ver también:

general.js

Variables

$sql = new MySQLDB

Object: gestión de la conexión BD.

$connection = null

Connection: identificador de conexión a la BD.

$query = null

String: consulta realizada sobre el esquema 'grvc'.

$select = null

Pointer: recurso BD devuelto por el método lanzar_query().

Ver también:

MySQLDB Definición en la línea 30 del archivo menuAdm.php.

$record = null

Array: registro BD devuelto por el método fetch_row().

Ver también:

MySQLDB Definición en la línea 35 del archivo menuAdm.php.

� principalAdm.php

Pantalla inicial de la parte de administración.

Contiene un diagrama del modelo de datos.

Referencia del Archivo C:/xampp/htdocs/grvc/adm/includes/principalAdm.php

Definición en el archivo principalAdm.php.

Page 77: 2. MEMORIA 2.1 Introducción - bibing.us.esbibing.us.es/proyectos/abreproy/11957/descargar_fichero/Volumen+1+-+Memoria+del... · Véase C3%B3n_de_datos 8 Lenguaje de Manipulación

92

Descripción detallada

Pantalla inicial de la parte de administración.

Autor:

Jose Maria Maqueda Tamairón

Nota:

Se puede acceder a los datos de las tablas haciendo click sobre el nombre Para dar suavidad a la transición se emplea la función javascript cargarApartado('')

Ver también:

general.js

Variables

$sql = new MySQLDB

Object: gestión de la conexión BD.

$connection = null

Connection: identificador de conexión a la BD.

$query = null

String: consulta realizada sobre el esquema 'grvc'.

$select = null

Pointer: recurso BD devuelto por el método lanzar_query().

Ver también:

MySQLDB Definición en la línea 30 del archivo principalAdm.php.

$record = null

Array: registro BD devuelto por el método fetch_row().

Ver también:

MySQLDB Definición en la línea 35 del archivo principalAdm.php.

$query_desc = null

String: consulta de la estructura de la tabla.

$describe = null

Pointer: recurso BD devuelto por el método lanzar_query().

Ver también:

MySQLDB Definición en la línea 42 del archivo principalAdm.php.

$record_desc = null

Array: registro BD devuelto por el método fetch_row().

Ver también:

Page 78: 2. MEMORIA 2.1 Introducción - bibing.us.esbibing.us.es/proyectos/abreproy/11957/descargar_fichero/Volumen+1+-+Memoria+del... · Véase C3%B3n_de_datos 8 Lenguaje de Manipulación

93

MySQLDB Definición en la línea 47 del archivo principalAdm.php.

Page 79: 2. MEMORIA 2.1 Introducción - bibing.us.esbibing.us.es/proyectos/abreproy/11957/descargar_fichero/Volumen+1+-+Memoria+del... · Véase C3%B3n_de_datos 8 Lenguaje de Manipulación

94

2.4.5.2 Estructuras de datos

Referencia de la Clase MySQLDB C:/xampp/htdocs/grvc/includes/

Definición en la línea 28 del archivo database.php.

La documentación para esta clase fue generada a partir del siguiente fichero:

C:/xampp/htdocs/grvc/includes/database.php MySQLDB ()

Constructor de la clase.

Definición en la línea 36 del archivo database.php.

Devuelve:

connection begin ()

Comienza una transaccion.

Definición en la línea 59 del archivo database.php.

Devuelve:

unknown_type commit ()

Commit en la BD.

Definición en la línea 67 del archivo database.php.

Devuelve:

unknown_type rollback ()

Rollback de la BD.

Definición en la línea 75 del archivo database.php.

Devuelve:

unknown_type transaction ($q_array, $selectFinal=false)

Realiza una transaccion.

Definición en la línea 85 del archivo database.php.

Parámetros:

Page 80: 2. MEMORIA 2.1 Introducción - bibing.us.esbibing.us.es/proyectos/abreproy/11957/descargar_fichero/Volumen+1+-+Memoria+del... · Véase C3%B3n_de_datos 8 Lenguaje de Manipulación

95

$q_array $selectFinal devuelve un resource de una select al final

Devuelve:

resource, true o false free_result ($res)

Libera los recursos del resource de BD Not needed for UPDATE, DELETE, etc

Definición en la línea 115 del archivo database.php.

Parámetros:

$res

Devuelve:

unknown_type error_db ()

Devuelve el error generado por la BD.

Definición en la línea 125 del archivo database.php.

Devuelve:

String lanzar_query ($sql)

Lanza la query y devuelve el resultado.

Definición en la línea 135 del archivo database.php.

Parámetros:

$sql

Devuelve:

resource BD o numero de filas afectadas

fetch_row ($res)

Mueve el puntero hacia delante y devuelve el registro.

Definición en la línea 148 del archivo database.php.

Parámetros:

$res

Devuelve:

registro fetch_row_cad ($res)

Page 81: 2. MEMORIA 2.1 Introducción - bibing.us.esbibing.us.es/proyectos/abreproy/11957/descargar_fichero/Volumen+1+-+Memoria+del... · Véase C3%B3n_de_datos 8 Lenguaje de Manipulación

96

Mueve el puntero hacia delante y devuelve el registro.

Definición en la línea 157 del archivo database.php.

Parámetros:

$res

Devuelve:

registro

seek ($db_query, $row_number)

Posiciona el puntero en la columna indicada.

Definición en la línea 168 del archivo database.php.

Parámetros:

$db_query $row_number

Devuelve:

unknown_type

cerrar_db ()

Cierra la conexion de BD.

Definición en la línea 180 del archivo database.php.

Devuelve:

unknown_type

Page 82: 2. MEMORIA 2.1 Introducción - bibing.us.esbibing.us.es/proyectos/abreproy/11957/descargar_fichero/Volumen+1+-+Memoria+del... · Véase C3%B3n_de_datos 8 Lenguaje de Manipulación

97

2.5 Conclusiones Una vez finalizado el proyecto, en este apartado procederemos a realizar una

revisión de los objetivos prefijados al inicio del proyecto, así como posibles mejoras que

se podrían llevar a cabo de cara a perfeccionar la aplicación.

2.5.1 Cumplimiento de objetivos

Vamos a verificar el grado de cumplimiento de los objetivos, así como dificultades

encontradas en su ejecución. Representaremos de nuevo los objetivos para estudiar cada

hito de manera individual.

Objetivos planteados para la web GRVC:

� Presentación clara, detallada, accesible y atractiva de la información.

� Interfaz intuitiva y dinámica.

� Navegación sencilla y con acceso rápido a los diversos apartados.

� Para comprobar si se cumplen estos objetivos, dado que son bastante

subjetivos, se han realizado algunas pruebas de usabilidad de la aplicación con

usuarios que desconocían el portal, encontrando escasa dificultad en un primer

acercamiento, y ninguna tras la lectura del manual del usuario de la aplicación.

� Posibilidad de escoger el idioma de la información en castellano o inglés.

� Dos iconos permiten el cambio de idioma, almacenándose éste en una variable

global que lo mantiene mientras dure la sesión.

� Evitar mostrar e-mail en código.

� Tras estudiar la posibilidad de codificar el email usando JavaScript, se ha

optado finalmente por incluir una nueva columna en la tabla de componentes

que contiene una imagen con el email de la persona. Esto es lo que realmente

se muestra en la web y al ser una imagen es indetectable para bots u otro

software malicioso.

� Tablón donde situar contenidos destacables.

� Se ha situado dicho espacio en la parte derecha de la pantalla inicial de la web

GRVC.

Page 83: 2. MEMORIA 2.1 Introducción - bibing.us.esbibing.us.es/proyectos/abreproy/11957/descargar_fichero/Volumen+1+-+Memoria+del... · Véase C3%B3n_de_datos 8 Lenguaje de Manipulación

98

� Herramienta para exportar información a archivo en formato BibTeX.

� Integrada en el buscador del portal. Es exclusiva para el bloque de

publicaciones.

� Herramienta que permita buscar contenidos concretos.

� Se trata de un buscador restrictivo que solo permite buscar contenidos de los

bloques proyectos y publicaciones.

� Todos los contenidos deben obtenerse de la base de datos.

� Toda la información se ha almacenado en base de datos creando varias tablas

nuevas, casi todas pertenecientes al bloque genérico.

� Integración de aplicación de control de estadísticas de tráfico web.

� Tras estudiar varias opciones, se ha optado por google analytics, por ser una

aplicación gratuita, potente, sencilla, sin publicidad y de fácil integración.

Objetivos planteados para la web de administración:

� Autenticación de usuarios contra la base de datos.

� Se ha establecido un sistema de autenticación contra la base de datos basado

en usuario y contraseña.

� Accesibilidad directa y sencilla a cualquier tabla.

� Implementados dos métodos de acceso: desde un menú situado a la izquierda

de la pantalla y desde el título de las tablas mostradas en la parte central.

� Mostrar información del modelo de datos (estructura de las tablas).

� En la parte central de la pantalla son representadas todas las tablas mostrando

información acerca de su estructura.

� Proporcionar mantenimiento de la base de datos MySQL.

Page 84: 2. MEMORIA 2.1 Introducción - bibing.us.esbibing.us.es/proyectos/abreproy/11957/descargar_fichero/Volumen+1+-+Memoria+del... · Véase C3%B3n_de_datos 8 Lenguaje de Manipulación

99

� Se han implementado las funciones CRUD41 que permiten realizar el

mantenimiento de la base de datos desde la web de administración.

� Herramienta para exportar información a archivo en formato BibTeX.

� Integrada en los buscadores de ambos portales, además de en la visualización

de las tablas en la web de administración, tanto a nivel de tabla como a nivel

de registro. Es exclusiva para el bloque de publicaciones.

� Herramienta para importar información de archivo en formato BibTeX.

� Integrada en la visualización de las tablas en la web de administración. Permite

la inserción de un registro en formato BibTeX contenido en un archivo de texto

plano. Es exclusiva para el bloque de publicaciones.

� Herramienta que permita buscar contenidos concretos.

� Se ha implementado un buscador que genera directamente sentencias SQL

para buscar información de cualquier tabla del esquema.

� Integración de editor para insertar texto enriquecido.

� Se ha optado por integrar un editor WYSIWYG Open Source realizado en

JavaScript. Solo está disponible en el campo “cuerpo” o “body” de las tablas del

bloque proyectos.

� La interfaz debe ser sencilla e intuitiva, dada la posibilidad de que sea utilizada

por personas carentes de conocimientos técnicos en bases de datos.

� Todas las tareas DML se ejecutan de manera sencilla, introduciendo

información en campos y guardando la información.

� El mejor ejemplo de simplificación técnica es el buscador integrado. Consta de

varios campos donde introducir la columna, tabla o valor por el que se quiere

filtrar, y una lista desplegable con las condiciones de filtrado. Esto genera una

consulta SQL de manera automática que puede ser verificada posteriormente.

Realizando una abstracción del análisis, podemos decir que todos los objetivos se

han cumplido. Debemos reseñar que las mayores dificultades encontradas se relacionan

41 En computación CRUD es el acrónimo de Crear, Obtener, Actualizar y Borrar (Create, Retrieve, Update y Delete en inglés). Es usado para referirse a las funciones básicas en bases de datos o la capa de persistencia en un sistema de software. Véase http://es.wikipedia.org/wiki/CRUD

Page 85: 2. MEMORIA 2.1 Introducción - bibing.us.esbibing.us.es/proyectos/abreproy/11957/descargar_fichero/Volumen+1+-+Memoria+del... · Véase C3%B3n_de_datos 8 Lenguaje de Manipulación

100

con la integración de componentes externos a nuestra web, como el editor WYSIWYG o

el BibTeX Parser, aunque se ha empleado más tiempo en depuración de errores de

codificación.

2.5.2 Futuras mejoras

Dada la magnitud del proyecto, las posibilidades de mantenimiento evolutivo son

bastante limitadas. Salvo un incremento notable en el almacenamiento de datos, no es

necesario un gran esfuerzo para mejorar el sistema. Aún así, existen posibles tareas que,

sin un alto coste en recursos pueden aumentar en cierto modo la calidad del sistema.

Base de datos:

� Gestión del acceso basado en cuentas de usuario, roles y permisos.

� Desarrollar un servicio de backup automático configurable.

Portal web GRVC:

� Herramienta de gestión de eventos (integrada en el calendario).

� Incorporar un tercer idioma.

� Integración de un espacio de acceso rápido a los contenidos más consultados.

Portal web de administración:

� Importación BibTeX de múltiples registros.

� Soporte DDL y de generación/carga de scripts.

� Integración de un servidor externo de autenticación (LDAP42), esta

funcionalidad la proporciona el servidor HTTP Apache.

42 LDAP son las siglas de Lightweight Directory Access Protocol permite el acceso a un servicio de directorio ordenado y distribuido para buscar diversa información en un entorno de red. Véase http://es.wikipedia.org/wiki/LDAP