Documentación general

Anuncio
José Aparicio García
SPORTALIA37 WEB DE EVENTOS DEPORTIVOS
PROYECTO FINAL DE CARRERA
dirigido per la Dr. Carlos Molina Clemente
Ingeniería Técnica en Informática de Gestión
Tarragona
2014
Documentación general
Página 2
Documentación general
Tabla de contenido
1. Prefacio........................................................................................................................................................ 7
1. Prefaci.......................................................................................................................................................... 9
1. Abstract ..................................................................................................................................................... 11
2. Introducción.............................................................................................................................................. 13
2.1 Eventos deportivos .............................................................................................................................. 13
2.2 CMS .................................................................................................................................................... 14
2.2.1 - ¿Qué es un gestor de contenidos o CMS? .................................................................................. 14
2.2.2- Historia ....................................................................................................................................... 15
2.2.3- Funcionalidades .......................................................................................................................... 16
2.2.4 Clasificación de los CMS ............................................................................................................... 16
2.2.5 Ejemplos de los CMS más utilizados ....................................................................................... 17
2.3. Drupal ................................................................................................................................................ 19
2.3.1 Definición ..................................................................................................................................... 19
2.3.2 Arquitectura de Drupal ................................................................................................................ 20
2.3.3 Principales características de DRUPAL......................................................................................... 21
2.3.4 Ventajas de trabajar con Drupal .................................................................................................. 22
2.3.5 Conceptos .................................................................................................................................... 24
2.3.6 Instalación y configuración .......................................................................................................... 25
2.3.7 Sitios web desarrollados con Drupal ............................................................................................ 26
2.3.8 Conceptos Drupal......................................................................................................................... 30
2.3.8.1 Núcleo .................................................................................................................................... 30
2.3.8.2 Módulos ................................................................................................................................. 31
2.3.8.3 Hooks ..................................................................................................................................... 31
2.3.8.4 Temas .................................................................................................................................... 32
2.3.8.5 Nodos..................................................................................................................................... 33
2.3.8.6 Regiones ................................................................................................................................ 33
2.3.8.7 Bloques .................................................................................................................................. 34
Página 3
Documentación general
3. Objetivos.................................................................................................................................................... 36
3.1 Objetivo principal ................................................................................................................................ 36
3.2 Propósito del proyecto ........................................................................................................................ 36
3.3 Antecedentes ...................................................................................................................................... 37
4. Especificaciones ......................................................................................................................................... 38
4.1 Especificaciones del proyecto .............................................................................................................. 38
4.1.1 Usabilidad .................................................................................................................................... 38
4.1.2 Modos de acceso ......................................................................................................................... 38
4.1.3 Usuarios y roles ............................................................................................................................ 39
4.1.4 Navegadores ................................................................................................................................ 40
4.1.5 Publicidad .................................................................................................................................... 40
4.2 Casos de uso ........................................................................................................................................ 41
4.2.1 Creación de usuarios .................................................................................................................... 41
4.2.1.2 Clases de usuarios ..................................................................................................................... 42
4.2.2 Acceso a la información de sitio .................................................................................................. 42
4.2.3 Publicación de eventos ................................................................................................................ 42
4.2.4 Comentarios................................................................................................................................. 44
4.2.5 Creación de blogs (cuaderno de bitácora) ................................................................................... 45
4.2.6 Actualidad RSS ............................................................................................................................. 46
4.2.7 Crear encuestas ........................................................................................................................... 47
4.2.8 Votar encuestas ........................................................................................................................... 48
4.2.9 RSS Really Simple Syndication...................................................................................................... 48
4.2.10 Consultar los eventos propios publicados .................................................................................. 49
4.2.11 Acceso a contenido mediante la nube de tags .......................................................................... 50
4.2.12 Acceso a los eventos a través del rotor de la página principal .................................................. 53
4.2.13 Compartir contenido en redes sociales ...................................................................................... 53
4.2.14 Votar evento .............................................................................................................................. 55
4.2.15 Image upload ............................................................................................................................. 56
4.2.16 Crear una Historia anónima....................................................................................................... 57
5. Diseño y desarrollo .................................................................................................................................... 58
5.1 Instalación ........................................................................................................................................... 58
5.1.1 Instalación de Drupal paso a paso ............................................................................................... 58
5.1.2 Recomendaciones funcionales ..................................................................................................... 62
5.1.2.1 Programación automática del ejecutable cron.php ................................................................. 62
Página 4
Documentación general
5.1.2.2 URL´s limpia ............................................................................................................................. 66
5.2 Bloques ................................................................................................................................................ 68
5.3 Taxonomía .......................................................................................................................................... 76
5.4 Tipos de contenido .............................................................................................................................. 77
5.4.1 Contenidos modificados y/o importados con módulos ................................................................ 77
5.4.2 Contenidos creados y diseñados para Sportalia37 ...................................................................... 80
5.5 Módulos utilizados .............................................................................................................................. 81
5.5.1 Core modules ............................................................................................................................... 81
5.5.2 Contributed modules ................................................................................................................... 83
5.5.3 Directrices para crear un módulo ................................................................................................ 90
5.5.4 Módulos creados ......................................................................................................................... 92
5.5.4.1 Módulo recomienda .............................................................................................................. 92
5.5.4.1.1 Descripción ..................................................................................................................... 92
5.5.4.1.2 Estructura ....................................................................................................................... 92
5.5.4.1.3 Hooks .............................................................................................................................. 92
5.5.4.1.4 Funcionamiento .............................................................................................................. 93
5.5.4.2 Módulo expiración ................................................................................................................. 94
5.5.4.2.1 Descripción ..................................................................................................................... 94
5.5.4.2.2 Estructura ....................................................................................................................... 94
5.5.4.2.3 Hooks .............................................................................................................................. 95
5.5.4.2.4 Base de datos ................................................................................................................. 96
5.5.4.2.5 Permisos ......................................................................................................................... 96
5.5.4.2.6 Funcionamiento .............................................................................................................. 97
5.5.4.3 Módulo depuración ............................................................................................................... 98
5.5.4.3.1 Descripción ..................................................................................................................... 98
5.5.4.3.2 Estructura ....................................................................................................................... 98
5.5.4.3.3 Hooks .............................................................................................................................. 99
5.5.4.3.4 Base de datos ............................................................................................................... 101
5.5.4.3.5 Funcionamiento ............................................................................................................ 102
5.5.5 Tema creado .............................................................................................................................. 104
Página 5
Documentación general
5.5.6 Lenguajes de programación utilizados ...................................................................................... 106
5.5.7 Programas y aplicaciones utilizados .......................................................................................... 107
6. Pruebas .................................................................................................................................................... 112
7. Planificación temporal............................................................................................................................. 114
8. Costes ...................................................................................................................................................... 116
8.1 Estudio previo.................................................................................................................................... 116
8.2 Conclusiones...................................................................................................................................... 120
9. Legislación ............................................................................................................................................... 122
9.1 Ley orgánica de protección de datos................................................................................................. 122
10. Mejoras ................................................................................................................................................. 124
10.1 Mantenimiento ............................................................................................................................... 124
10.2 Actualización a Drupal 8 ................................................................................................................. 125
11. Conclusiones generales ......................................................................................................................... 128
12. Referencias / Bibliografía ...................................................................................................................... 130
13. Glosario ................................................................................................................................................. 132
Página 6
Documentación general
1. Prefacio
Son ya muchos los eventos deportivos en los que mi grupo de amigos y yo
hemos acudido como participantes, triatlones, maratones, travesías… Siempre
que se acaba una prueba los atletas hablamos sobre que tal ha sido la
organización, si ha habido buenos avituallamientos, si todo ha estado bien
señalizado, si el precio que se ha pagado por participar se ajusta a la calidad de
lo ofrecido y un largo etcétera, opiniones que, siempre se quedan entre nosotros
y nunca llegan a los organizadores con la contundencia y la transparencia que
debería. En las páginas web de los organizadores no es nada fácil encontrar la
posibilidad de que los participantes puedan expresar dichas inquietudes
libremente una vez todo ha finalizado.
Aunar en una misma web a organizadores y atletas haciéndoles partícipes de los
contenidos, comentarios, encuestas y demás funcionalidades y que todos ellos
puedan opinar con total libertad del evento realizado fue la idea inicial que dio
paso al desarrollo de esta página web.
Sportalia37 será una solución a esta falta de transparencia, pretendiendo ser de
utilidad a todos los implicados (organizadores y atletas). Esta web permitirá, por
un lado, mejorar los futuros eventos de los organizadores y por el otro, los
atletas sabrán las virtudes y carencias del evento en cuestión.
El motor que sostiene el sitio web es DRUPAL, un sistema de gestión de
contenidos web (CMS), desarrollado por una extensa comunidad de
programadores independientes que comparten y mejoran continuamente sus
módulos, temas y demás partes del dicho sistema de forma gratuita y altruista.
Página 7
Documentación general
Su enorme potencial, total flexibilidad y uso extendido fueron determinantes para
su elección frente a otros CMS existentes.
Página 8
Documentación general
1. Prefaci
Són ja molts els esdeveniments esportius en els que el meu grup d'amics i
jo hem acudit com a participants , triatlons , maratons , travesses ... Sempre que
s'acaba una prova els atletes parlem sobre com ha estat l'organització , si hi ha
hagut bons avituallaments , si tot ha estat ben senyalitzat , si el preu que s'ha
pagat per participar s'ajusta a la qualitat de l'ofert i un llarg etcètera , opinions
que , sempre es queden entre nosaltres i mai arriben als organitzadors amb la
contundència i la transparència que hauria de ser. A les pàgines web dels
organitzadors no és gens fàcil trobar la possibilitat que els participants puguin
expressar aquestes inquietuds lliurement una vegada tot ja ha acabat .
Unir en una mateixa web a organitzadors i atletes fent-los partícips dels
continguts , comentaris , enquestes i altres funcionalitats i que tots ells puguin
opinar amb total llibertat sobre els esdeveniments va ser la idea inicial que va
donar pas al desenvolupament d'aquesta pàgina web .
Sportalia37 serà una solució a aquesta manca de transparència , pretenent ser
d'utilitat a tots els implicats ( organitzadors i atletes ) . Aquest web permetrà ,
d'una banda , promocionar i millorar els esdeveniments dels organitzadors ja que
aquests sabran de boca dels propis participants quines han estat les mancances i
virtuts de l'esdeveniment i de l'altra , els atletes més d'opinar i interactuar amb
múltiple contingut també sabran aquests encerts i errors de l'esdeveniment en
qüestió gràcies a l'opinió de companys . Aquesta serà una condició que tot
organitzador haurà d'assumir si pretén promocionar-se a la web.
Página 9
Documentación general
El motor que sosté el lloc web és DRUPAL , un sistema de gestió de continguts
web ( CMS ) , desenvolupat per una extensa comunitat de programadors
independents que comparteixen i milloren contínuament els seus mòduls , temes
i altres parts de la dita sistema de forma gratuïta i altruista . El seu enorme
potencial, total flexibilitat i ús estès van ser determinants per a la seva elecció
davant d'altres CMS existents.
Página
10
Documentación general
1. Abstract
It has already been many sport events that my group of friends and I
have participated in, triathlons, marathons, cruises… Every time we finish a
competition we talk and give our opinion about it, for example if refreshments
have really been good, if everything has been well explained, if the price we
have paid matches the general quality and other aspects of the event. These
opinions are always forgotten and are never known by the organizers. In their
websites is not easy and most times is imposible that participants can freely
express those concerns once everything is finished.
Joining in the same website organizers and athletes making them
participants in the content, comments, polls and other features and that all these
can freely comment about the events it was the initial idea wich led to the
development of this project.
Sportalia37 will be a solution to this lack of transparency, pretending to be
helpful to all the people involved (organizers and athletes). This site will allow,
on one hand, promote and enhance the organizer´s events because they will
know from the athletes what kind of things are deficiencies and what are virtues
of the event and the other hand, the athletes besides reviewing and interacting
with multiple contents will also know these successes and failures of the event
through their friend‟s opinions. This is a mandatory condition that an organizer
must asume if he wants to promote his event to the web.
The engine holding this project is is a popular web content management
system (CMS) whose name is DRUPAL, developed by a large community of
independent developers who share and continually improve their modules,
Página
11
Documentación general
themes and others parts of the system in a free and altruistic way. His great
potential, full flexibility and widespread use were the key to choose him over
other existing CMS.
Página
12
Documentación general
2. Introducción
Esta memoria explicará todo el proceso de construcción de la web a través
del CMS Drupal. Decisiones tomadas, módulos necesarios, costes de su puesta
en marcha, horas a dedicar y futuro mantenimiento una vez esté puesta en
marcha.
Además de todo lo nombrado anteriormente intentaremos indagar en otros
aspectos con el fin de ampliar nuestros conocimientos a propósito de los
diferentes tipos de CMS que existen en la actualidad y de que nos pueden
ofrecer.
2.1 Eventos deportivos
Definición
Los eventos deportivos son actividades físicas que se realizan de manera
esporádica teniendo multitud de repercusiones positivas en el lugar donde estas
se organizan: Infraestructuras, turismo, económicas, deportivas y un largo
etcétera.
Es obvio que a medida que han pasado los años estos han mejorado
considerablemente en muchos aspectos pero aun así los atletas que participan
en ellos habitualmente se quejan de ciertos aspectos que deberían mejorar.
Experiencia personal
Debido a mi implicación como miembro activo del Club Triatlón Tarragona y
participante de multitud de pruebas de todo tipo (maratones, triatlones, ironman,
duatlones, carreras de orientación, travesías, etcétera) puedo certificar de
primera mano que dichas carencias existen con independencia de la popularidad
y prestigio del evento. Es por este motivo por el que Sportalia37 pretende ser
Página
13
Documentación general
una web referente y plural sin ningún tipo de restricciones a la hora de comentar
los eventos deportivos y sus críticas pertinentes.
Carencias organizativas y problemática
La mayor parte de las carencias tienen que ver con los siguientes aspectos:










