You are on page 1of 149

1

UNIVERSIDAD CATÓLICA DE TEMUCO

FACULTAD DE INGENIERÍA

"ESTUDIO Y ADAPTACIÓN DE EXTENSIONES EN PORTALES

WEB CON TECNOLOGÍA CMS

(CONTENTS MANAGEMENT SYSTEMS)”

Por

ELIZABETH MARÍA SOTO CASTILLO.

Trabajo de Título presentado a la Facultad de Ingeniería

de la Universidad Católica de Temuco, para optar al título de

Ingeniería en Ejecución en Informática.

-Temuco 2005-.
2

....... A MIS PADRES Y HERMANO.


3

AGRADECIMIENTOS.

Hoy culmina una etapa importante del proyecto de educación que me plantee hace 5 años

atrás con muchas expectativas. Para mí la Universidad era un sueño, y hoy me encuentro

cumpliéndolo. Una etapa de mi vida que considero enriquecedora, y espero que sea la

primera de muchas que logre concretar a través del tiempo.

Quisiera agradecer a mi familia, principalmente mis padres Manuel y Maria, que con

mucho esfuerzo hicieron posible que hoy me encuentre aquí. Gracias papá por tu

incondicional apoyo, por creer en mi, por confiar, eres mi máximo referente, tus ganas de

superación y el talento con que haces tu trabajo me inspiro. Gracias mamá, por motivarme,

por la comprensión, tu amor me dio fuerzas para superar los obstáculos de estudiar lejos de

casa. A mi hermano; Manuel gracias por creer en mi, y hacer de mis triunfos los tuyos

propios. Mi familia es grande, unida y hermosa, siento que este proceso es un logro en mi

vida y quisiera dedicárselos con mucho cariño.

Temuco fue mi hogar durante este proceso, por eso quisiera agradecer también mis a tíos

Ana Maria y Miguel, por recibirme en su hogar y por haberme hecho sentir como en casa,

a Maria José por su risa y su humor que me brindo tantas alegrías. Agradecer también a mis

amigos, por formar parte de esta hermosa etapa, que recorrimos juntos. A Mario por

apoyarme, por quererme, la fuerza de su amor me hizo más grande.

Los recuerdos de esta cuidad, la Universidad sus lugares y su gente los llevare en mi

corazón siempre. Gracias a todos los que durante este tiempo formaron parte de este

proceso y a Dios por permitirme vivir esta hermosa etapa, por ponerme en este lugar y

con esta gente, por permitirme cumplir mis sueños...


1

INDICE GENERAL.

INDICE GENERAL ................................................................................................................... 1

INDICE DE CONTENIDOS...................................................................................................... 2

INDICE DE FIGURAS .............................................................................................................. 6

INDICE DE ANEXOS ............................................................................................................... 8

RESUMEN EJECUTIVO........................................................................................................... 9
2

INDICE DE CONTENIDOS.

CAPITULO I INTRODUCCIÓN..................................................................................... 11

1. Introducción. ..................................................................................................................... 12

1.1 Portales Web, Comunidades Virtuales, Adaptación De Portales Y Su Relación

Con El Problema. .............................................................................................................. 12

1.2 Descripción del Problema. .........................................................................................13

1.3 Solución Propuesta.................................................................................................... 14

1.4 Objetivos del Proyecto. .............................................................................................. 15

1.4.1 Objetivo General .................................................................................................15

1.4.2 Objetivos Específicos.......................................................................................... 15

1.5 Organización del Resto del documento.....................................................................17

CAPITULO II INVESTIGACIÓN ......................................................................................19

2. Estudio Herramientas CMS (Content Management Systems)....................................... 20

2.1 Sistemas de gestión de contenidos – Definición y Funcionalidades ...................... 20

2.2 Aspectos importantes de las comunidades virtuales y el aumento de los portales

corporativos en Internet a través de CMS. ...................................................................... 21

2.3. CMS comerciales y de código abierto...................................................................... 25

2.4 Criterios de selección. ................................................................................................ 27

2.5 Portal PHP Nuke Open Source ............................................................................... 30

2.5.1 Introducción a PHP Nuke ................................................................................... 30

2.5.2 Principales características de PHP Nuke ........................................................... 31

2.5.3 La licencia de PHP-Nuke....................................................................................32


3

2.5.4 Evolución de PHP Nuke .................................................................................... 32

2.5.5 Seguridad de PHP Nuke.....................................................................................33

2.5.5.1 Encriptación de Password............................................................................ 33

2.5.5.2 Backup Base de Datos ................................................................................. 34

2.5.5.3 Vulnerabilidades de Seguridad.................................................................... 34

2.5.6 Instalación y configuración de Nuke.................................................................. 35

2.5.7 Panel de Administración de Nuke...................................................................... 39

2.5.8 El funcionamiento de PHP Nuke........................................................................40

2.5.8.1 PHP Nuke se divide en dos interfaces: ......................................................40

2.5.9 Extendiendo PHP NUKE - Reglas de desarrollo de Módulos Compatibles. ..42

2.5.9.1 Estructura de módulos. ................................................................................ 42

2.5.9.2 Creando Módulos Compatibles................................................................... 44

2.5.9.3 Reglas de desarrollo de Módulos Compatibles.......................................... 44

2.5.9.4 Creación de un módulo en la sección de de administración...................... 45

2.6 Portales Mambo CMS Open Source ........................................................................51

2.6.1 Introducción a Mambo CMS ............................................................................ 51

2.6.2 Información acerca de Mambo.......................................................................... 51

2.6.3 Mambo - Seguridad........................................................................................... 53

2.6.3.1 Vulnerabilidades en Mambo ....................................................................... 53

2.6.3.2 Backup Base de Datos ................................................................................. 53

2.6.4 Instalación y configuración de Mambo 4.5.2. ................................................... 54

2.6.5 Componentes de Mambo. ...................................................................................61

2.6.6 Mambo y sus principales características para realizar sitios Web y portales.. 63
4

2.6.7 Administración y utilidades de Mambo............................................................ 65

2.6.8 Mambo y su posibilidad de Extensión agregándole Módulos Nuevos ............69

2.7 Investigación de RSS y su uso en los Portales Web.................................................71

2.7.1 Noticias en Formato RSS Nueva Tecnología de Información. ........................71

2.7.2 RSS en portales CMS.......................................................................................... 75

2.8 Comparación de Mambo OS y PHP Nuke................................................................ 76

2.8.1 Ventajas y desventajas de las herramientas estudiadas.....................................78

2.8.2 Bases de datos Generadas. .................................................................................. 80

CAPITULO III DESARROLLO CASO PROTOTIPO:..................................................81

3. Análisis de la situación de la Facultad de Ingeniería y su Sistema Curriculums......... 82

3.1 Información y características del sistema. ............................................................... 82

3.1.2 Estructura y manejo de usuarios......................................................................... 83

3.1.3 Interfaces de la aplicación Curriculums on line. ............................................... 86

3.2 Análisis de la información Recopilada......................................................................87

3.3 Análisis de la elección de la herramienta CMS PHP Nuke .................................... 88

3.4 Esquema de Funcionamiento de los sistemas seleccionados................................... 89

3.5 Requerimientos para la Adaptación del Sistema Curriculums. .............................. 91

3.5.1 Requerimientos y compatibilidades de la Base de Datos. ................................91

3.5.2 Requerimientos y compatibilidades de la Interfaz. ........................................... 92

3.6 Tecnologías y herramientas Utilizadas para el desarrollo. .................................... 93

3.6.1 Características del servidor Apache ................................................................... 93

3.6.3 MySql................................................................................................................... 95

3.7 Implementación Adaptación de Extensiones al Portal Nuke................................... 97


5

3.7.1 Diseño ..................................................................................................................97

3.7.2 Diagrama de caso de Uso del Sistema Curriculums Post Proceso de

adaptación ..................................................................................................................... 99

3.7.3 Versión extendida del Modelo de casos de uso del Sistema Curriculums....100

3.7.4 Diagrama de Caso de Uso del Webmaster Sistema Curriculums .................107

3.7.5 Descripción extendida Casos de Uso Webmaster. ..........................................107

3.7.6 Diseño de interfaces ..........................................................................................110

3.7.7 Diseño de los cambios de la base de Datos. ....................................................113

3.7.8 Implementación de cambios en los códigos del Sistema................................115

3.7.8.1 Ejemplo de cabeceras de código de PHP Nuke .......................................117

3.7.9 Implementación Extensión RSS al Portal.......................................................123

3.7.9.1 Ejemplo de Estructura del archivo final XML.........................................124

3.7.9.2 Ejemplo de código PHP que genera el XML ..........................................125

CAPITULO IV: DISCUSIÓN............................................................................................127

4.1 PHP Nuke como un CMS integral...............................................................................128

4.2. Variantes y cambios que se creen necesarios ...................................................128

4.3 Comentarios Sobre tecnología CMS..................................................................132

4.4 Sobre el futuro de los CMS......................................................................................132

CAPITULO V: CONCLUSIONES ...................................................................................134

5.1 Conclusiones .............................................................................................................135

5.2 Referencias y Bibliografía. ......................................................................................138


6

INDICE DE FIGURAS.

Figura 1: Página principal del portal Nuke instalado............................................................. 38

Figura 2: Panel de administración de Nuke 7.4 ..................................................................... 40

Figura 3: Imagen Pre- instalador de Mambo........................................................................... 57

Figura 4: Imagen Paso 1 Instalador de Mambo....................................................................... 58

Figura 5: Interfaz principal de Mambo OS.............................................................................. 60

Figura 6: Interfaz de Administración de Mambo ................................................................... 66

Figura 7: Listado de iconos del panel de administración de Mambo.....................................67

Figura 8: Tabla comparativa Nuke/ Mambo. .......................................................................... 77

Figura 9: Detalle de la estructura de la tabla de usuarios Decano. ........................................ 84

Figura 10: Detalle de la tabla de usuarios no decanos............................................................ 85

Figura 11: Detalle tabla Administrador. .................................................................................. 86

Figura 12: Imagen inicial Sistema Curriculums......................................................................86

Figura 13 : Interfaz Principal del Sistema Curriculums On-Line ..........................................87

Figura 14 Esquema funcional del Portal PHP Nuke y el Sistema On Line Curriculums.... 89

Figura 15: Esquema Situación Esperada Sistema Curriculums / Portal Acoplados .............90

Figura 16: Interfaz de Apache.................................................................................................. 94

Figura 17: Esquema de interacción entre PHP y el cliente....................................................95

Figura 18: Interfaz MySql. ....................................................................................................... 96

Figura 19: Diagrama Caso de Uso Usuarios ...........................................................................99

Figura 20: Diagrama Caso de Uso Actor Webmaster..........................................................107

Figura 21: Diseño Interfaz “Tu Cuenta”................................................................................111

Figura 22: Diseño Interfaz Sistema Curriculums................................................................112


7

Figura 23: Detalle Estructura final Tabla usuarios en Base de datos ..................................113

Figura 24: Detalle Estructura final tabla Nuke usuarios en Base de Datos.........................115

Figura 25: Imagen del panel de administración de módulos................................................116

Figura 26: Portal PHP Nuke Personalizado...........................................................................120

Figura 27: Interfaz Final de módulo “tu cuenta”...................................................................121

Figura 28: Interfaz Final Sistema Curriculums Acoplado al Portal Nuke...........................122


8

INDICE DE ANEXOS.

Anexo 1 Tabla extendida comparativa de CMS 1.............................................................140

Anexo 2 Tabla Comparativa de CMS 2..............................................................................142

Anexo 3 Tabla de Características de otros CMS Open Source…………….……….…….143

Anexo 4 El futuro de Mambo……………………………………………..……….……...145


9

RESUMEN EJECUTIVO.

La información en una comunidad universitaria, como en todo ámbito de organizaciones, es

un factor fundamental para la comunicación y progreso en todas las áreas.

Los portales Web y los portales de redes corporativas crean el ambiente integrado de

escritorio adecuado para los usuarios de hoy en día. De esta forma se gestiona de manera

segura y confiable un sencillo punto de acceso a la información. El uso de estos portales se

masificó en Internet, ya no sólo utilizados para el entretenimiento, sino, para las empresas.

El reto surge al tratar de crear el tipo de portal que más convenga a los objetivos de la

organización, se necesita una arquitectura de portal escalable, que se integre a la actual

infraestructura de TI.

El proyecto que cubre este documento se refiere a un estudio e investigación de las dos

principales “herramientas de Portales”, existentes en la actualidad, se denominan Sistemas

de Gestión de contenidos CMS (Content Management Systems CMS). Estas

herramientas basan su funcionalidad en gestionar contenido de un sitio corporativo que

denominan Portal.

Mediante este estudio se obtienen las conclusiones que nos permiten elegir, dependiendo el

uso, cuál de ellas ocupar. Realizar un estudio comparativo que nos grafique el nivel de

adaptabilidad que estos sistemas presentan. Además se describen los criterios más

importantes a la hora de seleccionar un sistema de gestión de contenidos y los

requerimientos en función de los objetivos que se quieran alcanzar. Por eso, se explican los

sistemas gestores de contenido en general y se hace una comparación de sistemas populares

a base de Software Libre.


10

Este proyecto incluye el desarrollo de un caso aplicativo. Este caso consiste en adaptar un

sistema On Line manejador de Curriculums, basado en tecnologías Web al Portal de la

Facultad de Ingeniería de la Universidad Católica de Temuco. Este proceso de Adaptación

se realiza desde la perspectiva y los resultados obtenidos en la investigación mencionada

anteriormente, que resulta vital, debido a que el portal de la Facultad esta en vías de ser

desarrollado con tecnologías de Portales Generados CMS.

La problemática que se pretende solucionar en la Facultad de Ingeniería, se refiere

principalmente a que no existe un estudio de las herramientas Gestores de contenido, que

avalen el uso y la adaptabilidad que presentan, no existen sistemas que hayan sido

remodelados y adaptados a estos portales de forma funcional.

Hoy en día, la información se necesita de forma oportuna, y los largos tiempos de espera,

en los desarrollos de aplicaciones Web, están quedando atrás con la masificación en

Internet de estas herramientas, que generan estas aplicaciones de forma rápida en tiempos

relativamente cortos. La complejidad de estas herramientas radica en la adaptabilidad que

presentan. Realizar reingeniería a estos sistemas de código abierto y adaptar lo existente

para un mejor uso permitirán sacar el mejor partido a la herramienta escogida.

Para dar solución a esta problemática se desarrolla esta investigación aplicativa, como

trabajo de título de la alumna.

La productividad mejora conforme los usuarios tienen acceso y comparten información

crítica de forma más fácil y rápida. La capacidad de localizar rápidamente y tener acceso a

la información de manera oportuna, también le ayuda a los miembros de los portales a

tomar decisiones de calidad.


11

CAPITULO I INTRODUCCIÓN
12

1. Introducción.

A modo de introducción a este documento, se mencionarán los conceptos claves al tema

de los portales Web y se realizará un análisis del problema que presenta la Facultad de

Ingeniería. Además se menciona la importancia de realizar un estudio del tema, y de

canalizar las conclusiones en post de la mejora de la situación existente. Para concluir este

capítulo se mostrará la forma de organización del resto del documento.

1.1 Portales web, comunidades virtuales, adaptación de portales y su relación con el

problema.

Realizar una página Web compleja, tal como un portal web, puede ser un proceso

complicado, y de mucho trabajo si no se dispone de las herramientas adecuadas. En los

últimos años se ha desarrollado el concepto de “Sistema de Gestión de Contenidos” CMS

(Content Management Systems). Se trata de herramientas que permiten crear y mantener un

portal con facilidad, encargándose de los trabajos más pesados que hasta ahora ocupaban el

tiempo de los administradores de las páginas web.

Teniendo en cuenta el ahorro que da la utilización de estas herramientas, y el costo de

desarrollarlas, hace que los usuarios las elijan. Existen productos comerciales, pero gracias

al movimiento de Software Libre (Open Source) existen potentes herramientas de gestión

de contenidos de acceso libre (gratis).


13

Habitualmente este tipo de herramientas permiten la gestión de noticias, enlaces, foros,

usuarios, etc. La apariencia de los portales generados con estas herramientas es bastante

similar, y en su adaptación se debe cambiar la apariencia o disposición de elementos.

Su instalación es relativamente fácil, sin embargo, la personalización requiere trabajo y un

buen conocimiento de la herramienta. Dentro de la adaptación; fundamental para dejar un

portal funcional, se requiere además optimizar procesos, o en caso de ser factible, agregar

nuevos procesos o módulos al sitio.

Una solución basada en portales, provee a los usuarios el acceso conveniente a todo lo que

necesite para completar sus tareas diarias, desde un sólo lugar y mediante una vía segura.

Estos portales generan un espacio de interacción entre los usuarios, denominado

“comunidad virtual”.

Un portal se refiere a una aplicación Web que gestiona de forma uniforme y centralizada

contenidos provenientes de diversas fuentes. Implementa mecanismos de navegación sobre

los contenidos, integra aplicaciones e incluye mecanismos de colaboración para el conjunto

de usuarios (comunidad) a los que sirve de marco de trabajo. Todo esto en un entorno Web.

1.2 Descripción del Problema.

Actualmente en la Escuela de Informática, perteneciente a la Facultad de Ingeniería de la

Universidad Católica de Temuco, no se han realizados estudios a las “herramientas CMS de

Portal” existentes en la actualidad. No existe una documentación adecuada sobre estos

softwares que permita agregar extensiones (módulos) a los portales. Principalmente no


14

existen estándares de adaptación de estos portales, que facilite acoplar aplicaciones

existentes, realizadas en un lenguaje similar o compatible, para que operen en forma

conjunta al portal.

Se ha abordado esta problemática en dos áreas. La primera es de investigación, un estudio

referente a las características de estas herramientas, un análisis comparativos de ventajas y

desventajas, su documentación, configuración, base de datos y seguridad dentro de otros

aspectos.

La segunda problemática se refiere a la adaptación de los módulos nuevos y/o existentes, es

referente a las posibilidades de adaptabilidad y flexibilidad que los portales generados con

las herramientas estudiadas presentan. Analizar la posibilidad de acoplar aplicaciones ya

liberadas completamente funcionales, con bases de datos diferentes y con un acceso

diferente. Y por su parte analizar las normativas de las herramientas, y en que aspectos

facilita la adaptación y en cuales no.

1.3 Solución Propuesta.

La solución que se propone, consiste en desarrollar un estudio de estas herramientas, una

investigación que potencie el análisis, que sirva como orientación en el uso que se pretenda

darles. Además implementar en forma conjunta al portal de la Facultad de Ingeniería, el

software de uso común por los académicos, de Curriculums On- Line, desarrollado con la

finalidad de automatizar la gestión de curriculums de los académicos de la Facultad,

permitiéndoles a los usuarios tener acceso en el mismo portal a esta aplicación, siendo ésta
15

incluida como módulo al portal. Estandarizando formas de acceso, bases de datos y el

diseño de las interfaces. Para que toda la información se encuentre en forma más expedita

