reporte final dulce

82
REPORTE DE ACTIVIDADES PORTAL DE EX ALUMNOS PRESENTA: PULIDO FLORES DULCE CONCEPCION

Upload: belinda-salas

Post on 10-Aug-2015

92 views

Category:

Documents


17 download

TRANSCRIPT

Page 1: Reporte Final Dulce

REPORTE DE ACTIVIDADES

PORTAL DE EX ALUMNOS

PRESENTA:

PULIDO FLORES DULCE CONCEPCION

Page 2: Reporte Final Dulce

INDICE:

1. INTRODUCCIÓN. 1

2. JUSTIFICACIÓN. 2

3. OBJETIVOS. 2

2.1. OBJETIVO GENERAL. 2

2.2. OBJETIVO ESPECIFICO. 3

4. CARACTERÍSTICAS DEL ÁREA EN QUE PARTICIPO. 4

5. PLANTEAMIENTO DEL PROBLEMA 5

6. ALCANCES Y LIMITACIONES 6

7. DETERMINACIÓN DE RECURSOS. 7

7.1. DETERMINACIÓN DE RECURSO HUMANO. 7

7.2. RECURSO TÉCNICO. 7

7.3. RECURSOS MATERIALES. 8

7.4. RECURSO ECONÓMICO. 8

8. FUNDAMENTO TEORICO 9

CAPITULO 1 LIFERAY. 9

1.1. CARACTERÍSTICAS DE LIFERAY. 10

1.2. PERSONALIZACIÓN DE LIFERAY. 13

1.2.1. EXT. 14

1.2.2. HOOKS. 15

1.2.3. PORTLETS Y WEBS. 16

1.2.4. THEMES Y LAYOUT TEMPLATES. 17

1.3. APLICACIONES 19

1.4. APRENDIZAJE DE LA PLATAFORMA. 21

CAPITULO 2. VELOCITY 22

2.1. EL LENGUAJE DE PLANTILLAS DE VELOCITY (VTL) 22

2.2. REFERENCIAS 22

2.2.1. VARIABLES 23

2.2.2. PROPIEDADES 23

2.2.3. MÉTODOS 23

Page 3: Reporte Final Dulce

2.2.4. NOTACIÓN FORMAL DE REFERENCIAS 24

2.3. DIRECTIVAS 24

CAPITULO 3. HTML 25

3.1. ATRIBUTOS DEL TEXTO 25

CAPITULO 4. CSS (CASCADE STYLE SHEETS) 26

4.1. PRIMEROS CONCEPTOS 27

4.2. SINTAXIS 27

CAPITULO 5. POSTGRE SQL 28

5.1. CARACTERÍSTICAS 29

CAPITULO 6. GIT 32

6.1. CARACTERISTICAS 32

CAPITULO 7. TORTOISE 35

7.1. CARACTERÍSTICAS DE TORTOISE SVN 35

9. PROCEDIMIENTO. 38

9.1. FACTIBILIDAD. 38

9.1.1. FACTIBILIDAD TÉCNICA. 38

9.1.1.1 DETERMINACIÓN DE REQUERIMIENTOS. 38

9.1.2. FACTIBILIDAD OPERATIVA. 39

9.1.3 FACTIBILIDAD ECONÓMICA. 39

9.2. ANALISIS DEL DISEÑO Y CONOCIMIENTO DE HERRAMIENTAS

A UTILIZAR

40

9.3. CONEXIÓN DE LIFERAY CON POSTGRE SQL 40

9.4. EDICION DE PORTLETS: WEB FORM Y VISOR DE CONTENDIO

WEB

41

9.5. AGREGAR BASE DE DATOS (TABLAS), MOSTRAR Y

AGREGAR A BASE DE DATOS DESDE UN PORTLET

43

9.6. DISEÑO DE PÁGINAS 44

9.7. TRASPASO 52

9.8. AGREGAR COMUNIDADES Y PÁGINAS 53

9.9 CREACION DE APLICACIÓN CUESTIONARIO DE EGRESADOS

54

Page 4: Reporte Final Dulce

10. RESULTADOS. 55

11. CONCLUSIONES Y RECOMENDACIONES 56

12. FUENTES CONSULTADAS. 57

12.1. BIBLIOGRAFIA 57

12.2 ENLACES DE INTERNET 57

13. ANEXOS 58

13.1. MANUAL DE USUARIO 58

13.2 MANUAL DEL PORTAL 65

Page 5: Reporte Final Dulce

1.- INTRODUCCIÓN:

Con base en la necesidad de un espacio de convivencia y seguimiento de egresados

del Laboratorio Nacional de Informática Avanzada se crea el proyecto Portal de Ex

alumnos del Centro de Enseñanza LANIA iniciando como tema de tesis de la

maestría de cómputo aplicado. El desarrollo de este Portal se basó en artefactos que

propone la metodología ICONIX, utilizando los que aplicaran al caso de estudio. En

la especificación de requerimientos se definieron 11 procesos de negocio, de los

cuales a 7 se les colocó funcionalidad (Alta de Usuario, Experiencia Laboral,

Noticias, Perfil del Ex-alumno, Reseña de Examen de Titulación, Tecno-Foro,

Historia de mi Generación), y por motivos de tiempo no se logró dar funcionalidad a

4, los cuales son: Difusión de Ofertas de Trabajo, Publicación de Convocatorias,

Registro de Datos y Seguimiento de Trámite de Titulación.

Page 6: Reporte Final Dulce

2.- JUSTIFICACIÓN

La importancia de este proyecto consiste en el beneficio para los egresados

obteniendo información de su proceso de titulación, este apartado ayudara a saber el

estatus en que se encuentra el proceso. Y a la ayuda del registro y seguimiento del

trámite, para Coordinación Académica.

Page 7: Reporte Final Dulce

3.- OBJETIVOS.

3.1 OBJETIVO GENERAL

Colaboración a un trabajo de tesis de Seguimiento de Egresados, agregando un

módulo de registro de datos de los ex-alumnos y un módulo de seguimiento de

trámite de titulación para la ampliación del Portal de Ex-alumnos del Centro de

Enseñanza del LANIA.

3.2 OBJETIVO ESPECIFICO

1.- Agregar módulo de registro de datos personales y datos de contacto, haciendo

una base de datos en PostgreSQL 9.01 a través de un modelo de base de datos ya

existente y gestionándolo mediante un CMS llamado LIFERAY con Tomcat 6.0.6.

2.- Agregar módulo de Seguimiento de Trámite de Titulación, haciendo una base de

datos en PostgreSQL a través de un modelo de base de datos ya existente y

gestionándolo mediante un CMS llamado LIFERAY con Tomcat 6.0.6.

3.- Cambio de diseño gráfico del portal mediante la creación de hojas de estilo y

temas para Liferay mediante un plugin Liferay SDK en Eclipse Helios.

4.- Creación de nuevos elementos gráficos para el diseño del portal mediante Adobe

Photoshop CS5 y Gimp 2.6.11.

Page 8: Reporte Final Dulce

4.- CARACTERÍSTICAS DEL ÁREA EN QUE PARTICIPO.

La participación en el proyecto es dentro de la Dirección del Centro de Servicios

Tecnológicos CEST, área encargada de la consultoría para el desarrollo de software,

control de calidad e infraestructura y redes. El rol asignado es el de programador-

web.

Mostrando a continuación el organigrama de LANIA

Page 9: Reporte Final Dulce

5.- PLANTEAMIENTO DEL PROBLEMA.

Por el la necesidad de un espacio web donde se haga un seguimiento de trámite de

titulación para ex-alumnos del Laboratorio Nacional de Informática Avanzada LANIA,

así como un apartado donde se registren datos personales y datos de contacto de

cada alumno al inicio de la maestría y a su actualización al término de los cursos

presenciales, se pretende la colaboración en un portal web ya existente añadiendo

algunas de las ya antes mencionadas basándose en un modelo de base de datos ya

existente.

Page 10: Reporte Final Dulce

6.- ALCANCES Y LIMITACIONES.

El portal tendrá la funcionalidad de notificar al egresado el estatus del trámite de

titulación, mediante un registro previo. Como limitante se desconocía las

herramientas utilizadas como lo son PostgreSQL y Liferay con Tomcat.

Page 11: Reporte Final Dulce

7.- DETERMINACIÓN DE RECURSOS.

Para poder realizar dicho proyecto se necesitó de la colaboración de un asesor

externo, siendo la persona Mtra. Ma. De Lourdes Hernández Rodríguez, quien nos

asignó a un asesor y jefe a cargo del proyecto Beatriz Gutiérrez Almaraz la cual nos

proporcionó de la mejor manera toda la información para poder realizar este sistema.

7.1 DETERMINACIÓN DE RECURSO HUMANO.

El desarrollo del proyecto se elaboró de forma individual encargándose de

preparación previa, análisis de documentos existentes y el desarrollo de

7.2 RECURSO TÉCNICO.

Para el desarrollo del portal se utilizó una computadora la cuales cuenta con las

siguientes características:

Memoria Ram: 3BG

Disco Duro: 320 GB

SO: Windows 7

Procesador: Dual Core 2.6 GHrz

El equipo de cómputo cuenta con repositorios donde se le da el seguimiento al

proyecto, contando con los programas donde se desarrollará el sistema, enfocado a

mejorar la eficiencia con la que se esté trabajando, así mismo se utilizó los

materiales que se requieran para su realización.

Se trabajó con el CMS liferay-portal-6.0.6 con Tomcat-6.0.29 y se manejó para la

creación de aplicaciones el lenguaje velocity y con ayuda de Eclipse para los temas.

Page 12: Reporte Final Dulce

7.3 RECURSOS MATERIALES.

Debido a que el proyecto es un sistema, la única herramienta que se utiliza es equipo

de cómputo, por lo tanto no se utilizó ningún material.

7.4 RECURSO ECONÓMICO.

Aquí se ocuparon:

Impresiones CD

100.00 30.00

Page 13: Reporte Final Dulce

8.- FUNDAMENTO TEÓRICO.

CAPITULO 1. LIFERAY

Liferay es un portal de gestión de contenidos de código abierto escrito en java.

Un portal web puede consistir en una amplia variedad de aplicaciones tales como

blogs, aplicaciones de gestión de documentos, wikis, foros de discusión y calendarios

compartidos. Liferay permite ofrecer este tipo de características en su portal,

proporcionando un entorno de ejecución para alojar aplicaciones basadas en Java

™, también conocido como portlets. Dispone de un contenedor en el que montamos

los portlets, configurarlos, y puesto su apariencia. Además de los portlets que ofrece

Liferay, se tiene acceso a terceros portlets creados por las comunidades de usuarios.