Poca visibilidad.
Escasez de plazas.
Mala señalización.
Malos accesos.
Confluencia de horarios.
Saturación y problemas circulatorios.
Falta de árbitros reguladores.
Escasez de alojamientos cercanos y a precios competitivos.
Poca vigilancia del material deportivo en boxes.
Falta de personal de socorro en travesías en mar abierto.
El principal problema es que no se da voz a las críticas de los participantes de
estas pruebas ya que los medios que la organización utiliza para promocionar
tales eventos (webs, radio, televisión, etcétera) no permiten comentarios con
críticas constructivas por miedo a que se desvirtúe dicha prueba.
Posibles soluciones
Está claro que existen soluciones para apaliar estas carencias y la piedra angular
de todo esto es recoger la voz de los atletas y crear un sitio donde se agrupen
todas las opiniones y críticas constructivas a propósito de las pruebas.
Sportalia37 pretende ser un portal donde organizadores podrán promocionar sus
eventos con la condición de que no pueden vetar los comentarios que se hagan
por parte de los participantes de sus eventos realizados.
Una vez recopilados ya será problema de dichos organizadores en paliar esas
carencias y mejorar la calidad de sus eventos.
2.2 CMS
2.2.1 - ¿Qué es un gestor de contenidos o CMS?
Un gestor de contenidos o CMS (Content management system) es una
aplicación para la creación de webs utilizada con el fin de poder crear, gestionar
Página
14
Documentación general
y editar contenidos. Especialmente diseñados para crear webs, todo buen CMS
tiene que permitir actualizar sus contenidos digitales regularmente además de
separar el diseño del contenido de forma clara para poder ser manejados de
forma independiente y con mayor flexibilidad. Además de lo nombrado
anteriormente también debe soportar múltiples usuarios con distintos perfiles, ha
de ser seguro, estable y soportar diferentes idiomas.
Tales gestores de contenidos permiten adaptarse a nuestras necesidades a
través de módulos específicos que se pueden acoplar a la estructura inicial
genérica con el fin de gestionar mejor el contenido digital moldeándose más a
las funcionalidades propias de cada diseño. Dichos contenidos digitales pueden
ser ficheros, galerías de fotos, encuestas, fórums, artículos, blogs, etcétera.
A través de un panel de administración los CMS permiten editar todo el
contenido así como de tener control total de todos los demás aspectos tales
como seguridad, criterios de autenticación, permisos para cada tipo de usuario, y
otros.
En el mercado existen numerosos CMS como por ejemplo, Joomla, OpenCms,
WordPress, Plone, Typo3, Liferay, Blogger, etcétera. A continuación veremos los
más utilizados por la comunidad de creadores de webs analizando sus principales
virtudes.
2.2.2- Historia
A principios de los años 90 no se conocían los sistemas de gestión de
contenidos. Los primeros sistemas de gestión fueron desarrollados por empresas
del sector de las publicaciones, tales como revistas y periódicos digitales, que
necesitaban publicar en sus webs grandes cantidades de contenido digital
necesitando numerosas actualizaciones como consecuencia del flujo constante
de nueva información que estas manejaban en sus redacciones.
RedDot fue una de las empresas pioneras en desarrollar un gestor de contenidos
a finales del año 1995, pero uno de los primeros CMS que ofrecía su código en
abierto y por lo tanto, de libre acceso para toda la comunidad de cibernautas,
fue Typo3 cuyo propulsor, Kasper Skarhoj, empezaría su desarrollo a mediados
del año 1997.
No fue hasta el nacimiento de PHPNuke, desarrollado en 2000, cuando este tipo
de herramientas empezó a ser utilizado mayoritariamente por las comunidades
internautas. La utilización masiva de portales web por parte de empresas,
Página
15
Documentación general
instituciones, administración y un largo etcétera que necesitaban gestionar de
manera ágil, segura y compacta grandes cantidades de contenido digital
catapultaron definitivamente a los CMS a la cima de las aplicaciones de creación
de páginas web.
2.2.3- Funcionalidades
El sistema CMS funciona en el servidor web en el que se halla ubicado el
portal. Mediante el navegador web se accederá al gestor de contenidos pudiendo
requerir el uso de FTP (File transfer protocol) para la subida de contenidos al
sitio debido a que su arquitectura es, como acabamos de decir, cliente-servidor.
Cada acceso a una URL por parte de un usuario implica que se ejecute en el
servidor esa llamada seleccionando el interfaz gráfico y la introducción de datos
asociados a tal acceso de la base de datos en la que se esté trabaje generando
dinámicamente la página para ese usuario en cuestión.
2.2.4 Clasificación de los CMS
Un primer criterio de clasificación de los CSM es según para que tipo de
utilización final estén enfocados, así por ejemplo, las posibilidades pueden ser
para crear una web de una empresa, hacer un blog, un sistema de e-learning,
una wiki, una tienda, conferencias, una revista, enseñanza on-line, comercio
electrónico, etcétera.
Un segundo criterio sería en función del lenguaje de programación empleado,
por ejemplo, Asp.net, Java, PHP, Python y muchos otros más.
Por último el criterio más relevante para muchos es el comercial. Existen
múltiples plataformas realizadas por empresas privadas con el fin de obtener
beneficios comerciales a través de la venta de su software, el más destacado sin
duda es Vignette siendo este el primero de pago en salir al mercado. Por otro
lado, los más utilizados por la comunidad internauta son los de código libre,
cuyas futuras actualizaciones y mejoras son desarrolladas por las propias
comunidades de internautas de forma libre y desinteresada. Los más populares
son Blogger, Wordpress, Joomla, Oscommerce y Drupal.
Página
16
Documentación general
2.2.5 Ejemplos de los CMS más utilizados
Blogger
- Definición: CMS on-line diseñado para la creación de Blogs.
- Historia: Creado por Pyra Labs y finalmente adquirido por goolge en el
año 2003. Permite a los usuarios crear cuadernos de bitácora on-line.
- Principales funcionalidades: Permite personalizar el aspecto del blog
sin saber código específico, restringir el acceso al sitio, adaptar los
contenidos para dispositivos móviles, publicación a través de correo
electrónico, sindicación RSS de entradas al blog, publicación de dominios
personalizados, número ilimitado de publicaciones por blog.
www.blogger.com
Wordpress
- Definición: Gestor de contenidos diseñado para utilizarlo en la creación
de blogs on-line.
- Historia: Desarrollado por Matt Mullenweg y Ryan Boren en PHP y
MySQL, destaca la versión actualizada de 2005 en la que se incorporaron
las más relevantes funcionalidades como el uso de páginas estáticas.
- Principales funcionalidades: Actualización automática del sistema a
partir de la versión 2.7, capacidad de crear páginas estáticas, fácil
personalización del sitio, publicación mediante e-mail, cinco posibles
estados para una entrada (publicado, borrador, en espera de revisión,
Página
17
Documentación general
privado y protegido), permite comentarios y herramientas de
comunicación entre blogs, subida y gestión de adjuntos y multimedia.
www.wordpress.org
Joomla
- Definición: CMS diseñado para desarrollar sitios web dinámicos e
interactivos permitiendo la gestión integral del sitio web a través de su
panel de administración.
- Historia: Nace el 17 de agosto de 2005 como consecuencia de la división
de Mambo Open Source gracias a la corporación Miro of Australia con la
finalidad de proteger el proyecto protegiéndolo de futuros pleitos. El 22 de
enero de 2008 se lanzó la version 1.5 estable de Joomla desarrollada en
PHP siendo esta la que dio su sello personal inconfundible ya que hasta el
momento el código y aspecto seguían siendo muy parecidos a mambo.
- Principales funcionalidades: Se puede ejecutar en Linux, MacOSX
server, Solaris y Aix, sólido soporte para teléfonos móviles, preparado para
trabajar en redes locales (intranet) o por internet requiriendo una base de
datos creada a través de MySQL, soporta múltiples idiomas. Capacidad de
soportar extensiones disponibles para dar una gran variedad de
funcionalidades adicionales como generar formularios dinámicos, gestor
de documentos, software de foros y chats, herramientas de registro de
datos, servicios de suscripción y un largo etcétera.
www.joomla.org
Oscommerce
-
Definición: CMS orientado al comercio electrónico y administración on-
line permitiendo de manera fácil crear una tienda on-line usando una base
de datos MySQL para su funcionalidad.
Página
18
Documentación general
- Historia: Si inicio en marzo del 2000 en Alemania por Harald Ponce de
León. En agosto de 2008 es cuando Oscommerce desvela que son más de
14.000 sitios “en vivo” que estarían desarrollados con dicho CMS.
- Principales funcionalidades: Los clientes pueden comprobar el
histórico y el estado de sus pedidos una vez registrados, búsqueda de
productos, posibilidad de que los usuarios valoren el producto adquirido,
plataforma multi-idiomas, medios de pago offline (transferencias, cheques,
etc…), notificaciones por correo electrónico, soporte de ssl, totalmente
modular, control por parte del administrador de las zonas de impuestos,
clases y ratios, el sistema de administración puede ser instalado en otro
servidor separado del catálogo, utilidad de copia de seguridad.
www.oscommerce.com
2.3. Drupal
2.3.1 Definición
Drupal es un sistema gestor de contenidos modular totalmente
configurable de código libre que permite la creación de páginas web dinámicas
multipropósito. Pese a su excelente adaptabilidad sea cual sea la funcionalidad
final del sitio que se desee crear destaca para webs en las que el objetivo
principal sea construir y gestionar a comunidades en internet con diferentes
niveles de usuarios.
Escrito en PHP bajo licencia de GNU/GPL es desarrollado y mantenido por una
activa comunidad de usuarios. El dinamismo de su sistema se debe a la
capacidad de almacenar todos sus contenidos en una base de datos editándolos
a través de un entorno web.
Destaca por la calidad tanto de su código como de las páginas generadas
además de respetar los estándares web y de ser un CMS muy consistente.
Existe una gran cantidad de documentación y fórums donde se pueden
solucionar dudas o problemas que puedan surgir en el desarrollo del sitio.
Algunos ejemplos de páginas web desarrolladas en Drupal se muestran en
Drupal Sites en las que se pueden que muchas instituciones y compañías de
relevancia internacional como Las webs de la Casablanca de E.E.U.U, el gobierno
de Bélgica, la Federación de natación Francesa, Voice of Sport entre otras.
Página
19
Documentación general
Aspecto de la página web de muestras de sitios desarrollados con Drupal www.drupalsites.net
2.3.2 Arquitectura de Drupal
El secreto de Drupal para conseguir su reconocida flexibilidad y facilidad
en la creación de sitios web es la abstracción y organización en capas que aplica
en el tratamiento de los contenidos. En lugar de considerar el sitio web como un
conjunto de páginas interrelacionadas, Drupal estructura los contenidos en una
serie de elementos básicos. Estos son los nodos (nodes) , módulos (modules),
bloques y menús (blocks & menus) , permisos de usuario y plantillas (templates).
Los Nodes son los elementos básicos en que Drupal almacena la información, los
contenidos. Así a medida que el sitio web crece, lo va haciendo el número de
Nodes los cuales van formando un “depósito de Nodes” cada vez mayor. Se
puede decir que la primera capa de la estructura de Drupal la forma este
“deposito” de Nodes.
Página
20
Documentación general
Los Modules son los elementos que operan sobre los Nodes y otorgan
funcionalidad a Drupal permitiendo incrementar sus capacidades o adaptarlas a
las necesidades de cada sitio web. Son como Plug-Ins que se instalan en el sitio
web proporcionándole nuevas funcionalides.
La siguiente capa de Drupal la consitituyen los “Blocks & Menus”. Estos permiten
estructurar y organizar los contenidos en la página web. Es decir que son los
elementos que albergan y permiten acceder al usuario a la salida generada y
procesada por los módulos a partir de la información almacenada en los nodos.
La siguiente capa importante en Drupal es la de control de usuarios y permisos.
Actualmente, la mayor parte de sitios web son multiusuario, por lo que la
seguridad y control de los usuarios es un punto clave para garantizar la
integridad de la información almacenada. Con esta finalidad Drupal dispone de
un registro de usuarios y de roles que permiten especificar que tareas pueden
realizar y a que contenidos puede acceder cada tipo de usuario. Es decir que las
operaciones que se pueden realizar sobre los elementos provenientes de las
capas inferiores (lectura, modificación, creación … ) se encuentran limitadas por
la capa de control de usuarios y permisos de Drupal.
La ultima capa, es la capa de “Themes” y es la que establece la apariencia
gráfica o estilo de la información que se le muestra al usuario. Esta separación
entre información y aspecto gráfico permite cambiar el diseño u apariencia del
sitio web sin necesidad de modificar los contenidos, lo que es muy práctico si lo
único que queremos es renovar la apariencia de un sitio web.
Cron es otro elemento importante en Drupal. Es una aplicación que se ejecuta
periódicamente con la finalidad de realizar las tareas básicas de mantenimiento
del sitio web, como limpiar los logs, indexar los nuevos contenidos, etc. La
configuración de Cron variará dependiendo del SO en que estemos trabajando,
no obstante existen algunas alternativas, menos efectivas, pero más sencillas de
utilizar Cron. Una de ellas es ejecutarlo manualmente yendo a "Administer >
Reports > Status repport > Run cron Manually". Otra opción es utilizar el
“Contributed module” “Poormanscron”. Este módulo hace que Cron se ejecute
cada vez que el sitio recibe una visita, en lugar de hacerlo de forma periódica
cada X tiempo.
2.3.3 Principales características de DRUPAL
Página
21
Documentación general
 Ayuda on-line  Amplio sistema de ayuda on-line al que se
añade una gran multitud de páginas para los módulos del núcleo,
tanto para usuarios como para los administradores del sitio.
 Código abierto  El código fuente en Drupal es libre bajo la
licencia GNU/GPL.
 Módulos  La comunidad de desarrolladores han aportado una
gran cantidad de módulos aportando nuevas funcionalidades que
inicialmente no se habían desarrollado.
 Búsqueda  Todo el contenido en Drupal es indexado en tiempo
real pudiéndose consultar en cualquier momento.
 Personalización  Robusto entorno de personalización
implementado en el núcleo de Drupal. Presentación y contenidos
pueden ser individualizados de acuerdo con las preferencias
definidas por el usuario.
 URL alias  permite la asignación de direcciones legibles por
buscadores y por humanos para una mayor usabilidad y
rendimiento.
 Taxonomía  Sistema robusto que permite etiquetar y organizar
contenido. Cada vocabulario (conjunto de categorias) se puede
limitar a ciertos contenidos.
 Títulos de las páginas y etiquetas Meta  Ofrece un control
personalizado a los elementos de HTML <title>, mientras que el
modulo Meta Tags permite el control sobre la descripción del meta
etiquetas en sus páginas individuales. Esto es bastante tedioso en
otros sistemas de gestión de contenidos.
 Gestión de usuarios  Posee un sistema íntegro para asignar las
funcionalidades que tendrá cada tipo de usuario que acceda al sitio
web. Además el control de acceso y de privacidad esta totalmente
controlado.
2.3.4 Ventajas de trabajar con Drupal
Desarrollar un sitio con Drupal ofrece una serie de ventajas en
comparación con otros CMS las cuales se describen a continuación:
Página
22
Documentación general
 Concepto de usuario intrínseco a la aplicación  Un usuario
registrado en un sitio implementado con Drupal estará registrado
para todas las aplicaciones que se introduzcan en el CMS tales
como foros, encuestas, blogs… provocando un control centralizado
del usuario imprescindible en las webs de hoy en día.
 Todos los tipos de diseños son posibles  Sea cual sea la
funcionalidad final de la web a desarrollar seremos capaces de
adaptarnos a tales necesidades gracias al uso de módulos
implementados por la comunidad Drupal que ofrecen todo tipo de
funcionalidades.
 PHP como base del sitio  Permite agregar código PHP a
medida habilitando de este modo la posibilidad de personalización
total de la web.
 Plataforma multi-idioma  Se habilita la posibilidad de
traducción del sitio a varios idiomas a través de una simple acción.
Además si se desea se puede dar permiso a los usuarios para que
estos elijan el idioma de la web.
 Multimedia  Perfectamente implementado para soportar todo
tipo de archivos multimedia.
 Control total por parte del administrador  Permite tener un
control total al administrador del sitio web en todos los aspectos,
permisos, módulos, contenidos, etc…
 Respaldo de informes y estadísticas  Robustez en cuanto a
informes de registros, de formularios… estando disponibles por
defecto siendo muy fácil exportación a otros programas como el
Excel.
 Preparado para dispositivos móviles  Permite el desarrollo
de versiones para dispositivos móviles. Ya sea haciendo pequeñas
adaptaciones de la versión desktop, iniciando el desarrollo con
metodología mobile-first o bien desarrollando un versión específica
completamente nueva teniendo en cuenta criterios específicos.
Página
23
Documentación general
 Sistema de control en roles y permisos  Permite asignar a
los usuarios diferentes permisos o perfiles y realizar unas acciones
u otras en función de este permiso.
 Seguridad  Drupal fué una de las primeros Open CMS en