facilitando su uso a los usuarios.

1.4 Objetivos del Proyecto.

1.4.1 Objetivo General.

Dentro del objetivo general destacan los siguientes puntos:

• Investigar y analizar las principales herramientas “generadoras de portales”, para

desarrollar un estudio de esta tecnología, cada vez más masiva en la actualidad. Con

la finalidad de establecer diferencias comparativas entre las dos herramientas, sus

posibilidades de adaptación y flexibilidad, entre otro aspectos importantes.

• Desarrollar un caso (aplicativo) que sirva de referente para aplicar las herramientas

analizadas, un caso prototipo, dicho caso se refiere a la adaptación de un Sistema

On Line al portal de la Facultad de Ingeniería. Esta adaptación contempla desde una

estandarización de interfaces, a una remodelación de la base de datos, para que su

uso quede completamente acoplado a las funcionalidades del portal de la Facultad.

1.4.2 Objetivos Específicos.

Los objetivos específicos para cada área de trabajo son:

Ø Área Investigación: Estudio de las herramientas de TI CMS.


16

q Recopilación de información y antecedentes sobre las herramientas de

estudio.

q Análisis de la información recopilada, y documentación de la investigación.

Ø Área Desarrollo de un Caso Prototipo: Se desarrollará un caso aplicativo, que

consiste en Acoplar el Sistema ya liberado de Curriculums Académicos al portal de

la Facultad, generado con la herramienta CMS.

q Análisis: Analizar y documentar los requerimientos para el desarrollo del

Caso.

q Rediseñar: se realiza un diseño debido a los cambios realizados en el

sistema Curriculums, con la finalidad de acoplarlo al portal. Este incluye:

§ Estandarización de acceso al sistema Curriculums.

§ Remodelar las base de datos del Sistema Curriculums y del Portal.

§ Rediseño de interfaces del sistema Curriculums.

§ Diseños de procesos mediante estándar UML.

Ø Implementación: Se realiza la reingeniería de códigos y los cambios necesarios en

las bases de datos:

q Se deberá implementar la adaptación del Sistema de Curriculums

Académicos de la Facultad de Ingeniería.

q Readecuar archivo de noticias y configurarlo, para la sindicación de

noticias (RSS).
17

Ø Documentación: En forma paralela a todo el trabajo investigativo y de desarrollo,

se documentarán estos procesos con la finalidad de lograr el informe final de este

trabajo de título. La documentación juega un papel clave, puesto que en primera

instancia los procesos de adaptación siempre son dificultosos, una vez que se logra y

se documenta de buena forma, la siguiente vez que se estime adaptar alguna

aplicación para el portal, bastará con revisar esta documentación, logrando una

orientación a seguir.

Ø Pruebas: Se pondrá a prueba la adaptación del Sistema Curriculums, poblando la

base de datos con la finalidad de probar el Portal en forma completa. Evaluando de

esta forma, si el Sistema Curriculums responde a las peticiones mínimas de los

usuarios.

1.5 Organización del Resto del documento.

A continuación se mostrará la organización del resto del documento.

En el capítulo dos, se dará a conocer la investigación realizada, el estudio de las

herramientas seleccionada; donde se destacan la documentación, instalación y

configuración de éstas. Además de los criterios de comparación y las diferencias y ventajas

entre ambas herramientas seleccionadas.


18

En el capítulo tres se realiza un desarrollo prototipo, aplicativo al caso de estudio. Éste

desarrollo contempla la adaptación de un sistema Web al portal generado con las

herramientas de estudio, se considera esta etapa, como reingeniería de sistema. Este

capítulo incluye, además, la documentación de las tecnologías Web ocupadas para el

desarrollo.

Se desarrolla el caso mencionado. Se realiza un análisis (Sistema actual), diseño (Procesos-

UML, interfaces, BD), Implementación (reingeniería de códigos), y pruebas de este

prototipo.

En el capítulo cuatro, se realiza una discusión sobre las herramientas. Se describen los

resultados obtenidos y se señalan los impactos esperados. Además, se mencionan algunas

sugerencias y comentarios sobre la investigación .

Capítulo cinco. Capítulo final de este documento. Se dan a conocer las conclusiones de este

proyecto de Tesis, además de comentarios a modo de concluir este trabajo.


19

CAPITULO II INVESTIGACIÓN

ESTUDIO HERRAMIENTAS CMS (Content Management Systems)


20

2. Estudio Herramientas CMS (Content Management Systems).

Actualmente, existe una amplia gama de herramientas de administración de contenidos en

el mercado. Estos software se conocen generalmente como "Administradores de

Contenidos", o por sus siglas en inglés CMS (Content Managment System).

Estas herramientas son de gran utilidad cuando es necesario realizar cambios de mucha

frecuencia en un sitio Web, como por ejemplo: noticias diarias, actividades, entre otros.

2.1 Sistemas de gestión de contenidos – Definición y Funcionalidades.

Los sistemas de gestión de contenidos (CMS) son un software que se utiliza principalmente

para facilitar la gestión de Portales Web, ya sea en Internet o en una Intranet.

Un CMS aporta herramientas para que los creadores sin conocimientos técnicos en páginas

Web puedan concentrarse en el contenido.

Para la creación de un portal, los CMS aportan herramientas para definir la estructura, el

formato de las páginas, el aspecto visual, uso de patrones, y un sistema modular que

permite incluir funciones no previstas originalmente.

Los contenidos creados, por ejemplo, noticias o artículos, se depositan en una base de

datos central, donde también se guarda el resto de datos del portal, cómo son los datos

relativos a los documentos, datos y preferencias de los usuarios, la estructura del portal, etc.

La estructura se puede configurar con una herramienta que, habitualmente, presenta una

visión jerárquica del sitio y permite modificaciones. Mediante esta estructura se puede
21

asignar un grupo a cada área, con responsables, editores, autores y usuarios con diferentes

permisos.

Una página aprobada se publica automáticamente cuando llega la fecha de publicación, y

cuando caduca, se archiva para futuras referencias. En su publicación se aplica el patrón

definido para toda la Web o para la sección concreta donde está situada. Así el resultado

final es un sitio Web con un aspecto consistente en todas sus páginas. Esta separación entre

contenido y forma permite que se pueda modificar el aspecto visual de un sitio Web sin

afectar a los documentos ya creados, y libera a los autores de preocuparse por el diseño

final de sus páginas.

2.2 Aspectos importantes de las comunidades virtuales y el aumento de los portales

corporativos en Internet a través de CMS.

En un mercado tan competitivo donde el contenido es primordial, mantener una página

Web actualizada y amigable es esencial.

Para grandes volúmenes de contenido, las páginas Web estáticas son cosa del pasado. Hoy

en día, se necesita un sitio que se pueda actualizar con frecuencia, que promueva sus

nuevos contenidos, noticias más recientes y que pueda reaccionar a la competencia rápida y

eficientemente.

Un sistema de administración de contenido es una herramienta que permite a compañías o

individuos crear y modificar el contenido de su página Web, con poco de conocimiento


22

técnico. La gama de soluciones CMS que existen en el mercado, como se mencionó

anteriormente, es muy amplia.

La mayoría de los sistemas de administración de contenido comparten algunas

características básicas, principalmente:

Ø La capacidad para corregir y publicar contenido a través de un navegador o una

aplicación computacional.

Ø Cambiar el diseño de las páginas usando plantillas.

Ø Proporcionar el acceso a usuarios múltiples.

Son muy variados los sistemas CMS. Para emplearlos, algunos requieren un conocimiento

más técnico que otros. Unos son genéricos en su propósito, mientras que otros son

soluciones específicas para determinadas empresas.

Los sitios que proveen información a partir de bases de datos, son ahora el estándar en el

Internet, y los sistemas de administración de contenido utilizan este mismo principio. Las

herramientas para manejo de contenido, como se mencionó, trabajan en conjunto con una

base de datos que es utilizada para almacenar documentos, texto e imágenes.

Usar un CMS elimina muchos de los pasos que son requeridos en ambientes de desarrollo

convencionales. El personal responsable del Sitio Web, puede agregar contenido a un sitio

sin tener que escribir una sola línea de código, así es que no hay ninguna necesidad de que

un webmaster intervenga en la etapa de la publicación. Una interfaz basada en formatos


23

preestablecidos puede ser accesada a través de un navegador Web convencional, como el

Internet Explorer o Netscape, para editar y publicar las páginas Web.

Un aspecto crucial en el uso de esta tecnología, es que el contenido que se ingresa a un

CMS es reutilizable. Almacenar información en una base de datos significa que ese

contenido puede ser reutilizado.

Un sistema CMS es confiable, está centralizado, y en la mayoría de los casos se opera a

través de navegadores (browsers). La información puede ser accesada propiamente desde

cualquier computador. Lo más sobresaliente de todo esto es que los sistemas de

administración de contenido generan automáticamente las nuevas páginas y sub/niveles de

navegación. Aunque un CMS puede necesitar un cierto mantenimiento para conservarlo

funcionando y afinado, una vez que está construido, está operativo.

Para muchos, el beneficio más importante es el control. Un sistema que controla que sólo

las personas autorizadas en una organización tengan acceso al mantenimiento del sitio

Web, mejora tanto la calidad como la eficiencia, contrarrestando especialmente la debilidad

de aquellos modelos que permiten el libre acceso al contenido a muchos individuos dentro

de una organización. Al usar un sistema CMS basado en plantillas, se toma el control total

de la imagen y percepción del contenido de su sitio.

La administración de contenido puede concebirse como una herramienta para poner ideas

en práctica de la manera más directa posible. Crea de esta forma, especies de comunidades

virtuales, fortaleciendo la interacción y el flujo de ideas entre los miembros.

Aun los paquetes disponibles en el mercado pueden tener sus contratiempos, pero
24

rápidamente surgen soluciones y mejoras de estos. Las páginas estáticas convencionales

codificadas en HTML funcionan en cualquier servidor Web, pero un CMS requerirá una

configuración especial para funcionar. Es probable que el producto para administrar

contenido, esté construido basado en uno de los muchos protocolos de scripts de servidor

(Server-scripting protocols) que tendrán que ser cuidadosamente unificados al momento de

la configuración. Muchos de los paquetes disponibles requieren de un trabajo de instalación

y configuración para que funcionen. Esto puede conducir a la misma serie de pruebas y

tiempos de instalación, como los que podría experimentar al desarrollar un CMS a la

medida.

Se podrá obtener un mayor rendimiento del CMS si se orienta hacia una “comunidad

virtual”, si se aprovechan todas y cada una de las facilidades que un CMS puede ofrecerle a

una organización. Extender la cobertura del sistema CMS hasta la Intranet o implementar

facilidades tales como los boletines en línea (bulletin boards), maximizarán el uso del

sistema, ayudará a fomentar una atmósfera de trabajo en grupo y podrá conducirlos hacia

otras líneas de contenido.

Las comunidades son espacios virtuales destinados a facilitar la interacción entre

profesionales de un sector y poner a su alcance los mejores recursos existentes en

Internet. La idea de comunidad ha sido el corazón de la internet desde sus orígenes.

Durante muchos años, los científicos han utilizado la internet para compartir datos,

cooperar en investigaciones e intercambiar mensajes. En esencia, los científicos formaron

comunidades de investigación que existían ya no en un terreno físico sino en la Internet. En

los últimos años, millones de usuarios de computadores de todo el mundo han comenzado a
25

explorar la internet y servicios comerciales online. Muchos han pasado a integrar algunas

de las comunidades que han surgido para satisfacer las necesidades del consumidor en

materia de comunicación, información entre otras áreas.

2.3. CMS comerciales y de código abierto.

Se puede hacer una división de los CMS:

• Los CMS comerciales desarrollados por empresas para la venta. Estos no permiten

el acceso al código fuente para modificaciones.

• Los CMS de código fuente abierto o Software Libre (Open Source). Están

desarrollados por individuos, grupos o empresas que permiten el acceso libre y la

modificación del código fuente.

La disponibilidad del código fuente hace posible que se hagan personalizaciones del

producto, correcciones de errores y desarrollo de nuevas funciones. Además habitualmente

todo el software de código abierto es de acceso libre, es decir, sin ningún costo en licencias.

En comparación, los productos comerciales pueden llegar a tener un costo que sólo una

gran empresa puede asumir.

En cuanto al soporte, los CMS comerciales acostumbran a dar soporte profesional, con un

costo elevado en muchos casos, mientras que los de código abierto se basan más en las

comunidades de usuarios que comparten información y solución a los problemas. Las

formas de soporte se pueden mezclar, y así encontramos CMS de código abierto con

empresas que ofrecen servicios de valor añadido y con activas comunidades de usuarios. En
26

el caso comercial también sucede, pero el costo de las licencias hace que el gran público se

decante por otras opciones y por lo tanto las comunidades de soporte son más pequeñas.

En los siguientes recursos online se encuentran los CMS más populares actualmente.

1. Recursos On-Line portales de tipo Open Source:

• Mambo: www.mamboserver.com

• PHP-Nuke www.phpnuke.org

• Typo3: www.typo3.org

• CMS Made Simple www.cmsmadesimple.org

• CMSimple www.cmsimple.dk

• Drupal : www.drupal.org

• Xaraya: www.xaraya.com

• Post Nuke: www.postnuke.com

• Entre otras

PHP Nuke y Mambo OS, son las dos herramientas seleccionadas, de nuestra lista, para el

caso de estudio, ahondaremos en extenso estas dos herramientas en el siguiente capítulo.

2. Recursos On-Line portales CMS de tipo comerciales:

• Content Management Server 2002 de microsoft www.microsof.com/cmserver/

• Kentico Un CMS hecho en C y Visual Basic.NET www.kentico.com

• iweb de Productos Web www.productosweb.com


27

2.4 Criterios de selección.

Existen muchas posibilidades en la Web de CMS de códigos abiertos, la lista que se mostró

anteriormente es sólo una muestra de los más usados, sin embargo, las posibilidades del

mercado son muchas más. Si bien los criterios de selección dependerán en exclusiva del

criterio personal del usuario, se sugiere establecer requerimientos y objetivos del portal que

se desee gestionar.

Antes de decidir se recomienda realizar las siguiente actividades:

w Realizar un listado de aplicaciones y sistemas Free Open Source Software vs.

Software Propietario.

w Comparar características y desempeño en servicios desde los distintos niveles

(usuarios, administradores) de acuerdo a los requerimientos.

w Comparar licencias.

w Comparar costos de implementación, mantenimiento, y desarrollos.

Por ello, antes de empezar el proceso de selección de un CMS concreto, hay que tener

claros los objetivos de la Web, teniendo en cuenta al público destinatario, y estableciendo

una serie de requerimientos que tendría que poder satisfacer el CMS.

La siguiente lista está basada en las funciones principales de los CMS, las indicaciones de

Robertson, J. (2002) y una recopilación de los requerimientos básicos de una Web.


28

• Código abierto. Por los motivos de costos mencionados anteriormente, el CMS

tendría que ser de código fuente abierto (libre).

• Arquitectura técnica. Tiene que ser fiable y permitir la escalabilidad del sistema

para adecuarse a futuras necesidades con módulos. También tiene que haber una

separación de los conceptos de contenido, presentación y estructura que permita la

modificación de uno de ellos sin afectar a los otros. Es recomendable que se utilicen

hojas de estilo (CSS) y patrones de páginas.

• Grado de desarrollo. Madurez de la aplicación y disponibilidad de módulos que le

añadan funcionalidades.

• Soporte. La herramienta tiene que tener soporte tanto por parte de los creadores

como por otros desarrolladores. De esta manera se puede asegurar que en el futuro

habrá mejoras de la herramienta y que se podrá encontrar respuesta a los posibles

problemas.

• Posición en el mercado y opiniones. Una herramienta poco conocida puede ser

muy buena, pero hay que asegurar que tiene un cierto futuro. También son

importantes las opiniones de los usuarios y de los expertos.

• Usabilidad. La herramienta tiene que ser fácil de utilizar y aprender. Los usuarios

no siempre serán técnicos, por lo tanto hace falta asegurar que podrán utilizar la

herramienta sin muchos esfuerzos y sacarle el máximo rendimiento.


29

• Accesibilidad. Para asegurar la accesibilidad de una Web, el CMS tendría que

cumplir un estándar de accesibilidad. El más extendido es WAI (Web Accessibility

Initiative) del World Wide Web Consortium.

• Velocidad de descarga. Teniendo en cuenta que no todos los usuarios disponen de

líneas de alta velocidad, las páginas se tendrían que cargar rápidamente.

• Funcionalidades. No se espera que todas las herramientas ofrezcan todas las

funcionalidades, ni que éstas sean las únicas que tendrá finalmente la web. Entre

otras:

- Editor de texto WYSIWYG a través del navegador.

- Herramienta de búsqueda.

- Comunicación entre los usuarios (foros, correo electrónico, chat).

- Noticias.

- Artículos.

- Ciclo de trabajo (workflow) con diferentes perfiles de usuarios y grupos

de trabajo.

- Fechas de publicación y caducidad.

- Webs personales.

- Carga y descarga de documentos y material multimedia.

- Avisos de actualización de páginas o mensajes en los foros, y envío

automático de avisos por correo electrónico.

- Envío de páginas por correo electrónico.

- Páginas en versión imprimible.


30

- Personalización según el usuario.

- Manejo de distintos idiomas.

- Soporte de múltiples formatos (HTML, Word, Excel, Acrobat, etc.).

- Soporte de múltiples navegadores (Internet Explorer, Netscape, etc.).

- Soporte de sindicación (RSS, NewsML, etc.).

- Estadísticas de uso e informes.

- Control de páginas caducadas y enlaces rotos.

Todas estas funcionalidades se consideran básicas dentro de las herramientas CMS, si bien

existen diferentes herramientas, la gran mayoría incluye varias de estas funcionalidades y

otras más.

En la actualidad una de las comunidades más grande de desarrolladores de portales

generados CMS es la comunidad Nuke, trabaja de forma modular e incluye muchas de las

funcionalidades de la lista anterior. Otra de las herramientas CMS mejor catalogada es

Mambo, su comunidad de desarrollo es también bastante amplia, es emergente, y su diseño

es altamente editable. A continuación ahondaremos en forma más extensa en estas dos

herramientas.

2.5 Portal PHP Nuke Open Source.

2.5.1 Introducción a PHP Nuke.

PHP-Nuke es un sistema automatizado de noticias especialmente diseñado para ser usado

en Intranets e Internet. El administrador tiene el control total del sitio web, los usuarios
31

registrados, y un conjunto de herramientas poderosas para mantener una página web activa

e interactiva usando bases de datos.

Es posiblemente el programa más popular desarrollado en PHP, muchos sitios lo utilizan,

sin duda soluciona un problema complejo, como es gestionar muchos tipos de contenidos.

Es uno de los mejores sistemas automatizados de noticias y manejador de contenido,

especialmente diseñado para ser usados en Internet. Su autor es Francisco Burzi, que es el