No solo un proveedor puede proporcionar todas las herramientas necesarias para

integrar las funciones en portales web. De este modo tendrá que incorporar

herramientas de diferentes proveedores. Estas herramientas pueden usar diversas

tecnologías, lo que podría plantear un desafío de integración ya que las aplicaciones

del portal necesidad de trabajar juntos.

Muchos vendedores ofrecen herramientas para la creación de portales y servidores

para alojar los portales. Algunas de las herramientas populares y servidores Oracle

WebLogic Portal, IBM WebSphere Portal Server, Sun Java System Portal Server

(también conocido como servidor GlassFish Web Space), y Microsoft Office

SharePoint Server. Entre las tecnologías de código abierto. Liferay esencialmente

proporciona un marco para la creación de cualquiera de los tipos de portales. Es

compatible con muchos servidores en el mercado, ya que cumple estrictamente con

las estándares.

Page 14: Reporte Final Dulce

1.1 Características de Liferay

Las siguientes características muestran algunas ventajas de utilizar Liferay

Facilidad de uso:

Permite agregar aplicaciones al portal en desarrollo con sólo seleccionar las

herramientas y agregarlas, borrar aplicaciones con solo cerrarlas, cambiar el diseño

aplicando una plantilla o un tema. La configuración entera del portal puede adaptarse

a lo deseado por el usuario.

Soporte para variedad de aplicaciones:

Ofrece variedad de aplicaciones como wikis, blogs, chat, etc. Permite incorporar

aplicaciones que están disponibles en la web.

Licencia y código abiertos:

No se requiere licencia para utilizar el producto, incluso si se usa para fines

comerciales. Se tiene acceso al código fuente. Se puede modificar el código, mejorar

la entera plataforma o bien añadir características mediante plugins.

Extensibilidad:

Permite añadir funciones sin hacer cambios al código fuente, esto facilita la migración

a nuevas versiones de Liferay.

Escalabilidad:

Facilita el crecimiento y el acoplamiento de nuevos módulos y recursos.

Apoyo a la internacionalización:

Si los usuarios no hablan inglés, se puede extender el portal que se esté

desarrollando a otros idiomas con solo utilizar los recursos adecuados.

Integración con otras herramientas:

Page 15: Reporte Final Dulce

Pude integrar fácilmente muchas herramientas desarrolladas por terceros.

Soporta diferentes bases de datos conocidas en el mercado como Oracle, DB2,

MySQL, Informix, SQL Server, etc.

Compatibilidad con Estándares:

Se puede integrar fácilmente con ICEfaces, Hibernate, JGroups, PHP, Ruby,

freeMarker, entre otros. Gracias a que está desarrollado en Java un lenguaje de

programación muy conocido-, se puede modificar, mejorar o darle mantenimiento

fácilmente.

Uso de estándares

Liferay utiliza tecnologías estándar reconocidas y difundidas entre los desarrolladores

de todo el mundo. A continuación se mencionan algunos aspectos que muestran el

uso de estas tecnologías

Desarrollado con Java:

El lenguaje Java permite que se pueda ejecutar en distintos sistemas operativos y

diferente hardware. Por otro lado, la comunidad de programadores en Java rebasa

los 3 millones, por lo que seguramente se hallará a una persona capacitada para

configurar y personalizar Liferay.

Basado en componentes probados:

Utiliza componentes y herramientas de reconocida eficacia como Apache

Service Mix, Hibernate, ICEfaces, J2EE/JEE, jBPM, Ruby, etc. El uso de estas

herramientas permite reducir la probabilidad de errores en el desarrollo.

Comunicación con otro software:

Utiliza estándares establecidos para el intercambio de datos entre componentes de

software y aplicaciones, como son: AJAX, iCalendar, Microformat, JSR-168, JSR-

286, OpenSearch, RMI, REST, etc.

Page 16: Reporte Final Dulce

Compatibilidad de publicación y colaboración de herramientas WCAG 2.0

(Web Content Accesibility Guidelines).

Liferay integra la herramienta CKEditor, que soporta estándares como W3C para el

desarrollo de contenido web accesible a personas con necesidades especiales como

ceguera, baja visión, pérdida de audición, etc.

Interfaz de Usuario.

Soporta HTML 5, CSS 3, YUI 3 (Yahoo User Interface Library).

Soporta Apache Ant 1.8 y Maven 2.

Estas herramientas se utilizan para construir servicios entre distintos equipos de

hardware, construir un lenguaje nativo en ASCII, compilar y construir componentes

con JavaScript CMD, entre otros.

Servidores Web.

Ofrece compatibilidad con Tomcat, Gerónimo, Glass- fish, JBoss, Jetty,

JOnAS+Tomcat, Resin.

Page 17: Reporte Final Dulce

1.2 Personalización de Liferay

Liferay cuenta con herramientas para construir y personalizar las aplicaciones

desarrolladas sobre esta plataforma. Una de ellas es Service-Builder, utilizada para

automatizar la creación de interfaces y clases que se emplearán en un portal.

Service-Builder construye servicios Java que se pueden acceder en forma local o en

forma remota mediante servicios web. Service-Builder genera el código de scripts

SQL para la creación de tablas, Java Beans, configuraciones Hibernate y Spring,

Axis Web Services, e interfaces JSON.

Otra herramienta importante es Plugins SDK Environment, empleada en el desarrollo

de plugins. Liferay soporta seis tipos de plugins, descritos a continuación; en

secciones posteriores se explican más detalles de su funcionamiento dentro de la

plataforma.

1. Portlets: son aplicaciones web que se ejecutan en una sección de una página web.

2. Themes: son un conjunto de características que determinan la apariencia de las

páginas.

3. Layout Templates: definen cómo se organiza el contenido en cada página.

4. Hooks: permiten enlazar una acción específica a la funcionalidad principal del

portal.

5. Webs: son aplicaciones web normales, son módulos Java diseñados para trabajar

con el portal, tales como el ESB (Enterprise Service Bus).

6. Ext: son herramientas que permiten personalizar la funcionalidad del portal.

Page 18: Reporte Final Dulce

1.2.1 Ext

El entorno de Extensión permite personalizar completamente el portal de Liferay. Se

denomina así porque permite ampliar o modificar las características definidas

originalmente en el portal. Utiliza archivos con prefijo ext- para especificar las

características que se desea extender o cambiar; estos archivos deberán ser

colocados en una carpeta específica, como ${ext.plugin.project}/docroot/WEB-INF

(puede variar según la versión).

Los archivos ext no modifican el código fuente del portal Liferay, si no que anularán

la configuración por default de Liferay para aplicar las características que se hayan

especificado en los archivos ext. Si estos archivos ext se borraran, la configuración

inicial de Liferay quedará intacta.

También se pueden hacer cambios o personalizaciones con las herramientas

visuales dentro de Liferay. Estos cambios se combinan con las especificaciones de

los archivos ext al momento de desplegar el portal en el servidor de aplicaciones.

Funcionamiento de plugin Ext

Page 19: Reporte Final Dulce

1.2.2 Hooks

Los Hooks se utilizan para redefinir las propiedades y la funcionalidad de los archivos

JSP en una instancia del portal, sin modificar el código fuente del portal. Se utilizan

para añadir determinada funcionalidad cuando se producen ciertos eventos como el

inicio de una aplicación, inicio de sesión, o la ejecución de un servicio.

Los Hooks se definen en archivos xml. Por ejemplo en la carpeta /liferayportal-

6.0.5/webapps/ejemplos-hook/WEB-INF, se encuentra el archivo liferayhook.xml.

En los Hooks donde pueden definirse parámetros de cuatro tipos:

portal-properties: propiedades del portal

language-properties: propiedades del lenguaje

custom-jsp-dir: personalización de archivos JSP

service: servicios

Page 20: Reporte Final Dulce

1.2.3 Portlets y Webs

Los Portlets y Webs se pueden integrar al portal de Liferal en cualquier momento, sin

necesidad de detener los servicios que ya se están ejecutando, por ejemplo el

correo, consulta a una base de datos, etc.

Los Portlets y Webs se generan en un herramienta para edición de plugins como el

SDK que proporciona Liferay. Para colocarlos en funcionamiento se debe generar un

archivo WAR con ayuda de herramientas como Maven o Ant. El archivo WAR se

coloca en el directorio Auto Deploy para que el servidor de aplicaciones lo detecte

automáticamente y ejecute la funcionalidad especificada.

Los Portles deben de cumplir con el estándar JSR-168 para asegurar la

interoperabilidad de los portlets entre portales web diferentes y dentro del portal de

Liferay

Page 21: Reporte Final Dulce

1.2.4 Themes y Layout Templates

Un Theme define el estilo de presentación de las páginas, controla la forma en cómo

se verá el portal. Utiliza cuatro elementos: CSS, imágenes, JavaScript, y plantillas

Velocity; para cada uno de estos elementos deberá crear una carpeta: css, images,

javascript, y templates, correspondientemente.

Un Theme anulará temporalmente las características de apariencia definidas al

instalar Liferay, sin alterar el código fuente; al momento de desplegar el portal, el

servidor de aplicaciones mostrará la apariencia definida por el Theme.

Los Layout Templates determinan la organización de los elementos en la página

web. Se forma de espacios, generalmente descritos como columnas y filas donde se

colocarán los componentes de la aplicación; para generar estos espacios se utiliza

HTML. En pocas palabras, un Layout Template controla la estructura visual de las

páginas del portal.

Un plugin de un Template debe incluir al menos un archivo .tpl para ser interpretado

por los navegadores web y un archivo .wap para dispositivos WAP (Wireless

Application Protocol). Ambos archivos deben especificar el orden, estructura y

colocación de los portles

Los Templates deben incluirse en el archivo WAR, para que las características sean

extraídas automáticamente por el servidor de aplicaciones y visualizadas al

desplegarse el sitio web en el navegador.

Los Themes y Layout Templates forman parte de la interfaz de usuario y pueden

convivir gracias a la estandarización de elementos que los conforman.

Page 22: Reporte Final Dulce

Interacción de elementos de UI

En primer término tenemos librerías escritas en JavaScript: jQuery y YUI.

Ambas facilitan la interacción con documentos HTML, el manejo de eventos y el

desarrollo de animaciones; en especial la librería YUI (Yahoo User Interface

Library) facilita la creación de aplicaciones interactivas.

Otro elemento importante es CSS (Cascading Style Sheets), también conocido como

hojas de estilo. Son una serie de reglas para definir la apariencia de las páginas;

permiten especificar los tipos de letras para títulos, texto, colores de fondo,

márgenes, etc.

Por último, la figura muestra a HTML (Hyper Text Markup Language), lenguaje que