disponer de un equipo de seguridad. Cada dos meses salen
actualizaciones de seguridad y de manera más frecuentes paths,
para soluciones inmediatas. A un usuario malintencionado
encontrará tan difícil atacar a través de Drupal como de otras
aplicaciones que estén instaladas en el servidor.
2.3.5 Conceptos
Como ya se comentó en puntos anteriores Drupal se creó para ser un
sistema totalmente flexible, siendo de este modo, capaz de adaptarse a los
diferentes entornos. Para conseguirlo su desarrollo siempre estuvo arraigado a
una abstracción singular y una organización por capas. Cada capa se encarga de
unas tareas determinadas y no tiene conocimiento de la funcionalidad de las
demás capas. A continuación se muestran las diferentes capas definidas en el
núcleo que posee Drupal.
Esto permite ciertas ventajas como la posibilidad de recuperar información de la
base de datos a través e PHP sin tener que conocer qué tipo de base de datos
tenemos (mySQL, Oracle...). Además facilita que pueda ser puesto en marcha en
los diferentes entornos sin grandes cambios.
Página
24
Documentación general
2.3.6 Instalación y configuración
Para trabajar con Drupal hay que tener una infraestructura de internet
compuesta por un servidor web, un gestor de base de datos y un lenguaje de
programación en PHP.
Toda esta infraestructura es sostenida y gestionada por una sola aplicación
WampServer cuyo acrónimo significa lo siguiente:
W  Sistema operativo (Windows).
A  Servidor web (Apache).
M  Gestor de bases de datos (MySQL).
P  Lenguaje de programación (PHP).
Drupal puede ser instalado desde un servidor remoto. Para este proyecto se
instalará desde el local.
Una vez instalado todo lo anterior pasaremos a descargar la versión Drupal
deseada, en este caso será la versión 6.X
Crearemos la base de datos en phpMyAdmin con el nombre del sitio.
Página
25
Documentación general
Una vez completado todo el proceso instalaremos Drupal a través de
http://localhost.
Si se desea se puede instalar el módulo del lenguaje con el que se desee trabajar
en la construcción del sitio web desde la web oficial de Drupal e instalarlo.
2.3.7 Sitios web desarrollados con Drupal
La flexibilidad y solidez de Drupal ha convencido a una gran multitud de
empresas y organizaciones de gran renombre en todo el mundo quienes han
considerado el CMS de Drupal como el adecuado para desarrollar sus sitios. A
continuación se muestran algunos de los más destacados.
http://www.ubuntu.com/
Página
26
Documentación general
http://software.intel.com/en-us/appup
Página
27
Documentación general
http://www.mtv.co.uk/
Página
28
Documentación general
http://www.whitehouse.gov/
Página
29
Documentación general
2.3.8 Conceptos Drupal
2.3.8.1 Núcleo
Página
30
Documentación general
El núcleo de drupal aporta funcionalidades básicas e imprescindibles para
el desarrollo web como pueden ser la capacidad para crear y publicar contenido,
crear y administrar usuarios, foros, encuestas y menús así como otras para
gestionar el sitio a través de un interfaz muy intuitivo.
Las mejoras con nuevas características y comportamiento personalizado
mediante la descarga de módulos adicionales también conocidos como módulos
contribuidos (contrib) ampliarán nuestras funcionalidades cubriendo un amplio
campo de posibilidades como ya se comento en apartados anteriores.
2.3.8.2 Módulos
Un módulo es un conjunto de funciones en php que implementan
funcionalidades pudiendo ampliar las ya existentes en el núcleo.
El administrador podrá activarlos y desactivarlos en cualquier momento sin
afectar al funcionamiento general del resto de la web. Como ya se ha apreciado
con anterioridad se pueden dividir en dos grandes grupos en función de si
pertenecen o no al núcleo de drupal:
 Módulos de núcleo (Core modules).
 Módulos contribuidos (Contributed modules).
2.3.8.3 Hooks
Son un tipo determinado de funciones en php integradas dentro de los
módulos para permitir interactuar con el núcleo. Para desarrollar un nuevo
Página
31
Documentación general
módulo en drupal simplemente se necesita un hook. Cada uno de estos tiene
definidos parámetros y un resultado. Gracias a ellos se consigue que los módulos
sean independientes los unos de los otros. Drupal 6 posee más de 70 hooks cuya
sintaxis siempre empieza por hook_funcionalidad. Algunas de las más utilizadas
suelen ser:

Hook_menu: se definen las entradas al menú y las urls que utilizará
nuestro módulo permitiendo enlaces en algún menú.

Hook_perm: permite añadir nuevos permisos necesarios para que
usuarios del módulo puedan accedes a su utilización.

Hook_block: permite definir bloques que utilizará el módulo.

Hook_form: formulario de edición de un nodo.

Hook_mail: permite enviar email.

Hook_comment: soporta acciones sobre comentarios.
2.3.8.4 Temas
Un tema es un conjunto de archivos y recursos en php, css, javascript e
imágenes que dan la forma visual al sitio. El tema instalado por defecto en
drupal 6 para que el administrador pueda empezar a desarrollar el sitio es
Garland aunque podemos escoger entre otros 5 en función de nuestro gusto.
Drupal separa la interface del administrador de los diferentes tipos de usuarios
pudiendo asignar a cada uno de ellos un tema diferente según las
Página
32
Documentación general
especificaciones de diseño de la web, otra muestra más de la gran flexibilidad de
este CMS.
2.3.8.5 Nodos
Los nodos (término genérico) son la unidad básica donde drupal guarda
un trozo de contenido pudiendo ser de diferentes tipos. La información principal
que almacena y que es comuna para todos los tipos de contenidos es el título, la
fecha de creación, el autor, cuerpo y un identificador único.
Por defecto drupal posee dos tipos de contenidos inicialmente, las páginas y las
historias. Aparentemente pueden parecer muy similares pero cada una posee
una configuración inicial diferente. En el siguiente cuadro se visualizan las más
importantes en cuanto a funcionalidad se refiere.
PÁGINA
HISTORIA
Configurados los comentarios
por defecto
NO
SI
Activados comentarios por
defecto
NO
SI
Se publican los contenidos en la
página de inicio
NO
SI
2.3.8.6 Regiones
Página
33
Documentación general
Las regiones delimitan el espacio donde podemos insertar contenido.
Dichas regiones son definidas por los temas, de esta manera cada tema posee
una estructuración diferente a propósito del posicionamiento de estas. Por
defecto drupal genera cinco regiones por página,
Drupal permite, como no podía ser de otro modo, configurar para cada región
que tipo de contenido alojará a través de la interfaz de diseño que tiene para el
administrador del sitio.
2.3.8.7 Bloques
Página
34
Documentación general
Los bloques son contenidos independientes de información que pueden
estar situados en diferentes regiones del sitio. Una región puede no tener
contenido sin ningún tipo de bloque asignado.
En un módulo se pueden crear directamente desde la página del administrador o
mediante la programación gracias a los Hooks, explicados en puntos anteriores,
proporcionados por la API para tal efecto.
Los bloques se pueden configurar para cada tema, es decir el bloque de
navegación, por ejemplo, puede estar en la región izquierda del sitio para
simples usuarios registrados y en la región izquierda para usuarios
administradores.
Los bloques pueden tomar la forma de menús (menú de navegación),
visualización de módulos e información estática o dinámica creada por algún
usuario.
Página
35
Documentación general
3. Objetivos
3.1 Objetivo principal
El objetivo de este proyecto es lograr crear una web que sea una
referencia y punto de encuentro entre organizadores y participantes de eventos
deportivos.
Las publicaciones aportadas por los atletas en la web a propósito de las pruebas
realizadas deberían mejorar la calidad de los eventos ya que los organizadores
sabrán de primera mano que deficiencias ha habido y la manera de solucionarlas
en futuras ediciones. Este sería por tanto el principal cometido de este sitio web,
aportar información directa e interactiva entre unos y otros para ayudar a dar
una mayor calidad a los eventos locales haciéndolos más competitivos y de
mayor calidad en comparación con los de otras ciudades o países.
No olvidemos tampoco que en la actualidad la voz de los participantes en
eventos deportivos se minimiza cuando salen críticas sobre algún aspecto. Las
webs promocionales ocultan o matizan dichas opiniones dando así una visión
interesada y distorsionada de la realidad. La claridad será otro de los objetivos
que este sitio intentará solucionar.
3.2 Propósito del proyecto
Los propósitos del proyecto es la instalación completa del CMS Drupal
como gestor de contenidos, activar los módulos del core que sean necesarios
para adaptarse a las necesidades del sitio así como utilizar módulos contribuidos
que también puedan ser de utilidad, el desarrollo de módulos más específicos
que aporten funcionalidades que no se encuentran en los creados por la
comunidad y el diseño de la web personalizando el sitio.
Resumiendo y siendo más esquemáticos el desarrollo del proyecto se dividirá en
las siguientes partes:
 Módulos de la comunidad Drupal: Se estudiaran los módulos
necesarios para que el sitio se adapte a las necesidades requeridas
en su diseño.
 Creación de un tema propio: A través de las opciones que
drupal ofrece en su interfaz de administrador se modificarán los
rasgos iniciales del sitio para personalizar su apariencia y diseño
web (logos, favicons, colores, etc…).
Página
36
Documentación general
 Creación de un módulo propio: Realizaremos un módulo propio
que se adapte totalmente a las necesidades de la web.
 Creación de páginas y bloques: Desde el propio navegador del
CMS crearemos páginas y bloques colocándolos en regiones
determinadas para hacer más atractivo su aspecto visual.
3.3 Antecedentes
El diseñador de este proyecto no tenía ningún conocimiento de Drupal
o de ningún otro CMS. Esto ha implicado que se ha necesitado una cantidad de
tiempo notoria para familiarizarse con el entorno y poder desarrollar la web.
Puesto que a lo largo de la carrera no ha tenido ninguna asignatura de
programación de páginas web se decantó por este tipo de PFC con el objetivo de
ampliar conocimientos en este campo.
Página
37
Documentación general
4. Especificaciones
4.1 Especificaciones del proyecto
La aplicación estará enfocada a los eventos deportivos y a sus
participantes. Tiene que permitir a los organizadores publicar toda la información
de sus futuros eventos tales como fechas, lugares, premios, tipo de evento,
etcétera… permitiendo que los atletas puedan opinar al respecto de dicho evento
a través de foros, encuestas y blogs.
Esta participación activa de los atletas en las críticas del evento es el eje principal
de la web puesto que no es habitual que se les dé la oportunidad de opinar
libremente sobre el acontecimiento disputado. A través de sus comentarios
informarán a todos los visitantes del sitio de las virtudes y las carencias a
propósito de la organización de la prueba.
Los organizadores tendrán la oportunidad de saber de primera mano que están
haciendo bien y que deberían mejorar en el futuro para que la calidad del evento
sea mejor edición tras edición. También tendrán información sobre la intención
de participación de los atletas a priori pudiéndose hacer una idea del número
total. Resumiendo, estos podrán promocionar sus eventos en el sitio siempre y
cuando acepten las críticas que puedan salir por parte de los atletas y se
comprometan a hacer algún tipo de pequeño descuento, ventaja o regalo si
dichos atletas se apuntan al evento a través de la web.
Para promocionar y hacer más atractiva su propuesta, estos últimos podrán
aportar todo tipo de documentación como publicación de fotos, estadísticas de
participación, resultados de atletas de otras ediciones, entrevistas de los
corredores profesionales que participarán, crear encuestas, etcétera…
4.1.1 Usabilidad
La usabilidad de la web será fácil para que todo tipo de usuarios
puedan participar aunque tengan escasos conocimientos informáticos. Además
mediante el módulo CCK, que permite la creación de tipos de contenido, no será
nada difícil ampliar el abanico de posibles eventos a cubrir por parte del sitio.
4.1.2 Modos de acceso
Existirán dos tipos de modos de acceso, el normal (atletas,
organizadores, visitantes, invitados…) y el modo administrador (administrator)
Página
38
Documentación general
que será el encargado del mantenimiento y de las futuras modificaciones del sitio
además de tener el control absoluto de este.
4.1.3 Usuarios y roles
Existirán cuatro tipos de roles asociados al tipo de usuario que interactúe
con el sitio web especificados a continuación:
Usuario anónimo: Visitante no registrado al que se le permitirá ver la
mayoría de los contenidos pero sin poder modificarlos ni dejar sus
opiniones.
Usuario autenticado: Atletas autenticados que podrán participar en el
sitio aportando opiniones y demás tipos de participación. Solamente los
atletas que tengan algún tipo de acreditación en alguna sociedad o
federación deportiva podrán ser dados de alta en el sitio como usuarios
autenticados. Por lo tanto, será el administrador el que compruebe la
veracidad de la documentación y permita dar de alta al atleta en el sitio.
Usuario organizador: Organizadores de las pruebas deportivas
autenticados que aportarán toda la información del evento pudiendo
modificar únicamente sus propios contenidos. Los usuarios que deseen
acceder a la web con este perfil deberán acreditar la documentación
como propietarios o trabajadores de tiendas dedicadas al sector.
Usuario administrador: Administrador del sitio encargado de
incorporar futuras mejoras y cambios del sitio con acceso a todo tipo de
acciones de todos los contenidos del sitio además de poder dar de baja a
usuarios cuyo comportamiento no sea correcto y constructivo.
Página
39
Documentación general
4.1.4 Navegadores
La web se diseñará teniendo en cuenta que pueda ser funcional con
los navegadores más utilizados por los usuarios de internet. Goolge Chrome,
Mozilla, Safari e Internet Explorer 7.
El funcionamiento general de la página tendrá que ser el mismo con
independencia del navegador. Si dicho navegador no posee soporte para
javascript seguramente alguna estructura se verá afectada mínimamente pero en
ningún caso dejará de perder las funcionalidades esenciales de la web.
4.1.5 Publicidad
La web inicialmente no tendrá ánimo de lucro con lo que no se permitirá
ningún tipo de publicidad en ella y será de carácter puramente informativo. A los
organizadores se les obligará a eliminar la publicidad de las imágenes de sus
contenidos en el caso de que existan.
La idea será hacer crecer la popularidad de la web hasta alcanzar un número de
visitantes suficientemente importante como para darse a conocer entre las
marcas de material deportivo del sector. Será en este momento en el que se
desarrollarían pensamientos de marketing de futuro para poder obtener ingresos
de Sportalia37. Parte de tales ingresos se reinvertirían en proyectos futuros de
mejoras de la web.
Página
40
Documentación general
4.2 Casos de uso
4.2.1 Creación de usuarios
Para acceder a la totalidad de las funcionalidades del sitio los usuarios
deberán registrarse mediante el formulario correspondiente que aparecerá al
hacer clic sobre la pestaña „Register‟. En este formulario se les pedirá que
introduzcan nombre de usuario, correo electrónico y contraseña tal y como se
muestra en la figura,
Usuario y contraseña serán necesarios a partir de ese momento para acceder
como usuario registrado y el correo electrónico será utilizado para estar en
Página
41
Documentación general
contacto con el usuario y en el caso que se le olvide la contraseña, poder
reenviársela a través de éste.
4.2.1.2 Clases de usuarios
Existen dos clases de usuarios, anónimos y autenticados. Los usuarios
anónimos son aquellos que no se han registrado en el sitio por lo que sus
acciones, como se ha comentado con anterioridad, quedarán limitadas a ver
parte de la información total del sitio. Por contra, los usuarios autenticados
(organizadores y atletas) podrán interactuar con muchas más opciones además
de poder acceder a contenidos especiales.
4.2.2 Acceso a la información de sitio
Acción que pueden ejercer todos los tipos de usuarios que accedan al
sitio haciendo clic sobre la pestaña del menú „nosotros‟, de esta manera se
accede a la información referente al sitio (diseñador, objetivos, supervisor,
etcétera).
4.2.3 Publicación de eventos
Limitado a los usuarios organizadores, es la principal funcionalidad de la
web. Seleccionando la pestaña „Crear evento‟ se accede a una página que
muestra las diferentes opciones de publicación de contenido tal y como se
muestra a continuación,
Página
42
Documentación general
Tras seleccionar el tipo de evento que se desee publicar, aparecerá un formulario
específico para cada tipo de prueba ya que, por poner un ejemplo, en un torneo
de tenis el campo „distancia total‟ carece de sentido. Los campos comunes a
rellenar por el organizador serán los siguientes:

Nombre del evento: Nombre de la prueba.

Disciplina general: Con el fin de clasificar el contenido mediante
taxonomía, se selecciona el tipo de evento que se va a publicar
(ciclismo, futbol, natación, etcétera).

Fecha inicio: Primer día de la celebración del evento.

Fecha fin: Último día que se celebra el evento.

Inicio inscripción: Fecha del primer día que se puede efectuar la
inscripción de la prueba.

Fin inscripción: Fecha del último día habilitado para efectuar la
inscripción a la prueba.

Provincia: Provincia donde se celebra la prueba. Se debe seleccionar
de una lista habilitada para ello. Lista desplegable para su selección.

Localidad: Localidad donde se celebra la prueba.

Lugar: Lugar exacto del inicio de la prueba.

Categorías: Categorías y rangos de edad.

Organizador: Nombre de la empresa organizadora del evento.

Web entidad organizadora: URL de la web de la empresa
organizadora. Será de tipo link con lo que se podrá acceder
directamente a dicha web haciendo clic sobre esta.

E-mail contacto: Dirección de correo electrónico donde dirigirse para
consultar cualquier duda sobre el evento.

Premios: Listado de trofeos, premios en metálico y obsequios
otorgados a los participantes.

Precio: Precio de la inscripción a la prueba.

Contenido adicional: Editor de texto para que el organizador pueda
aportar otra información que considere de interés.
Página
43
Documentación general
Los campos específicos que se muestran en función del tipo de evento son:
 Distancia total: Especificar la distancia total a realizar en la