que mantiene el código y realiza todas las modificaciones que lleva el paquete original.

2.5.2 Principales características de PHP Nuke.

PHP Nuke posee muchas características, a continuación listamos las más importantes:

• Administración gráfica basada en Web.

• Sistema integrado de Banners publicitarios.

• Sistema de encuestas.

• Autenticación de alto encriptado.

• Opción de moderación para usuarios y administrador.

• Configurables y flexibles bloques HTML.

• Motor de Búsqueda incluido.

• Manejador de tópicos gráfico y flexible.

• Manejador de secciones con artículos.

• Manejo de páginas dinámicas.

• Soporte multilenguaje (23 idiomas soportados).

• Motor de Búsqueda por categorías.


32

• Código 100% PHP.

2.5.3 La licencia de PHP-Nuke.

PHP-Nuke es un sistema Open Source, lo cual implica cero costo, y a su vez un libre uso de

sus códigos se acoge a la licencia GPL, lo que nos permite obtener su código fuente y

modificarlo para adaptarlo a nuestras necesidades siempre que respetemos dicha licencia.

Una copia de la licencia se encuentra en http://www.gnu.org.

En la actualidad el autor del software baraja la opción de que Nuke, las futuras versiones,

sean comercial. Es sólo una posibilidad, aun no se encuentra información concreta al

respecto.

2.5.4 Evolución de PHP Nuke.

En un inicio PHP-Nuke estaba orientado a entornos Linux, el proyecto comenzó siendo el

sistema utilizado para un sitio llamado Linux Preview. Con el tiempo se ha ido adaptando a

los usuarios Windows debido, sobre todo, a que Apache, PHP y MySQL han sido portadas

a dicha plataforma. La primera versión de PHP-Nuke fue en Junio del año 2000, era la

versión 1.0. La versión 2.02 apareció en Julio del mismo año. En Agosto se lanzan las

versiones 2.5 y 3.0. Las versiones 3.5 y 3.6 salen en Septiembre. En Octubre saldría la

revolucionaria 4.0, junto con las actualizaciones 4.2 y 4.3. Un año después de la primera

versión, saldría la actual serie, PHP-Nuke 5.0, llena de novedades. En noviembre aparece la

versión 5.3 que trae, como novedad más destacada, la abstracción de la base de datos. La

versiones 5.3.1 sale en noviembre y 5.4 en enero 2002. Así PHP Nuke evoluciona de forma
33

rápida, hasta llegar a la actual versión ocupada en esta aplicación la versión 7.4 se

considera una reestructuración de las anteriores, la novedad que trae es que ahora el sistema

es totalmente modular.

2.5.5 Seguridad de PHP Nuke.

2.5.5.1 Encriptación de Password.

PHP Nuke para hacer más seguro el acceso al portal de los usuarios registrados, guarda en

la base de datos con un tipo de protección esta información de ingreso (usuario-password).

Estos campos se guardan encriptados en la base de datos, esto consiste en que el usuario

cuando se registra en el portal, el sistema realiza un cifrado de la contraseña proporcionada

por éste, antes de almacenarla en la base de datos.

En PHP se utiliza la función MD5 (Message Digest 5), que es una función hash irreversible

(de un sólo sentido) , es decir, encripta el password tecleado por el usuario y es imposible

que partiendo desde la cadena encriptada se vuelva a la contraseña origen. Por esto mismo

no hay problema de que alguien pueda acceder al campo encriptado de la base de datos.

Esta función es la que incluye PHP Nuke.

Como en la base de datos se guarda la contraseña encriptada, cuando un usuario quiere

acceder, habrá que realizar una comparación entre el password que introduce encriptado en

MD5, y lo que tenemos en la base de datos, (que es la contraseña encriptada en MD5), si

coincide se le permite el acceso, si no, se rechaza.


34

2.5.5.2 Backup Base de Datos.

Toda la información que se publique es respaldable. PHP Nuke trae un sistema de Backup.

Se tiene la posibilidad de realizar backups de la base de datos utilizada , todas las veces que

se estime necesario. De este modo en caso de actualizaciones al sistema o del servidor de

datos, se tendrá la base de datos actual, respaldada tanto en estructura como en datos, para

cargarla en caso de ser necesario.

2.5.5.3 Vulnerabilidades de Seguridad.

Se han descubierto varias vulnerabilidades en PHP-Nuke (versiones 7 y anteriores) que

pueden ser explotada por usuarios malintencionados para realizar ataques de inyección

SQL.

La vulnerabilidad descubierta se debe a la falta de filtrado adecuado del parámetro

'querylang' en el módulo Top antes de ser utilizado en peticiones SQL. Esta circunstancia

puede ser explotada para manipular peticiones de este tipo e inyectar código SQL arbitrario.

Gracias a esta técnica se podría, por ejemplo, acceder a los hashes md5 de las claves de

usuario de los administradores.

Si bien el problema ha sido confirmado en todas las versiones 6 y en las 7 hasta la versión

7.2 No se descarta que pueda afectar a otras.

La versiones 7.3 ya trae incorporado un parche de seguridad que soluciona en parte el

problema, además se trabaja en las futuras versiones.. Se recomienda filtrar con un proxy

peticiones maliciosas o bien modificar el código para filtrar adecuadamente las entradas a

dicho parámetro.
35

2.5.6 Instalación y configuración de Nuke.

Requisitos para el uso de PHP-Nuke.

Para poder utilizar PHP-Nuke, se necesita un servidor que permita el uso de PHP y una

base de datos. Se requiere MySQL por ser la utilizada en el desarrollo de PHP-Nuke,

aunque se puede utilizar PostgreSQL, ODBC, ODBC Adabas, Sybase, Interbase. Lo más

común es contar con un servidor Web Apache.

El motor de base de datos que se utilizó en este proyecto es MySQL. Esto es porque se trata

del más extendido y porque va a servir para cualquier versión de PHP-Nuke que se quiera

utilizar.

Después de tener instalados los distintos servidores que se requieren, la instalación de PHP-

Nuke se puede dividir en dos partes:

• Copiar los archivos necesarios para utilizar PHP-Nuke.

• Introducir las tablas necesarias dentro de la base de datos.

El paso previo a cualquiera de los dos anteriores es descomprimir el paquete PHP-Nuke que

se hayan descargado:

En Linux con las herramientas del sistema. Puede ejecutarse con:

gunzip PHP-Nuke-5.5.tar.gz && tar -xf PHP-Nuke-5.5.tar


36

Después de descomprimir el paquete, se tendrá una serie de archivos y dos directorios,

html y sql. Dentro del directorio html están los archivos necesarios para el

funcionamiento de la página. Estos archivos se deberán copiar al directorio dónde vayan a

residir los archivos de acceso mediante web. Lo normal es utilizar algún cliente de ftp o

SSH.

La configuración de la base de datos, reside en el fichero nuke.sql que se encuentra en el

directorio sql. Su configuración es idéntica bajo Linux o bajo Windows, aunque hay

algunos matices:

Para Linux sería: mysqladmin create nuke -u root -p

Luego pedirá la clave de administración de mysql. Luego se debe reiniciar MySQL, para

poder hacer uso de la base creada.

En Windows se debe ubicar en el directorio bin dentro de la ruta de instalación de

MySQLy la sintaxis sería:

mysqladmin create nuke

Aquí no hay necesidad de utilizar la clave. Luego se reinicia el proceso de MySQL.

Tanto para introducir las tablas en la base de datos como para el control y realización de

copias de seguridad, se puede utilizar el programa phpMyAdmin o MySql Front.


37

El archivo config.php es clave en la configuración de PHP-Nuke. En él residen todos los

parámetros que van a definir el sitio, desde el acceso a la base de datos hasta el aspecto que

va a tener el mismo.

Para que el sitio funcione correctamente se debe revisar las siguientes variables:

dbhost = "localhost": Esta es la dirección del servidor de base de datos, lo normal es que

esté en la misma máquina que PHP-Nuke, si se trabaja de modo local será localhost, y si es

desde el servidor indicamos allí la IP, por ejemplo 192.168.5.192 que es la IP del servidor

de la Escuela de informática de la Universidad.

dbuname = "root": Este es el usuario que tiene permiso para acceder a la base de datos, se

puede poner el administrador de MySQL o el usuario que tiene acceso.

dbpass = " portal": La clave de acceso a la base de datos.

dbname = "nuke": El nombre de la base de datos donde residen las tablas que va a utilizar

PHP-Nuke.

prefix = "nuke": Este es el prefijo de las tablas de la base de datos. Si se utilizó nuke .sql

sin modificar, será 'nuke'.

user_prefix = "nuke": El prefijo de la tabla de usuarios de PHP-Nuke. Éste servirá si se

tienen dos sitios hechos con PHP-Nuke y se quiere compartir los usuarios.
38

dbtype = "MySQL"; Aquí se indica el tipo de base de datos a utilizar.

El resto de opciones están accesibles desde el panel de administración de PHP-Nuke y

pueden ser editadas desde allí.

Nuke se desarrolló sobre MySQL, en la actualidad soporta más motores de bases de datos.

Una vez realizado esto, se tiene lista la instalación, y se puede acceder al sitio web. La

figura 1, muestra la imagen del portal instalado.

Figura 1: Página principal del portal Nuke instalado.


39

La administración de PHP-Nuke se hace, en su mayor parte, desde un panel de control

accesible desde un navegador. La parte que no se hace desde aquí es la de añadir nuevas

funcionalidades, puesto que requiere la copia de archivos y, ocasionalmente, la creación de

tablas en la base de datos.

2.5.7 Panel de Administración de Nuke

La figura 2 muestra el panel de administración de Nuke 7.4. Todas las funcionalidades del

sistema pueden ser administradas desde aquí. Es necesario logearse como administrador en

una primera instancia, para luego trabajar en el panel, cada icono representa las

funcionalidades de Nuke, accediendo a ellas se podrá editar, agregar o eliminar,

dependiendo del uso que queramos darle. Por ejemplo, se puede acceder al icono de

Editar Usuarios y desde ahí, otorgar permisos y privilegios a un usuario determinado.


40

Figura 2: Panel de administración de Nuke 7.4

2.5.8 El funcionamiento de PHP Nuke.

2.5.8.1 PHP Nuke se divide en dos interfaces:

1. La interfaz administración Esta interfaz corresponde al panel de administración

del portal Nuke, y sirve para que el administrador del sitio pueda configurar las

opciones del Portal en cuestión, crear, editar, y borrar elementos etc. En esta interfaz

el administrador del sitio encuentra todas las funcionalidades del portal y las
41

posibilidades de configurarlas. Los archivos que forman parte de la administración

del sistema son los que se incluyen en el directorio “admin” del paquete de Nuke.

Dentro de este se encuentran cuatro directorios principales: Case, Lenguaje, Links,

Módulos, que contienen los archivos necesarios para controlar todas las

funcionalidades en el panel de control, además contiene dos archivos; index, que es

el archivo principal y un archivo htacces de seguridad.

2. La interfaz Pública: Esta interfaz es la que el usuario o visitante ve y utiliza desde

el frontend (sitio público). Desde aquí se encuentra el módulo “tu cuenta” que

genera un espacio personal para almacenar el perfil del usuario. En primera

instancia necesita registrarse con un usuario y password, esto le permite tener los

permisos para acceder a la gran mayoría de funcionalidad que se establecen sólo

para los usuarios registrados, por ejemplo: descargas, diario de vida etc.

2.5.8.2 Administración de Usuarios en PHP Nuke.

Los grupos de usuario disponibles tienen diversos niveles del control de acceso. Aquí

encontramos tres grupos principales:

1. Usuario Registrado: Este grupo permite al usuario conectarse a la interfaz del

Frontend. Un espacio asignado denominado “tu cuenta”. Tiene privilegios como

publicar artículos, tener su diario de vida, descargas, entre otros. Posee un nombre

de usuario y password que le permite al sistema identificarlo a través del sitio.


42

2. Usuario Visitante: Este tipo de usuario corresponde a aquellos usuarios que visitan

el sitio, les permite ver contenido, pero no tiene acceso a su cuenta ni a menús

propios de los usuarios registrados.

3. Administrador: En esta categoría se encuentran:

• El súper usuario del sitio (llamado en Nuke administrador GOD): controla el

portal, tanto el diseño como el acceso del resto del usuarios. Es el encargado de

aprobar y reprobar contenidos, otorgar privilegios de acceso a los distintos

usuarios, activar o desactivar módulos, dentro de otras opciones.

• Autor: Es un tipo de administrador, creado por el super usuario y que tiene

ciertos permisos, esto le permitirá acceder con su password al panel de control,

sin embargo, este panel sólo desplegara las opciones a las que el administrador

GOD le autorizó, por ejemplo a contenidos y bloques, esto le permitirá a este

usuario ser el administrador de estas dos módulos.

2.5.9 Extendiendo PHP NUKE - Reglas de desarrollo de Módulos Compatibles.

2.5.9.1 Estructura de módulos.

Los módulos de PHP-Nuke están escritos en aplicaciones PHP que permiten manejar la

parte central del espacio Web. Por ejemplo, "News", "Forum", "Members List" etc. son

módulos.

Cada módulo, dependiendo de su propia complejidad, se estructura usando una parte para

los usuarios y otra para el administrador, en este lugar están los contenidos que se pueden
43

modificar o configurar. Todo se ejecuta desde el archivo modules.php, el cuál únicamente,

lleva a cabo el trabajo de autentificación y manejo de los derechos de acceso al módulo.

El archivo modules.php comprueba y verifica si el módulo está activado o no, y los

derechos de acceso. Este reduce mucho trabajo porque no es necesario insertar estos

controles en cada módulo que se desee crear.

El archivo funciona de la siguiente manera, por ejemplo, si el usuario accede al módulo

AvantGo, internamente el sistema llama al archivo modules.php. El archivo que será

buscado por defecto será el index.php que se encuentra dentro del directorio de AvantGo:

la ruta que muestra el sistema es la siguiente modules.php?name=AvantGo, luego verifica

con controles internos, si el usuario tiene acceso al módulo y de ser así lo despliega en

pantalla.

Si en su lugar, se desea llamar a una página php diferente del index.php, (por ejemplo,

print.php), la cadena que se debe pasar es : modules.php?name=AvantGo & file=print.

Esta es la variable archivo con el valor (print) que corresponde al nombre del archivo que

se quiere cargar, sin la extensión .php. Dentro de la carpeta modules/nombre_del_módulo

hay también una subcarpeta llamada "language". De esta forma, se gestiona de forma fácil

y rápida la funcionalidad multiidioma dentro de los módulos.

En resumen, ,las líneas de modules.php trabajan de la siguiente forma:

• Se incluye mainfile.php.

• Se verifica que el módulo esté activo.


44

• Se verifica si la cadena lleva un nombre de archivo diferente de index.php.

• Se verifican los permisos del módulo (si todo el mundo puede verlo, o sólo los

usuarios registrados, o sólo el administrador).

2.5.9.2 Creando Módulos Compatibles.

Crear un Módulo en PHP Nuke implica:

• Crear archivos PHP para los usuarios, en la parte pública de la página.

• Crear una interfaz de administración.

• Crear las tablas necesarias en la Base de Datos.

• Verificar que todo lo que se ha creado cumple con las reglas de desarrollo de PHP-

Nuke.

2.5.9.3 Reglas de desarrollo de Módulos Compatibles.

Para comenzar se deben organizar los documentos de la siguiente forma:

- Los módulos deben estar incluidos en la carpeta modules/nombre_modulo en la parte

pública.

- Las Interfaces del módulo en la parte de administración deben ubicarse en la carpeta

admin/modules.
45

1. El archivo principal del módulo, incluido en modules/nombre_modulo se llamará

index.php.

2. Las tablas en la sintaxis de php son identificadas por ‘prefix’. Por ejemplo, las páginas de

Nuke serán identificadas con "$prefix."_pages, donde $prefix tomará el valor que el

archivo config.php marque por defecto.

3. La localización de las imágenes o enlaces debe empezar desde la raíz de la carpeta html y

no desde la carpeta modules/nombre_modulo porque los archivos incluidos en ella, están a

su vez incluidos en un archivo ubicado en la raíz de la carpeta html, llamado modules.php

4. Para manejar de forma óptima la función multiidoma se crean algunos textos y/o

abreviaturas que deben insertarse en archivos dentro de la carpeta "language" de cada

módulo. Todo su contenido será automáticamente traducido.

2.5.9.4 Creación de un módulo en la sección de de administración.

Como se mencionó anteriormente el sistema PHP Nuke se divide en dos interfaces, la de

administración y la de los usuarios. Cada vez que se necesite agregar o crear un nuevo

módulo, se deberá agregar un módulo en la parte de administración que permita gestionar

este módulo, para ello se crea un directorio en la ruta admin del paquete de Nuke. En este

módulo se debe incluir la administración de módulo que se esta creando, si en caso de no

existir parte de administración del módulo nuevo, este paso se omite.


46

En el directorio de administración del módulo se necesita crear los archivos que se

requieren, en los directorios principales, estos son:

• admin/case.

• admin/links.

• admin/modules.

La administración, como se ve en la lista anterior, contiene 4 subdirectorios (links,

language, case, modules) que gestionan los diferentes módulos de administración. El

directorio que recoge los archivos es modules/admin/. La carpeta admin/links se encarga de

decir qué módulo de administración será utilizado y la posición de un idioma en la

administración, para un módulo determinado.

Ejemplo (Administración para el módulo FAQ):