proporciona las instrucciones básicas para estructurar una página web. A modo de

comparación, puede decirse que HTML conforma la estructura ósea que sostendrá la

página, CSS el color y volumen, y JavaScript la funcionalidad.

Page 23: Reporte Final Dulce

1.3 Aplicaciones

Las aplicaciones son elementos con funcionalidades predefinidas, que se instalan

junto con la plataforma, o bien pueden descargarse del sitio oficial de Liferay.

A continuación se muestran las categorías que engloban las aplicaciones de Liferay

6.0. Es posible encontrar otras aplicaciones desarrolladas por usuarios o en

versiones distintas a la 6.0, que no se incluyen en esta clasificación.

Colaboración (Collaboration): en esta categoría se encuentran las aplicaciones para

administrar blogs, calendarios, correo y wikis.

Comunidad (Community): permite encontrar comunidades existentes, usuarios y

grupos de usuarios, crear comunidades e invitar a usuarios a participar en ellas. Se

encuentra también la aplicación de Marcadores que son los accesos rápidos a los

sitios web. Administración de Contenidos (Content Management): contiene los

servicios de gestión de contenidos; permite crear artículos, bibliotecas, galería de

imágenes, mapas del sitio, etc.

Entretenimiento (Entertainment): aplicaciones de dibujos animados, juegos de

palabras, etc.

Finanzas (Finance): herramientas relacionadas con finanzas como cálculo de

préstamos, conversor de divisas, etc.

Noticias (News): aplicaciones para emitir alertas, avisos, incluir noticias, o bien

leerlas desde alguna página especial de comunicados.

Ejemplos (Sample): contiene aplicaciones que proporcionan una puerta de enlace a

otros sitios.

Page 24: Reporte Final Dulce

Compras (Shopping): contiene la aplicación de carro de compras y enlace a las

ventas de Amazon.

Herramientas (Tools): se encuentran herramientas como diccionarios, configuración

de lenguaje, utilerías de red, generador de contraseñas, búsquedas, etc.

Wiki: permite crear una página con definiciones, conceptos y enlaces

a otros sitios, define el flujo de trabajo, los accesos y administra las aportaciones de

información de los usuarios.

Page 25: Reporte Final Dulce

1.4. Aprendizaje de la plataforma.

Conocer la arquitectura de Liferay permite visualizar el potencial de la plataforma.

Aunque no se dominen todos los estándares en los que está basada la funcionalidad

de Liferay (CSS3, XML, JSR 168, etc.), es muy importante conocer lo que aporta

cada elemento que integra la arquitectura y su interacción con otros elementos. Esta

carencia de conocimiento específico ofrece la oportunidad a los desarrolladores de

software de incursionar en nuevas áreas y abrir su perspectiva a otras opciones para

el desarrollo de software.

La escasa documentación de la plataforma dificulta su aprendizaje. Existe bibliografía

de versiones anteriores, pero los cambios sustanciales entre versiones llevan al

desarrollador a invertir mayor tiempo en buscar la opción similar que se explica en

dichas referencias.

Otro aspecto que incluye cuando se empieza a explorar una nueva herramienta es

recorrer el camino del conocimiento desde su origen, es decir, conocer Liferay desde

su instalación y funcionamiento de las opciones básicas, permite comprender su

estructura y el comportamiento de otros elementos más complejos. Sin embargo,

cómo se mencionó en el párrafo anterior, por la falta de documentación acorde a la

versión actual, este recorrido de aprendizaje puede ser lento y con pocos resultados

al inicio. Las aplicaciones desarrolladas que proporciona Liferay, mejor conocidas

como portles (wiki, foro, blog, news, etc.) brindan la facilidad de construir sitios web a

través de ensamblar, módulos previamente probados por el creador de la plataforma

y por la comunidad de desarrolladores. Aunque en el presente estudio técnico solo

se probaron algunos portles, el desarrollo del Portal de Exalumnos permitirá poner en

funcionamiento una mayor cantidad de componentes.

Page 26: Reporte Final Dulce

CAPITULO 2. VELOCITY

Velocity es un motor de plantillas basado en Java. Permite a los diseñadores de

páginas hacer referencia a métodos definidos dentro del código Java. Velocity separa

el código Java de las páginas Web, haciendo el sitio más mantenible a largo plazo y

presentando una alternativa viable a Java Server Pages (JSP) o PHP.

Velocity se puede utilizar para crear páginas web, SQL, PostScript y cualquier otro

tipo de salida de plantillas. Se puede utilizar como una aplicación independiente para

generar código fuente y reportes, o como un componente integrado en otros

sistemas. Cuando este completo Velocity proveerá servicios para el conjunto de

aplicaciones web de Turbine. Velocity+Turbine proveerá un servicio de plantillas que

facilitará el desarrollo de aplicaciones web de acuerdo a un verdadero modelo MVC.

2.1 El Lenguaje de Plantillas de Velocity (VTL)

Fue creado para proveer la manera más fácil, simple y limpia de incorporar contenido

dinámico dentro de una página web. Incluso un desarrollador de páginas web con

poca y ninguna experiencia puede rápidamente ser capaz de utilizar VTL para incluir

contenido dinámico en un sitio web.

VTL usa referencias para incluir contenido dinámico dentro de un sitio web. Una

variable es un tipo de referencia que puede referirse a algo definido dentro del código

Java o obtener su valor de un enunciado VTL en la página misma. Una vez un valor

ha sido asignado a una variable, se puede referenciar la variable en cualquier lugar

dentro del documento HTML.

2.2 Referencias

Existen tres tipos de referencias en VTL: variables, propiedades y métodos. Como un

diseñador que utilizar VTL, usted y sus ingenieros deben llegar a un acuerdo

respecto a los nombres de las referencias para que usted pueda utilizarlas

correctamente en sus plantillas.

Page 27: Reporte Final Dulce

Todo lo que entra y sale de una referencia se trata como una cadena de caracteres

(un objeto String). Si existe un objeto que representa $foo (por ejemplo, un objeto

Integer), entonces Velocity llamará el método .toString() de ese objeto para

convertirlo en una cadena de caracteres.

2.2.1 Variables

La notación breve de una variable esta compuesta por un signo "$" inicial seguido de

un Identificador. Un identificador VTL debe comenzar con un caracter alfabético.

Cuando VTL hace referencia una variable, po ejemplo, $foo, la variable puede

obtener su valor de una directiva set dentro de la plantilla, o del código Java.

2.2.2 Propiedades

Las propiedades tienen un formato particular. La versión corta se compone de un

signo $ seguido de un identificador VTL, seguido de un punto y de otro identificador

VTL.

2.2.3 Métodos

Un método está definido dentro del código de Java y es capaz de hacer algo útil,

como desarrollar un cálculo o llegar a una decisión. Los métodos son referencias

compuestas de un signo "$" inicial seguido en un identificador VTL, seguido de un

Cuerpo de Método VTL. Un cuerpo de método VTL, a su vez está formado por un

identificador VTL seguido por un paréntesis izquierdo, seguido, opcionalmente, por

una lista de parámetros, para terminar en un paréntesis derecho.

Las Propiedades VTL pueden utilizarse como notación abreviada para los métodos

de VTL. La propiedad $cliente.Direccion tiene exactamente el mismo efecto que el

método $cliente.getDireccion(). Generalmente es preferible utilizar una Propiedad si

esta disponible. La diferencia principal entre las propiedades y los métodos es que

usted le puede dar una lista de parámetros a un Método.

Page 28: Reporte Final Dulce

2.2.4 Notación Formal de Referencias

La notación abreviada para referencias fue utilizada en los ejemplos anteriores, pero

también existe una notación formal para referencias.

Casi en todos los casos usted utilizará la notación abreviada, pero existen escenarios

en los cuales la notación formal se requiere para procesar correctamente la plantilla.

2.3 Directivas

Las Referencias le permiten a los diseñadores de plantillas generar contenido

dinámico para sitios web, mientras que las directivas -- elementos de script fáciles de

usar que se pueden usar para manipular de manera creativa la salida del código

Java -- les permiten a los diseñadores realmente estar a cargo de la apariencia y en

contenido del sitio web.

#set

La directiva #set se utiliza para establecer el valor de una referencia. El valor se

puede asignar a una referencia de variable o una referencia de propiedad, siempre

entre paréntesis.

Page 29: Reporte Final Dulce

CAPITULO 3. HTML

HTML (HyperText Markup Language) es un lenguaje muy sencillo que permite

describir hipertexto, es decir, texto presentado de forma estructurada y agradable,

con enlaces (hyperlinks) que conducen a otros documentos o fuentes de información

relacionadas, y con inserciones multimedia (gráficos, sonido...) La descripción se

basa en especificar en el texto la estructura lógica del contenido (títulos, párrafos de

texto normal, enumeraciones, definiciones, citas, etc) así como los diferentes efectos

que se quieren dar (especificar los lugares del documento donde se debe poner

cursiva, negrita, o un gráfico determinado) y dejar que luego la presentación final de

dicho hipertexto se realice por un programa especializado (como Mosaic, o

Netscape).

3.1 Atributos Del Texto

Mediante estos atributos determinamos el estilo y el tipo de letra que tendrá la

presentación del documento final.

El primero en el que nos deberíamos detener es el texto normal entendiendo como

tal el que no tiene ninguna característica especial. Para definir un párrafo como

normal no es necesario poner ninguna etiqueta. Lo único que hay que tener en

cuenta, como ya se ha dicho antes, es que al presentar el documento se hace caso

omiso de los espacios, tabulaciones y retornos de carro que se encuentren en el

texto fuente. Por ello cuando se quiera forzar un final de línea es necesario utilizar

dos directivas especiales: <p> para marcar un fin de párrafo, y <br> para un único

retorno de carro. La diferencia entre ambas es que la separación de líneas que

provoca <p> es algo mayor que la de <br>, para que los párrafos se distingan bien

entre sí. Las dos directivas mencionadas se sitúan en el punto en

Page 30: Reporte Final Dulce

CAPITULO 4. CSS (Cascade Style Sheets)

Las CSS (hojas de estilo en cascada) suponen un gran avance en la autoría de sitios

Web. Mejoran las posibilidades de diseño y presentación de documentos en la red,

facilitando además su mantenimiento, ya se trate de un unico archivo HTML, o de

grandes sitios, con multitud de páginas.

La filosofía de las CSS responde a la idea de separar al máximo forma y fondo. Las

páginas, idealmente, tendrán únicamente etiquetas html con información acerca de la

estructura y contenido del documento (párrafos, cabeceras, listas etc) sin ninguna

información sobre la apariencia del documento. Esta apariencia, la forma en que ese

documento debe ser visualizado, se dicta por una serie de reglas, que se definen