prueba.
 Drafting: Posibilidad de ir a rueda durante la carrera (exclusivo
para eventos de ciclismo). CheckBox habilitado para su selección.
4.2.4 Comentarios
Reservado para usuarios registrados de tipo „atleta‟, se pueden hacer
comentarios a propósito de las publicaciones de eventos y blogs. Al final del
contenido existe un link „añadir nuevo comentario‟ tal y como se muestra a
continuación,
y través del cual se permite hacer comentarios referentes a dicha publicación.
Página
44
Documentación general
Destacar como punto importante que ningún atleta tiene restringido comentarios
a propósito de los eventos disputados como desgraciadamente pasa en casi la
totalidad de les webs de promoción de eventos. Además el organizador no puede
dejar ningún comentario de sus eventos ni de cualquier otro. Este es uno de los
objetivos principales de este proyecto, de este modo, los organizadores podrán
saber de primera mano que carencias han tenido y que mejorar de cara a futuros
eventos.
4.2.5 Creación de blogs (cuaderno de bitácora)
Acción reservada para usuarios registrados. Permite crear blogs
individuales útiles para cuando se desee actualizar contenido de forma periódica.

Ideal para contenido variante, es decir, que se prevea que pueda
variar con cierta facilidad.

Habilitada la opción de comentarios de los atletas.
 Se le proporciona al usuario un editor de texto (ckeditor) que le
proporciona todo tipo de herramientas al fin de hacer más atractivo
el aspecto visual de la publicación, con él se pueden insertar
imágenes y demás utilidades.
 Aparecerá publicado en la página principal del sito.
Página
45
Documentación general
Aspecto global de la interface,
4.2.6 Actualidad RSS
Privilegio del que disfrutan usuarios registrados, a través de la pestaña
„actualidad‟ se tiene acceso a las últimas noticias deportivas actualizadas cada
hora. Las noticias están agrupadas en función de su taxonomía,
Página
46
Documentación general
Una vez seleccionado el tipo disciplina aparecerá un listado de links de todas las
noticias disponibles,
Haciendo clic sobre cualquiera de ellas se accederá a una nueva ventana
mostrando todo el contenido de la fuente.
4.2.7 Crear encuestas
La creación de encuestas está reservada para los usuarios registrados de
tipo organizador. Actuando del mismo modo que en el apartado 4.2.3 pero
seleccionando esta vez la opción „encuesta‟ se accede al siguiente formulario,
Página
47
Documentación general
Una vez debidamente rellenado la encuesta aparecerá en el bloque lateral
derecho de la página web estando habilitada para su votación.
4.2.8 Votar encuestas
Cuando una nueva encuesta aparece para ser votada el formato del
bloque destinado a tal fin cambia ligeramente para que el usuario que aún no ha
interactuado con esta se percate, tan solo deberá hacer clic sobre los diferentes
checkbox (uno para cada opción de voto) y posteriormente hacer lo propio con el
botón que aparece debajo de la encuesta „votar‟. El voto no podrá ser rectificado
y está configurado para qué usuario solamente pueda votar una sola vez.
Bloque encuesta antes de votar.
Bloque encuesta después de haber votado.
Acción reservada sólo para los usuarios registrados tipo „organizador‟ sin que
estos puedan votarse ellos mismos ni otros eventos con la finalidad de no
adulterar el resultado.
4.2.9 RSS Really Simple Syndication
Existe la posibilidad de suscribirse mediante sindicación a los contenidos
del sitio por parte de todo tipo de usuarios. Mediante el icono que aparece en el
bloque de la derecha de la web en su parte inferior,
se accederá a la configuración de enlace,
Página
48
Documentación general
El usuario podrá disponer de los contenidos de Sportalia37 siempre actualizados
cuando haga clic en „Suscribirse a esta fuente‟ y validando la siguiente ventana,
4.2.10 Consultar los eventos propios publicados
Caso de uso reservado solo para los usuarios registrados tipo
„organizadores‟. Muestra únicamente un listado de los eventos publicados en el
sitio del propio organizador, de esta manera, éste puede acceder de forma
rápida a cualquiera de sus eventos para modificar o consultar lo que desee.
Para poder acceder a dicho contenido deberá primeramente clicar en la pestaña
„Tus eventos publicados‟ del menú,
Página
49
Documentación general
Los eventos aparecerán agrupados por modalidad para facilitar aún más la
búsqueda por parte del usuario. Una vez seleccionada la modalidad del evento
aparece un listado con el nombre de la prueba (que será un link al contenido de
ese evento) y la fecha de publicación tal y como se muestra en la figura
siguiente,
4.2.11 Acceso a contenido mediante la nube de tags
Destinado a cualquier tipo de usuario, dicha funcionalidad aparece en el
lado superior derecha del sitio web,
Al pasar con el ratón por encima provocará que los tags existentes se muevan
aleatoriamente permitiéndolos ver con claridad. En el momento que el usuario
divise la categoría deseada bastará con hacer clic para que dicho enlace se active
llevándolo a una nueva página donde quedará expuesta todos los tipos de
contenido (eventos y entradas de bitácora) que estén publicados.
Página
50
Documentación general
En la figura anterior se muestra una parte de todo el contenido de la categoría
„Natación aguas abiertas‟, como podemos observar existen dos eventos
publicados al respecto.
Página
51
Documentación general
En este otro caso, vemos como aparecen dos contenidos de tipo diferente, el
primero es una entrada de bitácora (blog) de un usuario (atleta2) haciendo
referencia a un tema de avituallamiento y el segundo es un evento publicado por
un organizador (Apa),
Página
52
Documentación general
4.2.12 Acceso a los eventos a través del rotor de la página principal
Funcionalidad abierta a todo tipo de usuarios, se encarga de hacer una
exposición aleatoria de todos los eventos deportivos publicados en el sitio. Dicho
bloque está situado en la parte superior izquierda y cambia de contenido
haciendo un barrido hacia arriba.
El usuario que decida tener más información del evento promocionado en este
bloque solamente tiene que colocarse encima del título (de color naranja) y
hacer clic sobre éste.
4.2.13 Compartir contenido en redes sociales
La web también está diseñada para poder compartir su contenido de en
cualquier red social. El usuario deberá colocarse con el cursor encima del link
habilitado para ello,
Página
53
Documentación general
Le aparecerá un desplegable para seleccionar en que red social desea postear la
url del contenido,
Una vez insertado, si lo desea, el título con el que aparecerá la url del contenido
aparecerá en su red social como link de enlace al sitio tal y como se muestra en
la figura,
El proceso quedará por tanto finalizado. Tal acción podrá ser ejercida por
cualquier tipo de usuario para no limitar la promoción del sitio web en la red.
Página
54
Documentación general
4.2.14 Votar evento
Cada evento publicado puede ser votado libremente por la comunidad
de Sportalia37. Este es otro de los puntos de interés y principales objetivos de la
web ya que en casi ninguna página de promoción de eventos se permite la
valoración de los participantes respecto a dichas pruebas deportivas. Al final de
cada evento publicado hay unas estrellas de valoración,
El usuario deberá posicionarse sobre las estrellas de valoración (cuadrado en rojo
de la figura anterior) y votar clicando sobre alguna de estas. Las opciones por
cada estrella son: poor, okay, good, great y awesome.
Caso de uso exclusivo para atletas.
Página
55
Documentación general
4.2.15 Image upload
Proporciona una interface específica para visualizar las fotos de las
publicaciones del sitio. El usuario podrá ver las fotos en varios tamaños al hacer
clic encima de una de ellas.
Sportalia37 permite ver los siguientes tamaños:
 Original  Muestra la foto en su tamaño origina.
 Thumbnail (Miniatura)  Visión en miniatura de la foto.
 30x30  Redimensiona la foto en el tamaño especificado 30x30.
 300x180  Idem para tamaño 300x180,
Página
56
Documentación general
 400x500  Idem para tamaño 400x500.
Funcionalidad habilitada para todo tipo de usuarios.
4.2.16 Crear una Historia anónima
Similar a una entrada de bitácora, el objetivo de este contenido es que un
usuario que quiera comentar algo comprometido o denunciar alguna cosa tenga
la privacidad necesaria para no tener miedo a hacerlo. Ofrece las siguientes
singularidades:
 Asegura el anonimato del usuario puesto que no aparecerá la
autoría de este. El administrador es el único conocedor de la
autoría pudiendo retirar la publicación si no fuera adecuada o se
ajustara a la realidad.
 No aparece publicada en la página principal.
 No permite opción a comentarios por parte de otros usuarios.
La interface es la misma que en el caso de las entradas de bitácora quedando
habilitado también el editor de texto (ckeditor) para facilitar la publicación.
Página
57
Documentación general
5. Diseño y desarrollo
5.1 Instalación
5.1.1 Instalación de Drupal paso a paso
Primeramente se descargó la versión de Drupal 6.2X de la web oficial de
dicho CMS,
Nota: Se realiza la instalación en modo local (la propia máquina) aunque desde un
ordenador remoto actuaríamos de idéntica manera.
A continuación descargamos la traducción al español de la interface y copiamos
todos sus archivos dentro del directorio de Drupal para que dicho módulo de
traducción esté habilitado,
Seleccionamos todo el contenido de la carpeta de traducción al español,
Página
58
Documentación general
Copiando este dentro de la carpeta de Drupal-6.28, de este modo la traducción
de toda la interface de Drupal al español quedó habilitada.
Cómo ya se explicó en el punto 2.2.6 de esta memoria, este gestor de
contenidos necesita una infraestructura de internet compuesta por un servidor
web, un gestor de base de datos y un lenguaje de programación en PHP. Todas
estos requisitos son proporcionados por la aplicación WampServer.
Una vez instalada esta aplicación introducimos la carpeta de Drupal que antes
hemos hecho referencia dentro del directorio .../wamp/www/
Fue el momento de crear la base de datos que utilizaríamos introduciendo el
nombre el nombre deseado dentro de la interface mysql (Sportalia37),
phpMyAdmin nos avisó de que el proceso de creación había finalizado
correctamente a través del siguiente mensaje
A continuación se tuvo que realizar una copia del archivo „default.settings.php‟
renombrándolo con el nombre „settings.php‟ y ubicándolo en el mismo directorio
puesto que la comunidad de desarrolladores de Drupal advierte que a veces
suele dar problemas si no se hace dicho duplicado,
Página
59
Documentación general
A continuación se inició la configuración inicial de Drupal, dentro de nuestro
navegador introduciendo la url http://localhost/drupal y realizando los
siguientes pasos,
 Configuración del idioma:
 Elegir nombre de usuario y contraseña:
Página
60
Documentación general
La interface de Drupal certifica la correcta instalación,
 Finalmente introducimos el nombre del sitio, correo electrónico del
administrador, contraseña de este y franja horaria para dar por finalizado
el proceso de instalación,
Proceso de instalación finalizado, el sitio web esta creado y activado.
Página
61
Documentación general
5.1.2 Recomendaciones funcionales
Está claro que, con lo explicado en el apartado anterior, ya podríamos
empezar a construir nuestro sitio, sin embargo, existen unas recomendaciones
que si es verdad que no son de carácter obligatorio sí que son muy
recomendables para el óptimo funcionamiento del gestor.
5.1.2.1 Programación automática del ejecutable cron.php
Drupal se encuentra siempre en continuo desarrollo para adaptarse a las
nuevas necesidades que van apareciendo tecnológicamente.
Existe un archivo ejecutable llamado cron.php que se encarga de enlazar con la
web de la comunidad de desarrollo de este CMS descargando estas
modificaciones y actualizando posteriormente el llamado núcleo de Drupal.
Cron.php se puede ejecutar manualmente cada vez que se desee por el
administrador del sitio tal y como se muestra en la siguiente figura,
Sin embargo se recomienda programar la ejecución de este archivo de manera
automática. A continuación se explica cómo se realiza con sistema operativo
Windows:
1) Inicializar el programador de tareas de Windows creando una nueva tarea
básica,
Página
62
Documentación general
2) Darle un nombre a la nueva tarea y una descripción de la finalidad de
esta,
3) En la siguiente ventana que aparece se debe indicar la periodicidad con la
que se desea que se ejecute esta tarea. En el caso de Sportalia37 no
existe mucha necesidad de que se esté ejecutando a menudo a diferencia
de otra web enfocada, por ejemplo, a la actualidad de sucesos u otra
finalidad que requiera una actualización cada poco tiempo. Sportalia37 por
lo tanto basta con que la periodicidad sea diaria,
Página
63
Documentación general
3.1 Especificamos cuando queremos que empiece,
4) En el apartado de acción seleccionamos que se desea iniciar un programa,
5) Puesto que cron.php utiliza la red para descargar actualizaciones
deberemos especificar que el programa a iniciar sea el navegador, en el
caso de Sportalia37 el elegido es Internet Explorer proporcionando a la
tarea programada el directorio de ubicación de este,
Se podría haber configurado para cualquier otro tipo de navegador como Firefox,
Crome, Opera, etcétera.
Página
64
Documentación general
6) El siguiente paso será finalizar el proceso de configuración activando el
checkbox señalado en la figura siguiente para…..
7) Tras haber seleccionado el checkbox Abrir el diálogo Propiedades para
esta tarea al hacer clic en finalizar aparecerá una ventana resumen con
las características que hemos programado, allí deberemos seleccionar
editar acción introduciendo, al final de la ruta, el lugar donde está
ubicado el archivo cron.php. De esta forma le estaremos diciendo a la
tarea programada que habrá primero el navegador y posteriormente
ejecute el archivo cron.php,
Finalmente para comprobar que la acción que hemos programado está
almacenada en el programador de tareas bastará con mirar en la lista de tareas
y ver que aparece,
Página
65
Documentación general
5.1.2.2 URL´s limpia
Otro aspecto importante de la instalación de Drupal es configurar el CMS
para que las URLs aparezcan limpias. Normalmente cuando se hace referencia a
una página web u otro direccionamiento aparece en la barra de direcciones
símbolos propios de lenguaje php dificultando la legibilidad y futuro trabajo con
estas,
Primeramente deberemos activar una línea de código específica que suele
estar comentada dentro del fichero httpd.config del Apache, en el caso de que se
esté trabajando con WampServer (caso de Sportalia37), ubicado en el apartado
de settings de Apache,
Página
66
Documentación general
Una vez abierto buscaremos la línea de código donde aparezca mod_rewrite,
Y borraremos la almohadilla al inicio de la línea de código para que pase de ser
un comentario a estar activa. Guardamos el archivo y volvemos a la interface del
CMS.
Finalmente accediendo al menú de administradores en configuración del
sitio/URL´s limpios aparecerá la ventana que da opción a solucionar dicho
problema. Deberemos activar el checkbox correspondiente tal y como se muestra
en la siguiente figura dando por finalizado dicho problema de URLs limpias.
Página
67
Documentación general
5.2 Bloques
El tema del sitio se divide en cuatro regiones, encabezado, contenido,
lateral izquierdo y pié de página. Por defecto inicialmente existían los siguientes
bloques:
 Encabezado  Ningún bloque.
 Contenido  Ningún bloque.
 Lateral izquierdo  Inicio de sesión y Navegación.
 Pié de página  Sitio elaborado con Drupal.
Era obvio que con los bloques iniciales Sportalia37 no podía ser funcional por lo
que se le agregó los siguientes:
 Encabezado  Rotor Block, Cumulus Tag Cloud y Listado de eventos.
 Contenido  Ningún bloque.
 Lateral izquierdo  Quien está en línea, Encuesta más reciente, Sindicar,
Alternador de idioma.
 Pié de página  Información del autor.