if (($radminsuper==1) OR ($radminfaq==1)) {

adminmenu("admin.php?op=FaqAdmin ", "" _FAQ." ", "faq.gif");

Este módulo:

• Verifica los derechos de administración (puede establecer si puede ser visto por el

super administrador o un usuario).

• Envía un "CASE" (op=FaqAdmin) que indica al archivo admin.php (que incluye

todos los módulos de administración) el módulo a llamar, asocia un valor para

traducir la palabra "FAQ" y asocia una imagen para la administración gráfica

(faq.gif). La carpeta admin/case sirve para definir el módulo que será usado en cada
47

caso específico. Esto es importante cuando, usando el mismo archivo de

administración, se necesita interpretar más operaciones.

Ejemplo usando una declaración CASE:

case1 = insert

case2 = cancel

etc...

Esto permite ver que módulo será utilizado para verificar la condición del CASE. Por

ejemplo, en el módulo FAQ hay muchos ‘cases’, aquí se muestran los dos últimos:

case "FaqAdmin":

case "FaqCatGo":

include ("admin/modules/adminfaq.php");

break;

Ambas declaraciones CASE llaman al archivo adminfaq.php, pero se utilizan para

diferentes operaciones. La primera llama al archivo con la escena por defecto, la segunda,

da el visto bueno para insertar una nueva categoría..

Esto sucede a través de una cadena como esta: "admin.php?op=FaqAdmin" en el primer

‘case’ y "admin.php?op=FaqCatGo" en el segundo. Ahora se necesita crear los siguientes

archivos:

• admin/modules/modulo1.php.

• admin/case/case.modulo1.php.
48

• admin/links/links.modulo1.php.

Para crear el archivo dentro de la carpeta modules (modules/modulo1.php) se debe tener

una estructura de este tipo:

• Parte inicial del módulo (parecida en todos los módulos)

• Definición de las funciones necesarias.

• Definición de los ‘cases’ en orden para llamar a varias funciones en el módulo de

administración.

• Parte final del archivo.

La sintaxis de la parte inicial del archivo es la siguiente:

<?php

if (!eregi("admin.php ", { die ("Access Denied"); }

$result = sql_query("select radminsuper, admlanguage from "$prefix."_authors to where

aid=' $aid '", $dbi);

list($radminsuper, $admlanguage) = sql_fetch_row($result, $dbi);

if ($radminsuper==1)

En este ejemplo específico, el módulo podrá ser manejado sólo por el súper administrador

porque el control es sólo para: if ($radminsuper==1).

Esta parte del archivo controla los derechos de administración para cualquiera que acceda,

tiene un control sobre el idioma que se utiliza y un control sobre los derechos del
49

administrador. Un administrador podría tener sólo derechos parciales de administración en

módulos que puedan ser manejados únicamente por el súper administrador.

Activando los derechos sobre dos niveles en los nuevos módulos no es fácil, se debe

especificar en la tabla nuke_authors un nuevo campo que designa los derechos, después

modificar admin/modules/authors.php añadiendo el ‘checkbox’ para los derechos del nuevo

módulo y modificar las correspondientes consultas UPDATE.

La parte central, son las funciones de gestión y los casos que deben ser comprobados. Hay

un par de reglas importantes a seguir en la construcción de funciones de administración:

Se debe incluir un ‘header’ al principio de la función y un ‘footer’ al final:

• include("header.php");

• include("footer.php");

Se deberá incluir la función GraphicAdmin(); immediatamente después del ‘header’. Así

desplegará la barra de navegación que encabezará a todos los otros enlaces de

administración.

Las funciones necesaria en este nivel son:

• Exponer los registros de la base de datos.

• Selección del registro e inserción en un campo de texto modificable.

• Modificación del registro a través de la inserción en la base de datos del valor.

modificado en el campo de texto.


50

Es muy importante recordar los siguientes aspectos:

1. Las variables que se insertan serán comprobadas.

2. El valor chequeado en la afirmación CASE, pasa a través de un campo oculto de

formulario.

En la página de definición de los ‘cases’, se recogen los ‘cases’ incluidos en el archivo

admin/modules/modulo1.php y se ubican dentro del archivo admin/case/case.modulo1.php.

Las dos últimas cosas que se deben hacer son la compilación del archivo

admin/links/link.modulo1.php y la creación del módulo de idioma.

El archivo de idioma de la sección de administración es común para todos

(admin/language), los diferentes idiomas deben añadirse siempre que se necesiten.

Se recomienda usar como guía uno de los módulos que vienen con el portal, como

referencia de sintaxis de la funciones a agregar y para seguir un orden, en cuanto a la

programación de los códigos php se estila usar un código ordenado indentado, de clara

lectura, utilizar las variables globales del portal y mantener una relación con los códigos

originales.
51

2.6 Portales Mambo CMS Open Source.

2.6.1 Introducción a Mambo CMS.

Mambo es uno de los gestores de contenidos más famosos en la actualidad. Es un sistema

de administración de contenido, con el cual se puede manejar un sitio Web sin necesidad de

saber programación en HTML o PHP. El usuario sólo se ocupa de la información que desea

publicar en su sitio Web; el sistema de Mambo se ocupa de todos los detalles técnicos y

administrativos. Además de ello, al ser un sistema de uso libre y gratuito resulta económico

en relación a sistemas similares programados a medida. Decenas de expertos en

programación han desarrollado este proyecto y miles en el mundo trabajan constantemente

para mejorarlo. El servidor de sitio Mambo es diferente a los modelos normales de portales.

Mambo ha sido desarrollado para el público de masas. Es administrable y confiable.

Los componentes de Mambo son aplicaciones que funcionan conjuntamente con el núcleo

del sistema y se integran dentro del mismo tanto en su funcionamiento como en su

administración. Algunos componentes están relacionados a las funciones principales de

Mambo, como por ejemplo la gestión de contenidos o el manejo de usuarios.

2.6.2 Información acerca de Mambo.

Las Principales características de Mambo son:

• Engine del Sitio completamente manejada por bases de datos usando PHP/MySQL.

• Modelo de seguridad para logins multinivel tipo usuario/administrador.

• Noticias, secciones de productos o servicios totalmente editables y manejables.


52

• Las secciones de Temas pueden ser agregadas para que los autores sean

contribuidos.

• Formatos de página totalmente configurables incluyendo las tablas de menú

izquierdas, derechas y centrales.

• Subir al servidor archivos de imágenes directamente desde su Browser para que

puedan ser exhibidas en cualquier parte de su sitio.

• Foros/encuestas/votaciones dinámicas para que después puedan ser analizados los

resultados.

Los Requisitos para tener un sitio Mambo son:

• Un dominio registrado y activo.

• Una cuenta activa en un servidor de hosting asociada a su dominio, con servidor de

datos y motor de base de datos.

• Una idea del proyecto, de cuál es el objetivo de su sitio Web, con qué secciones

constará, cómo estará organizada la información, etc.

• Tener material digitalizado (textos e imágenes), para editar y armar el site.

La Licencia GNU/GPL de Mambo Opensource.

El software Mambo CMS es de uso gratuito, y de libre distribución (OpenSource), bajo

licencia pública general (GNU/GLP).


53

2.6.3 Mambo - Seguridad.

2.6.3.1 Vulnerabilidades en Mambo.

Una vulnerabilidad recién detectada en las ultimas versiones de Mambo, consiste en que se

puede introducir código infectado al intentar abrir el archivo Tar.php directamente en un

navegador. Esta vulnerabilidad radica en que el archivo Tar.php no está protegido como es

usual y puede ser abierto directamente en un navegador. La vulnerabilidad es sólo válida

para sitios en los que el parámetro PHP register_globals=on está habilitado. Algunos sitios

podrían resultar inmunes dependiendo si su configuración permite o no la inclusión de

archivos remotos vía PHP. Constantemente están siendo publicados parches de seguridad

para las versiones liberadas, que deben ser instalados como medida preventiva para

compensar estas vulnerabilidades.

2.6.3.2 Backup Base de Datos.

En Mambo la información que se publique es respaldable. Esto gracias a un avanzado

sistema de Backup, se tiene la posibilidad de realizar backups de la base de datos utilizada

por Mambo (donde residen todos sus contenidos) todas las veces que sea necesario. Así se

previene de la pérdida de información que eventualmente puede surgir por problemas en el

servidor o equívocos en la actualización de contenidos.

Cuando algo sale mal, se restaura el sistema con el archivo de backup, y el sitio estará

completamente restablecido nuevamente al estado anterior.


54

Existe otro backup que es el de los archivos de Mambo (anteriormente hablamos del

backup de la base de datos), este backup se realiza una sola vez, cuando se construye el

sitio. Este backup de archivos puede guardarse en disco duro del PC (o en un CD, o en

cualquier dispositivo de almacenamiento de datos). En casos hipotéticos en que el servidor

tenga problemas o se requiera realizar actualizaciones de éste, se puede subir nuevamente el

sitio en cuestión de minutos a un nuevo servidor (o al mismo), restableciendo el sitio de

manera total.

2.6.4 Instalación y configuración de Mambo 4.5.2.

Pasos Previos a la Instalación:

1. Descargar los archivos de Mambo 4.5.1 o 4.5.2. Se pueden bajar desde el sito en español

www.mambohispano.org, donde se encuentra la versión Superpack Mambo 4.5.2 en

español (traducida por el webmaster del sitio). La versión oficial en inglés se descarga

desde http://mamboserver.com/cat/Download_Mambo/ .

La versión 4.5.2 aún no está disponible en español, por lo que se recomienda la versión

Superpack Mambo 4.5.1. Para instalar ambas versiones (4.5.1 o 4.5.2) la forma es muy

similar. Sólo hay dos diferencias entre ambas: El instalador de la versión 4.5.2 está en

inglés y la asignación de permisos se puede realizar mediante el mismo instalador de

Mambo (esto se explicará más adelante) .

2. Descomprimir el paquete de mambo con el software de descompresión. El paquete

incluye: Directorios: administrator, cache, components, downloads, editor, etc.


55

Archivos: CHANGELOG, configuration.php-dist, globals.php, htaccess.txt, además

incluye un directorio llamado installation, etc.

3. Subir todos los archivos al servidor, este debe previamente tener instalado PHP4, Apache

y MySQL. (Si se trabaja en forma local (localhost ) los pasos de instalación de mambo son

similares, sólo se debe cambiar la URL del sitio)

4. Crear la Base de datos MySQL, Dependiendo del tipo de cuenta y/o servidor de hosting

que se este utilizando. Si la cuenta posee un panel de control (Cpanel, Plesk, u otro

cualquiera) donde gestionar todas las tareas mediante las herramientas que nos provee el

panel de control, se puede crear la base de datos y el usuario de la misma con la respectiva

contraseña. Del mismo modo si se trabaja en forma local.

Si el servidor no posee panel de control con esta posibilidad, se deberá pedir al

administrador del servidor que cree la base de datos MySQL, y anotar los datos de la

cuenta, por ejemplo:

host: 192.168.5.192

user: mambo

pass: mipassword

Instalación de Mambo.

Una vez de haber realizado todos estos pasos previos se comienza con la instalación

propiamente tal, para ello mambo trae un instalador web fácil de usar. En el navegador se
56

ingresa la URL del dominio donde se han subido los archivos de Mambo por ejemplo:

http://www.midominio.com/Mambo452/installation/

La pantalla inicial de la instalación se carga de forma automática al digitar en la url la ruta

de donde se tiene el paquete mambo. Estas páginas de instalación se encuentran dentro del

directorio “installation , mencionado anteriormente, inicialmente pregunta el idioma, y

comienza a chequear las características del servidor.

En esta instancia el sistema ejecuta un script que comprueba los requerimientos del sistema

operativo del servidor, permite ver si el servidor tiene activos los requerimientos mínimos

que requiere mambo.

• La versión del intérprete PHP.

• Los módulos necesarios de PHP (que estén instalados y activados) para el correcto

funcionamiento de Mambo.

• Configuration.php (archivo importante donde se guarda la configuración global del

sistema): Se comprueba que esté escribible, es decir, que tenga asignados los

permisos necesarios para que pueda escribirse datos en él.

• Ruta de sesión: Se comprueba que el directorio asignado por defecto a php para

guardar y administrar las sesiones sea escribible (Atención: si esto llega a estar no

escribible se debe consultar al administrador del servidor, para solucionar este

problema).
57

Como se ve en la figura 3 la imagen del pre- instalador de mambo revisa las características del

servidor y requiere permisos de escritura para ciertos archivos.

Figura 3: Imagen Pre- instalador de Mambo.

Configuración recomendada: En este paso el script indaga en php.ini, que es el fichero

de configuración del intérprete PHP instalado en el servidor, para comprobar que esta

configuración tenga unas directivas mínimas sin las cuales Mambo no funcionará

correctamente. Algunas de ellas pueden bloquear algunas funcionalidades si no coincide lo

"recomendado" con lo "actual", por ejemplo si el Modo Seguro está activado no podrán

abrirse archivos remotos desde el servidor o no podrán hacerse uploads de archivos desde

los scripts de mambo.

Permisos sobre carpetas y archivos: Para que todo funcione correctamente los archivos

que se listan en el pre-instalador deberán aparecer como escribibles de lo contrario se


58

necesita cambiar esto antes de continuar. Luego aceptar la licencia, términos y condiciones

GNU / GLP y presionar siguiente. La página de instalación de mambo es muy sencilla de

seguir viene enumerando cada paso que se debe ejecutar para dejar el portal funcionando

Paso 1 del instalador de Mambo: Creación de la base de datos MySQL. Con los datos que

de la base de datos creada previamente (host, usuario y contraseña) se completa los campos

que se requieren.

El prefijo que se asigna por defecto a las tablas de Mambo es "mos_" , y se recomienda no

cambiar este prefijo aunque sea sólo una convención.

La figura 4 ilustra el paso 1 del instalador.

Figura 4: Imagen Paso 1 Instalador de Mambo.


59

Se recomienda seleccionar la opción instalar datos de ejemplo para que se agreguen datos

a las tablas (noticias, artículos, instantáneas, etc) que luego ayudarán a entender cómo

funciona el sistema de administración de Mambo y cómo se estructura la información

almacenada en él. La versión de Mambo 4.5.2 tiene la posibilidad de asignar los permisos

desde el mismo instalador de Mambo.

Paso 3 del instalador de Mambo. El script instalador detecta automáticamente los valores

de los campos URL y Ruta: La URL es la dirección que habrá que ingresar en el navegador

para acceder al nuevo sitio con Mambo.

A continuación debe escribirse una dirección de E-mail donde llegarán todas las

notificaciones del sistema y los usuarios al superadministrador del sitio, también debe

escribirse la contraseña.

Paso 4 del instalador de Mambo. Finalización. Los datos de usuario y contraseña que se

muestran en este paso son los del sitio mambo, no se deben olvidar. Luego estos datos no se

podrán recuperar. La contraseña se encuentra encriptada. Muestra un mensaje de alerta

con respecto a la carpeta de instalación.

A continuación se elimina la carpeta "Installation" del servidor o se renombra, este paso es

necesario antes de ver el portal.

El archivo configuration.php.

Suelen ocurrir problemas con los permisos necesarios a este archivo, en el último paso de la

instalación aparece un recuadro con el código del archivo configuration.php. Este archivo
60

es muy importante y sin él Mambo no funcionará. Por ello, si surgen problemas sobre el

final de la instalación se debe comprobar que este archivo exista (no confundir con

configuration.php-dist) en el directorio raíz. Además de existir, debe tener bien asignados

los parámetros.

Ya esta instalado el portal. Para acceder a el se debe ingresar en:

http://www.midominio.com/Mambo/, y para administrarlo, hay que ingresar en la sección

de administración con el nombre de usuario y contraseña que se han creado anteriormente.

En la figura 5 se muestra la interfaz del portal instalado con el template seleccionado.

Figura 5: Interfaz principal de Mambo OS.


61

El diseño del sitio se ve según el templates seleccionado, se pueden cargar nuevas plantillas

cambiarlas desde el menú de administración.

2.6.5 Componentes de Mambo.

Las funcionalidades de los componentes de Mambo.

Los componentes son aplicaciones que funcionan conjuntamente con el núcleo del sistema

Mambo y se integran dentro del mismo tanto en su funcionamiento como en su

administración. Algunos componentes están relacionados a las funciones principales de

Mambo, como por ejemplo la gestión de contenidos o el manejo de usuarios. Normalmente

se designa el nombre de los componentes de mambo con el prefijo "com_" (así como en los

módulos es "mod_").

Existen también otros componentes que son adicionales y brindan distintos servicios o

funcionalidades extra. Estos componentes se bajan desde sitios de temática Mambo y se

instalan desde el panel administrativo.

El funcionamiento de los componentes de Mambo se divide en dos interfaces.

1 La interfaz administrativa: Esta interfaz se integra al panel de administración de

Mambo, y sirve para que el administrador del sitio pueda configurar las opciones del

componente en cuestión, crear elementos, editar, borrar, etc. Por ejemplo: en el

componente poll (encuestas), el administrador crea una encuesta, la pregunta de esa

encuesta, luego crea las distintas respuestas que se darán como opciones al usuario

que responda esa pregunta, etc. Después de ello puede publicarla, editarla, borrarla, o

crear nuevas encuestas. Los archivos de los componentes que forman parte de la
62

administración de los mismos el sistema Mambo los instala en el directorio

public_html/sitiomambo/administrador/components/.

2 La interfaz de usuario: Esta interfaz es la que el usuario o visitante ve y utiliza

desde el frontend (sitio público). Por ejemplo en un componente de clasificados, el

usuario puede ver los anuncios publicados por otros usuarios y también publicar o

editar sus propios avisos.

Los archivos de los componentes que forman parte de esta interfaz de usuario el sistema

Mambo los instala en el directorio public_html/sitiomambo/components/.

Hay un grupo de componentes que vienen ya con la instalación básica de Mambo, los más

importantes son:

• El componente de contenidos com_content.

• El componente de la página principal com_frontpage.

• El componente de contacto com_contact.

• El componente de administración de banners com_banners.

• El componente de encuestas y votaciones com_poll.

• El componente de gestión de enlaces com_weblinks.

• El componente de sindicación de noticias (hacia y desde otros sitios) com_newsfeeds

y com_rss.

• El componente del wrapper com_wrapper (permite ver y navegar una página Web

cualquiera dentro de nuestro sitio Mambo).

• El componente del buscador interno com_search


63

2.6.6 Mambo y sus principales características para realizar sitios Web y portales.

Características importantes de un sitio Web construido con Mambo.

• Navegación editable (puede crearse el menú o barra de navegación a gusto)

Explorador de Imágenes para subirlas al servidor y usarlas en todo el sitio.

• Interfaces visuales totalmente modificables: la posición de módulos puede

acomodarse como se prefiera.

• Encuestas / Votaciones dinámicas.

• Alimentadores de Noticias (RSS).

• Inclusión de publicidad en el sitio usando el Administrador de Banners

Estadísticas de visitas al sitio con información de Exploradores, Sistemas

operativos, noticias y artículos más vistos.

Características de las página Web o documento del sistema:

• Automatización en la publicación: gracias a este sistema de publicación se puede

programar las fechas de publicación y caducidad de distintos documentos, páginas,

enviar artículos viejos a un "archivo" de almacenamiento, etc.

• Formatos de lectura: (opcional) cada documento o página web que se cree, el

sistema automáticamente la convierte: en formato PDF, versión imprimible, y XML.

• Envío por E-mail: (opcional) los usuarios del sitio podrán enviar automáticamente a

un amigo por e-mail cada documento o artículo publicado.

• Valoración de contenidos: (opcional) Los visitantes o usuarios del sitio podrán votar

la calidad de lo publicado.
64

• Comentarios: (opcional) Los usuarios podrán comentar sus opiniones o expresar sus

inquietudes en la misma página.

A continuación se presenta una lista de las principales actividades que permite realizar

Mambo.

• Secciones del Website: Permite crear secciones, publicarlas o no, editar sus

contenidos, especificar nivel de usuarios que tienen acceso a ellas, etc. Desde la

interfaz administrativa de Mambo se controlan todas estas posibilidades.

• Publicar Contenidos: Permite administrar contenidos principales, novedades,

artículos. Títulos, textos e imágenes se editan desde un sencillo editor HTML que le

permitirá formatear los textos con los estilos deseados en forma similar de como lo

haría en un editor de texto como MS Word.

• Administrar módulos y componentes: Permite la posibilidad de instalar,

desinstalar y administrar componentes y módulos, por ejemplo galerías de fotos,

carritos de compra, sistemas de votaciones, publicación de noticias por parte de los

usuarios, foros, etc.

• Administrar usuarios: Desde la interfaz administrativa también se controla

completamente a los usuarios del sitio, pudiendo especificar niveles jerárquicos,

editar perfiles, censurar, dar permisos de publicación, etc. Los niveles de usuarios

son: Súper administrador, administrador, manager, Publisher y usuario registrado.

Podrá también enviar e-mail masivos a todos los usuarios, entre otras cosas.
65

• Cambiar el diseño del sitio: Es fácil cambiar el diseño del sitio, gracias al sistema

de templates que utiliza Mambo que se instalan y luego se seleccionan desde la

interfaz administrativa.

Teniendo en cuenta primeramente el sitio público, el aspecto visual de los sitios construidos

con Mambo es muy variado, y las alternativas que ofrece este sistema son múltiples.

El sistema Mambo permite cambiar el diseño del mismo sin necesidad de tocar para nada

sus contenidos. Adicionalmente tiene la posibilidad de tener preparados varios diseños y

cambiarlos desde el panel de control, dependiendo la ocasión, por ejemplo tener un diseño

para cada semana, o cada estación del año.

Cada diseño puede personalizarse a gusto, colocar un logo propio, tipografía, colores,

tamaños de fuente, imágenes de fondo, etc. Puede manipularse el template para cambiar

totalmente su aspecto, también se pueden agregar banners o presentaciones en Flash.

El sitio, según el trabajo, puede verse desde sencillo hasta un complejo portal profesional.

2.6.7 Administración y utilidades de Mambo.

La administración de Mambo es, para sus acciones básicas, sencillo. Estas acciones pueden

ser actualizar páginas, agregar nuevas, editar o eliminar contenidos cambiando imágenes,

textos, links, etc.

La persona que administre el sitio no necesitará tener ningún conocimiento avanzado de

programación. Sólo basta poseer un manejo básico de PC y de Internet. Como la gestión


66

de contenidos es por medio del protocolo HTTP, es decir, utilizando simplemente un

navegador web y una conexión a Internet, se podrá actualizar el sitio desde cualquier lugar.

Panel de Administración de Mambo.

El panel consta de un menú principal dentro del cual cada botón posee un menú

desplegable con más opciones. Luego una barra de información que brinda información

sobre:

• La sección sobre la cual se está trabajando.

• El nombre del usuario que se encuentra trabajando.

• El número de mensajes que se tiene de otros administradores designados.

• El número de usuarios actualmente online.

Como se ve en la figura 6 de interfaz de administración.

Figura 6: Interfaz de Administración de Mambo.


67

La barra de herramientas provee al administrador de distintos instrumentos para accionar

la creación y manipulación de los contenidos. No solamente contenidos sino también

cualquier elemento de Mambo que se pueda editar, crear o configurar, como por ejemplo

templates, menús, etc. Los íconos más utilizados en la barra de herramientas son los que

muestra la imagen de la figura 7:

Figura 7: Listado de iconos del panel de administración de Mambo.

El espacio de trabajo es el área que sirve para seleccionar los elementos con los cuales se

quiere trabajar y editar (o ingresarles contenidos), también para fijar posiciones, etc.

Administración de Usuarios.

Los grupos de usuario disponibles son fijos pero tienen diversos niveles del control de

acceso. En primer lugar, hay cuatro grupos de Frontend (sitio Web público) disponibles:
68

1) Usuario Registrado 'Registered'- este grupo permite al usuario conectarse a la

interfaz del Frontend.

2) Autor 'Author' - este grupo permite que un usuario envíe contenido, generalmente a

través de un enlace en el menú del usuario.

3) Editor - este grupo permite que un usuario envíe y edite cualquier ítem de contenido

en su Web site.

4) Publisher - este grupo permite que un usuario envíe, corrija y publique cualquier