separadamente (en una sección separada de la página o incluso en un archivo

separado), de forma que podemos cambiar la forma en que el documento es

visualizado sin tocar ni una sola línea de contenido ni cambiar las etiquetas html,

simplemente introduciendo unos pocos cambios en la definición de estilo.

Un solo archivo de estilo puede controlar la presentación de un número ilimitado de

páginas, facilitando mantener un aspecto homogéneo en todas ellas, ampliando las

posibilidades de edición que ofrece HTML (sangrados, márgenes, tabuladores,

fuentes), y en general, posibilitando mayor control al autor sobre la apariencia y el

posicionamiento de cada elemento de la página. Como beneficio adicional, un

correcto uso de las CSS hará que una misma página tenga menor tamaño,

reduciendo tiempos de descarga.

Las reglas de estilo se escriben y leen en un lenguaje inteligible, similar al lenguaje

cotidiano (naturalmente, en inglés), utilizando términos habituales en el área de

diseño gráfico, lo que permite un rápido aprendizaje.

.

Page 31: Reporte Final Dulce

4.1 Primeros Conceptos

Una 'hoja de estilo' es una plantilla, o guia, o conjunto de instrucciones, que dicta al

navegador como debe mostrar el contenido de una o varias páginas Web. Cualquier

cambio en la plantilla de estilo se refleja en un cambio inmediato en la apariencia de

las páginas relacionadas, sin necesidad de modificar fisicamente estas.

El creador de la página define estilos (tamaño de letra, color, tipo de fuente,

margenes etc) que se visualizarán con preferencia a los definidos por defecto en el

propio navegador. Si despues desea cambiar la apariencia (nuevos margenes etc)

bastará que cambie la definicion de estilo. El documento en si no se modifica.

4.2 Sintaxis

Una hoja de estilo se compone de reglas de visualización (reglas de estilo).

Cada regla consta de un SELECTOR, que es el que indica a que elemento o parte de

la página se aplica el estilo; normalmente los selectores son etiquetas HTML (p.e. h1

sería un selector que permitiría aplicar estilos a las cabeceras <h1>). A cada selector

debe seguir una DECLARACION del estilo que ha de serle aplicado (p.e. color:blue).

Toda declaración tiene dos partes: PROPIEDAD (por ejemplo, color) y VALOR (por

ejemplo, blue).

El enunciado de reglas constituye la forma usual de declarar estilos, y deben

ajustarse a la sintaxis definida por la especificación CSS; si el navegador encuentra

un selector que no entiende, ignorará la entera declaración. Si encuentra dentro de la

declaración una propiedad o valor que no comprende ignorará esta parte de la

declaración, pero deberá procesar el resto.

Page 32: Reporte Final Dulce

CAPITULO 5. POSTGRE SQL

PostgreSQL es un sistema de gestión de bases de datos objeto-relacional, distribuido

bajo licencia BSD y con su código fuente disponible libremente. Es el sistema de

gestión de bases de datos de código abierto más potente del mercado y en sus

últimas versiones no tiene nada que envidiarle a otras bases de datos comerciales.

PostgreSQL utiliza un modelo cliente/servidor y usa multiprocesos en vez de

multihilos para garantizar la estabilidad del sistema. Un fallo en uno de los procesos

no afectará el resto y el sistema continuará funcionando.

A continuación teneis un gráfico que ilustra de manera general los componentes más

importantes en un sistema PostgreSQL.

Aplicación cliente: Esta es la aplicación cliente que utiliza PostgreSQL como

administrador de bases de datos. La conexión puede ocurrir via TCP/IP ó

sockets locales.

Demonio postmaster: Este es el proceso principal de PostgreSQL. Es el

encargado de escuchar por un puerto/socket por conexiones entrantes de

clientes. Tambien es el encargado de crear los procesos hijos que se

encargaran de autentificar estas peticiones, gestionar las consultas y mandar

los resultados a las aplicaciones clientes

Ficheros de configuracion: Los 3 ficheros principales de configuración

utilizados por PostgreSQL, postgresql.conf, pg_hba.conf y pg_ident.conf

Procesos hijos postgres: Procesos hijos que se encargan de autentificar a

los clientes, de gestionar las consultas y mandar los resultados a las

aplicaciones clientes

PostgreSQL share buffer cache: Memoria compartida usada por

POstgreSQL para almacenar datos en caché.

Write-Ahead Log (WAL): Componente del sistema encargado de asegurar la

integridad de los datos (recuperación de tipo REDO)

Kernel disk buffer cache: Caché de disco del sistema operativo

Page 33: Reporte Final Dulce

Disco: Disco físico donde se almacenan los datos y toda la información

necesaria para que PostgreSQL funcione

5.1 Características

La última serie de producción es la 9.1. Sus características técnicas la hacen una de

las bases de datos más potentes y robustas del mercado. Su desarrollo comenzo

hace más de 16 años, y durante este tiempo, estabilidad, potencia, robustez,

facilidad de administración e implementación de estándares han sido las

características que más se han tenido en cuenta durante su desarrollo. PostgreSQL

funciona muy bien con grandes cantidades de datos y una alta concurrencia de

usuarios accediendo a la vez a el sistema.

A continuación teneis algunas de las características más importantes y soportadas

por PostgreSQL:

Generales

Es una base de datos 100% ACID

Integridad referencial

Tablespaces

Nested transactions (savepoints)

Replicación asincrónica/sincrónica / Streaming replication - Hot Standby

Two-phase commit

PITR - point in time recovery

Copias de seguridad en caliente (Online/hot backups)

Unicode

Juegos de caracteres internacionales

Regionalización por columna

Multi-Version Concurrency Control (MVCC)

Multiples métodos de autentificación

Acceso encriptado via SSL

Actualización in-situ integrada (pg_upgrade)

Page 34: Reporte Final Dulce

SE-postgres

Completa documentación

Licencia BSD

Disponible para Linux y UNIX en todas sus variantes (AIX, BSD, HP-UX, SGI

IRIX, Mac OS X, Solaris, Tru64) y Windows 32/64bit.

Programación / Desarrollo

Funciones/procedimientos almacenados (stored procedures) en numerosos

lenguajes de programacion, entre otros PL/pgSQL (similar al PL/SQL de

oracle), PL/Perl, PL/Python y PL/Tcl

Bloques anónimos de código de procedimientos (sentencias DO)

Numerosos tipos de datos y posibilidad de definir nuevos tipos. Además de los

tipos estándares en cualquier base de datos, tenemos disponibles, entre otros,

tipos geométricos, de direcciones de red, de cadenas binarias, UUID, XML,

matrices, etc

Soporta el almacenamiento de objetos binarios grandes (gráficos, videos,

sonido, ...)

APIs para programar en C/C++, Java, .Net, Perl, Python, Ruby, Tcl, ODBC,

PHP, Lisp, Scheme, Qt y muchos otros.

SQL

SQL92,SQL99,SQL2003,SQL2008

Llaves primarias (primary keys) y foráneas (foreign keys)

Check, Unique y Not null constraints

Restricciones de unicidad postergables (deferrable constraints)

Columnas auto-incrementales

Indices compuestos, únicos, parciales y funcionales en cualquiera de los

metodos de almacenamiento disponibles, B-tree, R-tree, hash ó GiST

Sub-selects

Consultas recursivas

Funciones 'Windows'

Page 35: Reporte Final Dulce

Joins

Vistas (views)

Disparadores (triggers) comunes, por columna, condicionales.

Reglas (Rules)

Herencia de tablas (Inheritance)

Eventos LISTEN/NOTIFY

Page 36: Reporte Final Dulce

CAPITULO 6. GIT

Git es libre y de codigo abierto, es un sistema distribuido de control de versiones

diseñado para manejar todo, desde pequeños proyectos muy grandes con velocidad

y eficiencia.

Cada Git clon es un repositorio en toda regla con historia completa y plena capacidad

de seguimiento de revisiones, no depende del acceso a la red o un servidor central.

Git se utiliza para el control de versiones de archivos, al igual que herramientas tales

como Mercurial, Bazaar, Subversion, CVS, Perforce, y Team Foundation Server.

6.1 Caracteristicas

El diseño de Git es una síntesis de la experiencia con Linux Torvalds en el

mantenimiento de un gran proyecto de desarrollo distribuido, junto con su profundo

conocimiento del funcionamiento del sistema de archivos obtenidos de un mismo

proyecto y la urgente necesidad de producir un sistema de trabajo en el corto plazo.

Estas influencias llevaron a las opciones de implementación:

Firme apoyo al desarrollo no-lineal

Git soporta una rápida ramificación y mezcla, e incluye herramientas específicas para

la visualización y navegación de una historia de desarrollo no lineal. Un supuesto

básico en Git es que un cambio se fusionará con más frecuencia de lo que está

escrito, ya que se pasa alrededor de varios revisores. Una rama de git es sólo una

referencia a una única confirmación.

Desarrollo distribuido

Al igual que Darcs, BitKeeper, Mercurial, SVK, Bazaar y Monotone, Git le da a cada

desarrollador una copia local de toda la historia del desarrollo y los cambios se

copian de un depósito de este tipo a otra. Estos cambios se importan como ramas de

Page 37: Reporte Final Dulce

desarrollo adicional, y se pueden combinar en la misma forma que una rama de

desarrollo local.

Compatibilidad con los sistemas existentes / protocolos

Repositorios se pueden publicar a través de HTTP, FTP, rsync, o un protocolo Git

más bien una toma de corriente normal o ssh. Git también tiene una emulación de

servidor CVS, lo que permite el uso de los clientes existentes de CVS y plugins IDE

para acceder a repositorios Git.

Manejo eficiente de proyectos de gran envergadura

Torvalds ha descrito Git como muy rápido y escalable, y las pruebas de rendimiento

realizadas por Mozilla demostró que era un orden de magnitud más rápido que

algunos sistemas de control de revisiones, y traer el historial de revisiones de un

repositorio almacenados localmente pueden ser cien veces más rápido que de

obtenerlo desde el servidor remoto. En particular, Git no más lenta que la historia del

proyecto se hace más grande.

Autenticación criptográfica de la historia

La historia de Git se almacena de tal forma que el nombre de una revisión en

particular (un "commit" en términos Git) depende de la historia de desarrollo completo

que conduce a que se comprometan. Una vez que se publica, no es posible cambiar

las versiones antiguas sin que se note.

Kit de herramientas de diseño

Git fue diseñado como un conjunto de programas escritos en C, y una serie de

scripts de shell que ofrecen envolturas en torno a esos programas. Aunque la

mayoría de los guiones han sido reescrito en C para la velocidad y la portabilidad, el

