Avances tecnológicos del siglo XXI y ejemplos de estos
Joomla!
1. Joomla!
Óliver Centeno Álvarez
Septiembre 2010
Julio 2010 Joomla! 1
2. Contenidos
I. Instalación de Joomla!
II. Gestión y organización de contenidos
III. Instalación de extensiones
IV. Diseño y aspecto estético de los sitios
Joomla!
V. Menús de Navegación
VI. Funciones Adicionales
VII. Seguridad
Septiembre 2010 Joomla! 2
3. Contenidos
I. Instalación de Joomla!
II. Gestión y organización de contenidos
III. Instalación de extensiones
IV. Diseño y aspecto estético de los sitios
Joomla!
V. Menús de Navegación
VI. Funciones Adicionales
VII. Seguridad
Septiembre 2010 Joomla! 3
4. I. Instalación de Joomla!
o Requisitos previos
o MySQL 3.23 o superior (recomendado 4.1.22)
o Apache 1.3 o superior (recomendado 2.0.61)
o PHP 4.3 o superior (recomendado 4.4.7)
o Con soporte para MySQL, XML y Zlib (php.ini)
o No recomendado
o PHP 4.3.9, 4.4.2 ni 5.0.4 ya que presentan
bugs que interfieren la instalación de Joomla!
o UBUNTU 10 cumple todos los requisitos
Septiembre 2010 Joomla! 4
5. I. Instalación de Joomla!
o Descarga de Joomla!
o http://www.joomla.org/download.html
Septiembre 2010 Joomla! 5
6. I. Instalación de Joomla!
o Comprobar que Apache y PHP funcionan
1. Abrir http://localhost/
2. Crear un fichero PHP en /var/www
<?php
phpinfo();
?>
3. Extraer el contenido del Joomla en /var/www/joomla
4. Abrir http://localhost/joomla
Septiembre 2010 Joomla! 6
8. I. Instalación de Joomla!
o Tips
o Comprobar el acceso a MySQL
mysql –u <usuario> -p
o Crear una base de datos para Joomla!
CREATE DATABASE joomla;
o Crear un usuario para Joomla!
GRANT ALL ON joomla.* TO <usuario>
IDENTIFIED BY '<password>';
FLUSH PRIVILEGES;
o Utilizar contraseñas seguras
o Entre 6 y 10 caracteres
o Mayúsculas, minúsculas, números y caracteres extraños
o No legible
Septiembre 2010 Joomla! 8
19. I. Instalación de Joomla!
Otras alternativas
Manualmente crear el fichero configuration.php
Clase php con los campos de configuración
correspondientes
Manualmente modificar el script SQL
En installation/sql/mysql/joomla.sql
Usar un panel de control (cPanel, LxAdmin,…)
Para instalar Joomla! en sitios de hosting
Septiembre 2010 Joomla! 19
20. Contenidos
I. Instalación de Joomla!
II. Gestión y organización de contenidos
III. Instalación de extensiones
IV. Diseño y aspecto estético de los sitios
Joomla!
V. Menús de Navegación
VI. Funciones Adicionales
VII. Seguridad
Septiembre 2010 Joomla! 20
21. II. Gestión y organización de
contenidos
o Página Web
o CMS (Content Management System)
Septiembre 2010 Joomla! 21
22. II. Gestión y organización de
contenidos
o Menú de administración
o Accesible desde la página de inicio
o O desde http://localhost/administrator
o Usuario "admin" con el password creado
o Permite
o Añadir y gestionar artículos
o Gestionar secciones, menús, página de inicio,…
o Crear y gestionar cuentas de usuario
o Manejar ficheros multimedia
o …
Septiembre 2010 Joomla! 22
23. II. Gestión y organización de
contenidos
Septiembre 2010 Joomla! 23
24. II. Gestión y organización de
contenidos
o Organización de artículos
o Modelo de "periódico"
o Sección
o Nivel superior de jerarquía de artículos
o Por defecto: About, News, FAQs, Newsflashes
o Categoría
o Nivel inferior de jerarquía de artículos
o About Joomla!: Project, CMS, Community
o Contenido estático sin categorizar
o No jerárquicos ni agrupables
o Se muestra como una página separada ¿dónde?
o No recomendado!!
Septiembre 2010 Joomla! 24
25. II. Gestión y organización de
contenidos
Septiembre 2010 Joomla! 25
26. II. Gestión y organización de
contenidos
Septiembre 2010 Joomla! 26
27. II. Gestión y organización de
contenidos
Septiembre 2010 Joomla! 27
28. II. Gestión y organización de
contenidos
Septiembre 2010 Joomla! 28
29. II. Gestión y organización de
contenidos
Septiembre 2010 Joomla! 29
30. II. Gestión y organización de
contenidos
Septiembre 2010 Joomla! 30
31. II. Gestión y organización de
contenidos
o Gestión de artículos
o Article Manager
o Filtros por sección y categoría
o Filtros por autor y estado de publicación
o Filtro textual
o Permite
o Publicar y retirar artículos
o Archivar y desarchivar
o Editar artículos
o Mover de una categoría a otra
o Ordenar por cualquier campo
Septiembre 2010 Joomla! 31
32. II. Gestión y organización de
contenidos
Septiembre 2010 Joomla! 32
33. II. Gestión y organización de
contenidos
Septiembre 2010 Joomla! 33
34. II. Gestión y organización de
contenidos
Septiembre 2010 Joomla! 34
35. II. Gestión y organización de
contenidos
Organización Paso A Paso
1. Eliminar las secciones, categorías y artículos
de ejemplo
Todos los artículos de cada categoría antes que ésta
Todas las categorías de cada sección antes que ésta
Papelera de reciclaje (Trash Manager)
2. Crear Mis Secciones
Section Manager
3. Crear Mis Categorías
Category Manager
4. Crear Mis Artículos
Article Manager
Septiembre 2010 Joomla! 35
36. II. Gestión y organización de
contenidos
Septiembre 2010 Joomla! 36
37. II. Gestión y organización de
contenidos
Septiembre 2010 Joomla! 37
38. II. Gestión y organización de
contenidos
Septiembre 2010 Joomla! 38
39. II. Gestión y organización de
contenidos
Septiembre 2010 Joomla! 39
40. II. Gestión y organización de
contenidos
Septiembre 2010 Joomla! 40
41. II. Gestión y organización de
contenidos
Septiembre 2010 Joomla! 41
42. II. Gestión y organización de
contenidos
Septiembre 2010 Joomla! 42
43. II. Gestión y organización de
contenidos
Tips
No se pueden eliminar categorías si hay
artículos en la papelera
Las categorías no se pueden recuperar (no hay
papelera de categorías)
Una vez eliminadas las categorías se pueden
eliminar las secciones
No es recomendable conservar artículos no
publicados o artículos en la papelera
Mejor hacer copia de seguridad y eliminarlos
Septiembre 2010 Joomla! 43
44. II. Gestión y organización de
contenidos
Septiembre 2010 Joomla! 44
45. II. Gestión y organización de
contenidos
Septiembre 2010 Joomla! 45
46. II. Gestión y organización de
contenidos
Crear una sección
Título: de la sección
Alias: para que Joomla! la identifique
Sin espacios, todo minúscula, sin caracteres raros
Se usa como primer subdirectorio de las URLs
Sección: nombre largo para la sección
Publicada: indica si se debe publicar
Acceso: para indicar qué grupos de usuarios pueden ver
la sección
Imagen: icono para la sección
Posición de la imagen: izqda, dcha o centrada
Detalles: descripción de la sección
Septiembre 2010 Joomla! 46
47. II. Gestión y organización de
contenidos
Septiembre 2010 Joomla! 47
48. II. Gestión y organización de
contenidos
Crear una categoría
Título: de la categoría
Alias: para que Joomla! la identifique
Sin espacios, todo minúscula, sin caracteres raros
Se usa como segundo subdirectorio de las URLs
http://???/alias-seccion/alias-categoria/alias-articulo.html
Publicada: indica si se debe publicar
Acceso: para indicar qué grupos de usuarios pueden ver
la sección
Imagen: icono para la sección
Posición de la imagen: izqda, dcha o centrada
Detalles: descripción de la sección
Septiembre 2010 Joomla! 48
49. II. Gestión y organización de
contenidos
Septiembre 2010 Joomla! 49
50. II. Gestión y organización de
contenidos
Editores WYSIWYG
TinyMCE
Sencillo y con buenas propiedades de edición
Seleccionado por defecto
Máximo artículos de 200KB (~20.000 palabras)
XStandard Lite
Añade más capacidades
Preinstalado pero desactivado
Requiere un plugin especial en el cliente
JCE
http://www.joomlacontenteditor.net/
Instalable como extensión de Joomla!
Se configuran desde Global Configuration
Septiembre 2010 Joomla! 50
51. II. Gestión y organización de
contenidos
Septiembre 2010 Joomla! 51
52. II. Gestión y organización de
contenidos
Septiembre 2010 Joomla! 52
53. II. Gestión y organización de
contenidos
Instalación JCE
1. Descargar el paquete com_jce_1574_package.zip
2. Activar permisos de escritura en:
<joomla>/tmp
<joomla>/plugins
<joomla>/components
<joomla>/language
<joomla>/administrator/components
<joomla>/administrator/language
3. Ejecutar la instalación de extensiones Joomla!
Extensions > Install/Uninstall
4. Seleccionar el fichero ZIP descargado
5. Activar JCE como editor
Septiembre 2010 Joomla! 53
54. II. Gestión y organización de
contenidos
Septiembre 2010 Joomla! 54
55. II. Gestión y organización de
contenidos
Septiembre 2010 Joomla! 55
56. II. Gestión y organización de
contenidos
Creación de artículos
Título y alias
Sección y categoría
Publicado y página frontal (Front Page)
Autor (usuario) y alias (nombre visible)
Fechas de creación, publicación y cierre
Septiembre 2010 Joomla! 56
57. II. Gestión y organización de
contenidos
Parámetros avanzados
Modifican la configuración
global de artículos
Mostrar título
Usar título como enlace
Mostrar texto introductorio
Mostrar nombre de la sección
Usar nombre de la sección
como enlace
Mostrar botones para
conversión a PDF, imprimir o
enviar correo
…
Septiembre 2010 Joomla! 57
58. II. Gestión y organización de
contenidos
Metainformación
Se utiliza para los buscadores
Permite indicar palabras clave,
descripción, autor,…
Los spammers han abusado de
las palabras clave por lo que los
buscadores las usan poco
Es mejor poner una buena
descripción con las palabras
importantes en ella
Septiembre 2010 Joomla! 58
59. II. Gestión y organización de
contenidos
El Editor JCE
Características de procesamiento de texto
Fuentes, estilos, listas, cut-copy-paste, párrafos,
buscar/reemplazar, indentación, caracteres raros,…
Características Web
Emoticonos, enlaces, sub/superíndices, tablas,…
Septiembre 2010 Joomla! 59
60. II. Gestión y organización de
contenidos
Elementos especiales
Editor de estilos CSS
Carácter de control de espacios
Citas, abreviaturas y acrónimos
Editor de código HTML
Corrector de ortografía
Paginación (Pagebreak)
Leer más… (Read more)
Eventos JavaScript
Septiembre 2010 Joomla! 60
61. Contenidos
I. Instalación de Joomla!
II. Gestión y organización de contenidos
III. Instalación de extensiones
IV. Diseño y aspecto estético de los sitios
Joomla!
V. Menús de Navegación
VI. Funciones Adicionales
VII. Seguridad
Septiembre 2010 Joomla! 61
62. III.Instalación de extensiones
o 5 tipos de extensiones
o Plugins
o Módulos
o Componentes
o Plantillas
o Idiomas
o Plugins (Menú Extensions > Plugin Manager)
o Extensiones más avanzadas
o Interceptan y pueden modificar los datos que
intercambian el usuario y el servidor
o Editores WYSIWYG por ej.
o Se descargan e instalan, no se crean nuevos
Septiembre 2010 Joomla! 62
63. III.Instalación de extensiones
o Módulos (Menú Extensions > Modules Manager)
o Elementos que muestran información
o Pueden aparecer muchos en cada página
o Encuestas, login, banners por ej.
o Componentes (Menú Components)
o Más potentes que los módulos
o Permiten ejecutar mini-aplicaciones
o Generan una página completa, sólo existe 1
o Foro o Front Page por ej.
Septiembre 2010 Joomla! 63
64. III.Instalación de extensiones
o Repositorio de Extensiones. http://extensions.joomla.org/
o Administración
o Advanced Administrator Menu: Permite crear menús nuevos para
organizar mejor todo
o Duplicate Title Aliases: Muestra artículos con alias duplicados
o Broken Image Notifier: Manda email al perder una imagen
o JPosition: Permite administrar módulos por drag&drop
o Backup
o Akeeba: Backup basado en AJAX con planificador tipo CRON
o Diagnóstico
o JDiagnostic: Pruebas de conexión, configuración, LDAP, AD, SSO,…
o Eventos
o Event Table Edit: Tabla de eventos editable
o JEvents: Componente de integración de calendarios de eventos
Septiembre 2010 Joomla! 64
65. III.Instalación de extensiones
o Imágenes
o Art Sexy Lightbox: Módulo para mostrar imágenes
o JoomGallery: Componente para galería de imágenes
o Phoca gallery: Componente para galería de imágenes
o Ficheros
o eXtplorer: Componente de gestión de ficheros
o joomlaExplorer: Gestor de ficheros y FTP
o Flash Uploader: Plugin para subir ficheros Flash 10
o Random Flash Module: Módulo para mostrar videos Flash
o Attachments for articles: Permite añadir adjuntos a los
artículos
o Foros
o Agora: Componente de foro
o Kunena: Componente de foro
Septiembre 2010 Joomla! 65
66. III.Instalación de extensiones
o Multimedia
o JoomLine: Reproductor de MP3
o YouTube: Plugin para insertar el reproductor de YouTube
o JPlayer: Plugin par reproducir videos
o Relojes
o Art Clock: Añade un reloj a mis páginas
o World Time: Muestra la hora de cualquier zona del mundo
o AH Countdown: Reloj de cuenta atrás
o SEF (Search Engine Friendly URLs)
o Unicode slugs SEF: Admite URLs con acentos
o com_error404: Componente para personalizar errores 404
o Seguridad
o RSFirewall!: Servicio de seguridad para Joomla!
o kareebu Secure: Plugin de securización de acceso
o Encryption configuration: Codificador RSA para
contraseñas
Septiembre 2010 Joomla! 66
67. III.Instalación de extensiones
o Templates
o Template Selector: Permite cambiar las plantillas de
la Web
o Template Chooser: Permite cambiar el template en el
front-end
o Otros
o GoogleMaps: Plugin para mostrar mapas de google
o googleSearch: Componente con el buscador Google
o OnlineBabyloon: Traductor multi-idioma
o J2XML: Componente para importar y exportar a XML
o Alfresco Integration: Permite acceder a servicios de
Alfresco
o TweetXT: Módulo para mostrar tweets de tweeter
o myApi: API para integración con Facebook
o Xmap: Generador de mapas del sitio Web
Septiembre 2010 Joomla! 67
68. Contenidos
I. Instalación de Joomla!
II. Gestión y organización de contenidos
III. Instalación de extensiones
IV. Diseño y aspecto estético de los sitios
Joomla!
V. Menús de Navegación
VI. Funciones Adicionales
VII. Seguridad
Septiembre 2010 Joomla! 68
69. IV. Diseño y aspecto estético de los
sitios Joomla!
o 6 gestores para el contenido de Joomla!
o Section Manager
o Category Manager
o Front Page manager
o Article Manager
o Media Manager
o Trash Manager
o ¿Y el aspecto? Template Manager
o Permite seleccionar y editar platillas
o HTML (PHP) y CSS
o Permite modificar la página index
o Permite modificar parámetros de las plantillas
Septiembre 2010 Joomla! 69
70. IV. Diseño y aspecto estético de los
sitios Joomla!
o Template Manager
o Administrador de plantillas
o Beez
o rhuk_milkyway
o Khepri
o J960
o Rumi
o …
o No permite crear plantillas nuevas
o Permite cambiar de plantilla
o Mejor usar Template Chooser / Selector
Septiembre 2010 Joomla! 70
71. IV. Diseño y aspecto estético de los
sitios Joomla!
o Plantillas
o templateDetails.xml
o Contiene la configuración de la plantilla (nombre, autor,
archivos, posiciones, parámetros,…)
o index.php
o Página principal que muestra controles, módulos y texto
o Código PHP
o Se guardan en <joomla>/templates/<nombre de la
plantilla>
o Se instalan como otras extensiones
o Hay plugins para los diseñadores habituales y Eclipse
o Joomla! Template Toolbar genera código sin conocer
PHP
Septiembre 2010 Joomla! 71
72. IV. Diseño y aspecto estético de los
sitios Joomla!
o index.php
<html>
<head>
<!-- incluyo metainformación del sitio -->
<jdoc:include type="head"/>
</head>
<body>
<jdoc:include type="message" />
<div class="center" align="center">
Hola Joomla!!
</div>
<!-- habilito la depuración por si acaso -->
<jdoc:include type="modules" name="debug" />
</body>
</html>
Septiembre 2010 Joomla! 72
73. IV. Diseño y aspecto estético de los
sitios Joomla!
o templateDetails.xml
<?xml version="1.0" encoding="utf-8"?>
<install version="1.5" type="template">
<name>Hola Joomla</name>
<description>Plantilla sencilla</description>
<files>
<filename>index.php</filename>
<filename>templateDetails.xml</filename>
</files>
</install>
Septiembre 2010 Joomla! 73
74. IV. Diseño y aspecto estético de los
sitios Joomla!
o index.php con Módulos
<div class="center" align="center">Hola Joomla!! </div>
<!-- añado módulos predeterminados dentro de una tabla -->
<table>
<tr><td>
<jdoc:include type="modules"
name="user1" style="xhtml" />
</td></tr>
<tr><td>
<jdoc:include type="modules"
name="user2" style="xhtml" />
</td></tr>
</table>
<!-- añado un componente por defecto -->
<jdoc:include type="component" />
Septiembre 2010 Joomla! 74
75. IV. Diseño y aspecto estético de los
sitios Joomla!
top
breadcrumb user3 user4
user1 user2
left Componente por defecto
com_content right
footer
syndicate
Septiembre 2010 Joomla! 75
76. IV. Diseño y aspecto estético de los
sitios Joomla!
Septiembre 2010 Joomla! 76
77. IV. Diseño y aspecto estético de los
sitios Joomla!
o index.php con condiciones
<!-- si el módulo left contiene elementos -->
<?php if($this->countModules('left')) : ?>
<jdoc:include type="modules" name="left"
style="xhtml" />
<!– y si no -->
<?php else: ?>
<div class="center" align="center">Error</div>
<?php endif; ?>
Septiembre 2010 Joomla! 77
78. IV. Diseño y aspecto estético de los
sitios Joomla!
o templateDetails.xml con CSS y miniatura
<?xml version="1.0" encoding="utf-8"?>
<install version="1.5" type="template">
<name>Hola Joomla</name>
<description>Plantilla sencilla</description>
<files>
<filename>index.php</filename>
<filename>templateDetails.xml</filename>
<filename>template_thumbnail.png</filename>
<filename>css/estilos.css</filename>
<filename>images/imagen_del_css.png</filename>
<filename>params.ini</filename>
</files>
</install>
Septiembre 2010 Joomla! 78
79. IV. Diseño y aspecto estético de los
sitios Joomla!
o index.php con CSS
<html>
<head>
<jdoc:include type="head"/>
<link rel="stylesheet" type="text/css" href="
<?php echo $this->baseurl ?>
/templates/holaTemplate/css/estilos.css" />
</head>
<body>
<jdoc:include type="message" />
<div class="pill" align="center">
Hola <?php echo $this->params->get('nombre'); ?>
</div>
</body>
</html>
Septiembre 2010 Joomla! 79
80. IV. Diseño y aspecto estético de los
sitios Joomla!
o templateDetails.xml completo
<?xml version="1.0" encoding="utf-8"?>
<install version="1.5" type="template">
...
<!– creo posiciones personalizadas -->
<positions>
<position>arriba</position>
<position>abajo</position>
</positions>
<!-- pongo valores configurables a mis parámetros -->
<params>
<param name="color" type="list" label="elija color" >
<option value="rojo">Rojo</option>
<option value="azul">Azul</option>
</param>
</params>
</install>
Septiembre 2010 Joomla! 80
81. IV. Diseño y aspecto estético de los
sitios Joomla!
o index.php con validación de documento
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0
Transitional//EN" "http://www.w3.
org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="<?
php echo $this->language; ?>" lang="<?php echo
$this->language; ?>" >
<head>
...
</head>
<body>
...
</body>
</html>
Septiembre 2010 Joomla! 81
82. Contenidos
I. Instalación de Joomla!
II. Gestión y organización de contenidos
III. Instalación de extensiones
IV. Diseño y aspecto estético de los sitios
Joomla!
V. Menús de Navegación
VI. Funciones Adicionales
VII. Seguridad
Septiembre 2010 Joomla! 82
83. V. Menús de Navegación
o Menu Manager
o Permite crear y agrupar menús
o Tipos de menú predefinidos
o mainmenu
o usermenu
o topmenu
o Cada menú contiene items de menú jerárquicos
o Cada item tiene un padre (menú u otro item)
o Cada item es de un tipo que indica su enlace
o No conviene tener muchos niveles
o Se configuran los menús como módulos
o mod_mainmenu
Septiembre 2010 Joomla! 83
84. V. Menús de Navegación
Septiembre 2010 Joomla! 84
85. V. Menús de Navegación
Septiembre 2010 Joomla! 85
86. V. Menús de Navegación
o Module Manager
o Permite crear y agrupar menús
o Tipos de menú predefinidos
o mainmenu
o usermenu
o topmenu
o Cada menú contiene items de menú jerárquicos
o Cada item tiene un padre (menú u otro item)
o Cada item es de un tipo que indica su enlace
o No conviene tener muchos niveles
o Se configuran los menús como módulos
o mod_mainmenu
Septiembre 2010 Joomla! 86
87. V. Menús de Navegación
Septiembre 2010 Joomla! 87
88. V. Menús de Navegación
Septiembre 2010 Joomla! 88
89. Contenidos
I. Instalación de Joomla!
II. Gestión y organización de contenidos
III. Instalación de extensiones
IV. Diseño y aspecto estético de los sitios
Joomla!
V. Menús de Navegación
VI. Funciones Adicionales
VII. Seguridad
Septiembre 2010 Joomla! 89
90. VI. Funciones Adicionales
o Global Configuration
o Site
o Permite configurar parámetros de la Web
o Estado, nombre, editor, metainformación,…
o System
o Permite configurar el funcionamiento del servidor
o Caché, ficheros, registro de usuarios, sesiones,…
o Server
o Permite configurar parámetros de Joomla! Server
o Base de datos, FTP, SSL, mail, locale,…
Septiembre 2010 Joomla! 90
92. VI. Funciones Adicionales
o User Manager
o Grupos: Front-end y Back-end (admin)
o Registrado: Lectores de contenido privado
o Autor: Pueden crear y modificar sus artículos
o Editor: Puede editor artículos de otros
o Publicador: Puede publicar/retirar contenidos
o Gestor: Puede gestionar secciones y categorías
o Administrador: Puede instalar extensiones, cambiar
plantillas y cambiar permisos de usuarios
o Super Administrador: root
o Bridges
o Para autenticar contra otros sistemas
o LDAP, AD, Gmail,…
Septiembre 2010 Joomla! 92
94. VI. Funciones Adicionales
o ACL
o Access Control List
o Joomla lo implementa complementado con ARO
(Access Request Objects)
o Muy complicado con tablas raras
o Estructura en forma de árbol de los grupos
o Recomendado: noixACL
o Componente
o Adaptadores
o Módulo
Septiembre 2010 Joomla! 94
97. VI. Funciones Adicionales
o Community Builder
o Reemplaza el módulo de login y la gestión de usuarios
de Joomla (desactivarlos)
o Permite añadir campos a la tabla de usuarios
o Permite crear listas de los usuarios
o Incluye sus propios plugins
o Google Maps, IM, PonyGalley, seguimiento de sesiones,…
o Incluye herramientas de sincronización y carga de
datos
o Extensiones
o Compofiler: Componente principal
o CBlogin: Módulo de registro y login
o mod_comprofileronline: Módulo de usuarios conectados
Septiembre 2010 Joomla! 97
99. VI. Funciones Adicionales
o Community Builder
o Gestión de usuarios
o Gestión de campos
o Gestión de listas (grupos de usuarios)
o Gestión de plugins
o Herramientas
o Carga de datos de prueba
o Sincronización de usuarios
o Tests de integridad
o Configuración
Septiembre 2010 Joomla! 99
101. VI. Funciones Adicionales
o Creación de Módulos
o Al igual que las plantillas se componen de
o un fichero de código PHP
o un XML de configuración
o El fichero XML es similar al de la plantilla
o El nombre no es relevante (mod_modulo.xml)
o El fichero PHP es directamente código ejecutable
o Clase JText::_('texto') permite que se intercepte el texto
con un plugin de traducción
o Clase JFactory permite crear objetos (patrón factoría)
o Concatenación con punto '.'
Septiembre 2010 Joomla! 101
102. VI. Funciones Adicionales
o mod_mimodulo.xml
<?xml version="1.0" encoding="utf-8" ?>
<install version="1.5" type="module">
<name>Módulo de prueba</name>
<author>Yo mismo</author>
<creationDate>Jul 7, 2010</creationDate>
<version>1.5</version>
<description>Un plugin de autenticación</description>
<files>
<filename module="MiModulo">mod_mimodulo.php</filename>
</files>
<params>
<param name="campo" type="text" default="username"/>
</params>
</install>
Septiembre 2010 Joomla! 102
103. VI. Funciones Adicionales
o mod_mimodulo.php
<?php
defined('_JEXEC') or die('Acceso restringido');
$db =& JFactory::getDBO(); //accedo a la BBDD de Joomla!
$query = 'SELECT * FROM #__users';
$db->setQuery($query);
echo "<table border=1>";
echo "<tr><td>Usuario</td><td>Password</td></tr>";
foreach($db->loadObjectList() as $row){
echo "<tr><td><a href='mailto:". $row->email . "'>";
echo $row->username ."</a></td>";
echo "<td>". $row->password ."</td></tr>";
}
echo "</table>";
?>
Septiembre 2010 Joomla! 103
104. VI. Funciones Adicionales
o Creación de Plugins
o Clase PHP que extiende la clase JPlugin
o Con un nombre especial
o <tipo de plugin><nombre del plugin>
o Para autenticación: plgAuthentication + MiPlugin
o Debe tener un constructor
o function plgAuthenticationMiPlugin(& $subject)
o Y al menos un método según el tipo de plugin
o Para autenticación:
o function onAuthenticate($creds, $opts, &$resp)
o Fichero XML de configuración
o Similar al de templates
Septiembre 2010 Joomla! 104
105. VI. Funciones Adicionales
o miplugin.xml
<?xml version="1.0" encoding="utf-8" ?>
<install version="1.5" type="plugin" group="authentication">
<name>Authentication - Myauth</name>
<author>Yo mismo</author>
<creationDate>Jul 7, 2010</creationDate>
<version>1.5</version>
<description>Un plugin de autenticación</description>
<files>
<filename plugin="miplugin">miplugin.php</filename>
</files>
</install>
Septiembre 2010 Joomla! 105
106. VI. Funciones Adicionales
o miplugin.php
<?php
defined('_JEXEC') or die(); jimport('joomla.event.plugin');
class plgAuthenticationMiPlugin{
function plgAuthenticationMiPlugin(& $subject){
parent::__construct($subject);
}
function onAuthenticate($creds, $opts, &$resp){
$db =& JFactory::getDBO();
$query = 'SELECT ... user='.$db->quote($creds['usuario']);
$db->setQuery($query);
$result = $db->loadResult();
if(/* comprobación del password correcta */){
$email = JUser::getInstance($result);
$response->email = $email->email;
$response->status = JAUTHENTICATE_STATUS_SUCCESS;
}}}
?>
Septiembre 2010 Joomla! 106
107. Contenidos
I. Instalación de Joomla!
II. Gestión y organización de contenidos
III. Instalación de extensiones
IV. Diseño y aspecto estético de los sitios
Joomla!
V. Menús de Navegación
VI. Funciones Adicionales
VII. Seguridad
Septiembre 2010 Joomla! 107
108. VII.Seguridad
o Premisas
o Joomla! es fácil de instalar y administrar
o Es fácil dejar puertas abiertas
o Permisos sobre directorios
o Carpeta installation
o Fichero configuration.php
o phpInfo()
o Cuenta admin de Joomla!
o Utilidades
o PHP mod_security y mod_rewrite (en Apache)
o SEF
o Joomla! Tools Suite
Septiembre 2010 Joomla! 108
110. VII.Seguridad
o Joomla! Tools Suite
o Web que comprueba distintas configuraciones
de seguridad
o Copiar a <joomla>/jts
o Existe un componente para Joomla! 1.0
o Modo “heredado” (legacy) para poder usarlo
o Plugin “System – legacy”
o Añade distintas auditorías del sistema
o No repara los agujeros de seguridad
o La compatibilidad hacia atrás puede afectar a
otros módulos y componentes
Septiembre 2010 Joomla! 110
113. VII.Seguridad
o Joomla Authentication Tools (plugins LDAP)
o Authentication – LDAP
o Configuración básica contra el servidor
o Authentication – Advanced LDAP
o Habilita/deshabilita sincronización de usuarios
o User – LDAP
o Configuración de parámetros DN, CN, GID, UID,…
o User Source – LDAP
o Mapeo configurable de grupos usuarios LDAP-Joomla!
o User Source – Session
o Para usar con SSO y obtener datos del usuario de la
sesión
o JDiagnostics
Septiembre 2010 Joomla! 113
118. VII.Seguridad
o Notas AD
o En AD se usa el nombre de usuario como DN
o Configuración recomendada:
o host=ad.joomla.org
o port=389 (o 3268 si aloja varios dominios)
o use_ldapV3=1
o negotiate_tls=0
o no_referrals=0
o auth_method=search
o base_dn=DC=joomla,DC=org
o search_string=sAMAccountName=[search]
o users_dn=CN=[username],CN=Users,DC=joomla,DC=org
o username=admin
o password=password
o ldap_fullname=displayName
o ldap_email=mail
o ldap_uid=sAMAccountName
Septiembre 2010 Joomla! 118
119. VII.Seguridad
o Notas AD
o En Authentication – LDAP
o Configurar los parámetros
del plugin tal y como se
indica en la página anterior
o Válido para Joomla! 1.5
Septiembre 2010 Joomla! 119
120. VII.Seguridad
o Notas OpenLDAP
o Configuración de ejemplo:
o host=horloge.pasamio.homelinux.net
o port=389 (o 3268 si aloja varios dominios)
o use_ldapV3=1
o negotiate_tls=0
o no_referrals=0
o auth_method=search
o base_dn=dc=pasamio,dc=homelinux,dc=net
o search_string=uid=[search]
o users_dn=uid=[username],ou=users,dc=pasamio,
dc=homelinux,dc=net
o username=
o password=
o ldap_fullname=fullName
o ldap_email=mail
o ldap_uid=uid
Septiembre 2010 Joomla! 120
121. VII.Seguridad
o Notas OpenLDAP
o En Authentication – LDAP
o Configurar los parámetros
del plugin tal y como se
indica en la página anterior
o Válido para Joomla! 1.5
Septiembre 2010 Joomla! 121
122. VII.Seguridad
o Notas Mapeo de Grupos (User Source – LDAP)
o Formato
grupoLDAP;IDgrupoJoomla;TipoUsuarioJoomla;Prioridad
o Un usuario miembro de 2 grupos se resuelve por prioridad
o Tabla de grupos Joomla! por defecto
Septiembre 2010 Joomla! 122
123. Muchas Gracias
Óliver Centeno Álvarez
Julio 2010 Joomla! 123