ítem de contenido en el Web site.

Hay tres grupos de administrador a los cuales se permite el acceso a la sección de la

administración de Mambo (Backend):

1) Encargado 'Manager' - este grupo permite el acceso a la creación de contenido y a

la otra información del sistema.

2) Administrador - este grupo permite el acceso a la mayoría de las funciones de la

administración, por ejemplo, cambiar plantillas, agregar módulos, y componentes

etc. Pueden administrar a pocos usuarios (editores y usuarios) pero no pueden crear

a otros administradores.

3) Super Administrador - este grupo permite el acceso a todas las funciones de la

administración. El superadministrador puede crear cualquier otro tipo del usuario

(excepto otro super administrador).


69

Utilidades adicionales, servicios o aplicaciones que permite tener Mambo.

Mambo posee muchas funcionalidades, además, pueden instalarse en Mambo componentes

o módulos adicionales que funcionan dentro del sistema, se integran adecuadamente, y

hacen más poderoso al CMS. Por ejemplo:

• Galería de imágenes.

• Libro de Visitas.

• Newsletter.

• Comentarios de usuarios.

• Carrito de compras o catálogo de productos.

• Foros, y FAQs.

• Soporte a clientes mediante sistema de tickets.

• Avisos Clasificados.

• Wrapper (esto permite ver sitios Web dentro del sitio hecho con Mambo).

• Mensajes personales (servicio de mensajería entre los usuarios y administradores

del sitio).

• Organizadores de documentos y gestores de bajadas.

2.6.8 Mambo y su posibilidad de Extensión agregándole Módulos Nuevos.

Mambo permite agregar extensiones al portal, estos son módulos o componentes desarrollados

para Mambo y descargados de sitios con esta temática, que agregaran funcionalidades al sitio o

potenciaran el portal. Para ello se necesita descargarlos y su instalación es relativamente

sencilla.
70

Se necesita tener instalada la librería Zlib (gestor de archivos comprimidos para subir a nuestro

servidor) para poder subir componentes, módulos y plantillas al sitio Mambo.

Se debe descomprimir en una carpeta del servidor los contenidos del zip que vienen en el

módulo, plantilla o componente que se desea instalar. Puede servir cualquier directorio aunque

el directorio 'uploads' es el recomendado y el que se ofrece por defecto.

Para instalar el pack de contenido, se debe entrar en el panel de administrador y seleccionar la

opción de instalación de módulos (o plantillas, según sea el caso).

Seleccionar la opción 'Install from directory' ó 'Instalar desde directorio'. En el campo de

texto se debe indicar la ruta física donde está el componente xml que se ha subido, es decir,

que es ahí donde se debe indicar la ruta para instalar el componente, módulo o plantilla:

Por ejemplo:

/usr/home/nombredesuaurio/www/uploadfiles/nombremoduloe.xml.

Una vez introducido estos datos esta la opción install o instalar. Luego informa si se ha

instalado correctamente.

Ahora si lo que se desea es crear una aplicación completamente de cero, hay ciertos aspectos

que se deben conocer.

Crear módulos nuevos implica:

• Desarrollar la aplicación en lenguaje compatible con mambo, php4 es el utilizado.

• Debe incluir las cabeceras de algún módulo que venga con el paquete original.

• Se debe crear los códigos php que permita, tanto usar como administrar el módulo, es

decir una interfaz pública y una interfaz de administración para el mismo.


71

• Se debe crear un archivo XML que contenga información básica de la aplicación (este

es necesario para ser subido el módulo al portal.).

2.7 Investigación de RSS y su uso en los Portales Web.

2.7.1 Noticias en Formato RSS Nueva Tecnología de Información.

El lenguaje de Internet para la creación de documentos electrónicos más conocido es el

HTML, que es con el que se define la estructura y contenido de una página web. Consta de

una serie de etiquetas (markups) predefinidas que permiten construir documentos que

contienen títulos, párrafos y listas de texto, tablas, imágenes y otro elementos para la

presentación de información. Como mejora del lenguaje HTML original surge XML que

además de pasar a ser "ascendiente" del HTML también da origen a otros lenguajes

XML, eXtensible Markup Language es un lenguaje de lenguajes (un metalenguaje) más

flexible y adaptable que el HTML y está diseñado para mejorar la funcionalidad de la Web.

Es utilizado para describir otros lenguajes que permiten construir documentos electrónicos.

XML describe la estructura del documento, pero deja a libre elección el nombre que

recibirá cada una de las etiquetas. El número de sublenguajes que pueden crearse a partir

del metalenguaje XML es ilimitado.

Uno de esos sublenguajes del XML es el actual XHTML, diseñado para sustituir el limitado

lenguaje HTML. Por tanto XHTML es la conversión del lenguaje HTML al mismo
72

lenguaje pero basado en XML, de modo que XHTML es básicamente el HTML conocido

hasta ahora pero adaptado a la estructuración de un documento XML.

RSS es simplemente XML dotado de una estructura idónea para presentar resúmenes de

contenidos. Éste código desarrollado en 1997 inicialmente por Radio Userland y Netscape,

quien lo incluyó en su sección My Netscape. Permite publicar metadatos acerca de los

contenidos de un sitio web. El nombre RSS también responde a "RDF Simple Syndication"

(RDF es el acrónimo de Resource Description Framework) y se utiliza para poner a

disposición de otros web o aplicaciones los contenidos más novedosos de un sitio. Su

estructura está pensada para compartir de forma sencilla titulares de noticias.

Hay diferentes versiones, la última versión es la llamada RSS 2.0 proporcionada por el

Berkman Center for Internet & Society (Harvard Law School). El autor es Dave Winer

(UserLand software y Berkman Center).

Por lo tanto un archivo RSS es un documento de texto compuesto por etiquetas acotadas

entre los símbolos mayor y menor que son similares a las utilizadas en el XHTML. RSS

corresponde a Rich Site Summary o Really Simple Syndication, y está diseñado para la

distribución (syndication en inglés) de noticias o información tipo noticias contenidas en

sitios web y weblogs.

Los archivos RSS comúnmente se llaman feeds RSS o canales RSS y contienen un resumen

de lo publicado en el sitio web de origen. Se estructura en uno o más ítems. Cada ítem

consta de un título, un resumen de texto y un enlace a la fuente original en la web donde se

encuentra el texto completo. Además puede incluir información adicional como el nombre
73

del autor o la fecha y la hora de publicación del contenido. Por tanto, cualquier fuente de

información susceptible de poder ser troceada en items (los mensajes de un foro, por

ejemplo) pueden distribuirse utilizando RSS.

Leyendo el archivo RSS de un sitio web es posible saber si se ha actualizado y con qué

noticias o textos, pero sin necesidad de acceder a sus páginas web. El archivo RSS contiene

además un enlace específico para cada ítem contenido en el feed que dirige a la página web

con el texto completo de la noticia.

Para leer los feeds o canales RSS es necesario utilizar un programa llamado agregador.

Este tipo de programas también se conocen como lectores de feeds o canales o agregadores

de noticias, entre otras variaciones

Los archivos RSS, a diferencia de los archivos XHTML, no son interpretados por los

navegadores web y al abrirlos lo que hacen es mostrar el código XML que compone el

archivo RSS. Los feeds o canales en formato Atom (nuevo formato RSS) son parcialmente

visualizados por los navegadores, pero mostrando un aviso de que el documento

corresponde a un feed y no a una página web. Para visualizar directamente un feed RSS es

necesario utilizar un programa lector o agregador de feeds.

Un lector o agregador de feeds es una aplicación local o basada en web que interpreta los

archivos RSS y visualiza su contenido.

Existe gran cantidad de programas lectores de RSS que se instalan en diferentes sistemas

operativos o incluso desde un navegador web mediante suscripciones personalizadas.


74

Lectores RSS

Nombre URL Sistema

Bloglines http://www.bloglines.com/ Web

Amphetadesk http://www.disobey.com/amphetadesk/ Web

NetNewsWire http://ranchero.com/netnewswire/ Mac OS X

News Fire http://www.newsfirerss.com/ Mac OS X

Sharp Reader http://www.sharpreader.net/ Windows

Feed Demon http://www.feeddemon.com/feeddemon/index.asp Windows

NewsGator http://www.newsgator.com/home.aspx Windows (Outlook)

Straw http://www.nongnu.org/straw/ Linux

Incluyendo varios feeds RSS en el agregador es posible leer una versión resumida o previa

de los contenidos de múltiples sitios web sin necesidad de visitarlas individualmente

excepto cuando se desee leer la versión ampliada de las noticias seleccionadas.

Las noticias llegan al usuario cuando éste inicia su programa lector de feeds RSS, en lugar

de que el usuario deba ir a leer las noticias a las diferentes fuentes o sitios Web donde se

publican. El uso de un lector de feeds supone un gran ahorro de tiempo y de incomodidades

cuando se es lector habitual de muchos sitios web distintos, ya que es posible revisar todos

los contenidos nuevos publicados en varias decenas de sitios Web distintos en

prácticamente el mismo tiempo que supondría consultar vía Web un único sitio.
75

2.7.2 RSS en portales CMS.

Actualmente, el RSS se ha popularizado mucho con la aparición de los Weblogs. Estos

diarios personales online suelen incluir un archivo RSS para que los lectores se suscriban y

se mantengan al día de las novedades publicadas.

Otros sitios más grandes como portales CMS se han unido al RSS para compartir sus

contenidos y novedades.

Un mismo sitio puede generar tantos feeds como desee. Los contenidos sindicados pueden

incluir titulares de artículos o noticias, descripciones, eventos, enlaces. Su uso está abierto a

la imaginación.

Los portales CMS utilizan RSS principalmente en sus contenidos (noticias) y foros, para

ello traen incorporado en su paquete original un archivo configurable y editable en php que

genera de forma dinámica los titulares de las noticias actuales del sitio. Este archivo se

personaliza a gusto del usuario.

Los portales además incorporan en su sitio, un lector de contenidos RSS. Esto es para

potenciar el espacio personal de los usuarios de la comunidad, beneficiando a estos

permitiéndoles revisar los titulares de otros sitios o portales del interés de estos, teniendo

acceso a todo en el mismo lugar.


76

2.8 Comparación de Mambo OS y PHP Nuke.

La primera opción es NUKE, de éstos encontramos dos tipos principales, PHP Nuke y

PostNuke. No hay grandes diferencias entre ellos. Son dos proyectos que nacieron de la

misma fuente. Ambos portales poseen muy buenas características.

Pueden instalarse mods (módulos, otros scripts) que permiten manejar skins, galerías de

imágenes entre otras cosas más. Ambos portales se integran perfectamente con phpBB.

PhpBB se refiere a un conjunto gratuito de paquetes basados en PHP, cuya función es la de

proporcionar fácilmente y con amplia posibilidad de personalización un servicio de foros.

PhpBB tiene una interfaz simple, proporciona un amplio soporte. Su completa

compatibilidad con SQL le hace ser compatible con la mayoría de servidores, y altamente

integrable en el sistema de noticias, además de ser código abierto.

Mambo y PHP Nuke han ganado muchos adeptos en Internet, son lo más utilizados. Si lo

que se quiere instalar es un portal funcional y fácil de administrar la solución más idónea

seria Php Nuke. En cambio si se desea potenciar es el diseño y la individualidad del portal

una solución adecuada seria Mambo.

En PHP Nuke existen múltiples versiones la Platinum, es la más votada por los cibernautas,

quizás se deba a que trae más módulos y funcionalidades. Aunque sea de gran tamaño es

cómoda de utilizar debido a que todo está pre-instalado. Todos estos portales, poseen

comunidades de desarrolladores que trabajan para corregirles defectos y agregarles

funcionalidades.

Los portales Nuke están desde hace tiempo y poseen gran cantidad de comunidades que

prestan soporte, el problema que se les critica es que están muy vistos y hay que trabajar un
77

poco con los skins y diseños para poder darles un aspecto no muy visto, pero hay mucha

gente que trabaja en ello y pueden conseguirse cosas novedosas.

Tabla comparativa.

La figura 8 corresponde a un extracto de la tabla original que se encuentra en el anexo

número 1. Esta tabla menciona las características básicas de las herramientas estudiadas en

el capítulo anterior correspondiente a Mambo CMS y PHP Nuke CMS, haciendo un

paralelo en sus requerimientos, soporte, características entre otros aspectos.

MAMBO CMS PHP NUKE CMS


Versión 4.52 7.4.1
Requerimientos
Costo Aproximado FREE FREE
Servidor Web Apache Apache / IIS
Licencia GNU GPL GNU GPL
MySQL, Postgres, mSQL, Interbase,
Base de datos MySQL Sybase
Lenguaje PHP PHP
SO Unix / Win Unix / Win
Soporte
Ayuda contextual NO NO
Foro y/o lista de correo SI SI
Trabajo en grupo
Aprobación contenido SI Limitado
Permisos por recurso Limitado Limitado
Características
Sindicación RSS RSS
Backup base datos SI SI
Gestión publicidad SI SI

Figura 8: Tabla comparativa Nuke/ Mambo.


78

2.8.1 Ventajas y desventajas de las herramientas estudiadas.

PHP– Nuke.

Las principales ventajas de PHP Nuke son las que se muestran en la siguiente lista:

§ Código de uso libre.

§ Permite crear una comunidad virtual en línea.

§ No requiere mayores conocimientos en programación por parte del administrador

del sitio.

§ Permite mayor funcionalidad al portal que otras herramientas similares.

§ Extensa comunidad de desarrollo, lo que permite mejoras y actualizaciones en

cortos plazo.

§ Permite entregar contenido atractivo auto – generado por los visitantes del sitio.

§ Permite interacción entre los usuarios, crea un espacio de intercambio.

§ Es una tecnología emergente pronta a expandirse a otras áreas. Por lo que sirve a

futuros trabajos de similar magnitud.

Las principales desventajas de PHP Nuke son las que se muestran en la siguiente lista:

§ Código un tanto complejo.

§ Los módulos existentes, no son siempre los que cubren las necesidades de cada

comunidad.

§ Diseños muy vistos debido a la masificación de Nuke.

§ Vulnerabilidades en algunos aspectos de Seguridad.

§ Poca flexibilidad en los diseños.


79

Mambo CMS.

Las principales ventajas de Mambo CMS son las que se muestran en la siguiente

lista:

• Código 100 PHP. Licencia GNU.

• Existen muchos diseños gratuitos disponibles para ser utilizados y personalizados

para cada caso, hasta lograr un aspecto que agrade al usuario.

• Pueden crearse diseños nuevos, logrando una total personalización de estilos.

• Adicionalmente, puede adquirirse templates comerciales de bajo costo, en cualquier

sitio que venda diseños para Mambo.

• Facilidad de instalación y configuración.

• Es una de las más prestigiosas herramientas Open Source. Ganó el premio a la

mejor solución Open Source 2005.

Las principales desventajas de Mambo CMS son las que se muestran en la siguiente

lista:

§ Código dispar y complejo.

§ Contiene Algunas vulnerabilidades.

§ Complicado de resolver cuando los errores se heredan.

§ Comunidad heterogénea y pareciera que exclusivamente enfocada en

modificaciones.
80

2.8.2 Bases de datos Generadas.

Ambos sistemas traen un script de bases de datos que deben correr en el servidor y que