diseño sigue siendo, y Es fácil de la cadena de los componentes entre sí.

Conectable estrategias de fusión

Page 38: Reporte Final Dulce

Como parte de su kit de herramientas de diseño, Git tiene un modelo bien definido de

una fusión incompleta, y que tiene múltiples algoritmos para cumplir con ella, que

culminó en que indica al usuario que no es capaz de completar la fusión de forma

automática y edición manual es obligatorio.

Acumuladores que recolectan menos Basura

Anulando las operaciones o el respaldo a los cambios dejarán inútiles objetos

colgantes en la base de datos. Estos son por lo general una pequeña fracción de la

historia cada vez mayor de objetos quería. Git automáticamente realizará la

recolección de basura cuando un número suficiente los objetos sueltos se han

creado en el repositorio. La recolección de basura se pueden llamar de forma

explícita utilizando git gc.

Objeto explícito que empaqueta por periodos

Git almacena cada objeto recién creado como un archivo separado. Aunque en forma

individual comprimido, esto tiene una gran cantidad de espacio y es ineficiente. Esto

se resuelve con el uso de "paquetes" que almacena una gran cantidad de objetos en

un solo archivo (o secuencia de bytes de red). Los paquetes se comprimen utilizando

la heurística de que los archivos con el mismo nombre son probablemente similares,

pero no dependen de ella para su corrección. Los objetos de nueva creación siguen

almacenados por separado, y el reempaque por periodos es necesario para

mantener la eficiencia del espacio.

Page 39: Reporte Final Dulce

CAPITULO 7.- TORTOISE

TortoiseSVN es un programa SCM fácil de usar/ software de control de Microsoft

Windows y, posiblemente, el mejor Apache™ Subversion® independiente que hay.

Se implementa como una extensión del shell de Windows, con lo que se integra

perfectamente en el Explorador de Windows. Ya que no es una integración de un IDE

específico que se puede utilizar con herramientas de desarrollo de lo que quiera.

16.1 Características de Tortoise SVN

Fácil de usar

Todos los comandos están disponibles directamente desde el explorador de

Windows.

Comandos sólo que tengan sentido para la selección archivo/carpeta se

muestran. Usted no verá los comandos que no se puede usar en su situación.

Ver el estado de los archivos directamente en el explorador de Windows

Diálogos descriptivos, constantemente mejorado debido a comentarios de los

usuarios

Permite mover archivos por ellos derecho de celeridad en el explorador de

Windows

Todos los protocolos son compatibles con Subversion

http://

https://

svn: / /

svn + ssh: / /

file: / / /

svn + XXX: / /

Diálogo de confirmación poderosa

Corrector ortográfico integrado de mensajes de registro

Page 40: Reporte Final Dulce

Finalización automática de caminos y palabras clave de los archivos

modificados

Formato de texto con caracteres especiales

El panorama general

Puede crear un gráfico de todas las revisiones/commits. A continuación,

puede ver fácilmente que ha creado una tag/branch o modificar un

archivo/carpeta

Los gráficos de las estadísticas de confirmación del proyecto

Fácil la comparación de dos ramas o etiquetas

Por la configuración del proyecto

Longitud mínima de mensaje de registro para evitar que accidentalmente

confirmar con un mensaje de registro vacío

Idioma que desea utilizar para el corrector ortográfico

Integración con sistemas de seguimiento de problemas

TortoiseSVN proporciona un mecanismo flexible para integrar cualquier sistema

basado en web de seguimiento de errores.

Una caja de entrada independiente para entrar en el número de emisión

asignados a la confirmación, o el color de la edición número directamente en

el propio mensaje de registro

Cuando se muestran todos los mensajes de registro, una columna adicional

se agrega con el número de incidencia. Usted puede ver inmediatamente que

el tema pertenece a cometer.

Números de la edición se convierten en enlaces que abren el navegador web

directamente en el número correspondiente

Advertencia Facultativo si el compromiso no se asigna a un número de

emisión

Page 41: Reporte Final Dulce

Herramientas útiles

TortoiseMerge

o Muestra los cambios realizados en los archivos

o Ayuda a resolver los conflicto

o Se puede aplicar PatchFiles que obtuvo de los usuarios sin acceso de

confirmación de su repositorio

TortoiseBlame: para mostrar culpa de los archivos. También muestra los

mensajes de registro para cada línea en un archivo.

TortoiseIDiff: para ver los cambios realizados en los archivos de imagen

SubWCRev: para incluir los números de revisión/datos/... en los archivos de

origen

Page 42: Reporte Final Dulce

9. PROCEDIMIENTO.

9.1. FACTIBILIDAD

9.1.1 FACTIBILIDAD TÉCNICA.

LANIA cuenta con toda la infraestructura para llevar acabo el desarrollo de sistemas,

contando con maestros y doctores dedicados a la investigación, realizándolas en su

área de especialización, buenos asesores, además LANIA da como uno de sus

servicios, posgrados y sus servicios para el desarrollo de sistemas basándose en las

necesidades del cliente, por lo cual obliga al laboratorio a contar con las

herramientas suficientes para poder cubrir las necesidades en específico de los

clientes en cuestión.

9.1.1.1. DETERMINACIÓN DE REQUERIMIENTOS.

El Análisis de Requerimientos es la etapa inicial de ICONIX, en la que se estudia la

problemática que se pretende resolver construyendo un producto de software. El

objetivo de esta etapa es reunir los requerimientos con los distintos usuarios del

futuro sistema, para identificar las necesidades y los procesos de negocio, esta

información servirá de base para realizar el análisis y proponer el diseño.

La primera actividad que se desarrolló fueron las entrevistas para levantar los

requerimientos. Se entrevistaron a exalumnos, alumnos, profesores y a personal del

LANIA.

Dos aspectos resaltados por los entrevistados, es saber qué hacen y donde trabajan

los egresados. Generalmente al terminar los cursos presenciales de maestría se

pierde el contacto con los compañeros de generación, y el vínculo con LANIA es casi

exclusivo para cuestiones de titulación. Para cubrir esta necesidad actualmente no

existe un proceso de negocio como tal, la vinculación es informal y se da por

Page 43: Reporte Final Dulce

intereses particulares entre los egresados y la institución, como por ejemplo el

requerir información de trámites o asesorías técnicas de los profesores.

9.1.2 FACTIBILIDAD OPERATIVA.

En LANIA para poder desarrollar el sistema todos los recursos están a disponibilidad

de los desarrolladores, contando con la cooperación de los asesores para ayudar en

caso de que lo requiera, orientando para el mejor manejo de las herramientas,

haciendo que el sistema sea viable. Ahorrando tiempo y esfuerzo.

9.1.3 FACTIBILIDAD ECONÓMICA.

Los costos para el desarrollo del sistema han sido mínimos ya que tanto como el

hardware como software, fueron proporcionados por LANIA, , ya que es un proyecto

de residencias profesionales, por lo que se puede decir que para la implementación y

desarrollo del sistema, LANIA nos proporcionó las herramientas y materiales

necesarios cumpliendo así de manera exitosa dicho proyecto.

Page 44: Reporte Final Dulce

9.2 ANALISIS DEL DISEÑO Y CONOCIMIENTO DE HERRAMIENTAS

A UTILIZAR (1 AL 19 DE AGOSTO DEL 2011)

Se me proporcionó una tesis la cual contiene un estudio técnico de la Plataforma

Liferay para la creación de portales, análisis, diseño e implementación de algunos

servicios para el portal de ex alumnos, así como guías para el uso de Liferay.

Identificando en ellas temas para la implementación de procesos a cubrir como lo

son el uso de diversas aplicaciones y el manejo de usuarios, el manejo de páginas y

sus diversas opciones, haciendo un análisis y estudio de estos procesos para

trabajar en ellos posteriormente.

Se instaló la herramienta Git con cliente de control de revisiones Tortoise para el

control de versiones de los archivos de Liferay, dando con esto un control sobre el

trabajo hecho y evitando perdidas en modificaciones erróneas.

9.3 CONEXIÓN DE LIFERAY CON POSTGRE SQL (22 AL 30 DE

AGOSTO DEL 2011)

Se investigó y se implementó la conexión entre estas dos herramientas creando

usuario y una base de datos en PostgreSQL y conectándola a Liferay modificando

archivos de acceso a base de datos:

Agregar a portal-ext.properties (C:\liferay-portal-6.0.62\tomcat-

6.0.29\webapps\ROOT\WEB-INF\classes\ portal-ext.properties) si no existe se crea

en un txt y se cambia la extensión.

Page 45: Reporte Final Dulce

Descargar el driver JDBC (JDBC3 Postgresql Driver, Versión 9.0-801) desde

