Dedicado a… - Universidad de Sevilla

Anuncio
SELWA: Sistema de gestión, seguimiento y automatización de informes para
alumnos con necesidades educativas especiales.
Dedicado a…
…mis PADRES, por su inagotable e incondicional apoyo y cariño. Este
proyecto es tan vuestro como mío.
…INMA, por soportar todos los momentos bajos y estar SIEMPRE ahí.
…mi hermana AURORA, por aguantarme tres años numerando folios.
…mi hermana ISABEL, por controlarme la tensión.
…CARLOS, por resolver todas esas dudas irresolubles y compartir tantas
horas de Messenger.
…HUGO, porque sin 3 no seríamos un ingeniero.
…AURORA, por todo el material educativo proporcionado, y por soportar
las repentinas reuniones de consultoría.
…mi tutora ISABEL, por las facilidades prestadas pese a la distancia.
…mi tía MARY, por tantas meriendas leyendo versiones “beta”.
…mi ABUELA, por su incansable y ciega confianza en mí.
…RAFALITO, por su servicio de “copistería”.
…IVÁN, por acompañarme “estudiando” tantas mañanas desde la ventana.
Y, en general, a todos aquellos que, en mayor o menor medida, han
colaborado mostrándome su apoyo y confianza. Un pedacito de este proyecto es
vuestro.
A todos
GRACIAS
Autor: Antonio Martínez Martínez
I
SELWA: Sistema de gestión, seguimiento y automatización de informes para
alumnos con necesidades educativas especiales.
Autor: Antonio Martínez Martínez
II
SELWA: Sistema de gestión, seguimiento y automatización de informes para
alumnos con necesidades educativas especiales.
Índice de Contenidos
Dedicado a…............................................................................................................I
Índice de Contenidos...........................................................................................III
Índice de Figuras .................................................................................................IX
1 Motivación y Objetivos........................................................................................1
1.1 Introducción ..................................................................................................1
1.2 Fases del proyecto........................................................................................ 3
1.3 Estructura del documento........................................................................... 4
2 Introducción Teórica.......................................................................................... 7
2.1 Situación de Partida..................................................................................... 7
2.1.1 Introducción .......................................................................................... 7
2.1.2 Origen del término Web 2.0 ................................................................ 7
2.1.3 Comparación con la Web Semántica...................................................8
2.1.4 Tecnologías............................................................................................ 9
2.1.5 Sindicación de contenido ................................................................... 10
2.1.6 Servicios Web.......................................................................................11
2.1.7 Software de servidor ............................................................................11
2.1.8 Conclusiones ....................................................................................... 12
2.1.8.1 Punto de vista del diseñador....................................................... 12
2.1.8.2 Punto de vista del usuario .......................................................... 13
2.2 Tecnología Empleada................................................................................ 14
2.2.1 XHTML................................................................................................ 14
2.2.1.1 Introducción................................................................................. 14
2.2.1.2 Diferencias entre HTML y XHTML ............................................15
2.2.1.3 Ventajas e Inconvenientes .......................................................... 19
2.2.1.4 XHTML 2.0 .................................................................................. 19
2.2.2 CSS.......................................................................................................22
2.2.2.1 Introducción ................................................................................22
2.2.2.2 Ventajas del uso de CSS..............................................................23
2.2.2.3 Versiones y compatibilidad con navegadores...........................24
2.2.2.4 Maquetado CSS ...........................................................................26
2.2.2.5 CSS3 ............................................................................................. 27
Autor: Antonio Martínez Martínez
III
SELWA: Sistema de gestión, seguimiento y automatización de informes para
alumnos con necesidades educativas especiales.
2.2.3 JavaScript............................................................................................28
2.2.3.1 Introducción ................................................................................28
2.2.3.2 Evolución Histórica ....................................................................28
2.2.3.3 El Modelo de Objetos de Documento (DOM) ...........................30
2.2.3.3.1 Introducción..........................................................................30
2.2.3.3.2 ¿Qué es el DOM? ..................................................................30
2.2.3.3.3 Compatibilidad entre los DOMs.......................................... 31
2.2.3.3.4 Acceso a los elementos del modelo ..................................... 31
2.2.3.4 Características y usos principales ..............................................32
2.2.3.5 ¿Qué NO es JavaScript?..............................................................33
2.2.3.6 Introducción a AJAX (Asynchronous JavaScript and XML) ..34
2.2.4 PHP......................................................................................................36
2.2.4.1 Introducción ................................................................................36
2.2.4.2 Conceptos generales ................................................................... 37
2.2.4.3 Evolución histórica .....................................................................39
2.2.4.4 Ventajas e inconvenientes .......................................................... 41
2.2.4.5 Seguridad en PHP .......................................................................42
2.2.4.6 ¿Cuándo usar PHP? ....................................................................43
2.2.4.7 Resumen ......................................................................................43
2.2.5 MySQL................................................................................................. 45
2.2.5.1 Introducción................................................................................. 45
2.2.5.2 Evolución histórica ..................................................................... 45
2.2.5.3 Conceptos Generales...................................................................46
2.2.5.4 Mejoras Futuras .......................................................................... 52
2.2.5.5 PostgreSQL, ¿la alternativa a MySQL?...................................... 53
2.2.5.5.1 Comparativa final: MySQL vs PostgreSQL ......................... 55
2.2.6 AJAX ...................................................................................................58
2.2.6.1 Introducción ................................................................................58
2.2.6.2 Funcionamiento básico .............................................................. 59
2.2.6.2.1 ¿Por qué es diferente AJAX? ...............................................60
2.2.6.3 Grandes usuarios de AJAX.........................................................62
2.2.6.4 Navegadores que permiten y no permiten AJAX .....................63
2.2.6.5 Solución implementada: XAJAX ...............................................64
Autor: Antonio Martínez Martínez
IV
SELWA: Sistema de gestión, seguimiento y automatización de informes para
alumnos con necesidades educativas especiales.
2.2.6.5.1 Conceptos básicos.................................................................64
2.2.6.5.2 Modo de funcionamiento.....................................................64
2.2.6.5.3 Uso en Sistema SELWA .......................................................66
2.2.6.6 Conclusión ...................................................................................66
3 Diseño e Implementación................................................................................ 67
3.1 Software utilizado ...................................................................................... 67
3.1.1 Herramienta WAMP5 ......................................................................... 67
3.2 Visión global de la aplicación ................................................................... 72
3.2.1 Punto de vista teórico ......................................................................... 72
3.2.2 Punto de vista técnico ........................................................................ 75
3.2.3 Base de datos MySQL......................................................................... 81
3.2.3.1 Estructura..................................................................................... 81
3.2.3.2 Conexión PHP ßàMySQL ........................................................83
3.3 Módulos de registro...................................................................................86
3.3.1 Acceso al sistema ................................................................................86
3.3.1.1 Punto de vista teórico ..................................................................86
3.3.1.2 Punto de vista técnico .................................................................87
3.3.2 Módulo de registro de usuarios.........................................................90
3.3.2.1 Introducción: Perfiles y permisos ..............................................90
3.3.2.2 Modo Administrador ..................................................................90
3.3.2.3 Modo Profesor.............................................................................94
3.3.2.4 Modo Consultor ..........................................................................96
3.3.2.5 Información técnica .................................................................... 97
3.3.3 Módulo de registro de alumnos.........................................................99
3.3.3.1 Funcionamiento básico ...............................................................99
3.3.3.2 Clasificación de datos ...............................................................100
3.3.3.3 Condiciones necesarias..............................................................113
3.3.3.4 Información técnica...................................................................115
3.4 Módulos de gestión ................................................................................. 122
3.4.1 Gestión de usuarios .......................................................................... 122
3.4.1.1 Gestión básica ............................................................................ 122
3.4.1.2 Solución implementada ............................................................ 123
3.4.2 Gestión de alumnos.......................................................................... 124
3.4.2.1 Gestión básica............................................................................ 124
Autor: Antonio Martínez Martínez
V
SELWA: Sistema de gestión, seguimiento y automatización de informes para
alumnos con necesidades educativas especiales.
3.4.2.2 Trabajo diario ............................................................................ 128
3.4.3 Información técnica ..........................................................................131
3.5 Informes ................................................................................................... 138
3.5.1 Introducción...................................................................................... 138
3.5.2 Funcionamiento básico.................................................................... 138
3.5.3 Informes personalizados.................................................................. 143
3.5.4 Informes predefinidos...................................................................... 143
4 Líneas futuras ................................................................................................. 145
4.1 Módulo de gestión personal.................................................................... 145
4.1.1 Agenda................................................................................................ 145
4.1.2 Tablón de anuncios........................................................................... 146
4.1.3 Correo interno................................................................................... 147
4.2 Módulo de gestión de usuarios............................................................... 148
4.2.1 Modificación y eliminación de fichas de usuario ........................... 148
4.3 Módulo de gestión de alumnos .............................................................. 149
4.3.1 Backup de datos de alumnos en repositorio ................................... 149
4.4 Gestión de Informes.................................................................................151
5 Conclusiones ................................................................................................... 153
6 Pliego de condiciones......................................................................................155
6.1 Diagramas base de datos..........................................................................155
6.2 Códigos reseñables .................................................................................. 174
6.2.1 CSS ..................................................................................................... 174
à hoja_gral.css ..................................................................................... 174
à hoja_index.css....................................................................................177
à hoja_res_busq.css ............................................................................ 182
6.2.2 XHTML ............................................................................................. 184
à ficha.php ............................................................................................ 184
6.2.3 PHP.................................................................................................... 195
à inserta_us.php .................................................................................. 195
à find_al.php........................................................................................ 198
àcrea_inf.php ...................................................................................... 200
6.2.4 JavaScript ........................................................................................ 206
à funcs_GestPest.js............................................................................. 206
à funcs_Varias.js..................................................................................211
Autor: Antonio Martínez Martínez
VI
SELWA: Sistema de gestión, seguimiento y automatización de informes para
alumnos con necesidades educativas especiales.
à funcs_Ayuda.js.................................................................................. 213
à add_obj.php ...................................................................................... 221
6.2.5 AJAX..................................................................................................223
à server.php..........................................................................................223
7 Bibliografía y Referencias ..............................................................................225
7.1 Bibliografía ...............................................................................................225
7.2 Referencias Web ......................................................................................225
7.2.1 CSS .....................................................................................................225
7.2.2 XHTML .............................................................................................226
7.2.3 PHP....................................................................................................226
7.2.4 JavaScript..........................................................................................226
7.2.5 MySQL ...............................................................................................227
7.2.6 AJAX..................................................................................................227
7.2.7 Otros enlaces de interés ...................................................................227
Autor: Antonio Martínez Martínez
VII
SELWA: Sistema de gestión, seguimiento y automatización de informes para
alumnos con necesidades educativas especiales.
Autor: Antonio Martínez Martínez
VIII
SELWA: Sistema de gestión, seguimiento y automatización de informes para
alumnos con necesidades educativas especiales.
Índice de Figuras
Figura 2.2.4.1 ....................................................................................................... 37
Figura 2.2.6.1 .......................................................................................................60
Figura 2.2.6.2.......................................................................................................62
Figura 3.1.1 ...........................................................................................................70
Figura 3.2.1.1........................................................................................................ 74
Figura 3.2.2.1 ....................................................................................................... 77
Figura 3.3.2.2.1 .................................................................................................... 91
Figura 3.3.2.2.2....................................................................................................92
Figura 3.3.2.3.1 ....................................................................................................94
Figura 3.3.2.3.2.................................................................................................... 95
Figura 3.3.3.1.1.....................................................................................................99
Figura 3.3.3.2.1 ...................................................................................................101
Figura 3.3.3.2.2.................................................................................................. 102
Figura 3.3.3.2.3.................................................................................................. 102
Figura 3.3.3.2.4a................................................................................................ 103
Figura 3.3.3.2.4b................................................................................................ 104
Figura 3.3.3.2.5.................................................................................................. 106
Figura 3.3.3.2.6a................................................................................................ 107
Figura 3.3.3.2.6b................................................................................................108
Figura 3.3.3.2.7.................................................................................................. 109
Figura 3.3.3.2.8...................................................................................................110
Figura 3.3.3.2.9...................................................................................................113
Figura 3.4.2.1.1................................................................................................... 125
Figura 3.5.2.1 ..................................................................................................... 139
Figura 3.5.2.2 ..................................................................................................... 140
Autor: Antonio Martínez Martínez
IX
SELWA: Sistema de gestión, seguimiento y automatización de informes para
alumnos con necesidades educativas especiales.
Autor: Antonio Martínez Martínez
X
SELWA: Sistema de gestión, seguimiento y automatización de informes para
alumnos con necesidades educativas especiales.
1 Motivación y Objetivos
1 Motivación y Objetivos
1.1 Introducción
El mundo actual en el que vivimos está formado por una sociedad en la que el
tiempo es, cada vez con mayor frecuencia, el bien más preciado. No existe
tiempo para nada, lo único para lo que estamos obligados a tener tiempo es para
trabajar: nada de familia, ni amigos ni vida personal. Consecuencia: estrés. Y en
el momento en que tenemos un par de semanas de vacaciones o de días libres, lo
empleamos en salir en busca de actividades que nos permitan desconectar de
nuestra rutina diaria, y además nos gusta que sean actividades completas, nada
de medianías, con todos los detalles. Si vamos al campo, queremos una casa
rural con todo tipo de comodidades, queremos dar paseos a caballo,
excursiones, senderismo, etc. Debido a este ritmo de vida, apenas si nos queda
tiempo para otro tipo de tareas, que en otros tiempos se consideraban
prioritarias y ahora ya no nos lo parecen tanto, como por ejemplo, la educación
y cuidado de nuestros hijos. Antes, esta tarea siempre era llevada a cabo por uno
de los cónyuges (casi siempre la mujer, no nos engañemos). Pero hoy en día esto
es casi imposible, pues para mantener el estilo de vida que queremos tener es
necesario que ambas partes de la pareja aporten algo a la economía familiar.
Entonces, ¿quién se encarga ahora de ir a recoger a los niños al colegio?¿quién
se encarga de cuidarlos cuando ambos padres están trabajando? Habitualmente
estas labores se han delegado en los abuelos, parientes cercanos e incluso
vecinos o amigos, que acaban conociendo mucho mejor a nuestros hijos que
nosotros mismos (sus alegrías, sus tristezas, sus temores, sus problemas
escolares, etc.).
Todos estos avatares se acrecentan si nuestro hijo sufre algún tipo de
minusvalía. Este proyecto surge con la idea de ayudar a los padres con hijos con
necesidades educativas especiales de cualquier tipo.
Autor: Antonio Martínez Martínez
1
SELWA: Sistema de gestión, seguimiento y automatización de informes para
alumnos con necesidades educativas especiales.
1 Motivación y Objetivos
¿A qué padre no le gusta saber cómo se comporta su hijo en el colegio? Es
más, no sólo eso, sino que además le apetece saber la evolución que, a lo largo
del curso, va teniendo su hijo, no simplemente limitarse a ver unas notas cada 3
ó 4 meses. Y cuando nuestro hijo sufre una minusvalía esta información es tanto
más importante. El objetivo del presente proyecto es diseñar e implementar una
herramienta web que facilite a estos padres el acceso a una información
pormenorizada sobre cualquier aspecto de la actividad académica de su hijo en
cualquier momento, accediendo a los mismos informes que utilizan los
profesores responsables de la educación del niño, teniendo la posibilidad de
personalizar dichos informes con la información que estimen más interesante.
Al ser niños con necesidades educativas especiales, suelen tener asociados
diferentes especialistas que siguen la patología del niño e intentan ayudar a los
profesores de la mejor manera posible. Estos especialistas también forman parte
importante de la aplicación. Ellos, al igual que los padres, tendrán acceso a toda
la información registrada del alumno. Para ello, la única condición es que el
trabajo diario del profesor sea constante. A raíz de las anotaciones diarias que el
profesor haga acerca del alumno en los diferentes aspectos a tener en cuenta, se
generarán los informes. Y puesto que tanto profesores, padres y especialistas
comparten la misma información, todos trabajarán en la misma dirección para
tratar de conseguir los objetivos marcados a principios de cada curso.
La aplicación desarrollada, SELWA (Special Education Laboursaving Web
Application), seguirá los estándares del World Wide Web Consortium (W3C) en
cuanto a programación web. La aplicación está escrita en XHTML, separando la
representación de la información en hojas de estilo gracias a CSS2,
complementado con JavaScript para multitud de efectos dinámicos en el lado
cliente. Para el tratamiento dinámico de la información en el lado servidor se ha
elegido PHP, y como base de datos para registrar y ordenar toda la información
hemos optado por MySQL. Por último también reseñar que se han introducido
en algunas partes de la interfaz fragmentos generados mediante AJAX, una
unión de lenguajes como Javascript y XML que permiten realizar consultas
asíncronas al servidor y que dota de una mayor versatilidad y una mejor
Autor: Antonio Martínez Martínez
2
SELWA: Sistema de gestión, seguimiento y automatización de informes para
alumnos con necesidades educativas especiales.
1 Motivación y Objetivos
apariencia a nuestra aplicación. En posteriores apartados justificaremos
detenidamente el porqué de la elección de cada uno de estos lenguajes.
1.2 Fases del proyecto
A continuación se detallan las distintas fases en las que se ha desarrollado el
proyecto, indicando cuánto tiempo ha sido necesario para cada una de las
etapas.
·
Fase de recopilación de información: 1 mes y 15 días
Durante esta primera fase, el objetivo fue recopilar la mayor cantidad de
información posible acerca de las tecnologías que iban a ser empleadas en la
programación de la aplicación, así como recabar datos sobre los colegios de
educación especial y las necesidades que plantean para realizar una herramienta
útil y versátil.
·
Estudio de la estructura del sistema: 15 días
Esta fase fue determinante, pues se decidió cuál sería la estructura de capas
que conformarían la columna vertebral de la aplicación, así como qué
información iría en cada una de ellas, procurando en todo momento mantener
una correcta proporción entre tamaño e importancia.
Asimismo, se determinó cuál sería la estructura de la base de datos,
decidiendo qué tablas serían necesarias y cuál sería la interconexión entre ellas.
·
Programación de la aplicación: 3 meses
La programación de las distintas partes que se decidieron implementar en la
fase anterior, conllevó, como no podía ser de otra manera, la mayor parte del
tiempo invertido en la realización del proyecto. Se fueron programando,
Autor: Antonio Martínez Martínez
3
SELWA: Sistema de gestión, seguimiento y automatización de informes para
alumnos con necesidades educativas especiales.
1 Motivación y Objetivos
intercaladamente, conforme fue siendo necesario, los archivos PHP, JavaScript,
CSS y XHTML que componen la herramienta SELWA.
·
Redacción de la presente memoria: 1 mes
La redacción del presente documento se desarrolló durante el último mes de
trabajo.
1.3 Estructura del documento
La información mostrada en este documento está organizada en los
siguientes puntos:
Ø Una introducción teórica, donde se abordarán la situación actual de la
programación web, así como una breve explicación de todos y cada
uno de los lenguajes utilizados en el desarrollo de la aplicación,
justificando el porqué de su elección.
Ø Explicación detallada de los módulos fundamentales que componen el
sistema, distinguiendo entre usuarios y alumnos, partes de gestión e
inserción, y, por supuesto, cómo se generan los informes a partir de los
datos introducidos.
Ø Líneas futuras que permitirían ampliar y mejorar el presente proyecto.
Ø Conclusiones extraídas tras la elaboración de la aplicación, intentando
dar algunas justificaciones de por qué es realmente útil.
Autor: Antonio Martínez Martínez
4
SELWA: Sistema de gestión, seguimiento y automatización de informes para
alumnos con necesidades educativas especiales.
1 Motivación y Objetivos
Ø Diagramas explicativos de las relaciones de las tablas de la base de
datos (mediante el uso de diagramas entidad-relación), así como los
códigos fuente de los archivos más significativos que componen el
diseño, clasificados por lenguajes de programación.
Ø El último punto del documento contiene la bibliografía y referencias
web que han servido de apoyo.
Autor: Antonio Martínez Martínez
5
SELWA: Sistema de gestión, seguimiento y automatización de informes para
alumnos con necesidades educativas especiales.
1 Motivación y Objetivos
Autor: Antonio Martínez Martínez
6
SELWA: Sistema de gestión, seguimiento y automatización de informes para
alumnos con necesidades educativas especiales.
2 Introducción Teórica
2 Introducción Teórica
2.1 Situación de Partida
2.1.1 Introducción
El concepto original de la web (en este contexto, llamada Web 1.0) era la
publicación de páginas estáticas HTML cuya información era semi-permanente,
es decir, apenas se actualizaba su contenido y la interacción del usuario con la
página era del todo inexistente, pues no existían mecanismos que hicieran
modificar el contenido en función de la actuación del usuario. El éxito de las
punto-com dependía de webs más dinámicas (a veces llamadas Web 1.5) donde
los sistemas de gestión de contenido (CMS) servían páginas HTML dinámicas
creadas al vuelo desde una actualizada base de datos. Tanto conseguir visitas
como la estética visual eran considerados unos factores muy importantes.
Los impulsores de Web 2.0 creen que el uso de la web está orientado a la
interacción y a redes sociales, que pueden servir un contenido que realmente
utiliza todo el potencial de las redes, creando o no webs interactivas y visuales.
Es decir, los sitios Web 2.0 actúan más como puntos de encuentro, o webs
dependientes de usuarios, que como webs tradicionales.
2.1.2 Origen del término Web 2.0
Web 2.0 se refiere a la transición experimentada en Internet desde las webs
tradicionales a aplicaciones web destinadas a usuarios.
El término fue acuñado por Dale Dougherty de O'Reilly Media en una lluvia
de ideas con Craig Cline de MediaLive para desarrollar ideas para una
conferencia. Dougherty sugirió que la web estaba en un renacimiento, con reglas
que cambiaban y modelos de negocio que evolucionaban. Dougherty puso
Autor: Antonio Martínez Martínez
7
SELWA: Sistema de gestión, seguimiento y automatización de informes para
alumnos con necesidades educativas especiales.
2 Introducción Teórica
ejemplos — "DoubleClick era la Web 1.0; Google AdSense es la Web 2.0. Ofoto
es Web 1.0; Flickr es Web 2.0." — en vez de definiciones, y reclutó a John
Battelle para dar una perspectiva empresarial, y O'Reilly Media, Battelle, y
MediaLive lanzaron su primera conferencia sobre la Web 2.0 en Octubre de
2004. La segunda conferencia se celebró en octubre de 2005.
En su conferencia, O'Reilly y Battelle resumieron los principios clave que
creen que caracterizan a las aplicaciones Web 2.0: la web como plataforma;
datos como el "Intel Inside"; efectos de red conducidos por una "arquitectura de
participación"; innovación y desarrolladores independientes; pequeños modelos
de negocio capaces de sindicar servicios y contenidos; el perpetuo beta; software
por encima de un solo aparato.
Los propulsores de este pensamiento esperan que los servicios de la Web 2.0
sustituyan a las aplicaciones de escritorio en muchos usos.
2.1.3 Comparación con la Web Semántica
En ocasiones se ha utilizado el término Web 2.0 como análogo a Web
semántica. Sin embargo ambos conceptos, aun siendo afines, no son iguales,
sino más bien complementarios. La combinación de sistemas de redes sociales,
como FOAF (Friend Of A Friend), con el desarrollo de etiquetas (o tags), que en
su uso social derivan en folcsonomías¹, así como el plasmado de todas estas
tendencias a través de blogs y wikis, confieren a la Web 2.0 un aire semántico.
Sin embargo, en el sentido más estricto de Web semántica se requiere el uso de
ontologías² y no de folcsonomías. De momento, el uso de ontologías como
¹ Las folcsonomías surgen cuando varios usuarios colaboran en la descripción de un mismo
material informativo. Se trata de una práctica que se produce en entornos de software social
cuyos mejores exponentes son los sitios compartidos como del.icio.us (enlaces favoritos),
Flickr (fotos) o Tagzania (lugares).
² El término ontología en informática hace referencia al intento de formular un exhaustivo y
riguroso esquema conceptual dentro de un dominio dado, con la finalidad de facilitar la
comunicación y la compartición de la información entre diferentes sistemas. Los programas
informáticos pueden utilizar así la ontología para una variedad de propósitos, incluyendo el
razonamiento inductivo, la clasificación, y una variedad de técnicas de resolución de
Autor: Antonio Martínez Martínez
8
SELWA: Sistema de gestión, seguimiento y automatización de informes para
alumnos con necesidades educativas especiales.
2 Introducción Teórica
mecanismo de estructurar la información en los programas de blogs es
anecdótico y sólo se aprecia de manera incipiente en algunos wikis.
Bien podría hablarse de la Web 3.0 para la Web semántica. Pero una
diferencia fundamental entre ambas versiones de web (2.0 y 3.0) es el tipo de
participante. La 2.0 tiene como principal protagonista al usuario humano que
escribe artículos en su blog o colabora en un wiki. El requisito es que además de
publicar en HTML emita parte de sus aportaciones en XML/RDF (RSS, ATOM,
etc.). La 3.0, sin embargo, está orientada hacia el protagonismo de procesadores
mecánicos que entiendan de lógica descriptiva en OWL, acrónimo del inglés
Ontology Web Language, un lenguaje de marcado para publicar y compartir
datos usando ontologías en la WWW. OWL tiene como objetivo facilitar un
modelo de marcado construido sobre RDF y codificado en XML. La 3.0 está
concebida para que las máquinas hagan el trabajo de las personas a la hora de
procesar la avalancha de información publicada en la web.
2.1.4 Tecnologías
La infraestructura de la Web 2.0 es compleja y evoluciona, e incluye el
software de servidor, sindicación de contenidos, protocolos de mensajes,
navegadores basados en estándares, y varias aplicaciones para clientes.
Una web se puede decir que está construida usando tecnología de la Web 2.0
si se caracteriza por las siguientes técnicas:
 CSS, marcado XHTML válido semánticamente y Microformatos
 Técnicas de aplicaciones ricas no intrusivas (como AJAX)
 Java Web Start
 XUL
problemas.
Autor: Antonio Martínez Martínez
9
SELWA: Sistema de gestión, seguimiento y automatización de informes para
alumnos con necesidades educativas especiales.
2 Introducción Teórica
 Sindicación de datos en RSS/ATOM
 Agregación de datos en RSS/ATOM
 URLs sencillas y con significado
 Soporte para postear en un blog
 JCC y APIs REST o XML
 Algunos aspectos de redes sociales
y además cumple con ciertas reglas generales, como que la información debe
poderse introducir y extraer fácilmente o que los usuarios deben controlar su
propia información.
De las técnicas anteriormente mencionadas, el presente proyecto cumple
con las 2 primeras, así como con la característica de que las URLs usadas son
simples y con significado.
2.1.5 Sindicación de contenido
La primera y más importante evolución de la Web 2.0 se refiere a la
sindicación del contenido de una Web, usando protocolos estandarizados que
permitan a los usuarios finales usar el contenido de la web en otro contexto, ya
sea en otra web, un plug-in de navegador, o en una aplicación de escritorio (Un
ejemplo: EL PAIS exporta determinadas noticias en formato RSS de tal forma
que otros sitios pueden, sin esfuerzo, publicar los titulares de EL PAIS). Entre
los protocolos que permiten sindicar se encuentran RSS, RDF (conocido
también como RSS 1.1), y ATOM, todos ellos variedades de XML. Los protocolos
específicos como FOAF y XFN (ambos para redes sociales) amplían la
funcionalidad de los sitios y permiten a los usuarios interactuar sin contar con
sitios Web centralizados.
Autor: Antonio Martínez Martínez
10
SELWA: Sistema de gestión, seguimiento y automatización de informes para
alumnos con necesidades educativas especiales.
2 Introducción Teórica
Debido al reciente desarrollo de éstos, muchos son de facto en vez de
estándares.
2.1.6 Servicios Web
Los protocolos de mensajes bidireccionales son uno de los elementos clave de
la infraestuctura de la Web 2.0. Los dos tipos más importantes son los métodos
RESTful y SOAP. REST indican un tipo de llamada a un servicio web donde el
cliente transfiere el estado de todas las transacciones. SOAP y otros métodos
similares dependen del servidor para retener la información de estado. En
ambos casos, el servicio es llamado usando una API. A veces, esta API está
personalizada en función de las necesidades específicas del sitio web, pero las
APIs de los servicios web estándares (como por ejemplo escribir en un blog)
están también muy extendidas. Generalmente el lenguaje común de estos
servicios web es el XML, si bien puede haber excepciones.
Recientemente, una forma híbrida conocida como AJAX ha evolucionado
para mejorar la experiencia del usuario en las aplicaciones web basadas en el
navegador. Esto puede ser usado en webs propietarias (como en Google Maps) o
en formas abiertas utilizando una API de servicios web, una semilla de
sindicación. Se hablará más profundamente en el apartado “AJAX”, dentro de
“Tecnología Empleada”.
2.1.7 Software de servidor
La funcionalidad de la Web 2.0 se basa en la arquitectura existente de
servidor web pero con un énfasis mayor en el software dorsal. La sindicación
sólo se diferencia nominalmente de los métodos de publicación de la gestión
dinámica de contenido, pero los servicios Web requieren normalmente un
soporte de bases de datos y flujo de trabajo mucho más robusto, y llegan a
parecerse mucho a la funcionalidad de intranet tradicional de un servidor de
Autor: Antonio Martínez Martínez
11
SELWA: Sistema de gestión, seguimiento y automatización de informes para
alumnos con necesidades educativas especiales.
2 Introducción Teórica
aplicaciones. El enfoque empleado hasta ahora por los fabricantes suele ser bien
un enfoque de servidor universal, el cual agrupa la mayor parte de la
funcionalidad necesaria en una única plataforma de servidor, o bien un enfoque
plug-in de servidor Web con herramientas de publicación tradicionales
mejoradas con interfaces API y otras utilidades. Independientemente del
enfoque elegido, no se espera que el camino evolutivo hacia la Web 2.0 se vea
alterado de forma importante por estas opciones.
2.1.8 Conclusiones
2.1.8.1 Punto de vista del diseñador
Es necesario evitar considerar que Web 2.0 hace referencia a la apariencia de
las páginas. Si uno busca en Google encontrará miles de empresas que intentan
explotar el concepto de Web 2.0. Ofrecen transformar cualquier web en una
Web 2.0. Esto así dicho no tiene excesivo sentido. Si una web es estática, de
contenido no renovado, no exporta ni importa noticias (RSS), etc., dicha web no
será Web 2.0 por mucho que estéticamente se parezca a Wikipedia o a cualquier
otro ejemplo clásico de Web 2.0.
Lo que sí es cierto, es que existe una tendencia, una moda, que hace que
muchas de las páginas modernas compartan un estilo más o menos parecido. Lo
mejor es echar un vistazo a sitios como Flickr , Yahoo, Wikipedia, del.icio.us
etc... para ver como sí que tienen aspectos comunes en lo que a diseño “visual”
se refiere.
Se dice, o se lee, en la web, que los diseñadores deben dejar de diseñar para el
usuario (presentaciones en movimiento, música, efectos) y empezar a diseñar
para las máquinas. Es decir favoreciendo el acceso de las mismas a la
información. Una regla fundamental, y esto viene de más atrás, es separar
contenido y estilo. Las Hojas de Estilo en Cascada (CSS) son absolutamente
necesarias en la programación web de este siglo.
Autor: Antonio Martínez Martínez
12
SELWA: Sistema de gestión, seguimiento y automatización de informes para
alumnos con necesidades educativas especiales.
2 Introducción Teórica
Si hasta ahora se había trabajado con un editor web sin preocuparse de cómo,
o dónde, se almacenaban los estilos de los elementos HTML de la página, lo
primero que hay que hacer ahora es mirar la edición de webs con CSS. No es
especialmente difícil, los estilos aplicables se multiplican, y la coherencia de
estilos entre todas las páginas del sitio será más simple.
Esta descripción encaja a la perfección con la implementación de la
herramienta desarrollada, pues la separación entre contenido y estilo es muy
clara, utilizando numerosos archivos CSS (con multitud de propiedades
distintas) para la diferente representación de las distintas páginas.
2.1.8.2 Punto de vista del usuario
El perfil de un posible usuario “2.0” de la red podría ser el de aquel que tiene
un blog. Lo más probable es que en su blog además de sus propias noticias,
publique noticias de otros blogs de referencia o de blogs de su círculo de amigos
(RSS). Un “2.0” comparte sus fotos por la red y permite que otros las comenten.
Probablemente se haya tomado alguna vez la molestia de completar algún
artículo de la Wikipedia y en su reproductor de mp3 escucha música a la carta
(Podcast).
Obviamente no es este el perfil del usuario del sistema SELWA, pues es una
aplicación más orientada al servicio de un tipo muy concreto de profesional, el
profesor, y de usuarios que no tienen por qué ser asiduos visitantes de la web,
como los padres, sino que lo que buscan es una herramienta que, además de
proporcionarles la información que precisan, les resulte agradable a la vista y
sencilla en su uso.
Autor: Antonio Martínez Martínez
13
SELWA: Sistema de gestión, seguimiento y automatización de informes para
alumnos con necesidades educativas especiales.
2 Introducción Teórica
2.2 Tecnología Empleada
2.2.1 XHTML
2.2.1.1 Introducción
XHTML, acrónimo inglés de eXtensible Hypertext Markup Language
(lenguaje extensible de marcado de hipertexto), es el lenguaje de marcado
pensado para sustituir a HTML como estándar para las páginas web. XHTML
tiene, básicamente, las mismas funcionalidades que HTML, pero cumple las
especificaciones, más estrictas, de XML. Su objetivo es avanzar en el proyecto
del World Wide Web Consortium (W3C) de lograr una web semántica, donde la
información, y la forma de presentarla estén claramente separadas. En este
sentido, XHTML serviría únicamente para transmitir la información que
contiene un documento, dejando para hojas de estilo (como las hojas de estilo
en cascada, CSS) y JavaScript su aspecto y diseño para distintos terminales
(ordenadores, PDAs, teléfonos móviles, impresoras...).
XHTML es el sucesor de HTML. Es por eso que muchos lo consideran la
“versión actual” de HTML, pero es una recomendación aparte y a la vez
paralela; el W3C continúa recomendando el uso de XHTML 1.1, XHTML 1.0, y
HTML 4.01 para publicar en la web. XHTML 1.1 fue publicado el 31 de Mayo de
2001 y desde entonces han estado lanzando continuamente borradores del
futuro XHTML 2.0. El último borrador es de finales de Julio del 2006 y se
empiezan a notar algunas diferencias importantes respecto al XHTML 1.0/1.1,
algunas de las cuales se muestran en el apartado 2.2.1.4.
La necesidad de una versión más estricta de HTML se sintió principalmente
porque el contenido de la World Wide Web ahora puede visualizarse desde
numerosos
dispositivos
(como
móviles),
aparte
de
los
ordenadores
tradicionales, donde no pueden dedicarse recursos suplementarios para
afrontar la complejidad añadida de la sintaxis del HTML.
Autor: Antonio Martínez Martínez
14
SELWA: Sistema de gestión, seguimiento y automatización de informes para
alumnos con necesidades educativas especiales.
2 Introducción Teórica
La mayoría de las versiones recientes de los navegadores web más populares
soportan XHTML, pero algunas versiones más antiguas sólo pueden leer el
XHTML como si se tratara de HTML. Asimismo casi todos los navegadores que
son compatibles con XHTML también leen HTML correctamente. Algunos
argumentan que esta compatibilidad ralentiza el cambio de HTML a XHTML.
En octubre de 2005 aproximadamente el 10% de los internautas utilizaban un
navegador compatible con el estándar XHTML. El Internet Explorer de
Microsoft es incompatible con XHTML hasta su versión 6.0, a pesar de que esta
empresa sea miembro del W3C. Sin embargo parece ser que con su nueva
versión 7.0, que vio la luz en 2006, la empresa líder en el sector se acerca por fin
al cumplimiento de las recomendaciones del W3C.
Por tanto, gran parte de los autores de sitios web se ven forzados a elegir
entre la escritura de documentos válidos, respetuosos con los estándares, u
ofrecer contenido que se visualice correctamente en la mayor parte de los
navegadores, lo que provoca o bien un retraso considerable en la programación
de un sitio web o bien una incompatibilidad con alguno de los navegadores
disponibles.
2.2.1.2 Diferencias entre HTML y XHTML
Los cambios de HTML a la primera generación de XHTML (es decir, XHTML
1.x) son menores ya que, principalmente, están destinados a conseguir la
conformidad con XML. El cambio más importante es el requisito de que el
documento esté bien formado y que todas las etiquetas estén explícitamente
cerradas, como se requiere en XML. Como las etiquetas en XML distinguen
entre mayúsculas y minúsculas (case-sensitive), la recomendación XHTML ha
definido todos los nombres de etiqueta en minúsculas. Lo cual está en contraste
directo con las tradiciones extendidas en el tiempo de HTML 2.0, cuando mucha
gente prefería las mayúsculas para estos casos, normalmente para mostrar más
fácilmente el contraste de éstas con el contenido. En XHTML, los valores de los
atributos deben encerrarse entre comillas ('simples' o "dobles", es indiferente).
Autor: Antonio Martínez Martínez
15
SELWA: Sistema de gestión, seguimiento y automatización de informes para
alumnos con necesidades educativas especiales.
2 Introducción Teórica
Al contrario ocurría en SGML y por consecuencia en HTML, donde las comillas
podían omitirse en algunos casos. Todos los elementos han de ser
explícitamente cerrados, incluyendo elementos vacíos como pueden ser img o
br. Esto puede hacerse añadiendo una barra a la etiqueta: <img … /> y <br />.
La minimización de atributos (como <option selected>) está también prohibida,
ya que el atributo “selected” no contiene ningún valor explícito; en lugar de eso,
se usa <option selected="selected">. Hay más diferencias detalladas en la
recomendación XHTML 1.0 de la W3C [1].
La siguiente lista muestra algunas reglas de XHTML 1.0 que lo diferencian de
HTML 4.01. Muchas de estas diferencias vienen con el cambio de estar basado
en SGML a estarlo en el más estricto XML:
 Los elementos vacíos deben cerrarse siempre:
Ø Incorrecto: <br>
Ø Correcto: <br></br> ó <br/> ó <br />
Nota: Cualquiera de las tres formas es válida en XHTML. Se recomienda el
cierre <br /> por razones de compatibilidad.
 Los elementos no vacíos también deben cerrarse siempre:
Ø Incorrecto: <p>Primer párrafo<p>Segundo párrafo
Ø Correcto: <p>Primer párrafo</p><p>Segundo párrafo</p>
 Los elementos anidados deben tener un correcto orden de apertura/cierre (el
que se abre último, debe cerrarse primero):
Ø Incorrecto: <em><strong>Texto</em></strong>
Autor: Antonio Martínez Martínez
16
SELWA: Sistema de gestión, seguimiento y automatización de informes para
alumnos con necesidades educativas especiales.
2 Introducción Teórica
Ø Correcto: <em><strong>Texto</strong></em>
 Se debe siempre especificar un texto alternativo para imágenes (atributo
"alt" para la etiqueta "img"):
Ø Incorrecto: <img src="http://www.unaweb.org/foto.png" />
Ø Correcto: <img src="http://www.unaweb.org/foto.png" alt="Logo" />
 Insertar elementos de bloque dentro de elementos de línea:
Ø Incorrecto: <em><h2>Título</h2></em>
Ø Correcto: <h2><em>Título</em></h2>
 Los valores de los atributos deben siempre ir encerrados entre comillas
(simples o dobles):
Ø Incorrecto: <td rowspan=3>
Ø Correcto: <td rowspan="3"> ó <td rowspan='3'>
 El símbolo & (ampersand) debe ser usado únicamente como parte de una
entidad:
Ø Incorrecto: Cars & houses
Ø Incorrecto:
<a src="http://www.dom.com/index.php?id=1&cat=2">Cat2</a>
Ø Correcto: Cars & houses
Ø Correcto:
<a src="http://www.dom.com/index.php?id=1&cat=2">Cat2</a>
Autor: Antonio Martínez Martínez
17
SELWA: Sistema de gestión, seguimiento y automatización de informes para
alumnos con necesidades educativas especiales.
2 Introducción Teórica
 Los nombres de elementos y atributos deben ir en minúsculas:
Ø Incorrecto: <A HREF="http://www.dom.com">Domname</A>
Ø Incorrecto: <a href="http://www.dom.com">Domname</a>
 No está permitida la minimización de atributos (se usa el nombre del
atributo como valor):
Ø Incorrecto: <textarea readonly>Solo-lectura</textarea>
Ø Correcto: <textarea readonly="readonly">Solo-lectura</textarea>
 Los atributos desaprobados en HTML 4.01 no forman parte de XHTML:
Ø Incorrecto: <font color="#0000FF">Blue text</font>
Ø Correcto: <span style="color: #0000FF;">Blue text</span>
·
Reglas para DTDs estrictos
El texto no debe ser insertado directamente en el cuerpo (dentro de la
etiqueta "body").
Ø Incorrecto: <body>Texto plano</body>
Ø Correcto: <body><span>Texto plano</span></body>
Autor: Antonio Martínez Martínez
18
SELWA: Sistema de gestión, seguimiento y automatización de informes para
alumnos con necesidades educativas especiales.
2 Introducción Teórica
2.2.1.3 Ventajas e Inconvenientes
 Ventajas de XHTML sobre otros formatos:
Ø Compatibilidad parcial con navegadores antiguos: la información
se visualiza, aunque sin formato. Cabe apuntar que el XHTML 1.0
fue diseñado expresamente para ser mostrado en navegadores que
soportan HTML de base.
Ø Un mismo documento puede adoptar diseños radicalmente
distintos en diferentes dispositivos, pudiendo incluso escogerse
entre varios diseños para un mismo medio.
Ø Facilidad de edición directa del código y de mantenimiento.
Ø Formato abierto, compatible con los nuevos estándares que
actualmente está desarrollando el W3C como recomendación para
futuros agentes de usuario o navegadores.
Ø Los documentos escritos conforme a XHTML 1.0 pueden
potencialmente presentar mejor rendimiento en las actuales
herramientas web que aquellos escritos conforme a HTML
 Inconvenientes:
Ø Muchas herramientas de diseño web aún no producen código
XHTML correcto.
2.2.1.4 XHTML 2.0
En este apartado se mostrarán algunas de las diferencias más importantes
que empieza a haber entre XHTML1.0/1.1 y XHTML 2.0. Simplemente se
muestra un breve resumen:
Autor: Antonio Martínez Martínez
19
SELWA: Sistema de gestión, seguimiento y automatización de informes para
alumnos con necesidades educativas especiales.
2 Introducción Teórica
 Compatibilidad hacía atrás: No existe. Con esta ruptura el estándar
será mucho más pequeño, conciso y específico, tendrá tendencia a ser
más estructurado, como XML, eliminará etiquetas de navegadores y se
abstrae de ellos para servir mejor en dispositivos alternativos como
PDA’s.
 Validación XML obligatoria: Esto por un lado es bueno, ya que
obliga a que las webs sean en formato estándar y elimina muchas
barreras para el acceso a la información. Por otro lado, obliga a tener
unos conocimientos un poco más avanzados.
 Desaparición de los encabezados hx y de div: Serán sustituidos
por “section” y “h”.
<section>
<h>Encabezado de primer nivel</h>
<section>
<h>Encabezado de segundo nivel</h>
</section>
</section>
 “role”, un presunto sustituto de rel: Cuando tengamos una parte de
la web que no pertenece al contenido — por ejemplo, una lista de enlaces
de navegación — podremos utilizar el atributo “role”.
 “XFrames”, vuelven los marcos: Vuelven los frames, por lo que
parece que esta nueva implementación soluciona el problema de las
URLs inconsistentes. En este punto han surgido numerosas críticas, que
sólo el tiempo dirá si son acertadas o no.
 “href” extendido, todo puede ser un enlace: El atributo href ya no
forma parte únicamente de la etiqueta <a> por lo que puede usarse en
cualquier etiqueta.
 XML includes: Se puede incluir contenido mediante ficheros XML sin
necesidad de usar el include() de PHP, ASP o similares. Puede ser una de
Autor: Antonio Martínez Martínez
20
SELWA: Sistema de gestión, seguimiento y automatización de informes para
alumnos con necesidades educativas especiales.
2 Introducción Teórica
las características más útiles del nuevo XHTML 2.0. Un ejemplo es la
web de w3future.com, donde se puede ver una web con estructura simple
en XHTML 2.0. El código de esa web es muy breve, y en él se ve:
<section id="navigation">
<xi:include href="http://w3future.com/w3f/sections.xml" />
</section>
Con la segunda línea (xi:include) se pueden añadir “includes” XML sin
necesidad de usar un lenguaje de programación del lado servidor.
 Aparición de “object”: A la hora de presentar en escena distintos
contenidos multimedia, ésta será la etiqueta que los defina ahora.
<object src="screen.css" srctype="text/css"></object>
<object src="foto.jpg" srctype="image/jpeg"></object>
<object src="pelicula.avi" srctype="video/x-msvideo"></object>
 Cambios en “hr” y “br”: El salto de línea <br /> parece que va a
desaparecer en favor de <line /> y <hr> en favor de <separator />.
Autor: Antonio Martínez Martínez
21
SELWA: Sistema de gestión, seguimiento y automatización de informes para
alumnos con necesidades educativas especiales.
2 Introducción Teórica
2.2.2 CSS
2.2.2.1 Introducción
Las hojas de estilo en cascada (Cascading Style Sheets, CSS) son un lenguaje
formal usado para definir la presentación de un documento estructurado escrito
en HTML o XML (y por extensión en XHTML). El W3C (World Wide Web
Consortium) es el encargado de formular la especificación de las hojas de estilo
que servirá de estándar para los agentes de usuario o navegadores. La idea que
se encuentra detrás del desarrollo de CSS es separar la estructura de un
documento de su presentación.
Por ejemplo, el elemento HTML <h1> indica que un bloque de texto es un
encabezamiento y que es más importante que un bloque etiquetado como <h2>.
Versiones más antiguas de HTML permitían atributos extra dentro de la
etiqueta abierta para darle formato (como el color o el tamaño de fuente). No
obstante, cada etiqueta <h1> debía disponer de la información si se deseaba un
diseño consistente para una página, y además, una persona que lea esa página
con un navegador pierde totalmente el control sobre la visualización del texto.
Cuando se utiliza CSS, la etiqueta <h1> no debería proporcionar únicamente
información acerca de cómo va a ser visualizado un párrafo, sino además
marcar la estructura del documento. La información de estilo separada en una
hoja CSS, especifica cómo se ha de mostrar <h1>: color, fuente, alineación del
texto, tamaño, y otras características no visuales como definir el volumen de un
sintetizador de voz, por ejemplo. Y, por otro lado, también deberían usarse estas
etiquetas para resaltar información importante, proporcionalmente al número
de la cabecera, amén de servir como elemento separador de párrafos de forma
consistente.
La información de estilo puede ser adjuntada tanto como un documento
separado o en el mismo documento HTML. En este último podrían definirse
estilos generales en la cabecera del documento o en cada etiqueta particular
Autor: Antonio Martínez Martínez
22
SELWA: Sistema de gestión, seguimiento y automatización de informes para
alumnos con necesidades educativas especiales.
2 Introducción Teórica
mediante el atributo “style”.
2.2.2.2 Ventajas del uso de CSS
Ø Control centralizado de la presentación de un sitio web completo con
lo que se agiliza de forma considerable la actualización del mismo.
Ø Los navegadores permiten a los usuarios especificar su propia hoja de
estilo local que será aplicada a un sitio web remoto, con lo que
aumenta considerablemente la accesibilidad. Por ejemplo, personas
con deficiencias visuales pueden configurar su propia hoja de estilo
para aumentar el tamaño del texto o remarcar más los enlaces.
Ø Una página puede disponer de diferentes hojas de estilo según el
dispositivo que la muestre o incluso a elección del usuario. Por
ejemplo, para ser impresa, mostrada en un dispositivo móvil, o ser
”leída” por un sintetizador de voz.
Ø El documento HTML en sí mismo es más claro de entender y se
consigue reducir considerablemente su tamaño.
Ø El uso de CSS no sólo beneficia a la página de cara a los usuarios
reales. Para los bots¹ que recorren la web con el objetivo de extraer su
contenido, es muy importante CSS. Como es sabido, los bots sólo
guardan unos ciertos kB de cada página. Al usar CSS lo que se hace de
forma indirecta es aumentar el contenido útil que será adquirido por
este tipo de bots. En definitiva, aumentará el posicionamiento del
sitio web,ya que el buscador será capaz de evaluar mejor el contenido
del sitio.
¹
Diminutivo de robot. Programa informático que realiza muy diversas funciones imitando a los
humanos.
Autor: Antonio Martínez Martínez
23
SELWA: Sistema de gestión, seguimiento y automatización de informes para
alumnos con necesidades educativas especiales.
2 Introducción Teórica
2.2.2.3 Versiones y compatibilidad con navegadores
De la misma manera que con HTML, el W3C se encarga de las normas de
CSS. Se trata de un estándar independiente, documentado en forma abierta y de
uso libre. Para CSS existe también un grupo de trabajo en el W3C, que se
encarga del desarrollo del lenguaje y que se somete a las reglas de trabajo para
generar las llamadas “recomendaciones” del Consorcio.
Como en HTML, en CSS también existen versiones del lenguaje, que se basan
en las nuevas ediciones de las recomendaciones. La versión 1.0 de CSS salió a la
luz pública en 1996 y fue revisada nuevamente en 1999. En 1998 CSS 2.0 recibió
el estatus de una recomendación. Actualmente se trabaja en CSS 3.0. En ella son
consideradas ambas versiones. Los navegadores modernos implementan CSS1
bastante bien, aunque existen pequeñas diferencias de implementación según
marcas y versiones de los navegadores. CSS2, sin embargo, está solo
parcialmente implementado en los más recientes.
Netscape 4.x interpreta muchas propiedades de la versión 1.0 de CSS y una
parte de las propiedades de la 2.0. El MS Internet Explorer (IE) conoce más
partes de CSS1 a partir de su versión de producto 3.0 del año 1996. El IE 4.0
interpreta una parte de la versión 2.0 de CSS y algunas propiedades especiales
que han sido introducidas por Microsoft. Al nivel de la generación cuarta de
ambos navegadores, la implementación de CSS está sin embargo un tanto
incompleta, es bastante diferente y especialmente en el Netscape 4.0 existen
algunos errores bastante graves. A partir de la versión 5.x de IE y de la 6.x de
Netscape, la situación ha mejorado un poco. El navegador Opera se encuentra al
tanto en cuestiones CSS a partir de su versión 5.x. Una implementación
completa de CSS 2.0 no ha sido lograda por ninguno de los navegadores
conocidos, aunque está muy próxima su completa compatibilidad.
Todo esto no dispensa a un programador web de probar todos los formatos
con diferentes navegadores al crear sus páginas. La implementación de CSS de
los navegadores no es tan uniforme como para que se pueda confiar en que todo
Autor: Antonio Martínez Martínez
24
SELWA: Sistema de gestión, seguimiento y automatización de informes para
alumnos con necesidades educativas especiales.
2 Introducción Teórica
es visualizado en todos los navegadores de la misma manera. Además se debe
considerar que el efecto óptico de las páginas web depende también mucho del
hardware utilizado. Las páginas web no son exclusivamente vistas en PCs con
pantallas de 19 pulgadas y 16,7 millones de colores. También son vistas en
portátiles, en ordenadores handheld, en ordenadores antiguos...
Las diferentes tecnologías que existen actualmente en el campo de las
pantallas, provocan que existan muy diferentes efectos, por ejemplo con los
colores. Lo que en un navegador se ve de color amarillo, se puede ver en otro de
color rosado. Aunque los monitores se pueden calibrar, no es de esperar que los
usuarios lo hagan para poder ver sus páginas. Al menos a partir de CSS 2.0
existe la posibilidad de definir diferentes formatos CSS para diferentes medios
de distribución. No obstante no todos los problemas pueden ser resueltos de
esta manera.
Desgraciadamente, las especificaciones del tamaño de fuente aún no generan
resultados uniformes. Mientras que en el campo de impresión una fuente de 10
puntos siempre es del mismo tamaño (ya que sólo es definido una vez qué
tamaño tiene un punto), tales especificaciones son convertidas en píxeles en la
pantalla. Sin embargo al hacer esto no está fijado qué tamaño debe tener un
píxel. Y además ni siquiera los factores de conversión son iguales. Por ejemplo,
el sistema operativo Windows calcula las especificaciones de tamaño de fuentes
en píxeles de manera diferente a como lo hacen plataformas gráficas bajo Linux
o en el sistema operativo de Macintosh. Resumiendo: muchos aspectos en CSS
se encuentran exactamente en el archivo, pero los resultados en la pantalla
pueden ser muy diferentes, no siendo de extrañar que éstos no sean del todo
satisfactorios.
Un aspecto muy a tener en cuenta en la creación de estilos para páginas web
es el tipo de personas que deben ver tales páginas como visitantes. Hay no pocas
personas que pueden percibir los colores sólo en forma limitada por causa de
una debilidad visual.
Autor: Antonio Martínez Martínez
25
SELWA: Sistema de gestión, seguimiento y automatización de informes para
alumnos con necesidades educativas especiales.
2 Introducción Teórica
Lo que una persona considera un diseño “fino”, es considerado por otras
personas como “ilegible”. E “ilegible” significa tener un visitante menos en
nuestras páginas. Por sus posibilidades, las hojas de estilo incitan al uso de tipos
de fuentes y colores poco comunes. Aunque esto se vea “muy bien”,
dependiendo de los terminales de visualización y de la capacidad de resolución
del usuario, puede ir a expensas de la usabilidad. Por otra parte, se pueden
utilizar las hojas de estilo explícitamente para optimizar las páginas para
personas con problemas visuales. Contrastes de colores correctos, tipos de
fuentes en tamaño normal, espacios comunes entre las fuentes y altura de las
líneas, omisión de combinaciones de colores críticas (como rojo/verde en el
fondo/primer plano), etc. Éstas son propiedades que páginas web bien
diseñadas deberían siempre poseer.
2.2.2.4 Maquetado CSS
Aunque desde hace tiempo los diseñadores web han optado por la utilización
de tablas HTML para el diseño de páginas web, el uso que les daban era como
elementos de estilo, cuando su verdadero cometido es albergar contenido
tabulado. La maquetación CSS consiste en utilizar capas (layers) como elemento
de marcado, que en HTML se definen con la etiqueta <div></div> (de apertura
y cierre, respectivamente) para organizar los datos del documento HTML, como
alternativa a las tablas y los marcos (frames). Así, se puede nombrar cada capa
con el atributo id de manera que se puedan definir las propiedades de dicha
capa en el archivo CSS externo al documento. También es posible incluir el
código CSS en la misma página HTML, pero es poco funcional (es conveniente
hacer uso de la modularidad para hacer más fácil el mantenimiento). Por
ejemplo:
·
Archivo.html
<div id="datos1">
Contenido: imágenes, texto, etc.
</div>
Autor: Antonio Martínez Martínez
26
SELWA: Sistema de gestión, seguimiento y automatización de informes para
alumnos con necesidades educativas especiales.
2 Introducción Teórica
·
Archivo.css
div#datos1{position:absolute;top:1in;left:0;width:91%;height:70%}
Existen otros aspectos importantes a la hora de maquetar una página web.
Según un estudio realizado sobre legibilidad, las fuentes de tipo “serif”, es decir,
aquellas que en los finales de las letras tienen remates, como por ejemplo
“Times New Roman”, son más fáciles de distinguir por los lectores cuando el
material está impreso. Sin embargo, en pantalla, este tipo de letras no son tan
“distinguibles” por la pequeña “neblina” que introduce la resolución de la propia
pantalla. En este caso lo aconsejable es utilizar tipos de fuente “sans serif”, es
decir sin esos remates en los bordes, como es el caso de “Arial”.
Respecto al tamaño no existe una norma estricta, pero al menos en la
impresión se aconseja 12 px, y muchas web también han adoptado este tamaño
como el más adecuado.
Si existe mucho contenido de lectura en la web se debe poner un color al
fondo (aconsejable casi blanco) y un color de letra (aconsejable muy oscuro) que
contrasten mucho.
2.2.2.5 CSS3
CSS 3 apenas está en plena fase de desarrollo, por lo que la mayor parte de las
capacidades de CSS3 no son soportadas por la mayoría de los navegadores,
razón que no ha impedido que un grupo de desarrolladores haya decidido crear
el sitio http://www.css3.info, en el cual es posible adentrarnos en algunas de los
nuevos efectos que se podrán utilizar en un futuro no tan lejano. En breve se
podrá comprobar si los anuncios de los diferentes navegadores acerca de su
compatilibilidad con esta tercera entrega del estándar CSS son ciertos, o una vez
más el poder que otorga CSS quedará mermado debido a su no implementación
completa por parte de todos los navegadores.
Autor: Antonio Martínez Martínez
27
SELWA: Sistema de gestión, seguimiento y automatización de informes para
alumnos con necesidades educativas especiales.
2 Introducción Teórica
2.2.3 JavaScript
2.2.3.1 Introducción
JavaScript es un lenguaje interpretado, es decir, que no requiere compilación,
utilizado principalmente en páginas web, con una sintaxis semejante a la del
lenguaje Java y el lenguaje C. Se trata de un lenguaje de programación del lado
del cliente, porque es el navegador el que soporta la carga de procesamiento.
Gracias a su compatibilidad con la mayoría de los navegadores modernos, es el
lenguaje de programación del lado del cliente más utilizado, y su uso más
común suele ser la creación de pequeños programas encargados de realizar
acciones dentro del ámbito de una página web, tales como efectos especiales, o
dotar de interactividad a la página. Además, el lenguaje JavaScript es
“opensource”, por lo que cualquier persona puede utilizarlo sin comprar una
licencia.
·
JavaScript no es JAVA
El lenguaje de programación JavaScript, desarrollado por Netscape, Inc.,
no forma parte de la plataforma Java; comparte algunos atributos con el
lenguaje de programación Java, pero se desarrolló de forma independiente. Al
contrario que Java, no es un lenguaje orientado a objetos propiamente
ya que no dispone de “Herencia”; es más bien un lenguaje
dicho,
basado
en
prototipos, ya que las nuevas clases se generan clonando las clases base
(prototipos) y extendiendo su funcionalidad.
2.2.3.2 Evolución Histórica
Los navegadores más populares interpretan el código JavaScript integrado
dentro de las páginas web. Para interactuar con una página web se provee al
lenguaje JavaScript de una implementación del DOM (ver apartado 2.2.3.3).
El lenguaje fue inventado por Brendan Eich en la empresa Netscape
Autor: Antonio Martínez Martínez
28
SELWA: Sistema de gestión, seguimiento y automatización de informes para
alumnos con necesidades educativas especiales.
2 Introducción Teórica
Communications, que es la que fabricó los primeros navegadores web
comerciales. Apareció por primera vez en el producto de Netscape llamado
Netscape Navigator 2.0.
Tradicionalmente, se venía utilizando en páginas web HTML, para realizar
tareas y operaciones en el marco de la aplicación cliente, sin acceso a funciones
del servidor. JavaScript se ejecuta en el agente de usuario al mismo tiempo que
las sentencias van descargándose junto con el código HTML.
Los autores inicialmente lo llamaron Mocha y más tarde LiveScript pero fue
rebautizado como JavaScript en un anuncio conjunto entre Sun Microsystems y
Netscape, el 4 de diciembre de 1995.
En 1997 los autores propusieron JavaScript para que fuera adoptado como
estándar de la European Computer Manufacturers' Association ECMA, que a
pesar de su nombre no es europeo sino internacional, con sede en Ginebra. En
junio de 1997 fue adoptado como un estándar ECMA, con el nombre de
ECMAScript. Poco después también lo fue como un estándar ISO.
JScript es la implementación de ECMAScript de Microsoft, muy similar al
JavaScript de Netscape, pero con ciertas diferencias en el modelo de objetos del
navegador que hacen a ambas versiones con frecuencia incompatibles.
Para evitar estas incompatibilidades, el World Wide Web Consortium (W3C)
diseñó el estándar Document Object Model (DOM, ó Modelo de Objetos del
Documento en castellano), que incorporan Konqueror, las versiones 6 de
Internet Explorer y Netscape Navigator, Opera versión 7, y Mozilla desde su
primera versión.
Autor: Antonio Martínez Martínez
29
SELWA: Sistema de gestión, seguimiento y automatización de informes para
alumnos con necesidades educativas especiales.
2 Introducción Teórica
2.2.3.3 El Modelo de Objetos de Documento (DOM)
2.2.3.3.1 Introducción
La programación orientada a objetos se ha popularizado enormemente en los
últimos tiempos, y ya resulta difícil encontrar lenguajes de programación que no
tengan una versión o que no estén basados en esta filosofía.
JavaScript no se queda al margen de esta tendencia, y aunque no permite dos
de las características clásicas de los lenguajes orientados a objetos (ni la
herencia ni el polimorfismo), sí permite la creación y manipulación de objetos
sencillos, y la definición de métodos y propiedades para dichos objetos.
Sin embargo, lo que verdaderamente interesa conocer de un lenguaje de
scripts como JavaScript, es el Modelo de Objetos de Documento (DOM,
Document
Object
Model).
El
DOM
ofrece
una
API
que
permite
acceder/manipular los elementos del documento. En otras palabras, el DOM es
el conjunto de objetos predefinidos que permite acceder a todos los elementos
de una página y a ciertas características específicas del navegador.
2.2.3.3.2 ¿Qué es el DOM?
El DOM es una jerarquía de objetos predefinidos que describen los elementos
de la página web que está mostrando el navegador, así como otras
características del proceso de navegación (como son el historial, el tamaño de la
ventana de navegación o el contenido de la barra de estado del navegador). Si no
se está familiarizado con la programación orientada a objetos, el concepto de
objeto puede resultar algo difuso. Un objeto es, en el fondo, un conjunto de
variables y funciones que actúa sobre dichas variables, encapsuladas en un
mismo paquete. El acceso a las funciones y a las variables se realiza mediante
una interfaz bien definida que aísla al programador de la necesidad de conocer
cómo están implementadas internamente dichas funciones. De este modo, la
programación orientada a objetos resulta muy intuitiva, y más próxima al
conocimiento humano. Un ejemplo sencillo de esto es el que se muestra a
continuación:
Autor: Antonio Martínez Martínez
30
SELWA: Sistema de gestión, seguimiento y automatización de informes para
alumnos con necesidades educativas especiales.
2 Introducción Teórica
window.alert("¡Hola mundo!")
Si bien no es conocido el funcionamiento interno de la función alert(), sí que
lo es cómo invocarla. La abstracción es tal que basta con saber que se trata de
una función del objeto window. A estas funciones se les llama métodos, y a las
variables propiedades.
2.2.3.3.3 Compatibilidad entre los DOMs
Actualmente no existe una gran diferencia entre el soporte de JavaScript que
ofrecen los fabricantes de los navegadores principales, Netscape Navigator,
Microsoft Internet Explorer, Mozilla, Opera o Safari. Lo que verdaderamente les
diferencia es el Modelo de Objetos de Documento que incorporan.
De hecho, el DOM podría considerarse algo independiente del propio
lenguaje de scripts. Esta es la idea recogida en el esfuerzo del W3C por obtener
un estándar para el Modelo de Objetos de Documento. El estándar se divide en
3 partes:
● DOM Nivel 1 Core (definiciones fundamentales)
● DOM Nivel 1 HTML
● DOM Nivel 1 XML
2.2.3.3.4 Acceso a los elementos del modelo
Para acceder a una propiedad de un objeto del modelo se utiliza la siguiente
nomenclatura:
nombre_objeto.nombre_propiedad
Un objeto de JavaScript es básicamente un array. Esto quiere decir que es
posible acceder a las propiedades del objeto utilizando también la sintaxis
Autor: Antonio Martínez Martínez
31
SELWA: Sistema de gestión, seguimiento y automatización de informes para
alumnos con necesidades educativas especiales.
2 Introducción Teórica
siguiente:
nombre_objeto[“nombre_propiedad”]
Para acceder a un método, se utiliza una sintaxis similar:
nombre_objeto.nombre_metodo()
Entre paréntesis se le pasan al método los argumentos necesarios para su
ejecución.
2.2.3.4 Características y usos principales
JavaScript es el siguiente paso, después de HTML, que puede dar un
programador web que decida mejorar sus páginas y la potencia de sus
proyectos. Es un lenguaje de programación bastante sencillo y pensado para
hacer las cosas con rapidez, a veces con ligereza. Incluso las personas que no
tengan una experiencia previa en la programación podrán aprender este
lenguaje con facilidad y utilizarlo en toda su potencia con sólo un poco de
práctica.
Las dos principales características de JavaScript son, por un lado, que es un
lenguaje basado en objetos (es decir, similar a la programación orientada a
objetos, pero con menos restricciones), y por otro, JavaScript es además un
lenguaje orientado a eventos, debido por supuesto al tipo de entornos en los que
se utiliza (Windows y sistemas X-Windows). Esto implica que gran parte de la
programación en JavaScript se centra en describir objetos (con sus variables de
instancia y métodos de “clase”) y escribir funciones que respondan a
movimientos del ratón, pulsación de teclas, apertura y cerrado de ventanas o
carga de una página, entre otros eventos.
Entre las acciones típicas que se pueden realizar en Javascript existen dos
vertientes. Por un lado los efectos especiales sobre páginas web, para crear
Autor: Antonio Martínez Martínez
32
SELWA: Sistema de gestión, seguimiento y automatización de informes para
alumnos con necesidades educativas especiales.
2 Introducción Teórica
contenidos dinámicos y elementos de la página que tengan movimiento,
cambien de color o cualquier otro dinamismo. Por el otro, JavaScript permite
ejecutar instrucciones como respuesta a las acciones del usuario, con lo que se
pueden crear páginas interactivas con programas como calculadoras, agendas, o
tablas de cálculo.
JavaScript es un lenguaje con muchas posibilidades, permite la programación
de pequeños scripts, pero también de programas más grandes con funciones,
estructuras de datos complejas, etc. Además, pone a disposición del
programador todos los elementos que forman la página web, para que éste
pueda acceder a ellos y modificarlos dinámicamente.
Con JavaScript el programador se convierte en el verdadero dueño y
controlador de cada evento que ocurre en la página cuando la está visualizando
el cliente.
2.2.3.5 ¿Qué NO es JavaScript?
Ante todo no es un lenguaje de propósito general. No permite un control
absoluto sobre los recursos del ordenador, tal y como sucede al crear un
programa (aunque las últimas innovaciones de los navegadores en cuestiones de
seguridad le están dando una mayor operatividad) . Cada programa en
JavaScript sólo tiene acceso al documento HTML en el que va inmerso y, si
acaso, a las ventanas en las que se ejecuta el navegador dentro del cual se está
ejecutando el programa en JavaScript.
Tampoco es un sustituto de los CGIs. Ciertas cosas no se pueden hacer en
JavaScript, especialmente las relacionadas con acceso a ficheros en todos sus
sentidos. Sin embargo es muy útil para depurar errores en los datos antes de
pasárselos al CGI que los trata, por lo que el uso combinado de JavaScript y
CGIs redunda en un mejor tratamiento de datos y un menor número de
transacciones en la Web cuando se usan los CGIs.
Autor: Antonio Martínez Martínez
33
SELWA: Sistema de gestión, seguimiento y automatización de informes para
alumnos con necesidades educativas especiales.
2 Introducción Teórica
Por último, no es un lenguaje orientado a objetos, ya que, por ejemplo, no
existe el concepto de clase. Es basado en objetos, de modo que se trabaja
directamente con instancias de objetos.
2.2.3.6 Introducción a AJAX (Asynchronous JavaScript
and XML)
En este apartado simplemente se pretende dar una pequeña visión histórica
de los comienzos de lo que hoy se conoce como AJAX, y que no es más que el
uso de forma asíncrona de JavaScript y XML.
A pesar de que el término “AJAX” fuese creado en 2005, la historia de las
tecnologías que permiten AJAX se remonta a una década antes con la iniciativa
de Microsoft en el desarrollo de Scripting Remoto. Sin embargo, las técnicas
para la carga asíncrona de contenidos en una página existente sin requerir
recarga completa se remontan al tiempo del elemento iframe (introducido en
Internet Explorer 3 en 1996) y el tipo de elemento layer (introducido en
Netscape 4 en 1997, abandonado durante las primeras etapas de desarrollo de
Mozilla). Ambos tipos de elemento tenían el atributo “src” que podía tomar
cualquier dirección URL externa, y cargando una página que contenga
JavaScript que manipule la página paterna, pueden lograrse efectos parecidos al
AJAX.
El Microsoft's Remote Scripting (o MSRS, introducido en 1998) resultó un
sustituto más elegante para estas técnicas, con envío de datos a través de un
applet Java, el cual se puede comunicar con el cliente usando JavaScript. Esta
técnica funcionó en ambos navegadores, Internet Explorer versión 4 y Netscape
Navigator versión 4. Microsoft la utilizó en el Outlook Web Access provisto con
la versión 2000 de Microsoft Exchange Server.
AJAX es una técnica de desarrollo web para crear aplicaciones interactivas.
Éstas se ejecutan en el cliente, es decir, en el navegador del usuario, y mantiene
comunicación asíncrona con el servidor en segundo plano. De esta forma es
Autor: Antonio Martínez Martínez
34
SELWA: Sistema de gestión, seguimiento y automatización de informes para
alumnos con necesidades educativas especiales.
2 Introducción Teórica
posible realizar cambios sobre la misma página sin necesidad de recargarla.
Esto significa aumentar la interactividad, velocidad y usabilidad en la misma.
En el apartado 2.2.6 extenderemos más la información sobre esta pseudotecnología.
Autor: Antonio Martínez Martínez
35
SELWA: Sistema de gestión, seguimiento y automatización de informes para
alumnos con necesidades educativas especiales.
2 Introducción Teórica
2.2.4 PHP
2.2.4.1 Introducción
PHP es un lenguaje de programación usado generalmente para la creación de
contenido para sitios web. PHP es un acrónimo recurrente que significa "PHP
Hypertext Pre-processor" (inicialmente PHP Tools o Personal Home Page
Tools), y se trata de un lenguaje interpretado usado para la creación de
aplicaciones para servidores o creación de contenido dinámico para sitios web.
Últimamente también para la creación de otro tipo de programas, incluyendo
aplicaciones con interfaz gráfica usando la biblioteca GTK+.
Puede combinarse con bases de datos MySQL, ofreciendo resultados muy
interesantes para todas aquellas páginas web que pretendan figurar como
activas y dinámicas. La creación y desarrollo de PHP ha estado ligada siempre al
proyecto GNU, por lo que al igual que en GNU/Linux o MySQL, el desarrollo de
este lenguaje depende de millones de programadores de todo el mundo.
El lenguaje PHP es un lenguaje de programación de estilo clásico, es decir, es
un lenguaje de programación con variables, sentencias condicionales, bucles,
funciones.... No es un lenguaje de marcas como podrían ser HTML o XML. Está
más cercano a JavaScript o a C.
Pero a diferencia de Java o JavaScript (que se ejecutan en el navegador), PHP
se ejecuta en el servidor, por eso nos permite acceder a los recursos que tenga el
servidor, como por ejemplo podría ser una base de datos. El programa PHP es
ejecutado en el servidor y el resultado enviado al navegador. El resultado es
normalmente una página HTML pero igualmente podría ser una pagina WML¹.
La Figura 2.2.4.1 ilustra este funcionamiento:
¹
Wireless Markup Language: Este lenguaje se utiliza para construir las páginas que aparecen
en las pantallas de los teléfonos móviles y los asistentes personales digitales (PDA) dotados
de tecnología WAP.
Autor: Antonio Martínez Martínez
36
SELWA: Sistema de gestión, seguimiento y automatización de informes para
alumnos con necesidades educativas especiales.
2 Introducción Teórica
Figura 2.2.4.1
2.2.4.2 Conceptos generales
El fácil uso y la similitud con los lenguajes más comunes de programación
estructurada, como C y Perl, permiten a la mayoría de los programadores
experimentados crear aplicaciones complejas con una curva de aprendizaje muy
suave. También les permite involucrarse en aplicaciones de contenido dinámico
sin tener que aprender todo un nuevo grupo de funciones y prácticas.
Debido al diseño de PHP, es posible crear aplicaciones con una interfaz
gráfica para el usuario (también llamada GUI), utilizando la extensión PHPGTK. También puede ser usado desde la línea de comandos, de la misma
manera que Perl o Python. Esta versión de PHP se llama PHP CLI (Command
Line Interface).
Su interpretación y ejecución se da en el servidor, en el cual se encuentra
almacenado el script, y el cliente sólo recibe el resultado de la ejecución. Cuando
el cliente hace una petición al servidor para que le envíe una página web,
generada por un script PHP, el servidor ejecuta el intérprete de PHP, el cual
procesa el script solicitado que generará el contenido de manera dinámica,
pudiendo modificar el contenido a enviar, y devuelve el resultado al servidor,
que se encarga de reenviarlo al cliente. Además es posible utilizar PHP para
Autor: Antonio Martínez Martínez
37
SELWA: Sistema de gestión, seguimiento y automatización de informes para
alumnos con necesidades educativas especiales.
2 Introducción Teórica
generar archivos PDF, Flash, así como imágenes en diferentes formatos, entre
otras cosas (la generación de archivos PDF es una de las potentes herramientas
que ofrece PHP que han sido utilizadas en este proyecto). Al ser PHP un
lenguaje que se ejecuta en el servidor, su funcionalidad es independiente del
navegador, pero sin embargo para que las páginas PHP funcionen, el servidor
donde están alojadas, obviamente, debe soportar PHP.
Permite la conexión a diferentes tipos de servidores de bases de datos tales
como MySQL, PostgreSQL, Oracle, ODBC, DB2, Microsoft SQL Server, Firebird
y SQLite, lo cual permite la creación de aplicaciones web muy robustas.
PHP también tiene la capacidad de ser ejecutado en la mayoría de los
sistemas operativos, tales como UNIX (por ejemplo Linux), Windows y Mac OS
X, y puede interactuar con los servidores web más populares ya que existe en
versión CGI, módulo para Apache, e ISAPI (Internet Server API, es una API
para el servidor web IIS de Microsoft).
El modelo PHP puede ser visto como una alternativa al sistema de Microsoft
que utiliza ASP.NET/C#/VB.NET, a ColdFusion de la compañía Macromedia, a
JSP/Java de Sun Microsystems, y al famoso CGI/Perl. Aunque su creación y
desarrollo se da en el ámbito de los sistemas libres, bajo la licencia GNU, existe
además un Entorno Integrado de Desarrollo (IDE) comercial llamado Zend
Optimizer.
·
Usos de PHP
Los principales usos de PHP son los siguientes:
Ø
Programación de páginas web dinámicas, habitualmente en
combinación con el motor de base datos MySQL, aunque cuenta
con soporte nativo para otros motores, incluyendo el estándar
ODBC, lo que amplía en gran medida sus posibilidades de
conexión.
Autor: Antonio Martínez Martínez
38
SELWA: Sistema de gestión, seguimiento y automatización de informes para
alumnos con necesidades educativas especiales.
2 Introducción Teórica
Ø
Programación en consola, al estilo de Perl o Shell scripting.
Ø
Creación de aplicaciones gráficas independientes del navegador,
por medio de la combinación de PHP y GTK (GIMP Tool Kit), lo
que permite desarrollar aplicaciones de escritorio en los sistemas
operativos en los que está soportado.
2.2.4.3 Evolución histórica
PHP fue originalmente diseñado en Perl, seguido por la escritura de un grupo
de CGI binarios escritos en lenguaje C por el programador Danés-Canadiense
Rasmus Lerdorf en el año 1994 para mostrar su currículum vitae y guardar
ciertos datos, como la cantidad de tráfico que su página web recibía. El 8 de
junio del 1995 fue publicado "Personal Home Page Tools" después de que
Lerdorf lo combinara con su propio Form Interpreter para crear PHP/FI.
·
PHP 3.2.4.3
Dos programadores israelíes del Technion, Zeev Suraski y Andi Gutmans,
reescribieron el analizador sintáctico (parser en inglés) en el año 1997 y crearon
la base del PHP 3, cambiando el nombre del lenguaje a la forma actual.
Inmediatamente comenzaron experimentaciones públicas de PHP 3 y fue
lanzado oficialmente en junio del 1998.
Para 1999, Suraski y Gutmans reescribieron el código de PHP, produciendo lo
que hoy se conoce como Zend Engine o motor Zend. También conformaron
Zend Technologies en Ratmat Gan, Israel.
·
PHP 4
En mayo de 2000 PHP 4 fue lanzado bajo el poder del motor Zend Engine
1.0. La última versión de PHP 4 disponible en Noviembre de 2006 es la 4.4.4. El
Autor: Antonio Martínez Martínez
39
SELWA: Sistema de gestión, seguimiento y automatización de informes para
alumnos con necesidades educativas especiales.
2 Introducción Teórica
soporte a PHP 4 continua activo lanzando parches de seguridad para aquellas
aplicaciones que lo requieren.
·
PHP 5
El 13 de julio de 2004, fue lanzado PHP 5, utilizando el motor Zend Engine II
(o Zend Engine 2). La versión más reciente de PHP 5 (en noviembre de 2006) es
la 5.2.0, que incluye todas las ventajas que provee el nuevo Zend Engine 2
como:
Ø Soporte sólido para Programación Orientada a Objetos (OOP) con
PHP Data Objects
Ø Mejoras de rendimiento
Ø Mejor soporte para MySQL con extensión de rewrite completa
Ø Mejor soporte a XML ( XPath, DOM... )
Ø Soporte nativo para SQLite
Ø Soporte integrado para SOAP¹
Ø Iteradores de datos
Ø Excepciones de errores
¹
Simple Object Access Protocol: Protocolo estándar que define cómo dos objetos en diferentes
procesos pueden comunicarse por medio de intercambio de datos XML.
Autor: Antonio Martínez Martínez
40
SELWA: Sistema de gestión, seguimiento y automatización de informes para
alumnos con necesidades educativas especiales.
2 Introducción Teórica
·
PHP 6
Está previsto el lanzamiento en breve de la rama 6 de PHP. Cuando se lance
esta nueva versión, quedarán tres ramas activas en desarrollo (PHP 4, 5 y 6).
Las diferencias que encontraremos frente a PHP 5 son:
Ø
Soportará Unicode
Ø
Limpieza de funcionalidades obsoletas como register_globals,
safe_mode...
Ø
PECL (PHP Extension Community Library)
Ø
Mejoras en orientación a objetos
2.2.4.4 Ventajas e inconvenientes
 Ventajas
Ø
Es un lenguaje multiplataforma.
Ø
Capacidad de conexión con la mayoría de los manejadores de base de
datos que se utilizan en la actualidad, destaca su conectividad con
MySQL
Ø
Lee y manipula datos desde diversas fuentes, incluyendo datos que
pueden ingresar los usuarios desde formularios HTML.
Ø
Capacidad de expandir su potencial utilizando la enorme cantidad de
módulos (llamados exts o extensiones).
Ø
Posee una amplia documentación en su página oficial, entre la cual se
destaca que todas las funciones del sistema están explicadas y
Autor: Antonio Martínez Martínez
41
SELWA: Sistema de gestión, seguimiento y automatización de informes para
alumnos con necesidades educativas especiales.
2 Introducción Teórica
ejemplificadas en un único archivo de ayuda.
Ø
Es libre, por lo que se presenta como una alternativa de fácil acceso
para todos.
Ø
Permite las técnicas de Programación Orientada a Objetos.
Ø
Permite crear formularios para la web.
Ø
Biblioteca nativa de funciones sumamente amplia e incluida.
Ø
No requiere definición de tipos de variables ni manejo detallado del
bajo nivel.
Ø
Lo que hace tiempo era un problema, ahora se ha convertido en una
ventaja más, y es el hecho de que a PHP se le achacaba el no contar
con una herramienta de depuración. Desde la versión 5, Zend Tech
proporciona un “debugger” para depurar los códigos PHP.
 Inconvenientes
Ø
El manejo de errores no es tan sofisticado como en ColdFusion o ASP.
2.2.4.5 Seguridad en PHP
PHP es un potente lenguaje, y el intérprete, tanto incluido en el servidor Web
como módulo o ejecutado como un binario CGI, puede acceder a ficheros,
ejecutar comandos y abrir comunicaciones de red en el servidor. Todas estas
características hacen que lo que se ejecute en el servidor Web sea seguro por
defecto.
PHP ha sido diseñado específicamente para ser un lenguaje más seguro a la
hora de escribir programas CGI, Perl o C y con la correcta selección de las
opciones de configuración, de tiempo de compilación y ejecución se consigue la
Autor: Antonio Martínez Martínez
42
SELWA: Sistema de gestión, seguimiento y automatización de informes para
alumnos con necesidades educativas especiales.
2 Introducción Teórica
exacta combinación de libertad y seguridad que se necesita. Ya que existen
diferentes modos de utilizar PHP, existen también multitud de opciones de
configuración que permiten controlar su funcionamiento. Una gran selección de
opciones garantiza que se pueda usar PHP para diferentes aplicaciones, pero
también
significa
que
existen
combinaciones
de
estas
opciones
y
configuraciones del servidor que producen instalaciones inseguras.
2.2.4.6 ¿Cuándo usar PHP?
Si se está desarrollando bajo una plataforma UNIX o Linux, se debe elegir
entre Perl y PHP, ambos excelentes. Para muchos desarrolladores, PHP es más
simple a la hora de escribir scripts, haciéndolo más productivo en proyectos no
tan grandes.
En entornos Windows compite muy de cerca con ASP y Cold Fusion, aquí la
elección se basa en asuntos un poco más técnicos y en la política que desee
utilizarse para el sitio. ASP junto a IIS es probablemente más estable que PHP
con IIS. Pero en términos puramente técnicos, PHP bajo Windows NT es mucho
más estable que los otros dos (además de ser más rápido y utilizar menos
recursos). De cualquier manera ASP ofrece una mejor integración en este
ambiente, si bien siempre contará con la desventaja de no ser un lenguaje libre.
2.2.4.7 Resumen
PHP es un lenguaje script procesado en el lado del servidor. Se muestra como
código embebido dentro de una página HTML. El modo de operación de PHP es
el siguiente:
u
El Navegador realiza una petición al servidor (se escribe la URL).
u
Después el servidor ejecuta el código PHP solicitado y retorna el código
HTML generado al navegador.
Autor: Antonio Martínez Martínez
43
SELWA: Sistema de gestión, seguimiento y automatización de informes para
alumnos con necesidades educativas especiales.
2 Introducción Teórica
u
Por último el navegador muestra la respuesta del servidor..
Este tipo de iteración permite algunas operaciones complejas como
conexiones a bases de datos o ejecución de programas. PHP además soporta un
gran número de bases de datos (INFORMIX, ORACLE, Sybase, Solid,
PostgreSQL, etc).
También nos ofrece una gran variedad de funciones que nos permiten
desarrollar múltiples funcionalidades, tales como enviar un e-mail, subir un
archivo, crear una imagen en tiempo de ejecución, interactuar con diversos
protocolos de comunicación, interactuar con documentos XML, autenticación,
creación dinámica de documentos PDF, etc.
Las principales características de PHP son:
Ø
Su rapidez
Ø
Su facilidad de aprendizaje
Ø
Su soporte multiplataforma tanto de diversos Sistemas Operativos,
como servidores HTTP y de bases de datos
Ø
El hecho de que se distribuye de forma gratuita bajo una licencia
abierta.
Autor: Antonio Martínez Martínez
44
SELWA: Sistema de gestión, seguimiento y automatización de informes para
alumnos con necesidades educativas especiales.
2 Introducción Teórica
2.2.5 MySQL
2.2.5.1 Introducción
MySQL es un sistema de gestión de base de datos relacional, multihilo y
multiusuario con más de seis millones de instalaciones. MySQL AB desarrolla
MySQL como software libre en un esquema de licenciamiento dual. Por un lado
lo ofrece bajo la GNU GPL, pero, empresas que quieran incorporarlo en
productos privativos pueden comprar a la empresa una licencia que les permita
ese uso.
Al contrario que proyectos como Apache, donde el software es desarrollado
por una comunidad pública, y el copyright del código está en poder del autor
individual, MySQL está poseído y patrocinado por una empresa privada, que
posee el copyright de la mayor parte del código. Esto es lo que posibilita el
esquema de licenciamiento anteriormente mencionado. Además de la venta de
licencias privativas, la compañía ofrece soporte y servicios. Para sus operaciones
contratan trabajadores alrededor del mundo que colaboran vía Internet.
Este gestor de bases de datos es, probablemente, el gestor más usado en el
mundo del software libre, debido a su gran rapidez y facilidad de uso. Esta gran
aceptación es debida, en parte, a que existen infinidad de librerías y otras
herramientas que permiten su uso a través de gran cantidad de lenguajes de
programación, además de su fácil instalación y configuración.
2.2.5.2 Evolución histórica
SQL (“Structured Query Language”, Lenguaje de Consulta Estructurado) fue
comercializado por primera vez en 1981 por IBM, y posteriormente presentado a
ANSI. Desde entonces ha sido considerado como un estándar para las bases de
datos relacionales. Desde 1986, el estándar SQL ha aparecido en diferentes
versiones como por ejemplo: SQL:92, SQL:99, SQL:2003. MySQL es una idea
originaria de la empresa opensource MySQL AB establecida inicialmente en
Autor: Antonio Martínez Martínez
45
SELWA: Sistema de gestión, seguimiento y automatización de informes para
alumnos con necesidades educativas especiales.
2 Introducción Teórica
Suecia en 1995 y cuyos fundadores son David Axmark, Allan Larsson, y Michael
"Monty" Widenius. El objetivo que persigue esta empresa consiste en que
MySQL cumpla el estándar SQL, pero sin sacrificar velocidad, fiabilidad o
usabilidad.
Michael Widenius en la década de los 90 trató de usar mSQL para conectar
las tablas usando rutinas de bajo nivel ISAM. Sin embargo, mSQL no era rápido
y flexible para sus necesidades. Esto lo llevó a crear una API SQL denominada
MySQL para bases de datos, muy similar a la de mSQL, pero más portable.
La procedencia del nombre de MySQL no es clara. Desde hace más de 10
años, las herramientas han mantenido el prefijo My. También, se cree que tiene
relación con el nombre de la hija del cofundador Monty Widenius, que se llama
My.
2.2.5.3 Conceptos Generales
MySQL es un sistema de administración de bases de datos. Una base de datos
es una colección estructurada de datos. Esta puede ir desde una simple lista de
la compra a una galería de pinturas o el vasto volumen de información en una
red corporativa. Para agregar, acceder a y procesar datos guardados en un
ordenador, se necesita un administrador como MySQL Server. Dado que los
ordenadores son máquinas capaces de manejar cantidades ingentes de
información, los administradores de bases de datos juegan un papel central en
computación, como aplicaciones independientes o como parte de otras
aplicaciones.
MySQL es un sistema de administración relacional de bases de datos. Una
base de datos relacional archiva datos en tablas separadas en vez de colocar
todos los datos en un gran archivo. Esto permite velocidad y flexibilidad. Las
tablas están conectadas por relaciones definidas que hacen posible combinar
datos de diferentes tablas para una misma petición.
Autor: Antonio Martínez Martínez
46
SELWA: Sistema de gestión, seguimiento y automatización de informes para
alumnos con necesidades educativas especiales.
2 Introducción Teórica
Las principales características de este gestor de bases de datos son las
siguientes:
Ø
Aprovecha la potencia de sistemas multiprocesador, gracias a su
implementación multihilo.
Ø
Soporta gran cantidad de tipos de datos para las columnas.
Ø
Dispone de API's en gran cantidad de lenguajes (C, C++, Java, PHP,
etc).
Ø
Gran portabilidad entre sistemas.
Ø
Gestión de usuarios y passwords.
MySQL es muy utilizado en aplicaciones web como MediaWiki o Drupal, en
plataformas
(Linux/Windows-Apache-MySQL-PHP/Perl/Python),
y
por
herramientas de seguimiento de errores como Bugzilla. Su popularidad como
aplicación web está muy ligada a PHP, que a menudo aparece en combinación
con MySQL. Se trata de una base de datos muy rápida en la lectura cuando
utiliza el motor no transaccional MyISAM, pero puede provocar problemas de
integridad en entornos de alta concurrencia en la modificación. En aplicaciones
web hay baja concurrencia en la modificación de datos y, en cambio, el entorno
es intensivo en lectura de datos, lo que hace a MySQL ideal para este tipo de
aplicaciones.
Algunas características avanzadas de MySQL son:
●
Usa GNU Automake, Autoconf, y Libtool para portabilidad
●
Uso de multihilos mediante hilos del kernel.
●
Usa tablas en disco b-tree para búsquedas rápidas con compresión de
Autor: Antonio Martínez Martínez
47
SELWA: Sistema de gestión, seguimiento y automatización de informes para
alumnos con necesidades educativas especiales.
2 Introducción Teórica
índice
●
Tablas hash en memoria temporales
●
El código MySQL se prueba con Purify (un detector de memoria perdida
comercial) así como con Valgrind, una herramienta GPL
●
Completo soporte para operadores y funciones en cláusulas select y
where.
●
Completo soporte para cláusulas group by y order by, soporte de
funciones de agrupación
●
Seguridad: ofrece un sistema de contraseñas y privilegios seguro
mediante verificación basada en el host y el tráfico de contraseñas está
encriptado al conectarse a un servidor.
●
Soporta gran cantidad de datos. MySQL Server tiene bases de datos de
hasta 50 millones de registros.
●
Se permiten hasta 64 índices por tabla (32 antes de MySQL 4.1.2). Cada
índice puede consistir desde 1 hasta 16 columnas o partes de columnas.
El máximo ancho de límite son 1000 bytes (500 antes de MySQL 4.1.2).
●
Los clientes se conectan al servidor MySQL usando sockets TCP/IP en
cualquier plataforma. En sistemas Windows se pueden conectar usando
named pipes y en sistemas Unix usando ficheros socket Unix.
●
En MySQL 5.0, los clientes y servidores Windows se pueden conectar
usando memoria compartida.
Autor: Antonio Martínez Martínez
48
SELWA: Sistema de gestión, seguimiento y automatización de informes para
alumnos con necesidades educativas especiales.
2 Introducción Teórica
●
MySQL contiene su propio paquete de pruebas de rendimiento
proporcionado con el código fuente de la distribución de MySQL
Las siguientes características son implementadas únicamente por MySQL:
●
Múltiples motores de almacenamiento (MyISAM, Merge, InnoDB, BDB,
Memory/heap, MySQL Cluster, Federated, Archive, CSV, Blackhole y
Example en 5.x), permitiendo al usuario escoger la que sea más adecuada
para cada tabla de la base de datos.
●
Agrupación de transacciones, reuniendo múltiples transacciones de
varias conexiones para incrementar el número de transacciones por
segundo.
Los motores de almacenamiento de MySQL incluyen algunos que tratan con
tablas transaccionales y otros que no lo hacen:
●
MyISAM trata tablas no transaccionales. Proporciona almacenamiento y
recuperación de datos rápida ya que no tiene que hacer comprobaciones
de la integridad referencial, ni bloquear las tablas para realizar las
operaciones por la ausencia de características de atomicidad. Este tipo de
tablas está especialmente indicado para sistemas que no tienen un
número elevado de inserciones como pueden ser las páginas web, motivo
por el cual se ha escogido este tipo de tablas para la base de datos del
presente proyecto. MyISAM se soporta en todas las configuraciones
MySQL, y es el motor de almacenamiento por defecto.
●
El motor de almacenamiento MEMORY proporciona tablas en memoria.
El motor de almacenamiento MERGE permite a una colección de tablas
MyISAM idénticas, ser tratadas como una simple tabla. Como MyISAM,
los motores de almacenamiento MEMORY y MERGE tratan tablas no
transaccionales y ambos se incluyen en MySQL por defecto.
Autor: Antonio Martínez Martínez
49
SELWA: Sistema de gestión, seguimiento y automatización de informes para
alumnos con necesidades educativas especiales.
2 Introducción Teórica
Nota: El motor de almacenamiento MEMORY anteriormente se conocía
como HEAP.
●
Los motores de almacenamiento InnoDB y BDB proporcionan tablas
transaccionales. BDB se incluye en la distribución binaria MySQL-Max
en aquellos sistemas operativos que la soportan. InnoDB también se
incluye por defecto en todas las distribuciones binarias de MySQL 5.0 .
En distribuciones fuente, puede activar o desactivar estos motores de
almacenamiento configurando MySQL a su gusto. Soporta transacciones
de tipo ACID y bloqueo de registros e integridad referencial. InnoDB
ofrece una fiabilidad y consistencia muy superior a MyISAM, si bien el
mejor rendimiento de uno u otro formato dependerá de la aplicación
específica.
●
El motor de almacenamiento EXAMPLE es un motor de almacenamiento
“tonto” que no hace nada. Puede crear tablas con este motor, pero no
puede almacenar datos ni recuperarlos. El objetivo es que sirva como
ejemplo en el código MySQL para ilustrar cómo escribir un motor de
almacenamiento. Como tal, su interés primario es para desarrolladores.
●
NDB Cluster es el motor de almacenamiento usado por MySQL Cluster
para implementar tablas que se particionan en varias máquinas. Está
disponible en distribuciones binarias MySQL-Max 5.0. Este motor de
almacenamiento está disponible para Linux, Solaris, y Mac OS X. Se
añadirá soporte para este motor de almacenamiento en otras
plataformas, incluyendo Windows, en próximas versiones.
●
El motor de almacenamiento ARCHIVE se usa para guardar grandes
cantidades de datos sin índices con una huella muy pequeña.
●
El motor de almacenamiento CSV guarda datos en ficheros de texto
usando formato de valores separados por comas.
●
El motor de almacenamiento FEDERATED se añadió en MySQL 5.0.3.
Autor: Antonio Martínez Martínez
50
SELWA: Sistema de gestión, seguimiento y automatización de informes para
alumnos con necesidades educativas especiales.
2 Introducción Teórica
Este motor guarda datos en una base de datos remota. En esta versión
sólo funciona con MySQL a través de la API MySQL C Client. En futuras
versiones, será capaz de conectar con otras fuentes de datos usando otros
drivers o métodos de conexión clientes.
Existen varias APIs que permiten, a aplicaciones escritas en diversos
lenguajes de programación, acceder a las bases de datos MySQL, incluyendo C,
C++, C#, Pascal, Delphi (via dbExpress), Eiffel, Smalltalk, Java (con una
implementación nativa del driver de Java), Lisp, Perl, PHP, Python, Ruby,
REALbasic (Mac), FreeBASIC, y Tcl; cada uno de estos utiliza una API
específica. También existe un interfaz ODBC, llamado MyODBC que permite a
cualquier lenguaje de programación que soporte ODBC comunicarse con las
bases de datos MySQL.
A continuación se muestran las características principales de una de las
últimas versiones, la 5.0.22:
Ø
Un amplio subconjunto de ANSI SQL 99, y varias extensiones.
Ø
Soporte a multiplataforma
Ø
Procedimientos almacenados
Ø
Disparadores (triggers)
Ø
Cursores
Ø
Vistas actualizables
Ø
Soporte a VARCHAR
Ø
INFORMATION_SCHEMA
Ø
Modo Strict (a cualquier columna para la que no se proporcione un
Autor: Antonio Martínez Martínez
51
SELWA: Sistema de gestión, seguimiento y automatización de informes para
alumnos con necesidades educativas especiales.
2 Introducción Teórica
valor explícitamente se le asignará su valor por defecto, explícito o
implícito)
Ø
Soporte X/Open XA de transacciones distribuidas; transacción en dos
fases como parte de esto, utilizando el motor InnoDB de Oracle
Ø
Motores de almacenamiento independientes (MyISAM para lecturas
rápidas, InnoDB para transacciones e integridad referencial)
Ø
Transacciones con los motores de almacenamiento InnoDB, BDB Y
Cluster; puntos de recuperación(savepoints) con InnoDB
Ø
Soporte para SSL
Ø
Query cache (Almacenamiento del texto de una sentencia SELECT
junto con el correspondiente resultado que se envió al cliente).
Ø
Sub-SELECTs (o SELECTs anidados)
Ø
Indexado y búsqueda de campos de texto completos usando el motor
de almacenamiento MyISAM
Ø
Soporte completo para Unicode
Ø
Conforme a las reglas ACID usando los motores InnoDB, BDB y
Cluster
Ø
MySQL Cluster
2.2.5.4 Mejoras Futuras
El mapa de ruta de MySQL 5.1 indica soporte para:
 Particionado de la base de datos
 Backup en línea para todos los motores de almacenamiento
Autor: Antonio Martínez Martínez
52
SELWA: Sistema de gestión, seguimiento y automatización de informes para
alumnos con necesidades educativas especiales.
2 Introducción Teórica
 Replicación segura
 Restricciones a nivel de columna
 Planificación de eventos
 Funciones XML
2.2.5.5 PostgreSQL, ¿la alternativa a MySQL?
PostGreSQL es un sistema de gestión de bases de datos objeto-relacional
(ORDBMS) basado en el proyecto POSTGRES, de la universidad de Berkeley. El
director de este proyecto es el profesor Michael Stonebraker, y fue patrocinado
por Defense Advanced Research Projects Agency (DARPA), el Army Research
Office (ARO), el National Science Foundation (NSF), y ESL, Inc.
PostGreSQL es una derivación libre (OpenSource) de este proyecto, y utiliza
el lenguaje SQL92/SQL99, así como otras características que se indican más
adelante.
Fue el pionero en muchos de los conceptos existentes en el sistema objetorelacional actual, incluido más tarde en otros sistemas de gestión comerciales.
PostGreSQL es un sistema objeto-relacional, ya que incluye características de la
orientación a objetos, como puede ser la herencia, tipos de datos, funciones,
restricciones, disparadores, reglas e integridad transaccional. A pesar de esto,
PostGreSQL no es un sistema de gestión de bases de datos puramente orientado
a objetos.
Algunas de sus principales características son:
·
Funciones
Las funciones consisten en bloques de código que se ejecutan en el servidor.
Pueden escribirse en una gran variedad de lenguajes, tales como PL/pgSQL, C,
Autor: Antonio Martínez Martínez
53
SELWA: Sistema de gestión, seguimiento y automatización de informes para
alumnos con necesidades educativas especiales.
2 Introducción Teórica
C++, PL/PHP, PL/Python, etc., permitiendo desde las operaciones básicas de
programación, tales como bifurcaciones y bucles, hasta las complejidades de la
programación orientada a objetos o la programación funcional. Los
disparadores (triggers) son funciones enlazadas a operaciones sobre los datos.
Puede definirse si las funciones serán ejecutadas con los permisos del
llamador o del usuario que definió la función.
·
Alta concurrencia
Mediante un sistema denominado MVCC (Acceso concurrente multiversión)
PostgreSQL permite que mientras un proceso escribe en una tabla, otros
accedan a la misma tabla sin necesidad de bloqueos. Esta estrategia es superior
al uso de bloqueos por tabla o por filas, común en otras bases, eliminando la
necesidad del uso de bloqueos explícitos.
·
Amplia variedad de tipos nativos
PostgreSQL provee nativamente soporte para:
o
Números de precisión arbitraria.
o
Texto de largo ilimitado.
o
Figuras geométricas (con una variedad de funciones asociadas)
o
Direcciones IP (IPv4 e IPv6).
o
Bloques de direcciones estilo CIDR (Encaminamiento InterDominios sin Clases, representa la última mejora en el modo en
que se interpretan las direcciones IP).
o
Direcciones MAC.
o
Arreglos.
Autor: Antonio Martínez Martínez
54
SELWA: Sistema de gestión, seguimiento y automatización de informes para
alumnos con necesidades educativas especiales.
2 Introducción Teórica
Adicionalmente los usuarios pueden crear sus propios tipos de datos, los que
pueden ser por completo indexables gracias a la infraestructura GiST de
PostgreSQL. Algunos ejemplos son los tipos de datos GIS creados por el
proyecto PostGIS.
·
Otras características
o
Claves externas, también denominadas Llaves externas o Llaves
Foráneas (foreign keys).
o
Disparadores (triggers).
o
Vistas.
o
Integridad transaccional.
o
Herencia de tablas.
o
Tipos de datos y operaciones geométricas.
2.2.5.5.1 Comparativa final: MySQL vs PostgreSQL
·
Lo mejor de PostgreSQL ...
Las características positivas que posee este gestor son:
Ø
Posee una gran escalabilidad. Es capaz de ajustarse al número de
CPUs y a la cantidad de memoria que posee el sistema de forma
óptima, haciéndole capaz de soportar una mayor cantidad de
peticiones simultáneas de manera correcta (en algunas referencias se
dice que ha llegado a soportar el triple de carga de lo que soporta
MySQL).
Autor: Antonio Martínez Martínez
55
SELWA: Sistema de gestión, seguimiento y automatización de informes para
alumnos con necesidades educativas especiales.
2 Introducción Teórica
Ø
Implementa el uso de rollback's, subconsultas y transacciones,
haciendo su funcionamiento mucho más eficaz, y ofreciendo
soluciones en campos en las que MySQL no podría (aunque la
diferencia cada vez es menor en este aspecto).
Ø
Tiene la capacidad de comprobar la integridad referencial, así como
también la de almacenar procedimientos en la propia base de datos,
equiparándolo con los gestores de bases de datos de alto nivel, como
puede ser Oracle.
·
... y lo peor
Por contra, los mayores inconvenientes que se pueden encontrar a este gestor
son:
Ø
Consume gran cantidad de recursos.
Ø
Tiene un límite de 8K por fila, aunque se puede aumentar a 32K, con
una disminución considerable del rendimiento.
Ø
Es de 2 a 3 veces más lento que MySQL.
·
Lo mejor de MySQL …
Ø
Sin lugar a duda, lo mejor de MySQL es su velocidad a la hora de
realizar las operaciones, lo que le hace uno de los gestores que ofrecen
mayor rendimiento.
Ø
Su bajo consumo lo hacen apto para ser ejecutado en una máquina con
escasos recursos sin ningún problema.
Autor: Antonio Martínez Martínez
56
SELWA: Sistema de gestión, seguimiento y automatización de informes para
alumnos con necesidades educativas especiales.
2 Introducción Teórica
Ø
Las utilidades de administración de este gestor son envidiables para
muchos de los gestores comerciales existentes, debido a su gran
facilidad de configuración e instalación.
Ø
Tiene una probabilidad muy reducida de corromper los datos, incluso
en los casos en los que los errores no se produzcan en el propio gestor,
sino en el sistema en el que está.
Ø
El conjunto de aplicaciones Apache-PHP-MySQL es uno de los más
utilizados en Internet en servicios de foro (Barrapunto.com) y de
buscadores de aplicaciones (Freshmeat.net).
·
... y lo peor
Ø
No es viable en el manejo de grandes bases de datos, a las que se
acceda
continuamente,
ya
que
no
implementa
una
buena
escalabilidad.
Tras evaluar los pros y contras de ambos, la decisión final de adoptar MySQL
en lugar de PostgreSQL como gestor de la base de datos de este proyecto se
fundamenta en la experiencia previa en el primero, así como en que el volumen
de información que manejará la aplicación no se considera lo suficientemente
importante como para haber optado por un lenguaje del que no se tenía
conocimiento previo y para el que, consecuentemente, hubiese sido necesario
un período de aprendizaje mucho mayor que para MySQL.
Autor: Antonio Martínez Martínez
57
SELWA: Sistema de gestión, seguimiento y automatización de informes para
alumnos con necesidades educativas especiales.
2 Introducción Teórica
2.2.6 AJAX
2.2.6.1 Introducción
Como ya se comentó en el apartado 2.2.3, AJAX, acrónimo de Asynchronous
JavaScript And XML (JavaScript y XML asíncronos, donde XML es un
acrónimo de eXtensible Markup Language), es una técnica de desarrollo web
para crear aplicaciones interactivas. Éstas se ejecutan en el cliente, es decir, en
el navegador del usuario, y mantiene comunicación asíncrona con el servidor en
segundo plano. De esta forma es posible realizar cambios sobre la misma página
sin necesidad de recargarla. Esto significa aumentar la interactividad, velocidad
y usabilidad en la misma.
AJAX es una combinación de tres tecnologías ya existentes:
●
XHTML (o HTML) y hojas de estilos en cascada (CSS) para el diseño que
acompaña a la información.
●
Document Object Model (DOM) accedido con un lenguaje de scripting
por parte del usuario, especialmente implementaciones ECMAScript
como JavaScript y JScript, para mostrar e interactuar dinámicamente
con la información presentada.
●
El objeto XMLHttpRequest para intercambiar datos asincrónicamente
con el servidor web. En algunos frameworks y en algunas situaciones
concretas, se usa un objeto iframe en lugar del XMLHttpRequest para
realizar dichos intercambios.
●
XML es el formato usado comúnmente para la transferencia de vuelta al
servidor, aunque cualquier formato puede funcionar, incluyendo HTML
preformateado, texto plano, JSON¹ y hasta EBML².
¹ JSON (JavaScript Object Notation): es un subconjunto de la notación literal de objetos de
Javascript pero no requiere el uso de Javascript.
² EBML (Extensible Binary Meta Language ): diseñado como una extensión binaria
Autor: Antonio Martínez Martínez
58
SELWA: Sistema de gestión, seguimiento y automatización de informes para
alumnos con necesidades educativas especiales.
2 Introducción Teórica
Al igual que DHTML o LAMP (equivalente en Linux de WAMP, ver apartado
3.1.1), AJAX no constituye una tecnología en sí, sino que es un término que
engloba a un grupo de éstas que trabajan conjuntamente.
2.2.6.2 Funcionamiento básico
El modelo clásico de aplicaciones Web funciona de esta forma: La mayoría de
las acciones del usuario en la interfaz disparan una petición HTTP al servidor
web. El servidor efectúa un proceso (recopila información, procesa números,
hablando con varios sistemas propietarios), y le devuelve una pagina HTML al
cliente (ver Figura 2.2.6.1). Este es un modelo adaptado del uso original de la
Web como un medio hipertextual, pero como es sabido, lo que hace a la Web
buena para el hipertexto, no la hace necesariamente buena para las aplicaciones
de software.
Este acercamiento tiene mucho sentido a nivel técnico, pero no proporciona
una buena experiencia de usuario, es decir, un manejo intuitivo durante el
proceso de navegación. Mientras el servidor esta haciendo lo suyo, ¿qué esta
haciendo el usuario? Esperar. Y en cada paso de la tarea, el usuario espera más.
Obviamente, si se estuviera diseñando la Web desde cero para aplicaciones,
no se querría hacer esperar a los usuarios. Una vez que la interfaz está cargada,
¿por qué la interacción del usuario debería detenerse cada vez que la aplicación
necesita algo del servidor? De hecho, ¿por qué debería el usuario percibir la
interacción con el servidor?
simplificada de XML, con el propósito de almacenar y manipular datos de forma jerárquica
con campos de longitud variable.
Autor: Antonio Martínez Martínez
59
SELWA: Sistema de gestión, seguimiento y automatización de informes para
alumnos con necesidades educativas especiales.
2 Introducción Teórica
Figura 2.2.6.1
El modelo tradicional para las aplicaciones Web (izq.) comparado con el modelo de AJAX (der.).
2.2.6.2.1 ¿Por qué es diferente AJAX?
Una aplicación AJAX elimina la naturaleza arrancar-frenar- arrancar-frenar
de la interacción en la Web introduciendo un intermediario -un motor AJAXentre el usuario y el servidor. Parecería que sumar una capa a la aplicación la
haría menos reactiva, pero en realidad es justamente al contrario.
En vez de cargar un pagina Web, al inicio de la sesión, el navegador carga el
motor AJAX (escrito en JavaScript y usualmente sacado en un frame oculto).
Este motor es el responsable de renderizar la interfaz que el usuario ve y de
comunicarse con el servidor en nombre del usuario. El motor AJAX permite que
Autor: Antonio Martínez Martínez
60
SELWA: Sistema de gestión, seguimiento y automatización de informes para
alumnos con necesidades educativas especiales.
2 Introducción Teórica
la interacción del usuario con la aplicación suceda asincrónicamente
(independientemente de la comunicación con el servidor). Así, el usuario nunca
estará mirando una ventana en blanco del navegador y un icono de reloj de
arena esperando a que el servidor haga algo.
Cada acción de un usuario, que normalmente generaría una petición HTTP,
toma la forma de una llamada JavaScript al motor AJAX en vez de esa petición.
Cualquier respuesta a una acción del usuario que no requiera un viaje de
vuelta al servidor (como una simple validación de datos, edición de datos en
memoria, incluso algo de navegación) es manejado por su cuenta. Si el motor
necesita algo del servidor para responder (sea enviando datos para procesar,
cargar código adicional, o recuperando nuevos datos) hace las peticiones
asincrónicamente, usualmente usando XML, sin frenar la interacción del
usuario con la aplicación. La Figura 2.2.6.2 representa este funcionamiento.
Autor: Antonio Martínez Martínez
61
SELWA: Sistema de gestión, seguimiento y automatización de informes para
alumnos con necesidades educativas especiales.
2 Introducción Teórica
Figura 2.2.6.2
El patrón de interacción síncrona de una aplicación Web tradicional (arriba) comparada con el patrón
asíncrono de una aplicación AJAX (abajo).
2.2.6.3 Grandes usuarios de AJAX
Google está haciendo una significativa inversión en el acercamiento a AJAX.
Todos los grandes productos que Google ha introducido en el ultimo año (Orkut,
Gmail, la última versión de Google Groups, Google Suggest, y Google Maps ) son
Autor: Antonio Martínez Martínez
62
SELWA: Sistema de gestión, seguimiento y automatización de informes para
alumnos con necesidades educativas especiales.
2 Introducción Teórica
aplicaciones AJAX. Otros están siguiendo la tendencia: muchas de las funciones
que los usuarios utilizan con asiduidad en Flickr dependen de AJAX, y el motor
de búsqueda de Amazon A9.com aplica tecnologías similares.
2.2.6.4 Navegadores que permiten y no permiten AJAX
 Navegadores que permiten AJAX
Ø
Navegadores basados en Gecko como Mozilla, Mozilla Firefox,
SeaMonkey, Camino, Flock, Epiphany, Galeon y Netscape versión 7.1
y superiores
Ø
Microsoft Internet Explorer para Windows versión 5.0 y superiores, y
los navegadores basados en él
Ø
Navegadores con el API KHTML versión 3.2 y superiores
implementado, incluyendo Konqueror versión 3.2 y superiores, Apple
Safari versión 1.2 y superiores, y el Web Browser for S60 de Nokia
tercera generación y posteriores
Ø
Opera versión 8.0 y superiores, incluyendo Opera Mobile Browser
versión 8.0 y superiores
 Navegadores que no permiten AJAX
Ø
Opera 7 y anteriores
Ø
Microsoft Internet Explorer para Windows versión 4.0 y anteriores
Ø
Microsoft Internet Explorer para Macintosh, todas las versiones
Ø
Dillo
Autor: Antonio Martínez Martínez
63
SELWA: Sistema de gestión, seguimiento y automatización de informes para
alumnos con necesidades educativas especiales.
2 Introducción Teórica
Ø
Navegadores basados en texto como Lynx y Links
Ø
Navegadores para incapacitados visuales (braille)
2.2.6.5 Solución implementada: XAJAX
2.2.6.5.1 Conceptos básicos
XAJAX es una biblioteca de código abierto de PHP capaz de generar
aplicaciones Web con tecnología AJAX, usando además HTML, CSS, y
JavaScript . Utiliza un método de trabajo basado en funciones, designando qué
funciones de código PHP se convierten en funciones AJAX.
Las
aplicaciones
desarrolladas
con
XAJAX
pueden
comunicarse
asincrónicamente con funciones que se encuentran del lado del servidor y así
actualizar el contenido de una página sin tener que recargarla nuevamente.
Por otro lado, la biblioteca XAJAX es una librería puramente centrada en
PHP. Con la introducción de la misma el manejo de AJAX en PHP se hace
mucho más sencillo y, sobre todo, sólo se necesita escribir sentencias muy
cortas y simples en JavaScript, por lo que es una de las ventajas frente a otras
soluciones.
2.2.6.5.2 Modo de funcionamiento
Ø
Paso 1: Incluir la librería XAJAX de la siguiente manera:
require_once("xajax.inc.php");
Ø
Paso 2: Creamos una instancia del objeto XAJAX:
Autor: Antonio Martínez Martínez
64
SELWA: Sistema de gestión, seguimiento y automatización de informes para
alumnos con necesidades educativas especiales.
2 Introducción Teórica
$xajax = new xajax();
Ø
Paso 3: Registramos las funciones PHP que queremos hacer
accesibles dede JavaScript:
$xajax->registerFunction("miFuncion");
Ø
Paso 4: Escribimos las funciones PHP que vamos a registrar. No hay
que olvidarse de que debemos devolver el XML:
function miFuncion($arg)
{
.....
$objResponse = new xajaxResponse();
.....
$objResponse->addAssign("Id_de_elemento","innerHTML",
$contenido);
......
return $objResponse->getXML();
}
Ø
Paso 5: Le indicamos a XAJAX que procese las peticiones:
$xajax->processRequests();
Ø
Paso 6: Debemos incluir el script JavaScript entre las cabeceras
HEAD de nuestro código HTML:
<?php $xajax->printJavascript(); ?>
Ø
Paso 7: Llamamos a la función desde un evento cualquiera:
<button onmousedown="xajax_miFuncion(args);" />
Autor: Antonio Martínez Martínez
65
SELWA: Sistema de gestión, seguimiento y automatización de informes para
alumnos con necesidades educativas especiales.
2 Introducción Teórica
2.2.6.5.3 Uso en Sistema SELWA
El uso que se ha hecho de AJAX en el presente proyecto se centra en los
botones de ayuda de la aplicación. Allá donde haya un icono de ayuda, o
cualquier otro icono que requiera una breve explicación de su acción, si se
coloca el ratón sobre él, el sistema lanza una petición AJAX. Para ello, y
utilizando la biblioteca XAJAX, se realiza una consulta a la base de datos,
pasando un par de valores como parámetros, en función de los cuales, se
devuelve el mensaje correspondiente a dicho icono de ayuda.
2.2.6.6 Conclusión
A pesar de que el uso de AJAX no es muy extenso en este proyecto, se trata de
una herramienta cuyo desarrollo se está extendiendo con una rapidez increíble,
bien avalada, por supuesto, por los numerosos “clientes” de renombre que
utilizan sus servicios para implementar sus productos estrella. No se trata, sin
embargo, de una técnica de la que haya que abusar en una página web, pues su
misión es realizar pequeñas consultas en un segundo plano, de modo que el
usuario no interrumpa su interacción debido a largos tiempos de espera.
Autor: Antonio Martínez Martínez
66
SELWA: Sistema de gestión, seguimiento y automatización de informes para
alumnos con necesidades educativas especiales.
3 Diseño e Implementación
3 Diseño e Implementación
3.1 Software utilizado
Solamente se ha utilizado dos tipos de software para la elaboración de este
proyecto. Por un lado, nos hemos servido de la herramienta WAMP5 con el fin
de tener un servidor web Apache donde poder realizar las pruebas de la
aplicación. Y por otro, se ha usado la herramienta Drawing del paquete
OpenOffice 2.0 para la edición de los iconos del sistema así como para la
creación de los planos de la base de datos y de la estructura de la aplicación. No
ha sido necesario usar ninguna aplicación más, pues la programación de las
distintas partes, bien sean CSS, XHTML, PHP o JavaScript, se ha realizado
sobre simples documentos de texto. A continuación entraremos a detallar cuál
es el funcionamiento de la herramienta WAMP5, qué aplicaciones contiene y su
manejo básico.
3.1.1 Herramienta WAMP5
Existe una manera de comenzar a utilizar PHP5 en Windows sin tener que
sufrir las complicaciones típicas de la instalación de los servidores necesarios
para programar en PHP. Se trata de instalar el paquete llamado WAMP, que
permite instalar y configurar en un solo proceso el servidor Apache, la base de
datos MySQL y el módulo de programación en PHP versión 5. De hecho, WAMP
es el acrónimo que define la combinación de Windows, Apache, MySQL y uno o
más lenguajes de script que pueden ser PHP, Perl y/o Python. Es un conjunto o
paquete de software construido como el ya popular LAMP, que utiliza Linux en
lugar de Windows.
WAMP es un sistema indicado para los usuarios que no tienen instalado en el
sistema ninguno de los programas necesarios para programar en PHP (Apache,
Autor: Antonio Martínez Martínez
67
SELWA: Sistema de gestión, seguimiento y automatización de informes para
alumnos con necesidades educativas especiales.
3 Diseño e Implementación
PHP y MySQL), ya que realiza una instalación completa y desde cero. Pero
también pueden utilizar este programa los usuarios que disponen de Apache,
PHP y/o MySQL en su sistema. En cuyo caso, simplemente se realizará otra
copia de las aplicaciones en un directorio distinto, que en principio, no tiene por
qué interferir con las otras instalaciones alojadas en el equipo.
Ø
Aplicaciones que contiene WAMP5
El software que se instala con WAMP5 contiene los siguientes servidores y
programas:
●
Apache 1.4.4. El servidor de páginas web más extendido del mercado.
Aunque la última versión de este servidor es Apache 2, se instala una
versión anterior que resulta más estable. Existe un Add-on que permite
sustituir la versión 1.4.4 de Apache por la última versión.
●
PHP5. El motor renovado del lenguaje.
●
MySQL. La base de datos más extendida para utilizar con PHP.
●
PHPmyadmin. Un software que permite administrar una base de datos a
través de una interfaz web.
●
SQLitemanager. Un sistema para administrar una base de datos a partir
de sentencias SQL.
Ø
Instalación de WAMP
La instalación se realiza a través de un ejecutable Windows donde se pueden
introducir muy pocas opciones de configuración, apenas el directorio donde se
desea que se instalen los programas y aquel que actuará como raíz a la hora de
realizar las llamadas a “localhost”. Después del proceso de instalación se habrán
creado un par de servicios con el servidor web y el de bases de datos:
●
Servicio wampapache: Relacionado con el servidor Apache.
●
Servicio wampmysql: Relacionado con la base de datos MySQL.
Autor: Antonio Martínez Martínez
68
SELWA: Sistema de gestión, seguimiento y automatización de informes para
alumnos con necesidades educativas especiales.
3 Diseño e Implementación
Además, dentro del directorio donde haya sido instalado WAMP5 se habrá
creado una carpeta llamada "www", que corresponde con el directorio de
publicación, es decir, el lugar donde se deben colocar las páginas web.
Durante la instalación también hay que decidir si se desea que WAMP5 se
inicie automáticamente al arrancar el equipo o si, por el contrario, que su puesta
en marcha se realice manualmente.
Ø
Puesta en marcha de los servidores
Al instalar WAMP5 se crea un grupo de programas llamado WampServer,
donde habrá una opción llamada "Start Wampserver", que será necesario
ejecutar si no hemos seleccionado que el servidor se inicie automáticamente.
Una vez arrancado WampServer se creará un icono en la barra de tareas con
una forma similar a la de un marcador de velocidad. Al pulsar sobre ese icono se
abrirá un menú con opciones variadas para gestionar los servicios relacionados
con el paquete. La Figura 3.1.1 muestra ese menú:
Autor: Antonio Martínez Martínez
69
SELWA: Sistema de gestión, seguimiento y automatización de informes para
alumnos con necesidades educativas especiales.
3 Diseño e Implementación
Figura 3.1.1
Ø Add ons
Existen varios añadidos que se pueden instalar con WAMP, para ampliar las
posibilidades del paquete. Por ejemplo, es posible instalar un add-on para
permitir que WAMP trabaje con PHP5 o bien PHP4, creando una nueva opción
en el menú de WAMP5 que permite cambiar de una versión a otra de PHP.
Hay otros añadidos disponibles:
 Instalar ActiveState Perl en nuestro sistema, para permitir la ejecución de
CGI.
 Actualizar a la versión de Apache 2.
 Instalar Zend Optimizer, para mejorar el comportamiento en tiempo de
ejecución de PHP.
 Por último, el add-on que instala Webalizer, un sistema para obtener
estadísticas de uso del servidor web.
Autor: Antonio Martínez Martínez
70
SELWA: Sistema de gestión, seguimiento y automatización de informes para
alumnos con necesidades educativas especiales.
3 Diseño e Implementación
Se puede obtener más información de este sistema y opciones para la
descarga en la página oficial de WAMP. [2]
Autor: Antonio Martínez Martínez
71
SELWA: Sistema de gestión, seguimiento y automatización de informes para
alumnos con necesidades educativas especiales.
3 Diseño e Implementación
3.2 Visión global de la aplicación
3.2.1 Punto de vista teórico
En este punto se pretende dar una visión general del funcionamiento y
estructura del sistema SELWA. Son dos los objetivos fundamentales que
persigue la aplicación. En primer lugar, surge como medio de mantener
plenamente informados a los padres/tutores de un niño con necesidades
educativas especiales, mediante el acceso de los propios padres/tutores a
cualesquiera de los datos reflejados en la base de datos relativos a su hijo.
Asimismo, permite la integración y distribución de la información de un
alumno, entre los distintos “actores” que forman parte de su vida académica, en
este caso, profesor, especialista/s, y por supuesto, padres/tutores, de tal forma
que TODOS acceden a TODA la información que diariamente se refleja del
alumno, y como consecuencia de esto, todos tienen la posibilidad de obtener
informes personalizados, reflejando los campos que cada cual considere más
relevantes para el seguimiento periódico del alumno. Es en este punto donde
enlazamos con el segundo objetivo de SELWA: la automatización de informes.
Gracias a la clasificación en áreas y subáreas que se ha realizado a la hora de
reflejar un apunte diario en la actividad de un alumno, el sistema es
completamente autónomo a la hora de generar un informe de un período
determinado y acerca de unos aspectos determinados. Con un simple “click”, y
tras haber especificado el período a evaluar sobre un alumno en cuestión, el
sistema nos genera un informe en formato “pdf” clasificado por días, áreas,
subáreas y asuntos.
Estos son los dos grandes objetivos que persigue el presente proyecto. Más
adelante, en el apartado “Líneas futuras” se especifica el resto de posibilidades
que se le pueden añadir al sistema, para hacerlo una herramienta perfecta para
el trabajo diario de un profesor, de un especialista asociado a un alumno o de un
Autor: Antonio Martínez Martínez
72
SELWA: Sistema de gestión, seguimiento y automatización de informes para
alumnos con necesidades educativas especiales.
3 Diseño e Implementación
padre que no dispone del suficiente tiempo como para ir al colegio de su hijo a
saber acerca de la evolución del niño.
En cuanto a la estructura, la aplicación se ha dividido en 3 grandes
bloques:
 Creación de fichas/usuarios.
 Gestión de fichas/usuarios.
 Informes
En el primero se incluyen los archivos que permiten la generación de nuevas
altas, tanto de usuarios del sistema (profesores o consultores), como de
alumnos. El sistema está diseñado de manera que en primer lugar se realice el
alta de los usuarios en el sistema, y una vez hecho esto, se empiecen a generar
las fichas de los alumnos.
El bloque “Gestión de fichas/usuarios” engloba los archivos que nos permiten
mantener actualizado nuestro sistema en cuanto a información relativa a
profesores, consultores o alumnos se refiere: modificación de datos, eliminación
de fichas, creación de nuevos objetivos, generación diaria de información del
alumno... en definitiva, la gestión y mantenimiento de los usuarios de la
aplicación.
Por último, el bloque “Informes” abarca, como no podía ser de otra manera,
todos
los
archivos
relacionados
con
la
generación,
modificación,
almacenamiento y supresión de informes de los alumnos.
En las distintas zonas en que se divide el sistema SELWA, aparecerán una
serie de iconos, cada uno representando una información distinta. Al posicionar
el ratón encima de algunos de ellos, aparecen mensajes de ayuda que intentan
mejorar la experiencia del usuario con la aplicación. A continuación se muestran
estos iconos:
Autor: Antonio Martínez Martínez
73
SELWA: Sistema de gestión, seguimiento y automatización de informes para
alumnos con necesidades educativas especiales.
3 Diseño e Implementación
Buscar
Copiar
Información
Ayuda
El último de ellos es el que va a mostrar al usuario información extra sobre el
funcionamiento del apartado en el que se encuentra, en unos casos, e
información acerca del contenido que muestran algunos menús de selección que
pueden no ser obvios, en otros. El icono “Información” se usa como mero
acompañador del texto explicativo que aparece en diferentes zonas de la
aplicación, indicando que ahí se muestra una breve explicación del apartado.
Finalmente, los iconos “Buscar” y “Copiar” mostrarán textos de ayuda sobre
cómo rellenar los campos a los que acompañan y qué información se rellenará a
partir de su pulsación. La figura 3.2.1.1 muestra un ejemplo de consulta de
ayuda:
Figura 3.2.1.1
Ejemplo de consulta de ayuda al posicionar el ratón sobre el icono
En los puntos que siguen, se abordará en detalle cada una de las partes
Autor: Antonio Martínez Martínez
74
SELWA: Sistema de gestión, seguimiento y automatización de informes para
alumnos con necesidades educativas especiales.
3 Diseño e Implementación
fundamentales que componen el sistema, y se explicará cuál es su
funcionamiento interno.
3.2.2 Punto de vista técnico
Desde el punto de vista técnico, la aplicación se encuentra dividida en capas
(“divs”), que son los elementos XHTML que permiten realizar un maquetado
estructurado. Todas las páginas del sistema poseen 8 capas fundamentales:
Ø Cabecera (logo, fecha y hora)
Ø Jerarquía (en qué punto del sistema de archivos se está)
Ø Lateral (abarca todo el margen izquierdo)
Ø Lateral1 (usuarios on-line)
Ø Lateral2 (accesos directos)
Ø Lateral3 (calendario)
Ø Principal (en esta se carga la información solicitada en cada momento)
Ø Pie (créditos y enlace de contacto)
Existen multitud de líneas comunes en la mayoría de los archivos que
componen SELWA. En primer lugar, siempre aparecerá una línea que incluye el
módulo de funciones (“funcs.php”). Este módulo inicializa las instancias
encargadas de las sesiones, de la conexión a la base de datos (sólo en algunos
casos, no en todos) y del control de acceso, además de contener la colección de
funciones PHP que son llamadas a lo largo de la aplicación. Tras comprobar que
el usuario que intenta acceder a la página se ha registrado correctamente desde
la página de inicio, se instancia la función que maneja los mensajes AJAX de
ayuda y se empieza a cargar la página.
Autor: Antonio Martínez Martínez
75
SELWA: Sistema de gestión, seguimiento y automatización de informes para
alumnos con necesidades educativas especiales.
3 Diseño e Implementación
En el módulo de carga de hojas de estilo y scripts, se realiza la llamada a
distintos archivos, también comunes a todas las páginas. Éstos se clasifican en 3
grupos:
Ø Hojas de estilo (archivos CSS necesarios para la correcta visualización de
la página en cuestión)
Ø Funciones JavaScript (llamada a las funciones JavaScript comunes para
el funcionamiento de las pestañas, ayuda, etc.)
Ø Biblioteca NiftyCube (conjunto de funciones que hacen posible el
redondeo de esquinas de las capas). Esta biblioteca está formada por 3
archivos: niftycube.js, niftyCorners.css y niftyPrint.css, ubicados dentro
de la carpeta “css” (ver estructura de carpetas más abajo). A pesar de ser
uno de ellos un archivo JavaScript, se han englobado los 3 dentro de la
carpeta de hojas de estilo, pues su misión es esa, aplicar un estilo a
determinados elementos (por lo general, capas). La biblioteca NiftyCube
es un desarrollo de software libre que posibilita, sin necesidad del uso de
imágenes, el redondeo de las esquinas de elementos “div” con objeto de
dar una apariencia más agradable. Un ejemplo de llamada podría ser:
Nifty("ul#nav a","big transparent top");
que realizaría el redondeado de un elemento “a” que se encuentra dentro
de otro “ul” con identificador “nav”, sólo de su parte superior (top) y con
un radio grande (big). Otras posibilidades de redondeado serían “small” o
“normal”, pudiendo aplicarse a cualquier esquina individualmente, por
parejas (sólo superior, sólo inferior, sólo izquierda o sólo derecha) o a
todas.
Desde este punto, se empieza a generar la estructura de capas definida arriba,
siendo la capa “principal” la única que varía en función de en qué parte de la
aplicación se esté.
Autor: Antonio Martínez Martínez
76
SELWA: Sistema de gestión, seguimiento y automatización de informes para
alumnos con necesidades educativas especiales.
3 Diseño e Implementación
La estructura de carpetas de la aplicación tiene la forma mostrada en la figura
3.2.2.1:
Figura 3.2.2.1
Estructura de directorios de la aplicación SELWA
A continuación se detalla el contenido de cada una de las carpetas
principales.
Ø calendario: contiene un calendario PHP cuyo código es de libre
distribución, no ha sido programado para esta aplicación pero, como se
indica en el apartado “Líneas futuras”, sí que está pensada su
implementación. En este caso simplemente se trata de mostrar dónde iría
ubicado.
Ø css: aquí se encontrarán todas las hojas de estilo utilizadas.
Ø fotos: carpeta que contiene todos los iconos mostrados, así como los
fondos que rellenan la aplicación.
Autor: Antonio Martínez Martínez
77
SELWA: Sistema de gestión, seguimiento y automatización de informes para
alumnos con necesidades educativas especiales.
3 Diseño e Implementación
Ø fpdf: librería PHP que posibilita la generación de los informes en
formato PDF.
Ø imgs: aquí se guardan las fotografías que se asocian en el proceso de
creación de fichas, tanto de alumnos como de usuarios.
Ø javascript: colección de funciones JavaScript utilizadas en las distintas
partes del sistema. Están divididas, por un lado, las referentes a la
creación de fichas de alumnos y/o de usuarios (en el primer nivel de la
carpeta) y, por otro, las que se usan en la gestión de dichas fichas
(subcarpeta “funcs_ficha”).
Ø reg: en esta carpeta se incluyen los 4 archivos necesarios para el control
del registro de usuarios, conexión a la base de datos (no en todos los
casos) y manejo de sesiones.
Ø xajax: biblioteca formada por archivos PHP y JavaScript que permite la
adición de efectos dinámicos y de consultas rápidas a base de datos
(utilizada fundamentalmente para mostrar los mensajes de ayuda allá
donde aparezca el icono
).
El resto de archivos se encuentran en el primer nivel de la jerarquía (carpeta
“SELWA”), y se dará más información acerca de ellos en los apartados en que
intervengan, dentro de los puntos “Información técnica”. A continuación se
muestra la explicación técnica detallada del mecanismo de ayuda, pues es uno
de los elementos que más contribuyen a una correcta experiencia de usuario en
el manejo de la aplicación.
· Mecanismo de Ayuda
Como ya se comentó en el apartado “Punto de vista teórico”, a lo
largo de la navegación por el sistema SELWA aparecen determinados
Autor: Antonio Martínez Martínez
78
SELWA: Sistema de gestión, seguimiento y automatización de informes para
alumnos con necesidades educativas especiales.
3 Diseño e Implementación
iconos al lado de algunos títulos. No en todos los casos, pero sí en la
mayoría, posicionar el puntero del ratón sobre ellos muestra
información extra acerca del apartado en el que se encuentra el
usuario. La programación que se esconde tras ellos está realizada a
partir de la biblioteca XAJAX, de libre distribución, de manera que se
realizan pequeñas consultas a la base de datos, de forma transparente
al usuario, realizando un mapeo entre un código que se envía a la
función AJAX y el texto al que corresponde dicho código. Al situar el
ratón encima de uno de los iconos se realiza una llamada a
“manejador_ayuda”, una función JavaScript que recibe como
parámetros el objeto sobre el que se realiza la acción; “tipo”, una
variable que indicará a qué categoría pertenece la llamada y “valor”,
que indicará qué mensaje de ayuda hay que mostrar dentro la
categoría “tipo” seleccionada. Esta función mapeará los códigos
“valor” recibidos en valores entendibles por la función PHP
“muestra_ayuda”, que será la encargada de desencadenar el
mecanismo de consulta AJAX. Justo antes de esto se llama a otra
función JavaScript, “ini_wait”, que realiza la carga del elemento que
muestra el icono de espera mientras se obtienen los datos
procedentes de “muestra_ayuda”. Previo también a la llamada AJAX
es la configuración de la posición en la que se mostrará el mensaje de
ayuda, pues existen zonas del sistema en las que existen barras de
desplazamiento, lo que obligará a tomar la posición relativa del
objeto sobre el que se desea mostrar información extra y realizar
pequeños desplazamientos para que la capa que contiene la ayuda no
oculte el resto de información.
Entrando ya de lleno en la función “muestra_ayuda”, decir que se
encuentra en el archivo “server.php”, que será el que sirva para
instanciar el objeto AJAX mediante la sentencia:
Autor: Antonio Martínez Martínez
79
SELWA: Sistema de gestión, seguimiento y automatización de informes para
alumnos con necesidades educativas especiales.
3 Diseño e Implementación
$xajax = new xajax("server.php");
para posteriormente realizar el registro de la función mediante:
$xajax->registerFunction('muestra_ayuda');
Se va ir explicando el funcionamiento de las distintas zonas que
componen la función:
1. Includes: Se requiere la inclusión de 2 archivos:
“actualiza_DB.php” y “xajax_inc.php” (perteneciente a la
biblioteca XAJAX).
2. Preparación de la respuesta: Se instancia el objeto
que servirá para devolver la respuesta, con la directiva:
$objResponse = new xajaxResponse();
3. Obtención mensaje: Conexión con la base de datos y
obtención del mensaje de ayuda a mostrar a partir de las
variables facilitadas, “tipo” y “valor”:
$sql="SELECT * FROM ayuda WHERE asoc='$tipo' AND
valor=$valor";
if($result=mysql_query($sql)){
while($row=mysql_fetch_array($result)){
$frase=$row['contenido'];
}
}
4. Creación y formateo del elemento contenedor: Se
crea y se da formato a la capa que mostrará el mensaje,
añadiendo distintos estilos mediante CSS a los elementos
de la capa de ayuda, gracias al identificador:
Autor: Antonio Martínez Martínez
80
SELWA: Sistema de gestión, seguimiento y automatización de informes para
alumnos con necesidades educativas especiales.
3 Diseño e Implementación
$frase_out="<div
id='capa_help'><strong>Ayuda</strong></div><br />";
$frase_out .= $frase;
$objResponse->addAssign("ayuda","innerHTML", $frase_out);
5. Devolución del resultado y solicitud de petición:
Se devuelve el elemento creado, con los datos solicitados,
y se realiza la petición del proceso de vuelta:
return $objResponse->getXML();
$xajax->processRequests();
3.2.3 Base de datos MySQL
3.2.3.1 Estructura
Las tablas empleadas en el sistema son de tipo MyISAM, debido a que
existirán muchas más operaciones de lectura que de escritura, para lo que este
tipo de tabla es el idóneo.
El nombre que se le ha dado a la base de datos es “db_ee”, y consta de 14
tablas. Mediante el nombre de éstas se pretende dar una idea de la información
que almacenan. A continuación se muestra una breve explicación del contenido
de cada tabla, así como su nombre:
Ø al_cons: relación entre los identificadores de alumnos y consultores
indicando, además, el tipo de consultor del que se trata.
Ø al_diag: información relativa al diagnóstico del alumno.
Ø al_info_fam: datos familiares del alumno.
Ø al_info_pers: datos personales del alumno.
Ø al_prof: relación entre los identificadores de alumnos y profesores.
Ø ayuda: tabla que contiene el texto de los mensajes de ayuda, la categoría
Autor: Antonio Martínez Martínez
81
SELWA: Sistema de gestión, seguimiento y automatización de informes para
alumnos con necesidades educativas especiales.
3 Diseño e Implementación
a la que pertenecen y el valor numérico en el que son mapeados.
Ø codigo_error: información referente a los distintos mensajes de error
que son mostrados, así como el valor numérico en el que son mapeados.
Ø ev_ini: información relativa a la evaluación inicial del alumno.
Ø info_diaria: datos introducidos por el profesor, relativos al
comportamiento y actividades diarias del alumno.
Ø prof_obj: aquí se registran los datos referentes a la programación de los
objetivos que el profesor ha seleccionado para el alumno.
Ø quest_ncc: cuestiones a listar en la pestaña “N.C.C.”, junto con los
valores numéricos en que son mapeadas.
Ø res_ncc: contiene los resultados de las competencias seleccionadas para
un alumno en la pestaña “N.C.C”, indicando el valor numérico, la
respuesta seleccionada y si es objetivo o no.
Ø us_info_p: datos personales de los usuarios del sistema (profesores,
consultores y administrador).
Ø users_control: información acerca del registro de usuarios:
identificador de sesión, login registrado, dirección IP, etc.
En el apartado 6.1 (“Planos de base de datos”) se encuentran reflejados los
diagramas entidad-relación, donde se indican los campos que contiene cada
tabla, así como las relaciones entre ellas.
Autor: Antonio Martínez Martínez
82
SELWA: Sistema de gestión, seguimiento y automatización de informes para
alumnos con necesidades educativas especiales.
3 Diseño e Implementación
3.2.3.2 Conexión PHP ßàMySQL
Como se indicó en los apartados 2.2.4 y 2.2.5, PHP y MySQL están muy
interrelacionados. PHP proporciona multitud de métodos para el correcto y
completo manejo de bases de datos MySQL. En la implementación del presente
proyecto se han empleado dos formas diferentes (pero similares en su
ejecución) de utilizar los métodos PHP para el manejo de MySQL. Por un lado
se ha utilizado de forma clásica, es decir, mediante programación orientada a
procesos. Un ejemplo de inserción de datos mediante este método podría ser:
mysql_connect($server, $username, $password);
$sql = “INSERT INTO al_prof (id_al, id_prof) VALUES (2, 3)”;
mysql_query($sql);
Por otro lado, también se ha realizado el manejo de la base de datos mediante
programación orientada a objetos (POO). Para ello, se ha programado una clase,
“DATABASE”, incluida en el archivo “database.php”, que incluye los métodos
necesarios para el tratamiento con MySQL. Esta clase es instanciada desde
“init.php”, junto con el tratamiento de sesiones y control de usuarios.
A continuación se muestran estos métodos y su funcionamiento:
Ø __construct
C0nstructor de la clase. Realiza la conexión con la base de datos
mediante:
$this->connection = mysql_connect($server, $username,
$password);
Devuelve “true” en caso de éxito y “false” en caso de error.
Ø select
Método de consulta de datos. Realiza la búsqueda de información en
función de los parámetros “$table” (tabla donde buscar), “$where”
(campos y patrón a coincidir) y “$type” (tipo de valor devuelto, array o
Autor: Antonio Martínez Martínez
83
SELWA: Sistema de gestión, seguimiento y automatización de informes para
alumnos con necesidades educativas especiales.
3 Diseño e Implementación
array asociativo).
Devuelve el array con los datos en caso de éxito o “false” en caso de
fallo.
Ø insert
Inserta los datos recibidos en “$data” en “$table”, realizando
previamente una separación de estos datos mediante el método
“implode” y la selección de campos mediante “getFields”. Antes de la
inserción se comprueba que no sea código malintencionado, es decir, que
no se intenten insertar sentencias SQL, gracias al método “secure”.
Devuelve “1” en caso de éxito, “2” en caso de error de inserción por
duplicación de registro o “0” en cualquier otro caso de error.
Ø update
Actualiza los datos en “$table” con los valores registrados en
“$update” en los campos indicados por “$where”.
Devuelve “true” en caso de éxito y “false” en caso de error.
Ø delete
Elimina un registro coincidente con “$where” de la tabla “$table”.
Devuelve “true” en caso de éxito y “false” en caso de error.
Ø getFields
Obtiene los campos de la tabla indicada por “$table”. Utilizado en
“insert”. Devuelve un array con los campos en cuestión en caso de éxito y
“false” en caso de error.
Ø secure
Comprueba que no se esté intentando realizar una inyección de código
SQL en la base de datos.
Autor: Antonio Martínez Martínez
84
SELWA: Sistema de gestión, seguimiento y automatización de informes para
alumnos con necesidades educativas especiales.
3 Diseño e Implementación
Devuelve la cadena pasada como parámetro, pero con los caracteres
“escapados”, es decir, sin riesgo de inyección.
Ø close
Cierra la conexión MySQL.
Las funciones PHP utilizadas para generar las peticiones son exactamente
igual que en el caso de programación orientada a procesos. El motivo de utilizar
ambas formas fue el aprendizaje de la POO durante el proceso de programación
de la aplicación. Debido a haber tenido ya programadas algunas de las funciones
relativas al tratamiento de información con la base de datos, no se ha querido
eliminar dicha programación, sino simplemente completarla con una forma
distinta de realizar las mismas operaciones.
Autor: Antonio Martínez Martínez
85
SELWA: Sistema de gestión, seguimiento y automatización de informes para
alumnos con necesidades educativas especiales.
3 Diseño e Implementación
3.3 Módulos de registro
En este apartado se expondrán las diferentes formas de registro de los
diferentes usuarios del sistema. Por un lado, se explicará qué mecanismos se
desencadenan en el momento que un usuario de tipo “profesor”, “consultor” o
“administrador” intenta acceder al sistema, haciendo hincapié en los distintos
privilegios que cada uno de ellos tiene según su perfil. Por otro lado, se verá el
funcionamiento del mecanismo de alta de alumnos, exponiendo qué
condiciones tienen que darse en determinadas áreas para poder realizar tal
registro con éxito.
En cada uno de los apartados se realiza una exposición acerca del manejo de
la herramienta, para a continuación dar una explicación técnica de cómo se ha
realizado la programación.
3.3.1 Acceso al sistema
3.3.1.1 Punto de vista teórico
El acceso a la aplicación se produce cuando un usuario introduce
correctamente el usuario y la contraseña que le fueron asignados en el proceso
de alta de fichas de usuario. Estos parámetros son seleccionados por el
administrador de la herramienta, y no pueden tener más de 8 caracteres
ninguno de ellos, pudiendo estar formados por cualquier combinación de
caracteres alfanuméricos.
En el momento en que se produce el correcto registro de un usuario, se inicia
una sesión. Ésta permitirá mantener el control sobre los usuarios que, en cada
momento, están conectados, para así mostrar una lista de ellos en el lateral
superior de la ventana. Para finalizar dicha sesión, basta con pulsar el botón
“Logout”, que aparece en la parte inferior de la lista.
Autor: Antonio Martínez Martínez
86
SELWA: Sistema de gestión, seguimiento y automatización de informes para
alumnos con necesidades educativas especiales.
3 Diseño e Implementación
3.3.1.2 Punto de vista técnico
A continuación se realizará una completa explicación de las clases y métodos
que permiten el comportamiento de registro anteriormente citado.
Los archivos que intervienen en la comprobación del registro de un usuario
se encuentran en la carpeta “reg” de la estructura de directorios del sistema, y
son cuatro: “init.php”, “sessions.php”, “control.php” y “database.php”. Se irán
explicando uno a uno.
Ø init.php
Es el archivo encargado de incluir a los otros tres. Se encuentra
embebido dentro de “funcs.php”, el cual es requerido en todas y cada
una de las páginas del sistema, de modo que todas las funciones de
este fichero se encuentran disponibles en cualquier zona de la
aplicación, así como la inicialización de los parámetros para la
conexión con la base de datos y aquellos que se utilizan en el control
de acceso de los usuarios a las distintas zonas.
Estas inicializaciones son producidas mediante las siguientes
líneas (que componen el archivo “init.php”):
require("reg/sessions.php");
require("reg/database.php");
require("reg/control.php");
$GLOBALS['selwa']->session=new SESSIONS();
$GLOBALS['selwa']->database=new
DataBase("localhost","root","","db_ee");
$GLOBALS['selwa']->control=new CONTROL(15);
Ø sessions.php
En este archivo se encuentra la clase “SESSIONS”, encargada de
proporcionar la interfaz con las variables de sesión del servidor.
Autor: Antonio Martínez Martínez
87
SELWA: Sistema de gestión, seguimiento y automatización de informes para
alumnos con necesidades educativas especiales.
3 Diseño e Implementación
Contiene una serie de métodos que facilitarán el manejo de estas
variables, así como permitir una simple migración de código sin más
que modificar la clase, sin afectar a la estructura de la aplicación.
Estos métodos son:
·
setId($id) : Establece el identificador de sesión.
·
getId() : Recupera el identificador de sesión.
·
getDataArray() : Recupera el array de variables de sesión.
·
getData($variable) : Recupera una variable de sesión.
·
setDataArray($data) : Establece el array de variables de
sesión.
·
setData($variable,$value) : Establece una variable de
sesión con valor “$value”.
·
delete($variable) : Borra una variable de sesión.
·
deleteAll() : Borra el array completo de variables de sesión.
·
destroy() : Elimina la sesión en el servidor.
Ø control.php
La principal misión de la clase “CONTROL” es la de proporcionar
una serie de métodos que permitan mantener la supervisión de los
accesos al sistema, así como la de la creación de las sesiones, con
objeto de tener un correcto control sobre la lista de usuarios que, en
cada momento, están conectados. Para ello, las primeras acciones que
se realizan (a cargo del constructor) son, en primer lugar, comprobar
que se ha enviado el formulario de registro, es decir, el “login” y el
“password” del usuario que intenta acceder para, a continuación,
detectar dichas variables (enviadas por método POST), y realizar la
llamada al método “registerUser” en caso de una correcta recepción.
Durante este proceso (generado mediante el método “analyze”) se
comprueba si la sesión estaba ya establecida y, en caso de no estarlo,
generar los datos necesarios para crearla. Es en este punto donde se
Autor: Antonio Martínez Martínez
88
SELWA: Sistema de gestión, seguimiento y automatización de informes para
alumnos con necesidades educativas especiales.
3 Diseño e Implementación
registra la información de sesión en la base de datos, mediante la
llamada al método “refresh” (actualizando la tabla “users_control”).
La llamada a “registerUser” (pasando como parámetros “login” y
“password”) provoca la comprobación de que el usuario y contraseña
introducidos sean correctos, procediéndose, en caso de éxito, a la
preparación y posterior inserción de los datos de sesión de usuario en
la base de datos. En caso contrario, se genera un mensaje de
información, indicando la causa, pudiendo ser debido a que el usuario
ya se encuentra registrado o a que el “login” o “password” son
incorrectos.
El tiempo asignado a una sesión es de 15 minutos, pudiendo
variarse este valor en la configuración del constructor, sin más que
modificar el valor de la variable “$time”. En caso de que este tiempo
sea superior al valor definido, se borra la entrada.
De esta manera, cada vez que un usuario carga una página,
actualiza su información de sesión y borra las entradas “caducadas”,
manteniendo así el control sobre los usuarios que se encuentran
online.
Por último, reseñar que la acción de “logout” por parte de un
usuario que desea abandonar el sistema, provoca la llamada a
“unregisterUser”, donde se actualizan sus variables de sesión a
valores que indiquen dicho abandono (login=0 e id_us=-1).
Ø
database.php
La clase “DATABASE” ya fue explicada en el apartado 3.2.3.2
“Conexión PHPßàMySQL”, por lo que no se volverá a incidir sobre
su funcionamiento.
Autor: Antonio Martínez Martínez
89
SELWA: Sistema de gestión, seguimiento y automatización de informes para
alumnos con necesidades educativas especiales.
3 Diseño e Implementación
3.3.2 Módulo de registro de usuarios
3.3.2.1 Introducción: Perfiles y permisos
Como se ha venido mencionando a lo largo del presente documento, en el
sistema SELWA intervienen tres tipos de usuario (además, obviamente, de los
alumnos): administrador, profesor y consultor. En función del perfil que tenga
asignado un usuario, una vez se haya registrado, se le presentará la aplicación
con una interfaz u otra. Parece lógico que, por ejemplo, a un usuario con perfil
“consultor” no se le presente la opción de modificar las fichas de los usuarios
registrados en el sistema. O, por otro lado, que al administrador se le permita el
acceso a toda la información del sistema, pues es el encargado de, ante cualquier
incidencia o confusión, actuar consecuentemente, eliminando un registro
insertado por error o actualizando convenientemente el “Tablón de Anuncios”.
A continuación se detallan los tres perfiles definidos, mostrando a qué
recursos tiene acceso cada uno de ellos.
3.3.2.2 Modo Administrador
El modo “Administrador” es el que disfruta de la implementación de SELWA
en su totalidad. Sólo existirá un usuario con tal perfil definido, y tendrá la
posibilidad de acceder a todas las zonas del sistema con todo tipo de privilegios
para crear, modificar o eliminar registros. En la figura 3.3.2.2.1 se muestra la
pantalla asociada a este perfil.
Autor: Antonio Martínez Martínez
90
SELWA: Sistema de gestión, seguimiento y automatización de informes para
alumnos con necesidades educativas especiales.
3 Diseño e Implementación
Figura 3.3.2.2.1
Pantalla principal del perfil “Administrador”
El administrador es el primer registro que se introduce en la base de datos
durante la instalación del sistema. Es absolutamente necesario que sea así,
debido a que es el único usuario que tiene la posibilidad de dar de alta a nuevos
elementos de tipo “profesor” o “consultor”, es decir, el único capaz de añadir
otros actores en la aplicación. Ya se indicó en apartados anteriores que la
herramienta está diseñada de forma que sean los usuarios con perfil “profesor”
y “consultor” los primeros en ser dados de alta en la base de datos, con objeto de
que al ir generando las fichas de los alumnos, ya existan dichos usuarios para
poder asignarlos. La pantalla mostrada para la creación de estos usuarios se
muestra en la figura 3.3.2.2.2:
Autor: Antonio Martínez Martínez
91
SELWA: Sistema de gestión, seguimiento y automatización de informes para
alumnos con necesidades educativas especiales.
3 Diseño e Implementación
Figura 3.3.2.2.2
Pantalla de “Creación de usuarios”
Este usuario es el destinatario de cualquier incidencia que se plantee en el
sistema, como pueda ser la eliminación por parte de un profesor de un mensaje
recibido de un consultor de tipo “tutor” debido a críticas a su labor docente para
con el alumno. En este caso, el mensaje no se elimina de la base de datos, sino
que pasa a formar parte de otra tabla a la que sólo el administrador tiene acceso,
de forma que puede revisarla periódicamente y comprobar si ha habido algún
tipo de incidencia que se ha tratado de ocultar. Es, asimismo, el encargado de
realizar las operaciones de mantenimiento lógicas de cualquier base de datos:
creación de fichas para nuevas altas, actualización de datos de usuarios,
eliminación de bajas, mantenimiento del “Tablón de Anuncios”, etc.
De entre las opciones implementadas en la aplicación, el administrador tiene
acceso a las siguientes:
1. Gestión de usuarios:
·
Crear usuario.
2. Gestión de fichas de alumnos:
·
Crear ficha.
·
Modificar ficha.
Autor: Antonio Martínez Martínez
92
SELWA: Sistema de gestión, seguimiento y automatización de informes para
alumnos con necesidades educativas especiales.
3 Diseño e Implementación
·
Eliminar ficha.
3. Gestión de informes:
·
Crear informe.
De entre las ampliaciones propuestas en el apartado “Líneas futuras”, el
administrador sería el encargado de la gestión de las siguientes:
1. Agenda:
·
Gestión de la agenda compartida de profesores, fechas y citas
comunes.
2. Tablón de Anuncios:
·
Mantenimiento y filtrado de los mensajes publicados.
3. Correo Interno:
·
Mantenimiento y eliminación definitiva de mensajes borrados
por parte del propietario. Comprobación del contenido de los
mensajes.
Autor: Antonio Martínez Martínez
93
SELWA: Sistema de gestión, seguimiento y automatización de informes para
alumnos con necesidades educativas especiales.
3 Diseño e Implementación
3.3.2.3 Modo Profesor
El usuario “profesor” se diferencia del “administrador” en aquellas tareas que
tengan que ver con la gestión de usuarios y con el mantenimiento de la base de
datos. La figura 3.3.2.3.1 muestra la pantalla para este usuario.
Figura 3.3.2.3.1
Pantalla principal para el perfil “Profesor”
El cometido más importante del profesor es la introducción diaria de
información relativa al comportamiento de los alumnos. Este menú sólo lo tiene
disponible este perfil. Dentro del módulo “Gestión de alumnos”, tras haber
buscado la ficha de un alumno y seleccionar la opción “Ver”, aparece una
pestaña con etiqueta “Hoy”, en la cual el profesor selecciona el área y subárea a
la que corresponden la información que va a introducir. Ver figura 3.3.2.3.2.
Autor: Antonio Martínez Martínez
94
SELWA: Sistema de gestión, seguimiento y automatización de informes para
alumnos con necesidades educativas especiales.
3 Diseño e Implementación
Figura 3.3.2.3.2
Pantalla de registro de información diaria del profesor
En el momento en que se crea la ficha de un alumno (opción que también
tiene disponible el profesor, no sólo el administrador), es necesario asociarle un
profesor. Desde este instante, un profesor busca la ficha de un alumno para, por
ejemplo, modificar un dato o realizar un apunte diario, la lista de alumnos que
le es mostrada se compone únicamente de aquellos que han sido asociados a
dicho profesor. De este modo, cada usuario sólo tiene acceso a la información de
sus alumnos. Respecto a su grupo de alumnos asociado, el profesor puede:
1. Gestión de fichas:
·
Crear nuevas fichas.
·
Modificar fichas existentes.
Autor: Antonio Martínez Martínez
95
SELWA: Sistema de gestión, seguimiento y automatización de informes para
alumnos con necesidades educativas especiales.
3 Diseño e Implementación
·
Ver datos de una ficha asociada (aquí es donde además puede
añadir los registros de información diaria sobre el alumno).
·
Eliminar fichas (en este caso el que elimina realmente la ficha
de la base de datos sería el administrador. El profesor con la
acción de eliminar consigue que no se le muestre más la ficha
de ese alumno).
2. Gestión de informes:
·
Crear informes.
En cuanto a las posibilidades ofrecidas al profesor en las mejoras propuestas
en “Líneas futuras”, se encuentran:
·
Registro de apuntes en la agenda: citas, reuniones, entrega de
informes pendientes, etc.
·
Publicación de nuevas entradas en el “Tablón de Anuncios”.
·
Envío y recepción de mensajes tipo “correo interno”, con otros
profesores y consultores.
3.3.2.4 Modo Consultor
Dentro de esta categoría habrá una división: consultores tutores y consultores
especialistas. Los primeros se corresponderán con los padres/tutores del
alumno, mientras que los segundos serán los especialistas que pueda tener
asociados un alumno.
Este perfil será el que menos privilegios tenga en cuanto a acceso a zonas del
sistema. Un usuario con perfil “consultor” simplemente podrá acceder a la
información de su/s consultado/s, sin posibilidad ni de modificar datos ni de
crearlos. El acceso es únicamente en modo lectura/consulta de datos, salvo en el
Autor: Antonio Martínez Martínez
96
SELWA: Sistema de gestión, seguimiento y automatización de informes para
alumnos con necesidades educativas especiales.
3 Diseño e Implementación
caso de los informes que, puesto que son personalizados, cada uno decide qué
datos desea extraer referentes al alumno en el período especificado. Esta es la
única manera de “crear” que tiene este tipo de usuario. Su pantalla principal se
diferencia de la del profesor en que no existen accesos en ningún lado para, por
ejemplo, crear fichas.
Las posibilidades del modo consultor son:
1.
Gestión de fichas:
·
Ver las fichas de sus alumnos asociados.
2. Gestión de informes:
·
Crear informes.
En cuanto a las “Líneas futuras”, estas capacidades se amplían en:
·
Posibilidad de LEER la agenda común para ver citas
importantes.
·
Mensajería interna con profesores y otros consultores.
3.3.2.5 Información técnica
A continuación se van a explicar algunas de las partes que hacen posible la
creación de fichas de usuario en el sistema.
Fundamentalmente son dos los archivos que posibilitan la creación de
usuarios: “crea_us.php” e “inserta_us.php”.
El primero de ellos, es el que posee la interfaz mostrada en la figura 3.3.2.2.2.
En la capa “principal” existe un formulario que será el encargado de enviar los
valores introducidos en los distintos campos hacia “inserta_us.php”. El envío de
estos valores se producirá siempre y cuando los datos introducidos cumplan con
Autor: Antonio Martínez Martínez
97
SELWA: Sistema de gestión, seguimiento y automatización de informes para
alumnos con necesidades educativas especiales.
3 Diseño e Implementación
las expresiones regulares programadas para cada campo en la función
“comprueba_datos_us”, que se encuentra en el archivo “funcs_GestPest.js” Una
vez en “inserta_us.php”, y con los valores recibidos, el proceso que se
desencadena sigue la siguiente secuencia:
1. Subida de la foto: mediante los métodos “move_uploaded_file” y
“copy”, proporcionados por PHP, se realiza la subida de la foto
seleccionada al servidor, redimensionándola posteriormente (una
vez
subida)
gracias
“redimensionar_imagen”,
a
la
haciendo
función
uso
programada
del
método
“imagecopyresampled”.
2. Inserción de datos: si la subida de la foto fue correcta, se procede
a la inserción en la base de datos, mediante la llamada:
$GLOBALS['selwa']->database->insert("us_info_p",$datos1);
donde “$datos1” es un array que contiene los datos enviados desde
“crea_us.php”.
Si la inserción se realizó con éxito, el navegador es redirigido a una pantalla
donde se confirma la inserción (mediante la directiva “url” incluida en la
etiqueta “meta” de XHTML). En caso negativo, se redirige a una pantalla de
error, donde se indica cuál fue el motivo del fallo (identificado mediante una
codificación de errores, pasado al navegador por método GET, y cuya
equivalencia se realiza mediante la consulta a la tabla “codigo_error” de la base
de datos).
La tabla de la base de datos en la que se registran estos datos es “us_info_p”.
Esta tabla contiene los campos correspondientes a los datos introducidos en el
formulario, con el añadido de un campo “id”, que inserta el sistema
Autor: Antonio Martínez Martínez
98
SELWA: Sistema de gestión, seguimiento y automatización de informes para
alumnos con necesidades educativas especiales.
3 Diseño e Implementación
automáticamente, y que será un número que identifique unívocamente al
usuario en la herramienta (se trata, por ejemplo, del número que aparece
cuando se asigna un tutor a un alumno, ver apartado 3.3.2.2).
3.3.3 Módulo de registro de alumnos
3.3.3.1 Funcionamiento básico
El mecanismo de registro de alumnos está basado en un sistema de pestañas,
cada una de las cuales contiene un tipo de información bien clasificada: Datos
personales, datos familiares, nivel de competencia curricular, evaluación inicial
y diagnóstico. Ver figura 3.3.3.1.1.
Figura 3.3.3.1.1
Pantalla principal al inicio de la creación de una nueva ficha
Autor: Antonio Martínez Martínez
99
SELWA: Sistema de gestión, seguimiento y automatización de informes para
alumnos con necesidades educativas especiales.
3 Diseño e Implementación
No es posible pasar a la siguiente pestaña sin haber rellenado correctamente
la anterior. El sistema es capaz de determinar si, por ejemplo, al introducir la
información de estatura de un alumno, el usuario está insertando caracteres
numéricos o alfanuméricos. También hay que reseñar que existen ciertos
campos que son obligatorios y otros opcionales, de manera que no es posible
avanzar en el registro sin haber completado correctamente un campo
obligatorio. Desde el momento en que se rellena correctamente una pestaña y se
pulsa el botón “Siguiente”, es posible alternar entre la pestaña origen y la
destino desde el propio menú. Para completar el registro de una nueva ficha, en
la última pestaña (“Diagnóstico”) se pulsa “Finalizar”, momento en el cual es
llamado el método de inserción en la base de datos. Puesto que la
comprobación de los datos se realiza a medida que se avanza en el proceso de
registro, el único problema que puede existir a la hora de insertar los datos es
puramente de comunicación o de duplicación de registro, situaciones en las
cuales el sistema informaría con un mensaje de error, indicando cuál ha sido la
causa que ha impedido el registro.
3.3.3.2 Clasificación de datos
En este apartado se detalla la información que contiene cada una de las
pestañas que componen el registro de una nueva ficha de alumno en el sistema.
1. Datos Personales
Esta pestaña condensa los datos personales más relevantes del alumno,
de manera que podamos localizarlo posteriormente en el sistema mediante
alguno de ellos, como por ejemplo el identificador del profesor asociado, su
nombre o sus apellidos.
Destacar en esta pestaña 3 detalles:
Ø Asignación de “Maestro Tutor”: Al pulsar sobre este botón, aparecerá
la lista de profesores registrados en la base de datos, pudiendo
seleccionar de ella SÓLO uno, que se convertirá en el tutor del alumno
Autor: Antonio Martínez Martínez
100
SELWA: Sistema de gestión, seguimiento y automatización de informes para
alumnos con necesidades educativas especiales.
3 Diseño e Implementación
durante el presente curso. Tras elegirlo, aparece un cuadro de texto
donde se indica el código de usuario del profesor. Ver figura 3.3.3.2.1.
Figura 3.3.3.2.1
Proceso de selección de profesor tutor
Ø Asignación de “Consultores Tutores”: Mediante el mismo mecanismo
anteriormente citado, se seleccionan aquellos usuarios registrados en
la base de datos con perfil “consultor”, que representan a los
padres/tutores legales del alumno y que, por tanto, tendrán acceso a
su ficha. En este caso es posible seleccionar hasta un máximo de 4
usuarios. Ver figura 3.3.3.2.2.
Autor: Antonio Martínez Martínez
101
SELWA: Sistema de gestión, seguimiento y automatización de informes para
alumnos con necesidades educativas especiales.
3 Diseño e Implementación
Figura 3.3.3.2.2
Ventana de selección de tutores asociados
Ø Selección de fotografía: Se permite (pero no es condición necesaria) la
adición de una fotografía del alumno que será mostrada en el margen
superior izquierdo de su ficha. Ver figura 3.3.3.2.3.
Figura 3.3.3.2.3
En la selección de la foto hay que tener en cuenta el formato y el tamaño
máximo de la foto. Ver apartado 3.3.3.3 “Condiciones necesarias”
2. Datos Familiares
Aquí se recogerán datos relevantes de los representantes legales del
alumno, tales como teléfonos de contacto, direcciones postales o
direcciones
Autor: Antonio Martínez Martínez
102
SELWA: Sistema de gestión, seguimiento y automatización de informes para
alumnos con necesidades educativas especiales.
3 Diseño e Implementación
electrónicas, así como otros datos de interés que puedan haber afectado
al normal desarrollo del alumno, tales como la edad de embarazo de la
madre, enfermedades sufridas durante el embarazo o posibles
dificultades en el parto. Ver figuras 3.3.3.2.4a y 3.3.3.2.4b.
Figura 3.3.3.2.4a
Primera parte de la pestaña “Datos Familiares”
Autor: Antonio Martínez Martínez
103
SELWA: Sistema de gestión, seguimiento y automatización de informes para
alumnos con necesidades educativas especiales.
3 Diseño e Implementación
Figura 3.3.3.2.4b
Segunda parte de “Datos Familiares”
3. Niveles de Competencia Curricular (N.C.C.)
Los niveles de competencia curricular indican el estado de las
capacidades de un alumno en una gran variedad de campos, de forma que
permitan al profesor establecer, mediante estos criterios, en qué aspectos es
necesario hacer más hincapié durante el curso escolar. Estos niveles están
divididos en ciclos, adaptados cada uno de ellos a un intervalo de edades
escolares. En colegios de enseñanza ordinaria, lo usual es aplicar cada uno
de estos ciclos a los alumnos que se encuentran en la edad correspondiente a
dicho ciclo. Sin embargo, en colegios de educación especial esto no siempre
es así. Es posible que para alumnos con una edad a la que correspondería
aplicar un nivel determinado, se necesite aplicar otro, superior o inferior,
debido a sus especiales características. Es por ello que la herramienta
SELWA permite seleccionar de entre los 5 ciclos propuestos cualesquiera de
Autor: Antonio Martínez Martínez
104
SELWA: Sistema de gestión, seguimiento y automatización de informes para
alumnos con necesidades educativas especiales.
3 Diseño e Implementación
las características, pudiendo realizar niveles de competencia híbridos, que
indicarán qué tipo de habilidades posee el alumno en los campos que el
usuario que lo dé de alta estime necesarios para su desarrollo escolar (en la
implementación realizada sólo está presente el N.C.C. del primer ciclo de
infantil). Estos niveles están obtenidos del modelo propuesto por la Junta de
Andalucía para los centros públicos de esta Comunidad Autónoma. [3]
El sistema nos presenta, por cada uno de los niveles, una tabla con las
competencias asociadas, y una serie de casillas en las que se debe indicar si
el alumno cumple total, parcialmente o no cumple dicha competencia (ver
figura 3.3.3.2.5). Sólo aquéllas que sean marcadas como “No” o “AV” (“A
Veces”) tendrán relevancia en la ficha del alumno a la hora de marcar como
objetivo para el presente curso la mejora de la capacidad en cuestión, es
decir, aparecerán en la pestaña “N.C.C” de la ficha del alumno, pudiendo
realizar una programación individualizada en tiempo, metodología y
secuencia de actividades, indicando en cualquier instante si ha sido
alcanzado el objetivo o aún no. El porqué de dar la posibilidad de marcar
como objetivo o no, es debido a que existen características que según la
complejidad de la carencia pueden llegar a ser imposibles de superar, como
por ejemplo una ceguera, una sordera crónica o la falta de algún miembro.
Se añade un campo de texto para dotar al sistema de una mayor versatilidad
y una mayor exactitud en la información, de forma que el usuario no quede
sujeto a las posibilidades rígidas de las plantillas de los distintos ciclos.
Autor: Antonio Martínez Martínez
105
SELWA: Sistema de gestión, seguimiento y automatización de informes para
alumnos con necesidades educativas especiales.
3 Diseño e Implementación
Figura 3.3.3.2.5
Muestra de la pestaña “Niveles de Competencia Curricular”
Como se adelantó anteriormente, las competencias marcadas como “No”
o “AV” y que además hayan sido consideradas a tener en cuenta como
“Objetivo”, aparecerán en la pestaña “N.C.C.” de la ficha del alumno. Al
pulsar sobre una de ellas, aparece una nueva ventana que permite la
programación individualizada de dicha competencia. Esta programación se
divide en 3 partes:
·
Evaluación Inicial: Habrá que reflejar el estado del que parte el
alumno, para poder comprobar posteriormente si la evolución ha
sido positiva o no.
·
Secuencia y Temporalización: Aquí habrá que indicar cuál será la
secuencia de actividades a llevar a cabo por el profesor, con objeto
Autor: Antonio Martínez Martínez
106
SELWA: Sistema de gestión, seguimiento y automatización de informes para
alumnos con necesidades educativas especiales.
3 Diseño e Implementación
de tratar de superar la carencia, así como el tiempo que se va a
dedicar a cada una.
·
Metodología: Por último, se debe anotar el tipo de habilidades y
estrategias
que
serán
llevadas
a
cabo.
En las figuras 3.3.3.2.6a y 3.3.3.2.6b se muestra la ventana de
programación de objetivos.
Figura 3.3.3.2.6ª
Primera parte de la Programación de Objetivos
Autor: Antonio Martínez Martínez
107
SELWA: Sistema de gestión, seguimiento y automatización de informes para
alumnos con necesidades educativas especiales.
3 Diseño e Implementación
Figura 3.3.3.2.6b
Segunda parte de la Programación de Objetivos
Una vez el profesor considera que el objetivo ha sido superado, debe
indicar esta incidencia marcando la casilla “Sí” de la columna “Cumplido”.
Siempre será posible la adición de nuevos objetivos durante el curso.
Para ello, una vez buscada la ficha del alumno en cuestión, habrá que pulsar
sobre el botón “Modificar”. En este momento se nos presenta el mismo
menú de ventanas que contiene la información del alumno, pero en modo
editable. Desde la pestaña “N.C.C.” pulsando sobre “Añadir Objetivos”, nos
aparecerá una nueva ventana que contiene la lista de todas las competencias
(ver figura 3.3.3.2.7), con una casilla de verificación al lado de cada una.
Todas aquéllas que sean seleccionadas, se añadirán automáticamente a la
lista de objetivos que ya se tenía para el presente curso, siendo necesario
pulsar a continuación “Actualizar Objetivos” para hacer efectiva la adición
del objetivo. De igual manera, es necesario pulsar dicho botón cuando se
cambia el estado de un objetivo, es decir, cuando pasa de no estar cumplido
a estarlo, o viceversa, debido, por ejemplo, a que un alumno deja de poseer
una capacidad que había logrado obtener.
Autor: Antonio Martínez Martínez
108
SELWA: Sistema de gestión, seguimiento y automatización de informes para
alumnos con necesidades educativas especiales.
3 Diseño e Implementación
Figura 3.3.3.2.7
Muestra de la ventana que contiene las competencias de los N.C.C.
4. Evaluación Inicial
Cuando un alumno es dado de alta en un nuevo centro, es necesario
conocer una serie de datos de su vida curricular hasta ese momento. En esta
pestaña es donde se recoge esta información, dividida en diferentes
apartados, de modo que se refleje la mayor cantidad posible de datos, con
objeto de ajustar perfectamente el plan de estudios a la medida de sus
necesidades y sus capacidades. Junto con los N.C.C., conforman una
información de vital relevancia en este aspecto. La figura 3.3.3.2.8 presenta
una muestra de esta pestaña.
Autor: Antonio Martínez Martínez
109
SELWA: Sistema de gestión, seguimiento y automatización de informes para
alumnos con necesidades educativas especiales.
3 Diseño e Implementación
Figura 3.3.3.2.8
Muestra de la pestaña “Evaluación Inicial”
Existen 3 divisiones principales para catalogar la información de
evaluación inicial:
A. Relativa al alumno
En esta categoría se englobará la información que concierne
única y estrictamente al alumno, incluyendo su trayectoria
curricular, centros en los que ha estado matriculado, resumen del
N.C.C. actual, preferencias en el estilo de aprendizaje y desarrollo
general.
Autor: Antonio Martínez Martínez
110
SELWA: Sistema de gestión, seguimiento y automatización de informes para
alumnos con necesidades educativas especiales.
3 Diseño e Implementación
B. Relativa al contexto socio-familiar
Resumen del entorno familiar que rodea al alumno, conocimiento
por parte del entorno más cercano de la problemática, recursos de
que dispone, aficiones, grado de aceptación por parte de la familia,
etc.
C. Relativa al contexto escolar (aula)
Evaluación académica por parte del centro respecto a las
capacidades para afrontar la educación del alumno, existencia y
adecuación del plan de estudios, recursos, contexto didáctico, clima
institucional, etc.
5. Diagnóstico
En esta pestaña se identifican la tipología, patología y nivel de la
discapacidad que presenta el alumno (figura 3.3.3.2.9). La clasificación es la
propuesta por el Centro Nacional de Información y Comunicación Educativa
(CNICE), perteneciente al Ministerio de Educación y Ciencia (MEC),
siguiendo los criterios de la OMS y del Manual de Diagnóstico y Estadística
de los Trastornos Mentales (DSM-III y DSM-IV). Así, una vez seleccionada
la tipología (dividida en 8 categorías), en el menú “Patología” se cargan los
posibles valores asociados a dicha tipología. De igual forma, cada patología
tendrá asociados unos niveles, según la descripción de los organismos en que
se basa el MEC para realizar esta clasificación.
Nuevamente (al igual que ocurría en la pestaña “N.C.C.”), aparece un
cuadro de texto con título “Observaciones”, con objeto de dotar al profesor
de un mayor grado de libertad a la hora de especificar la discapacidad del
alumno, puesto que es posible que la clasificación proporcionada por el
sistema no sea lo suficientemente completa o quede obsoleta en un momento
dado, debido a variaciones en las tipologías o patologías, o a la aparición de
Autor: Antonio Martínez Martínez
111
SELWA: Sistema de gestión, seguimiento y automatización de informes para
alumnos con necesidades educativas especiales.
3 Diseño e Implementación
nuevas de ellas.
Al igual que en la pestaña “Datos personales” se seleccionaba el tutor
asociado al alumno, aquí se muestra la posibilidad de asignar especialistas,
también mediante el uso del identificador. Los especialistas aquí marcados
serán los que tengan acceso a la información del alumno a la hora de realizar
un seguimiento o de ponerse en contacto con los padres/tutores, o con el
profesor asociado.
Por último, y para completar el diagnóstico, se ofrece la posibilidad de
indicar la necesidad o no de un tratamiento médico, así como un cuadro de
texto donde se indiquen las características de dicho tratamiento.
Obviamente, este tratamiento debería ser indicado por parte de un
especialista médico que se haya asociado al alumno. Es por esto que el
objetivo del cuadro “Observaciones Tratamiento Médico” es el de especificar
con el máximo nivel de detalle cuál será dicho tratamiento, la posología, los
medicamentos, las formas de administración, etc.
Autor: Antonio Martínez Martínez
112
SELWA: Sistema de gestión, seguimiento y automatización de informes para
alumnos con necesidades educativas especiales.
3 Diseño e Implementación
Figura 3.3.3.2.9
Pestaña “Diagnóstico”
3.3.3.3 Condiciones necesarias
En este punto se indicarán las condiciones que han de cumplirse para un
correcto registro de una nueva alta de alumno. El motivo de que algunas
pestañas no aparezcan reflejadas en este apartado es porque no requieren de
ninguna condición para poder pasar al siguiente estado en el proceso de
registro.
El mecanismo utilizado en la comprobación de la información introducida
son las expresiones regulares. Éstas permiten, mediante la definición de una
plantilla, el chequeo de una cadena con dicha plantilla, de forma que los datos
introducidos deben ajustarse a los tipos de datos y a la estructura definidos en la
Autor: Antonio Martínez Martínez
113
SELWA: Sistema de gestión, seguimiento y automatización de informes para
alumnos con necesidades educativas especiales.
3 Diseño e Implementación
expresión regular, es decir, en el caso de, por ejemplo, un campo “teléfono”,
será necesario que el usuario introduzca 9 caracteres numéricos.
I. Datos Personales
En el caso de los campos “Nombre”, “Apellidos” y “Localidad” se
requiere la introducción de caracteres alfabéticos, en mayúscula o
minúscula, así como las vocales con signos de acentuación o el carácter
“-“ para el caso de apellidos compuestos.
Para la fecha de nacimiento es necesario, aparte de seleccionar
alguna opción del desplegable distinta de “Día”, “Mes” y “Año”, que la
fecha sea correcta, es decir, que el día seleccionado sea correcto para el
mes y año seleccionados. El sistema no permite la introducción de
fechas tales como “30/2/2007”, “31/11/2007” ó “29/2/2006”.
Los campos “Peso”, “Estatura” y “Teléfono” es necesario
rellenarlos, como no podía ser de otra manera, con caracteres
numéricos. En el caso del teléfono, se añade además la restricción de
que la información debe contener exactamente 9 dígitos.
De los restantes, puesto que son elegidos mediante menús
desplegables unos, y mediante valores predeterminados otros, no es
necesario realizar comprobaciones, salvo en el caso de la fotografía.
Aquí se comprueban 2 parámetros: tamaño y formato. Sólo están
permitidos archivos con extensión .jpg, .jpeg, .gif, .bmp y .png, y el
tamaño máximo es de 600Kb (siendo redimensionada una vez subida al
servidor a unas medidas máximas de 100x100 px).
Autor: Antonio Martínez Martínez
114
SELWA: Sistema de gestión, seguimiento y automatización de informes para
alumnos con necesidades educativas especiales.
3 Diseño e Implementación
II. Datos Familiares
Existen 2 comprobaciones adicionales a las del punto anterior,
correspondientes a los campos “E-mail” y “Edad embarazo madre”. En
el primero, la expresión regular exige que se inserte una cadena de
caracteres seguida por una “@” y una extensión formada por una
cadena de caracteres, un punto y una nueva cadena con un mínimo de 2
caracteres y un máximo de 6. Para el segundo, el campo debe estar
relleno con 2 caracteres numéricos.
No se realizan comprobaciones en las 3 últimas pestañas, pues se
considera que el objetivo principal en la coherencia de datos durante el
proceso de alta de una ficha, debe darse en el registro de los datos
principales del alumno. La información relativa a “N.C.C.”, “Evaluación
inicial” y “Diagnóstico” puede ser añadida en el discurrir del curso, una
vez se haya consultado con especialistas (en el caso del diagnóstico), o
sea necesario solicitar información de otros centros (en el caso de
evaluación inicial).
3.3.3.4 Información técnica
Se va a realizar una explicación de los archivos y funciones principales que
hacen posible el funcionamiento comentado en los apartados anteriores. Se
abordarán comportamientos tales como el funcionamiento del menú de
pestañas, el de creación dinámica del contenido de los menús desplegables o la
inserción de la información en la base de datos.
Ø Menú de pestañas
El funcionamiento del menú de pestañas está basado en
programación JavaScript. En todas las pestañas existen 2 capas
fundamentales. La primera de ellas contiene a la segunda, y es la que
proporciona el fondo blanco. La nomenclatura de estas capas es
“datos1”, “datos2”, “datos3”, “datos4” y “datos5”. La segunda es la que
Autor: Antonio Martínez Martínez
115
SELWA: Sistema de gestión, seguimiento y automatización de informes para
alumnos con necesidades educativas especiales.
3 Diseño e Implementación
realmente contiene la información de la pestaña. En función de ésta,
la capa tendrá una longitud concreta o no (definida en la hoja de estilo
correspondiente). La nomenclatura de estas capas hace referencia a la
información que poseen: “d_pers”, “d_fam”, “inicio_ncc”, “ev_ini” y
“diagn”. En el caso de la pestaña “N.C.C.” existe una capa adicional,
dado que se la pantalla principal es un nuevo menú que permite elegir
el ciclo de N.C.C. que se desea seleccionar. Estas nuevas capas serán
“ncc1”, “ncc2”, etc.
Mediante esta división en capas es como se consigue el efecto
deseado para este menú. La pulsación de una pestaña desencadena la
llamada a 3 métodos JavaScript: “no_activo”, “activo” y “no_se_ve”.
El primero de ellos, en función de la variable “estado”, llama al
método “manejador_pest”, que será el encargado de realizar algunas
comprobaciones
y
activar,
en
caso
de
éxito,
la
pestaña
correspondiente. La variable “estado” es un indicador del instante del
proceso de creación en el que se encuentra el usuario, es decir, a
cuáles de las pestañas ha accedido correctamente mediante la
pulsación del botón “Siguiente”, pues se recuerda que no es posible
avanzar en el proceso sin haber completado correctamente la pestaña
anterior. Por ejemplo, “estado” igual a 1 implica que se ha avanzado
correctamente desde la pestaña “Datos personales” a “Datos
familiares”, con lo que el usuario podría moverse de una a otra
utilizando
el
menú
superior
de
pestañas.
El
método
“manejador_pest” recibe como parámetros el identificador de la capa
de la que se parte y el de la destino. Tras comprobar que los datos en
la origen son correctos (mediante la comparación con expresiones
regulares), llama a los métodos correspondientes que realizan las
acciones de mostrar y ocultar las pestañas y capas correspondientes.
La llamada al método “activo” provoca la activación de la pestaña
correspondiente (pasada como parámetro al método mediante su
Autor: Antonio Martínez Martínez
116
SELWA: Sistema de gestión, seguimiento y automatización de informes para
alumnos con necesidades educativas especiales.
3 Diseño e Implementación
identificador), aunque será el “manejador_pest” el que decida
finalmente si se dan las condiciones para esta activación. De igual
manera, “no_se_ve” provoca la activación/desactivación de la capa
“datos-i” correspondiente, siendo en última instancia el método
“manejador_pest” el que decida si se produce o no dicho cambio.
Todos los procesos de activación comentados son producidos
mediante la alteración del atributo “class”, con la directiva JavaScript
“document.getElementById(identificador_elemento).className”. En
función de la nueva clase a la que se asigne el elemento, según las
propiedades definidas en la hoja de estilo, será mostrado o no.
Las comprobaciones de datos, tanto si se realizan mediante
expresiones regulares como si no, están programadas también en
JavaScript. En el caso de las expresiones regulares, la comprobación
se realiza tras 3 pasos. En primer lugar se almacena en un array los
datos introducidos por el usuario que desean ser comprobados (en
este caso, “pest[0][i]”). A continuación se construyen las expresiones
regulares que servirán como patrón a cumplir (llamadas “reg[i]”). Por
último se realiza la comprobación mediante el método JavaScript
“search” de la siguiente forma:
pest[0][i].search(reg[i])
Si el resultado es cero, el valor introducido es correcto. En caso
contrario, se añade al array de campos erróneos introducidos para
mostrar en una ventana “alert” tras la pulsación de “Siguiente”.
Autor: Antonio Martínez Martínez
117
SELWA: Sistema de gestión, seguimiento y automatización de informes para
alumnos con necesidades educativas especiales.
3 Diseño e Implementación
Ø Adición de profesores y/o consultores
En las pestañas “Datos personales” y “Diagnóstico” aparece la
opción de asignar profesor tutor y consultores tutores, en el caso de la
primera, y consultores especialistas, en el caso de la segunda. Al pulsar el
botón de buscar, aparece una nueva ventana donde se muestran los
usuarios correspondientes que pueden ser seleccionados. El listado de
estos usuarios se realiza tras una consulta a la tabla “us_info_p” de la
base de datos, especificando como criterio de búsqueda el perfil en
cuestión. Tras esta búsqueda, se crea una tabla con los resultados
obtenidos, mostrando nombre, apellidos, identificador y especialidad (en
el caso de los especialistas). En la búsqueda de profesor asociado, se
añade una casilla de verificación excluyente, es decir, sólo se podrá
seleccionar un usuario. Al pulsar el botón “Aceptar”, se realiza la llamada
al método “devuelve”, que en función del perfil (profesor, consultor tutor
o consultor especialista) realiza distintas acciones. Si la búsqueda fue de
profesores, se toma el valor de identificador seleccionado y se carga en el
cuadro de texto de la ventana origen mediante la llamada a:
opener.document.getElementById(identificador).value
y posteriormente se cierra la ventana. En el caso de búsqueda de
consultores el procedimiento es el mismo, variando únicamente el
número de usuarios seleccionados, que puede ser mayor que uno (pero
siempre inferior a 4 en el número de consultores tutores y 5 en el de
especialistas).
Ø Subida de la foto del alumno
El proceso de subida al servidor de la foto asignada al alumno es el
mismo que el descrito en el apartado 3.3.2.5 para la subida de las fotos de
los usuarios.
Autor: Antonio Martínez Martínez
118
SELWA: Sistema de gestión, seguimiento y automatización de informes para
alumnos con necesidades educativas especiales.
3 Diseño e Implementación
Ø Creación dinámica de contenido en menús desplegables
El hecho de crear contenido de forma dinámica en menús
desplegables se produce en 2 apartados del sistema: en la pestaña
“Diagnóstico”, en el momento de seleccionar una tipología o una
patología, y en la pestaña “Hoy” cuando se selecciona el área a la que va a
quedar
asociado
un
comentario
diario.
En
ambos
casos
el
funcionamiento es similar, y se detalla a continuación.
Mediante código JavaScript creamos el contenido de un menú
“select” en el momento en que cambia el valor de otro. En el caso del
menú “Tipología” de la pestaña “Diagnóstico”, una vez queda
seleccionada la tipología en cuestión, se realiza una llamada al método
“actualiza_sel”. Aquí, en función del valor seleccionado, se crea un array
de datos que contiene la información a cargar en el menú “Patología”.
Éste, a su vez, al variar el valor seleccionado originalmente, realiza una
llamada al método “actualiza_sel2”, de modo que se cargue en el menú
“Nivel” los valores adecuados a la tipología y patología seleccionadas.
Una vez creado el array, se generan los elementos “option” necesarios y
se dice que pertenecen al menú representado por el identificador que se
ha pasado como parámetro de la siguiente manera:
var op=document.createElement("option");
op.appendChild(document.createTextNode(datos[i]));
op.value=datos[i];
sel_dest.appendChild(op);
Ø Inserción de la información en la base de datos
El último paso en la creación de una nueva ficha de alumno es,
como no podía ser de otra manera, la inserción de la información en
la base de datos. En el momento en que se pulsa el botón “Finalizar”
en la pestaña “Diagnóstico” se realiza una llamada a “inserta.php”,
Autor: Antonio Martínez Martínez
119
SELWA: Sistema de gestión, seguimiento y automatización de informes para
alumnos con necesidades educativas especiales.
3 Diseño e Implementación
donde se desencadenan las siguientes acciones:
v Subida de la foto
Este proceso ya quedó explicado en el apartado 3.3.2.5.
v Inserción de datos por pestañas
Si el proceso de subida anterior se realizó con éxito, se
procede a la inserción de los datos, pestaña a pestaña. Sólo se
realiza la inserción de información si la anterior fue correcta.
En el caso de que la subida al servidor de la foto se produjese
con éxito y, posteriormente, hubiese un error en la inserción de
información de cualquier pestaña, al final se elimina del
servidor la foto subida, mediante la orden:
unlink(ruta_imgs/nombre_img);
El caso más complejo durante el proceso de inserción se produce
en los datos de la pestaña “N.C.C.”. Puesto que sólo resultarán de interés
aquellas competencias marcadas como “Objetivo”, el primer paso es
precisamente ese, discriminar cuáles son objetivo. Para ello, se realiza
una llamada al método “manejador_res”, que devuelve un array con los
identificadores de aquellas competencias que han sido seleccionadas
como objetivo. Se produce una llamada a este método para los valores
marcados como “No” o como “AV”, por motivos obvios, pues si un
alumno cumple con una determinada característica, no tiene mayor
sentido que el de pura información para el profesor el reflejarla en la base
de datos.
Puesto que el funcionamiento deseado es que la inserción de toda la
información del alumno se realice de forma atómica (esto es, o se
introduce correctamente la información de todas las pestañas, o
ninguna), y dado que dicha inserción se realiza de manera secuencial, en
el momento en que falle alguno de los pasos intermedios será necesario
Autor: Antonio Martínez Martínez
120
SELWA: Sistema de gestión, seguimiento y automatización de informes para
alumnos con necesidades educativas especiales.
3 Diseño e Implementación
eliminar de la base de datos la información introducida hasta el momento
de ese alumno.
Finalmente, si el proceso ha transcurrido con éxito, se redirige el
navegador a una página en la que se advierte al usuario de la correcta
inserción del nuevo registro (“todook.php”). En caso contrario, y al igual
que ocurre con el procedimiento descrito en el apartado 3.3.2.5, se
muestra al usuario el motivo por el cual no se completó el alta de la nueva
ficha.
Autor: Antonio Martínez Martínez
121
SELWA: Sistema de gestión, seguimiento y automatización de informes para
alumnos con necesidades educativas especiales.
3 Diseño e Implementación
3.4 Módulos de gestión
En los apartados correspondientes a este punto, se mostrarán cuáles son las
posibilidades que la herramienta SELWA aporta al usuario a la hora del manejo
diario. En primer lugar se mostrará la gestión básica, es decir, la creación,
eliminación, y modificación de datos tanto de usuarios como de alumnos para,
posteriormente, centrarse la exposición en la parte de trabajo diario (en el caso
de los alumnos) y en la solución implementada (en el caso de los usuarios).
3.4.1 Gestión de usuarios
3.4.1.1 Gestión básica
Se entiende como gestión básica el conjunto de funciones que abarcan la
creación, modificación y eliminación de información.
En el caso de los usuarios del sistema, como ya se ha comentado en apartados
anteriores, su creación es prioritaria frente a la creación de las fichas de
alumnos. Sólo el alta del usuario “Administrador” es anterior al alta de los
profesores o consultores. La información que se requiere para la correcta
inserción de una nueva ficha de usuario es la siguiente:
·
Nombre y apellidos.
·
Fecha de nacimiento.
·
Teléfonos (normalmente uno fijo y uno móvil, pero no es condición
necesaria).
·
Domicilio
·
Localidad Estos 3 datos están referidos a su lugar de residencia.
·
Provincia
·
Nacionalidad.
·
DNI.
Autor: Antonio Martínez Martínez
122
SELWA: Sistema de gestión, seguimiento y automatización de informes para
alumnos con necesidades educativas especiales.
3 Diseño e Implementación
·
Perfil (indicará qué tipo de usuario es, “profesor”, “consultor tutor”
o “consultor especialista”).
·
Especialidad (sólo válido en el caso de que el perfil seleccionado sea
“consultor especialista”).
·
Correo (dirección de correo electrónico).
·
Login (identificador con el cual accederá al sistema).
·
Contraseña (asociada al login).
·
Foto.
El número de identificador único asociado a cada usuario lo inserta de forma
automática el sistema. Este identificador es el que representa unívocamente al
usuario de SELWA, siendo el que aparece cuando, por ejemplo, se asocia un
profesor a un alumno durante su proceso de alta. Al igual que se comentó en el
apartado “Condiciones necesarias” del punto 3.3.3, antes de realizar la inserción
del nuevo usuario se realizan una serie de comprobaciones sobre los datos
introducidos mediante expresiones regulares, de forma que éstos se ajusten al
patrón definido, con objeto de asegurar la coherencia de datos de usuario.
Una vez concluido con éxito el alta del nuevo usuario, las demás operaciones
que se pueden realizar sobre su ficha (siempre por parte del administrador) son
las normales de cualquier sistema de gestión, es decir, modificación de datos
(debido a posibles cambios de domicilio, de número de teléfono o de correo
electrónico, entre otros), y eliminación de su ficha (motivado, normalmente, por
una baja definitiva en el centro).
3.4.1.2 Solución implementada
De las funciones que se engloban en la definición de gestión básica dada en el
apartado anterior, sólo la creación de nuevas fichas de usuario ha sido
implementada en SELWA, con los campos citados en dicho apartado. Esta
funcionalidad es necesaria y suficiente para el correcto funcionamiento del
sistema. Se deja propuesta en el apartado “Líneas futuras” la implementación
Autor: Antonio Martínez Martínez
123
SELWA: Sistema de gestión, seguimiento y automatización de informes para
alumnos con necesidades educativas especiales.
3 Diseño e Implementación
de las otras dos funciones, modificación y eliminación.
En cuanto al funcionamiento de la creación de nuevas fichas de usuarios,
queda reflejado en el apartado 3.4.1.1.
3.4.2 Gestión de alumnos
3.4.2.1 Gestión básica
La gestión básica de alumnos, a diferencia de la de usuarios, sí está
implementada en su totalidad. El motivo es obvio, pues para el correcto
funcionamiento de la aplicación es necesario dotar a los usuarios de la
posibilidad de modificar datos de alumno, registrar apuntes diarios o eliminar
fichas.
Desde el menú “Gestión de fichas”, se presentan 3 posibilidades:
·
Crear ficha.
·
Buscar ficha.
·
Menú Principal.
La primera opción está ampliamente explicada en el apartado 3.3.3 (“Módulo
de registro de alumnos”). Para el resto de funciones implementadas, es
necesario pasar por la segunda opción, “Buscar ficha”. El primer paso a la hora
de modificar una ficha, eliminarla o crear un informe siempre será buscar la
ficha del alumno sobre el que se va a realizar la acción. Los resultados de la
búsqueda serán aquellos alumnos asociados al identificador del usuario que
haya realizado la búsqueda. Estos resultados se pueden ordenar en función de
las 4 categorías que se muestran en la tabla: identificador, nombre, apellidos o
identificador de tutor, sin más que pulsar sobre el propio título de la columna o
sobre la flecha que aparece al lado de cada uno. En la pantalla donde se muestra
Autor: Antonio Martínez Martínez
124
SELWA: Sistema de gestión, seguimiento y automatización de informes para
alumnos con necesidades educativas especiales.
3 Diseño e Implementación
la lista de resultados (ver figura 3.4.2.1.1) aparecen 3 botones, que nos
permitirán realizar las operaciones de gestión.
Figura 3.4.2.1.1
A continuación se detallan las posibilidades de gestión de fichas de alumnos,
dividas por acciones.
1. Ver
La ventana de visión de datos de alumno tiene la misma estructura que la de
creación en cuanto a las pestañas de datos (personales y familiares), N.C.C.,
evaluación inicial y diagnóstico. Además presenta una nueva pestaña,
denominada “Hoy”. En esta pestaña el profesor refleja el trabajo diario de cada
alumno, clasificando esta información en áreas en primera instancia, y en
Autor: Antonio Martínez Martínez
125
SELWA: Sistema de gestión, seguimiento y automatización de informes para
alumnos con necesidades educativas especiales.
3 Diseño e Implementación
subáreas dependientes del área seleccionada en segunda. Además, se ofrece la
posibilidad de añadir un asunto que identifique de un vistazo el apunte a la hora
de realizar informes (ver figura 3.3.2.3.2 del apartado “Modo profesor”). En el
apartado siguiente, “Trabajo diario”, se ofrece una información más detallada
acerca de esta pestaña.
La información representada es accesible sólo en modo lectura salvo,
obviamente, la de la pestaña “Hoy”, que es generada por el propio usuario, en el
caso de ser profesor. Para los consultores se muestra el último apunte
registrado, en modo lectura.
2. Modificar
Esta ventana se diferencia en 2 características de la anterior:
·
No posee la pestaña “Hoy”.
·
La información es completamente editable.
De esta última característica hay que reseñar la parte correspondiente a los
N.C.C. El resto de pestañas, como se puede suponer, reflejan la información
correspondiente al alumno seleccionado, con la posibilidad de modificar
cualquier dato.
Los objetivos seleccionados en la creación de la ficha aparecen aquí
reflejados. En la parte inferior de la pestaña existen dos botones: “Añadir
Objetivo” y “Actualizar Objetivos”. Con el primero se pueden añadir nuevos
objetivos en cualquier momento, bien porque se hayan ido cumpliendo otros
añadidos al principio, bien porque aparezcan nuevas carencias en el alumno
dignas de ser tenidas en cuenta para mejorarlas. El segundo sirve para hacer
efectiva en la base de datos cualquier modificación realizada sobre alguno de los
objetivos seleccionados en la creación de la ficha del alumno. Estas
modificaciones pueden ser, por un lado, haber cumplido con el objetivo, es
Autor: Antonio Martínez Martínez
126
SELWA: Sistema de gestión, seguimiento y automatización de informes para
alumnos con necesidades educativas especiales.
3 Diseño e Implementación
decir, que el profesor pulse la opción “Sí” de la columna “Cumplido” (o
viceversa, que un objetivo que se tenía por cumplido pase a no estarlo). Por otro
lado, también puede ser que se haya realizado la adición de un nuevo objetivo
que el profesor desea que se añada a la lista, haciéndose efectiva en la base de
datos.
3. Eliminar
Al pulsar sobre esta opción, no se muestra ninguna ventana nueva.
Simplemente se solicita al usuario la confirmación de la eliminación de la
ficha. Tras la confirmación, se produce la eliminación definitiva de la ficha en
la base de datos. Otra posibilidad, indicada en “Líneas futuras”, es la de
eliminar la ficha de la base de datos que se esté usando para el actual curso y
realizar una copia de los datos del alumno en un segundo repositorio, de
forma que se mantenga un archivo histórico de los alumnos que han pasado
por el centro, y de los métodos y resultados obtenidos para la deficiencia que
presente.
Autor: Antonio Martínez Martínez
127
SELWA: Sistema de gestión, seguimiento y automatización de informes para
alumnos con necesidades educativas especiales.
3 Diseño e Implementación
3.4.2.2 Trabajo diario
Como se ha venido comentando en anteriores apartados, una de las labores
más importantes del profesor es realizar periódicamente apuntes acerca de la
actividad de los alumnos. Estos registros son el pilar fundamental sobre el que
se basa la herramienta SELWA. Como se mostrará en el siguiente apartado
(“Informes”), una de las misiones prioritarias de la aplicación es posibilitar a sus
usuarios un seguimiento pormenorizado del alumno mediante la generación de
informes, generados a partir de la información que el profesor refleja en sus
apuntes diarios1.
La clasificación de esta información se ha hecho en dos partes. Por un lado es
necesario seleccionar un área de entre las siguientes:
·
Cognitiva/Perceptiva
·
Lingüística
·
Motórica
·
Afectivo/Emocional
·
Adaptación e Inserción social
·
Matemáticas
·
Lectoescritura
·
Estilo de aprendizaje
·
Hábitos
En función del área seleccionada, el cuadro de subáreas carga los valores
correspondientes. A continuación se muestran las subáreas asociadas a cada
área:
1
En realidad los registros de actividad de los alumnos no tienen por qué producirse
diariamente. Ésta sería la periodicidad ideal, con el fin de obtener la mayor información
posible de un alumno a la hora de generar un informe, pero no es requisito indispensable.
Registros periódicos cada 2, 3 ó 4 días también sería una secuencia aceptable.
Autor: Antonio Martínez Martínez
128
SELWA: Sistema de gestión, seguimiento y automatización de informes para
alumnos con necesidades educativas especiales.
3 Diseño e Implementación
Ø Percepción visual y táctil
Ø Percepción Auditiva
Cognitiva/Perceptiva
Ø Estructura espacio-temporal
Ø Otras
Lingüística
Motórica
Articulación
Comprensión oral
Vocabulario básico
Desarrollo
morfosintáctico
Ø Nivel semántico
Ø Memoria verbal
inmediata
Ø Otras
Ø
Ø
Ø
Ø
Ø Coordinación vasomotora
Ø Habilidades manipulativas
pregráficas
Ø Iniciación gráfica
Ø Esquema y control postural
Ø Coordinación visomanual
Ø Equilibrio
Ø Conductas respiratorias
Ø Otras
Autor: Antonio Martínez Martínez
129
SELWA: Sistema de gestión, seguimiento y automatización de informes para
alumnos con necesidades educativas especiales.
3 Diseño e Implementación
Afectivo/Emocional
Otros
Adaptación e inserción social
Otros
Ø Numeración
Ø Cálculo mental
Matemáticas
Ø Operaciones
Ø Problemas
Ø Otros
Lectoescritura
Estilo de
Aprendizaje
Ø
Ø
Ø
Ø
Ø
Ø
Ø
Ø
Ø
Ø
Palabras, frases, textos
Tipo de lectura
Velocidad
Comprensión lectora
Caligrafía
Copia
Dictado
Composición
Ortografía
Otros
Ø
Ø
Ø
Ø
Ø
Ø
Ø
Ø
Atención
Seguimiento de instrucciones
Modalidad sensorial preferente
Preferencias de reforzamiento
Motivación
Persistencia en ejecución de tareas
Necesidad de movilidad
Otros
Autor: Antonio Martínez Martínez
130
SELWA: Sistema de gestión, seguimiento y automatización de informes para
alumnos con necesidades educativas especiales.
3 Diseño e Implementación
Ø Alimentación
Ø Vestido
Hábitos
Ø Higiene
Ø Control de esfínteres
Ø Otros
Esta clasificación ha sido extraída a partir de una colección de informes
utilizados en el colegio “Virgen del Valle” de la localidad cordobesa de Lucena.
No reflejan el contenido exacto de ninguno de ellos, sino que se ha realizado un
compendio de características, de modo que la clasificación sea lo más flexible y
amplia posible. Otras clasificaciones son igualmente válidas, pues no existe un
modelo estándar para ellas.
Además de esta clasificación de la información, se añade un campo de texto
(“Asunto”) para dotar al apunte de un título que lo identifique en los informes.
Al pulsar el botón “Insertar” se llama a la función encargada de añadir el
apunte en la base de datos.
3.4.3 Información técnica
Como ya se comentó en el apartado 3.4.2.1, para realizar cualquier función
que se englobe en la definición de gestión básica dada en el mismo apartado, es
necesario hacer, en primer lugar, la búsqueda del alumno sobre el que se desea
realizar la acción. Esta búsqueda se puede realizar utilizando como criterio 4
parámetros: identificador del alumno, nombre, apellidos o identificador del
Autor: Antonio Martínez Martínez
131
SELWA: Sistema de gestión, seguimiento y automatización de informes para
alumnos con necesidades educativas especiales.
3 Diseño e Implementación
profesor asociado. Al pulsar “Buscar”, se realiza la llamada a “res_fich.php”,
donde se realizan las siguientes acciones:
Ø Recepción de variables y selección de permisos según perfil
Mediante el requerimiento del archivo “vars_busca_al.php” se
reciben las variables enviadas desde el formulario de búsqueda.
Asimismo, en función del perfil del usuario que haya realizado la
búsqueda (administrador, profesor o consultor) se establecen los
permisos que tiene a la hora de mostrarle unos resultados u otros, es
decir, habrá que realizar una consulta a la base de datos para obtener, a
partir del identificador del usuario, qué alumnos son a los que tiene
acceso. En el caso del administrador el criterio es el menos selectivo de
todos, pues tiene acceso a la información de todos los alumnos.
Ø Extracción de datos
Una vez almacenado el criterio de búsqueda (limitado por el tipo de
usuario que lo solicitó) en la variable “$criterio”, se procede al recuento
del número de coincidencias encontradas, con objeto de establecer el
número de páginas que será necesario crear, dado el parámetro de
máximo número de resultados a mostrar por página.
En este momento ya es posible realizar la consulta definitiva,
insertando en la sentencia MySQL de búsqueda tanto el criterio obtenido
en el primer punto como los límites de la búsqueda, así como el orden en
el que serán mostrados (por defecto se muestran en orden ascendente en
función del identificador de alumno). Con los datos obtenidos se genera
la tabla de contenidos mediante un bucle “while”.
Autor: Antonio Martínez Martínez
132
SELWA: Sistema de gestión, seguimiento y automatización de informes para
alumnos con necesidades educativas especiales.
3 Diseño e Implementación
Ø Paginación
Se establece un máximo de 5 resultados por página, siendo posible,
desde un menú situado en la parte inferior de la tabla de resultados,
acceder a las páginas anterior, siguiente, inicial, final o a cualquiera
intermedia. Al pulsar sobre cualquiera de estos links, se redirige al
navegador a la misma página “res_fich.php”, enviando como parámetros
la página a la que se desea acceder, el orden establecido, el sentido
(ascendente
o
descendente)
y
el
criterio
que
se
utilizó.
Ø Ordenación
Es posible, como ya se comentó en el punto 3.4.2.1, cambiar el orden
en el que son mostrados los resultados. Al pulsar sobre el título de la
columna (o la flecha que lo acompaña) se realiza la recarga de la página,
enviando como parámetros el número de página en el que se está, el
orden en el que se van a mostrar los resultados (que será el de la columna
sobre la que se pulse), el criterio usado para la búsqueda, el patrón
introducido por el usuario y la variable que indica si los resultados se
están mostrando en sentido ascendente o descendente.
Una vez seleccionado el alumno (mediante la pulsación sobre el botón de
radio correspondiente), hay que decidir qué acción se desea realizar (las
posibilidades variarán, obviamente, en función del perfil del usuario que lo
solicite). A continuación se muestra la información técnica reseñable de cada
una de las acciones que, como ya se comentó en el apartado “Gestión básica”,
son: “Modificar”, “Ver” y “Eliminar”.
Autor: Antonio Martínez Martínez
133
SELWA: Sistema de gestión, seguimiento y automatización de informes para
alumnos con necesidades educativas especiales.
3 Diseño e Implementación
v Modificar
El primer paso será obtener, a partir del identificador, los datos del alumno
seleccionado. Esto se realiza mediante la llamada a “find_al.php”, archivo que
se encarga de asignar a variables todos los datos que de ese alumno se tengan en
la base de datos. A partir de aquí se genera la misma estructura que para
“crea_ficha.php”, rellenando los cuadros de información con los datos
almacenados en las variables anteriormente mencionadas.
La pestaña que requiere un mayor detenimiento en su estudio es “N.C.C.”.
Aquí, para la adición de nuevos objetivos que pasen a formar parte del N.C.C.
del alumno, se utiliza el archivo “add_obj.php”. En él se distinguen 2 partes: por
un lado, el listado de las competencias que se tienen registradas en la tabla
“quest_ncc” de la base de datos. Por otro, el código que genera la nueva entrada
en la tabla de objetivos. Este código (JavaScript) es llamado al pulsar el botón
“Aceptar” de la ventana que contiene el listado de competencias. Será necesario
crear nuevos elementos “tr”, “td”, “span” e “input” para añadir a la estructura
que forma el listado de los objetivos del alumno. El código en cuestión puede
verse en el capítulo de códigos, apartado 6.2.4 (“JavaScript”), con el título
“add_obj.php”.
En el caso de que lo que se quiera modificar sea la programación de un
objetivo concreto, el archivo que interviene es “progr_obj.php”. En función de
una variable (“mod”), se mostrará la información en modo editable o de sólo
lectura. En el caso de sólo lectura, en la parte inferior de la ventana no existe el
botón “Guardar”, que para el caso editable permite actualizar la información del
objetivo. Para ello, se envía el formulario con los datos de los diferentes campos
de texto (además del número de objetivo que se está actualizando y el
identificador del alumno) a un archivo “res_prog_obj2.php”, que será el
encargado de realizar la actualización de la tabla “prof_obj”. En caso de éxito, se
muestra en la parte superior de la ventana origen (en la que se pulsó sobre el
objetivo) un mensaje informando de la correcta actualización. Por el contrario,
Autor: Antonio Martínez Martínez
134
SELWA: Sistema de gestión, seguimiento y automatización de informes para
alumnos con necesidades educativas especiales.
3 Diseño e Implementación
si hubiese cualquier problema y no se pudiese completar la actualización se
indicaría en el mismo sitio la incidencia. Ambos mensajes son generados
mediante una función JavaScript llamada “FX_falloff”, que realiza un efecto de
desvanecimiento progresivo del mensaje pasándole como parámetros el
identificador del elemento sobre el que se quiere realizar el efecto y el tiempo
que se desea dure el desvanecimiento.
El último punto a reseñar en la modificación de datos de la pestaña “N.C.C.”
es la actualización de objetivos. En el momento en que el usuario añade un
objetivo o modifica la situación de uno ya existente (pasa de estar no cumplido a
estarlo) no se refleja la variación en la base de datos. Es necesario pulsar el
botón “Actualizar Objetivos” para hacer efectivo el cambio. Esta pulsación
provoca la llamada a “act_obj.php”. Este archivo es el que contiene las órdenes
de actualización de la base de datos donde, entre otras acciones, realiza
comprobaciones de no duplicación de objetivos. A partir de la recepción de las
variables que contienen el identificador del profesor, del alumno y del objetivo a
actualizar se realiza la actualización, que provoca variaciones en las tablas
“prof_obj” y “res_ncc”, encargadas de almacenar la información de los objetivos
actuales y del estado de los mismos, respectivamente.
Una vez realizadas todas las modificaciones oportunas en las distintas
pestañas, sólo resta pulsar el botón “Actualizar Datos”, situado en la pestaña
“Diagnóstico”. Esta acción provoca la llamada a “actualiza.php”, donde se
desencadenan las mismas operaciones que a la hora de crear una ficha,
sustituyendo la llamada al método “insert” por la llamada a “update”.
Nuevamente, si todo transcurrió con éxito, se redirige el navegador a una página
de información donde se indica que todo se ejecutó correctamente o, por el
contrario, se muestra un mensaje que refleja cuál fue la causa del posible error.
Autor: Antonio Martínez Martínez
135
SELWA: Sistema de gestión, seguimiento y automatización de informes para
alumnos con necesidades educativas especiales.
3 Diseño e Implementación
v Ver
En el caso de pulsar el botón “Ver” desde la ventana de resultados de
búsqueda, las posibilidades son mucho más reducidas que en el caso anterior. El
archivo llamado es “ficha.php”, donde se muestra la estructura de
“crea_ficha.php” con la adición de la pestaña “Hoy”. La información que
contienen las pestañas es extraída de las tablas “al_info_pers”, “al_info_fam”,
“al_cons”, “al_diag”, “al_prof”, “ev_ini” y “res_ncc” mediante el requerimiento
de “find_al.php”, al igual que en la opción “Modificar”, con la salvedad de que la
información no es editable (los campos de texto tienen la propiedad “readonly”
activada, y los menús desplegables han pasado a ser elementos “input” de sólo
lectura).
Lo realmente interesante de esta parte es la inserción de la información
diaria. Al igual que sucedía en la pestaña “Diagnóstico” con el comportamiento
de los menús “Tipología”, “Patología” y “Nivel”, en los que la selección en el
primero de ellos influía en la información mostrada por el segundo y, a su vez,
una variación en la selección del segundo, modificaba el contenido del tercero,
aquí sucede algo similar con los menús “Área” y “Subárea”. El mecanismo
JavaScript que realiza esta actualización es similar al ya explicado en el
apartado 3.3.3.4, y por lo tanto no se volverá a repetir. Sí indicar que al pulsar el
botón “Insertar”, situado en la parte inferior derecha de la pestaña “Hoy”, se
invoca al archivo “inserta_hoy.php” donde, tras recibir las variables enviadas
gracias a “recibe_vars_hoy.php”, se realiza la inserción de la información en la
tabla “info_diaria”, registrándose, además de la información visible, el
identificador del alumno, el del profesor y la fecha de inserción.
v Eliminar
La única variable que necesita recibir el archivo “del_ficha.php” para poder
eliminar correctamente la ficha de un alumno es la que contiene el identificador
de dicho alumno. Gracias a ella, y a que este identificador está presente en todas
Autor: Antonio Martínez Martínez
136
SELWA: Sistema de gestión, seguimiento y automatización de informes para
alumnos con necesidades educativas especiales.
3 Diseño e Implementación
las tablas que contienen algún tipo de información del alumno, se va eliminando
cualquier registro cuyo identificador de alumno asociado coincida. Las tablas de
las que es necesario realizar la eliminación de información son las mismas que
es necesario leer para mostrarla, ya nombradas en el punto anterior, además de
la tabla “info_diaria”, que contiene los registros realizados por el profesor
acerca del desarrollo del alumno, y la tabla “prof_obj”, donde el profesor refleja
la programación individual de los objetivos.
Autor: Antonio Martínez Martínez
137
SELWA: Sistema de gestión, seguimiento y automatización de informes para
alumnos con necesidades educativas especiales.
3 Diseño e Implementación
3.5 Informes
3.5.1 Introducción
Como ya se avanzó en el apartado “Motivación y Objetivos” del presente
documento, uno de los objetivos principales de esta aplicación es permitir a los
padres de niños con necesidades educativas especiales un seguimiento continuo
y pormenorizado de la actividad de su hijo en el centro. Para ello, se ha
desarrollado un sistema de automatización de informes, posible gracias a la
clasificación hecha a la hora de catalogar la actividad cotidiana del alumno. De
esta forma, todos los actores que toman parte en su vida escolar (profesor,
especialistas y padres/tutores) comparten la misma información, teniendo
acceso a ella en cualquier momento siempre que se disponga de una conexión a
Internet.
3.5.2 Funcionamiento básico
Un informe es generado a partir de la selección de 3 componentes:
●
El alumno del que se quiere extraer el informe.
●
El período a tener en cuenta.
●
Los campos de los que desea obtener información.
Una vez realizada la búsqueda del alumno en cuestión (mecanismo ya visto en
apartados anteriores), la ventana que aparece tiene el aspecto mostrado en la
figura 3.5.2.1:
Autor: Antonio Martínez Martínez
138
SELWA: Sistema de gestión, seguimiento y automatización de informes para
alumnos con necesidades educativas especiales.
3 Diseño e Implementación
Figura 3.5.2.1
Tras elegir el período del que se desea obtener un resumen, el usuario marca
las casillas de las áreas y/o subáreas de las que desea extraer información en
dicho
período.
Pulsando
sobre
las
áreas,
automáticamente
quedan
seleccionadas todas las subáreas correspondientes, evitando tener que ir
marcando una a una si se desea toda la información relativa a un área.
Una vez más, se ha dotado al sistema de un cuadro de texto en el que reflejar
cualquier incidencia que se considere oportuna y que no permita ser añadida
mediante la selección de las casillas correspondientes. En este caso, el cuadro
“Anotación Personal” (Figura 3.5.2.2) permite al usuario realizar una anotación
para indicar, por ejemplo, el motivo por el cual se extrae el informe, o para
explicar cualquier apunte de los reflejados en la base de datos y que pueda no
quedar claro del todo.
Autor: Antonio Martínez Martínez
139
SELWA: Sistema de gestión, seguimiento y automatización de informes para
alumnos con necesidades educativas especiales.
3 Diseño e Implementación
Figura 3.5.2.2
Detalle del recuadro donde se reflejan las anotaciones personales del usuario en el informe
Tras la selección de los campos correspondientes, simplemente resta pulsar el
botón “Crear Informe”. Aparecerá una ventana de confirmación, y tras aceptar
se genera el informe.
El formato en el que se crean los informes es PDF. Se ha escogido este tipo de
archivo fundamentalmente por 2 motivos:
●
Compatibilidad.
●
Potente librería PHP para gestión de documentos PDF.
El primer punto hace referencia a la compatibilidad que ofrece el formato
PDF en distintas máquinas y en distintos sistemas operativos, a diferencia de
otros formatos que también hubiesen sido válidos (como, por ejemplo, archivos
.doc de Microsoft Word o .odt de Open Office).
El segundo punto también fue determinante en la elección de PDF como
formato. El lenguaje PHP ofrece una completísima librería de funciones para el
manejo de archivos PDF, otorgando al usuario el poder de realizar un
maquetado con un amplísimo abanico de posibilidades, tantas como nos pueda
ofrecer cualquier editor de textos: justificaciones, fuente de letra, tamaño,
negrita, subrayado, rellenado de color, inserción de tablas, imágenes, etc. Dado
el carácter docente de estos informes, se ha optado por un estilo sobrio, sencillo
Autor: Antonio Martínez Martínez
140
SELWA: Sistema de gestión, seguimiento y automatización de informes para
alumnos con necesidades educativas especiales.
3 Diseño e Implementación
y claro, sin grandes alardes de colores, efectos o imágenes.
La estructura de un informe cualquiera siempre va a ser de la forma:
 Datos del alumno
Ø
Nombre y apellidos
Ø
Profesor asociado
Ø
Especialistas asociados
Ø
Tipología, patología y nivel
 Período de evaluación
 Información
Ø
Área
Ø
Subárea
Ø
Asunto
Ø
Fecha
Ø
Comentario
Si en un área concreta se ha solicitado información de varias subáreas, la
información aparecerá anidada de forma jerárquica dentro del área en cuestión.
Lo mismo ocurrirá para distintos apuntes de una misma subárea, es decir, la
estructura será de la forma:
Autor: Antonio Martínez Martínez
141
SELWA: Sistema de gestión, seguimiento y automatización de informes para
alumnos con necesidades educativas especiales.
3 Diseño e Implementación
Área1
Subárea1
Asunto1
Fecha1
Comentario1
Asunto2
Fecha2
Comentario2
Subárea2
Asunto3
Fecha3
Comentario3
Subárea3
Asunto4
Fecha4
Comentario4
Área2
Subárea4
Asunto5
Fecha5
Comentario5
.
.
.
Es importante reseñar que cada apunte aparece con la fecha en la que se
realizó, de forma que la información sea lo más completa posible.
Por último, decir que la anotación personal siempre aparece al final del
informe, de modo que pueda servir para matizar cualquier aspecto, o añadir
alguna información que sea considerada de relevancia por el usuario que realiza
el informe.
Autor: Antonio Martínez Martínez
142
SELWA: Sistema de gestión, seguimiento y automatización de informes para
alumnos con necesidades educativas especiales.
3 Diseño e Implementación
3.5.3 Informes personalizados
De los 2 tipos de informes propuestos en el sistema SELWA, se ha optado por
la implementación de los personalizados. El motivo es que estos informes
proporcionan al usuario que lo genera la posibilidad de elegir los campos que
desea que aparezcan en dicho informe. Para ello, y como se muestra en la figura
3.5.2.1, basta con marcar las casillas correspondientes a las áreas y subáreas
que se desean ver. El procedimiento ya está explicado en el apartado anterior,
de modo que no se entrará de nuevo en ello.
Otro de los motivos por los que se ha optado por la implementación de
informes a medida, es la diferente perspectiva que tienen distintos usuarios de
un mismo alumno. La información que un padre desee obtener de la actividad
de su hijo en el centro puede no ser la misma (y de hecho casi seguro que no lo
será) que la que desee ver un especialista. Por esto, no se quería limitar al
sistema en este aspecto, es decir, que sólo hubiese un tipo de informe y que
fuese el que todo usuario pudiese obtener.
Por otro lado, sí que es cierto que en el trabajo diario (semanal o mensual),
los profesores o especialistas suelan trabajar con el mismo tipo de informe. Para
que el sistema de informes personalizados no resultase incómodo, se propone
un segundo tipo de informe, detallado en el apartado siguiente.
3.5.4 Informes predefinidos
El modelo de informes predefinidos (no implementado en SELWA, pero sí
propuesto como línea futura) resulta muy conveniente en centros donde
periódicamente se solicite una información que contenga unos campos
concretos e invariables. En los centros de educación también se produce este
hecho. Con cierta frecuencia, los profesores deben emitir unos informes,
reflejando distintos aspectos (normalmente siempre los mismos), útiles para las
Autor: Antonio Martínez Martínez
143
SELWA: Sistema de gestión, seguimiento y automatización de informes para
alumnos con necesidades educativas especiales.
3 Diseño e Implementación
distintas personas a quienes puedan ir dirigidos.
El modelo de informes personalizados es más completo y versátil que el
predefinido, pero puede llegar a resultar tedioso tener que seleccionar siempre
los mismos campos para obtener unos informes que siempre tienen la misma
estructura. Es por esto por lo que se plantea el uso de informes predefinidos, en
los cuales el usuario simplemente selecciona qué modelo de informe predefinido
desea obtener (cada modelo tendrá asociados unos contenidos), y el período de
tiempo a considerar. Con estos datos, el sistema generaría automáticamente el
informe según la definición del modelo.
Autor: Antonio Martínez Martínez
144
SELWA: Sistema de gestión, seguimiento y automatización de informes para
alumnos con necesidades educativas especiales.
4 Líneas futuras
4 Líneas futuras
En los siguientes apartados se muestran algunas de las soluciones propuestas
para hacer más completo al sistema SELWA. En algunos casos se trata de
cambios no sustanciales en el funcionamiento de la herramienta, mientras que
en otros sí que son soluciones que mejorarían considerablemente la aplicación.
4.1 Módulo de gestión personal
Dentro del menú principal para el perfil “profesor”, se propone la adición de
este módulo. La idea principal es que en este apartado de la aplicación los
profesores tengan recogidas las herramientas que les permiten la comunicación
con los distintos usuarios con los que interactúan, es decir, padres/tutores,
especialistas, otros profesores, administración, etc., así como una agenda
automatizada que facilite al profesor recordatorios de citas programadas como,
por ejemplo, reuniones, claustros, entrega de notas, etc.
Las
ampliaciones
propuestas
dentro
de
este
bloque
no
resultan
fundamentales para el correcto funcionamiento de la aplicación, pero sí le
añaden algunos servicios muy interesantes. A continuación se detallan las
mejoras propuestas en esta área.
4.1.1 Agenda
Se propone la implementación de 2 tipos de agenda independientes entre sí.
Por un lado la agenda general o común, accesible para todos los usuarios de
SELWA en modo lectura. Consistiría en una agenda controlada por el
administrador, donde se publicarían las citas de interés a nivel de centro. En
esta agenda estarían incluidas citas tales como recordatorios de reunión con
dirección, claustros, entrega de notas y/o informes, etc., en definitiva, cualquier
Autor: Antonio Martínez Martínez
145
SELWA: Sistema de gestión, seguimiento y automatización de informes para
alumnos con necesidades educativas especiales.
4 Líneas futuras
tema que ataña al colectivo de usuarios de la aplicación.
Por otro lado, se propone la creación de una agenda personalizada para cada
profesor, con objeto de que en todo momento se tengan presentes las citas con
otros usuarios o fechas de entrega de informes o notas. En este caso, el profesor
registraría apuntes en su agenda particular, clasificando dichos apuntes por
temáticas (reunión, cita con padres, entrega informes, cita con especialista,
etc.). La agenda dispondría de un mecanismo que realizase recordatorios al
profesor de las citas del día actual, así como de las del día siguiente, indicándole
también a qué categoría pertenecen esas citas.
La apariencia de ambos tipos de agenda sería similar al calendario que se
muestra durante el proceso de navegación por SELWA en el margen inferior
izquierdo, con la particularidad de poder seleccionar días independientes o
semanas, según la planificación que se quiera realizar. En el momento en que se
haga un apunte en la agenda, el día o días que abarquen esa cita aparecerían
resaltados de alguna manera.
4.1.2 Tablón de anuncios
La adición de esta utilidad está pensada para dotar a los profesores de un
sitio común, algo similar a un blog, donde poder expresar opiniones o
recordatorios en un tono distendido, siempre, por supuesto, moderado por el
administrador, pues no debe olvidarse que no deja de ser una herramienta al
servicio del trabajo diario.
Este servicio resultaría útil, fundamentalmente, en centros con gran volumen
de profesores. En este caso, el “Tablón de anuncios” podría usarse para poner
anuncios (venta o alquiler de vehículos, inmuebles, etc.), recordatorios
comunes, críticas o cualquier otro tema que pueda resultar de interés a la
comunidad de profesores.
Autor: Antonio Martínez Martínez
146
SELWA: Sistema de gestión, seguimiento y automatización de informes para
alumnos con necesidades educativas especiales.
4 Líneas futuras
4.1.3 Correo interno
La última solución propuesta dentro del módulo de gestión personal sería un
bloque en el que se registrasen los mensajes intercambiados por los distintos
usuarios del sistema. No se trata de implementar ningún tipo de servidor de
correo, sino simplemente una tabla más en la base de datos, que asocie
mensajes con usuarios, de modo que cuando un usuario ingrese en el módulo de
correo interno, se le muestre una pequeña tabla con los mensajes que otros
usuarios en su dominio (padres/tutores asociados o administrador) han enviado
mediante el formulario apropiado.
Los posibles usos de este mecanismo están orientados a poner en contacto
directo a un profesor con los consultores asociados a un alumno. Así, también
los consultores dispondrían de un módulo de gestión de correo interno en su
interfaz de la aplicación.
Como ya se comentó en el apartado 3.3.2.2 (“Modo administrador”), la
eliminación por parte del profesor de un mensaje no supone su borrado de la
base de datos, sino la copia a otra tabla en la que se registrará el mensaje
eliminado y el usuario al que pertenece. Como ya se comentó en dicho apartado,
el objeto de este funcionamiento no es otro que el de evitar la eliminación de
críticas o reclamaciones por parte de consultores a la labor docente de un
profesor. Será siempre el administrador de la aplicación el que decida si un
mensaje se elimina definitivamente de la base de datos o si, por el contrario,
debe enviar un mensaje por correo interno al profesor, solicitando alguna
explicación acerca del motivo de la eliminación.
Autor: Antonio Martínez Martínez
147
SELWA: Sistema de gestión, seguimiento y automatización de informes para
alumnos con necesidades educativas especiales.
4 Líneas futuras
4.2 Módulo de gestión de usuarios
El módulo de gestión de usuarios se encuentra parcialmente implementado,
ante la ausencia de métodos de modificación y eliminación de usuarios. A
continuación se sugieren las posibles soluciones que completarían dicho módulo
con objeto de hacerlo totalmente operativo.
4.2.1 Modificación y eliminación de fichas de
usuario
La ampliación propuesta para este módulo sí que resultaría tremendamente
útil a la aplicación. Si bien con la parte implementada es suficiente para poder
usar la herramienta con total normalidad, la adición de la posibilidad de
modificar y eliminar los datos de los usuarios haría que este módulo quedase
completamente finalizado, pues poseería las 3 características definidas en el
apartado 3.4.1.1 como “Gestión básica”: creación, modificación y eliminación.
El uso de estas funciones sería similar al descrito para la modificación y
eliminación de fichas de alumnos en el apartado 3.4.2 (“Gestión de alumnos”):
búsqueda, en primer lugar, del usuario sobre el que se va realizar la acción, y
posterior pulsación sobre la opción deseada, “Modificar” o “Eliminar”. En la
primera de las opciones, aparecería la misma pantalla que en “Creación de
usuario” (ver figura 3.3.2.2.2), con la información del usuario en modo editable.
En la segunda, simplemente se solicitaría la confirmación de la acción elegida,
“Eliminar”, para suprimir definitivamente esa ficha. Obviamente, ambas tareas
son competencia exclusiva del administrador del sistema.
Autor: Antonio Martínez Martínez
148
SELWA: Sistema de gestión, seguimiento y automatización de informes para
alumnos con necesidades educativas especiales.
4 Líneas futuras
4.3 Módulo de gestión de alumnos
Si bien el módulo de gestión de alumnos está bastante completo, siempre es
posible
añadir
alguna
funcionalidad
que
complemente
el
exhaustivo
seguimiento de los alumnos que se desea obtener con la herramienta SELWA.
Es por ello que se propone, a continuación, una pequeña ampliación a este
sistema de gestión.
4.3.1 Backup de datos de alumnos en repositorio
Como ya se comentaba en el apartado 3.4.2 (“Gestión de alumnos”), el
funcionamiento real del sistema a la hora de eliminar la ficha de un alumno es
suprimir dicha ficha definitivamente de la base de datos. Pero es cierto que, en
lugar hacer esto, sería interesante realizar un backup de los datos e historial del
alumno en una base de datos auxiliar, a modo de repositorio de consulta para
futuros accesos. De este modo, si en el futuro se presentase un caso similar al de
un alumno que fue dado de baja en el centro, y del que se conserva su historial
(patología, metodología empleada, objetivos seleccionados en la pestaña N.C.C.,
etc.), sería posible actuar de una forma más eficiente a tenor de los resultados
obtenidos con el anterior alumno.
En esta nueva base de datos, haría falta copiar los datos referentes a las
siguientes tablas del repositorio actual:
·
“al_diag”: datos del diagnóstico.
·
“al_info_fam”: datos familiares.
·
“al_info_pers”: datos personales.
·
“ev_ini”: datos de la evaluación inicial.
·
“info_diaria”: quizá la información más importante, pues son los
apuntes registrados por el profesor acerca del desarrollo académico
del alumno durante cada curso.
Autor: Antonio Martínez Martínez
149
SELWA: Sistema de gestión, seguimiento y automatización de informes para
alumnos con necesidades educativas especiales.
4 Líneas futuras
·
“prof_obj”: programación realizada por el profesor para cada
objetivo seleccionado en N.C.C.
Autor: Antonio Martínez Martínez
150
SELWA: Sistema de gestión, seguimiento y automatización de informes para
alumnos con necesidades educativas especiales.
4 Líneas futuras
4.4 Gestión de Informes
El sistema SELWA implementa un completo sistema de generación de
informes de seguimiento totalmente configurables a la medida del usuario que
lo genera. Pero como ya se comentaba en el apartado 3.5.4 (“Informes
predefinidos”), este sistema puede agilizarse en aquellos casos en los que los
informes solicitados sigan siempre el mismo esquema, de modo que sería
interesante generar unas plantillas con unos campos ya preestablecidos, de
manera que el usuario simplemente tuviese que seleccionar el tipo de informe
que quiere generar (modelo 1, modelo 2, etc.), y no detenerse en seleccionar uno
a uno los campos que desea incluir, en el caso de los personalizados. Podrían
generarse patrones en función de las áreas a considerar: cognitiva, lingüística,
motórica, etc., o bien generar modelos híbridos de uso común: matemáticolingüístico, hábito-cognitivo, etc.
De cualquier manera, es sólo una ampliación leve, no se trata de una
funcionalidad que mejorase sustancialmente la aplicación, pues el mecanismo
de informes implementado es suficientemente completo.
Autor: Antonio Martínez Martínez
151
SELWA: Sistema de gestión, seguimiento y automatización de informes para
alumnos con necesidades educativas especiales.
4 Líneas futuras
Autor: Antonio Martínez Martínez
152
SELWA: Sistema de gestión, seguimiento y automatización de informes para
alumnos con necesidades educativas especiales.
5 Conclusiones
5 Conclusiones
El objetivo fundamental del proyecto SELWA, como ya se comentó en el
primer apartado, es proporcionar una herramienta tan versátil como de fácil
manejo para sus usuarios, capaz de poner en contacto, vía web, a los distintos
actores que intervienen en la vida académica de niños con necesidades
educativas especiales, especialmente a sus padres/tutores.
Se considera cumplido dicho objetivo, pues la aplicación desarrollada
proporciona a los usuarios una interfaz agradable, de fácil manejo y con una
exhaustiva clasificación de la información, de manera que el seguimiento
realizado a cada alumno sea el más completo posible, con unos datos
compartidos por los diferentes agentes que siguen e influyen en su desarrollo
escolar.
La programación estructurada empleada, separando los códigos XHTML,
PHP, JavaScript y CSS, permite fáciles retoques y ampliaciones a la aplicación
desarrollada, como las propuestas en el apartado “Líneas futuras”.
Uno de los mayores obstáculos en el desarrollo del sistema, fue la falta de
conocimientos en casi todos los campos que abarca la programación de SELWA.
Si a esto se añade la dificultad de cumplir con las recomendaciones Web 2.0,
cobra especial importancia el período dedicado a recopilación de información
durante el primer mes y medio, así como las fuentes consultadas, tanto
bibliográficas, web, como personales. Es por esto que la elaboración de este
proyecto ha supuesto una importante recopilación de conocimientos en diversas
tecnologías de programación web, así como una puesta al día en cuanto a
tendencias futuras.
El uso de esta herramienta está orientado, como ya se ha comentado, a
alumnos con necesidades educativas especiales, pero, debido a la estructuración
Autor: Antonio Martínez Martínez
153
SELWA: Sistema de gestión, seguimiento y automatización de informes para
alumnos con necesidades educativas especiales.
5 Conclusiones
de la programación anteriormente citada, podría adecuarse fácilmente para el
seguimiento de alumnos de cualquier condición y de cualquier centro.
Simplemente sería necesario cambiar los campos donde se registra la
información de diagnóstico por aquellos campos que el centro estimase
oportunos. De igual manera, la pestaña donde se registra la actividad diaria de
los alumnos debería ser modificada, de manera que en lugar de las áreas y
subáreas que aparecen (particulares para la educación especial), apareciesen
otras que cumpliesen con las expectativas del centro que las solicitase.
Autor: Antonio Martínez Martínez
154
SELWA: Sistema de gestión, seguimiento y automatización de informes para
alumnos con necesidades educativas especiales.
6 Pliego de condiciones
6 Pliego de condiciones
En primer lugar aparecerán los diagramas que representan la base de datos,
siguiendo el modelo entidad-relación. A continuación, se adjuntan algunos de
los códigos más representativos de cada uno de los lenguajes utilizados,
comentados oportunamente.
6.1 Diagramas base de datos
A continuación se muestran los diagramas de la base de datos (“db_ee”)
utilizada en el proyecto SELWA, utilizando para su elaboración el modelo
entidad-relación para bases de datos relacionales. En primer lugar se mostrarán
los diagramas correspondientes a las entidades junto con sus atributos para,
seguidamente, mostrar las relaciones entre distintas entidades. En cada plano se
muestra un número de referencia, una descripción breve del contenido
representado y el título y autor del proyecto. Tras esto, para aquellos planos que
lo requieran, se muestran una serie de tablas donde se indican los campos y
tipos de datos de la tabla representada en el plano correspondiente. Es obvio
que existen tablas que no requieren de mayor explicación de sus campos que la
mostrada en el diagrama.
Autor: Antonio Martínez Martínez
155
SELWA: Sistema de gestión, seguimiento y automatización de informes para
alumnos con necesidades educativas especiales.
6 Pliego de condiciones
Autor: Antonio Martínez Martínez
156
SELWA: Sistema de gestión, seguimiento y automatización de informes para
alumnos con necesidades educativas especiales.
6 Pliego de condiciones
Autor: Antonio Martínez Martínez
157
SELWA: Sistema de gestión, seguimiento y automatización de informes para
alumnos con necesidades educativas especiales.
6 Pliego de condiciones
Autor: Antonio Martínez Martínez
158
SELWA: Sistema de gestión, seguimiento y automatización de informes para
alumnos con necesidades educativas especiales.
6 Pliego de condiciones
Autor: Antonio Martínez Martínez
159
SELWA: Sistema de gestión, seguimiento y automatización de informes para
alumnos con necesidades educativas especiales.
6 Pliego de condiciones
Autor: Antonio Martínez Martínez
160
SELWA: Sistema de gestión, seguimiento y automatización de informes para
alumnos con necesidades educativas especiales.
6 Pliego de condiciones
Autor: Antonio Martínez Martínez
161
SELWA: Sistema de gestión, seguimiento y automatización de informes para
alumnos con necesidades educativas especiales.
6 Pliego de condiciones
Autor: Antonio Martínez Martínez
162
SELWA: Sistema de gestión, seguimiento y automatización de informes para
alumnos con necesidades educativas especiales.
6 Pliego de condiciones
Autor: Antonio Martínez Martínez
163
SELWA: Sistema de gestión, seguimiento y automatización de informes para
alumnos con necesidades educativas especiales.
6 Pliego de condiciones
Autor: Antonio Martínez Martínez
164
SELWA: Sistema de gestión, seguimiento y automatización de informes para
alumnos con necesidades educativas especiales.
6 Pliego de condiciones
Autor: Antonio Martínez Martínez
165
SELWA: Sistema de gestión, seguimiento y automatización de informes para
alumnos con necesidades educativas especiales.
6 Pliego de condiciones
Autor: Antonio Martínez Martínez
166
SELWA: Sistema de gestión, seguimiento y automatización de informes para
alumnos con necesidades educativas especiales.
6 Pliego de condiciones
Autor: Antonio Martínez Martínez
167
SELWA: Sistema de gestión, seguimiento y automatización de informes para
alumnos con necesidades educativas especiales.
6 Pliego de condiciones
Autor: Antonio Martínez Martínez
168
SELWA: Sistema de gestión, seguimiento y automatización de informes para
alumnos con necesidades educativas especiales.
6 Pliego de condiciones
Autor: Antonio Martínez Martínez
169
SELWA: Sistema de gestión, seguimiento y automatización de informes para
alumnos con necesidades educativas especiales.
6 Pliego de condiciones
Autor: Antonio Martínez Martínez
170
SELWA: Sistema de gestión, seguimiento y automatización de informes para
alumnos con necesidades educativas especiales.
6 Pliego de condiciones
PLANO ENTIDAD1 ENTIDAD2 RELACIÓN DESCRIPCIÓN
db010
Alumno
Familia
N/1
Una entidad
“familia” puede
poseer datos de N
alumnos
db011
Alumno
Info Objetivos
M/N
Un alumno puede
poseer datos de N
objetivos, y un
objetivo puede estar
asignado a M
alumnos
db011
Alumno
Info Evaluación
Inicial
M/1
La estructura de
datos de la
información de
Evaluación Inicial es
la misma para
cualquier alumno
db011
Alumno
Info
Diagnóstico
M/1
La información de
diagnóstico
disponible es la
misma para todos
los alumnos
db011
Alumno
Info Diaria
M/N
Un alumno puede
tener distintos
apuntes en la tabla
“Info Diaria”, y esos
apuntes pueden ser
los mismos para M
alumnos
db011
Alumno
Info N.C.C.
M/N
Igual que para el
caso anterior
db012
Alumno
Profesor
N/1
Un profesor puede
tener asignado un
grupo de N
alumnos, pero un
alumno sólo estará
asignado a 1
profesor. El profesor
GESTIONA la
información del
alumno
Autor: Antonio Martínez Martínez
171
SELWA: Sistema de gestión, seguimiento y automatización de informes para
alumnos con necesidades educativas especiales.
6 Pliego de condiciones
PLANO ENTIDAD1 ENTIDAD2 RELACIÓN DESCRIPCIÓN
db012
Alumno
Consultor
M/N
Un alumno puede
tener asignados
hasta N consultores,
mientras que un
consultor puede
VER información de
hasta M alumnos
db013
Consultor
Info Objetivos
M/N
Los consultores
tienen acceso a ver
los N objetivos
asignados a un
alumno.
db013
Consultor
Info Evaluación
Inicial
M/1
Ídem al anterior,
pero la información
de Evaluación
Inicial es sólo una
db013
Consultor
Info
Diagnóstico
M/1
Ídem al anterior
db014
Profesor
Info Objetivos
1/N
Un profesor puede
crear y modificar la
información de los
N objetivos
asociados a un
alumno
db014
Profesor
Info Diaria
1/M
Igual que para el
caso anterior, pero
la Información
Diaria no es
modificable
db014
Profesor
Info Evaluación
Inicial
1/1
El profesor es el
encargado de
generar y modificar
la Información de
Evaluación Inicial
db014
Profesor
Info
Diagnóstico
1/1
Ídem al anterior
Autor: Antonio Martínez Martínez
172
SELWA: Sistema de gestión, seguimiento y automatización de informes para
alumnos con necesidades educativas especiales.
6 Pliego de condiciones
PLANO ENTIDAD1 ENTIDAD2 RELACIÓN DESCRIPCIÓN
db015
Usuarios
Control
Usuarios
Autor: Antonio Martínez Martínez
M/1
Un usuario sólo
posee una única
información en la
entidad “Control
Usuarios”
173
SELWA: Sistema de gestión, seguimiento y automatización de informes para
alumnos con necesidades educativas especiales.
6 Pliego de condiciones
6.2 Códigos reseñables
6.2.1 CSS
à hoja_gral.css
Hoja de la página principal
body {
color:#000000;
background: #fff;
font-size: 12px;
font-family: Arial, Helvetica, sans-serif;
width: 1000px;
height: 8.3in;
overflow: auto;
}
#cabecera {
position: absolute;
width: 1000px;
height: 0.55in;
top: 0;
left: 0;
background-image: url(../fotos/back_cab.jpg);
border-bottom: 1px solid black;
}
#jerarquia {
position: absolute;
width: 1000px;
height: 0.35in;
top: 0.55in;
left: 0;
background-image: url(../fotos/back_jerar.jpg);
color: #000000;
border-bottom: 1px solid #C3D9FF;
}
#lateral2 {
position: absolute;
width: 100%;
height: 3in;
top: 2in;
left: 0;
background-image: url(../fotos/back_lat2.jpg);
border-right: 1px solid #C3D9FF;
}
Autor: Antonio Martínez Martínez
174
SELWA: Sistema de gestión, seguimiento y automatización de informes para
alumnos con necesidades educativas especiales.
6 Pliego de condiciones
#lateral3 {
position: absolute;
width: 100%;
height: 2in;
top: 5in;
left: 0;
background-image: url(../fotos/back_lat3.jpg);
border-right: 1px solid #C3D9FF;
}
#pie {
position: absolute;
width: 1001px;
height: 0.4in;
top: 7.9in;
left: 0;
bottom: 0;
background-image: url(../fotos/back_pie.jpg);
border-top: 1px solid #C3D9FF;
}
#principal {
position: absolute;
width: 748px;
height: 7.02in;
top: 0.9in;
right: 0;
bottom: 0.5in;
left: 253px;
background: #bbd9ee;
color:#000000;
border-top: 1px solid #C3D9FF;
}
h2{font: 14pt sans-serif;font-weight: bolder;textalign:center;color: #00c;}
h2.clase_error,h2.clase_error2{font: 13pt sans-serif;fontweight: bolder;color: #000; text-align:left; margin-left:55px;
margin-top:30px}
div#datos{position: absolute;top: 1in;left: 0;width:
91%;height: 70%;margin-left: 50px;background:
#fff;color:#000000;}
div#d_int{position: relative;margin-left:20px; width:
95%;height: 385px;background: #c3d9ff;color:#000000;}
div#capa_texto{display:inline}
div#logout{text-align:center; margin-top: 18px}
div#foto_logo img{float: left;width: 60px; height:auto; marginleft: 20px; margin-top:5px; margin-right: 13px}
div#espli{margin-top:8px;}
div#fecha table{position: absolute; left: 750px; top: 5px;
font:Georgia, "Times New Roman", Times, serif; font-size: 14px;
color: #0C49A5}
img#foto{margin-left: 20px; margin-top:20px; marginright:7px;width:30px; height:auto}
Autor: Antonio Martínez Martínez
175
SELWA: Sistema de gestión, seguimiento y automatización de informes para
alumnos con necesidades educativas especiales.
6 Pliego de condiciones
div#capa_foto{height: 30px;float:left}
img.boton_op{border: 0;margin-right: 10px}
span.op_titulo1{font:14pt sans-serif}
div.op{margin-left: 2in; margin-top:4px}
div#barra{text-align:center; margin-bottom:20px}
ul.bot_sig,ul.bot_sig li{margin:0;padding:0;list-styletype:none; text-align:center}
ul.bot_sig a{display: block;width:7em;margin-bottom:
7px;padding:5px 0;font: bold 100% Helvetica,Arial,sansserif; background: #114DD5;color: #fff;
text-decoration:none;text-align:center}
ul.bot_sig a:hover{background: #ffa860;color:#fff}
div#boton{position: relative; width:90px;text-align:center;
margin-left:80px;}
form#form_busq{display:inline}
span.normal_text{font: 12pt sans serif;font-weight:
bolder;}
span.jerar1,span.jerar2{margin-left:5px;}
span.jerar2{color:#0033CC}
span.us{font: 12pt sans serif;font-weight: bolder; color:
#925E10;margin-left: 10px}
span.acceso{font: 12pt sans serif;font-weight: bolder;
color: #925E10;margin-left: 10px}
span.esp1{font:Georgia, "Times New Roman", Times, serif;
font-size:14px; font-weight:bold;color:#6D6DF8 }
span#tit_pie{position: absolute; top: 5px; margin-left:
250px; margin-top: 10px; font:Georgia, "Times New Roman",
Times, serif; font-size:10px; fontweight:bold;color:#6D6DF8 }
div#logoamm img{width: 30px; height:auto;
position:absolute; left: 765px; top: 5px}
a#cont{position: absolute; top: 5px; margin-left: 850px;
margin-top: 10px; font:Georgia, "Times New Roman", Times,
serif; font-size:10px; font-weight:bold;color:#6D6DF8 }
Autor: Antonio Martínez Martínez
176
SELWA: Sistema de gestión, seguimiento y automatización de informes para
alumnos con necesidades educativas especiales.
6 Pliego de condiciones
à hoja_index.css
Hoja de la página donde se crean las fichas de alumno. No se muestra la
parte que da formato a las capas que forman la estructura general de la página
(cabecera, jerarquía, pie, principal, etc.). Las hojas CSS que proporcionan el
estilo a las ventanas de “Ver ficha” o “Modificar ficha” son muy similares a esta.
/*CONFIGURACION DE LAS PESTAÑAS*/
div#pest{float: left;width: 100%;paddingtop:20px;background: #bbd9ee;color:#000000;}
ul#nav,ul#nav li{list-style-type:none;margintop:15px;padding:0;z-index:1;}
ul#nav{margin-left: 60px;width:100%}
ul#nav li{float:left;margin-right: 1px;text-align: center;}
ul#nav a{float:left;margin-top: 4px;width: 7em;height:
4em;padding: 5px 0;background: #E7F1F8;textdecoration:none;color: #333;font-size: 14px;}
ul#nav a:hover{background: #ffa860;color: #fff;font-weight:
bold;}
ul#nav li.activelink a,ul#nav li.activelink
a:hover{background: #fff;color: #003;font-weight: bold;}
/*CONFIGURACION DE LA CAPA GRANDE DONDE SE MUESTRA EL
CONTENIDO DE LAS PESTAÑAS*/
div#datos1{position: absolute;top: 1in;left: 0;width:
91%;height: 73%;margin-left: 50px;background:
#fff;color:#000000;}
div#datos2{position: absolute;top: 1in;left: 0;width:
91%;height: 80%;margin-left: 50px;background:
#fff;color:#000000;overflow: auto;}
div#datos3{position: absolute;top: 1in;left: 0;width:
91%;height: 80%;margin-left: 50px;background:
#fff;color:#000000;overflow: auto;}
div#datos4{position: absolute;top: 1in;left: 0;width:
91%;height: 80%;margin-left: 50px;background:
#fff;color:#000000;overflow: auto;}
div#datos5{position: absolute;top: 1in;left: 0;width:
91%;height: 80%;margin-left: 50px;background:
#fff;color:#000000;overflow: auto;}
.oculto{/*position: relative; top: 1in;left:
1.05in;*/visibility: hidden}
.visible{/*position: relative; top: 1in;left:
1.05in;*/visibility: visible}
Autor: Antonio Martínez Martínez
177
SELWA: Sistema de gestión, seguimiento y automatización de informes para
alumnos con necesidades educativas especiales.
6 Pliego de condiciones
/*CONFIGURACION DE LAS DISTINTAS CAPAS DE LAS DISTINTAS
PESTAÑAS*/
div#d_pers{position: relative;/*top: 0.5in;left:
0.2in;*/margin-left:20px;width: 94%;height:
405px;background: #c3d9ff;color:#000000;}
div#d_fam{position: relative;/*top: 0.5in;left:
0.2in;*/margin-left:20px;width: 93%;height:
auto;background: #c3d9ff;color:#000000;}
div#ncc1{position: relative;/*top: 0.5in;left:
0.2in;*/margin-left:20px;width: 93%;height:auto;background:
#c3d9ff;color:#000000;}
div#ev_ini{position: relative;/*top: 0.5in;left:
0.2in;*/margin-left:20px;width: 93%;height:auto;background:
#c3d9ff;color:#000000;}
div#diagn{position: relative; /*top: 0.5in;left:
0.2in;*/margin-left:20px;width: 93%;height:auto;background:
#c3d9ff;color:#000000;}
div#inicio_ncc,div#ncc2,div#ncc3,div#ncc4,div#ncc5{position
: relative;/*top: 0.5in;left: 0.2in;*/marginleft:20px;width: 94%;height: 435px;background:
#c3d9ff;color:#000000;}
/*CONFIGURACION DE LA CAPA DE LA FOTO*/
div#col_foto{position: absolute;margin-left: 20px;top:
5px;left: 0;width: 18%;height: 50%;margin-top: 10px;}
img.foto{width: 100px; height: auto;border: 1px solid
#5555ff;}
/*CONFIGURACION DE LA CAPA DE LOS DATOS PERSONALES*/
div#col_datos{position: absolute;left: 125px;top: 0;marginleft: 20px;width: 70%; height: auto; margin-top:
15px;background: #c3d9ff;color:#000000;}
div#col_datos_fam{position: relative; top: 10px; marginleft: 20px;width: 93%}
/*CONFIGURACION ENUNCIADOS NCC*/
table#t_ncc{border-collapse: collapse;margin-bottom: 20px;}
td.area span{margin-left: 5px}
td.subarea span{margin-left: 10px}
td.enun span{margin-left: 15px}
span#marcas1{margin-left: 1.5em;}
span#marcas2{margin-left: 0.5em;}
span#marcas3{margin-left: 0.4em;}
span#marcas4{margin-left: 0.2em;}
Autor: Antonio Martínez Martínez
178
SELWA: Sistema de gestión, seguimiento y automatización de informes para
alumnos con necesidades educativas especiales.
6 Pliego de condiciones
span#marca1{margin-left: 1.2em;}
span#marca2{margin-left: 0.1em;}
span#marca3{margin-left: 0.1em;}
span#marca4{margin-left: 0.1em;}
td.area, span.area{font-size: 14pt;font-weight:
bold;background: #fff;background-image:
url(/fotos/backtable.jpg);color: #003366;width: 75%}
span.subarea,span.area{margin-left: 7px}
td.subarea, span.subarea{font-size: 12pt;background:
#8fbaf8;color: #003333;width: 75%}
td.enun{width: 75%}
td.marcas{width: 25%}
td.marca{width:25%}
tr.par{background: #bfd8fb;color:#000000;}
tr.impar{background: #dfecfd;color:#000000;}
td.barra{background: white;color: #fff}
td.hid{background: none;visibility: hidden}
/*CONFIGURACION 4ª PESTAÑA*/
.sangrado{margin-left: 1in}
/*OTRAS CAPAS*/
/*div#cons_tut{display: inline}*/
div#contenedor{display: inline}
div#ayuda_estatica{
border: solid #ff77a0 1px;
width: 200px;
height: auto;
z-index: 99;
display:none;
position:absolute;
left:0px;
top:0px;
background-color: #f8dccb;
color: #000000;
padding: 5px;
}
div#capa_help{background: #F8F7A0;color:#000000;border:
solid #ff77a0 1px;text-align: center;}
.no_muestra{display:none}
.muestra{display:block}
div.capa_ncc{position:relative; text-align:center;margintop: 10px;margin-bottom: 10px;margin-right: 7px}
Autor: Antonio Martínez Martínez
179
SELWA: Sistema de gestión, seguimiento y automatización de informes para
alumnos con necesidades educativas especiales.
6 Pliego de condiciones
/*OTRAS CONFIGURACIONES*/
span{font-weight: bold}
p span{margin-left: 2px}
span.d{margin-left: 12px}
span input{margin-left: 4px;margin-right: 6px}
h2.titulo1{font: 14pt sans-serif;font-weight: bolder;textalign: center;color: #00c;background: #fff;}
h2.titulo2{font: 14pt sans-serif;;font-weight: bolder;textalign: left;margin-left: 6px;color: #003399;background:
#c3d9ff;}
span input.texto:focus{border: 1px solid #5555ff
/*#cc9966*/}
/*span select:focus{border: 2px solid #cc9966}*/
textarea.texto_g{margin-left: 12px;background:
#dfecfd;color:#000000;}
img.ayuda, img.busca{width: 25px;height: auto;}
img.ayuda:hover{cursor: help}
img.busca{border: 0}
img.boton_ncc{border: 0;margin-right: 25px}
select#espe{margin-left: 12px}
span.load_ayuda{margin-left: 6px;}
input.espec{margin-left: 12px}
a#nivel1{position:absolute;left: 180px;top: 63px;}
a#nivel1_boton{position:absolute;left: 150px;top: 62px;}
a#nivel2{position:absolute;left: 180px;top: 103px;}
a#nivel2_boton{position:absolute;left: 150px;top: 102px;}
a#nivel3{position:absolute;left: 180px;top: 143px;}
a#nivel3_boton{position:absolute;left: 150px;top: 142px;}
a#nivel4{position:absolute;left: 180px;top: 183px;}
a#nivel4_boton{position:absolute;left: 150px;top: 182px;}
a#nivel5{position:absolute;left: 180px;top: 223px;}
a#nivel5_boton{position:absolute;left: 150px;top: 222px;}
span.titulo_ncc{font: 14pt sans-serif;font-weight: bolder;
text-decoration:underline; text-align:center}
span.ncc_titulo1{font:14pt sans-serif}
img#volver1{position:absolute; left: 410px; border: 0;}
img#volver2{position:absolute; left: 420px; border: 0;}
img#volver3{position:absolute; left: 423px; border: 0;}
img#volver4{position:absolute; left: 432px; border: 0;}
img#volver5{position:absolute; left: 418px; border: 0;}
span.jerar1,span.jerar2{margin-left:5px; }
span.jerar2{color:#0033CC}
div#logout{text-align:center; margin-top: 18px}
span.us{font: 12pt sans serif;font-weight: bolder; color:
#925E10;margin-left: 10px}
span.acceso{font: 12pt sans serif;font-weight: bolder;
color: #925E10;margin-left: 10px}
/*CONFIGURACION BOTONES SIGUIENTE*/
ul.bot_sig,ul.bot_sig li{margin:0;padding:0;list-styletype:none}
ul.bot_sig#uno li{position: relative;/*top: 365px;left:
530px;*/margin-top: 25px;margin-left:545px;width: 6em;fontsize:12pt}
Autor: Antonio Martínez Martínez
180
SELWA: Sistema de gestión, seguimiento y automatización de informes para
alumnos con necesidades educativas especiales.
6 Pliego de condiciones
ul.bot_sig#dos li{position: relative;/*top: 970px; left:
525px;*/margin-top: 10px;margin-left:525px;width: 6em;fontsize:12pt}
ul.bot_sig#tres li{position: relative;/*top: 2350px; left:
520px;*/margin-top: 10px;margin-left:520px;width: 6em;fontsize:12pt}
ul.bot_sig#cuatro li{position: relative;/*top: 1475px;
left: 520px;*/margin-top: 10px;margin-left:520px;width:
6em;font-size:12pt}
ul.bot_sig#cinco li{position: relative;/*top: 520px;left:
520px;*/margin-top: 10px;margin-left:520px;width: 6em;fontsize:12pt}
ul.bot_sig a{display: block;width:7em;margin-bottom:
7px;padding:5px 0;font: bold 100% Helvetica,Arial,sansserif;
background: #cce1ff;color: #000;
text-decoration:none;text-align:center}
ul.bot_sig a:hover{background: #ffa860;color:#fff}
div#foto_logo img{float: left;width: 20px; height:auto;
margin-left: 20px; margin-top:5px; margin-right: 13px}
div#espli{margin-top:8px;}
div#fecha table{position: absolute; left: 750px; top: 5px;
font:Georgia, "Times New Roman", Times, serif; font-size:
14px; color: #0C49A5}
span.esp1{font:Georgia, "Times New Roman", Times, serif;
font-size:14px; font-weight:bold;color:#6D6DF8 }
span#tit_pie{position: absolute; top: 5px; margin-left:
250px; margin-top: 10px; font:Georgia, "Times New Roman",
Times, serif; font-size:10px; fontweight:bold;color:#6D6DF8 }
div#logoamm img{width: 30px; height:auto;
position:absolute; left: 765px; top: 5px}
a#cont{position: absolute; top: 5px; margin-left: 850px;
margin-top: 10px; font:Georgia, "Times New Roman", Times,
serif; font-size:10px; font-weight:bold;color:#6D6DF8 }
Autor: Antonio Martínez Martínez
181
SELWA: Sistema de gestión, seguimiento y automatización de informes para
alumnos con necesidades educativas especiales.
6 Pliego de condiciones
à hoja_res_busq.css
Esta hoja da formato a la página que muestra los resultados de búsqueda
de alumnos.
a.p:link {
color: #0066FF;
text-decoration:
}
a.p:visited {
color: #0066FF;
text-decoration:
}
a.p:active {
color: #0066FF;
text-decoration:
}
a.p:hover {
color: #0066FF;
text-decoration:
}
a.ord:link {
color: #000000;
text-decoration:
}
a.ord:visited {
color: #000000;
text-decoration:
}
a.ord:active {
color: #000000;
text-decoration:
}
a.ord:hover {
color: #000000;
text-decoration:
}
none;
none;
none;
underline;
none;
none;
none;
underline;
h2{font: 14pt sans-serif;font-weight: bolder;textalign:center;color: #00c;}
h2.clase_error{font: 13pt sans-serif;font-weight:
bolder;color: #000; margin-top:30px; text-align:left;
margin-left:55px}
div#datos{position: absolute;top: 1in;left: 0;width:
91%;height: 80%;margin-left: 50px;background:
#fff;color:#000000;}
div#d_int{position: relative;margin-left:20px; width:
95%;height: 410px;background: #c3d9ff;color:#000000;}
div#capa_texto{display:inline}
img#foto{margin-left: 20px; margin-right:7px;width:30px;
height:auto}
div#capa_foto{height: 30px;float:left;}
img{border: 0}
img.boton_op{margin-right: 10px}
img.orden_foto{border: 0;vertical-align:bottom}
Autor: Antonio Martínez Martínez
182
SELWA: Sistema de gestión, seguimiento y automatización de informes para
alumnos con necesidades educativas especiales.
6 Pliego de condiciones
span.op_titulo1{font:14pt sans-serif}
div.op{margin-left: 2in; margin-top:4px}
div#barra{text-align:center; margin-bottom:20px}
ul.bot_sig,ul.bot_sig li{margin:0;padding:0;list-styletype:none; text-align:center}
ul.bot_sig a{display: block;width:7em;margin-bottom:
7px;padding:5px 0;font: bold 100% Helvetica,Arial,sansserif;
background: #cce1ff;color: #000;
text-decoration:none;text-align:center}
ul.bot_sig a:hover{background: #ffa860;color:#fff}
ul#boton_subm{position: relative; margin-left:100px;
margin-top:15px}
form#form_busq{display:inline}
span.normal_text{font: 12pt sans serif;font-weight:
bolder;}
div#tabla_res{ position:relative;margintop:8px;height:auto;}
/*div#boton{position: relative; width:80px; marginleft:470px;}*/
span.jerar1,span.jerar2{margin-left:5px;}
span.jerar2{color:#0033CC}
div#logout{text-align:center; margin-top: 18px}
span.us{font: 12pt sans serif;font-weight: bolder; color:
#925E10;margin-left: 10px}
span.acceso{font: 12pt sans serif;font-weight: bolder;
color: #925E10;margin-left: 10px}
ul.bot_tres{margin:0;padding:0;list-style-type:none;
margin-left:80px}
ul.bot_tres li{margin:0;padding:0;list-styletype:none;float:left;width: 4em;font-size:12pt;marginright: 5px;margin-top: 5px}
ul.bot_tres li#uno{margin-left: 90px;}
ul.bot_tres li#dos{margin-left: 50px;}
ul.bot_tres li#tres{margin-left: 50px;}
ul.bot_tres li#cuatro{margin-left: 200px;}
ul.bot_tres li#ver_cons{margin-left: 200px}
ul.bot_tres a{display: block;width:7em;margin-bottom:
7px;padding:5px 0;font: bold 100% Helvetica,Arial,sansserif;
background: #cce1ff;color: #000;
text-decoration:none;text-align:center}
ul.bot_tres a:hover{background: #ffa860;color:#fff}
div#foto_logo img{float: left;width: 100px; height:auto;
margin-left: 20px; margin-top:5px; margin-right: 13px}
div#espli{margin-top:8px;}
div#fecha table{position: absolute; left: 750px; top: 5px;
font:Georgia, "Times New Roman", Times, serif; font-size:
14px; color: #0C49A5}
span.esp1{font:Georgia, "Times New Roman", Times, serif;
font-size:14px; font-weight:bold;color:#6D6DF8 }
span#tit_pie{position: absolute; top: 5px; margin-left:
250px; margin-top: 10px; font:Georgia, "Times New Roman",
Times, serif; font-size:10px; fontweight:bold;color:#6D6DF8 }
div#logoamm img{width: 30px; height:auto;
position:absolute; left: 765px; top: 5px}
Autor: Antonio Martínez Martínez
183
SELWA: Sistema de gestión, seguimiento y automatización de informes para
alumnos con necesidades educativas especiales.
6 Pliego de condiciones
6.2.2 XHTML
à ficha.php
Se muestra uno de los códigos más completos de los que componen el
conjunto de páginas. En él se puede apreciar tanto la estructura de la página,
como las llamadas a las funciones JavaScript, como pequeño código PHP
insertado en el XHTML.
<?php
require("funcs.php");
if($GLOBALS['selwa']->session->getData('login')=='0')
header("Location:index.php");
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
<!--*****INCLUSION ARCHIVOS PHP NECESARIOS PARA EL PROCESADO DE LA
INFORMACION***** -->
<?php
if(isset($_POST['mod']))
$mod=$_POST['mod'];
else
$mod="";
require("find_al.php");
require_once ("./xajax/xajax.inc.php");
/*REGISTRO DE LA FUNCION QUE SE ENCARGARA DE MOSTRAR LOS MENSAJES DE
AYUDA*/
$xajax = new xajax("server.php");
$xajax->registerFunction('muestra_ayuda');
?>
<html>
<head>
<title>SELWA - - - Sistema Automatizado de Gestión y Seguimiento para
la Educación Especial</title>
<?php $xajax->printJavascript('./xajax/');?>
<!--*****INCLUSION ARCHIVOS JS Y CSS NECESARIOS PARA LA CORRECTA
REPRESENTACION DE LA INFORMACION***** -->
<link rel="stylesheet" href="./css/hoja_ficha.css" type="text/css">
<link rel="stylesheet" type="text/css" href="./css/niftyCorners.css">
<link rel="stylesheet" type="text/css" href="./css/niftyPrint.css"
media="print">
<script type="text/javascript" src="./css/niftycube.js"></script>
<script type="text/javascript"
src="./javascript/funcs_ficha/funcs_Varias.js"></script>
<script type="text/javascript"
src="./javascript/funcs_ficha/funcs_ComprDatosPest.js"></script>
<script type="text/javascript"
src="./javascript/funcs_ficha/funcs_GestPest.js"></script>
Autor: Antonio Martínez Martínez
184
SELWA: Sistema de gestión, seguimiento y automatización de informes para
alumnos con necesidades educativas especiales.
6 Pliego de condiciones
<script type="text/javascript"
src="./javascript/funcs_ficha/funcs_Ayuda.js"></script>
<!--*****LLAMADA A FUNCIONES DE REDONDEADO DE ESQUINAS E INDICADOR DE
AYUDA EN CARGA*****-->
<script type="text/javascript">
redondea_esquinas();
function envia_form(){
if(document.getElementById("area").value!=0){
if(document.getElementById("refer").value!=0)
if(document.getElementById("comen").value!="")
document.getElementById("form_hoy").submit();
else
alert("No puede insertar un comentario en
blanco.");
else
alert("Por favor, seleccione un valor \"Referido
a\"");
}
else
alert("Por favor, seleccione un área");
}
<!-function iniwait(){
xajax.$('ayuda').innerHTML='<img src="xajax-loader.gif"
/><span class="load_ayuda">Cargando...</span>';
xajax.$('ayuda2').innerHTML='<img src="xajax-loader.gif"
/><span class="load_ayuda">Cargando...</span>';
xajax.$('ayuda_estatica').innerHTML='<img src="xajaxloader.gif" /><span class="load_ayuda">Cargando...</span>';
}
window.status='Processing...';
-->
</script>
<!--*****VARIABLES JS GLOBALES PARA EL FUNCIONAMIENTO DEL MECANISMO DE
PESTAÑAS Y COMPROBACION DE CAMPOS*****-->
<script language="javascript1.4" type="text/javascript">
var pest=new Array();
var flag_pest=0;
var res_comprueba=0;
pest[0]=new Array(15);
pest[1]=new Array(26);
pest[2]=new Array(26);
var estado=0;
</script>
</head>
Autor: Antonio Martínez Martínez
185
SELWA: Sistema de gestión, seguimiento y automatización de informes para
alumnos con necesidades educativas especiales.
6 Pliego de condiciones
<!--***** COMIENZO ELEMENTOS HTML QUE COMPONEN LA PAGINA*****-->
<body>
<div id="cabecera"><div id="foto_logo"><img src="fotos/logo.png"
title="logo" alt="logo" /></div>
<div id="espli"><span class="esp1">Sistema Automatizado de Gestión y
Seguimiento</span><br /><span class="esp1">para la Educación
Especial</span></div>
<div id="fecha"><table><tr><td id="Fecha_Reloj"></td></tr></table>
</div>
</div>
<div id="jerarquia"><div><img style="margin-top: 4px; marginleft:4px; float:left" src="fotos/home.jpg" alt="Home" title="Home"
/></div><span>........</span><span class="jerar1"><a
href="./principal.php">Principal</a></span><span class="jerar2"> >>
</span><span class="jerar1"><a href="./gestion_fichas.php">Gestión
Fichas</a></span><span class="jerar2"> >> </span><span class="jerar1"><a
href="./buscar_ficha.php">Buscar Ficha</a></span><span class="jerar2"> >>
</span><span class="jerar1"><a href="./res_fich.php">Resultado
Búsqueda</a></span><span class="jerar2"><strong> >> Ver
Ficha</strong></div>
<div id="lateral">
<div id="lateral1">
<p style="text-align:center; font:Arial, Helvetica, sans-serif; fontsize:12px; text-decoration:underline; font-weight:bold;
color:#0033CC">Usuarios online</p>
<form action="index.php" method="POST">
<input type="hidden" name="do" value="unregister" />
<?php $GLOBALS['selwa']->session->getData('login');
$users=extrae_users();
$cont=count($users);
$i=0;
while($cont>0){
echo "<span class='us'>".$users[$i]."</span><br />";
$i++;
$cont--;
}
?>
<div id="logout"><input class="button" type="submit" value="Logout"
/></div>
</form>
<img src="fotos/barra_fina.jpg" style="text-align:center; width:
190px; margin-left: 10px; margin-top: 40px" />
</div>
<div id="lateral2">
<p style="text-align:center; font:Arial, Helvetica, sans-serif; fontsize:12px; text-decoration:underline; font-weight:bold;
color:#0033CC">Accesos directos</p>
<?php if((strcmp($GLOBALS['selwa']->session>getData('login'),"admin")==0)||(strcmp($GLOBALS['selwa']->session>getData('perf_us'),"prof")==0))
echo '<a href="crea_ficha.php"><span class="acceso">Crear
Ficha</span></a><br /><br />';?>
<?php if(strcmp($GLOBALS['selwa']->session>getData('login'),"admin")==0)
echo '<a href="crea_us.php"><span class="acceso">Crear
Usuario</span></a><br /><br />';?>
Autor: Antonio Martínez Martínez
186
SELWA: Sistema de gestión, seguimiento y automatización de informes para
alumnos con necesidades educativas especiales.
6 Pliego de condiciones
<a href="buscar_ficha.php"><span class="acceso">Buscar
Ficha</span></a><br /><br />
<a href="buscar_ficha2.php"><span class="acceso">Crear
Informe</span></a><br /><br />
<a href="http://www.google.es"><span class="acceso">Buscar en
Google</span></a><br />
<img src="fotos/barra_fina.jpg" style="text-align:center; width: 190px;
margin-left: 10px; margin-top: 50px" />
</div>
<div id="lateral3">
<?php require("./calendario/index_cal.php");?>
</div>
</div>
<!--*****CAPA PRINCIPAL*****-->
<div id="principal">
<!--*****PESTAÑAS*****-->
<div id="pest">
<ul id="nav">
<li id="hoy" class="activelink"><a href="javascript:;"
onmousedown='activo("datos_pers","datos_fam","nivel_cc","eval_inicial","d
iagnostico","hoy");se_ve("datos1","datos2","datos3","datos4","datos5","da
tos0");'>HOY</a></li>
<li id="datos_pers"><a href="javascript:;"
onmousedown='activo("datos_fam","nivel_cc","eval_inicial","diagnostico","
hoy","datos_pers");se_ve("datos2","datos3","datos4","datos5","datos0","da
tos1")'>Datos Personales</a></li>
<li id="datos_fam"><a href="javascript:;"
onmousedown='activo("datos_pers","nivel_cc","eval_inicial","diagnostico",
"hoy","datos_fam");se_ve("datos1","datos3","datos4","datos5","datos0","da
tos2")'>Datos Familiares</a></li>
<li id="nivel_cc"><a href="javascript:;"
onmousedown='activo("datos_pers","datos_fam","eval_inicial","diagnostico"
,"hoy","nivel_cc");se_ve("datos1","datos2","datos4","datos5","datos0","da
tos3")'>N.C.C.</a></li>
<li id="eval_inicial"><a href="javascript:;"
onmousedown='activo("datos_pers","datos_fam","nivel_cc","diagnostico","ho
y","eval_inicial");se_ve("datos1","datos2","datos3","datos5","datos0","da
tos4")'>Evaluación Inicial</a></li>
<li id="diagnostico"><a href="javascript:;"
onmousedown='activo("datos_pers","datos_fam","nivel_cc","hoy","eval_inici
al","diagnostico");se_ve("datos1","datos2","datos3","datos4","datos0","da
tos5")'>Diagnóstico</a></li>
</ul>
</div>
<form id="form_hoy" name="form_hoy" action="inserta_hoy.php"
method="post" enctype="multipart/form-data">
<input type="hidden" name="id_al" value="<?php echo $id;?>" />
<!--*****CAPA PESTAÑA 1: REGISTRO DIARIO DE INCIDENCIAS*****-->
<div id="datos0" class="visible">
<h2 class="titulo1">HOY</h2>
<div id="d_hoy">
<div id="fecha2"><?php $hoy=date("d / m / y"); echo $hoy;?></div><input
type="hidden" name="hoy" value="<?php echo $hoy;?>" /><br />
Autor: Antonio Martínez Martínez
187
SELWA: Sistema de gestión, seguimiento y automatización de informes para
alumnos con necesidades educativas especiales.
6 Pliego de condiciones
<div id="info">
<?php if((strcmp($GLOBALS['selwa']->session>getData('login'),"admin")==0)||(strcmp($GLOBALS['selwa']->session>getData('perf_us'),"prof")==0)){
echo '<p><span>Asunto:</span><span><input
type="text" name="asunto" id="asunto" size="15" maxlength="20"
/></span></p>';
echo '<p><span>Área:</span><span><select
name="area" id="area"
onChange="actualiza_ref(\'area\',\'refer\');"><option value="0"
selected="selected">--Seleccionar--</option>';
crea_area("area");echo '</select></span></p>';
echo '<p><span>Subárea:</span><span><select
name="refer" id="refer"><option value="0" selected="selected">-Seleccionar--</option>';
echo '</select></span></p>';
echo '<p><span>Comentario</span><br />';
echo '<textarea class="texto_g" rows="8"
cols="73" name="comen" id="comen"></textarea>';
}
else{
$info=array();$info=extrae_hoy($id);
echo '<p><span>Asunto:</span><span><input type="text"
name="asunto" id="asunto" size="25" maxlength="20" readonly="readonly"
value="'.$info[0].'" /></span></p>';
echo '<p><span>Área:</span><span><input type="text"
readonly="readonly" value="'.$info[1].'" size="30" /></span></p>';
echo '<p><span>Subárea:</span><span><input type="text"
readonly="readonly" value="'.$info[2].'" size="40" /></span></p>';
echo '<p><span>Comentario</span><br />';
echo '<textarea class="texto_g" rows="8" cols="73" name="comen"
id="comen">'.$info[3].'</textarea>';}?>
</div>
</div>
<?php if((strcmp($GLOBALS['selwa']->session>getData('login'),"admin")==0)||(strcmp($GLOBALS['selwa']->session>getData('perf_us'),"prof")==0)){
echo '<ul class="bot_sig" id="bot_ins">';
echo '<li><a href="javascript:;"
onmousedown=\'envia_form();\'>Insertar</a></li>';
echo '</ul>';
}
?>
</div>
</form>
<!--*****CAPA PESTAÑA 2: DATOS PERSONALES*****-->
<div id="datos1" class="oculto">
<h2 class="titulo1">DATOS PERSONALES</h2>
<div id="d_pers">
<div id="col_foto">
<img class="foto" src="./imgs/alumnos/<?php echo $foto;?>"
alt="Foto alumno" title="Foto alumno" /><br />
</div>
<div id="col_datos">
Autor: Antonio Martínez Martínez
188
SELWA: Sistema de gestión, seguimiento y automatización de informes para
alumnos con necesidades educativas especiales.
6 Pliego de condiciones
<p><span>Nombre:<input class="texto" id="nombre" type="text"
name="nombre" readonly="readonly" size="17" maxlength="17" value="<?php
echo $nombre;?>" /></span><span>Apellido 1:<input class="texto"
id="apel1" type="text" name="apel1" readonly="readonly" size="17"
maxlength="17" value="<?php echo $apel1;?>" /></span></p>
<p><span>Apellido 2:<input class="texto" id="apel2" type="text"
name="apel2" readonly="readonly" size="9" maxlength="17" value="<?php
echo $apel2;?>" /></span><span>F.Nacimiento:</span><span><input
type="text" readonly="readonly" size="9" value="<?php echo $dia_nac.' /
'.$mes_nac.' / '.$ano_nac;?>" /></span></p><p><span>Peso (Kg):<input
class="texto" id="peso" type="text" name="peso" readonly="readonly"
size="3" maxlength="3" value="<?php echo $peso;?>"
/></span><span>Estatura (cm):<input class="texto" id="estat" type="text"
name="estat" readonly="readonly" size="3" maxlength="3" value="<?php echo
$estat;?>" /></span><span>Teléfono:<input class="texto" id="tlf"
type="text" name="tlf" readonly="readonly" size="9" maxlength="9"
value="<?php echo $tlf;?>" /></span></p>
<p><span>Domicilio:<input class="texto" id="domic" type="text"
name="domic" readonly="readonly" size="20" maxlength="30" value="<?php
echo $domic;?>" /></span><span>Localidad:<input class="texto"
id="localidad" type="text" name="localidad" readonly="readonly" size="20"
maxlength="30" value="<?php echo $localidad;?>" /></span></p>
<p><span>Provincia:<span><input type="text" readonly="readonly"
value="<?php echo $provincia;?>"
/></span></span><span>Nacionalidad:<span><input type="text"
readonly="readonly" size="12" value="<?php echo $pais;?>"
/></span></span>
</p>
<p><span>Año Ingreso:<span><input type="text" readonly="readonly"
size="6" value="<?php echo $ano_ing;?>" /></span></span><span>Maestro
Tutor:<input class="texto" id="tut_asoc" type="text" size="4"
name="tut_asoc" readonly="readonly" size="5" value="<?php echo
$prof_asoc;?>" /></span></p>
<p><span>Consultores Tutores:</span><span><div
id="cons_tut"><?php for($i=0;$i<$num_cons;$i++){
echo '<input type="text" readonly="readonly" size="4"
value="'.$id_cons[$i].'" />';
}?>
</div></span></p>
</div>
</div>
</div>
<!--*****FIN CAPA DATOS PERSONALES*****-->
<!--*****CAPA PESTAÑA 3: DATOS FAMILIARES*****-->
<div id="datos2" class="oculto">
<h2 class="titulo1">DATOS FAMILIARES</h2>
<div id="d_fam">
<div id="col_datos_fam">
<h2 class="titulo2"><span class="area">PADRE / TUTOR</span></h2>
<p><span>Nombre:<input class="texto" id="nombre_p" type="text"
name="nombre_p" readonly="readonly" size="17" maxlength="17" value="<?php
echo $nombre_p;?>" /></span><span>Apellidos:<input class="texto"
id="apel_p1" type="text" name="apel_p1" readonly="readonly" size="15"
maxlength="17" value="<?php echo $apel_p1;?>" /><input class="texto"
id="apel_p2" type="text" name="apel_p2" readonly="readonly" size="15"
maxlength="17" value="<?php echo $apel_p2;?>" /></span></p>
Autor: Antonio Martínez Martínez
189
SELWA: Sistema de gestión, seguimiento y automatización de informes para
alumnos con necesidades educativas especiales.
6 Pliego de condiciones
<p><span>Fecha Nacimiento:</span><span><input type="text"
readonly="readonly" size="9" value="<?php echo $dia_nac_p.' /
'.$mes_nac_p.' / '.$ano_nac_p;?>"
/></span><span>Teléfono:</span><span><input class="texto" id="tlf_p"
type="text" name="tlf_p" readonly="readonly" size="9" maxlength="9"
value="<?php echo $tlf_p;?>" /></span></p>
<p><span>Domicilio:<input class="texto" id="domic_p" type="text"
name="domic_p" readonly="readonly" size="20" maxlength="30" value="<?php
echo $domic_p;?>" /></span><span>Teléfono Móvil:<input class="texto"
id="tlf2_p" type="text" name="tlf2_p" readonly="readonly" size="9"
maxlength="9" value="<?php echo $tlf2_p;?>"/></span></p>
<p><span>Profesión:<input class="texto" id="profesion_p"
type="text" name="profesion_p" readonly="readonly" size="20"
maxlength="20" value="<?php echo $profesion_p;?>" /></span><span>Email:<input class="texto" id="correo_p" type="text" name="correo_p"
readonly="readonly" value="<?php echo $correo_p;?>" /></span></p>
<br />
<h2 class="titulo2"><span class="area">MADRE / TUTORA</span></h2>
<p><span>Nombre:<input class="texto" id="nombre_m" type="text"
name="nombre_m" readonly="readonly" size="17" maxlength="17" value="<?php
echo $nombre_m;?>" /></span><span>Apellidos:<input class="texto"
id="apel_m1" type="text" name="apel_m1" readonly="readonly" size="15"
maxlength="17" value="<?php echo $apel_m1;?>" /><input class="texto"
id="apel_m2" type="text" name="apel_m2" readonly="readonly" size="15"
maxlength="17" value="<?php echo $apel_m2;?>" /></span></p>
<p><span>Fecha Nacimiento:</span><span><input type="text"
readonly="readonly" size="9" value="<?php echo $dia_nac_m.' /
'.$mes_nac_m.' / '.$ano_nac_m;?>" /><span>Teléfono:</span><span><input
class="texto" id="tlf_m" type="text" name="tlf_m" readonly="readonly"
size="9" maxlength="9" value="<?php echo $tlf_m;?>" /></span></p>
<p><span>Domicilio:<input class="texto" id="domic_m" type="text"
name="domic_m" readonly="readonly" size="20" maxlength="30" value="<?php
echo $domic_m;?>" /></span><span>Teléfono Móvil:<input class="texto"
id="tlf2_m" type="text" name="tlf2_m" readonly="readonly" size="9"
maxlength="9" value="<?php echo $tlf2_m;?>" /></span></p>
<p><span>Profesión:<input class="texto" id="profesion_m"
type="text" name="profesion_m" readonly="readonly" size="20"
maxlength="20" value="<?php echo $profesion_m;?>" /></span><span>Email:<input class="texto" id="correo_m" type="text" name="correo_m"
readonly="readonly" value="<?php echo $correo_m;?>" /></span></p>
<br />
<h2 class="titulo2"><span class="area">OTROS</span></h2>
<p><span>Nº Hermanos:</span><span><input type="text" size="4"
readonly="readonly" value="<?php echo $n_herm;?>" /></span><span>Lugar
que ocupa:</span><span><input type="text" size="4" readonly="readonly"
value="<?php echo $lugar_herm;?>" /></span><span>Edad embarazo
madre:<input class="texto" id="edad_emb" size="4" type="text"
name="edad_emb" readonly="readonly" size="2" maxlength="2" value="<?php
echo $edad_emb;?>" /></span></p>
<p><span>Enfermedades embarazo:</span></p><p><span><textarea
class="texto_g" id="enf_emb" name="enf_emb" readonly="readonly" rows="4"
cols="50" maxlength="200"><?php echo $enf_emb;?></textarea></span></p>
<p><span>Dificultades parto:</span></p><p><span><textarea
class="texto_g" id="dif_parto" name="dif_parto" readonly="readonly"
rows="4" cols="50" maxlength="200"><?php echo
$dif_parto;?></textarea></span></p>
Autor: Antonio Martínez Martínez
190
SELWA: Sistema de gestión, seguimiento y automatización de informes para
alumnos con necesidades educativas especiales.
6 Pliego de condiciones
<p><span>Otros:</span></p><p><span><textarea class="texto_g" id="otros"
name="otros" readonly="readonly" rows="4" cols="50" maxlength="200"><?php
echo $otros;?></textarea></span></p>
<br />
<br />
</div>
</div>
<div id="una_capa3" style="visibility:hidden">
<ul class="bot_sig">
<li id="uno"><a href="javascript:;">Añadir Objetivo</a></li>
</ul>
</div>
</div>
<!--*****FIN CAPA DATOS FAMILIARES*****-->
<!--*****CAPA PESTAÑA 4: NIVELES DE COMPETENCIA CURRICULAR*****-->
<div id="datos3" class="oculto">
<h2 class="titulo1">NIVELES DE COMPETENCIA CURRICULAR<span><img
src="./fotos/quest2.jpg" title="Ayuda" alt="Ayuda" id="ayuda_obj"
class="ayuda" onmouseover='manejador_ayuda(this,"ayuda_obj",1);'
onmouseout='quita_ayuda()' /></span></h2>
<div id="inicio_ncc">
<div id="resul_ncc">
<div id="actualizacion" style="display:none"
class="actualiza"></div>
<table id="t_res" align='center' cellspacing='1' cellpadding='0'>
<tr class="encabezado"><td><span
class="t_plano">Objetivos</span></td><td class="enc1_2" colspan="2"><span
class="t_plano">Cumplido</span></td></tr>
<tr><td style=" visibility:hidden"></td><td style="textalign:center;font-size: 12pt;font-weight: bold; color: #00c;">Sí</td><td
style="text-align:center;font-size: 12pt;font-weight: bold; color:
#00c;">No</td></tr>
<?php crea_tabla_ncc($id,$mod);?>
</table>
</div>
</div>
<div id="una_capa3" style="visibility:hidden">
<ul class="bot_sig">
<li id="uno"><a href="javascript:;">blabla</a></li>
</ul>
</div>
</div>
Autor: Antonio Martínez Martínez
191
SELWA: Sistema de gestión, seguimiento y automatización de informes para
alumnos con necesidades educativas especiales.
6 Pliego de condiciones
<!--*****FIN CAPA NIVELES COMPETENCIA CURRICULAR*****-->
<!--*****CAPA PESTAÑA 5: EVALUACION INICIAL*****-->
<div id="datos4" class="oculto">
<!--*****CAPA PARA MOSTRAR LA AYUDA DE LA PESTAÑA 4*****-->
<div id="ayuda" style="border: solid #ff77a0 1px;width: 200px;height:
auto;z-index:
99;display:none;position:absolute;left:0px;top:0px;background-color:
#f8dccb;color: #000000;padding: 5px;"></div>
<h2 class="titulo1">EVALUACIÓN INICIAL</h2>
<div id="ev_ini">
<p><span class="area">1. RELATIVA AL ALUMNO</span></p>
<p><span class="subarea">1.1 HISTORIAL
ACADÉMICO</span><span>(Asistencia, Cambios de Centro,
Repeticiones,...)</span></p>
<p><span><textarea class="texto_g" readonly="readonly" id="hist_acad"
name="hist_acad" readonly="readonly" rows="5" cols="65"><?php echo
$hist_acad;?></textarea></span></p>
<p><span class="subarea">1.2 NCC ACTUAL</span></p>
<p><span><textarea class="texto_g" readonly="readonly" id="ncc_act"
name="ncc_act" readonly="readonly" rows="5" cols="65"><?php echo
$ncc_act;?></textarea></span></p>
<p><span class="subarea">1.3 ESTILO DE APRENDIZAJE Y MOTIVACIÓN PARA
APRENDER</span></p>
<p><span><textarea class="texto_g" readonly="readonly" id="est_apren"
name="est_apren" readonly="readonly" rows="5" cols="65"><?php echo
$est_apren;?></textarea></span></p>
<p><span class="subarea">1.4 DESARROLLO
GENERAL</span><span>(Biológico, Psicomotor, Intelectual, Emocional,
Social,...)</span></p>
<p><span><textarea class="texto_g" readonly="readonly" id="des_gral"
name="des_gral" readonly="readonly" rows="5" cols="65"><?php echo
$des_gral;?></textarea></span></p>
<p><span class="area">2. RELATIVA AL CONTEXTO SOCIOFAMILIAR</span></p>
<p><span class="subarea">2.1 RESPECTO AL ALUMNO</span></p>
<p><span><textarea class="texto_g" readonly="readonly" id="sf_alumno"
name="sf_alumno" readonly="readonly" rows="5" cols="65"><?php echo
$sf_alumno;?></textarea></span></p>
<p><span class="subarea">2.2 RESPECTO A LA FAMILIA</span></p>
<p><span><textarea class="texto_g" readonly="readonly" id="sf_familia"
name="sf_familia" readonly="readonly" rows="5" cols="65"><?php echo
$sf_familia;?></textarea></span></p>
<p><span class="subarea">2.3 RESPECTO AL ENTORNO SOCIAL</span></p>
<p><span><textarea class="texto_g" readonly="readonly" id="sf_social"
name="sf_social" readonly="readonly" rows="5" cols="65"><?php echo
$sf_social;?></textarea></span></p>
<p><span class="area">3. RELATIVA AL CONTEXTO ESCOLAR (AULA)</span><br
/><span>(Contexto Organizativo, Contexto Didáctico,...)</span></p>
<p><span><textarea class="texto_g" readonly="readonly" id="cont_esc"
name="cont_esc" readonly="readonly" rows="5" cols="65"><?php echo
$cont_esc;?></textarea></span></p>
Autor: Antonio Martínez Martínez
192
SELWA: Sistema de gestión, seguimiento y automatización de informes para
alumnos con necesidades educativas especiales.
6 Pliego de condiciones
</div>
<div id="una_capa" style="visibility:hidden">
<ul class="bot_sig">
<li id="uno"><a href="javascript:;">Añadir Objetivo</a></li>
</ul>
</div>
</div>
<!--*****FIN CAPA EVALUACION INICIAL*****-->
<!--*****CAPA PESTAÑA 6: DIAGNOSTICO*****-->
<div id="datos5" class="oculto">
<h2 class="titulo1">DIAGNÓSTICO</h2>
<!--*****CAPA PARA MOSTRAR LA AYUDA DE LA PESTAÑA 5*****-->
<div id="ayuda2" style="border: solid #ff77a0 1px;width: 200px;height:
auto;z-index:
99;display:none;position:absolute;left:0px;top:0px;background-color:
#f8dccb;color: #000000;padding: 5px;"></div>
<div id="diagn">
<p><span class="d">Tipología:</span><span><input type="text"
name="tipologia" id="tipologia" readonly="readonly" size="23"
value="<?php echo $tipo;?>" /></span><span><img src="./fotos/quest.jpg"
title="Ayuda" alt="Ayuda" id="ayuda1" class="ayuda"
onmouseover='manejador_ayuda(this,"tipo_inv",document.getElementById("tip
ologia").value);' onmouseout='quita_ayuda()' /></span>
<span class="d">Patología:</span><span><input type="text"
name="patologia" id="patologia" readonly="readonly" value="<?php echo
$pato;?>" /></span><span><img src="./fotos/quest.jpg" id="ayuda2"
title="Ayuda" alt="Ayuda" class="ayuda"
onmouseover='manejador_ayuda(this,"pato",document.getElementById("patolog
ia").value)' onmouseout='quita_ayuda()' /></span></p>
<p><span class="d">Nivel:</span><span><input type="text" name="nivel"
id="nivel" readonly="readonly" value="<?php echo $nivel;?>"
/></span><span><img src="./fotos/quest.jpg" title="Ayuda" alt="Ayuda"
id="ayuda4" class="ayuda"
onmouseover='manejador_ayuda(this,"nivel",document.getElementById("nivel"
).value);' onmouseout='quita_ayuda()' /></span></p>
<p><span class="d">Observaciones:</span></p><p><span><textarea
class="texto_g" id="obs_diag" name="obs_diag" readonly="readonly"
rows="4" cols="65"><?php echo $obs;?></textarea></span></p>
<p><span class="d">Especialista/s:</span><span><div
id="contenedor"><?php for($i=0;$i<$n_esp;$i++){
echo '<input type="text" readonly="readonly" size="4"
value="'.$id_esp[$i].'" />';
}?></div></span></p>
<p><span class="d">Necesidad Tratamiento Médico:</span><span><input
name="tto_med" id="tto_med" readonly="readonly" size="4" value="<?php
echo $tratam;?>" /></span></p>
<p><span class="d">Observaciones Tratamiento
Médico:</span></p><p><span><textarea class="texto_g" id="obs_tto"
name="obs_tto" readonly="readonly" rows="4" cols="65"><?php echo
$obs_trat;?></textarea></span></p>
Autor: Antonio Martínez Martínez
193
SELWA: Sistema de gestión, seguimiento y automatización de informes para
alumnos con necesidades educativas especiales.
6 Pliego de condiciones
</div>
<div id="una_capa2" style="visibility:hidden">
<ul class="bot_sig">
<li id="uno"><a href="javascript:;">Añadir Objetivo</a></li>
</ul>
</div>
<!--*****FIN CAPA DIAGNOSTICO*****-->
</div>
<!--*****FIN CAPA PRINCIPAL*****-->
</div>
<!--*****CAPA PARA MOSTRAR LA AYUDA DE LA PESTAÑA 1*****-->
<div id="ayuda_estatica"></div>
<!--*****CAPA INFERIOR*****-->
<div id="pie"><span id="tit_pie"><img src="fotos/barra_fina_disc.jpg"
title="" alt="" />Diseñado y Programado por Antonio Martínez Martínez,
2007 ©</span><div id="logoamm"><img src="./fotos/logoamm.png"
alt="logoAMM" title="logoAMM" /><form id="form_mail"
action="mailto:[email protected]?subject=Comentario SELWA"
method="post" enctype="text/plain"><a id="cont" href="javascript:;"
onMouseDown="document.getElementById('form_mail').submit()">Contactar</a>
</form></div></div>
</body>
</html>
Autor: Antonio Martínez Martínez
194
SELWA: Sistema de gestión, seguimiento y automatización de informes para
alumnos con necesidades educativas especiales.
6 Pliego de condiciones
6.2.3 PHP
à inserta_us.php
Este código muestra el proceso de inserción de datos durante la creación
de una ficha de usuario. La inserción de los datos de alumno sigue un proceso
similar, pero dado que el código es sensiblemente más amplio, se muestra este.
<?php
require("funcs.php");
if($GLOBALS['selwa']->session->getData('login')=='0')
header("Location:index.php");
?>
<?php
/*INCLUSION ARCHIVOS PHP NECESARIOS PARA EL PROCESADO DE LA
INFORMACION*/
require("recibe_vars_us.php");
/*Funcion: manejador_res_ncc
**Parametros: $array: array con los valores de la posicion de la
pregunta marcada en NCC
**
$patron: variable para discriminar que tipo de
array estamos tratando, si de
**
respuesta o de marcado de objetivos.
**Valor devuelto: array con los valores de las casillas que han
sido marcadas, bien como
**
respuesta bien como marcado de objetivos.
*/
/*INICIALIZO A "true" LAS VARIABLES CUYOS RESULTADOS PUEDEN SER
NULOS*/
$ins_tut=1;
$ins4=1;
$ins5=1;
$ins6=1;
$ins8=1;
$foto_ok=0;
/*ANTES DE INSERTAR NADA INTENTO SUBIR LA FOTO SI PROCEDE*/
if($omitir_foto==-1){
$imagen_red_ok=false;
if($_FILES['file_temp']){
$subir=false;
/*EXTENSIONES PERMITIDAS*/
$permitidos=array(".gif",".png",".jpg",".jpeg",".bmp",".GIF",".P
NG",".JPG",".JPEG",".BMP");
Autor: Antonio Martínez Martínez
195
SELWA: Sistema de gestión, seguimiento y automatización de informes para
alumnos con necesidades educativas especiales.
6 Pliego de condiciones
$nombre_file = $_FILES['file_temp']['name'];
$tam = $_FILES['file_temp']['size'];
$tam_max=600000; // En bytes. Equivalente a 600kb.
$ruta_="imgs/usuarios/"; // Ruta donde sera guardado el fichero.
$ord_sb=substr($nombre_file,-4);
for($i=0;$i<count($permitidos);$i++){
if($ord_sb==$permitidos[$i]){
$subir=true; break;
}
}
if($tam>$tam_max){
$subir=false;
}
if(!is_uploaded_file($HTTP_POST_FILES['file_temp']['tmp_name']))
{
$subir=false;
}
if($subir===true){
if(move_uploaded_file($_FILES['file_temp']['tmp_name'],$ruta_.
$nombre_file)){
//echo "Se subió correctamente el fichero";
$foto_ok=1;
}
else
if(copy($_FILES['file_temp']['tmp_name'],$ruta_.$nombre_file))
{
$foto_ok=1;
//echo "Se subió correctamente el fichero";
}
else {
//echo "No se pudo subir el fichero";
$foto_ok=2;
}
}
else {
$foto_ok=2;
/*echo "<h2>Tamaño o Extensión no permitidos.</h2><br
/><h3>Extensiones válidas: </h3>"; foreach($permitidos as
$value){ print $value." ";*/ } /*echo "<br /> <h3>Tamaño Máximo
permitido (Bytes): </h3>".$tam_max;*/ }
//}
if($foto_ok==1){
$imagen_red_ok=redimensionar_imagen($ruta_.$nombre_file,$ruta_
.$nombre_file);
if(!$imagen_red_ok)
$foto_ok=2;
}
}
else
$foto_ok=1;
/*FIN SUBIR FOTO*/
Autor: Antonio Martínez Martínez
196
SELWA: Sistema de gestión, seguimiento y automatización de informes para
alumnos con necesidades educativas especiales.
6 Pliego de condiciones
if($foto_ok==1){
//$db=new DataBase("localhost","root",NULL,"db_ee");
/*PREPARO E INSERTO DATOS */
$datos1=array('id'=>'','perfil'=>$perfil,'especialidad'=>$espe
cialidad,'nombre'=>$nombre,'apel1'=>$apel1,'apel2'=>$apel2,'dni'
=>$dni,'letra'=>$letra_dni,'dia_nac'=>$dia,'mes_nac'=>$mes,'ano_
nac'=>$ano,'domic'=>$domic,'localidad'=>$localidad,'provincia'=>
$provincia,'nacionalidad'=>$nacionalidad,'tlf1'=>$tlf1,'tlf2'=>$
tlf2,'correo'=>$correo,'login'=>$login,'pass'=>$pass,'dir_foto'=
>$nombre_file);
$ins1=$GLOBALS['selwa']->database>insert("us_info_p",$datos1);
/*AQUI VA LA DIRECCION DE LA PAGINA A LA QUE VOY SI TODO HA
IDO CORRECTO O SI NO*/
if($ins1==1)
echo '<html><head><title></title><meta httpequiv="Refresh" content="0;url=./todook_us.php"
/></head><body></body></html>';
else{ //SI HA HABIDO ALGUN ERROR BORRO DE LA BASE DE DATOS LO
QUE SE HAYA INTRODUCIDO HASTA EL MOMENTO
unlink('./imgs/usuarios/'.$nombre_file); //ELIMINO LA
FOTO SUBIDA
if($ins1!=2)
$frase_out=600;
else
$frase_out=800;
echo '<html><head><title></title><meta httpequiv="Refresh"
content="0;url=./notodook.php?error='.$frase_out.'"
/></head><body></body></html>';
}
}
else{
$frase_out=700;
echo '<html><head><title></title><meta http-equiv="Refresh"
content="0;url=./notodook.php?error='.$frase_out.'"
/></head><body></body></html>';
}
?>
Autor: Antonio Martínez Martínez
197
SELWA: Sistema de gestión, seguimiento y automatización de informes para
alumnos con necesidades educativas especiales.
6 Pliego de condiciones
à find_al.php
Este código es utilizado para recibir la información de un alumno. Se ha
escogido pues muestra una consulta MySQL algo compleja, donde es necesario
anexar distintas tablas para poder obtener una gran cantidad de información en
una sola consulta.
<?php
if($GLOBALS['selwa']->session->getData('login')=='0')
header("Location:index.php");
?>
<?php
if(isset($_POST['al_sel']))
$id=$_POST['al_sel'];
else
$id=0;
$connect=mysql_connect("localhost","root");
mysql_select_db("db_ee",$connect);
$sql="SELECT * FROM al_info_pers a LEFT JOIN al_info_fam b ON
a.id = b.id LEFT JOIN al_cons c ON b.id = c.id_al LEFT JOIN
ev_ini d ON c.id_al = d.id_al LEFT JOIN al_diag e ON d.id_al =
e.id_al WHERE a.id =".$id;
$res=mysql_query($sql);
$registro=mysql_fetch_array($res);
/*ASIGNACION VALORES PESTAÑA DATOS PERSONALES*/
$nombre=$registro["nombre"];
$apel1=$registro["apel1"];
$apel2=$registro["apel2"];
$dia_nac=$registro["dia_nac"];
$mes_nac=$registro["mes_nac"];
$ano_nac=$registro["ano_nac"];
$peso=$registro["peso"];
$estat=$registro["estat"];
$tlf=$registro["tlf"];
$domic=$registro["domic"];
$localidad=$registro["localidad"];
$provincia=$registro["provincia"];
$provincia=convierte_valor_cad($provincia,"prov");
$pais=$registro["nacionalidad"];
$pais=convierte_valor_cad($pais,"pais");
$ano_ing=$registro["ano_ing"];
$prof_asoc=$registro["prof_asoc"];
$num_cons=$registro["num_cons"];
$foto=$registro["foto"];
Autor: Antonio Martínez Martínez
198
SELWA: Sistema de gestión, seguimiento y automatización de informes para
alumnos con necesidades educativas especiales.
6 Pliego de condiciones
/*ASIGNACION VALORES PESTAÑA DATOS FAMILIARES*/
$nombre_p=$registro["nombre_p"];
$apel_p1=$registro["apel_p1"];
$apel_p2=$registro["apel_p2"];
$dia_nac_p=$registro["dia_nac_p"];
$mes_nac_p=$registro["mes_nac_p"];
$ano_nac_p=$registro["ano_nac_p"];
$tlf1_p=$registro["tlf1_p"];
$domic_p=$registro["domic_p"];
$tlf2_p=$registro["tlf2_p"];
$profesion_p=$registro["profesion_p"];
$correo_p=$registro["correo_p"];
$nombre_m=$registro["nombre_m"];
$apel_m1=$registro["apel_m1"];
$apel_m2=$registro["apel_m2"];
$dia_nac_m=$registro["dia_nac_m"];
$mes_nac_m=$registro["mes_nac_m"];
$ano_nac_m=$registro["ano_nac_m"];
$tlf1_m=$registro["tlf1_m"];
$domic_m=$registro["domic_m"];
$tlf2_m=$registro["tlf2_m"];
$profesion_m=$registro["profesion_m"];
$correo_m=$registro["correo_m"];
$n_herm=$registro["n_herm"];
$lugar_herm=$registro["lugar_herm"];
$edad_emb=$registro["edad_emb"];
$enf_emb=$registro["enf_emb"];
$dif_parto=$registro["dif_parto"];
$otros=$registro["otros"];
/*ASIGNACION VALORES PESTAÑA EVALUACION INICIAL*/
$hist_acad=$registro["hist_acad"];
$ncc_act=$registro["ncc_act"];
$est_apren=$registro["est_apren"];
$des_gral=$registro["des_gral"];
$sf_alumno=$registro["sf_alumno"];
$sf_familia=$registro["sf_familia"];
$sf_social=$registro["sf_social"];
$cont_esc=$registro["cont_esc"];
/*ASIGNACION VALORES PESTAÑA DIAGNOSTICO*/
$tipo=$registro["tipo"];
$tipo=convierte_valor_cad($tipo,"tipo");
$pato=$registro["pato"];
$nivel=$registro["nivel"];
$obs=$registro["obs"];
$tratam=$registro["tratam"];
$obs_trat=$registro["obs_trat"];
$n_esp=$registro["n_esp"];
Autor: Antonio Martínez Martínez
199
SELWA: Sistema de gestión, seguimiento y automatización de informes para
alumnos con necesidades educativas especiales.
6 Pliego de condiciones
$sql="SELECT id_cons FROM al_cons WHERE id_al=".$id;
$res=mysql_query($sql);
$i=0;
while($row=mysql_fetch_array($res)){
$id_cons[$i]=$row['id_cons'];
$i++;
}
$cons_total=$num_cons+$n_esp;
$k=0;
for($j=$num_cons;$j<$cons_total;$j++){
$id_esp[$k]=$id_cons[$j];
$k++;
}
?>
àcrea_inf.php
Otro de los códigos que se consideran dignos de mostrar es el que genera los
informes en formato PDF.
<?php
require("funcs_inf.php");
if($GLOBALS['selwa']->session->getData('login')=='0')
header("Location:index.php");
?>
<?php
require('./fpdf/fpdf.php');
if(isset($_POST['al_sel']))
$id_al=$_POST['al_sel'];
else
$id_al=0;
$asuntos=array();
$fechas=array();
$datos_pers=array();
$areas=array();
$subareas=array();
$coments="";
$datos_pers=extrae_dp($id_al);
$areas=extrae_areas($campo);
$subareas=extrae_subareas($campo);
$numSubareas_total=subareas_por_areas($subareas);
Autor: Antonio Martínez Martínez
200
SELWA: Sistema de gestión, seguimiento y automatización de informes para
alumnos con necesidades educativas especiales.
6 Pliego de condiciones
$i=0;
$subareas=convierte_subareas($subareas);
$connect=mysql_connect("localhost","root");
mysql_select_db("db_ee",$connect);
foreach($subareas as $key=>$value){
$i=0;
$sql="SELECT asunto,comentario,fecha FROM info_diaria WHERE
id_al=".$id_al." AND ";
$sql.="refer='".$value."' AND ";
$sql.="fecha_comp>='".$year1."-".$mes1."-".$dia1."' AND
fecha_comp<='".$year2."-".$mes2."-".$dia2."'";
}
$res=mysql_query($sql);
$numComs[$value]=mysql_num_rows($res);
while($registro=mysql_fetch_array($res)){
$asuntos[$value][$i]=$registro["asunto"];
$coments[$value][$i]=$registro["comentario"];
$fechas[$value][$i]=$registro["fecha"];
$i++;
}
$pdf=new FPDF();
$pdf->SetLineWidth(0.5);
$pdf->AddPage();
$pdf->SetFont('Arial','BU',18);
$pdf->SetLeftMargin(60.3);
$pdf->Cell(100,10,'Informe de Seguimiento',1,0,'C',0);
$pdf->Ln(18);
$pdf->SetX(20);
$pdf->SetFont('Times','BU',16);
$pdf->Cell(175,70,'',0,1,'');
$pdf->SetY(35);
$pdf->SetX(20);
$pdf->SetFillColor(254,253,222);
$pdf->Cell(27,5,'Alumno:',0,0,'C',1);
$pdf->SetFont('Times','B',12);
$pdf->Write(5,' ');
$pdf->Write(5,$datos_pers[0].' '.$datos_pers[1].'
'.$datos_pers[2]);
$pdf->Ln(15);
$pdf->SetFont('Times','BU',16);
$pdf->SetY(45);
$pdf->SetX(20);
$pdf->Cell(27,5,'Período:',0,0,'C',1);
$pdf->SetFont('Times','B',12);
$pdf->Write(5,' ');
$pdf->Write(5,$dia1.' / '.$mes1.' / '.$year1.' --- '.$dia2.' /
'.$mes2.' / '.$year2);
Autor: Antonio Martínez Martínez
201
SELWA: Sistema de gestión, seguimiento y automatización de informes para
alumnos con necesidades educativas especiales.
6 Pliego de condiciones
$pdf->Ln(18);
$pdf->SetFont('Times','BU',16);
$pdf->SetY(60);
$pdf->SetX(20);
$pdf->Cell(52,5,'Profesor Asociado:',0,0,'C',1);
$pdf->SetFont('Times','B',12);
$pdf->Write(5,' ');
$pdf->Write(5,$datos_pers[3].' '.$datos_pers[4].'
'.$datos_pers[5]);
$pdf->Ln(15);
$pdf->SetFont('Times','BU',16);
$pdf->SetY(70);
$pdf->SetX(20);
$pdf->Cell(40,5,'Especialista/s:',0,0,'C',1);
$pdf->SetFont('Times','B',12);
$pdf->Write(5,' ');
$i=9;
while(strcmp($datos_pers[$i],"")!=0){
$pdf->Write(5,'- '.$datos_pers[$i]);
$pdf->Ln(5);
$pdf->SetX(62);
$i++;
}
$ult_y=$pdf->GetY();
$y_nueva=$ult_y+10;
$pdf->SetY($y_nueva);
$pdf->SetFont('Times','BU',16);
$pdf->SetX(20);
$pdf->Cell(30,5,'Tipología:',0,0,'C',1);
$pdf->SetFont('Times','B',12);
$pdf->Write(5,' ');
$pdf->Write(5,$datos_pers[6]);
$pdf->SetFont('Times','BU',16);
$pdf->SetX(110);
$pdf->Cell(27,5,'Patología:',0,0,'C',1);
$pdf->SetFont('Times','B',12);
$pdf->Write(5,' ');
$pdf->Write(5,$datos_pers[7]);
$pdf->Ln(15);
$pdf->SetFont('Times','BU',16);
$pdf->SetY(110);
$pdf->SetX(20);
$pdf->Cell(20,5,'Nivel:',0,0,'C',1);
$pdf->SetFont('Times','B',12);
$pdf->Write(5,' ');
$pdf->Write(5,$datos_pers[8]);
Autor: Antonio Martínez Martínez
202
SELWA: Sistema de gestión, seguimiento y automatización de informes para
alumnos con necesidades educativas especiales.
6 Pliego de condiciones
$pdf->SetLineWidth(0.8);
$pdf->Line(15,120,145,120);
$pdf->SetY(130);
$pdf->SetX(20);
$numAreas=count($areas);
$flag=0;
$j=0;
$i=0;
$m=0;
$n=0;
$cont=0;
$ult_y=110;
$pdf->Ln(15);
$areas_txt=convierte_areas($areas);
while($numAreas > 0){
$i=$areas[$n];
$nueva_y=$ult_y+20;
$pdf->SetY($nueva_y);
$pdf->SetLineWidth(0.5);
$pdf->SetFont('Times','B',16);
$pdf->SetX(20);
$pdf->Cell(27,8,'Área:',1,0,'C',0);
$pdf->SetFont('Times','BU',16);
$x_temp=$pdf->GetX();
$x_temp+=2;
$pdf->SetX($x_temp);
$y_temp=$pdf->GetY();
$y_temp+=1;
$pdf->SetY($y_temp);
$pdf->Write(5,$areas_txt[$n]);
while($numSubareas_total[$i] > 0){
$cont++;
$long_sub=count($subareas);
$k=$subareas[$j];
$nueva_y=$pdf->GetY();
$nueva_y+=10;
$pdf->SetY($nueva_y);
$pdf->SetX(30);
$pdf->SetFont('Times','B',14);
$pdf->Cell(27,6.5,'* Subárea:',0,0,'C',0);
$pdf->SetFont('Times','BU',14);
$x_temp=$pdf->GetX();
$x_temp+=4;
$pdf->SetX($x_temp);
$y_temp=$pdf->GetY();
Autor: Antonio Martínez Martínez
203
SELWA: Sistema de gestión, seguimiento y automatización de informes para
alumnos con necesidades educativas especiales.
6 Pliego de condiciones
$y_temp+=1;
$pdf->SetY($y_temp);
$pdf->Write(5,$subareas[$j]);
$m=0;
while($numComs[$k] > 0){
$nueva_y=$pdf->GetY();
$nueva_y+=10;
$pdf->SetY($nueva_y);
$pdf->SetX(35);
$pdf->SetFont('Times','BU',10);
$pdf->Cell(27,5,'Asunto:',0,0,'C',0);
$pdf->SetFont('Times','',10);
$x_temp=$pdf->GetX();
$x_temp+=2;
$pdf->SetX($x_temp);
$pdf->Write(5,$asuntos[$k][$m]);
$x_temp=$pdf->GetX();
$x_temp+=18;
$pdf->SetX($x_temp);
$pdf->Write(5,'Fecha: '.$fechas[$k][$m]);
$nueva_y=$pdf->GetY();
$nueva_y+=10;
$pdf->SetY($nueva_y);
$pdf->SetX(40);
$pdf->SetFont('Times','B',10);
$pdf->Cell(30,5,'Comentario:',0,0,'C',0);
$pdf->SetFont('Times','',10);
$pdf->Write(5,' ');
$pdf->Write(5,$coments[$k][$m]);
$pdf->Ln(15);
$m++;
$numComs[$k]--;
}
if($numSubareas_total[$i]!=1){
$y_temp=$pdf->GetY();
$y_temp+=6;
$pdf->SetLineWidth(0.1);
$pdf->SetDrawColor(230,230,230);
$pdf->Line(15,$y_temp,130,$y_temp);
}
$numSubareas_total[$i]--;
}
$j++;
Autor: Antonio Martínez Martínez
204
SELWA: Sistema de gestión, seguimiento y automatización de informes para
alumnos con necesidades educativas especiales.
6 Pliego de condiciones
$y_temp=$pdf->GetY();
$y_temp+=10;
$pdf->SetLineWidth(0.4);
$pdf->SetDrawColor(0,0,0);
$pdf->Line(15,$y_temp,140,$y_temp);
$numAreas--;
$n++;
$ult_y=$pdf->GetY();
}
if(strcmp($an_pers,"ok")==0){
$nueva_y=$ult_y+20;
$pdf->SetY($nueva_y);
$pdf->SetFont('Times','B',16);
$pdf->SetX(20);
$pdf->Cell(60,8,'Anotación Personal:',1,0,'C',0);
$pdf->SetFont('Times','BU',16);
$nueva_y=$pdf->GetY();
$nueva_y+=10;
$pdf->SetY($nueva_y);
$pdf->SetX(30);
$pdf->SetFont('Times','BU',12);
$pdf->Cell(30,5,'Comentario:',0,0,'C',0);
$pdf->SetFont('Times','',10);
$pdf->Write(5,$an_pers_txt);
}
$pdf->Output();
?>
Autor: Antonio Martínez Martínez
205
SELWA: Sistema de gestión, seguimiento y automatización de informes para
alumnos con necesidades educativas especiales.
6 Pliego de condiciones
6.2.4 JavaScript
à funcs_GestPest.js
Se va a mostrar una de las funciones más importantes realizadas en
JavaScript: “manejador_pest”. Esta función es la encargada de controlar el
acceso a las distintas pestañas, comprobando si se cumplen las condiciones
necesarias y desencadenando la activación de las capas y las pestañas
oportunas.
/*Funcion: manejador_pest.
**Parametros: id_orig: Identificador de la capa correspondiente a la
**pestaña en la que estoy actualmente.
**
id_dest: Identificador de la capa correspondiente a la
**
pestaña que va a pasar a ser la activa.
**
Comentario: Es la funcion principal del mecanismo de
**
pestañas. Mediante los dos parametros recibidos aciva
**
y desactiva las pestañas y las capas correspondientes para
**
mostrar la informacion solicitada. Se encarga de guardar los
**
valores introducidos en los diferentes campos para su
**
posterior tratamiento de comprobacion de validez, no
**
permitiendo al usuario avanzar de pestaña hasta que todos
**
los datos sean correctos.
**
**Valor devuelto: Nada.
*/
function manejador_pest(id_orig,id_dest){
var i=0;
var elem;
var num_resp_tut=0;
var capas_a_mostrar=new Array(5);
var pest_a_mostrar=new Array(5);
if(id_orig=="datos1"){
for(i=0;i<4;i++){
elem=document.getElementById("tut"+i);
if(elem!=null){
if(elem.checked){
num_resp_tut++;
}
}
}
i=0;
/*GUARDO LOS VALORES DE LOS REGISTROS*/
pest[0][0]=document.getElementById("nombre").value;
pest[0][1]=document.getElementById("apel1").value;
pest[0][18]=document.getElementById("apel2").value;
pest[0][2]=document.getElementById("dia").value;
pest[0][3]=document.getElementById("mes").value;
pest[0][4]=document.getElementById("year").value;
pest[0][5]=document.getElementById("peso").value;
pest[0][6]=document.getElementById("estat").value;
Autor: Antonio Martínez Martínez
206
SELWA: Sistema de gestión, seguimiento y automatización de informes para
alumnos con necesidades educativas especiales.
6 Pliego de condiciones
pest[0][7]=document.getElementById("domic").value;
pest[0][8]=document.getElementById("tlf").value;
pest[0][9]=document.getElementById("localidad").value;
pest[0][10]=document.getElementById("provincia").value;
pest[0][11]=document.getElementById("pais").value;
pest[0][12]=document.getElementById("year_ing").value;
pest[0][13]=document.getElementById("tut_asoc").value;
pest[0][14]="";
pest[0][15]="";
pest[0][16]="";
pest[0][17]="";
for(i=0;i<num_resp_tut;i++)
pest[0][14+i]=document.getElementById("tut"+i).value;
/*COMPRUEBO QUE LOS VALORES INTRODUCIDOS SON VALIDOS*/
res_comprueba=comprueba_datos(id_orig,pest);
/*COMPRUEBO CUALES SON LAS CAPAS Y PESTAÑAS A MOSTRAR Y A OCULTAR*/
capas_a_mostrar=comprueba_capas(id_dest);
pest_a_mostrar=comprueba_pest(id_dest);
if(res_comprueba!=1){ /*SI TODO ES CORRECTO....*/
if(estado==1&&flag_pest==1)
estado=1;
if(estado==2&&flag_pest==1)
estado=2;
if(estado==3&&flag_pest==1)
estado=3;
if(estado==4&&flag_pest==1)
estado=4;
if(estado==0&&flag_pest==0&&id_dest!="datos1")
estado=1;
/*MUESTRO Y OCULTO LAS CAPAS Y PESTAÑAS QUE CORRESPONDAN*/
se_ve_2(capas_a_mostrar[4]);
no_se_ve_2(capas_a_mostrar[0],capas_a_mostrar[1],capas_a_mostrar[2],cap
as_a_mostrar[3],capas_a_mostrar[4]);
activo_2(pest_a_mostrar[4]);
no_activo_2(pest_a_mostrar[0],pest_a_mostrar[1],pest_a_mostrar[2],pest_
a_mostrar[3],pest_a_mostrar[4]);
}
}
Autor: Antonio Martínez Martínez
207
SELWA: Sistema de gestión, seguimiento y automatización de informes para
alumnos con necesidades educativas especiales.
6 Pliego de condiciones
if(id_orig=="datos2"){
/*GUARDO LOS VALORES DE LOS REGISTROS*/
pest[1][0]=document.getElementById("nombre_p").value;
pest[1][1]=document.getElementById("apel_p1").value;
pest[1][26]=document.getElementById("apel_p2").value;
pest[1][2]=document.getElementById("dia_p").value;
pest[1][3]=document.getElementById("mes_p").value;
pest[1][4]=document.getElementById("year_p").value;
pest[1][5]=document.getElementById("tlf_p").value;
pest[1][6]=document.getElementById("domic_p").value;
pest[1][7]=document.getElementById("tlf2_p").value;
pest[1][8]=document.getElementById("profesion_p").value;
pest[1][9]=document.getElementById("correo_p").value;
pest[1][10]=document.getElementById("nombre_m").value;
pest[1][11]=document.getElementById("apel_m1").value;
pest[1][27]=document.getElementById("apel_m2").value;
pest[1][12]=document.getElementById("dia_m").value;
pest[1][13]=document.getElementById("mes_m").value;
pest[1][14]=document.getElementById("year_m").value;
pest[1][15]=document.getElementById("tlf_m").value;
pest[1][16]=document.getElementById("domic_m").value;
pest[1][17]=document.getElementById("tlf2_m").value;
pest[1][18]=document.getElementById("profesion_m").value;
pest[1][19]=document.getElementById("correo_m").value;
pest[1][20]=document.getElementById("n_herm").value;
pest[1][21]=document.getElementById("lugar_herm").value;
pest[1][22]=document.getElementById("edad_emb").value;
pest[1][23]=document.getElementById("enf_emb").value;
pest[1][24]=document.getElementById("dif_parto").value;
pest[1][25]=document.getElementById("otros").value;
/*COMPRUEBO QUE LOS VALORES INTRODUCIDOS SON VALIDOS*/
res_comprueba=comprueba_datos(id_orig,pest);
/*COMPRUEBO CUALES SON LAS CAPAS Y PESTAÑAS A MOSTRAR Y A OCULTAR*/
capas_a_mostrar=comprueba_capas(id_dest);
pest_a_mostrar=comprueba_pest(id_dest);
if(res_comprueba!=1){ /*SI TODO ES CORRECTO....*/
if(estado==1&&flag_pest==1)
estado=1;
if(estado==2&&flag_pest==1)
estado=2;
if(estado==3&&flag_pest==1)
estado=3;
if(estado==4&&flag_pest==1)
estado=4;
if(estado==1&&flag_pest==0&&id_dest!="datos2")
estado=2;
Autor: Antonio Martínez Martínez
208
SELWA: Sistema de gestión, seguimiento y automatización de informes para
alumnos con necesidades educativas especiales.
6 Pliego de condiciones
/*MUESTRO Y OCULTO LAS CAPAS Y PESTAÑAS QUE CORRESPONDAN*/
se_ve_2(capas_a_mostrar[4]);
no_se_ve_2(capas_a_mostrar[0],capas_a_mostrar[1],capas_a_mostrar[2],cap
as_a_mostrar[3],capas_a_mostrar[4]);
activo_2(pest_a_mostrar[4]);
no_activo_2(pest_a_mostrar[0],pest_a_mostrar[1],pest_a_mostrar[2],pest_
a_mostrar[3],pest_a_mostrar[4]);
}
}
if(id_orig=="datos3"){
/*COMPRUEBO CUALES SON LAS CAPAS Y PESTAÑAS A MOSTRAR Y A OCULTAR*/
capas_a_mostrar=comprueba_capas(id_dest);
pest_a_mostrar=comprueba_pest(id_dest);
if(/*comprobacion ok*/1){ /*NO COMPROBAMOS NADA*/
if(estado==2&&flag_pest==1)
estado=2;
if(estado==3&&flag_pest==1)
estado=3;
if(estado==4&&flag_pest==1)
estado=4;
if(estado==2&&flag_pest==0&&id_dest!="datos3")
estado=3;
/*MUESTRO Y OCULTO LAS CAPAS Y PESTAÑAS QUE CORRESPONDAN*/
se_ve_2(capas_a_mostrar[4]);
no_se_ve_2(capas_a_mostrar[0],capas_a_mostrar[1],capas_a_mostrar[2],cap
as_a_mostrar[3],capas_a_mostrar[4]);
activo_2(pest_a_mostrar[4]);
no_activo_2(pest_a_mostrar[0],pest_a_mostrar[1],pest_a_mostrar[2],pest_
a_mostrar[3],pest_a_mostrar[4]);
}
}
if(id_orig=="datos4"){
/*COMPRUEBO CUALES SON LAS CAPAS Y PESTAÑAS A MOSTRAR Y A OCULTAR*/
capas_a_mostrar=comprueba_capas(id_dest);
pest_a_mostrar=comprueba_pest(id_dest);
Autor: Antonio Martínez Martínez
209
SELWA: Sistema de gestión, seguimiento y automatización de informes para
alumnos con necesidades educativas especiales.
6 Pliego de condiciones
if(/*comprobacion ok*/1){ /*NO COMPROBAMOS NADA*/
if(estado==3&&flag_pest==1)
estado=3;
if(estado==4&&flag_pest==1)
estado=4;
if(estado==3&&flag_pest==0&&id_dest!="datos4")
estado=4;
/*MUESTRO Y OCULTO LAS CAPAS Y PESTAÑAS QUE CORRESPONDAN*/
se_ve_2(capas_a_mostrar[4]);
no_se_ve_2(capas_a_mostrar[0],capas_a_mostrar[1],capas_a_mostrar[2],cap
as_a_mostrar[3],capas_a_mostrar[4]);
activo_2(pest_a_mostrar[4]);
no_activo_2(pest_a_mostrar[0],pest_a_mostrar[1],pest_a_mostrar[2],pest_
a_mostrar[3],pest_a_mostrar[4]);
}
}
if(id_orig=="datos5"){
/*COMPRUEBO CUALES SON LAS CAPAS Y PESTAÑAS A MOSTRAR Y A OCULTAR*/
capas_a_mostrar=comprueba_capas(id_dest);
pest_a_mostrar=comprueba_pest(id_dest);
if(/*comprobacion ok*/1){ /*NO COMPROBAMOS NADA*/
estado=4;
/*MUESTRO Y OCULTO LAS CAPAS Y PESTAÑAS QUE CORRESPONDAN*/
se_ve_2(capas_a_mostrar[4]);
no_se_ve_2(capas_a_mostrar[0],capas_a_mostrar[1],capas_a_mostrar[2],cap
as_a_mostrar[3],capas_a_mostrar[4]);
activo_2(pest_a_mostrar[4]);
no_activo_2(pest_a_mostrar[0],pest_a_mostrar[1],pest_a_mostrar[2],pest_
a_mostrar[3],pest_a_mostrar[4]);
}
}
}
Autor: Antonio Martínez Martínez
210
SELWA: Sistema de gestión, seguimiento y automatización de informes para
alumnos con necesidades educativas especiales.
6 Pliego de condiciones
à funcs_Varias.js
En este archivo (el que se encuentra en la carpeta “funcs_ficha” dentro de
la carpeta “javascript”) encontramos la función que realiza la actualización
dinámica del menú desplegable “Tipología” en función del valor seleccionado en
“Tipología”.
/*Funcion: actualiza_sel.
**Parametros: sel_orig: identificador del elemento "select" que provoca
**
el cambio.
**
sel_dest: identificador del elemento "select" que se va a
**
actualizar en funcion del valor seleccionado en "sel_orig".
**Comentario: Esta funcion genera los elementos "option" de "sel_dest"
**
que tienen que mostrarse, en funcion del elemento
**
seleccionado en "sel_orig".
**
**Valor devuelto: Nada.
*/
function actualiza_sel(sel_orig,sel_dest){
var
var
var
var
var
sel_orig=document.getElementById(sel_orig);
sel_dest=document.getElementById(sel_dest);
datos=new Array();
longitud=0;
i=0;
if(sel_orig.value==1){
datos[1]="Parálisis Cerebral";
datos[2]="Espina Bífida";
datos[3]="Distrofias Musculares";
datos[4]="Distrofias Óseo-Artic.";
datos[5]="Ataxia de Friedreich";
datos[6]="Atrofia Muscular Espinal";
datos[7]="Polimielitis Ant. Aguda";
datos[8]="Otras";
}
if(sel_orig.value==2){
datos[1]="Síndrome de Down";
datos[2]="Síndrome de X-frágil";
datos[3]="Otras";
}
if(sel_orig.value==3){
datos[1]="Deficiencia Auditiva";
datos[2]="Deficiencia Visual";
datos[3]="Otras";
}
Autor: Antonio Martínez Martínez
211
SELWA: Sistema de gestión, seguimiento y automatización de informes para
alumnos con necesidades educativas especiales.
6 Pliego de condiciones
if(sel_orig.value==4){
datos[1]="Otras";
}
if(sel_orig.value==5){
datos[1]="Autismo";
datos[2]="Síndrome de Rett";
datos[3]="Síndrome de Asperger";
datos[4]="Otras";
}
if(sel_orig.value==6){
datos[1]="T.D.A.H.";
datos[2]="Trastorno Disocial";
datos[3]="Otras";
}
if(sel_orig.value==7){
datos[1]="Anorexia";
datos[2]="Bulimia";
datos[3]="Vigorexia";
datos[4]="Dismorfia Corporal";
datos[5]="Otras";
}
if(sel_orig.value==8){
datos[1]="Trastorno con Tic";
datos[2]="Síndrome de Tourette";
datos[3]="Otras";
}
/*BORRO LOS VALORES QUE HUBIERA ANTERIORMENTE CARGADOS*/
sel_dest.length=0;
i=1;
longitud=datos.length;
/*AÑADO LOS NUEVOS VALORES CORRESPONDIENTES*/
for(i=1;i<longitud;i++){
var op=document.createElement("option");
op.appendChild(document.createTextNode(datos[i]));
op.value=datos[i];
sel_dest.appendChild(op);
}
}
Autor: Antonio Martínez Martínez
212
SELWA: Sistema de gestión, seguimiento y automatización de informes para
alumnos con necesidades educativas especiales.
6 Pliego de condiciones
à funcs_Ayuda.js
En este archivo se encuentra la función encargada de gestionar las
peticiones de ayuda. En el apartado siguiente 6.2.5 “AJAX“ se muestra la
función que finalmente muestra la ventana de ayuda, tras la consulta AJAX a la
base de datos.
/*Funcion: manejador_ayuda.
**Parametros: ob: elemento sobre el cual hay que mostrar ayuda.
**
tipo: cadena que servira como discriminador de grupos de
**
ayuda. Sus valores pueden ser: "tipo", "pato", "nivel",
**
"buscar", "ayuda_esp" o "ev_ini".
**
valor: Numero que identificara univocamente en la base de
**
datos al elemento del que quiero obtener ayuda.
**Comentario:
Esta funcion prepara, en funcion del parametro "tipo", el
**
valor que hay que pasarle a la funcion "muestra_ayuda" en
**
xajax, para que muestre la ayuda correcta del elemento
**
seleccionado. Así mismo, prepara las coordenadas donde se
**
mostrara la ventana de ayuda para su correcta
**
visualizacion.
**
**Valor devuelto: Nada.
*/
function manejador_ayuda(ob,tipo,valor){
if(tipo!="progr_obj")
var valor1=document.getElementById("tipologia").value;
else
var valor1=0;
if(valor1=="Déficit Físico")
valor1=1;
if(valor1=="Déficit Psíquico")
valor1=2;
if(valor1=="Déficit Sensorial")
valor1=3;
if(valor1=="Sobredotación Intelectual")
valor1=4;
if(valor1=="Trastorno del Desarrollo")
valor1=5;
if(valor1=="Trastorno de la Conducta")
valor1=6;
if(valor1=="Trastorno Alimentarios")
valor1=7;
if(valor1=="Trastorno con Tic")
valor1=8;
if(tipo!="progr_obj")
var valor2=document.getElementById("patologia").value;
else
var valor2=0;
Autor: Antonio Martínez Martínez
213
SELWA: Sistema de gestión, seguimiento y automatización de informes para
alumnos con necesidades educativas especiales.
6 Pliego de condiciones
/*AYUDA PARA ELEMENTOS DE TIPO "TIPOLOGIA"*/
if(tipo=="tipo"){
if(valor==0)
valor=31;
document.getElementById("ayuda2").style.left=ob.offsetLeft+55+"px";
document.getElementById("ayuda2").style.top=ob.offsetTop+100+"px";
document.getElementById("ayuda2").style.display="block";
}
/*AYUDA PARA ELEMENTOS DE TIPO "PATOLOGIA"*/
if(tipo=="pato"){
if(valor=="Parálisis Cerebral")
valor=1;
if(valor=="Espina Bífida")
valor=2;
if(valor=="Distrofias Musculares")
valor=3;
if(valor=="Distrofias Óseo-Artic.")
valor=4;
if(valor=="Ataxia de Friedreich")
valor=5;
if(valor=="Atrofia Muscular Espinal")
valor=6;
if(valor=="Polimielitis Ant. Aguda")
valor=7;
if(valor=="Síndrome de Down")
valor=8;
if(valor=="Síndrome de X-frágil")
valor=9;
if(valor=="Deficiencia Auditiva")
valor=10;
if(valor=="Deficiencia Visual")
valor=11;
if(valor=="Autismo")
valor=12;
if(valor=="Síndrome de Rett")
valor=13;
if(valor=="Síndrome de Asperger")
valor=14;
if(valor=="T.D.A.H.")
valor=15;
if(valor=="Trastorno Disocial")
valor=16;
if(valor=="Anorexia")
valor=17;
if(valor=="Bulimia")
valor=18;
if(valor=="Vigorexia")
valor=19;
if(valor=="Dismorfia Corporal")
valor=20;
if(valor=="Trastorno con Tic")
valor=21;
Autor: Antonio Martínez Martínez
214
SELWA: Sistema de gestión, seguimiento y automatización de informes para
alumnos con necesidades educativas especiales.
6 Pliego de condiciones
if(valor=="Síndrome de Tourette")
valor=22;
if(valor=="Otras")
valor=30;
if(valor==0)
valor=31;
document.getElementById("ayuda2").style.left=ob.offsetLeft120+"px";
document.getElementById("ayuda2").style.top=ob.offsetTop+100+"px"
;
document.getElementById("ayuda2").style.display="block";
}
if(tipo=="tipo_inv"){
if(valor=="Déficit Físico")
valor=1;
if(valor=="Déficit Psíquico")
valor=2;
if(valor=="Déficit Sensorial")
valor=3;
if(valor=="Sobredotación Intelectual")
valor=4;
if(valor=="Trastorno del Desarrollo")
valor=5;
if(valor=="Trastorno de la Conducta")
valor=6;
if(valor=="Trastorno Alimentarios")
valor=7;
if(valor=="Trastorno con Tic")
valor=8;
tipo="tipo";
document.getElementById("ayuda2").style.left=ob.offsetLeft+55+"px";
document.getElementById("ayuda2").style.top=ob.offsetTop+100+"px";
document.getElementById("ayuda2").style.display="block";
}
/*AYUDA PARA ELEMENTOS DE TIPO "NIVEL"*/
if(tipo=="nivel"){
if(valor1==0)
valor=36;
if(valor1==1){
if(valor2=="Parálisis Cerebral"){
if(valor=="Parálisis Cerebral Espástica")
valor=1;
if(valor=="Parálisis Cerebral Atetoide")
valor=2;
if(valor=="Parálisis Cerebral Atáxica")
valor=3;
if(valor=="Estados Mixtos")
valor=4;
}
Autor: Antonio Martínez Martínez
215
SELWA: Sistema de gestión, seguimiento y automatización de informes para
alumnos con necesidades educativas especiales.
6 Pliego de condiciones
if(valor2=="Espina Bífida"){
if(valor=="Espina Bífida Oculta")
valor=5;
if(valor=="Lipomeningocele")
valor=6;
if(valor=="Encefalocele")
valor=7;
}
if(valor2=="Distrofias Musculares"){
valor=8;
}
if(valor2=="Atrofia Muscular Espinal"){
valor=9;
}
if(valor2!="Parálisis Cerebral"&&valor2!="Espina
Bífida"&&valor2!="Distrofias Musculares"&&valor2!="Atrofia Muscular
Espinal")
valor=10;
}
if(valor1==2){
if(valor2!="Otras"){
valor=11;
}
}
if(valor1==3){
if(valor2!="Otras"){
valor=12;
}
}
if(valor1==4){
valor=37;
}
if(valor1==5){
if(valor2=="Autismo"){
if(valor=="Nivel A")
valor=13;
if(valor=="Nivel B")
valor=14;
if(valor=="Nivel C")
valor=15;
}
if(valor2=="Síndrome de Rett"){
if(valor=="Estadio I")
valor=16;
if(valor=="Estadio II")
valor=17;
if(valor=="Estadio III")
valor=18;
if(valor=="Estadio IV")
valor=19;
}
Autor: Antonio Martínez Martínez
216
SELWA: Sistema de gestión, seguimiento y automatización de informes para
alumnos con necesidades educativas especiales.
6 Pliego de condiciones
if(valor2=="Síndrome de Asperger"){
if(valor=="Nivel A")
valor=20;
if(valor=="Nivel B")
valor=21;
if(valor=="Nivel C")
valor=22;
if(valor=="Nivel D")
valor=23;
if(valor=="Nivel E")
valor=24;
if(valor=="Nivel F")
valor=25;
}
}
if(valor1==6){
if(valor2=="T.D.A.H."){
if(valor=="Predominio Déficit Atención")
valor=26;
if(valor=="Predominio Hiperact.-Impulsivo")
valor=27;
if(valor=="Combinado")
valor=28;
}
if(valor2=="Trastorno Disocial"){
if(valor=="Trastorno Negativista Desafiante")
valor=29;
if(valor=="Otros")
valor=30;
}
}
if(valor1==7){
if(valor2!="Otras"){
valor=31;
}
}
if(valor1==8){
if(valor2=="Trastorno con Tic"){
if(valor=="Simple")
valor=32;
if(valor=="Complejo")
valor=33;
Autor: Antonio Martínez Martínez
217
SELWA: Sistema de gestión, seguimiento y automatización de informes para
alumnos con necesidades educativas especiales.
6 Pliego de condiciones
}
if(valor2=="Síndrome de Tourette"){
if(valor=="Simple")
valor=34;
if(valor=="Complejo")
valor=35;
}
}
document.getElementById("ayuda2").style.left=ob.offsetLeft+75+"px";
document.getElementById("ayuda2").style.top=ob.offsetTop+55+"px";
document.getElementById("ayuda2").style.display="block";
}
/*AYUDA PARA ELEMENTOS DE TIPO "BUSCAR"*/
if(tipo=="buscar"){
if(valor!=3){
document.getElementById("ayuda_estatica").style.left=ob.offsetLeft+520+
"px";
document.getElementById("ayuda_estatica").style.top=ob.offsetTop+235+"p
x";
document.getElementById("ayuda_estatica").style.display="block";
}
else{
document.getElementById("ayuda").style.left=ob.offsetLeft+375+"px";
document.getElementById("ayuda").style.top=ob.offsetTop+215+"px";
document.getElementById("ayuda").style.display="block";
}
}
/*AYUDA PARA BOTON BUSCAR DE LA PESTAÑA "DIAGNOSTICO"*/
if(tipo=="ayuda_esp"){
document.getElementById("ayuda2").style.left=ob.offsetLeft+75+"px";
document.getElementById("ayuda2").style.top=ob.offsetTop+45+"px";
document.getElementById("ayuda2").style.display="block";
}
/*AYUDA PARA ELEMENTOS DE LA PESTAÑA "EVALUACION INICIAL"*/
if(tipo=="ev_ini"){
if(valor==1){
document.getElementById("ayuda").style.left=ob.offsetLeft45+"px";
Autor: Antonio Martínez Martínez
218
SELWA: Sistema de gestión, seguimiento y automatización de informes para
alumnos con necesidades educativas especiales.
6 Pliego de condiciones
document.getElementById("ayuda").style.top=ob.offsetTop+107+"px";
document.getElementById("ayuda").style.display="block";
}
if(valor==2){
document.getElementById("ayuda").style.left=ob.offsetLeft+70+"px";
document.getElementById("ayuda").style.top=ob.offsetTop+25+"px";
document.getElementById("ayuda").style.display="block";
}
if(valor==3){
document.getElementById("ayuda").style.left=ob.offsetLeft185+"px";
document.getElementById("ayuda").style.top=ob.offsetTop+25+"px";
document.getElementById("ayuda").style.display="block";
}
if(valor==4){
document.getElementById("ayuda").style.left=ob.offsetLeft190+"px";
document.getElementById("ayuda").style.top=ob.offsetTop+25+"px";
document.getElementById("ayuda").style.display="block";
}
if(valor==5){
document.getElementById("ayuda").style.left=ob.offsetLeft+70+"px";
document.getElementById("ayuda").style.top=ob.offsetTop+25+"px";
document.getElementById("ayuda").style.display="block";
}
if(valor==6){
document.getElementById("ayuda").style.left=ob.offsetLeft+65+"px";
document.getElementById("ayuda").style.top=ob.offsetTop+25+"px";
document.getElementById("ayuda").style.display="block";
}
if(valor==7){
document.getElementById("ayuda").style.left=ob.offsetLeft195+"px";
document.getElementById("ayuda").style.top=ob.offsetTop+25+"px";
document.getElementById("ayuda").style.display="block";
}
if(valor==8){
document.getElementById("ayuda").style.left=ob.offsetLeft200+"px";
document.getElementById("ayuda").style.top=ob.offsetTop+25+"px";
document.getElementById("ayuda").style.display="block";
}
}
Autor: Antonio Martínez Martínez
219
SELWA: Sistema de gestión, seguimiento y automatización de informes para
alumnos con necesidades educativas especiales.
6 Pliego de condiciones
if(tipo=="ayuda_foto"){
document.getElementById("ayuda_estatica").style.left=ob.offsetLeft+525+
"px";
document.getElementById("ayuda_estatica").style.top=ob.offsetTop+255+"p
x";
document.getElementById("ayuda_estatica").style.display="block";
}
if(tipo=="ayuda_obj"){
document.getElementById("ayuda_estatica").style.left=ob.offsetLeft+90+"
px";
document.getElementById("ayuda_estatica").style.top=ob.offsetTop+230+"p
x";
document.getElementById("ayuda_estatica").style.display="block";
}
if(tipo=="ayuda_act"){
document.getElementById("ayuda_estatica").style.left=ob.offsetLeft+85+"
px";
document.getElementById("ayuda_estatica").style.top=ob.offsetTop+230+"p
x";
document.getElementById("ayuda_estatica").style.display="block";
}
if(tipo=="progr_obj"){
document.getElementById("ayuda2").style.left=ob.offsetLeft+45+"px";
document.getElementById("ayuda2").style.top=ob.offsetTop+20+"px";
document.getElementById("ayuda2").style.display="block";
}
/*LLAMADA A LA FUNCION QUE MUESTRA EL ICONO DE ESPERA*/
iniwait();
/*LLAMADA A LA FUNCION XAJAX QUE MUESTRA LA AYUDA*/
xajax_muestra_ayuda(tipo,valor);
}
Autor: Antonio Martínez Martínez
220
SELWA: Sistema de gestión, seguimiento y automatización de informes para
alumnos con necesidades educativas especiales.
6 Pliego de condiciones
à add_obj.php
Código JavaScript embebido en el archivo add_obj.php que permite la
adición de nuevos objetivos al listado de competencias de los N.C.C.
var contenedor=opener.document.getElementById("t_res");
var
var
var
var
var
var
var
elem1=opener.document.createElement("tr");
elem2=opener.document.createElement("td");
elem2_1=opener.document.createElement("span");
elem3=opener.document.createElement("td");
elem4=opener.document.createElement("td");
elem5=opener.document.createElement("input");
elem6=opener.document.createElement("input");
newAttr=opener.document.createAttribute("class");
var aux=num_preg%2;
if(aux!=0)
newAttr.nodeValue="res_par";
else
newAttr.nodeValue="res_impar";
elem1.setAttributeNode(newAttr);
newAttr=opener.document.createAttribute("onmouseover");
newAttr.nodeValue="this.style.backgroundColor=\'#FF9900\'";
elem1.setAttributeNode(newAttr);
newAttr=opener.document.createAttribute("onmouseout");
if(aux!=0)
newAttr.nodeValue="this.style.backgroundColor='#ACD0F4'";
else
newAttr.nodeValue="this.style.backgroundColor='#dfecfd'";
elem1.setAttributeNode(newAttr);
Autor: Antonio Martínez Martínez
221
SELWA: Sistema de gestión, seguimiento y automatización de informes para
alumnos con necesidades educativas especiales.
6 Pliego de condiciones
newAttr=opener.document.createAttribute("class");
newAttr.nodeValue="enc2";
elem3.setAttributeNode(newAttr);
newAttr=opener.document.createAttribute("type");
newAttr.nodeValue="radio";
elem5.setAttributeNode(newAttr);
newAttr=opener.document.createAttribute("name");
newAttr.nodeValue="obje";
newAttr.nodeValue+=num_preg;
elem5.setAttributeNode(newAttr);
newAttr=opener.document.createAttribute("value");
newAttr.nodeValue="si";
elem5.setAttributeNode(newAttr);
newAttr=opener.document.createAttribute("class");
newAttr.nodeValue="enc2";
elem4.setAttributeNode(newAttr);
newAttr=opener.document.createAttribute("type");
newAttr.nodeValue="radio";
elem6.setAttributeNode(newAttr);
newAttr=opener.document.createAttribute("name");
newAttr.nodeValue="obje";
newAttr.nodeValue+=num_preg;
elem6.setAttributeNode(newAttr);
newAttr=opener.document.createAttribute("checked");
newAttr.nodeValue="checked";
elem6.setAttributeNode(newAttr);
newAttr=opener.document.createAttribute("value");
newAttr.nodeValue="no";
elem6.setAttributeNode(newAttr);
elem2_1.innerHTML=num_preg;
elem2_1.innerHTML+=" - ";
elem2_1.innerHTML+=document.getElementById("preg"+i).value;
elem4.appendChild(elem6);
elem3.appendChild(elem5);
elem2.appendChild(elem2_1);
elem1.appendChild(elem2);
elem1.appendChild(elem3);
elem1.appendChild(elem4);
contenedor.appendChild(elem1);
num_preg++;
Autor: Antonio Martínez Martínez
222
SELWA: Sistema de gestión, seguimiento y automatización de informes para
alumnos con necesidades educativas especiales.
6 Pliego de condiciones
6.2.5 AJAX
à server.php
Como se ha comentado en distintos apartados del presente documento,
AJAX no es una tecnología en sí misma. Por esto, lo que se muestra es el código
PHP donde se hace uso de las funciones provistas por la librería XAJAX,
encargadas de la consulta a base de datos y posterior envío de información para
ser mostrada.
<?php
/*funcion: muestra ayuda.
**parametros: tipo: discriminador que servira para agrupar
**
tipos de ayuda.
**
valor: valor unico dentro de la base de datos
**
para la ayuda asociada a un elemento en
**
concreto.
**Comentario: Esta funcion es la encargada de mostrar la
**
ayuda de cualquier elemento que muestre un
**
icono de ayuda en la aplicacion.
**Valor devuelto: La frase a mostrar en la capa de ayuda
**
correspondiente.
*/
require_once("actualiza_DB.php");
require_once ("./xajax/xajax.inc.php");
$xajax = new xajax("server.php");
$xajax->registerFunction('muestra_ayuda');
function muestra_ayuda($tipo,$valor)
{
if(strcmp($tipo,"act_DB")==0){
$objResponse = new xajaxResponse();
$result=act_DB($valor);
if(strcmp($result,"1")==0)
$frase_act="Pulse Actualizar para confirmar el cambio.";
else
$frase_act="No se ha producido el cambio. Inténtelo
de nuevo.";
$objResponse->addAssign("actualizacion", "innerHTML", $frase_act);
$objResponse->addScriptCall("FX_falloff","actualizacion",2);
return $objResponse->getXML();
}
else{
Autor: Antonio Martínez Martínez
223
SELWA: Sistema de gestión, seguimiento y automatización de informes para
alumnos con necesidades educativas especiales.
6 Pliego de condiciones
/*INSTANCIAMOS EL OBJETO "xajaxResponse"*/
$objResponse = new xajaxResponse();
/*REALIZAMOS LA LECTURA DE LA BASE DE DATOS DEL ELEMENTO
**CORRESPONDIENTE, DADO POR LOS PARAMETROS "tipo" y "valor".
*/
$connect=mysql_connect("localhost","root");
mysql_select_db("db_ee",$connect);
$sql="SELECT * FROM ayuda WHERE asoc='$tipo' AND valor=$valor";
if($result=mysql_query($sql)){
while($row=mysql_fetch_array($result)){
$frase=$row['contenido'];
}
}
/*PREPARAMOS LA FRASE DE SALIDA*/
$frase_out="<div id='capa_help'><strong>Ayuda</strong></div><br />";
$frase_out .= $frase;
/*ESTABLECEMOS EL OBJETO "xajaxResponse" PARA ACTUALIZAR EL OBJETO HTML
**CUYO ID PUEDE SER "ayuda", "ayuda2", "ayuda_estatica", "ayuda3" o
**"ayuda_otra".
*/
if(strcmp($tipo,"buscar")!=0)
$objResponse->addAssign("ayuda", "innerHTML", $frase_out);
else
$objResponse->addAssign("ayuda_estatica", "innerHTML", $frase_out);
if(strcmp($tipo,"tipo")==0||strcmp($tipo,"pato")==0||strcmp($tipo,"nive
l")==0||strcmp($tipo,"ayuda_esp")==0||strcmp($tipo,"progr_obj")==0)
$objResponse->addAssign("ayuda2", "innerHTML", $frase_out);
else{
if(strcmp($tipo,"copiar")!=0)
$objResponse->addAssign("ayuda_estatica", "innerHTML",
$frase_out);
else{
if(strcmp($tipo,"ayuda_obj")!=0&&strcmp($tipo,"ayuda_foto")!=0)
$objResponse->addAssign("ayuda3", "innerHTML", $frase_out);
else
$objResponse->addAssign("ayuda_estatica", "innerHTML",
$frase_out);
}
}
/*DEVOLVEMOS EL RESULTADO*/
return $objResponse->getXML();
}//fin else inicial
}
$xajax->processRequests();
?>
Autor: Antonio Martínez Martínez
224
SELWA: Sistema de gestión, seguimiento y automatización de informes para
alumnos con necesidades educativas especiales.
7 Bibliografía y Referencias
7 Bibliografía y Referencias
7.1 Bibliografía
Ø PHP5 and MySQL Bible
Tim Converse y Joyce Park. Editorial Wiley Publishing, Inc. 2004.
Ø Manual de PHP
Stig Sæther Bakken, Alexander Aulbach, Egon Schmid, Jim
Winstead, Lars Torben Wilson, Rasmus Lerdorf, Zeev Suraski,
Andrei Zmievski y Jouni Ahto. Editado por Rafael Martínez. 2001.
Ø JavaScript Bible, Gold Edition
Danny Goodman. Editorial Hungry Minds. 2001
7.2 Referencias Web
[1] http://www.w3.org/TR/xhtml1/#diffs
[2] http://www.en.wampserver.com/
[3] http://www.juntadeandalucia.es/averroes/recursos/index.php3
7.2.1 CSS
Ø http://www.sidar.org/recur/desde/traduc/es/css/cover.html
Completo manual de uso de hojas de estilo CSS2.
Ø http://www.html.it/articoli/nifty/index.html
Biblioteca para el redondeo de esquinas sin uso de imágenes.
Ø http://es.selfhtml.org/css/intro.html
Ø http://www.css3.info/preview
Autor: Antonio Martínez Martínez
225
SELWA: Sistema de gestión, seguimiento y automatización de informes para
alumnos con necesidades educativas especiales.
7 Bibliografía y Referencias
7.2.2 XHTML
Ø http://manual-xhtml.blogspot.com/2006/05/
Manual de uso de las nuevas características de XHTML respecto a
HTML.
Ø http://www.wikipedia.org
Información general sobre XHTML.
7.2.3 PHP
Ø http://www.php.net
Completo manual catalogado por funciones, con amplias y claras
explicaciones.
Ø http://www.php-hispano.net
Foro por y para desarrolladores PHP.
Ø http://www.desarrolloweb.com
Ø http://www.webnova.com.ar
7.2.4 JavaScript
Ø http://www.desarrolloweb.com
Manual práctico JavaScript.
Ø http://www.webtaller.com
Ø http://www.forosdelweb.com
Ø http://www.estadobeta.com
Blog de desarrollo y recursos.
Ø http://www.elcodigo.net/tutoriales/jsavanzado/jsavanzado7.html
Descripción del DOM.
Autor: Antonio Martínez Martínez
226
SELWA: Sistema de gestión, seguimiento y automatización de informes para
alumnos con necesidades educativas especiales.
7 Bibliografía y Referencias
7.2.5 MySQL
Ø http://dev.mysql.com
Completo manual de consulta, con función de búsqueda.
Ø http://www.mysql-hispano.org
Foro de consulta.
Ø http://mysql.conclase.net/curso/index.php
Ø http://www.mysqlya.com.ar
Ø http://www.tejedoresdelweb.com/slides/bases_datos/screen/teo3_m
odel_er.pdf
Modelo entidad-relación.
Ø http://www.dcc.uchile.cl/~ccollazo/cc20a/e-r.html
Modelo entidad-relación.
Ø http://www.netpecos.org/docs/mysql_postgres
Diferencias MySQL/PostgreSQL
7.2.6 AJAX
Ø http://www.www.uberbin.net/archivos/internet/ajax-un-nuevoacercamiento-a-aplicaciones-web.php
Introducción y teoría sobre AJAX
Ø http://www.xajaxproject.org
Manual y librería para el uso de XAJAX.
7.2.7 Otros enlaces de interés
Ø http://www.es.geocities.com/adaptacionescurriculares/competencia.h
tm
Documentación sobre competencias en centros escolares
Ø http://www.pasoapaso.com.ve/GEMAS/gemas_157.htm#5
Adaptaciones curriculares individuales
Ø http://w3.cnice.mec.es/recursos2/atencion_diversidad/01_00.htm
Página del ministerio de educación dedicada a la educación
especial. Contiene las clasificaciones utilizadas en el presente
proyecto, así como gran cantidad de información referente a la
Autor: Antonio Martínez Martínez
227
SELWA: Sistema de gestión, seguimiento y automatización de informes para
alumnos con necesidades educativas especiales.
7 Bibliografía y Referencias
educación especial
Ø http://www.scourdesign.com
Diseño gráfico de páginas web, tutoriales XHTML, CSS, etc.
Ø http://www.fpdf.org
Sitio donde descargar la biblioteca para el manejo de archivos PDF
desde PHP. Manuales y tutoriales.
Ø http://ctrld.blogspot.com/2006/06/wamp.html
Blog que trata sobre la herramienta WAMP.
Para multitud de definiciones y consultas sobre teoría general de los distintos
lenguajes utilizados en esta aplicación, se ha recurrido, fundamentalmente, a la
ya mencionada http://www.wikipedia.org.
Aquellas referencias web que no tengan descrito el propósito con el que
fueron consultadas, bien son enlaces con información muy general, bien su
información es meramente orientativa, nunca relevante para la elaboración del
presente proyecto.
Existen, además, dos personas que han resultado de vital importancia como
fuente de información. Por un lado, Carlos Serrano Sánchez, Ingeniero de
Telecomunicación por la Universidad de Sevilla, en lo referente a temas técnicos
de PHP, JavaScript y MySQL. Por otro lado, Aurora Vega Afán, maestra de
pedagogía terapéutica y coordinadora del equipo de orientación y apoyo
(EDOA) del Colegio Virgen del Valle, en la localidad cordobesa de Lucena. Toda
la información concerniente a la educación especial ha sido contrastada con ella,
habiendo proporcionado multitud de informes, clasificaciones e ideas sobre
cómo orientar la aplicación.
Autor: Antonio Martínez Martínez
228
Descargar