generan automáticamente todas las tablas necesarias para el correcto funcionamiento de

éstas.

Analizando por separado ambas bases de datos, se tienen notables diferencias, la principla

de ellas es el número de tablas generadas:

• PHP Nuke trae 112 tablas generadas automáticamente con el script. De la versión

7.4.

• Mambo trae 37 tablas generadas en su versión 4.5.1.

Esta diferencia se debe a que el paquete de Nuke incluye más módulos activos para

agregarle funcionalidad. El paquete de Mambo en cambio trae menos, pero estos pueden

descargarse y agregarse al portal. Creando las tablas que sean necesarios para su uso.

Existen muchos más módulos para descargar en PHP Nuke que en Mambo pero éste crece

rápidamente.

En términos generales ambas bases de datos tienen un modelo relacional adecuado, quizás

el de Nuke un poco más complejo debido al tamaño de su base de datos.


81

CAPITULO III DESARROLLO CASO PROTOTIPO:

“ADAPTACIÓN DE UN SISTEMA EXISTENTE COMO MÓDULO A UN PORTAL

CMS”
82

3. Análisis de la situación de la Facultad de Ingeniería y su Sistema Curriculum.

La Facultad de Ingeniería de la Universidad Católica de Temuco cuenta con un sistema

administrador de Curriculum on line, de uso académico y administrativo. Se estudio la

posibilidad de incorporar este sistema a un portal CMS como una extensión de este.

Para ello fue necesario analizar la situación existente en la Facultad, además de estudiar los

requerimientos mínimos que permitan esta unión. Es necesario estudiar a fondo la

documentación del Sistema Curriculums para poder trabajar sobre sus códigos fuentes en el

proceso de implementación.

Esta extensión se contempla con la finalidad de lograr un sólo punto de acceso a las

aplicaciones de la Facultad, será entonces el portal la plataforma de trabajo para el resto de

aplicaciones que se estime desarrollar. Es importante también utilizar las aplicaciones que

ya han sido liberadas, para ello es que se realizará esta adaptación para que esta aplicación,

muy útil para los académicos, se encuentre en el portal de la Facultad, con un acceso

estándar, con una interfaz amigable y manteniendo todas sus funcionalidades.

3.1 Información y características del sistema.

EL objetivo general de este sistema es automatizar la gestión de antecedentes curriculares

de los académicos de la Facultad. Un sistema de apoyo a la gestión de funciones

administrativas de la Facultad de Ingeniería mediante el uso de tecnologías de información.


83

Un sistema On Line multiusuario con una arquitectura cliente servidor basado en una

plataforma Web que permita ser manejado por los usuarios desde Internet para el problema

de la ineficiente administración de los curriculums académicos, un sistema basado en el

formato de los curriculums FONDECYT, el cual incluye 4 ítems con información

antecedentes académicos, antecedentes personales publicaciones y proyectos realizados.

Este Sistema fue desarrollado en lenguaje PHP, base de datos Mysql, además incluye un

sistema Workflow que permite gestionar las peticiones de materiales audiovisuales de la

Facultad. Este Sistema completo, fue presentado como trabajo de título por el alumno

Roberto Novoa Almendras. Se puede visitar un demo de esta aplicación en

http://www.inf.uct.cl/servicios1/Workflow.

3.1.2 Estructura y manejo de usuarios.

El sistema On line de curriculums trabaja con 3 tipos de usuarios que se almacenan en las

siguientes tablas:

Ø Tabla curric_decanos: Almacena al tipo usuario Decano de la Facultad. Esta tabla

permite guardar los datos necesarios del Decano, para que éste tenga acceso al sistema

curriculums.
84

Figura 9: Detalle de la estructura de la tabla de usuarios Decano.

Ø Tabla carric_no_decanos: Almacena al tipo de usuario que reúne a todos los

académicos y administrativos que se almacenaran en la base de datos, para tener acceso

al sistema On Line. Donde podrán realizar todas las acciones necesarias para crear y

actualiza un curriculum académico.


85

Figura 10: Detalle de la tabla de usuarios no decanos.

Ø Tabla Carric_administrador: administrador del sistema, dentro de su panel de

administrador tiene las opciones de agregar usuario, cualquiera sea su tipo, ingresando

un nombre y password, unidad y cargo, e ingresarlos a la base de datos.


86

Figura 11: Detalle tabla Administrador.

3.1.3 Interfaces de la aplicación Curriculums On Line.

La pantalla inicial del Sistema corresponde a la interfaz de autentificación de usuario. Que

verifica si el usuario tiene acceso a la aplicación como se ve en la figura número 12.

Figura 12: Imagen inicial Sistema Curriculums.


87

El sistema en general utiliza la siguiente plantilla de diseño, dos frames y un área de

despliegue de datos, como se muestra en la figura numero 13.

Figura 13: Interfaz Principal del Sistema Curriculums On-Line.

3.2 Análisis de la información Recopilada.

Este sistema en términos generales, es una aplicación completamente funcional, adecuada

para incorporarse al portal de la Facultad. Se encuentra desarrollada en el mismo lenguaje

que las herramientas CMS analizadas anteriormente, por lo cual es factible de adaptarlo a

ellas. En términos de los usuarios que utiliza, este sistema On Line maneja una estructura
88

de usuarios, funcional, sin embargo no es óptima, como se ve en el detalle de las tablas

anteriores la similitud de los campos de la tabla decano, con la tabla no decano, muestran

redundancia de datos. Se estima necesario normalizar la base de datos con la finalidad de

evitar esta redundancia.

El Sistema Curriculums utiliza un acceso de usuario y password para luego acceder a la

pantalla principal que utiliza un sistema de frames. Este despliega un menú con las

opciones que tiene el usuario, trabaja con un formato de curriculum estándar, una versión

imprimible de este, además incluye la fotografía del usuario.

En su implementación el sistema curriculums utiliza sesiones en php, para trabajar en forma

segura, además php elimina las cookies creadas. Esta paso debe eliminarse por completo en

la unión del sistema Curriculums como un módulo a un portal CMS, puesto que se trabajará

con una sola password y una sola tabla de usuarios en la Base de datos, esta password será

la proporcionada por la plataforma de trabajo Nuke, puesto que viene con una encriptación

de password muy efectiva.

3.3 Análisis de la elección de la herramienta CMS PHP Nuke.

Luego de realizar la investigación de las dos principales herramientas y de analizar sus pros

y sus contras, llegamos a la etapa del desarrollo del caso y es vital acotar el desarrollo a una

sola herramienta. Si bien en la etapa anterior se probó con ambas en varios aspectos,

instalación, configuración y una adaptación simple, en esta etapa es fundamental que la

adaptación prototipo, se realice sólo con una herramienta, para dedicar el tiempo y los

recursos a la adaptación y estandarización del sistema Curriculums. La Re-ingeniería de


89

estos códigos permitirán optimizar sus funcionalidades, al ser inserto en una plataforma

más amplia y con más posibilidades de expansión.

El portal de la Facultad de Ingeniería, se encuentra en vías de desarrollo como trabajo de

título del alumno Juan Carlos Soto Higuera. Esta siendo desarrollado bajo la plataforma de

PHP Nuke, y es por esto que la adaptación se llevará a cabo bajo esta herramienta, con la

finalidad de que tanto el portal como el sistema queden funcional para la Facultad de

Ingeniería de la Universidad.

3.4 Esquema de Funcionamiento de los sistemas seleccionados.

A modo de ejemplificar el funcionamiento de ambos sistemas seleccionados se realiza un

esquema explicativo tanto de la situación actual como de la situación esperada.

A continuación un esquema de la herramienta CMS vs. el sistema Curriculums.

Comunidad Sistema
virtual Currículo

Usuarios Usuarios
Admin . Portal Admin sistema

.
PORTAL CMS NUKE SISTEMA CURRICULUMS

Figura 14 Esquema funcional del Portal PHP Nuke y el Sistema On Line Curriculums.
90

El primer esquema de la figura 14 representa al Portal CMS. Este trabaja de forma modular,

incluye una comunidad virtual formada por usuarios registrados y un tipo de usuario

denominado visitante, puesto que no esta registrado y no goza de todos los beneficios de la

comunidad.

El segundo esquema de la figura 14 representa el sistema de Curriculums On Line, su

estructura de manejo de usuarios, muestra que goza de un administrador que controla el

sistema y los usuarios que tienen acceso a éste, que son del tipo decano y no-decano.

En la figura 15 se muestra el esquema final de la situación esperada, de ambos sistemas

trabajando en forma conjunta.

Comunidad
Virtual
Usuarios
Admin. sistema
Portal Usuarios
Sistema visitantes
Currículo

Figura 15: Esquema Situación Esperada Sistema Curriculums / Portal Acoplados


91

La figura 15 muestra el posible esquema de interacción al acoplar el sistema curriculum al

Portal Nuke, claramente se visualiza que los usuarios de este sistema formaran parte de la

comunidad de Nuke, tendrán la características de registrados y sólo si cumplen los

requisitos previos podrán tener acceso al sistema curriculum.

3.5 Requerimientos para la Adaptación del Sistema Curriculums.

Los requerimientos son la pieza fundamental en una re-ingeniería, deben permitir

esclarecer los límites y compatibilidades que permitirán lograr el objetivo en un proyecto

de software. De ahí la importancia de que deban de ser definidos y manejados de la forma

más adecuada posible.

3.5.1 Requerimientos y compatibilidades de la Base de Datos.

La herramienta CMS trabaja con bases de datos MySql, cierto manejo específico de

usuarios y encriptación de password. La aplicación On Line de Curriculums trabaja con

Bases de datos MySql y sin nivel de encriptado de password. En resumen ambos sistemas

requieren el motor MySql para soportar sus bases de datos.

El sistema Curriculums, como se mencionó anteriormente es un software de uso común por

los académicos de la Facultad, al tenerlo inserto en un portal de uso público, se debe

controlar y filtrar mas exhaustivamente el acceso.

El portal incluye tres niveles de usuarios, los usuarios denominados “visitantes”, que

navegan por el sitio, leen las noticias, se informan de algunos aspectos de la comunidad,
92

todo esto sin registrarse. El segundo nivel de usuarios es el de los usuarios registrados que

son principalmente los que forman la comunidad, este tipo de usuarios posee un nick y una

password secreta que le permite logearse a través de sitio, y le permite funcionalidades del

sistema que están sólo destinadas a usuarios registrados por ejemplo, descargas, página de

inicio, diario de vida, entre otros.

La posibilidad de acoplar el sistema Curriculums al portal lleva implícito un análisis de las

posibilidades que esta adaptación presenta, sin lugar a dudas que el nivel de usuarios donde

insertaremos el sistema tiene un perfil distinto a los mencionados anteriormente, por lo cual

es necesario crear ese nivel de usuarios, que llamaremos Docentes. Estos usuario serán

registrados y con acceso al sistema curriculums.

El sistema de manejo de usuarios del sistema Curriculums deberá se modificado de manera

tal que sea compatible al de la herramienta CMS. Considerando los niveles de seguridad en

el acceso, se manejara aun password único del sistema y será bajo la estructura de clave de

la herramienta CMS pues trae un mecanismo de seguridad como es el cifrado de password.

3.5.2 Requerimientos y compatibilidades de la Interfaz.

La interfaz del sistema Curriculums necesita ser rediseñada para que logre acoplarse a la

interfaz principal del Portal Nuke, para ello se necesitara disminuir el área de despliegue de

datos y rediseñar el menú principal de éste para que logre adecuarse en contenido y forma

en el portal.
93

3.6 Tecnologías y herramientas Utilizadas para el desarrollo.

A continuación se describen las herramientas utilizadas para este desarrollo. Después de

investigar respecto a las tecnologías que utilizan ambos sistemas se ha llegado a la

conclusión de que la combinación efectiva es Apache (http) + Php (script de servidor) +

MySql (motor de bases de datos) dado que estos tres programas han demostrado ser una de

las más potentes herramientas para plataforma Web, y que principalmente es la plataforma

original de trabajo de ambos sistemas, tanto Nuke como el Sistema Curriculums.

Esta combinación Apache + Php + MySQL no sólo funciona en los entornos UNIX, aunque

fue ahí donde principalmente fueron desarrollados, sino que son multiplataforma es decir

existen en otros sistemas operativos como Linux, OS/2 Windows, BeOS, MacOS por

mencionar algunos.

3.6.1 Características del servidor Apache.

Las principales características de apache son las que muestran en la siguiente lista:

§ Funciona sobre muchas plataformas.

§ Permite cargas módulos dinámicamente.

§ Soporta la interfaz de CGI, vínculos con Perl.

§ Funciona y se complementan con el lenguaje Php que permite pre- procesar las

páginas html antes de ser entregadas al servidor apache, además con este vínculo a

Php se logra la comunicación con servidores de bases de datos.

§ SSL transacciones seguras.

§ Soporte para host virtuales y dominios virtuales.


94

Figura 16: Interfaz de Apache.

3.6.2 PHP

PHP (acrónimo de "PHP: Hypertext Preprocessor") es un lenguaje "open source"

interpretado de alto nivel embebido en páginas HTML y ejecutado en el servidor.

En vez de escribir un programa con muchos comandos para crear una salida en HTML,

escribimos el código HTML con cierto código PHP embebido (introducido) en el mismo.

El código PHP se incluye entre etiquetas especiales de comienzo y final que permitirán

entrar y salir del modo PHP.

Lo que distingue a PHP de la tecnología Javascript, la cual se ejecuta en la máquina cliente,

es que el código PHP es ejecutado en el servidor. El servidor Web puede ser incluso

configurado para que procese todos los ficheros HTML con PHP.
95

Figura 17: Esquema de interacción entre PHP y el cliente.

Cuando se hace clic en un enlace de una página Web, el navegador Web envía una petición

al servidor Web del sitio referido por el enlace. Si el servidor determina que la página

requerida es una página PHP, entonces llama a PHP, carga la página y la procesa. En

resumen una página PHP es una combinación de código HTML y código PHP incrustado.

3.6.3 MySql

Es uno de los motores de bases de datos más populares desarrollado bajo la filosofía de

código abierto. La desarrolla y mantiene la empresa MySql AB pero puede utilizarse

gratuitamente y su código fuente está disponible.

Entre las características disponibles se puede destacar:

• Amplio subconjunto del lenguaje SQL. Algunas extensiones son incluidas

igualmente.
96

• Disponibilidad en gran cantidad de plataformas y sistemas.

• Diferentes opciones de almacenamiento según si se desea velocidad en las

operaciones o el mayor número de operaciones disponibles.

• Transacciones y claves foráneas.

• Conectividad segura.

• Búsqueda e indexación de campos de texto.

La principal virtud es que es totalmente gratuito, por lo que es una fuerte alternativa ante

sistemas como SQL Server u Oracle. Para proceder a la instalación es necesario descargar