A continuación se explica con detalle que funcionalidad tiene cada uno de ellos.
Inicio de sesión:
1- Permite a un usuario registrado autenticarse en el sitio para
acceder a su cuenta.
2- Permite registrarse a nuevos usuarios. Estos deberán esperar a
que el administrador los habilite el permiso (Crear nueva cuenta).
3- Si a un usuario se le ha olvidado la contraseña, tiene la opción
de obtener una de nueva para autenticarse de nuevo vía e-mail (Solicitar nueva
contraseña). Una vez introducida la nueva contraseña este podrá cambiarla
cuando lo desee.
Página
68
Documentación general
Navegación:
1- Permite hacer una búsqueda inteligente. Introduciendo la
palabra/as deseada,
El sitio efectuará una búsqueda en la base de datos buscando que contenidos
albergan este léxico mostrando una lista,
En el ejemplo de la figura solamente se ha encontrado un tipo de contenido
donde aparece la palabra buscada ciclismo. Haciendo clic en el link del título
del contenido accederemos a la totalidad de la publicación.
2- En Mi cuenta se accede a la página que da acceso a los datos
personales del usuario permitiendo modificarlos, a través de la pestaña editar
se puede cambiar detalles como e-mail, foto, contraseña, firma (texto que
aparecerá al final de sus publicaciones), zona horaria, etcétera.
Página
69
Documentación general
3- Da acceso al formulario para publicar contenido. El contenido
que pueda publicar irá en función del rol del usuario. Sportalia37 ofrece
posibilidades diferentes a roles diferentes como ya se ha explicado en
apartados anteriores,
Contenido permitido para usuarios con rol de atletas una vez hayan hecho clic
sobre la opción Crear contenido,
Como se aprecia, estos pueden crear un blog (entrada de bitácora) y una
publicación anónima para dejar alguna queja o inquietud.
Veamos ahora el contenido permitido para usuarios con rol de organizadores
una vez hayan hecho clic sobre la misma opción,
Página
70
Documentación general
Como ya se ha comentado con anterioridad, las opciones de ambos roles están
personalizadas y adaptadas a sus necesidades interactivas.
4- Terminar sesión es la opción para los usuarios registrados que
les permitirá dejar la sesión iniciada.
Sitio elaborado con Drupal:
Este icono situado en el pié de página del sitio informa a los internautas
del tipo de CMS que se ha utilizado para realizar el sitio dando además acceso
directo a través de un link a la web oficial de Drupal,
https://drupal.org/
Rotor block:
Situado en el encabezado del sitio, este bloque cumple tres cometidos, por
un lado muestra imágenes de los deportes de los que Sportalia37 ha sido
partícipe en su divulgación online, por otro da acceso a la web de los
organizadores que han colaborado con la web. Funcionalidad apta para
cualquier tipo de usuario a través de la que, situándose encima de la imagen
con el cursor y haciendo un clic accede a una nueva ventana del navegador en
la que se abre la web del organizador y finalmente y a nivel estético, le da un
aspecto más vistoso al sitio haciéndolo más atractivo al visitante del sitio,
Página
71
Documentación general
Cumulus Tag Cloud:
Bloque situado a la derecha del encabezado permite, a todo tipo de
usuarios, acceder a todos los contenidos a propósito de un deporte en
concreto.
Como se explicará en el apartado siguiente (Taxonomía) todos los contenidos
están categorizados con el fin de agruparlos, este agrupamiento es útil en casos
como este. Al pasar el cursor sobre el interior de este bloque la nube de tags se
pone en movimiento realizando un efecto óptico similar al de una nube (cloud).
Cuando el usuario está situado encima del deporte deseado deberá hacer clic
sobre este, automáticamente se le redigirá a una nueva página en la que
aparecerá todo el contenido de la web relacionado con el tag que ha
seleccionado.
Listado de eventos:
A través de creación de las vistas, funcionalidad que el módulo CCK
ofrece, se ha conseguido crear un bloque que muestra la información más
relevante para el atleta de todos los eventos publicados en el sitio (fecha inicio
evento, fecha fin evento, inicio inscripción evento, fin inscripción evento,
provincia y precio). Este aparece en el encabezado en la parte izquierda,
Página
72
Documentación general
Funcionalidad disponible para cualquier rol de usuario, permite el acceso al
contenido total del evento haciendo clic sobre el título del evento.
El contenido de este bloque cambia cada 3 segundos de forma aleatória.
Quién está en línea:
Bloque opcional dentro del core inicial de Drupal, se ha activado, posicionado y
configurado para mostrar en la barra de la izquierda de la web los usuarios que
están en línea en tiempo real,
En la figura se aprecia que el bloque citado informa que solamente se encuentra
en línea en administrador.
Encuesta reciente:
Bloque situado en la barra de la derecha de la web, justo debajo del explicado
con anterioridad, realiza dos funciones, una abierta para todos los tipos de
usuarios y otra reservada a los de tipo atleta como se describe a continuación:
Página
73
Documentación general
1- Visualizar la última encuesta publicada en Sportalia37
(funcionalidad abierta a todos los tipos de usuario).
2- Permite la votación: Mientras que un usuario atleta no haya
votado en la encuesta del sitio la estructura visual del bloque cambia para
hacer percatar al usuario de que aún no ha votado en ella y que dicha acción la
puede hacer cuando quiera habilitándole un checkbox para cada opción de
respuesta y un botón (votar) para registrar su voto en la web. Hasta que este
no vota no tiene acceso al recuento de la votación a tiempo real,
Sindicar:
Llamada también sindicación web, esta pretende ser una web dinámica
con continuos cambios en lo que a contenido se refiere, por ello, el sitio
incorpora un enlace (sindicar) en la parte de abajo del todo de la región de la
derecha,
Página
74
Documentación general
Haciendo clic sobre el icono de la imagen anterior, el usuario accede a una
nueva ventana en la que podrá asociarse a todo el contenido del sitio
recibiendo notificaciones sobre los cambios en el contenido y en las nuevas
publicaciones,
Una vez aquí si hacemos clic en suscribirse a esta fuente se nos abrirá una
ventana en la que podremos formalizar la suscripción al contenido web,
En las opciones del ejemplo se ha seleccionado el checkbox Agregar a la barra
de favoritos con lo que al darle al botón Suscribirse nos aparecerá en la barra
de favoritos un icono que mostrará un desplegable de todo el contenido de
Sportalia37 actualizado a tiempo real,
Página
75
Documentación general
En síntesis, se reenvía los contenidos desde la fuente original (Sportalia37) hasta
otro sitio web de destino (receptor) y que a su vez se convierte en un emisor ya
que se puede repetir de nuevo el proceso desde este sitio.
5.3 Taxonomía
La taxonomía es, como definición general, la ciencia que estudia la
clasificación de los elementos.
La definición anterior nos da una pista del papel que la taxonomía juega en la
web. Instalando en módulo Taxonomyy realizando las configuraciones
pertinentes, se decide que cada contenido que se añada al sitio deberá
clasificarse en función de la disciplina a la que pertenezca de forma que, todo
evento, entrada de bitácora (blog) e historia que sea publicada quedará
categorizada.
Hay un campo habilitado, de carácter obligatorio, llamado Disciplina general a
través del que todo usuario autenticado que desee publicar cualquier tipo de
contenido deberá indicar a que categoría pertenece,
Página
76
Documentación general
Dicha categorización permite, por ejemplo, al bloque Cumulus Tag Cloud,
explicado con anterioridad, mostrar todo el contenido referente a una disciplina
en concreto además de mejorar la clasificación y búsqueda de información a
nivel general.
En el caso de Sportalia37 ha sido necesario crear el vocabulario Disciplina
general con los siguientes términos:


















Ciclismo de carretera
Mountain bike
Golf
Karate
Surf
Tenis tierra batida
Tenis Hierba
Tenis pista cubierta
Futbol 11
Futbol 7
Futbol sala
Triatlón olímpico
Triatlón media distancia
Triatlón larga distancia
Natación aguas abiertas
Natación piscina cubierta
Running carrereta
Running montaña
Destacar como último inciso que dicho vocabulario se puede ampliar en función
de los tipos de eventos que se desee publicar en la web.
5.4 Tipos de contenido
Para explicar que tipos de contenido ofrece Sportalia37 a sus usuarios
dividiremos a estos en dos grupos bien diferenciados, primero los que venían por
defecto o simplemente se han agregado tras importar su módulo
correspondiente modificándolos ligeramente y en segundo lugar los que se han
creado debido a la singularidad del sitio y la necesidad de incorporarlos para
hacer funcional la web.
5.4.1 Contenidos modificados y/o importados con módulos
Dentro de los tipos de contenidos que ofrecía por defecto la instalación de
Drupal se han utilizado:
Página
77
Documentación general
 Entrada de bitácora: Conocido también como blog, permite la
publicación de texto y artículos de uno o varios usuarios
cronológicamente permitiendo el adjunte de archivos. A los campos
de obligado cumplimiento que drupal imponía por defecto se le
agregó el de disciplina general para categorizar el contenido. A
continuación se muestra un ejemplo de este tipo de contenido,
Como vemos aparece el día de publicación, categoría (triatlón de larga
distancia), autor (atleta3), foto, contenido (¡Hola a todos… …¡¡Salud y
kilómetros), archivo adjunto (casal de foc archivo.png). Este tipo de contenido
puede ser comentado (Añadir nuevo comentario) y publicado en redes sociales
(compartir).
 Page: Enfocado para contenidos que no suelen cambiar con
frecuencia permite crear y mostrar información sin permitir los
comentarios de ninguno de los usuarios. Tampoco aparecen
promocionados en su página principal. Un ejemplo sería el de la
página de la web Nosotros en la que siempre se suele mostrar la
misma información teniendo escasa movilidad. Contenido apto solo
para el administrador.
Página
78
Documentación general
Los que se describen a continuación han sido importados a través de algún
módulo:
 Encuesta: Permite publicar encuestas interactuando con los
atletas. Sus atributos más relevantes son: pregunta (campo en el
que se escribirá la pregunta de la encuesta), opción (campos donde
se debe introducir las opciones de las que dispondrá el atleta para
votar) y duración de la encuesta (aparecerá un desplegable para
que se seleccione el tiempo que la encuesta se desea que aparezca
publicada en el sitio).
En esta imagen se muestra los atributos mencionados y la interface que se
ofrece para crear contenido tipo encuesta,
En la figura anterior se ha decidido que la duración de la encuesta en el sitio sea
de 8 semanas.
Página
79
Documentación general
5.4.2 Contenidos creados y diseñados para Sportalia37
Finalmente en otro grupo encontramos los que se han debido de crear
“desde cero” por la naturaleza del sitio:

Evento: Específico para Sportalia37, este tipo de contenido es la
base de la web. Reservado para ser usado por usuarios con rol de
organizadores, se ha diseñado y creado teniendo en cuenta la
información imprescindible que todo atleta de un evento deportivo
necesita saber. Además se ha personalizado para cada uno de los
eventos teniendo en cuenta que era necesario en cada tipo de
prueba. Por ejemplo, en un torneo de tenis carece de sentido el
atributo distancia y sin embargo en una maratón será
imprescindible dicho atributo.
De esta forma se puede crear de forma individualizada los siguientes eventos:
Los atributos comunes a todos los tipos de contenido EVENTO son:
- Fecha inicio
- Fecha fin
- Provincia
- Localidad
- Lugar
- Inicio inscripción
- Fin inscripción
- Categorías
- Organizador
- e-mail contacto
- Web entidad organizadora
- Inscripción on-line
- Premios
- Precio
Atributos específicos en función del evento:
- Distancia total  Eventos de ciclismo, running y natación.
- Drafting (ir a rueda)  Ciclismo y triatlón.
- Modalidad  Triatlón.
- Estilos  Natación.
Página
80
Documentación general
 Publicación anónima: Diseñado para Sportalia37, se adapta a las
necesidades para la publicación sin autoría. Este tipo de contenido
no muestra el autor que lo ha realizado. Los atributos que se deben
introducir son los siguientes,
-Título.
- Contenido, dentro del cual se podrá insertar fotos.
- Adjuntar archivo de carácter opcional.
Nota: El módulo que ha permite crear contenido “desde cero” es el CCK (content
construction kit) explicado con detalle en el siguiente punto de la memoria.
5.5 Módulos utilizados
Una vez queda instalada la base de Drupal, tal y como se explicó en el
apartado 5 de esta memoria, el sitio web aún no está funcional porque esta
instalación inicial es genérica debiendo instalar los módulos apropiados que
personalicen y den las funcionalidades para las que inicialmente se diseñó
Sportalia37.
Diferenciaremos dos grupos de módulos utilizados,
 Core modules  Módulos que por defecto vienen dentro de la base
inicial de Drupal pero que no están activados por defecto.
 Contributed modules  Módulos independientes desarrollados por