PostgreSQL (http://jdbc.postgresql.org/download.html) y copiarlo en las siguientes

direcciones

C:\…\liferay-portal-6.0.6\tomcat-6.0.29\lib\ext

C:\…\liferay-portal-6.0.6\tomcat-6.0.29\lib

URL directahttp://jdbc.postgresql.org/download/postgresql-9.0-801.jdbc3.jar

Nombre del archivo descargado postgresql-9.0-801.jdbc3.jar

9.4 EDICION DE PORTLETS: WEB FORM Y VISOR DE CONTENDIO

WEB (31 DE AGOSTO AL 9 DE SEPTIEMBRE DEL 2011)

Se trabajó con dos portlets principalmente: web form y visor de contenido web,

investigando para su uso scrips de validación de datos, opciones para mostrar datos,

creación de plantillas, el uso de plantillas en velocity, funciones de diseño

establecidas y en css.

Para agregar un Web Content Display solo se

debe hacer click en Add y luego en Web Content

Display Fig. (17.3.1). Y luego dar click en el

icono q se muestra en la Fig. (17.3.2), Para

empezar a configurarlo.

Este tiene las opciones de agregar HTML, editar como texto, y

agregar una plantilla editable en cualquiera de los siguientes

lenguajes CSS, FTL, VM y XLS.

Fig(17.3.1)

Fig.(17.3.2)

Page 46: Reporte Final Dulce

Antes de agregar una plantilla se tiene que crear

una estructura dando click en el boton Editar

debajo de la etiqueta estructura en este se indica el

tipo de contenido que se requiera ya sea Controles

de formulario, Campos de la aplicación o algún

enlace a página o un salto de sección. Este

también se puede agregar desde añadir plantilla,

seleccionar estructura.

Para agregar una plantilla se da click en el boton

SELECCIONAR—AÑADIR PLANTILLA y

aparecera una ventana con el contenido que se

muestra en la Fig. (17.3.3), en la cual se deberá

agragar la estructura de nuestro codigo dando

click en el boton SELECCIONAR debajo de la leyenda Estructura, en caso de no

existir se tendra que crear ya sea desde la 1era ventada donde aparece dando click

en el botón Añadir Estructura o en la misma ventana de añadir plantilla en el boton

SELECCIONAR en la etiqueta Estructura.

Esto se utilizó en la creacion de la aplicación de Registro de Usuarios, Muestra de

Usuarios que hicieron el Cuestionario de Seguimiento de Egresados, el Cuestionario

de Seguimiento de Egresados.

Fig. (17.3.3)

Page 47: Reporte Final Dulce

9.5 AGREGAR BASE DE DATOS (TABLAS), MOSTRAR Y AGREGAR

A BASE DE DATOS DESDE UN PORTLET, USO TORTIOSE GIT (12

AL 15 DE SEPTIEMBRE DEL 2011)

Para mostrar y agregar elementos a la base de datos existente en PostgreSQL se

creó una plantilla en lenguaje Velocity. La cual agrega usuarios, los elimina, modifica,

y los muestra en lista, mandando a llamar a las tablas expando que Liferay creo

automáticamente en PostgreSQL.

Por motivos de pruebas se utilizó un sistema de control de versiones para evitar

pérdidas de información y retrasar el trabajo. En éste se respaldó haciendo un

repositorio en la misma máquina de todo Liferay y guardando versiones de

funcionalidades conforme fueron completándose.

Page 48: Reporte Final Dulce

9.6 DISEÑO DE PÁGINAS (19 DE SEPTIEMBRE AL 5 DE OCTUBRE

DEL 2011)

Se buscó páginas de muestra y hojas de estilo Web para el sitio, seleccionando

estilos adecuados para un espacio de convivencia, siendo este serio pero al mismo

tiempo llamativo para egresados.

Se adecuo visualmente la página de muestra a los colores institucionales del LANIA,

imágenes del plantel y fonts atrayentes. En cuanto a programación-web se utilizaron

las hojas de estilo de la página de muestra añadiéndolas a los archivos de

configuración de las mismas en Liferay, agregando, modificando y eliminando

elementos con forme fuera necesario, de los archivos de plantillas en lenguaje

Velocity.

El diseño de los contenidos se realizó mediante temas y layouts, los cuales se

crearon en Eclipse instalándole un plugin SDK de Liferay, y trabajando con los

códigos .css y .vm de los temas para edición del diseño de la página.

CREACION DE UN THEME Y LAYOUT LIFERAY

Para crear un tema se necesita tener instalado LIFERAY 6.0.6 con Tomcat 6 e

instalado y configurado Eclipse y haber descargado e instalado Liferay IDE.

Instalar Eclipse Indigo:

Fig.

(17.5.1)

Page 49: Reporte Final Dulce

Se descarga de la pagina oficial http://www.eclipse.org Fig. (17.5.1). Y Tendremos

que descomprimirlo y aparecerá una carpeta llamada eclipse. En ella solo damos

doble click sobre el icono de Eclipse Fig. (17.5.2). Nos pedirá el workspace donde

queremos trabajar. Y aparecerá la ventana de bienvenida.

Despues de esto instalaremos Liferay IDE

Instalación del plugin

Para instalarlo vamos a Help → Eclipse Marketplace y buscar por la palabra clave

"Liferay". Fig. (17.5.3)

Fig. (17.5.2)

Fig. (17.5.3)

Page 50: Reporte Final Dulce

Pulsamos en “Install” con lo que iniciamos el proceso de instalación del plugin el cual

puede llevar unos minutos dependiendo del ancho de banda de nuestra red. Si nos

sale algún “Warning” pulsamos en “OK” para continuar con la instalación. Al finalizar

el proceso, pulsamos en “Restart now” para aplicar los cambios.

Configuración del SDK

Para configurar este

plugin vamos a Window →

Preferences y filtramos

por la palabra “Liferay”.

Fig (17.5.4)

En esta pantalla podremos añadir el SDK de Liferay que ya tengamos instalado o

descargarlo si no lo tenemos. Como es nuestro caso, vamos a pulsar en

“Download...”, esto nos llevará algo de tiempo...

Una vez descargado e instalado el SDK, pulsamos en “OK”. Si ya tenemos un SDK

instalado en la máquina podemos añadirlo a la configuración pulsando en “Add”. Fig

(17.5.5)

Fig (17.5.4)

Fig

(17.5.5)

Page 51: Reporte Final Dulce

Pulsando en "Browser", seleccionamos el directorio %LIFERAY_SDK_HOME% y

pulsando en “OK” ya tenemos registrada nuestra instancia de Liferay SDK para poder

ser utilizada desde Eclipse.

3.3 Configuración del servidor de aplicaciones

Ahora lo siguiente es configurar el servidor de aplicaciones para poder ejecutar y

depurar nuestros desarrollos en Liferay. Para ello, vamos a Window → Preferences y

en la pantalla vamos a Server → Runtime Environment, pulsamos en “Add” y

seleccionamos “Liferay, Inc.” → Liferay v6.0 (Tomcat 6.0) Fig (17.5.6)

Pulsando en “Next” se nos muestra una pantalla donde podemos establecer el

nombre de la instancia y nos da la posibilidad de especificar la ruta de una instancia

de Liferay + Tomcat ya instalada en el equipo o descargarnos la última versión.

Vamos a probar a descargar la última versión por lo que pulsamos en “Download and

Install...”. Aceptamos todos los mensajes que salgan y asignamos un directorio

donde almacenar la descarga. Esto llevará unos cuantos minutos...

Si al finalizar la descargar nos da algún tipo de error, nos tenemos que asegurar que

la ruta de “Liferay Tomcat directory” está apuntando a la carpeta que nos acabamos

de descargar.

Fig.

(17.5.6)

Page 52: Reporte Final Dulce

Si ya contamos con una instancia de Liferay podemos seleccionar el directorio

%LIFERAY_HOME% gracias al botón "Browser...".

En cuanto la instalación sea correcta podremos seleccionar el JRE runtime que

tengamos configurado siempre superior a la versión 1.6, y pulsamos en “Finish”.

Registrando el servidor

Para registrar el servidor tenemos que abrir la ventana “Servers” (Window → Show -

View → Other → Server → Servers). Clicamos con el botón derecho dentro de esa

ventana y seleccionamos New → Server con lo que se muestra una pantalla donde

podemos seleccionar el tipo de servidor a añadir, en nuestro caso el de Liferay, dar el

nombre del host (localhost), darle un nombre a esta instancia de servidor (Liferay +

Tomcat 6.0) y por último seleccionamos la instancia del servidor que hemos creado.

Fig (17.5.8)

Y pulsamos en “Finish”. Ahora para probar la instalación del servidor bastará con

pinchar con el botón derecho sobre la instancia que tiene que aparecer en la ventana

“Servers” y seleccionar “Run” o “Debug”. Si todo es correcto, veremos como en

consola aparecen las trazas del servidor y pasados unos instantes veremos la traza

“Server startup in x ms” que indica que el servidor se ha levantado correctamente.

Fig.

(17.5.8)

Page 53: Reporte Final Dulce

Ahora para acceder a Liferay, abrimos un navegador y accedemos a la URL:

http://localhost:8080

Creando un proyecto de plugin SDK

Abrimos el Eclipse y vamos a File → New →

Project → Liferay → Liferay Plug-in Project y

pulsamos en “Next”. En esta pantalla tenemos

que poner un nombre al proyecto y un nombre

que se va a utlizar para mostrarse. En la

sección “Configuration” tenemos que

seleccionar el SDK que vamos a utilizar y la

instancia de Liferay donde lo vamos a ejecutar.

También podemos seleccionar de que tipo va a

ser el plugin a crear, pudiendo elegir entre los tipos: portlet, hook, ext, layout y theme.

Fig (17.5.9)

Para finalizar el proceso de creación del plugin pulsamos “Finish”. Esto hace que el

proyecto se registre en Eclipse como un proyecto de Liferay SDK, manteniendo las

fuentes dentro de la carpeta del plugin seleccionado en %LIFERAY_SDK_HOME%.

Fig (17.5.9)

Page 54: Reporte Final Dulce

Desplegando el proyecto

Para desplegar el proyecto en Liferay tenemos que

arrastrar la raíz del proyecto al servidor configurado

dentro de la vista “Servers”, o con el botón derecho

sobre dicho servidor, pinchamos sobre la opción “Add

and remove...” y seleccionamos el proyecto de Liferay

que queremos desplegar. Esto hace que cualquier

cambio en el proyecto provoque el despliegue en

caliente del plugin. Fig (17.5.10)

El contenido del tema se basó en un tema ya existente e

instalado en Liferay (sevencogs-theme) el cual se utilizó

como ejemplo de estructura y contenido para la creación de los temas de página de

inicio y de las páginas de contenido privado por usuario. Para la creación de estos

temas se utilizó también la herramienta FireBug de Mozilla-Firefox, ya que con esta

podemos inspeccionar el HTML y el código CSS de las páginas posicionándonos

sobre ellos, se indicará con un grisado sobre la página web el elemento que

corresponde y veremos sus atributos o bien damos click derecho, seleccionar

“Inspect” para ver el código fuente.

Fig (17.5.10)

Page 55: Reporte Final Dulce

Layout

Una manera sencilla es acomodar graficamente mediante Eclipse agregando y

manipulado los porcentajes mediante las opciones que se muestra Fig (17.5.11),

pero al momento de utilizarlo en el navegador Explorer no funciona por lo que se le

agrega una condicion como en el siguiente codigo Fig (17.5.12)

Fig

(17.5.11)

Fig

(17.5.12)

Para Explorer

Page 56: Reporte Final Dulce

9.7. TRASPASO (15 DE OCTUBRE AL 26 DE OCTUBRE DEL 2011)

Traspaso de usuarios existentes, permisos, roles, comunidades y configuración de

estos, perfeccionamiento de la página, Acción de redirección a página privada de

usuario

Redireccionar a pagina privada de usuario despues de login.

Para esto se instalo un hook desde liferay llamado Login Landing Page Hook el cual

redirecciona a la pagina privada del usuario despues de que este hace Login.

Page 57: Reporte Final Dulce

9.8. AGREGAR COMUNIDADES Y PÁGINAS (27 DE OCTUBRE AL 23

DE NOVIEMBRE DEL 2011)

Se agregó una comunidad con una parte privada y una pública. En la parte privada

se agregaron 6 páginas: Bienvenida, Foro, Ofertas, Convocatoria, Generación,

Imágenes. En la parte de bienvenida se agregó y configuró aplicaciones de vista del

perfil del usuario, vista de amigos, Actividades resientes de amigos, Usuarios más

recientes, Solicitudes de Amistad y una lista de usuarios.

Se agregó y configuró una parte donde se mostrara anuncios varios y Exámenes de

Grado recientes.

En la parte Foro se agregó la aplicación Foro de Discusión.

En la parte pública se agregó y configuró aplicaciones: para ver el perfil, Actividades

de Amigos, Amigos que se tiene, Muro para compartir en escrito lo que se quiera dar

a conocer, una sección de experiencia laboral y Actividades recientes de todo el

portal.

Estas partes serán exportadas como .lar para ser utilizadas en portal-ext.properties

para q sean las paginas públicas y privadas por defecto de cada usuario.

Se creó y agregó el registro de usuarios a la comunidad del CEL

Page 58: Reporte Final Dulce

9.9 CREACION DE APLICACIÓN CUESTIONARIO DE EGRESADOS

(24 DE NOVIEMBRE A 7 DE DICIEMBRE DEL 2011)

Se creó y agrego en la página de

bienvenida un cuestionario de

seguimiento de egresados. Se creó y

se agregó una aplicación para mostrar

dichos alumnos y lo que contestaron,

en la comunidad del CEL

Page 59: Reporte Final Dulce

10. RESULTADOS.

Se obtuvo como resultado la funcionalidad de la captura de Datos de Egresados,

mostrarlos, modificarlos y eliminarlos si fuese requerido, así como un seguimiento

para los tramites de titulación de los mismos el cual puede ser registrado, mostrado,

editado y eliminado. Se creó un Cuestionario de Seguimiento mostrando resultados

de los datos recolectados. Se crearon temas para una página de inicio nueva y las

páginas de contenido.

Obteniendo conocimiento sobre las herramientas utilizadas como lo son el CMS

Liferay Portal 6.0.6 con Tomcat 6 el cual mediante portlets y webs se integra de

manera fácil un portal funcional, sin necesidad de detener los servicios que ya se

están ejecutando, por ejemplo el correo, consulta a una base de datos, etc. El uso de

Eclipse para la creación de plugins como lo son temas y el layout para la página

principal utilizando también HTML y CSS para la creación del tema y plantillas tpl

para el layout. En cuanto a base de datos Liferay después de la conexión creo su

propia base de datos a utilizar la cual se analizó una parte para su uso en los

registros de usuario, el cuestionario de seguimiento y seguimiento de trámite de

titulación. Se obtuvo conocimiento sobre Lenguaje de Plantillas en Apache Velocity el

cual permitió mediante clases ya definidas el acceso a tablas de la base de datos,

ente otras cosas, todo esto mediante instrucción de mi asesor externo.

Por falta de conocimiento y tiempo quedaron tareas pendientes, tales como obtener

datos del usuario que está autenticado esto impide que el usuario conteste el

cuestionario de seguimiento una sola vez y que se pida nombre y matricula

nuevamente en este mismo cuestionario. Falto la creación del archivo Liferay (*.lar)

para configurar el contenido de las páginas de usuario ya que el total del contenido

que se tiene que ver en las páginas personales de usuario no está implementado.

En cuanto a las tareas realizadas en este tiempo se me hizo un aprendizaje

interesante ya que será de gran utilidad en cuanto a mi experiencia profesional.

Page 60: Reporte Final Dulce

11. CONCLUSIONES Y RECOMENDACIONES

Basándose de la 1era versión se complementó el portal de Exalumnos del CEL para

ayuda en los registros y control de los Egresados y de sus trámites de Titulación.

Con ayuda de manuales existentes y de libros acerca de la herramienta Liferay se

obtuvo conocimiento para el desarrollo de aplicaciones especiales para el CMS y

manejo de este.

Se recomienda guardar en repositorio cada vez que se termine de realizar alguna

aplicación o modificación en el portal, esto ayudara a que al guardarse versiones

anteriores se pueda el acceso a ellas por algun error que se tenga ya que Liferay no

guarda versiones anteriores.

Al trabajar con Eclipse se recomienda guardar aparte cada proyecto (portlet, theme ,

ext, layout, portlet) que se haga o modificaciones a alguno de estos fuera del

programa, o bien hacer commit (guardar en repositorio con Tortoise Git) antes de

utilizarlo.

Page 61: Reporte Final Dulce

12. FUENTES CONSULTADAS

12.1. BIBLIOGRAFÍA:

Jonas X. Yuan, Xinsheng Chen, Frank Yu, Liferay User Interface Development, Ed.

Pack Publishing

Jonas X. Yuan, Liferay Portal Enterprise Intranets, Ed. Pack Publishing

Poornachandra Sarang, Ph.D. Liferay Practical Liferay Java™–based Portal

Applications Development, Ed. Apress*

12.2. ENLACES DE INTERNET

http://www.postgresql.org/docs/

http://velocity.apache.org/engine/releases/velocity-1.5/user-guide.html

http://www.liferay.com/es/community/wiki/-/wiki/Main/Database+Portal+Properties

http://www.liferay.com/es/community/wiki/-/wiki/Main/Database+Configuration

http://www.liferay.com/community/wiki/-/wiki/Main/Personal+Community

http://www.liferay.com/es/community/wiki/-

/wiki/Main/Customizing+the+default+page+after+login?_36_version=1.6

http://www.liferay.com/es/community/wiki/-/wiki/Main/Themes+v6.0

http://www.liferay.com/es/community/wiki/-

/wiki/1071674/Access+Objects+from+Velocity/maximized

Page 62: Reporte Final Dulce

13. ANEXOS

Page 63: Reporte Final Dulce

Contenido:

1.- Procedimiento a seguir para registrar un alumno nuevo.

2.- Agregar fotos de examen de grado.

3.- Consultar el seguimiento de alumnos en Trámite de Titulación.

4.- Consultar el resultado de las encuestas.

Page 64: Reporte Final Dulce

1.- Procedimiento a seguir para registrar un alumno nuevo:

Después de Login en su cuenta el Encargado de Registrar a un alumno se dirige a la

comunidad CEL y aparecerá en la página donde puede registrar un Egresado. En la

cual dará Clic en el botón Crear Usuario y lo redireccionará a la página donde podrá

introducir los datos del Usuario, después de capturar los datos tendrá que guardar

dando clic en el botón Salvar, si no dará en el botón Cancelar. Después de esto se

redireccionará a la página Inicial donde aparecerá el nuevo Usuario registrado.

Page 65: Reporte Final Dulce

2.- Agregar fotos de examen de grado:

Después de login en su cuenta el Encargado de Subir Fotos de Examen de Grado

deberá ir a Administrar Panel de Control y en la sección Mi Comunidad dar clic en

Galería de Imágenes. Añadir una Carpeta, en ella agregarle un Nombre y una

Descripción especificar en Permisos que solo podrán ver el propietario y se da clic en

Guardar para guardar los cambios, haciendo esto se redireccionará a una página

donde da dos opciones una de subir varios archivos y otra donde solo es uno se

selecciona la o las imágenes a subir y enseguida aparecerán las imágenes y se da

click en el enlace Subir Imágenes, para regresar se da clic en el enlace atrás o bien

clic en Galería de imágenes. La carpeta creada tiene las opciones en el botón

Acciones de: Editar (edita el nombre de la carpeta, su descripción y da la opción de

fusionar con la carpeta padre y de eliminar la carpeta), Permisos (edita los permisos

de quien o quienes pueden controlar la carpeta), Eliminar (elimina la carpeta), Añadir

Subcarpeta (añade una carpeta dentro de otra carpeta), Añadir Imagen (añade varias

imágenes o solo una), Ver Diapositivas (muestra las imágenes que contiene la

carpeta en una ventana nueva las muestra en diapositivas) y acceder desde

Escritorio (Las carpetas y archivos pueden ser gestionados directamente desde el

explorador de ficheros del escritorio del sistema operativo).

Page 66: Reporte Final Dulce

3.- Consultar el seguimiento de alumnos en Trámite de Titulación:

Después de Login en su cuenta el

Encargado de Registrar el avance del

trámite de titulación se dirige a la

comunidad CEL dando clic en Ir a

CEL y después dará clic en la pestaña

SEGUIMIENTO DE TRAMITE DE

TITULACIÓN y aparecerá en la página

donde puede registrar el avance. En la

cual dará Clic en el botón “Registro de

Titulación” y mandará a donde podrá

introducir los datos del avance, después

de capturar los datos tendrá que guardar

dando clic en el botón Salvar, si no dará

en el botón Cancelar. Después de esto

mandara al listado de Usuarios recientemente agregados.

Page 67: Reporte Final Dulce

4.- Si se desea consultar el resultado de las encuestas:

Después de Login se podrá ver los resultados de quienes hicieron la encuesta y los

resultados de la misma para el acceso a esta información se da clic en: Ir a CEL,

se cargara la página de Registro de Usuarios y se tendrá q dar clic en la pestaña

Egresados que realizaron cuestionario de seguimiento. Ahí aparecerán los nombres

de los egresados que hicieron la encuesta su número de control y un enlace llamado

“Mostrar” que mandara a los resultados de la encuesta.

Page 68: Reporte Final Dulce

5.- Agregar una reseña del examen de titulación:

Después de Login en su cuenta el Encargado de Agregar la reseña se deberá de

dirigir hacia AdministrarPanel de Control, en la sección de Mi comunidad deberá

elegir Blogs y finalmente Añadir entrada de blog. Aquí tendremos la opción de añadir

una nueva reseña colocando imágenes referentes al Examen, teniendo además otras

opciones básicas de Edición. Guardando dando clic en el botón Publicar.

Page 69: Reporte Final Dulce

Laboratorio Nacional de Informática Avanzada A.C.

Page 70: Reporte Final Dulce

CONTENIDO:

1.-CONEXIÓN POSTGRES CON LIFARAY

2.-AGREGAR Y CONFIGURAR WEB CONTENT DISPLAY

3.- CREACION DE UN THEME Y LAYOUT LIFERAY

3.1 Instalar Eclipse Indigo:

3.2. Instalación del plugin

3.3 Configuración del servidor de aplicaciones

3.4 Creando un proyecto de plugin SDK

3.5 Layout

4.-CONFIGURACIÓNES de portal-ext.properties

5.- REDIRECCIONAR A PAGINA PRIVADA DE USUARIO DESPUES DE LOGIN.

6.-CONFIGURAR EL CONTENIDO DE LAS PAGINAS DE USUARIO

Page 71: Reporte Final Dulce

1.-CONEXIÓN POSTGRES CON LIFARAY

Agregar a portal-ext.properties (C:\liferay-portal-6.0.62\tomcat-

6.0.29\webapps\ROOT\WEB-INF\classes\ portal-ext.properties) si no existe se crea

en un txt y se cambia la extensión.

Descargar el driver JDBC (JDBC3 Postgresql Driver, Versión 9.0-801) desde

PostgreSQL (http://jdbc.postgresql.org/download.html) y copiarlo en las siguientes

direcciones

C:\…\liferay-portal-6.0.6\tomcat-6.0.29\lib\ext

C:\…\liferay-portal-6.0.6\tomcat-6.0.29\lib

URL directahttp://jdbc.postgresql.org/download/postgresql-9.0-801.jdbc3.jar

Nombre del archivo descargado postgresql-9.0-801.jdbc3.jar

2.-AGREGAR Y CONFIGURAR WEB CONTENT DISPLAY.

Para agregar un Web Content Display solo se

debe hacer click en Add y luego en Web Content

Display Fig. (2.1). Y luego dar click en el icono q

se muestra en la Fig. (2.2), Para empezar a

configurarlo.

Este tiene las opciones de agregar HTML, editar como texto, y

agregar una plantilla editable en cualquiera de los siguientes

lenguajes CSS, FTL, VM y XLS.

Fig(2.1)

Fig.(2.2)

Page 72: Reporte Final Dulce

Antes de agregar una plantilla se tiene que crear

una estructura dando click en el boton Editar

debajo de la etiqueta estructura en este se indica el

tipo de contenido que se requiera ya sea Controles

de formulario, Campos de la aplicación o algún

enlace a página o un salto de sección. Este

también se puede agregar desde añadir plantilla,

seleccionar estructura.

Para agregar una plantilla se da click en el boton

SELECCIONAR—AÑADIR PLANTILLA y

aparecera una ventana con el contenido q se

muestra en la Fig. (2.3), en la cual se deberá

agragar la estructura de nuestro codigo dando

click en el boton SELECCIONAR debajo de la leyenda Estructura, en caso de no

existir se tendra que crear ya sea desde la 1era ventada donde aparece dando click

en el botón Añadir Estructura o en la misma ventana de añadir plantilla en el boton

SELECCIONAR en la etiqueta Estructura.

Esto se utilizó en la creacion de la aplicación de Registro de Usuarios, Muestra de

Usuarios que hicieron el Cuestionario de Seguimiento de Egresados, el Cuestionario

de Seguimiento de Egresados.

Fig. (2.3)

Page 73: Reporte Final Dulce

3.- CREACION DE UN THEME Y LAYOUT LIFERAY

Para crear un tema se necesita tener instalado LIFERAY 6.0.6 con Tomcat 6 e

instalado y configurado Eclipse y haber descargado e instalado Liferay IDE.

3.1 Instalar Eclipse Indigo:

Fig.

(3.1.1)

Page 74: Reporte Final Dulce

Se descarga de la pagina oficial http://www.eclipse.org Fig. (3.1). Y Tendremos que

descomprimirlo y aparecerá una carpeta llamada eclipse. En ella solo damos doble

click sobre el icono de Eclipse Fig. (3.2). Nos pedirá el workspace donde queremos

trabajar. Y aparecerá la ventana de bienvenida.

Despues de esto instalaremos Liferay IDE

3.2. Instalación del plugin

Para instalarlo vamos a Help → Eclipse Marketplace y buscar por la palabra clave

"Liferay". Fig. (3.2.1)

Pulsamos en “Install” con lo que iniciamos el proceso de instalación del plugin el cual

puede llevar unos minutos dependiendo del ancho de banda de nuestra red. Si nos

sale algún “Warning” pulsamos en “OK” para continuar con la instalación. Al finalizar

el proceso, pulsamos en “Restart now” para aplicar los cambios.

Fig. (3.1.2)

Fig. (3.2.1)

Page 75: Reporte Final Dulce

Configuración del SDK

Para configurar este

plugin vamos a Window →

Preferences y filtramos

por la palabra “Liferay”.

Fig (3.2.2)

En esta pantalla podremos añadir el SDK de Liferay que ya tengamos instalado o

descargarlo si no lo tenemos. Como es nuestro caso, vamos a pulsar en

“Download...”, esto nos llevará algo de tiempo...

Una vez descargado e instalado el SDK, pulsamos en “OK”. Si ya tenemos un SDK

instalado en la máquina podemos añadirlo a la configuración pulsando en “Add”. Fig

(3.2.3)

Pulsando en "Browser", seleccionamos el directorio %LIFERAY_SDK_HOME% y

pulsando en “OK” ya tenemos registrada nuestra instancia de Liferay SDK para poder

ser utilizada desde Eclipse.

Fig (3.2.2)

Fig

(3.2.3)

Page 76: Reporte Final Dulce

3.3 Configuración del servidor de aplicaciones

Ahora lo siguiente es configurar el servidor de aplicaciones para poder ejecutar y

depurar nuestros desarrollos en Liferay. Para ello, vamos a Window → Preferences y

en la pantalla vamos a Server → Runtime Environment, pulsamos en “Add” y

seleccionamos “Liferay, Inc.” → Liferay v6.0 (Tomcat 6.0) Fig (3.3.1)

Pulsando en “Next” se nos muestra una pantalla donde podemos establecer el

nombre de la instancia y nos da la posibilidad de especificar la ruta de una instancia

de Liferay + Tomcat ya instalada en el equipo o descargarnos la última versión.

Vamos a probar a descargar la última versión por lo que pulsamos en “Download and

Install...”. Aceptamos todos los mensajes que salgan y asignamos un directorio

donde almacenar la descarga. Esto llevará unos cuantos minutos...

Si al finalizar la descargar nos da algún tipo de error, nos tenemos que asegurar que

la ruta de “Liferay Tomcat directory” está apuntando a la carpeta que nos acabamos

de descargar.

Si ya contamos con una instancia de Liferay podemos seleccionar el directorio

%LIFERAY_HOME% gracias al botón "Browser...".

En cuanto la instalación sea correcta podremos seleccionar el JRE runtime que

tengamos configurado siempre superior a la versión 1.6, y pulsamos en “Finish”.

Fig.

(3.3.1)

Page 77: Reporte Final Dulce

Registrando el servidor

Para registrar el servidor tenemos que abrir la ventana “Servers” (Window → Show

View → Other → Server → Servers). Clicamos con el botón derecho dentro de esa

ventana y seleccionamos New → Server con lo que se muestra una pantalla donde

podemos seleccionar el tipo de servidor a añadir, en nuestro caso el de Liferay, dar el

nombre del host (localhost), darle un nombre a esta instancia de servidor (Liferay +

Tomcat 6.0) y por último seleccionamos la instancia del servidor que hemos creado.

Fig (3.3.2)

Y pulsamos en “Finish”. Ahora para probar la instalación del servidor bastará con

pinchar con el botón derecho sobre la instancia que tiene que aparecer en la ventana

“Servers” y seleccionar “Run” o “Debug”. Si todo es correcto, veremos como en

consola aparecen las trazas del servidor y pasados unos instantes veremos la traza

“Server startup in x ms” que indica que el servidor se ha levantado correctamente.

Ahora para acceder a Liferay, abrimos un navegador y accedemos a la URL:

http://localhost:8080

Fig.

(3.3.2)

Page 78: Reporte Final Dulce

3.4 Creando un proyecto de plugin SDK

Abrimos el Eclipse y vamos a File → New →

Project → Liferay → Liferay Plug-in Project y

pulsamos en “Next”. En esta pantalla tenemos

que poner un nombre al proyecto y un nombre

que se va a utlizar para mostrarse. En la

sección “Configuration” tenemos que

seleccionar el SDK que vamos a utilizar y la

instancia de Liferay donde lo vamos a ejecutar.

También podemos seleccionar de que tipo va a

ser el plugin a crear, pudiendo elegir entre los

tipos: portlet, hook, ext, layout y theme. Fig (3.4.1)

Para finalizar el proceso de creación del plugin pulsamos “Finish”. Esto hace que el

proyecto se registre en Eclipse como un proyecto de Liferay SDK, manteniendo las

fuentes dentro de la carpeta del plugin seleccionado en %LIFERAY_SDK_HOME%.

Desplegando el proyecto

Para desplegar el proyecto en Liferay tenemos que

arrastrar la raíz del proyecto al servidor configurado

dentro de la vista “Servers”, o con el botón derecho

sobre dicho servidor, pinchamos sobre la opción “Add

and remove...” y seleccionamos el proyecto de Liferay

que queremos desplegar. Esto hace que cualquier

cambio en el proyecto provoque el despliegue en

caliente del plugin. Fig (3.4.2)

Fig (3.4.1)

Fig (3.4.2)

Page 79: Reporte Final Dulce

El contenido del tema se basó en un tema ya existente e instalado en Liferay

(sevencogs-theme) el cual se utilizó como ejemplo de estructura y contenido para la

creación de los temas de página de inicio y de las páginas de contenido privado por

usuario. Para la creación de estos temas se utilizó también la herramienta FireBug de

Mozilla-Firefox, ya que con esta podemos inspeccionar el HTML y el código CSS de

las páginas posicionándonos sobre ellos, se indicará con un grisado sobre la página

web el elemento que corresponde y veremos sus atributos o bien damos click

derecho, seleccionar “Inspect” para ver el código fuente.

Page 80: Reporte Final Dulce

3.5 Layout

Una manera sencilla es acomodar graficamente mediante Eclipse agregando y

manipulado los porcentajes mediante las opciones que se muestra Fig (3.5.1), pero

al momento de utilizarlo en el navegador Explorer no funciona por lo que se le agrega

una condicion como en el siguiente codigo Fig (3.5.2)

Fig

(3.5.1)

Fig

(3.5.2)

Para Explorer

Page 81: Reporte Final Dulce

4.-CONFIGURACIÓNES de portal-ext.properties

Este archivo guarda configuraciones del portal que se obtienen del archivo

portal.properties que se encuentra dentro de portal-impl.jar que se encuentra en la

ruta (C: \liferay-portal-6.0.62\tomcat-6.0.29\webapps\ROOT\WEB-INF\lib)

5.- REDIRECCIONAR A PAGINA PRIVADA DE USUARIO DESPUES DE LOGIN.

Para esto se instalo un hook desde liferay llamado Login Landing Page Hook el cual

redirecciona a la pagina privada del usuario despues de que este hace Login.

Page 82: Reporte Final Dulce

6.-CONFIGURAR EL CONTENIDO DE LAS PAGINAS DE USUARIO

Por medio del archivo portal-ext.properties Fig. (6.1) se configura mandando a llamar

a un archivo generado despues de exportar el contenido de toda la comunidad ya

sea publico o privado de una comunidad como se muestra en: Fig (6.2)

El *.lar generado se guardó en C:\liferay-portal-6.0.6\deploy

Fig (6.1)

Fig.

(6.2)