el paquete en el sitio oficial de MySql (http://www.mysql.com/).

Figura 18: Interfaz MySql.

Para administrar MySQL bajo Windows es recomendable utilizar una herramienta visual,

uno de los más populares para este trabajo es MySQL Front .Una vez creada la conexión se

puede administrar las tablas y usuarios de manera sencilla. Otra de las características
97

importantes, es que incluye un asistente de importación, que ayuda a migrar de una base de

datos Access, SQL, Postgres u otra compatible con ODBC.

MySQL Principales características:

• Consume muy pocos recursos, tanto de CPU como de memoria.

• Trabaja en múltiples plataformas, existen versiones para Windows y Linux.

• Mayor rendimiento. Mayor velocidad tanto al conectar con el servidor como al

servir selects y demás.

• Mejores utilidades de administración (backup, recuperación de errores, etc).

• Mejor integración con PHP.

3.7 Implementación Adaptación de Extensiones al Portal Nuke.

Analizados los requerimiento y las compatibilidades, se comienza la extensión al portal,

esta extensión corresponden al Sistema On Line de Curriculums Académicos.

Dentro de este proceso incluye diseñar los cambios en las interfaces, bases de datos y e

implementar y editar códigos de las páginas del sistema final.

3.7.1 Diseño.

El Diseño es un proceso y un modelado a la vez. El proceso de diseño es un conjunto de

pasos repetitivos que permiten al diseñador esbozar las interfaces del sistema.

Como diseño de la funcionalidad del sistema se realiza el modelo de “caso de uso” en su

versión grafica y su versión extendida, esto bajo el estándar del proceso unificado del
98

modelado (UML). El Lenguaje Unificado de Modelado prescribe un conjunto de notaciones

y diagramas estándar para modelar sistemas, y describe la semántica esencial de lo que

estos diagramas y símbolos significan. Ha habido muchas notaciones y métodos usados

para el diseño orientado a objetos, ahora los modeladores sólo tienen que aprender una

única notación. Esta notación incorpora dos elementos fundamentales, el caso de uso y el

actor.

A continuación se define las notaciones básicas del diagrama su representación y

funcionalidad.

Caso de uso

El caso de uso se representa en el diagrama por una elipse, denota un requerimiento

solucionado por el sistema. Cada caso de uso es una operación completa desarrollada por

los actores y por el sistema en un diálogo. El conjunto de casos de uso representa la

totalidad de operaciones desarrolladas por el sistema. Va acompañado de un nombre

significativo.

Actor

El actor se define como el o los usuario del sistema, que necesita o usa algunos de los

casos de uso. Se representa mediante esta imagen, acompañado de un nombre significativo,

si es necesario.
99

3.7.2 Diagrama de caso de Uso del Sistema Curriculums Post Proceso de Adaptación.

Descripción extendida Casos de Uso Usuario.

Figura 19: Diagrama Caso de Uso Usuarios.


100

3.7.3 Versión extendida del Modelo de casos de uso del Sistema Curriculums.

Caso de uso. Acceder al Sistema Curriculums.

Actor. Académicos o Decano.

Condición inicial. Ser Usuarios Registrados del tipo

“Docentes”.

Flujo de eventos. 1. El actor entra en el sistema en el módulo

“Tu Cuenta”.

2. El Usuario se logea con sus datos de

usuario y password.

3. El sistema despliega los sub-módulos

carga el perfil [menú] correspondiente al tipo

de actor.

4. El usuario accede al link de sub-módulos

denominado Curriculums.

5 El sistema carga el sistema curriculums

con el perfil del usuario.

Caso de uso. Ingresar Antecedentes Personales.

Actor. Usuario Decano o Académico.


101

Condición inicial. 1. Que el actor acceda al sub-módulo de

Curriculums.

Flujo de eventos. 1. El actor selecciona la opción de

Antecedentes Personales.

2. El sistema responde frente a esta acción

del actor con el formulario de ingreso de

datos.

3. El actor ingresa en el formulario los datos

que el sistema solicita.

4. El sistema verifica los datos ingresados

por el actor usuario.

5. El sistema guarda los datos

correspondiente al usuario.

Flujo alternativo de Eventos. El Proceso se realiza de forma similar si el

usuario una vez en el formulario de Ingreso

de antecedentes Edita o Borra algún

antecedente.

Condición de salida. El sistema actualiza la página y carga los

datos que se han guardado.

Caso de uso. Ingresar Antecedentes Académicos.

Actor. Usuario Decano o Académico.


102

Condición inicial. 1. Que el actor acceda al sub-módulo de

Curriculums.

Flujo de eventos. 1. El actor selecciona la opción de

Antecedentes Académicos.

2. El sistema responde frente a esta acción

del actor con sus datos académicos actuales

y con el link de ingreso de datos.

3. El actor selecciona el link ingreso de datos

y el sistema carga el formulario de ingreso.

4. El usuario ingresa los datos que el

formulario el solicita.

5. El sistema verifica los datos ingresados

por el actor usuario.

6. El sistema guarda los datos

correspondiente al usuario.

Flujo alternativo de Eventos. El Proceso se realiza de forma similar si el

usuario una vez en el formulario de Ingreso

de antecedentes Edita o Borra algún

antecedente.

Condición de salida El sistema actualiza la página.


103

Caso de uso. Ingresar Publicaciones.

Actor. Usuario Decano o Académicos.

Condición inicial. 1. Que el actor acceda al sub. módulo de

Curriculums.

Flujo de eventos. 1. El actor selecciona en el menú el link con

la opción de “Ingresar Publicaciones”.

2. El sistema responde con los datos de

publicaciones del usuario y un con un link

de ingreso de nuevos datos.

3. El actor ingresa los datos en el formulario

de ingreso y presiona “Guardar”.

4. El sistema verifica los datos ingresados

por el usuario.

5. El sistema gurda los datos correspondiente

al usuario.

Flujo alternativo de Eventos. El proceso se realiza de forma similar si el

usuario una vez en el formulario de ingreso

de antecedentes, edita o borra algún

antecedente.

Condición de salida. Que el sistema Actualice la página con los

datos nuevos.
104

Caso de uso. Ingresar Proyectos.

Actor. Usuario Decano o Académicos.

Condición inicial. 1. Que el actor acceda al sub-módulo de

Curriculums.

Flujo de eventos. 1. El actor selecciona en el menú el link con

la opción de “Proyectos Anteriores”.

2. El sistema responde frente a esta acción

del actor con el formulario de Proyectos del

Usuario y con la opción de “Ingresar Datos”.

3. El actor ingresa en el formulario los datos

que el sistema le solicita.

4. El sistema verifica los datos ingresados

por el actor.

5. El sistema guarda los datos ingresados por

el usuario.

Flujo alternativo de Eventos. El Proceso se realiza de forma similar si el

usuario una vez en el formulario de Ingreso

de antecedentes, edita o borra algún

antecedente.

Condición de salida. El sistema actualiza la página con los datos

nuevos.
105

Caso de uso. Realizar Búsquedas de Curriculums.

Actor. Usuario Decano o Académicos.

Condición inicial. 1. Que el actor acceda al sub-módulo de

Curriculums.

Flujo de eventos. 1. El actor selecciona en el menú el link con

la opción de “Realizar Búsqueda”.

2. El sistema responde frente a esta acción

del actor con el formulario de Criterios de

búsqueda.

3. El actor selecciona en el sistema el

criterio de búsqueda que desee. Y presiona el

botón “Buscar”.

4. El sistema realiza la consulta necesaria

según el criterio seleccionado.

5. El sistema carga el resultado de la

consulta, este resultado será información de

curriculums de otros académicos que

respondan al criterio anterior.

Condición de salida. Ninguna.


106

Caso de uso. Generar Currículo Versión Imprimible.

Actor. Usuario Decano o Académicos.

Condición inicial. 1. Que el actor acceda al sub-módulo de

Curriculums.

Flujo de eventos. 1. El actor selecciona en el menú el link con

la opción de Curriculum imprimible.

2. El sistema responde frente a esta acción

del actor con un sub-menú con opciones de

antecedentes que se deseen imprimir.

3. El actor selecciona los check box

correspondientes a los datos que desea

imprimir. Y presiona el botón de “Mostrar”.

4. El sistema verifica los datos, realiza la

consulta correspondiente y genera una nueva

ventana con la versión imprimible del

curriculum.

5. El usuario selecciona imprimir.

6. EL sistema verifica conexión con la

impresora.

Condición de salida. Que el sistema envíe a impresora el

documento.
107

3.7.4 Diagrama de Caso de Uso del Webmaster Sistema Curriculums.

Figura 20: Diagrama Caso de Uso Actor Webmaster.

3.7.5 Descripción extendida Casos de Uso Webmaster.

Caso de uso. Ingresar Usuarios Nuevos.

Actor. Usuario Webmaster.

Condición inicial. 1. Que el actor acceda a la interfaz de

Administración.

Flujo de eventos. 1. El sistema solicita clave de administrador.

2. El usuario ingresa su nick y password de

administrador.
108

3. El Sistema despliega el panel de

administración.

4. El actor selecciona el icono de Usuarios Y

selecciona “Agregar Nuevo”.

5. El sistema despliega el formulario de

ingreso de datos.

6. El actor marca “SI” en la opción de

“curriculums” y completa la información

requerida, finalmente presiona Guardar.

7. El sistema Ingresa el nuevo usuario al

Portal y al sistema curriculums.

8. El usuario presiona “salir” y cierra así la

interfaz de administración.

9. El sistema cierra la interfaz de

administración.

Condición de salida. El sistema carga la interfaz de pública.

Caso de uso. Borrar Usuarios.

Actor. Usuario Webmaster.

Condición inicial. 1. Que el actor acceda a la interfaz de

Administración.
109

Flujo de eventos. 1. El actor selecciona en el menú el icono de

“Editar Usuarios”.

3. El sistema solicita el usuario que desea

borrar.

4. El actor ingresa el usuario a borrar y

presiona “Aceptar”.

5. El sistema Pregunta al actor

Administrador si esta seguro de la

eliminación.

6. El actor responde que desea borrar el

usuario.

7. El sistema borra de la base de datos el

usuario seleccionado.

Condición de salida. El sistema actualiza la página.

Caso de uso. Editar Permisos.

Actor. Usuario Web master.

Condición inicial. 1. Que el actor acceda a la interfaz de

Administración.

Flujo de eventos. 1. El actor selecciona en el menú el link con

la opción de “Editar Usuarios”.

2. El sistema despliega la opción de editar.


110

3. El actor administrador selecciona el

usuario que desea editar y presiona el botón

“Aceptar”.

4. El Sistema carga un formulario con los

datos del usuario seleccionado.

5. El actor edita los permisos de acceso al

sistema de curriculums del usuario y

presiona guardar cambios.

6. El sistema guarda los cambios realizados

por el actor.

Condición de salida. El sistema actualiza la página con los datos

nuevos.

3.7.6 Diseño de interfaces.

El proceso de acoplar el sistema curriculums al portal nos lleva a idear los respectivos

cambios en las pantallas, considerando el nuevo marco de trabajo donde se insertarán.

El sistema Curriculums que se encuentra liberado, será acoplado a la herramienta CMS

PHP Nuke, en base a las reglas de desarrollo de esta plataforma.

A continuación se esbozará el diseño de las principales interfaces del sistema Curriculums

adaptado al portal.
111

Interfaz Tu Cuenta

Top principal de Nuke Menu Superior

Menú
Lateral Tu cuenta bienvenido usuario
módulos

Cambiar Cambiar Configurar


Información Página de Comentarios Diario de Usuarios Logout/Salir
Inicio Curriculum

Aquí agregamos
Opciones
Icono de Curriculum con acceso
Para los usuarios
Al Sistema

Figura 21: Diseño Interfaz “Tu Cuenta”.

En esta pantalla inicial de el módulo “tu cuenta” del Portal Nuke diseñamos un icono

representativo del Sistema Curriculums y lo agregamos como una opción más del usuario.
112

Interfaz Curriculum

Top principal de Nuke Menú Superior

Menú
Lateral Menú principal del sistema Curriculum
módulos

Foto

GUARDAR CANCELAR

Formulario despliegue de datos

Figura 22: Diseño Interfaz Sistema Curriculums.

En el diseño de esta interfaz se puede ver que el área demarcada con color rojo, es la que

muestra el sistema Curriculums, incluye su menú, foto y área de despliegue de datos. El

marco de fondo es el marco del Portal Nuke que ofrece el entorno de trabajo Nuke dejando

perfectamente acoplado simulando que fuese un módulo más del portal. Para esta instancia

se estima que los colores y los estilos sean similares.

De esta misma forma se visualizarán todas las opciones del menú de curriculums,

manteniendo siempre el marco de trabado del portal.


113

3.7.7 Diseño de los cambios de la base de Datos.

En los requerimientos del sistema se analizó las compatibilidades de las base de datos, el

análisis de la base de datos del sistema curriculums y el manejo de usuarios que realiza

presenta redundancia. Este sistema como se mostró anteriormente trabaja con tres tablas en

el manejo de usuarios. Se necesita estandarizar el acceso al portal, por lo cual se utilizará

un usuario y password únicos del sistema. Se trabajará sólo con una ( de las tres) tabla de

usuarios del sistema curriculums. Esta tabla corresponde a “curri_no_decano” cuyo detalle

se mostró anteriormente. En la figura 20 se puede apreciar el detalle de la estructura de la

renovada tabla de usuarios.

Figura 23: Detalle Estructura final Tabla usuarios en Base de datos.


114

A esta tabla se le agregó el campo “tipo_usuario” y “cod_unidad”, campos que se estiman

necesarios para el correcto funcionamiento del sistema

El modelo de interacción de usuarios entre Nuke y Curriculums funciona de la siguiente

manera.

§ El usuario y password de acceso al sistema se ubican en la tabla de Nuke

correspondiente a nuke _user.

§ Se mantiene la tabla “curri_no_decano” del sistema curriculums y se eliminan de

ésta el campo password.

§ Cada vez que se agregue un usuario del tipo “docente” y que además desea tener

acceso a curriculums, se agrega el usuario automáticamente en la tabla

“curri_no_decano”.

Se debe mencionar que la tabla de usuarios de PHP Nuke presenta alrededor de 47 campos

en su estructura original, en la figura número 21 sólo se ven algunos y se hace énfasis en el

recuadro que marca los campos agregados para relacionarse con la tabla del sistema

curriculums.

Se necesita las siguientes modificaciones en la tabla nuke_user. Se agregan los siguientes

campos que se encuentran demarcados en la figura 24.


115

Figura 24: Detalle Estructura final tabla Nuke usuarios en Base de Datos.

3.7.8 Implementación de cambios en los códigos del Sistema.

Para comenzar el proceso de implementación se debe realizar lo siguiente:

• Agrupar los códigos del sistema curriculums en una carpeta nueva.

• Renombrar la carpeta con el nombre curriculum.

• Subirlas al servidor donde esta corriendo PHP Nuke.

• Ubicarlas en la carpeta modules en el paquete Nuke(PhpNuke/modules/curriculum).


116

De esta forma PHP Nuke reconocerá de forma automática a la carpeta curriculum, como un

módulo del sistema. A continuación se debe ingresar al panel de control de PHP Nuke y

activar el nuevo módulo en este caso curriculum. Dentro del panel además se editar y

desactivar el módulo como se ve en la figura 25.

Figura 25: Imagen del panel de administración de módulos.

El realizar cambios en la base de datos implica hacer refinamiento de código, esto quiere

decir que se debe revisar cada página del código de ambos sistemas Nuke, y principalmente

Sistema Curriculums. Además de editar consultas SQL que pudiesen referencias a tablas

que en el proceso de acoplamiento se han eliminado o modificado.

Se reutilizó el grueso del código original que generaba la aplicación, se agregó las consultas

necesarias y los cambios respectivos en la identificación del usuario.


117

Del sistema Original Curriculums, debe eliminarse de todos sus archivos las variables de

sesión, y sustituirlas por las variables globales de PHP Nuke.

Al eliminar las variables de sesión , debemos editar en el código todas las sentencias que

hacían referencia a estas variables.

Ejemplo de las variables de sesión del sistema Curriculums:

<?php
session_start();
// chequear si se llama directo al script.
if ($_SERVER['HTTP_REFERER'] == ""){
die ("Error cod.:1 - Acceso incorrecto!");
exit;
}

include("conexion.php");
$us=$_SESSION['usuario'];
$pa=$_SESSION['password'];
$tpo_usuario=$_SESSION['tipo_usuario'];

3.7.8.1 Ejemplo de cabeceras de código de PHP Nuke.

El siguiente código ejemplifica las cabeceras que utiliza el portal y que permite mantener el

entorno de trabajo, los permisos a los módulos y los datos del usuario en línea. Este código

debe integrarse a todas las páginas del sistema curriculums sustituyendo el código mostrado

en el ejemplo anterior.
118
<?php

if (!eregi("modules.php", $_SERVER['SCRIPT_NAME'])) {
die ("You can't access this file directly...");
}

include("config.php");
require_once("mainfile.php");
global $user, $userinfo
getusrinfo($user);
....

Todos estos cambios se realizan en el directorio Curriculums, módulo que se encuentra en

la carpeta modules de PHP Nuke.

Se debe mantener un orden en los cambios realizados. Si se modifica una interfaz pública

es necesario que se realice la actualización de su contraparte en la interfaz de

administración.

Además si agregamos alguna abreviatura, se debe definirla en el archivo de lenguaje del

respectivo módulo, por ejemplo:

Extracto del archivo lang-spanish.php que se encuentra en el directorio lenguaje dentro del

módulo.

define("_EMPRESA","Empresa o Institución");
define("_FONO","Teléfono");
define("_ESPECIALIDAD","Especialidad");
define("_ICI","Ingeniería en Informática");
define("_ICA","Ingeniaría Civil Ambiental");
define("_BGNR","BGNR");
define("_ALU","Alumno");
define("_DOC","Docente");
define("_CURRI","Curriculum");
define("_DATGEN","Datos Generales");
define("_UNI","Unidad");
define("_FAC","Facultad");
119

El Sistema Curriculums en su adaptación, como se menciono anteriormente requirió

cambios en sus códigos, base de datos y archivos de configuración. Esto cambios

permitieron que el sistema quede acoplado y corra en la plataforma Nuke.

El usuario de tipo “docente” es el único que tendrá acceso al módulo de curriculum, esto

mediante un icono visible en su espacio de trabajo, que el portal denomina “Tu cuenta”.

El usuario puede decidir si quiere esta aplicación en su espacio de trabajo, sino la desea en

el momento de ingreso de éste como usuario del sistema puede estipularse que no desea el

módulo curriculums activo en su cuenta. Esta opción es editable desde el panel de

administración.

El sistema Final queda de la siguiente forma :


120

Figura 26: Portal PHP Nuke Personalizado.

Este portal PHP Nuke fue instalado y personalizado por el Alumno Juan Carlos Soto como

trabajo de título presentado a la Facultad de Ingeniería, con la finalidad de crear un modelo

comunicacional para una comunidad virtual. Como se mencionó en el capítulo anterior se

debió trabajar con esta versión y el paquete completo utilizado y modificado por el alumno,

con la finalidad de mejorar la situación existente.

La interfaz de la figura 27 corresponde al espacio “tu cuenta” donde se diseñó insertar el

sistema curriculums, como un módulo activo del sistema Nuke, puesto que era factible

controlar los permisos y accesos al módulo desde aquí.


121

Figura 27: Interfaz Final de módulo “tu cuenta”.

En la interfaz del portal Nuke ( figura 27) aparece en el centro el icono que se ha agregado

para el sistema Curriculums, aquí el sistema reconoce al usuario (en este caso oriel) como

usuario con autorización para acceder a este módulo. Por lo cual se muestra el icono de la

aplicación, de lo contrario mostraría sólo el resto de las opciones de usuario.

Además es importante rescatar de la interfaz “Tu cuenta” que trae incorporado un mini

Lector de titulares RSS, en el cual los usuario pueden sindicar noticias desde otros portales

o desde sus Web favoritas y tenerlas allí en su espacio Nuke.


122

A continuación se muestra el portal Nuke trabajando en forma conjunta al sistema

curriculum, siendo éste un módulo más del portal. El diseño y los colores, el despliegue de

datos, todo arreglado para que en la imagen final se vea curriculums mimetizado con

Nuke. Como se muestra en la figura 28.

Figura 28: Interfaz Final Sistema Curriculums Acoplado al Portal Nuke.


123

De este modo el Sistema curriculums deja de ser un sistema propiamente tal, y pasa a

formar pare de del portal Nuke, como un módulo de éste. Queda funcional y acoplado al

Portal. Trabaja con un usuario único y cada opción del sistema curriculums, por ejemplo

proyectos, antecedentes académicos, publicaciones, se encuentran en un menú superior.

Todas estas opciones se cargan en la misma área de despliegue de datos, al centro,

manteniendo el marco de trabajo Nuke.

3.7.9 Implementación Extensión RSS al Portal.

Consiste en generar un script en un lenguaje apropiado para trabajar con bases de datos,

debido a que se pretende que el archivo genere las noticias en forma dinámica, para ello se

debe acceder la BD correspondiente a nuestro portal .

En el nivel superior, de un documento RSS se encuentra un elemento <rss>, con un

atributo obligatorio llamado versión que especifica la versión del documento. Para nuestro

caso, se ocupo la versión 2.0, por lo que este atributo debe ser "2.0". De modo que las dos

primeras líneas del documento, deben ser las siguientes:

<?xml version="1.0" encoding="iso-8859-1" ?>


<rss version="2.0">

Subordinado al elemento <rss> se encuentra un único elemento <channel> que contiene la

información sobre el canal (meta data) y su contenido. Y dentro de éste los sub-elementos

separados dentro de elementos <item>.


124

Los siguientes elementos son obligatorios en un documento RSS:

• Title: El nombre del canal. Es la forma en que se refiere al servicio. Si se tiene un

portal que contiene la misma información que su archivo RSS, el título de su canal

debe ser el mismo de su portal o sitio Web.

• Link: El URL al portal o sitio Web correspondiente al canal.

• Descripción: Descripción del canal.

3.7.9.1 Ejemplo de Estructura del archivo final XML.

?xml version="1.0" encoding="ISO-8859-1" ?>


<rss version="0.91">
<channel>
<title>Portal Facultad de Ingenieria UC Temuco</title>
<link>http://www.inf.uct.cl/~emsotoc/nuke7.4</link>
<description>Portal UCT</description>
<language>es-ES</language>
<item>
<title>Nuevo servicio de sindicación de noticias (RSS)</title>
<link>http://www.inf.uct.cl/~emsotoc/nuke7.4/modules.php?name=News&file=article&
sid=1</link>
2.5.6 2 Usos y ventajas de la sindicación de contenidos
<description>
</description>
</item>
</channel>
</rss>
125

Se necesita realizar una consulta que nos permite sacar en tiempo real los titulares de las

noticias.

Posteriormente utilizamos el archivo Backend.php que trae el portal y lo adecuamos a las

noticias que nos interesa mostrar.

A continuación en necesario a través de php generar la estructura XML final que nos

permitirá finalmente poder sindicar las noticias.

3.7.9.2 Ejemplo de código PHP que genera el XML

echo "<?xml version=\"1.0\" encoding=\"ISO-8859-1\"?>\n\n";


echo "<!DOCTYPE rss PUBLIC \"-//Netscape Communications//DTD RSS
0.91//EN\"\n";
echo " \"http://my.netscape.com/publish/formats/rss-0.91.dtd\">\n\n";
echo "<rss version=\"0.91\">\n\n";
echo "<channel>\n";
echo "<title>".htmlspecialchars($sitename)."</title>\n";
echo "<link>$nukeurl</link>\n";
echo "<description>".htmlspecialchars($backend_title)."</description>\n";
echo "<language>$backend_language</language>\n\n";

while ($row = $db->sql_fetchrow($result)) {


$rsid = intval($row['sid']);
$rtitle = $row['title'];

echo "<item>\n";
echo "<title>".htmlspecialchars($rtitle)."</title>\n";
echo
"<link>$nukeurl/modules.php?name=News&amp;file=article&amp;sid=$rsid</link>\n"
;
printf("<description><![CDATA[%s]]></description>\n",$row['hometext']);
echo "</item>\n\n";
}
echo "</channel>\n";
echo "</rss>";
126

Este código permitirá que el portal genere los titulares de las noticias en formato RSS,

pudiendo estas ser agregados por otros usuarios tanto en sus propias páginas como en

software lectores que estos pudiesen tener instalados.


127

CAPITULO IV: DISCUSIÓN


128

4.1 PHP Nuke como un CMS integral.

El futuro de los CMS parece prospero, las grandes comunidades de usuarios Open Source

tienen la iniciativa de seguir trabajando con esta tecnología. Sin embargo, debemos

cuestionarnos sobre estas herramientas que se basaron en CMS, PHP Nuke por ejemplo que

fue nuestro caso estudio.

PHP-Nuke, en opinión personal, me parece un gran producto. Nuke en sus inicios

respondió a un sin fin de peticiones que los usuarios estaban requeriendo, estuvo muy bien

presentado, envasado y desarrollado que rápidamente miles de sitios, pudieron lanzarse

bajo esta plataforma.

Sin embargo hay varios detalles que me gustaría comentar en este capítulo de discusión,

para hablar un poco del futuro de los CMS.

4.2. Variantes y cambios que se creen necesarios.

Nuke sería una mejor pieza de software si incorporara algunas variantes y cambios, los

cambios que se creen necesarios son los siguientes:

• Nuke debería respetar el estándar xhtml, portales modernos, deberían tratar de

ajustarse al estándar xhtml. Nuke produce un html desordenado.

• Nuke debería permitir el uso de XML para la carga de notas y la exportación de las

mismas para luego poder distribuirlas. Sabemos que incorpora el metalenguaje en la

sindicación de contenidos, pero debería incluirlo además en la carga de documentos.


129

• Debería acondicionar sus templates de modo tal que fuesen mas editables

favoreciendo la personalización de estos.

Por el momento la idea de PHP Nuke y su éxito serán la base para todos estos futuros

avances.

PHP-Nuke prácticamente se convirtió parte de la cultura de Internet no importa en qué

lugar de la red nos encontremos, nunca estaremos lejos de un portal hecho con PHP-Nuke.

Sin embargo, debemos cuestionarnos su éxito.

Una gran medida de las necesidades de quienes todavía buscan una presencia en Internet es

la posesión de su propio Portal, cargado de servicios, con un buen diseño y, miles de

visitantes diarios.

Este proyecto de software libre, tiene con todas las potencialidades de convertirse en una

aplicación excelente para Internet. PHP-Nuke en poco tiempo pobló la red de redes con

miles de sitios de todo tipo, con los más dispares resultados.

Una de las muchas comunidades que están basando su desarrollo en la Tecnología CMS de

gestión de contenidos es Mambo. Mambo apuesta por los diseños editables con estructura

de datos en metalenguajes XML, y todas las funcionalidades propias de un portal, esta

hecho para el público de masas y al igual que Php Nuke, tienen unas comunidades bastantes

amplias en el desarrollo de nuevos módulos.

Realizar una confrontación entre dos modelos de desarrollo distintos de dos aplicaciones

que comparten una misma visión: Convertirse en el futuro de la Web, es una tarea ardua,

porque ambas representan las ambiciones y las necesidades de miles de Webmasters, y de

usuarios amantes de la corriente Open Source. No es por ello menos importante que
130

sepamos optar sabiamente por una o por otra, teniendo en cuenta aspectos que no son muy

evidentes a primera vista. Ello fue la finalidad de este documento, realizar un paralelo entre

estas dos populares herramientas, elegir es sin duda cosa de gusto personal, existe esa

variable subjetiva del usuario a optar por utilizar una u otra, creo que este documento sirve

de guía de orientación a seguir, pero sin decidir por uno u otro, ello quedará a elección del

lector, aquí sólo se incluyen los parámetros de comparación y referencia.

El caso aplicativo de este documento de tesis fue desarrollado bajo la plataforma Nuke y de

ella podemos mencionar que:

El éxito de PHP-Nuke puede atribuirse a varios motivos, pero sin duda, el más

importante es su facilidad de instalación, configuración, personalización y

administración.

En poco tiempo PHP-Nuke recibió el apoyo de cientos de desarrolladores que dedicaron

sus esfuerzos a crear toda una variedad de agregados y hasta portar sus ya existentes

aplicaciones PHP para hacerlas compatibles con PHP-Nuke. Así fué que en un lapso breve,

PHP-Nuke se convirtió en una verdadera plataforma de desarrollo para aplicaciones de

Internet. Irónicamente, este enorme flujo de desinteresada aceptación no sólo supuso el

reconocimiento del éxito de este proyecto, sino que también planteó la interrogante más

crítica en su historia: ¿Está PHP-Nuke preparado para soportar su éxito?

La decisión de adoptar PHP-Nuke para nuestro portal no es una decisión menor, por cuanto

todo su contenido, administración y servicios dependerá de él, de sus fortalezas y

debilidades. Para muchos, la mayoría, el sólo hecho de su éxito es muestra suficiente de su

idoneidad para toda tarea. Pero quienes conocen un poco más del proceso de desarrollo del
131

software libre, comentan sobre cuál es la mejor receta para producir una aplicación madura,

estable y segura, en la que poder confiar la información y la de nuestros visitantes.

Entonces, quizá se debiera analizar estos CMS's desde el día en que comienza a

'compartirse este conocimiento' para trazar (o simular) una trayectoria hacia el éxito o el

fracaso, tomando en cuenta factores como:

• Quien o quienes participan y sus conocimientos del problema.

• Que grado de compromiso tienen en el proyecto.

• Como y con que herramientas colaboran/transmiten/comparten su conocimiento.

Una aplicación con las ambiciones y posibilidades de convertirse en “la aplicación para

Internet necesariamente debería desarrollarse como cualquier otro proyecto de software

libre comparable en envergadura:

• Con un desarrollo descentralizado que garantice el libre flujo de ideas

independientes.

• Dividiendo tareas y responsabilidades para maximizar el tiempo de cada

desarrollador.

• Consensuando nuevas características, para que su soporte exista permanentemente y

su mantenimiento sea constante.

• Adoptando un calendario de lanzamientos acorde con el grado de desarrollo y

estabilidad alcanzados, como con cualquier otro ejemplo de software libre, incluido

el mismo Kernel Linux.


132

4.3 Comentarios Sobre tecnología CMS.

En la actualidad, aparte de la ampliación de las funcionalidades de los CMS, uno de los

campos más interesantes es la incorporación de estándares que mejoran la compatibilidad

de componentes, facilitan el aprendizaje al cambiar de sistema y aportan calidad y

estabilidad.

Algunos de estos estándares son CSS, que permite la creación de hojas de estilo; XML, un

lenguaje de marcas que permite estructurar un documento; XHTML, que es un subconjunto

del anterior orientado a la presentación de documentos vía Web; WAI, que asegura la

accesibilidad del sistema; y RSS, para sindicar contenidos de tipo noticia.

4.4 Sobre el futuro de los CMS.

Según la Referencia de Robertson (2003) apunta que:

• Los CMS se convertirán en un artículo de consumo, cuando los productos se hayan

establecido y más soluciones lleguen al mercado. Eso provocará una disminución de

los precios en los productos comerciales y una mayor consistencia en las

funcionalidades que ofrecen.

• Muchos proyectos fracasarán por no ajustarse a los estándares y no entender

conceptos como usabilidad, arquitectura de la información, gestión del

conocimiento y contenido.
133

• El campo de los gestores de contenido madurará hasta conseguir un alto grado de

consistencia y profesionalismo.

• Se adoptarán estándares en el almacenaje, estructuración y gestión del contenido.

• Se producirá una fusión entre gestión de contenidos, gestión de documentos y

gestión de registros.

También se puede añadir la incorporación de sistemas de e-learning y gestión del

conocimiento, y en los entornos de Intranet corporativa, la posibilidad de acceder a otras

fuentes de datos como por ejemplo sistemas de soporte de decisiones (Decision Support

Systems o DSS). El campo de los CMS de código abierto se piensa que tendría que seguir

un desarrollo similar.
134

CAPITULO V: CONCLUSIONES
135

5.1 Conclusiones.

A modo de conclusiones puedo decir que CMS es sin lugar a dudas una de las mejores

tecnología presentes en Internet en la actualidad y que va directamente orientada hacia la

disminución de tiempos de espera y hacia la inmediatez de la información.

Esta tecnología presenta un presente notable donde ya son muchas las áreas en las que son

incluidas, y su fututo auspicioso.

Es importante hacer hincapié en la importancia de utilizar herramientas de la línea de

fuente abierta (Open Source), que están involucrando tecnología CMS en su desarrollo, esta

línea de productos disminuye notablemente los tiempos de espera de los desarrollos de

software. Hoy en día, donde el tiempo es oro, y la información debe ser oportuna, la

variable tiempo toma un rol preponderante. Minimizar costos, tiempos de espera, garantizar

soporte y acceso al código fuente, permiten a programadores y desarrolladores sacarles

partido a estas herramientas en post de mejorar la situación actual.

Claramente los más beneficiados serán los usuarios finales. Tendrán acceso a la

información en plataformas seguras amigables rápidas y altamente eficientes.

En el área de la Facultad de Ingeniería, considero importante ampliar la plataforma de

Intranet de la facultad, para que estudiantes, docentes y administrativos aprovechen al

máximo los recursos que se logran gracias al resultado de las nuevas tendencias

tecnológicas.

Lograr un sólo punto de acceso a las aplicaciones existentes en la Facultad permitirá a los

usuarios la rapidez de las consultas y el uso de estas aplicaciones se hará más masiva,

generando espacios de comunicación e intercambio importantes para el desarrollo de ésta.


136

Este trabajo de título me permitió sacarme los prejuicios de estas herramientas embasadas,

que antes miraba de forma un poco distante. Pensando quizás en que le baja el perfil a un

ingeniero del área, sin embargo me he sorprendido gratamente al descubrir que muy por el

contrario estas tecnologías, le dan herramientas que facilitan el trabajo a los

desarrolladores, les permite innovar con más rapidez y con menos costos. Me parecen

excelentes herramientas, que con personalización se pueden lograr importantes desafíos.

Dentro de este contexto, luego de estudio realizado y en una opinión personal pienso que

optar por una solución mixta, es la mejor decisión, ya que permite por una parte, autonomía

del usuario para actualizar áreas de alto movimiento y cambio de información (noticias,

destacados portada), y por otra parte, que el desarrollador cuente con las herramientas que

le permita llevar esa gestión sin dejar de lado otros cambios más importantes, que

involucren nuevas interfaces gráficas de alto impacto, innovaciones y creatividad en

general. A esta teoría se le denomina CMS Mixtos y en la actualidad son muchos los que la

utilizan.

Es importante destacar que esta modalidad mixta, es la opción más eficiente para obtener

un sitio Web de primer nivel, en forma periódica en el tiempo. Hoy en día empresas como

CODELCO, CNE, SMARTCOM, AUTOPISTA CENTRAL, FSV, EMPRESA DE

FERROCARRILES DEL ETADO, entre muchos otros, han optado por esta modalidad que

les permite un mecanismo eficiente y a bajo costo de contar con un sitio Web de primer

nivel en forma permanente.


137

Por tanto concluyo este trabajo con gran satisfacción personal por el conocimiento

adquirido, con una visión diferente, una postura más abierta. Con una gran cantidad de

contactos y comunidades virtuales del área de desarrollo y de corrientes Open Source, en

las que participé, con el fin de extraer información para la investigación realizada.

Pensando que este documento será un aporte a la Facultad, de modo de incentivar a los

usuarios a utilizar aplicaciones, facilitándoles el acceso a éstas.

Pienso que lo aprendido en esta etapa me servirá de gran aporte para una proyección

laboral.
138

5.2 Referencias y Bibliografía.

Robertson, J., How to evaluate a content management system [en línea]. Step Two, 23

enero 2002 <http://www.steptwo.com.au/papers/kmc_evaluate/index.html> [Consulta: abril

2005].