la comunidad de Drupal que deberán ser descargados e instalados
modificando código para su perfecto ajuste al sitio.
5.5.1 Core modules
Aggregator (https://drupal.org/project/aggregation)
Integra contenido sindicado (RSS). Permite alimentarse de otras webs con
su contenido. Recoge, lee y muestra noticias, textos, imágenes y otros
contenidos de sitios externos a Sportalia37.
En esta web se ha utilizado para alimentar al sitio con las noticias que se han
creído más importantes de periódicos y revistas deportivas que permiten esta
funcionalidad tal y como se explicó en el punto 4.2.6 de esta documentación.
Página
81
Documentación general
Blog (https://drupal.org/project/advanced_blog)
Permite mantener fácilmente y actualizar regularmente páginas web de
usuarios autorizados o bitácoras teniendo en cuenta la marca del tiempo en el
cual se van agregando y ordenándolos por esta.
Comment (https://drupal.org/project/usercomment)
Permite a usuarios comentar y discutir contenido publicado. Crea una
interface (panel de debate) para cada nodo del sitio.
Upload (https://drupal.org/project/upload)
Permite a los usuarios subir archivos y anexarlos al contenido publicado.
Contact (https://drupal.org/project/contact)
Habilita el uso de formularios de contacto personal y a nivel de sitio.
También configura todo internamente para contactar entre estos mediante
correo electrónico.
Content translation (https://drupal.org/documentation/modules/translation)
Permite que el contenido sea traducido a varios idiomas.
Help (https://drupal.org/documentation/modules/help)
Administra el despliegue de la ayuda on-line. Enlaza con Drupal.org para
solventar dudas de acciones u otras funcionalidades de usuario y administrador.
Poll (https://drupal.org/project/poll)
Como su propio nombre indica, permite al sitio capturar votos sobre las
encuestas en forma de opción múltiple.
Profile (https://drupal.org/project/nodeprofile)
Módulo que da soporte a la configuración de los perfiles de usuario. Se
puede personalizar el contenido del perfil para usuarios con diferente rol.
Taxonomy (https://drupal.org/project/module_taxonomy)
Habilita la categorización del contenido explicado en el apartado 6.2.
Página
82
Documentación general
5.5.2 Contributed modules
AddThis (https://drupal.org/project/addthis)
Proporciona una caja de herramientas o desplegable para que los usuarios
puedan compartir en cualquier red social los contenidos de Sportalia37.
Administration menu (https://drupal.org/project/admin_menu)
Proporciona un menú desplegable para la mayoría de tareas y
funcionalidades. Reservado al rol de administrador, facilita la navegación de
funciones administrativas.
Content constructor editor CCK (https://drupal.org/project/cck)
Este es uno de los módulos con más importancia para Sportalia37 y la
mayoría de sitios creados con Drupal. Permite a los administradores la creación
de contenido con una gran cantidad de módulos de terceros para extender su
funcionalidad diseñando campos personalizados con el tipo de contenido
deseado.
Página
83
Documentación general
En este proyecto ha sido de vital importancia para poder crear el contenido de
tipo Evento explicado en el apartado 6.3.2. Como se muestra en la siguiente
figura se ha personalizado los campos a las necesidades del contenido,
La figura anterior muestra parte del contenido de un Evento. El administrador ha
creado con anterioridad a través del CCK los campos de texto Fecha inicio, Fecha
fin, Localidad y Lugar además del desplegable que permite seleccionar la
provincia.
La interface que ofrece para agregar contenido y en la que se ha trabajado para
crear los contenidos anteriores y los restantes de todos los eventos deportivos es
la siguiente,
En este ejemplo se ha creado el tipo de contenido Ejemplo contenido cuya
estructura será de checkbox conteniendo campos de texto en cada uno de estos.
Tendríamos por tanto un nuevo contenido creado que inicialmente no existía.
Página
84
Documentación general
En el desplegable se ve claramente la multitud de tipos de contenido que se
pueden crear pudiendo ampliarse en el caso de que se necesitara con nuevos
tipos (video, libros, etcétera).
Backup and Emigrate (https://drupal.org/project/backup_migrate)
Permite realizar copias de seguridad y restaurar la base de datos y los
archivos de Drupal MySQL.
Este módulo utilizado solo por el administrador ha permitido ir teniendo copias
por si se producía algún error de hardware y se perdía lo diseñado hasta el
momento.
La interface que este módulo proporciona para realizar dichas copias de
seguridad es la siguiente,
Una vez se configura el tipo de copia de seguridad que se desea salvar
solamente hace falta hacer clic sobre el botón de Backup now y Windows nos
pedirá donde deseamos guardar la copia a través de su ventana tradicional,
Una vez seleccionado la copia quedará almacenada para utilizar en el caso de
que fuera necesario su uso.
CKEditor (http://ckeditor.com/release/CKEditor-3.6.6)
Este módulo habilita un editor de texto para los que los usuarios puedan escribir
con mayores posibilidades y evitar tener que hacerlo con etiquetas PHP ya que
es este mismo el que hace esta conversión.
Este es el aspecto del editor una vez ha sido personalizado para adaptarse al
entorno visual y a las necesidades de los usuarios del sitio,
Página
85
Documentación general
Toolbar (https://drupal.org/node/972120)
Proporciona al sitio de un menú de estilo “barra de herramientas” con
accesos directos a las páginas de mayor interés.
Image (https://drupal.org/project/image)
Permite a los usuarios registrados subir imágenes creando miniaturas y
tamaños adicionales automáticamente si el administrador lo configura de este
modo.
Five Stars (https://drupal.org/node/248531)
Habilita la posibilidad de que usuarios con permiso valoren el contenido de
los nodos. Sportalia37 ha necesitado su importación para que los atletas puedan
dar una calificación a los eventos publicados.
La interface que se le proporciona a los atletas para valorar las citadas
publicaciones es la siguiente,
Página
86
Documentación general
Rotor banner (https://drupal.org/project/rotor)
Permite crear bloques con efecto giratorio. Suele ser muy útil para
publicidad pero en el caso de este proyecto se ha utilizado para promocionar las
webs de los diferentes organizadores del sitio.
Dicho rotor de imágenes se ha configurado para que aparezca en encabezado de
la web rotando cada 5 segundos cambiando la imagen que muestra y
proporcionando acceso directo a través de la propia imagen que ejerce de link a
la web del organizador si el usuario hace clic sobre esta.
Las imágenes que Sportalia37 ha configurado para que aparezcan en su portada
a través de este módulo son las siguientes:
Upload element (https://drupal.org/project/upload_element)
Permite la subida de archivos y anexarlos al contenido. La interface que
ofrece a los usuarios es la siguiente,
Seleccionando el botón de Examinar se accederá a la ventana tradicional de
Windows que permite la navegación entre directorios y seleccionar el archivo
deseado.
Pathauto (https://drupal.org/project/pathauto)
Permite crear alias para las URL de Drupal para facilitar la legibilidad de
los enlaces ayudando a los buscadores de la red a indexar el contenido.
Explicado con en más detalle en el apartado 5.2.2 de esta memoria.
Página
87
Documentación general
Views (https://drupal.org/project/views)
Siendo uno de los módulos más importantes utilizados, se puede
recuperar el contenido de la base de datos y presentarla al usuario del sitio como
listas, mensajes, galerías, cuadros, mapas, bloques. Su interfaz es:
Esta interface está asociada a un generador de consultas de SQL que puede
acceder a prácticamente cualquier información de la base de datos y mostrarla
en casi cualquier formato.
Algunas de las vistas más importantes que Sportalia37 ha creado utilizando este
módulo son las siguientes:
 Actualidad deportiva  Funcionalidad que gozan los usuarios
registrados.
Explicada con más detalle en el punto 4.2.6, la vista permite la
visualización en modo “sub-galería” de artículos RSS (sindicación) de las
principales webs deportivas actualizadas en tiempo real.
Página
88
Documentación general
 Rotor de eventos deportivos  La vista aparece en formato bloque el
cual se posicionó en la parte del encabezado y a través de CSS se ajusto
exactamente donde se pretendía tal y como se muestra en la figura,
A través de la interface de este módulo se configuró el tiempo de rotación (3
segundos por evento), selección de los atributos que aparecerían (Fecha inicio,
fecha fin, inicio inscripción, fin inscripción, provincia y precio) y como se ha dicho
en el inicio, que apareciera como tipo de bloque.
Listado de eventos  Vista que agrupa todos los eventos deportivos de
la web por categoría (gracias a la taxonomía).

Posteriormente, al hacer clic sobre la categoría deseada, el módulo retorna otra
vista diferente en forma de cuadrícula (grid) de tres columnas mostrando
únicamente la fecha de inicio, fecha de fin y precio de los eventos,
Página
89
Documentación general
Para que nos hagamos una idea de la potencia de este módulo este es el código
final generado automáticamente por el módulo views al configurar los campos
necesarios para generar la vista mencionada en este apartado,
SELECT term_data.name AS term_data_name,
COUNT(node.nid) AS num_records
FROM node node
INNER JOIN users users ON node.uid = users.uid
LEFT JOIN term_node term_node ON node.vid = term_node.vid
LEFT JOIN term_data term_data ON term_node.tid = term_data.tid
WHERE (node.status = 1) AND (node.type in ('ciclismo', 'futbol',
'natacion', 'running', 'tenis')) AND (users.uid = ***CURRENT_USER***)
GROUP BY term_data_name
ORDER BY term_data_name ASC
Efectuará una consulta SQL a la base de datos del sitio para cada vista deseada.
5.5.3 Directrices para crear un módulo
Primeramente se necesita hacer un estudio previo de qué necesidades
debe cubrir el módulo a crear y tener nociones de que hooks (ganchos) serán
necesarios para la implementación de este además de nociones de PHP. Tales
conocimientos se han conseguido a base de práctica y empezando por módulos
sencillos que se han realizado con la ayuda del libro Aprende Drupal 6 de
forcontu.
El primer paso consiste en crear el directorio donde se incluirán todos los
archivos necesarios para el módulo, la ruta debe ser
sites/all/modules/nombre_modulo
Una vez creado el directorio existen tres archivos totalmente básicos y necesarios
para que un módulo pueda funcionar correctamente tal y como recomienda la
comunidad Drupal, tales archivos son:
1. Nombre_modulo.info  Será donde se introducirá la información
básica del módulo. En este archivo se guardaran singularidades
como la fecha de creación, el nombre del módulo (name), versión
mínima del core de Drupal necesario para el que está diseñado
(core), descripción (description), dependencias de otros módulos
(dependence) y demás rasgos valiosos para estandarizar y asentar
las bases del módulo. Dichos datos son utilizados por el propio
Página
90
Documentación general
CMS para su clasificación y por los demás miembros de la
comunidad drupal que en un futuro lo puedan utilizar.
2. Nombre_modulo.install  Este módulo es imprescindible y sirve
principalmente para crear las tablas en la base de datos que
después serán utilizadas por el propio módulo para almacenar y
manejar la información que este requiera. Es importante destacar
que se debe implementar como mínimo dos hooks, uno de
instalación y otro de desinstalación (hook_install, hook_uninstall),
este último se encargará de eliminar las tablas y variables globales
que fueron creadas inicialmente en la base de datos por el
hook_install. Destacar finalmente que el hook_install se ejecuta al
habilitar inicialmente el módulo necesitado y el hook_uninstall hace
lo propio cuando se desactiva el módulo desde la interface que
goza el administrador del sitio.
3. Nombre_modulo.module  Es el archivo donde se
encuentran principalmente todas las funciones que implementan a
los hooks que inicialmente se han estudiado que necesitará el
módulo. Es decir si necesitamos que un módulo tenga ayuda
legible solo por ciertos roles de usuarios necesitaremos
implementar dos funciones asociadas a los hooks relacionados con
los permisos a los usuarios (hook_permission) determinando de
este modo que usuarios tendrán acceso a esta ayuda y otra
función que se encargará de mostrar la ayuda propiamente dicha
referente al modulo (hook_help).
Una vez acabadas todas las implementaciones deberemos asegurarnos de que
todos los archivos estén dentro del directorio que da nombre al módulo (debe de
estar sin espacios). Finalmente activaremos el módulo en
Administrar/Configuración del sitio/Módulos (admin/build/modules) y daremos los
permisos de utilización para los roles deseados en (admin/users/permissions). De
esta forma el módulo quedará habilitado por completo.
A continuación ampliaremos lo conocimientos descritos con anterioridad
explicando los módulos creados para Sportalia37.
Página
91
Documentación general
5.5.4 Módulos creados
Se han creado módulos específicos (modulo_expiración,
modulo_recomienda) para esta web dada la naturaleza y singularidad de algunas
funcionalidades que se querían desarrollar y que carecían de existencia en los
módulos desarrollados por la comunidad Drupal hasta el momento. Veamos a
continuación sus funcionalidades e implementación llevadas a cabo.
5.5.4.1 Módulo recomienda
5.5.4.1.1 Descripción
Permite a los usuarios recomendar el sitio web mediante el envío de emails a múltiples destinatarios.
5.5.4.1.2 Estructura
Este módulo se nutre de 2 archivos para su funcionamiento tal y como se
muestra a continuación,
La lógica del módulo se encuentra el modulo_recomienda.module, es aquí donde
reside el código principal de funcionamiento que implementará los hooks
necesarios para su funcionamiento.
5.5.4.1.3 Hooks
Modulo_recomienda_menu()
Se implementa puesto que será una opción que aparecerá en el menú de
navegación del sitio y es este hook precisamente en el que se especifica esa
singularidad además de la descripción, título que aparecerá como link para
realizar la recomendación y demás especificaciones.
Modulo_recomienda_form()
Se encarga de definir el formulario que el usuario dispondrá para realizar
la recomendación. Este constará de un título, un campo (textfield) para introducir
los correos electrónicos (deberán estar separados por comas) y un botón de
envío,
Página
92
Documentación general
Modulo_recomienda_mail ()
Especifica parámetros necesarios para el envío de e-mails además de
configurar dinámicamente la estructura del mail que recibirán los destinatarios.
Modulo_recomienda_from_validate ()
Se encarga de validar el correcto formato de los e-mails así como de tratar
la coma que habrá entre estos si desean mandar más de una recomendación.
5.5.4.1.4 Funcionamiento
Cuando un usuario desee recomendar Sportalia37 a alguno de sus amigos
deberá hacer clic sobre el link que aparece en la barra de opciones general con
el nombre de ¡Recomiéndanos!,
Aparecerá el formulario del punto 5.5.4.1.3 en el que deberá introducir las
direcciones de correo electrónico deseadas separadas por comas en el caso de
que haya más de una.
Finalmente haciendo clic sobre el botón de ¡Haz clic para enviar! finalizará todo
el proceso y se enviaran las recomendaciones pertinentes a todas las direcciones
de correo electrónico con el siguiente formato,
Página
93
Documentación general
En este caso aparece la palabra administrador pero esta se sustituirá
dinámicamente por el nombre del usuario que envíe el mail gracias a la
programación en PHP.
Como vemos además de la invitación se adjunta un link de acceso directo a la
web.
5.5.4.2 Módulo expiración
5.5.4.2.1 Descripción
La finalidad de este módulo es no arrastrar contenido caducado en la web,
es decir, eventos pasados tendrán un periodo de publicación finito. De esta
manera el sitio auto-gestionará los contenidos evitando mostrar al usuario
información de carreras ya pasadas y permitiendo, de este modo, un ciclo de
inactividad por parte del administrador mucho mayor ya que la finalidad es que
Sportalia37 se pueda prácticamente auto-gestionar por sí sola.
5.5.4.2.2 Estructura
El modulo_expiracion contiene los siguientes archivos tal y como se
muestra a continuación,
En este módulo observamos que existen algunos archivos más que en el
módulo explicado con anterioridad. Esto es debido a que se han agrupado hooks
específicos en archivos separados (modulo_expiracion.rules.inc,
modulo_expiracion.rules.inc, etc..) con la finalidad de agrupar y facilitar la
legibilidad de los archivos que siempre forman la columna vertebral de cualquier
módulo (archivos.module, archivos.info y archivos.install).
También se observa un archivo especial modulo_expiracion.js que no es más que
código en texto plano que contiene un script para que sea ejecutado por el
Página
94
Documentación general
navegador e inicialice por defecto la fecha máxima mínima permitida de
publicación de un contenido cuando este módulo está funcional.
5.5.4.2.3 Hooks
En el archivo modulo_expiracion.install se implementan los hooks
relacionados con la creación de tablas necesarias en la base de datos para el
correcto funcionamiento de este.
Modulo_expiracion_schema ()
Informa al sistema de que cuando se instale el módulo se deberá crear
una tabla a través de la función modulo_expiracion_install() definida a
continuación.
Modulo_expiración_install ()
Crea la tabla en la base de datos del sitio especificando sus atributos y el
tipo de estos.
Modulo_expiracion_uninstall ()
Elimina la tabla de la base de datos y de sus variables definidas por el
propio módulo. Esta función que implementa al hook hook_uninstall () se
ejecutará cuando se decida inhabilitar el módulo por algún motivo en especial
desde la interface que drupal ofrece al administrador del sitio ubicada en
admin/build/modules
Dicho análisis general del archivo .install se extiende para el resto de módulos
creados.
Analizando ahora el archivo modulo_expiracion.module que es en el que se
implementa el “nucleo funcional” de este módulo tenemos como funciones
destacadas las siguientes:
Página
95
Documentación general
Modulo_expiracion_cron ()
Realiza el chequeo de los contenidos y de su fecha de expiración en
relación a la fecha actual. Este hook (hook_cron) es el buscado por Drupal para
cada módulo instalado cada vez que se ejecuta el Cron y en caso de que exista
ejecutará el código que venga dentro de él. En nuestro caso es obvio que este
“gancho” es imprescindible ya que se deberá comprobar diariamente la
caducidad de todos los contenidos del sitio y esta como muchas otras
actualizaciones (contenido rss, etc…) es realizada por el Cron de Drupal.
Modulo_expiracion_form_alter ()
Modifica el formulario de la interface del administrador de los nodos
añadiendo la funcionalidad de fecha de expiración y fecha limite por defecto para
todos ellos. Esta función se respalda de la función
modulo_expiracion_form_node_type_form_alter del propio archivo
modulo_expiracion_form_alter y del archivo modulo_expiracion.nodeapi.inc.
Modulo_expiracion_perm
Define el permiso que utiliza el módulo.
5.5.4.2.4 Base de datos
Este módulo crea una tabla en la base de datos para almacenar el
identificador (nid) de cada contenido publicado y otros campos
(expire,expired,lastnotify) que ofrecen información sobre el estado de estos en
función de si se encuentran o no expirados. La estructura creada en la base de
datos del sitio es la siguiente,
5.5.4.2.5 Permisos
Existen dos tipos de permisos creados por este módulo:

Administer modulo expiracion  Por si se desea que algún rol en especial
pueda gestionar el módulo con los privilegios del administrador (no
recomendado si el usuario es externo a la administración del sitio).
Página
96
Documentación general

Edit modulo expiración  Permite seleccionar que roles podrán utilizar el
módulo y por tanto podrán poner fecha de expiración a su contenido.
Por lo tanto los permisos que quedaran marcados para que este módulo sea
funcional y con total integridad serán,
PERMISO
Usuario
Anónimo
Usuario
Autenticado
Usuario
Atleta
Usuario
Organizador
5.5.4.2.6 Funcionamiento
Todo usuario tiene permisos para crear ciertos tipos de contenido, gracias
a este módulo aparecerá en la interface pertinente de cada tipo un nuevo cuadro
de texto (textfield) en el que se especifica mediante un texto plano encima de
dicho cuadro el deber de introducir una fecha de expiración para dicho
contenido. Por lo tanto, todo contenido que se publique en Sportalia37 expirará
pasado el tiempo especificado por el usuario que lo publica. De este modo
conseguiremos que no existan contenidos obsoletos e innecesarios.
Veamos a continuación el cuadro de texto descrito anteriormente,
Destacar por último que el administrador puede inicializar por defecto este
campo además de poner un tope a la fecha máxima de expiración de todo tipo
de contenido. Esto es posible gracias a haber modificado el formulario a través
del hook_form_alter descrito en los apartados anteriores. De este modo el
formulario que hace de interface para que administrador controle lo descrito y
una vez se ha retocado con código CSS para que encuadre en el sitio deseado es
el siguiente,
Página
97
Documentación general
Además se da la opción al administrador de que dicha fecha de expiración de
contenido pueda ser de carácter obligatorio para el usuario o no. Si no es así el
contenido expirará según la fecha introducida por el administrador en el campo
Límite de la fecha de expiración.
5.5.4.3 Módulo depuración
5.5.4.3.1 Descripción
Se comentó en puntos anteriores que uno de los objetivos era que
Sportalia37 tuviera la máxima auto-gestión posible de forma que el administrador
no tuviera que intervenir excesivamente. Siguiendo esta línea sera necesario
tener un control de los comentarios por parte de la comunidad sportalia37
asegurando que no utilicen palabras malsonantes u otras restringidas por
cualquier otro motivo de control. Por este motivo se decidió implementar este
módulo para evitar tener que estar pendiente de si algún miembro descalifica de
manera agresiva a otros o si utiliza vocabulario inapropiado. Se encarga por lo
tanto de efectuar un filtrado al contenido publicado de Sportalia37 depurando
estas palabras indeseadas por la simbología XXX.
5.5.4.3.2 Estructura
El modulo_depuracion posee la siguiente estructura de archivos,
Al igual que el primer módulo creado este posee el archivo
modulo_depuracion.info y el módulo_depuración este último contiene todo el
código de funcionamiento pero se observa una añadido, el
Página
98
Documentación general
modulo_depuracion.install encargado de crear las tablas necesarias en la base de
datos para su correcto funcionamiento.
5.5.4.3.3 Hooks
Dentro del archivo modulo_depuracion.install se encuentran los
siguientes hooks de creación de tablas en la base de datos,
Modulo_expiracion_schema ()
Comunica al sistema de la creación de la tabla en su base de datos
llamada (modulo_depuracion) cuando se realice la instalación del módulo a
través de la función modulo_expiracion_install() definida a continuación.
Modulo_expiración_install ()
Crea físicamente la tabla anteriormente comentada en la base de datos
del sitio especificando sus atributos y el tipo de estos.
Modulo_expiracion_uninstall ()
Funcion que eliminara la tabla modulo_depuracion de la base de datos y
de sus variables definidas por el propio módulo. Esta función que implementa al
hook hook_uninstall () y se ejecutará cuando se decida inhabilitar el módulo por
algún motivo en especial desde la interface que drupal ofrece al administrador
del sitio ubicada en admin/build/modules funcionando de igual modo que en
modulo explicado en el punto anterior.
Pasaremos ahora a analizar los hooks más relevantes implementados en el
archivo modulo_depuracion.module que es donde reside el núcleo principal
de implementación de este módulo,
Modulo_depuracion_help ()
Función que implementa el hook_help encargándose de proporcionar
información del módulo al administrador cuando este acceda al correspondiente
link del menú de administrador admin/help
Página
99
Documentación general
Mostrando la siguiente información al administrador,
Modulo_depuracion_perm ()
Aquí nos encargamos de habilitar los checkboks para que el
administrador pueda otorgar el privilegio a ciertos roles de controlar las palabras
a depurar (no recomendable para roles ordinarios),
Como se muestra en la figura se pueden seleccionar que roles tendrán el citado
privilegio (admin/users/permissions).
Modulo_depuracion_menu
Define el tipo de formulario que tendrá en cada url definida y a la
función que deberá llamar para crearlo. Como ejemplo tomaremos el que define
la url admin/settings/modulo_depuracion,
Página
100
Documentación general
Vemos claramente que la función modulo_depuracion_menu implementa un
hook, el hook_menu y que define que cada vez que se acceda a la url
admin/settings/modulo_depuracion aparecerá un formulario en la página
especificada por page callback con titulo Modulo depuración. Esta interface a
modo de página se implementa a través de la función
modulo_depuracion_admin_list (implementado en el mismo fichero) y que
especifica la estructura de esta (campos, parámetros de salida y entrada y
demás rasgos identificativos).
Modulo_depuracion_filter ()
Es el encargado de efectuar el filtrado en el contenido antes de realizar
su publicación. Cuando un usuario realiza una publicación de algun tipo de
contenido Drupal busca este hook para comprobar si se debe realizar algún tipo
de tratamiento de “filtrado” para este. Este tratamiento se implementará en una
función externa dentro del propio fichero, en nuestro caso la función
modulo_depuracion_filter_process, que es la que se encarga de personalizar
nuestro filtrado que en este caso pasará por substituir las palabras malsonantes
o restringidas por la expresión XXX.
5.5.4.3.4 Base de datos
Este módulo crea una tabla en la base de datos para almacenar:
 Id  identificador de cada pareja de palabras (incorrecta/substituta).
 Word  palabras a depurar.
 Replacement  palabra que substituirá a la palabra incorrecta.
 Language  aporta información del lenguaje utilizado (info necesaria para
uso interno de Drupal).
Página
101
Documentación general
 Standalone  Es un booleano que indica si las palabras incorrectas a
substituir pueden ir o no mezcladas con otras (es para asegurar que nadie
ponga palabras incorrectas camufladas con otras).
La estructura que se crea en la base de datos del sitio es la siguiente,
5.5.4.3.5 Funcionamiento
Accediendo al sitio como administrador, se tiene acceso a la interface
gráfica general de manejo del módulo desde la URL
admin/settings/modulo_depuracion desde ahí aparece el siguiente formulario,
Como se observa se puede configurar para que filtre el titulo de los nodos y
comentarios de los usuarios de forma independiente (checkbox). En el caso de
Sportalia37 se ha decidido que el filtrado se realice en ambos.
Página
102
Documentación general
En el campo de texto se especifica la palabra a depurar por defecto cuando se
encuentre alguna que sea restringida.
Para agregar una palabra a la lista de depuración bastará con hacer clic sobre la
pestaña con nombre agregar obteniendo de este modo el siguiente formulario,
Como se aprecia simplemente hará falta introducir la palabra a restringir en el
campo de texto palabras poniendo dicha palabra seguida del carácter especial „|‟
y a continuación la palabra a sustituir. En el caso de que no se especifique
palabra se sustituirá por la configurada por defecto que aparece en el primer
formulario mostrado. Finalmente haciendo clic sobre el botón Salvar palabra a
depurar se habrá habilitado todo correctamente para su filtrado.
Página
103
Documentación general
Una vez realizado esto aparecerá un listado de todas las palabras insertadas en
la interface inicial,
Evidentemente a través del campo operaciones se podrá borrar o editar la
palabra en función de las necesidades o cambios posteriores necesarios.
5.5.5 Tema creado
Para crear Sportalia37 se analizaron con detenimiento múltiples temas
base que la comunidad de desarrolladores ofrecía. Se valoró el número de
regiones que harían falta, la disposición del contenido general y demás variantes
hasta que finalmente y debido a la naturaleza del sitio se utilizó el tema base
elements theme (https://drupal.org/project/elements_theme).
Seleccionar un tema ofrece simplemente una base a partir de la cual se deberá
modificar a través de CSS (Cascading Style Sheets) para ceñirse a la estructura y
a la finalidad decidida por el diseñador de la página web.
El tema está compuesto por una hoja de estilo externa en CSS, que es la página
donde se han especificado los aspectos gráficos de cada uno de los elementos
que se visualizan en el sitio web. Elementos tales como:









Anchuras de los bordes.
Colores del texto en cada región.
Tamaño de las imágenes.
Posicionamiento de cada elemento.
Colores fondo web.
Anchura y altura de los elementos de la web.
Fuente de texto.
Márgenes entre los elementos del sitio.
Etcétera…
Pero, ¿Qué es CSS?
A modo de resumen y sin entrar a fondo en cuestiones puramente
técnicas, CSS es el acrónimo de Cascading Style Sheets (Hojas de estilo en
Página
104
Documentación general
cascada) y sirve para organizar la presentación y el aspecto semántico de una
página web.
Utilizado por la mayoría de navegadores web de internet, intenta separar lo que
es la estructura del documento HTML de su presentación. Por explicarlo de una
manera coloquial, la página web sería la base (contenido) y CSS sería como una
especie de cristal de color que hace que se vea de una forma u otra en función
de su diseño.
A continuación se muestra el tema original sin aplicar los estilos de la hoja CSS,
Y este es el tema modificado con CSS,
Se puede apreciar claramente la diferente disposición de los elementos del sitio,
colores y anchuras.
El tema incorpora HOOKS propios (módulos creados) que modifican las
funcionalidades de Drupal para ceñirse al máximo a las necesidades de la web.
Finalmente destacar las regiones en las que se divide Sportalia37:
Página
105
Documentación general
 Cabecera: Aquí encontramos en Logo, eslogan y la tollbar.
 Barra lateral derecha: Inicio de sesión, navegación, quién está en
línea, alternador de idioma, encuesta más reciente y sindicación.
 Contenido: Eventos deportivos, blogs, publicaciones anónimas y
comentarios de los usuarios a propósito de los eventos y blogs.
 Pié de página: Sitio elaborado con Drupal e información del autor.
5.5.6 Lenguajes de programación utilizados
Para la realización de este proyecto han sido necesarios aprender los
siguientes lenguajes de programación:
HTML (HiperText Markup Language)
Es el lenguaje de maquetación que se utiliza para el desarrollo de páginas web
en internet. La traducción más satisfactoria en español sería Lenguaje de
formato de documentos para hipertexto.
El HTML se encarga de alguna forma de desarrollar una descripción sobre los
contenidos que aparecen en las páginas tales como textos fotografías y demás
objetos y de la estructura de estos.
Basando su filosofía en referencias ningún elemento es incrustado directamente
en el código de la página, sino que se hace una referencia a la ubicación de este
mediante texto. Por lo tanto la página web contiene solamente texto mientras
que el navegador web es en el que recae la tarea de unir todos los elementos y
mostrar la página final.
CSS (Cascading Style Sheets)
Lenguaje de hoja de estilos para controlar el aspecto o la presentación de
documentos definidos con HTML. Es la mejor forma de separar los contenidos y
su presentación. Mejora la accesibilidad del documento, reduce la complejidad de
su mantenimiento y permite visualizar el mismo documento en infinidad de
dispositivos diferentes.
A modo de resumen podríamos relacionar el lenguaje HTML y el CSS a través de
la siguiente visión general:
Al crear una página web, se utiliza en primer lugar el lenguaje HTML para marcar
los contenidos, es decir, para designar la función de cada elemento dentro de la
página: párrafo, titular, texto destacado, tabla, lista de elementos, etcétera.
Página
106
Documentación general
Una vez creados los contenidos, se utiliza el lenguaje CSS para definir el aspecto
de cada elemento: color, tamaño y tipo de letra de texto, separación horizontal y
vertical entre elementos, posición de cada elemento dentro de la página,
etcétera.
PHP
De código abierto, es utilizado para generar páginas dinámicas como
Sportalia37. Este lenguaje se procesa en los servidores del sitio que acceden a la
base de datos asociada enviando a la página lo solicitado. De alguna forma PHP
convierte una página dinámica en una estática de la siguiente forma:
Petición de la página web al servidor  El servidor recibe la petición, reúne la
información necesaria consultando a la/as base de datos o a otras páginas web,
otros servidores, etcétera  El servidor responde enviando una página web
estática cuya creación ha sido dinámica (la página web devuelta no siempre será
igual).
MYSQL
Es un sistema de administración de base de datos de tipo relacional que
utiliza el lenguaje SQL. Una base de datos relacional almacena los datos en
tablas separadas en lugar de poner los datos en un solo lugar agilizando la
velocidad y proporcionando mayor flexibilidad.
5.5.7 Programas y aplicaciones utilizados
Del mismo modo que en el apartado anterior, los programas que se han
necesitado para desarrollar el proyecto de Sportalia37 y su uso específico han
sido los siguientes:
GIMP (http://www.gimp.org.es/)
Programa utilizado para el diseño de las imágenes del sitio,
Página
107
Documentación general
PAINT (http://www.getpaint.net/)
Programa utilizado para el mismo fin que el comentado anteriormente,
NOTEPAD++ (http://notepad-plus-plus.org/download/v6.5.1.html)
Utilizado para edición de archivos referentes a los módulos y la hoja de estilo de
CSS del tema creado,
Página
108
Documentación general
INTERNET EXPLORER (Navegador que viene por defecto en Windows)
Navegador utilizado para la visualización del sitio. A medida que se iban
introduciendo modificaciones en el diseño y mejoras esta herramienta permitía
ver como quedaba el aspecto final en la red.
CINSOLA DE DESARROLLO WEB (F12) PARA LA DEPURACIÓN
Consola del propio navegador que aparece al apretar la tecla F12,
permite seleccionar cualquier elemento de la página web y comprobar cuál es su
nombre, la clase a la que pertenece y demás atributos. Realizando las
modificaciones sobre esta consola sobre algún atributo, clase, etcétera, se puede
comprobar el resultado final que esa modificación tendrá en el sitio al momento
tras haberla actualizado apretando F5.
En la figura anterior vemos como se ha seleccionado un campo al azahar (title)
que corresponde al título del blog del atleta3 (Crónica del Maresme Challenger
2013 by atleta3). Desde la consola inferior (ventana de la derecha) podríamos
modificar algún atributo de el título del blog (tamaño, fuente texto, color,
etcétera) comprobando al momento si el cambio/os realizados son satisfactorios
o no.
Página
109
Documentación general
PHOTOSHOP (http://www.photoshop.com/)
Utilizado para el diseño del logo de la web y de su correspondiente favicon,
COLOR PIKER (http://www.colorpicker.com/)
Herramienta on-line que ha sido de gran utilidad para agilizar el diseño de
colores de la web. A través de una simple interface permite seleccionar el tono
de color exacto en formato hexadecimal (como utiliza CSS) al mostrado en una
ventana que la propia interface ofrece al usuario,
Página
110
Documentación general
GANTT PROJECT (http://www.ganttproject.biz/)
Programa utilizado para documentar la planificación temporal de la web.
Proporciona una interface para hacer la relación tarea – duración en un diagrama
para todo tipo de proyectos,
CAMTASIA STUDIO 8 (http://www.photoshop.com/)
Programa utilizado para realizar la presentación en formato de video del
proyecto,
Página
111
Documentación general
6. Pruebas
Para comprobar el correcto funcionamiento del sitio se han realizado
múltiples juegos de prueba intentando buscar casos críticos y situaciones de
riesgo con el fin de localizar posibles errores. A modo de resumen se expone a
continuación una lista detallada de lo realizado:
 Se han creado 7 usuarios registrados de los cuales 4 han sido de tipo
atleta (atleta1, atleta2… …atleta4) y los 3 restantes de modo organizador
(organizador1, organizador2 y organizador3).
 Generados 15 eventos deportivos de los cuales 6 han sido creados por el
organizador1, 4 por el organizador2 y 3 por el organizador3 y 2 por el
administrador del sitio.
 Se han posteado 7 blogs de los cuales 2 han sido publicados por el
atleta1, 1 por el atleta2, 2 por el atleta3, 2 por el atleta4.
 Múltiples comentarios en todos los tipos de contenido publicado.
 Borrado de contenido de todo tipo.
 Posteado de encuestas.
 Se han comprobado las actualizaciones de las sindicaciones tanto propias
como de otras webs de las que Spoertalia37 se nutre.
 Intento de violar el password entrando con contraseñas erróneas.
Modificado estas por otras con resultado satisfactorio en ambos casos.
 Se ha creado 3 publicaciones anónimas por parte de los atletas1, 2 y 4
respectivamente.
 Se ha comprobado el correcto funcionamiento de todos los bloques y
funcionalidades habilitadas (compartir contenido con las redes sociales,
links, nube de tags, rotor de eventos deportivos, etcétera).
Se ha comprobado que la modificación de un módulo puede afectar al
comportamiento de terceros por lo que se ha verificado el sistema siempre que
se ha agregado algún cambio.
Página
112
Documentación general
Página
113
Documentación general
7. Planificación temporal
A continuación se detalla mediante un diagrama de Gantt la planificación
temporal que se ha llevado a cabo para la realización de la web,
El periodo total para la realización de este proyecto ha sido de 218 días.
Página
114
Documentación general
Página
115
Documentación general
8. Costes
8.1 Estudio previo
En el apartado de costes solamente hace falta decidir el tipo de respaldo
web que tendrá el sitio. La elección final de una u otra opción repercutirá al
coste final.
Para que un sitio web este accesible a los internautas es necesario que los
archivos que lo forman se encuentren alojados en un servidor web, un
ordenador especial equipado con la tecnología y software necesario para estar
conectado 24 horas y mostrar la web cada vez que un navegador lo solicita.
En el caso de Sportalia37 existen varias posibilidades de satisfacer los requisitos
mencionados en el párrafo anterior mediante un servidor local, compartido o uno
dedicado 100% con unos costes totales diferentes.
El esquema de estudio seguido para seleccionar una u otra opción fue el
siguiente,
I.Elección del tipo de servidor
Servidor local
La opción más económica, tan solo nos hará falta una conexión a internet
desde casa o lugar deseado con una buena velocidad de subida y lógicamente
un ordenador con buena capacidad de respuesta. Hoy en día existen
ordenadores que ofrecen prestaciones muy elevadas como para dar una
respuesta óptima a sitios web similares a este.
Página
116
Documentación general
Ventajas
- Control total de la máquina donde se respalda la web.
- El único coste a la larga sería el de la luz que alimentaría al servidor.
- Autosuficiencia de funcionamiento sin depender de empresas de
hospedaje web.
Inconvenientes
- Máquina encendida las 24 horas al día del año para no interrumpir el
acceso de los usuarios.
- Inversión inicial en hardware y sistema operativo.
- El ordenador que haría de servidor deberá tener gran capacidad de
respuesta y prestaciones para responder a diversas peticiones a la vez.
- Tiempos de respuesta exponenciales al número de peticiones
simultáneas.
Servidor web compartido
Múltiples sitios web alojados en el mismo servidor compartiendo todos los
recursos de la máquina.
Ventajas
- Bajo coste.
- No es necesario grandes conocimientos de hospedaje web ya que la
mayoría de tareas las suele hacer el proveedor.
- Los clientes no se hacen responsables del mantenimiento del servidor.
Inconvenientes
- Suele haber límites en el espacio de disco.
- El cliente no tiene acceso root o raíz de servidor.
- Suele ser difícil las tareas de backup y restauración.
Página
117
Documentación general
Servidor web 100% dedicado
él solo.
En este último caso Sportalia37 dispondría de un servidor exclusivo para
Ventajas
- El cliente dispone de todos los recursos de la máquina.
- La configuración del servidor puede estar completamente adaptada a
las necesidades del sitio.
- El mantenimiento y las actualizaciones se realizan con mayor facilidad
y total control.
Desventajas
- Coste elevado del servicio alrededor de 5 a 15 veces más que uno de
compartido.
II.
Elegir el sistema operativo
La principal diferencia entre ambos son los lenguajes de programación
que soportan. En nuestro caso la elección será Windows ya que es el S.O. más
conocido por el diseñador del sitio web.
Estas dos tablas ofrecen información de las funcionalidades de un S.O. u otro,
Página
118
Documentación general
III.
Elegir el plan de alojamiento
Selección que viene determinada en función de los recursos que se prevea
consumir:
IV. Elegir proveedor de alojamiento
De entre todas las empresas que ofrecen servicios de hosting y teniendo
en cuenta las recomendaciones de la comunidad Drupal se han preseleccionado
las siguientes:
Página
119
Documentación general
Todas ofrecen muy buenas prestaciones pero sin duda alguna 1&1 es la que
mejor se adapta a nuestras necesidades precio-prestaciones tal y como se
muestra en la siguiente comparativa de hosting de web compartida,
Espacio disco
Dominios
Editor web móvil
Acceso FTP
Precio €/mes
1&1
50 Gb
1
Sí
Sí
2,99
HostGator
Ilimitado
1
Sí
Sí
3,96
Arsys
200 Mb
1
No
Sí
4,9
8.2 Conclusiones
Llegados a este punto se tenía que decidir cuál de estas opciones se
escoger descartando la de servidor local ya que la necesidad de dedicar una
máquina para dar respaldo al sitio dando funcionalidad 24 horas sin interrupción
era una inversión costosa y no optimizaba el perfecto rendimiento del
Sportalia37.
Puesto que esta web no está pensada para generar beneficios y los recursos
necesarios no son muy importantes nos decantaremos por la opción más
económica y, por lo tanto, la opción seleccionada será la de un servicio web
compartido. La empresa seleccionada a día de hoy sería 1&1 por ofrecernos
mejores precios finales.
Finalmente tendremos,

Coste total de Sportalia37 = 2,99 € + IVA mensuales
Página
120
Documentación general
Página
121
Documentación general
9. Legislación
Drupal se ampara en la licencia GPL (GNU General Public Licence) que
garantiza la libertad de usar, estudiar, compartir y modificar el software.
Pudiendo ser usada por cualquiera, su finalidad es la de proteger a los usuarios
finales de cualquier apropiación que restringa estas libertades.
Creada en origen por Richard Stallman fundador de FSF (Free Software
foundation).
Esta licencia no implica que no se tenga que tener en cuenta la L.O.P.D. (Ley
orgánica de protección de datos) para garantizar los derechos fundamentales de
las personas físicas que serán usuarias de Sportalia37.
9.1 Ley orgánica de protección de datos
Texto oficial consolidado a fecha 5 de marzo de 2011, según la agencia
española de protección de datos (http://www.agpd.es/portalwebAGPD/indexides-idphp.php) que tiene por objetivo garantizar y proteger, en lo que concierne
al tratamiento de de los datos personales, las libertades públicas y los derechos
fundamentales de las personas físicas, en especial de su intimidad personal y
familiar. Es aplicable a los datos de carácter personal registrados en soporte
físico que los hagan susceptibles de tratamiento.
Puntualiza también que los usuarios deberán ser comunicados previamente de
manera precisa e inequívoca de la finalidad de la petición de datos personales y
de que se hará con estos en un futuro.
Página
122
Documentación general
Página
123
Documentación general
10. Mejoras
Una web Drupal sin optimizar utiliza muchos recursos en el servidor tanto de
CPU como de accesos a bases de datos. Para no aumentar el gasto en
alojamiento servidores más potentes y por consiguiente más caros, se han
tomado las siguientes medidas recomendadas por la comunidad Drupal,

Agrupación de todos los estilos CSS en un solo archivo.

Activación del modo caché para
- Comprimir las páginas utilizando el menor ancho de banda en
cada petición.
- Para que no se regenere cada petición de página, por ejemplo, los
posts más leídos en vez de generarse cada visita lo pueden hacer
cada hora.
- Servir únicamente los ficheros js y css en la primera visita de cada
usuario.

Desinstalación de los módulos que han podido ser utilizados para
crear el sitio pero finalmente no serán de más servicio para el
funcionamiento de la web.
10.1 Mantenimiento
Con la finalidad de garantizar la estabilidad del gestor debido a la
continua evolución soportada por este CMS se explicarán los pasos a seguir para
realizar las actualizaciones pertinentes que permitirán a la web estar renovada y
puesta al día.
La versión con la que se ha diseñado Sportalia37 es la 6.90, esto implica que
cuando se ejecute el cron (explicado en el apartado 5.1.2.1) y detecte que existe
una nueva actualización nuestro gestor nos avisará a través de un mensaje de
texto de que deberemos hacer la actualización correspondiente,
Esta advertencia solo podrá visualizarla el administrador del sitio.
Página
124
Documentación general
Los pasos a seguir para que el proceso de actualización sea satisfactorio y sin
fisuras es el siguiente:

Hacer copia de seguridad del sitio.

Poner la página en modo mantenimiento para advertir a los
usuarios de que temporalmente y hasta que se descargue e
instale la nueva actualización la web no estará funcional.

Instalar las actualizaciones (mediante el „cron‟).

Comprobar su correcto funcionamiento.

Volver a habilitar la web.
En el caso de que existieran problemas con dicha actualización se debería
restaurar la copia de seguridad realizada con anterioridad.
10.2 Actualización a Drupal 8
Proceso necesario para mantener al día el sitio igual que en apartado
anterior, cuando una actualización difiere mucho de la existente la comunidad
renombra dicho CMS incrementando el número de la versión Drupal.
Recientemente ha aparecido la versión 8 de Drupal para dar soluciones
específicas y personalizadas a dispositivos móviles, tablets, android, ios y demás
tecnologías relacionadas con este sector. A continuación se explicará el proceso
de la migración de Drupal 6 a Drupal 8.
Esta tarea es delicada y puede dar múltiples problemas migratorios y de
asentamiento final del sitio por lo que los pasos que se describirán a
continuación podrían tener singularidades con problemáticas específicas en
función del desarrollo del sitio. Además la comunidad de desarrolladores de este
CMS recomienda realizar la migración a Drupal 7 en primer lugar.
A continuación y para no hacer tedioso la explicación de todo el proceso
Drupal 6  Drupal 7  Drupal 8
se explica la primera migración (Drupal 6 Drupal 7) por lo que los pasos a
seguir sería los siguientes:
1. Respaldar el sitio mediante un backup.
2. Actualizar el sitio a la versión más reciente de Drupal 6.
Página
125
Documentación general
3. Descargar la versión más reciente de Drupal 7
http://drupal.ord/download
4. Leer con detenimiento el archivo UPGRADE.txt situado en la raíz de
los archivos de instalación de Drupal 7.
5. Iniciar la sesión con el usuario #1, que es el que se creó por
defecto al ser instalado.
6. Poner el sitio en mantenimiento para que se le deniegue el acceso a
la web a todo usuario que intente accedes a esta y se le advierta
mediante un cuadro de texto de los motivos de la inhabilitación de
Sportalia37.
http://localhost:8082/admin/settings/site-maintenance
7. Activar el tema <Garldand> como predeterminado.
8. Desactivar los módulos que no forman parte del núcleo de Drupal.
http://localhost/admin/build/modules
9. Borrar el archivo sites/default//default.settings.php.
10. Borrar archivos y directorios del núcleo de Drupal 6 exceptuando el
directorio sites.
11. Extraer y copiar los archivos de Drupal 7 en el directorio de
Sportalia37.
12. Asignar permisos de lectura y escritura a todos los usuarios para el
archivo sites/default/settings.php:
$ chmod 777 /var/www./drupal7/sites/default/settings.php
13. Entrar en la página actualización http://www.localhost/update.php
y pulsar el botón de continuar.
14. Descargar la versión 7 para todos los módulos contribuidos de
Sportali37 y actualizar posteriormente.
15. Cambiar los permisos del archivo de configuración settings.php:
$ chmod 550 /var/www/drupal7/sites/default/settings.php
16. Verificar el perfecto funcionamiento de la web.
17. Volver a la página de administración y sacar el sitio de modo
mantenimiento.
18. Proceso finalizado.
Página
126
Documentación general
Página
127
Documentación general
11. Conclusiones generales
El desarrollo de este PFC me ha permitido entender la estructura general y
funcionamiento interno de las páginas web de contenido dinámico cosa que
desconocía por completo hasta el momento.
Me ha resultado muy apasionante y porque no decirlo, un poco tedioso, aprender
toda la cantidad de conceptos, lenguajes de programación, funcionamiento
interno del gestor de contenidos y demás aspectos necesarios para lograr que
Sportalia37 sea una web totalmente funcional y de utilidad para atletas y
organizadores tal y como se pretendía inicialmente.
También me ha sorprendido mucho la enorme cantidad de portales web de
empresas de primer nivel y demás proyectos que están implementados con esta
tecnología de contenidos.
Por otra parte, he certificado que, a través de la adaptación de los módulos
contribuidos por la comunidad de desarrolladores de Drupal se puede generar
prácticamente cualquier funcionalidad necesaria para todo tipo de webs. La
creación de módulos personalizados ha sido clave para entender que, a veces,
será necesario ayudar a la comunidad y crear nuevas funcionalidades específicas
ya que estas pueden ser que aún no hayan aparecido.
Un aspecto importantísimo y que en los foros de este CMS se destacaba con
mucha frecuencia era la importancia de seleccionar un tema adecuado a la
finalidad del sitio y la importancia del aspecto visual de este. Sportalia37 se
diseñó para tener un aspecto diferente al resto de webs con el fin de destacar y
llamar la atención del usuario. Colores intensos y una distribución singular de los
diferentes bloques de los que se compone han intentado llevar a cabo esta tarea
de impacto visual.
Finalmente destacaré un par de puntos que considero importantes,
1. La gran versatilidad y solidez para dar respaldo a sitios web con
finalidades tan dispares como pueden ser inmobiliarias, eventos
deportivos, catálogos de fotos, blogs, etcétera.
2. Es un CMS en continua evolución y de código libre que constantemente es
actualizado por los miembros de su comunidad con la finalidad de no
perder potencialidad y adaptabilidad a los nuevos desafíos que ofrecen las
nuevas tecnologías emergentes.
Página
128
Documentación general
Página
129
Documentación general
12. Referencias / Bibliografía

Página oficial de Drupal: www.drupal.org

Página drupal en castellano: www.drupal.org.es

API de Drupal: http://api.drupal.org/api/drupal

Webs de aprendizaje Drupal:
http://illasaron.com
o http://cursosdrupal.com
o http://cocinandocondrupal.net
o http://aprende.drupal-centroamerica.org/
o http://www.drupalescuela.com/
o http://www.cursosdrupal.com/
o

Libros:
o Estudio de los sistemas de gestión de contenidos web,
Centro de apoyo tecnológico a emprendedores, Fundación
parque científico y tecnológico de Albacete (PDF), 2012.
o “Learning Drupal 6 Module Development”, Matt Butcher
2008
o Aprende Drupal 6 Curso de creación y gestión de portales
web con Drupal 6 Nivel Inicial, Fran Gil y Adolfo Romaní
2011
o
Aprende Drupal 6 Curso de creación y gestión de portales
web con Drupal 6 Nivel Intermedio, Fran Gil y Adolfo Romaní
2011
o Aprende Drupal 6 Curso de creación y gestión de portales
web con Drupal 6 Nivel Avanzado, Fran Gil y Adolfo Romaní
2011
o Drupal, Angela Byron, Addyson Berry, Nathan Haug, Jeff
Eaton, James Walker y Jeff Robbins 2010
 Páginas sobre alojamiento web:
o http://www.1and1.es/hosting-windows
o http://www.arsys.es/hosting
o http://www.hostgator.com/shared
Página
130
Documentación general
Página
131
Documentación general
13. Glosario
CMS (Content manager system)
Sistema de gestor de contenidos. Interface asociada a un programa que
permite crear una estructura para la creación y administración de contenidos.
PHP (Hypertext preprocessor)
Lenguaje de código abierto utilizado por el servidor para el desarrollo de
páginas web dinámicas.
FTP (File transfer protocol)
Protocolo de red para la transferencia de archivos en sistemas conectados
a un red.
SQL (Structured query language)
Lenguaje declarativo de acceso a bases de datos relacionales que permite
hacer múltiples operaciones en cada una de ellas.
ASP.Net
Framework para aplicaciones web desarrollado y comercializado por
Microsoft. Es el reflejo de Drupal para Windows y de código no liberalizado.
JAVA
Lenguaje de programación y primera plataforma informática creada por
Sun Microsystems en 1995. Importantísimo gracias a que puede ejecutarse
desde cualquier máquina virtual Java sin importar la arquitectura de la
computadora.
PYTON
Lenguaje de programación interpretado de sintaxis limpia con el objetivo
de favorecer la legibilidad.
MySQL
Sistema de gestión de bases de datos relacional multiusuario.
GNU/GPL
Licencia pública general que garantiza al usuario final la libertad de usar,
estudiar, compartir y modificar software.
Página
132
Documentación general
HTML (HyperText Markup Language)
Lenguaje para la elaboración de páginas web. Basado en la referenciación
permite la definición de contenido de las páginas como texto, imágenes,
etcétera.
Oracle
Sistema de gestión de bases de datos desarrollado por Oracle Corporation.
WampServer
Sistema de infraestructura de internet que usa Windows como sistema
operativo, Apache como servidor web, MySql como gestor de bases de datos y
PHP como lenguaje de programación. Permite virtualmente establecer una
conexión PC-Servidor desde una sola máquina sin tener que ser esta un servidor
propiamente dicho.
JavaScript
Lenguaje de programación interpretado y dinámico implementado como
parte del navegador web permitiendo mejoras en la interfaz de usuario y páginas
web dinámicas. Incrustado en HTML lo ejecuta la máquina del cliente con lo que
la rapidez es notablemente superior.
API (Application Programming Interface)
Interfaz que documenta caractgeristicas y funcionalidades de una
aplicación determinada.
CCK (Content Construction Kit)
Interface de Drupal que permite crear y modificar tipos de contenido sin
necesidad de crearlos manualmente en la base de datos.
RSS (Really Simple Syndication)
Formato XML para sindicar o compartir contenido en la web el cual se
actualiza frecuentemente a los sitios web que se han suscrito.
URL (Uniform resource locator)
Secuencia de caracteres, de acuerdo a un formato modélico y estándar,
que se usa para nombrar recursos en internet para su localización o
identificación.
Página
133
Descargar