¿Robertson, J., So, what is a content management system? [en línea]. Step Two, 3 junio

2003 <http://www.steptwo.com.au/papers/kmc_what/index.html> [Consulta: Agosto 2005].

General

Papers "Case Studies [en línea] Step Two Designs”

<http://www.steptwo.com.au/papers/index.php>.

Php Nuke: <http://phpnuke.org > < http://www.desarrollonuke.org/ >

Mambo OS: <http://www.mamboserver.com> <http://www.mambohispano.org.>

Nielsen, J. Usabilidad. Diseño de sitios web, Madrid, Prentice Hall, 2002.

Sistemas de gestión de contenidos.

opensourceCMS [en línea], opensourceCMS, <http://www.opensourcecms.com> [Consulta:

marzo-abril 2004].

Open source content management [en línea], The international association for Open.

Source Content Management, <http://www.oscom.org> [Consulta: marzo-abril 2005].


139

ANEXOS
140
141
142
143

Anexo 3.

Características de otros CMS Open Source.

Sistemas de Gestión de Contenidos Open Source


CMS Caracter ística Comentarios
- PHP y MySQL/PostgreSQL/SQL Una de sus más destacables
Server... características es la versatilidad: puede
- Artículos, categorías, encuestas, configurarse lo mismo como CMS de un
Drupal foros, wiki, weblog portal que como weblog. Se le considera
- Interfaz personalizable en la red una plataforma de gestión de
- Escalable (módulos) contenidos bastante potente.
- Motor de búsqueda
- PHP Su característica más notable es su
- Todas las funciones habituales. novedoso modelo de contenidos,
- Modalidades: eCommerce, totalmente personalizable y extensible.
intranet, galeria fotográfica, foros,
eZ Publish
weblog, portal de noticias, portal
corporativo
- Soporta PDF, WebDAV, LDAP,
Unicode...
- PHP y MySQL Uno de los CMS más extendidos,
- Editor WYSIWYG bastante completo y fácil de
- Interfaz personalizable Personalizar en términos de diseño.
Mambo
- Escalable (módulos y
componentes)
- Gestión deanuncios
- Motor de búsqueda
- PHP Midgard CMS es un flexible y estable
- Todas las funciones habituales. Gestor de Contenidos Open Source. De
origen finlandés, está desarrollado sobre
- Editor WYSIWYG el popular mix LAMP (Linux, Apache,
- Conserva las versiones antiguas de MySQL y PHP).
Midgard los artículos
- Interfaz personalizable
- Escalable (módulos y
componentes)
- Sistema interno de publicación.
- Soporta Unicode
- PHP y MySQL Uno de los primeros CMS en PHP, está
phpNuke /
muy extendido. Destaca sobre todo por
144

Sus múltiples funcionalidades en


- Artículos, categorías, comentarios, términos de módulos. Posee poca
encuestas flexibilidad en términos de diseño.
- Sistema de módulos y de bloques)

- Escalable
- Motor de búsqueda
- Python/Zope Desarrollado con Zope (framework
- XHTML y CSS estándar Open Source para CMS. De momento
- Escalable (add-ons y scripts) esta limitado por la falta de suficientes
Plone
- Motor de búsqueda servidores con Python.

- Interfaz personalizable
- Perl y MySQL Originalmente era el CMS utilizado por
el famoso Slashdot.com.
- Artículos, categorias, comentarios,
encuestas
Slash
- Interfaz personalizable (plantillas y
modelos)
- Escalable (mediante plugins)
- Motor de búsqueda
- PHP3 y MySQL Es el Gestor de Contenidos que utiliza
- Artículos, breves, secciones, foros, martinalia.com. De origen francés,
estadísticas permite gestionar de forma muy sencilla
- Interfaz personalizable y fiable desde sitios web sencillos.
SPIP - Escalable (a través de un sistema
propio: los "bucles")

- Motor de búsqueda
- Sistema de corrección ortográfica
- PHP y Un sistema de Gestión de Contenidos
MySQL+AdoDB/PEAR::DB Open Source muy adaptado a las
necesidades empresariales (tanto para
- Artículos, categorías, newsletter webs corporativas como para intranets).
- escalable Se evaluó en la red como complejo de
- XHTML y CSS estándar administrar.
Typo3 - Editor WYSIWYG
- Asistentes
- Importación de documentos Word

- Motor de búsqueda
- Interfaz personalizable
- Conserva versiones antiguas de los
145

artículos
- PHP Orientado a objetos, como eZ Publish.
- Todas las funciones habituales. .
XOOPS - Escalable (módulos)
- Motor de búsqueda
- Interfaz personalizable (plantillas)

Anexo 4.

El Futuro de Mambo.

Detrás de Mambo hay una empresa australiana, Miro que fue la que partió este proyecto

unos años atrás. Como precursora del proyecto, decidió hacer una versión de Código

Abierto de su Mambo CMS, y para ello tuvo la idea de abrir una comunidad de desarrollo

como se hace con el común de los proyectos.

Esta comunidad ha crecido de una manera desorbitada y gracias a ello Mambo Open

Source ha ganado muchos premios entre ellos “La mejor solución Open Source 2005”,

superando a otros proyectos Open Source como Firefox, xoops, etc.

Para salvaguardar todo esto y poder controlarlo, se ha inventado una fundación que controla

el proyecto. En el mes de agosto esta fundación decide hacer comercial el proyecto y

quedarse con la marca registrada de mambo. El equipo de desarrolladores, no acepto el

cambio, pues ellos son seguidores del software libre, por lo cual se marginaron del proyecto

mambo.
146

Así nace “Joomla 1.0” que es la última versión de mambo que trabajaron los

desarrolladores del proyecto y que debido al desacuerdo de visiones e intereses se separó

del proyecto original. Ahora el proyecto Open Source “Joomla” sigue de manos de los

desarrolladores originales y una comunidad nueva desarrollándose en la línea del software

libre.

La fundación que comercializa mambo sigue trabajando en el proyecto con una nueva

comunidad de desarrolladores, con costes de licencia a partir de las ultimas versiones y con

la marca registrada del producto Mambo.