drupal 7 (2)

176
Drupal 7 CRIF "Las Acacias" Abril – 2011 Juan Félix Mateos

Upload: jecol59

Post on 30-Nov-2014

18.688 views

Category:

Technology


4 download

DESCRIPTION

Presentacion de drupal 7Agradecimientos a su autor para los drupaleros, uno de los mejores resumenes

TRANSCRIPT

Page 1: Drupal 7 (2)

Drupal 7CRIF "Las Acacias"

Abril – 2011Juan Félix Mateos

Page 2: Drupal 7 (2)

¿Qué es Drupal?

• Drupal es un gestor web de contenidos (CMS) que se distribuye con licencia GNU-GPL (software libre) y desarrollado con PHP.

• Drupal es la traducción del término neerlandés druppel, que significa gota.

• El fundador de Drupal es el belga de 32 años Dries Buytaert, que lo presentó por primera vez en 2001.

Page 3: Drupal 7 (2)

Características principales de Drupal

• Drupal en sí, lo que conocemos como Drupal Core, ofrece una funcionalidad muy reducida, pero es una base muy bien diseñada para que otros puedan ampliar esa funcionalidad a través de extensiones, que se conocen como Módulos contribuidos. Tanto es así que muchos definen a Drupal más como un Framework que como un CMS.

• Drupal es extraordinariamente flexible.• El código de Drupal está muy optimizado, por lo que es un

sistema relativamente rápido teniendo en cuenta lo amplio de su espectro de aplicación.

• Mediante los temas podemos configurar completamente el aspecto de nuestros sitios.

Page 4: Drupal 7 (2)

¿Quién utiliza Drupal?

• La casa Blanca: http://www.whitehouse.gov/• ING Direct: http://ing.us• The Economist: http://www.economist.com/ • El parlamento vasco:

http://www.parlamentovasco.euskolegebiltzarra.org/eu/

• Rafa Nadal: http://www.rafaelnadal.com/• Garming, McDonnals, Christina Aguilera, Mensa,

Intel, BBC, Linux Journal, Stanford University,

Page 5: Drupal 7 (2)

Algunos puntos débiles de Drupal…

• La interfaz de administración de Drupal resulta compleja y poco manejable.

• Su extraordinaria flexibilidad lo convierten en un producto complicado de configurar cuando se quieren desarrollar sitios avanzados.

• Drupal procura mantenerse siempre en la cresta de la ola de la tecnología, sacrificando para ello la compatibilidad de unas versiones con las anteriores.– The drop is always moving

Page 6: Drupal 7 (2)

… y sus posibles excusas• La versión 7 de Drupal ha mejorado notablemente la

usabilidad de la interfaz de administración mediante el uso de overlays.

• Aunque Drupal es complejo de configurar, permite crear sitios avanzados que con otros sistemas simplemente serían imposibles o requerirían programación "ad hoc" de extensiones, lo que suele resultar aún más complicado.

• Al renunciar a la compatibilidad con versiones anteriores consigue que el código sea más elegante y eficiente, además de aprovechar los últimos avances tecnológicos.

Page 7: Drupal 7 (2)

Las versiones de Drupal• En todo momento están disponibles tres versiones de Drupal

que son las únicas para las que se ofrecen actualizaciones de seguridad.– Versión de desarrollo: No se recomienda su uso en sitios en

explotación.– Versión actual estable: Es la versión recomendada para sitios en

explotación.– Versión anterior estable: Se recomienda la actualización de esta

versión a la siguiente.• Drupal incluye un módulo que nos avisa cuando se publican

nuevas versiones de Drupal o aparece un parche que resuelve un fallo de seguridad importante.

• A fecha de hoy, la versión actual de Drupal es la 7.0, y la anterior es la 6.20.

Page 8: Drupal 7 (2)

¿Cómo será Drupal 8?

• Estará pensado para mostrar contenidos en todo tipo de dispositivos (móviles, tabletas, …) apostando por el estándar HTML 5.

• Integración con servicios en la nube.• Gestión de configuraciones, de modo que

resulte más sencillo aplicar cambios en nuestros sitios, duplicarlos, o volver a una configuración anterior.

• Mejor accesibilidad para discapacitados.

Page 9: Drupal 7 (2)

Actualización de Drupal

• Cada vez que se presenta una versión nueva de Drupal sólo incluye la actualización del núcleo y de los módulos del núcleo, pero no de los módulos contribuidos.

• Es responsabilidad de los desarrolladores de los módulos contribuidos adaptarlos a la nueva versión, y esto puede requerirles meses, o incluso renunciar a actualizarlos… por este motivo es aconsejable utilizar sólo módulos contribuidos de prestigio que ofrezcan garantías sobre su continuidad en el futuro.

Page 10: Drupal 7 (2)

Sitios estáticos versus dinámicos I

Page 11: Drupal 7 (2)

Sitios estáticos versus dinámicos II

<html> <head> <title>Página estática</title> </head> <body> <p>Son las 19:30:25</p> </body></html>

<html> <head> <title>Página dinámica</title> </head> <body> <p>Son las <?php echo

date("h:i:s");?></p> </body></html>

Page 12: Drupal 7 (2)

¿Cómo funciona Drupal?

• Drupal es una aplicación que se ejecuta sobre un servidor web y hace uso de PHP para efectuar consultas sobre una base de datos y construir dinámicamente las páginas que sirve al usuario utilizando estándares web como XHTML, CSS y JavaScript.

• En cierta forma Drupal es un intermediario entre los datos y los usuarios, encargado de suministrárselos en un formato atractivo y de ofrecerles opciones de interacción sobre ellos.

Page 13: Drupal 7 (2)

La estratificación de Drupal

Page 14: Drupal 7 (2)

Instalación de Drupal: Requisitos previos• Para instalar Drupal necesitamos:– Espacio de alojamiento en un servidor web provisto de

PHP 5.3 Generalmente se utiliza el servidor Apache (Apache 1.3 o 2.x).

– Acceso a una base de datos web (Drupal puede albergar sus tablas en una base de datos exclusiva o dentro de una base de datos que ya utilicemos para otros sistemas como blogs, comercio electrónico, …). Generalmente se utiliza el servidor de bases de datos MySQL 5.0.15.• Extensión PDO de PHP.

– 64 MB de memoria para PHP y 120 segundos de ejecución para scripts.

Page 15: Drupal 7 (2)

Instalación de Drupal: Convertir nuestro ordenador local en un servidor web

• XAMPP: Windows y Linux• WampServer: Windows• MAMP: Macintosh

• Descargar e instalar WampServer de www.wampserver.com/en/

Page 16: Drupal 7 (2)

Instalación de Drupal: Modificar el archivo php.ini

• Acceder al archivo php.ini, que controla el funcionamiento de PHP, a través de W>PHP>php.ini, y modificar la siguiente línea:max_execution_time = 120 Que controla cuánto tiempo puede ocupar como máximo la ejecución de un script PHP.

Page 17: Drupal 7 (2)

Instalación de Drupal: Crear la base de datos• Si tenemos contratado un alojamiento remoto

es probable que la base de datos debamos crearla a través del panel de control (cPanel, Plesk).

• Si vamos a instalar Drupal en nuestro ordenador local podemos crear la base de datos directamente con phpMyAdmin.

Page 18: Drupal 7 (2)

Instalación de Drupal: Crear la base de datos con phpMyAdmin• El cotejamiento

debe ser utf8_spanish_ci

Page 19: Drupal 7 (2)

Instalación de Drupal: Crear un usuario para la base de datos• Página de inicio• Privilegios• Agregar un nuevo usuario

Page 20: Drupal 7 (2)

Instalación de Drupal: Descomprimir y colocar los archivos de Drupal en el servidor

• Descomprimir el archivo drupal-7.0.tar.gz utilizando, por ejemplo, 7-zip.org

• Copiar los archivos/carpetas anteriores en el servidor (mediante FTP en remoto, o directamente copiándolos a una subcarpeta dentro de c:/wamp/www).

• Una misma instalación de Drupal puede servirnos para varios sitios, facilitando así mucho las tareas de mantenimiento.

• En la carpeta sites/all colocaremos los módulos y temas que deseemos añadir a nuestra instalación básica de Drupal.

• Crear un duplicado del archivo sites/default/default.settings.php en la misma carpeta pero con el nombre settings.php y con los permisos 666.

Page 21: Drupal 7 (2)

Instalación de Drupal: Iniciar la instalación y traducir Drupal al castellano

1. Acceder a la dirección de nuestro servidor (por ejemplo, http://localhost/drupal).

2. Seleccionar la opción Standard y pulsar el botón Save and continue.

3. Hacer clic sobre el enlace Learn how to install Drupal in other languages.

4. Hacer clic sobre el enlace translation server.5. Descargar el archivo de la traducción al

castellanon (drupal-7.0.es.po), descomprimirlo y copiarlo en la carpeta Drupal (c:/wamp/www/drupal/profiles/standard/translations/).

6. Hacer clic sobre el enlace Reload the language selection page after adding translations.

Page 22: Drupal 7 (2)

Instalación de Drupal: Introducir los datos de la base de datos

• Mediante la sección Opciones avanzadas podemos añadir un prefijo a las tablas de Drupal de modo que se acoplen sin problemas en una base de datos que ya estemos usando para otro sistema.

• Es muy aconsejable indicar un prefijo para las tablas (por ejemplo, drupal_), pues así nos resultará más sencillo diferenciar qué tablas pertenecen a Drupal si en nuestra base de datos tenemos además otras tablas (por ejemplo, de Moodle).

Page 23: Drupal 7 (2)

Instalación de Drupal: Configuración inicial del sitio

• En el servidor de explotación es conveniente que el email utilice el mismo dominio que el servidor web.

• Usuario: admin• Contraseña: drupal• Verificar actualizaciones

automáticamente (privacidad)

Page 24: Drupal 7 (2)

Instalación de Drupal: Fin de la instalación

Page 25: Drupal 7 (2)

Instalación de Drupal: Resumen1. Instalar WAMP y configurar el php.ini con 120 segundos en

max_execution_time.2. Con phpMyAdmin, crear una base de datos y un usuario con todos

los privilegios sobre ella.3. Crear una subcarpeta para Drupal (llamada drupal) dentro de la

carpeta /wamp/www y copiar en ella los archivos descomprimidos de Drupal.

4. Duplicar el archivo /sites/default/default.settings.php en la misma carpeta pero con el nombre settings.php.

5. Iniciar la instalación de Drupal accediendo con el navegador web a la dirección localhost/drupal.

6. Descargar el archivo po de la traducción a español y copiarlo en la carpeta profiles/standard/translations.

7. Continuar la instalación y recordar el nombre de usuario y la contraseña asignada al usuario administrador.

Page 26: Drupal 7 (2)

Barra de herramientas/Toolbar

• La barra de herramientas ocupa la zona superior cuando estamos acreditados y sus opciones son:– Home: Página de inicio– Panel de control: Es una página resumen que podemos configurar a nuestro

gusto para que nos muestre, por ejemplo, los últimos contenidos o comentarios, quién está actualmente visitando nuestro sitio, …

– Contenido: Creación de nodos– Estructura: Bloques, menús, taxonomía y CCK– Apariencia: Control de temas– Personas: Gestión de usuarios, roles y permisos– Módulos: Activación, configuración y actualización de módulos.– Configuración: Información del sitio, URL limpias, Idiomas, …– Informes: Estado, actualizaciones, errores, …– Bienvenido xxx– Cerrar sesión

Page 27: Drupal 7 (2)

Solapa de atajos

• Es la barra que hay debajo de la de herramientas, y nos ofrece enlaces para acceder rápidamente a las páginas que mas usemos.

• Los enlaces que contiene son modificables e incluso podemos configurar distintos conjuntos de enlaces para mostrarlos en distintas situaciones.

Page 28: Drupal 7 (2)

Panel de control/Dashboard

• Es una página que podemos configurar a nuestro gusto para obtener de un vistazo la información que más nos interese (último contenidos añadidos al sitio, últimos comentarios, qué usuarios están actualmente visitando el sitio, …)

Page 29: Drupal 7 (2)

Reasignar una contaseña al administrador I• Si, por cualquier motivo no recordamos la contraseña del

administrador y no podemos recuperarla mediante la opción Solicitar una nueva contraseña del bloque Inicio de sesión (por ejemplo, hemos utilizado una dirección falsa para el administrador), tendremos que acudir a phpMyAdmin para editar la tabla users e introducir en el campo pass el hash de la nueva contraseña que deseemos asignar al administrador.

• Drupal 7 utiliza un algoritmo de hashing basado en SHA512, aderezado con técnicas de salting y stretching, y que finalmente se codifica en base64 y se precede con el identificador $S$.

Page 30: Drupal 7 (2)

Reasignar una contaseña al administrador II1. Crear un duplicado del archivo index.php de Drupal 7

llamado password.php.2. Añadir las líneas que se muestran en negrita a

continuación:drupal_bootstrap(DRUPAL_BOOTSTRAP_FULL);require_once 'includes/password.inc';echo user_hash_password('juanfe'); die();menu_execute_active_handler();

3. Acceder con el navegador al archivo password.php y copiar el hash del nuevo password.

4. Mediante phpMyAdmin, pegar en el campo pass del usuario 1 el password copiado anteriormente.

5. Borrar el archivo password.php.

Page 31: Drupal 7 (2)

Dirección temporalmente bloqueada tras 5 intentos de acreditación fallidos• Si introducimos incorrectamente nuestra

acreditación más de 5 veces, Drupal impedirá nuevos intentos durante un periodo de tiempo para evitar ataques por la fuerza.

• Si queremos saltarnos esta demora, tendremos que acceder a la base de datos con phpMyAdmin a la base de datos, y borrar de la tabla flood todas las entradas relacionadas con nuestra direción IP.

Page 32: Drupal 7 (2)

Activar las URLs limpias

• El uso de URLs limpias favorece que nuestro sitio sea correctamente indexado por los buscadores como Google.

• Activar el módulo rewrite_module de Apache mediante W>Apache>Apache modules>rewrite_module para que aparezca una marca de verificación a su izquierda.

• Seleccionar Configuración>URL limpias>Activar URL limpias.

Page 33: Drupal 7 (2)

Crear un contenido para la página inicial1. Seleccionar Agregar contenido.2. Elegir el tipo de contenido Página básica.3. Título: Bienvenido a mi sitio Drupal 7.4. Editar resumen.5. Resumen: Hoy he aprendido a instalar Drupal 7.6. Cuerpo: Es más fácil de lo que esperaba.7. Opciones de comentarios:

• Cerrada.8. Opciones de publicación:

• Publicado• Colocado en la página principal

Page 34: Drupal 7 (2)

Traducir el enlace « Read more »

1. Seleccionar Configuración>Traducir interfaz>Traducir.

2. Escribir Read more (la R en mayúscula) en El texto contiene y pulsar el boton Filtrar.

3. Pulsar editar en la entrada Read more.4. Escribir lo siguiente en Español:

Leer más<span class="element-invisible"> sobre @title</span>

5. Pulsar Guardar las traducciones.

Page 35: Drupal 7 (2)

Configurar un tema

• Los temas determinan el aspecto de nuestro sitio.

• Podemos tener un tema predeterminado para el sitio, y otro predeterminado para las tareas de administración.

• Pulsar el botón Opciones del tema Bartik para configurarlo.

Page 36: Drupal 7 (2)

Instalar un tema nuevo

1. El mejor sitio para obtener temas con seguridad es drupal.org.

2. Descargar el tema marinelli comprimido.

3. Instalarlo mediante Apariencia.

4. Activarlo y convertirlo en predeterminado.

5. Pulsar el botón Opciones del nuevo tema.

6. Cerrar la sesión para ver el nuevo aspecto de nuestro sitio.

Page 37: Drupal 7 (2)

Módulos: Activación/Desactivación• Los módulos son fragmentos de

código que añaden funcionalidad adicional a Drupal.

• Existen módulos del núcleo, que se distribuyen junto con Drupal, y módulos contribuidos que podemos instalar de forma separada.

• Es frecuente que los módulos de Drupal estén concebidos para permitir que unos puedan interactuar con otros; por ejemplo, un módulo de galería de imágenes y otro de comentarios pueden cooperar para que los visitantes tengan la opción de comentar las fotografías de la galería.

• Barra de herramientas>Módulos

Page 38: Drupal 7 (2)

Módulos: Módulos esenciales (obligatorios) del núcleo

• Block• Field/Field SQL storage

• File• Options• Text

• Filter: Formatos de introducción de texto• Node• System• User

Page 39: Drupal 7 (2)

Módulos: Los principales módulos del núcleo• Blog: Enviar contenidos fácilmente; un blog para cada usuario• Comment: Comentar contenidos• Contact: Formulario de contacto• Forum: Un foro básico• Menu: Controla el sistema de navegación por menús• Path: Permite crear alias más amigables para los URL• Poll: Encuestas• Taxonomy: Clasificar los contenidos mediante etiquetas• Update manager: Saber si existen versiones nuevas

Page 40: Drupal 7 (2)

Módulos: Algunos módulos contribuidos populares• Views: Sirve para configurar los listados de contenidos.• Token: Permite personalizar los contenidos con marcadores de posición como

%site-name• CCK: Content Construction Kit• Pathauto: Crea automáticamente alias amigables para los URL• Administration Menu• Date: Añadir campos de tipo fecha a los nodos.• IMCE: Gestor de descargas• WYSIWYG: Permite utilizar distintos editores para crear los contenidos.• Webform: Permite crear nodos de tipo formulario.• CKeditor: Un editor WYSIWYG muy completo• Fivestar: Módulo de votaciones• Panels: Editor visual para crear distribuciones de contenidos adaptadas a cada

usuario• Backup and migrate: Copia de seguridad y migración de sitios Drupal• Ubercart: Comercio electrónico

Page 41: Drupal 7 (2)

Usuarios: Roles y Permisos• Personas: Inicialmente Drupal tiene un único usuario, el usuario 1, o

administrador. Este usuario es especial, porque tiene poder absoluto sobre el sitio (lo puede todo, incluso estropear el sitio).

• Personas>Permisos>Roles: Inicialmente Drupal tiene tres roles:• Usuario anónimo• Usuario autenticado• administrador

• Personas>Permisos>Permisos: Drupal nos permite configurar los permisos de cada rol para cada módulo.

• Cada usuario puede tener asignado uno o más roles; cada rol posee una configuración específica de permisos sobre los módulos; consecuentemente, los roles de un usuario determinan qué permisos tiene en el sistema.

• Por defecto, los permisos determinan qué se puede hacer, pero no qué se puede ver. Para controlar qué puede ver cada rol necesitaremos recurrir a un módulo contribuido, como Content Access.

Page 42: Drupal 7 (2)

Contenidos: Tipos de nodos y nodos• Los tipos de nodos son los tipos de datos que "comprende" Drupal: Artículos,

encuestas, temas del foro, …• Estructura>Tipos de contenido: Inicialmente Drupal incluye sólo 2 tipos de nodos:

• Artículo/: Optimizado para publicar noticias mostrando los datos del autor, la fecha de creación, admiten comentarios e imágenes, y se muestran en la página principal.

• Página/Page: Ideal para contenidos estáticos.• Los tipos de nodos se crean mediante Estructura>Tipos de contenido>Añadir tipo

de contenido• Los nodos poseen:

• Campos: Determinan las propiedades del nodo, como título, cuerpo, autor, …• Opciones de funcionamiento básicas: Determinan cómo son tratados los nodos por

Drupal; por ejemplo, si se publican automáticamente, o si se muestran en la página principal

• Opciones de funcionamiento añadidas: Ciertos módulos pueden añadir posibilidades adicionales a los nodos, como la capacidad de recibir comentarios.

• Presentaciones: Un nodo puede mostrarse de distintas formas, como resumido, completo, en formato RSS o en formato de impresión.

• Los nodos se crean mediante Contenido.

Page 43: Drupal 7 (2)

Contenidos: Creación de nodos

• Título• Opciones de menú• Cuerpo/Resumen• Filtrado• Revisiones• Comentarios (*)• Autoría• Publicación (*)(*) Estas opciones pueden configurarse de forma predeterminada en el tipo de nodo, pero siempre prevalecen las

establecidas en el propio nodo y, consecuentemente, al cambiar las opciones del tipo de nodo no se alteran automáticamente las de los nodos que ya teníamos previamente.

Page 44: Drupal 7 (2)

Contenidos: Entendiendo el resumen

• Si especificamos un texto para el resumen, ese texto se mostrará sólo en la presentación resumida del nodo, pero no en la completa.

• Si dejamos el resumen vacío y permitimos que sea generado automáticamente por Drupal, el texto escogido para el resumen se mostrará tanto en la presentación resumida como en la completa. Esto suele ser los más aconsejable.

• La longitud del resumen se configura mediante Estructura>Tipos de contenidos>Gestionar presentación>Resumen>Recortar longitud.

Page 45: Drupal 7 (2)

Contenidos: Formatos de texto/Filtrado• El contenido de los nodos se almacena en lenguaje HTML, pero existen

elementos de HTML potencialmente peligrosos que podrían dañar nuestro sitio o hurtar datos de las personas que lo visitan.

• Para evitarlo, Drupal aplica un Formato de texto, que es un conjunto de filtros que básicamente eliminan los elementos HTML potencialmente peligrosos (aunque existen filtros como SpamSpan con otras misiones).

• Se configuran a través de Configuración>Formatos de texto.• Cada Formato puede configurarse para que esté diponible para ciertos roles.• Inicialmente Drupal dispone de 3 Formatos:

• Plain Text: Es el más restrictivo, no admite ningún elemento HTML y está a disposición forzosamente de todos los roles.

• Filtered HTML: Sólo admite los elementos HTML <a> <em> <strong> <cite> <blockquote> <code> <ul> <ol> <li> <dl> <dt> <dd>

• Full HTML: Admite cualquier elemento HTML pero sólo está a disposición del rol Administrator.

Page 46: Drupal 7 (2)

Contenidos: Acceso

• Básicamente, cada página de un sitio Drupal muestra un único nodo o un listado de nodos en su zona principal

• Cada nodo es accesible a través de un URL del tipo /node/1

• Por defecto, todos los contenidos son visibles para todos los usuarios; tendremos que recurrir a módulos contribuidos para configurar qué usuarios pueden ver qué contenidos.

Page 47: Drupal 7 (2)

Contenidos: Navegación/menús

• Para facilitar la navegación por los contenidos podemos utilizar menús. Inicialmente Drupal incluye 4 menús:• Management• Menú principal• Navegación• User menu

• Los menús se gestionan mediante Estructura>Menús.• Cada menú está asociado a un bloque, que podemos asignar a la región del

tema que prefiramos.• Los temas incluyen dos pseudo-bloques (su visualización se controla a través de

la configuración del tema) que podemos vincular a menús, llamados Enlaces principales/Menú principal y Enlaces secundarios/Menú secundario. Estos bloques están inicialmente vinculados al Menú principal y Menú de usuario, respectivamente, pero esta vinculación puede modificarse mediante Estructura>Menús>Opciones.

Page 48: Drupal 7 (2)

Contenidos: Menús predeterminados

Page 49: Drupal 7 (2)

Bloques, regiones y temas

• Estructura>Bloques: Cada página de un sitio Drupal, además de un nodo o listado de nodos, puede mostrar fragmentos de información adicional denominados bloques.

• Los bloques pueden mostrarse en diferentes zonas de la página, que se denominan regiones y que tienen "nombres propios". • Los bloques pueden mostrarse en sólo algunas páginas, y/o sólo a los usuarios

de ciertos roles, y/o sólo en las páginas que muestren contenidos de un tipo concreto (páginas, artículos, …). Importante: por defecto los bloques son lo único cuya visibilidad podemos configurar en función de los roles.

• La visualización de los menús depende de su bloque asociado. Al crear un menú se crea automáticamente un bloque, aunque inicialmente está desactivado.

• Apariencia>Temas: Las regiones posibles, sus posiciones, nombres y demás características están determinadas por el tema asignado al sitio.

Page 50: Drupal 7 (2)

¿Cómo se llaman las regiones en cada tema?• Para descubrir el nombre de las regiones en el tema

activo seleccionaremos Estructura>Bloques>Demostrar regiones de bloques.

Page 51: Drupal 7 (2)

Algunos bloques incluidos en Drupal

• Comentarios recientes• Contenido reciente• Quién está conectado• Usuarios nuevos• Sindicar

Page 52: Drupal 7 (2)

Resumen de nomenclatura• Módulos

• Del núcleo• Esenciales

• Contribuidos• Contenidos

• Tipos de nodos• Campos• Presentaciones

• Nodos• Usuarios

• Roles• Permisos

• Menús• Temas

• Bloques• Regiones

• Formatos de texto (Configuración)

Page 53: Drupal 7 (2)

Ejercicio: Crear un nodo y asignarle un acceso mediante menú• Crear un nodo de tipo página básica con las siguientes características:

• Título: Bienvenido al sitio web de Juanfe• Cuerpo: Este sitio está aún en <b>construcción</b>. Puedes contactar con el administrador

en [email protected]• Formato de entrada: Filtered HTML• Opciones de menú:

• Proporcionar un enlace de menú• Título del enlace del menú: Inicio alternativo• Elemento padre: Menú principal

• Opciones de publicación• Publicado• Colocar en la página principal

• Comprobar si este nodo se ha convertido automáticamente en la página inicial de nuestro sitio (la que aparece al hacer clic sobre el logotipo de Drupal o sobre la opción Inicio del menú principal). No, comparte la página con el artículo que habíamos creado anteriormente.

• Comprobar que no aparece en negrita construcción porque el elemento <b> no está permitido en el formato de texto Filtered HTML.

Page 54: Drupal 7 (2)

Nodos: Revisiones• Drupal incluye un flexible sistema de revisiones que nos permite

mantener almacenadas distintas versiones de cada nodo, de modo que podamos volver en cualquier momento a una versión anterior.

• Por ejemplo, imaginemos que tenemos un nodo titulado “Menú de la semana”, y que existen 12 menús semanales que van rotando. Podríamos crear una revisión con cada uno de ellos y luego revertir a la revisión apropiada para que en cada semana el menú que se muestre sea el correcto.• Otro ejemplo, si en la elaboración de un documento intervienen varias

personas podemos indicarles que creen una revisión con cada modificación para que en cualquier momento se puedan consultar los estados anteriores).

• La creación de revisiones se realiza a través de Información de revisión en el formulario de edición de los nodos.• Una vez creadas revisiones, aparecerá además de la lengüeta Editar, otra

llamada Revisiones, que nos permite revertir el contenido actual del nodo a cualquier revisión anterior.

Page 55: Drupal 7 (2)

Ejercicio: Revisiones

1. Crear un artículo titulado “Personal de guardia de la semana” cuyo contenido sea una lista de nombres.

2. Editar el artículo cambiando los nombres y creando una revisión mediante la activación de la casilla Crear nueva revisión y la asignación de la descripción “Semana 2” antes de guardarlo. Esta casilla indica a Drupal que queríamos mantener el artículo original tal y como estaba, y que queremos guardar su estado actual como una revisión nueva con la descripción que hemos utilizado.

3. Utilizar la ficha Revisiones para revertir a la versión original.4. Observar que la revisión vigente utiliza la descripción “Copia

de la revisión …” ¿Qué pasaría si borrásemos la revisión original? Nada.

Page 56: Drupal 7 (2)

Contenidos multi-idioma• Drupal 7 incluye dos módulos orientados a crear sitios multi-idioma:

• Locale: Permite traducir la interfaz de Drupal.• Content translation: Al crear ó editar un nodo, este módulo nos permitirá crear otros nodos

con la traducción de su contenido a cada uno de los demás idiomas activos en el sitio. Además este módulo nos proporciona el bloque Alternador de idioma con el que podemos acceder al contenido que estamos viendo en todos los idiomas para los que se haya creado una traducción.

• El procedimiento general para crear un sitio multi-idioma es:• Activar lo módulos Loace y Content translation.• Utilizar Configuración>Regional e idioma>Idiomas para instalar todos los idiomas que

deseemos utilizar en nuestro sitio.• Asegurarse de que todos los idiomas tienen asignado un prefijo (particularmente inglés), pues

posteriormente usaremos ese prefijo para saber qué idioma quierel usuario.• Utilizar Configuración>Regional e idioma>Detección y selección, activar el método de selección URL.

• Utilizar Configuración>Regional e idioma>Traducir interfaz para traducir la interfaz de Drupal.

• Elegir un funcionamiento multi idioma en las opciones de publicación de los tipos de contenido que deseemos publicar en nuestro sitio con versiones en varios idiomas:• Activado: Simplemente permite asignar un idioma a los nodos.• Activado con traducción: Permite traducir los nodos, marcarlos automáticamente como que

requieren ser revisados, y permitir marcar en los nodos traducidos que requieren revisión.• Asignar el bloque Alternador de idioma a una región.

Page 57: Drupal 7 (2)

Ejercicio: Contenidos multi-idioma• Activar los módulos Locale y Content Translation• Configurar el prefijo en para el prefijo inglés.• Activar la detección de idioma por URL.• Crear un tipo de contenido nuevo llamado “Departamento de inglés” y elegir en él el

funcionamiento activado de multi-idioma en las opciones de publicación.• Crear dos nodos nuevos de tipo “Departamento de inglés”, uno asignado al idioma español y otro

al idioma inglés, publicados en la página principal.• Asignar el bloque Alternador de idioma a una región.• Comprobar que al cambiar de idioma mediante el bloque Alternador de idioma cambia el enlace

“Read more” por “Leer más” y el resto de los elementos de la interfaz de Drupal.• Elegir ahora el modo Activado con traducción para el tipo de contenido “Departamento de inglés”.• Crear un nuevo nodo de este tipo asignado al idioma español publicado en la página inicial y

comprobar que ofrece otra ficha para la traducción al idioma inglés.• Utilizar esa ficha para crear una traducción al inglés.• Observar en la página principal que dentro de cada nodo (en la zona donde normalmente aparecen

los términos de taxonomía) aparece la opción para acceder a la versión traducida del nodo en cada idioma.

• En la página principal, editar el nodo original y observar que ofrece en Opciones de traducción la posibilidad de marcar las traducciones como caducadas.

• En la página principal, editar el nodo traducido y observar que ofrece en Translation settings la posibilidad de marcar esta traducción como pendiente de revisión.

Page 58: Drupal 7 (2)

Ejercicio:Posibles mejoras al núcleo para crear contenidos

• ¿Qué sensaciones tiene después de crear su primer nodo en Drupal?

•Se agradecería un editor más completo para el cuerpo del nodo Módulo WYSIWYG + CKeditor

•Estaría bien que las direcciones de email se ofuscaran automáticamente para evitar spam Módulo SpamSpan

•¿Cómo se modifica la página inicial del sitio?

Page 59: Drupal 7 (2)

Ejercicio: Especificar la página inicial del sitio Drupal• Por defecto, un sitio Drupal muestra en su página

inicial todos los nodos en los que hayamos activado la opción de publicación Colocado en la página principal.

• No obstante, podemos elegir cualquier otra ubicación como página inicial a través de Configuración>Sistema>Información del sitio>Página inicial predeterminada.

• Cambiar la página inicial predeterminada del sitio a node/2.

Page 60: Drupal 7 (2)

Ejercicio:Instalar WYSIWYG + CKeditor• Comprobar que existe una carpeta llamada modules dentro de sites/all• Descargar el módulo WYSIWYG filtrando las categorías de módulos de drupal.org por

compatibilidad con la versión 7.0 y por proyecto Filters/Editors. La versión disponible actualmente es WYSIWYG 7.x-2.0.

• Descomprimirlo y copiar la carpeta resultante WYSIWYG en la carpeta sites/all/modules.• Activar el módulo mediante Módulos>Interfaz de usuario.• Crear una carpeta llamada libraries dentro de sites/all• Acceder a la página de administración del módulo mediante Configuración>Autoría del

contenido>Wysiwyg profiles.• Pulsar el enlace Download de la sección CKeditor.• Descargar CKeditor 3.5.3, descomprimirlo y copiar la carpeta CKeditor resultante en la

carpeta libraries.• Lo interesante de WYSIWYG es que nos permite asignar un editor diferente a cada

formato de entrada. Acceder a la página de administración del módulo mediante Configuración>Autoría del contenido>Wysiwyg profiles y asignar el editor CKeditor al formato Filtered HTML.

• Configurar el idioma español para CKeditor y activar los botones Bold, Italic y underline.• Acceder al nodo de sitio en construcción, hacer clic sobre Editar y comprobar que al

elegir el formato Filtered HTML aparece efectivamente el editor CKeditor.

Page 61: Drupal 7 (2)

Ejercicio:Formatos de texto vs Editores• Cada formato de texto puede tener asignado un editor, pero

esto no significa que todas las opciones disponibles en el editor vayan a ser permitidas por el formato de texto. Siempre prevalecen los filtros del formato de texto.

• Eliminar los elementos <b> que rodean a la palabra construcción y poner esa palabra en negrita utilizando el botón B de CKEditor. Comprobar que efectivamente aparece en negrita al previsualizar el nodo.

• Intentar poner además la palabra construcción subrayada… en el editor la veremos subrayada, pero al previsualizar el nodo no, pues el elemento HTML <u> no está permitido en el formato de texto Filtered HTML.

Page 62: Drupal 7 (2)

Ejercicio:Instalar SpamSpan• Descargar el módulo SpamSpan filtrando las categorías de módulos de

drupal.org por compatibilidad con la versión 7.0 y por proyecto Filters/Editors. La versión disponible actualmente es spamspan 7.x-1.1-beta1.

• Descomprimirlo y copiar la carpeta resultante spamspan en la carpeta sites/all/modules.

• Activar el módulo mediante Módulos.• Este módulo realmente es un filtro para los formatos de entrada, por lo que

para hacer uso de él tendremos que acceder a Configuración>Autoría del contenido>Formatos de texto>Filtered HTML [Configurar] y activar la casilla SpamSpan email address encode filter. Además, deberemos colocarlo por detrás del filtro Limpiar las etiquetas HTML permitidas, pues de otro modo no funcionaría (pues utiliza etiquetas HTML no permitidas)

• Acceder al nodo de página en construcción, ver el código fuente de la página y comprobar que efectivamente se ha ofuscado.

• Acceder a Configuración>Autoría del contenido>Formatos de texto>Filtered HTML [Configurar] para activar la casilla Use a graphical replacement for "@". ¿Cómo ha variado la ofuscación?

Page 63: Drupal 7 (2)

Ejercicio:Instalar Administration Menu• El acceso a las opciones de configuración mediante la barra de menús ha

sido un gran avance respecto a la versión 6, pero aún resulta un tanto engorroso por el número de veces que tenemos que hacer clic, especialmente cuando al principio aún no tenemos muy claro dónde está cada opción y tenemos que ir buscándola.

• Para resolverlo podemos instalar el módulo Administration Menu, que insertará un menú desplegable (como el de cualquier aplicación) en la zona superior de nuestro sitio.

• Descargar el módulo Administration Menu filtrando las categorías de módulos de drupal.org por compatibilidad con la versión 7.0 y por proyecto Administration. La versión disponible actualmente es admin_menu 7.x-3.0-rc1.

• Descomprimirlo y copiar la carpeta resultante admin_menu en la carpeta sites/all/modules.

• Activar los módulos Administration Menu y Administration menu toolbar style mediante Módulos, y desactivar el módulo del núcleo Toolbar.

Page 64: Drupal 7 (2)

Resumen:¿Cómo instalar un módulo?1. Descargarlo del sitio web de Drupal.2. Descomprimirlo.3. Copiar la carpeta resultante dentro de

sites/all/modules.4. Módulos para activarlo.5. Módulos[Configuración] o Configuración para ver

sus opciones de configuración.

Page 65: Drupal 7 (2)

Módulos: El modulo SMTP Authentication Support I• Algunos hostings no permiten usar la función mail de

PHP, o si hemos instalado nuestro servidor local mediante WampServer no tendremos un servidor de mail, y consecuentemente nuestra instalación de Drupal no podrá enviar correos.

• Para resolverlo podemos instalar el módulo SMTP Authenticacion.

Page 66: Drupal 7 (2)

Módulos: El modulo SMTP Authentication Support II• Imaginemos que queremos utilizar

una cuenta de gmail como remitente genérico de nuestro sitio. Deberemos introducir esta cuenta en Administrar>Configuración del sitio>Información del sitio y configura SMTP Authentication como se muestra en la figura.

• Es necesario que tengamos instalado el módulo php_openSSL

• La mayoría de los servidores (como educa.madrid.org) utilizan el puerto 25, pero gmail utiliza el 465.

• Escribir una dirección válida en SEND TEST E-MAIL para comprobar que realmente funciona.

Page 67: Drupal 7 (2)

Sistema de archivos en Drupal 7: público o privado• Gracias a los campos de tipo imagen y archivo podemos incluir distintos tipos de

archivos en nuestros nodos. Inicialmente, el único tipo de contenido que incluye uno de estos campos es Artículo, que incluye un campo de tipo imagen.

• Por defecto, estos archivos se almacenan en la carpeta pública del sistema sites/default/files, desde la que son directamente accesibles, es decir, cualquiera podría acceder a un archivo si conociera su nombre (nombrearchivo.ext) simplemente escribiendo www.nuestrodominio.com/sites/default/files/nombrearchivo.ext

• Sin embargo, también podemos usar el sistema privado de archivos de Drupal, que no permite acceder directamente a los archivos escribiendo su URL, sino que utiliza un path especial de tipo www.nuestrodominio.com/system/files/nombrearchivo.ext, que recurre a Drupal para descargar el archivo… y desde Drupal con un módulo podría restringirse el acceso al archivo dependiendo del rol del usuario (aunque actualmente no existe ningún módulo que lo haga).

• Para activar el sistema privado de archivos tenemos que especificar su path de almacenamiento mediante Configuración>Medios audiovisuales>Sistema de archivos. Generalmente se elige la subcarpeta de sites/default/files/private.

• Posteriormente, al crear en un tipo de contenido un campo de tipo imagen o archivo, podremos decidir si el almacenamiento que queremos usar es público o privado.

Page 68: Drupal 7 (2)

Ejercicio: Sistema de archivos en Drupal 7• Mediante Configuración>Medios audiovisuales>Sistema de archivos indicar

la subcarpeta de sites/default/files/private para el alojamiento privado de archivos.

• Comprobar que Drupal crea automáticamente esta carpeta y crea dentro de ella un archivo .htaccess (este archivo es el que indica a Apache que no debe permitir el acceso directo a los archivos).

• Crear un artículo adjuntándole una imagen, y comprobar que podemos acceder a ella directamente escribiendo en el navegador el URL de su ubicación:

• www.midominio.com/sites/default/files/field/image/nombredelaimagen.jpg• Modificar el campo Imagen del tipo de contenido Artículo para que utilice el

sistema de archivos privado (Estructura>Tipos de contenido>Artículo>Configurar campos).

• Crear un segundo artículo adjuntándole la misma imagen, y comprobar que ahora no podemos acceder directamente a ella escribiendo en el navegador su URL:

• www.midominio.com/sites/default/files/private/field/image/nombredelaimagen.jpg

Page 69: Drupal 7 (2)

Estilos de imagen en Drupal 7• Un estilo de imagen es un conjunto de transformaciones que se puede

aplicar automáticamente a las imágenes de nuestros nodos en presentaciones concretas:

• Recortar• Desaturar (convertir a escala de grises)• Redimensionar (cuidado puede deformar)• Girar• Escala (no deforma)• Escalar y recortar

• Los estilos de imagen se configuran mediante Configuración>Medios audiovisuales>Estilos de imagen.

• Una vez creado un estilo, podremos seleccionarlo en la presentación de los campos de tipo imagen en la configuración de los tipos de contenidos (Estructura>Tipos de contenido>Gestionar presentación)

• El módulo contribuido Image Cache Actions ofrece más transformaciones (bordes redondeados, overlays, …), pero actualmente aún se encuentra en fase beta para Drupal 7.

Page 70: Drupal 7 (2)

Ejercicio:Estilos de imagen en Drupal 7• Crear un estilo de imagen que gire las

imágenes al azar hasta un máximo de 25º, que las escale a un máximo de 150 píxeles de ancho y que las desature.

• Configurar el tipo de contenido Artículo para que en la presentación resumida muestre las imágenes utilizando este estilo.

Page 71: Drupal 7 (2)

Taxonomía:Vocabularios y términos• El módulo de Taxonomía nos permite asignar etiquetas a nuestros nodos, de modo que luego podamos

acceder a todos los nodos que comparten una misma etiqueta. Estas etiquetas se denominan términos.• Los términos deben agruparse en vocabularios, que pueden ser de dos tipos (el tipo está determinado por

el tipo de control para el campo elegido en la configuración del tipo de nodo):• Etiquetas: El propio usuario puede escribir libremente los términos.• Fijos: Los términos deben elegirse de entre los que contiene el vocabulario, pudiendo forzar a que se elija al menos uno

o permitir que se elija incluso más de uno.• Cada vocabulario puede asignarse a uno o más tipos de nodos.• Se pueden configurar los términos jerárquicamente, de modo que unos sean hijos de otros.• Cada término de cada vocabulario tiene aparejado un número, y el listado de los nodos que tienen asignado

ese término son accesibles a través del URL taxonomy/term/1.• Además podemos mostrar nodos de varios términos:

• taxonomy/term/1,2: Muestra el listado de los nodos que tienen asignados los términos 1 Y 2.• taxonomy/term/1+2: Muestra el listado de los nodos que tienen asignados los términos 1 O 2.• taxonomy/term/1/2: Muestra el listado de los nodos que tienen asignado el término 1 o cualquiera hijo de él hasta 2

niveles de profundidad.• taxonomy/term/1/all: Muestra el listado de los nodos que tienen asignado el término 1 o cualquiera hijo de él.

• Para crear un vocabulario recurriremos a Estructura>Taxonomía>Agregar vocabulario.• Para crear un término recurriremos a Estructura>Taxonomía>Agregar términos.• Para conocer el número aparejado a un término concreto recurriremos a Estructura>Taxonomía>Lista de

términos.• El módulo de taxonomía es muy versátil, permitiendo por ejemplo que un término posea varios padres, o

incluso que tenga sinónimos.

Page 72: Drupal 7 (2)

Ejercicio:Crear un vocabulario• Crear un vocabulario llamado "Jornadas TIC ".• Agregar a este vocabulario los términos "General",

"Jornada 1", "Jornada 2" y "Jornada 3".

Page 73: Drupal 7 (2)

Tipos de contenido

• En Drupal 7 se ha incorporado dentro del núcleo parte del CCK a través del módulo Field (esencial), de modo que podemos crear directamente nuevos tipos de contenidos con campos de tipo:• Text• Number• Image• File• Options• List• Taxonomy

Page 74: Drupal 7 (2)

Ejercicio: Asignar un vocabulario a un tipo de contenidos• Crear un tipo de contenido llamado Sesiones TIC, con la

siguiente configuración:• Etiqueta del campo de título: Título• Opciones de publicación: Sólo Publicado• Opciones de comentarios: Abrir

• Añadirle el siguiente campo:• Etiqueta: Etiquetas• Nombre: field_etiquetas• Campo: Referencia de término• Control: Casillas de selección/Botones de opciones• Vocabulario: Jornadas TIC

• Campo necesario• Valor predeterminado: N/D• Número de valores: 1

Page 75: Drupal 7 (2)

Ejercicio: Asignar términos a nodos

• Crear 3 nodos de tipo Jornadas TIC llamados "Programa jornada #", cuyo contenido sea el supuesto programa de actividades de una sesión y asignando a cada uno un término de los creados anteriormente.

• Crear un cuarto nodo de tipo página llamado "Programación de jornadas" que simplemente contenga un enlace a cada uno de los nodos anteriores y que tenga asignado el término General.

Page 76: Drupal 7 (2)

Ejercicio:Crear un menú para el vocabulario• Instalar el módulo taxonomy_menu y activarlo.• Editar el vocabularios Jornadas TIC para que se cree automáticamente un

menú para sus términos dentro de Menú principal (Estructura>Taxonomía>Editar vocabulario).

• Modificar la jerarquía de los término para que General sea el padre de los demás (Estructura>Taxonomía>Lista de términos).

• Reconstruir el menú a través de Estructura>Taxonomía>Editar vocabulario (Select to rebuild the menu on submit).

• Modificar las opciones de los menús para que la fuente de los enlaces primarios y secundarios sea el Menú principal (Estructura>Menús>Opciones).

• Si no lo estuviera ya, activar el menú secundario en las opciones de visualización del tema activo.

Page 77: Drupal 7 (2)

Ejercicio:Instalar un tema con menús Suckerfish• Instalar el tema Danland.• Asignar el bloque Menú principal a la región Superfish

menu.• Desactivar la opción de visualización Menú principal

en las opciones del tema Danland.

Page 78: Drupal 7 (2)

SuperFish I

• SuperFish es un módulo con el que podremos incluir menús suckerfish de los siguientes tipos en cualquier tema:

•Horizontal•Vertical•Barra de navegación (muy útil)

• Para instalar este módulo previamente debemos:• Copiar en la carpeta sites/all/libraries la librería Superfish

disponible en la propia página del módulo.•Instalar el módulo Libraries.

Page 79: Drupal 7 (2)

SuperFish II

• Una vez instalado el módulo, lo configuraremos mediante Configuración>Interfaz de usuario>Superfish para indicar cuántos bloques de tipo suckerfish vamos a necesitar. Indicar el número exacto para ahorrar recursos (es un módulo muy exigente).

• Mediante Estructura>Bloques asignaremos a los bloques creados en el paso anterior los menús a los que queramos aplicar el efecto suckerfish…

• … y mediante la opción Configuración del bloque configuraremos todas las opciones de Superfish (tipo de menú, estilo, efectos, …).

Page 80: Drupal 7 (2)

Ejercicio: SuperFish

• Instalar SuperFish.• Reestablecer como predeterminado el tema Bartik.• Configurar SuperFish para utilizar un único bloque.• Asignar a ese bloque el menú principal y colocarlo en

la región Featured.• Configurar el bloque con el estilo menú de

navegación.• Probar a discreción otras opciones de configuración

del bloque (sombras, flechas, …).

Page 81: Drupal 7 (2)

Registro de usuarios

• Configuración>Personas>Opciones de la cuenta• Existen 3 métodos de registro:

• Sólo los administradores pueden crear usuarios.• Visitantes: Cualquiera puede registrarse sin más.• Cualquiera puede solicitar registrarse, pero deberá ser aprobado por un

administrador.• Conviene dejar activada la casilla de Pedir una verificación por

correo electrónico.• Podemos configurar el texto de los correos que el sistema

envía a los nuevos usuarios.• Podemos admitir el uso de firmas.• Podemos admitir el uso de avatares (imágenes de usuario).

Page 82: Drupal 7 (2)

Ejercicio: Registro de usuarios

• Configurar Drupal para que permita el registro de usuarios pero que deban ser aceptados por el administrador.

• Registrar un usuario nuevo llamado pepe.• Acreditarse como administrador para poder activar al

nuevo usuario.• ¿Qué perfil adquiere por defecto un nuevo usuario si

no se requiere confirmación por parte del administrador?

•Ninguno (Usuario registrado de forma implícita)

Page 83: Drupal 7 (2)

Ejercicio: Roles y permisos I

• Crear un rol nuevo llamado autor con los siguientes permisos:• Ver contenido publicado• Ver el contenido propio sin publicar• Crear contenidos de tipo artículo• Modificar sus propios artículos

• Asignar este rol al usuario pepe creado en el ejercicio anterior.• Acreditarse como pepe y crear un artículo nuevo.

• ¿Puede pepe hacer que sus artículos se publiquen automáticamente o que se muestren en la página inicial?

• No, pero a través de las opciones de publicación predeterminadas del tipo de contenido Artículo podemos hacer que se publiquen automáticamente.

Page 84: Drupal 7 (2)

Ejercicio: Roles y permisos II

• Cambiar las opciones predeterminadas del tipo de contenido artículo para que no se publiquen automáticamente ni se incluyan en la página principal.

• ¿Afecta esto al artículo que había creado pepe?• No, las modificaciones en Drupal no tienen carácter retroactivo.

• Publicar un segundo artículo con pepe.• ¿Cómo puede acceder pepe a su artículo?

• Recordando el número de nodo• Tras desactivar el Administration menu y regresar al módulo Toolbar,

conceder al rol autor los siguientes permisos:• Usar la barra de herramientas de administración• Acceder a la página resumen de contenido

• ¿Más cómodo así verdad?• ¿Y si prefiriésemos seguir usan Administration menu?

• Crear un enlace a admin/content por ejemplo en el menú User menu.

Page 85: Drupal 7 (2)

Perfil de usuario

• Cada usuario de Drupal adquiere automáticamente una opción en el menú de usuario (desactivable la opción de menú, no el acceso al perfil) para acceder a una página con opciones referentes a su cuenta:

• Puede modificar sus datos (email, contraseña, …)• Incluso su nombre de usuario si le concedemos este permiso a alguno de sus roles

• Elegir un avatar

Page 86: Drupal 7 (2)

Ejercicio: Perfil de usuario

• Asignar un avatar a pepe.• Por ejemplo, pueden encontrarse muchos avatares

gratuitos en:•http://www.free-avatars.com

Page 87: Drupal 7 (2)

Masquerade

• Al configurar los roles y permisos de usuarios es esencial comprobarlos concienzudamente y para hacerlo cómodamente disponemos del módulo Masquerade, que nos permite acreditarnos fácilmente en el sistema como cualquier otro usuario y regresar posteriormente a nuestro rol de administrador sin tener que escribir nombres de usuario ni contraseñas.

• Este módulo puede ofrecer las opciones de cambio de usuario a través de un ítem de menú (en el menú Navegación) o de un bloque (que no está inicialmente asignado a ninguna región)

Page 88: Drupal 7 (2)

TAC_Lite I:Taxonomy Access Control Lite I• TAC_Lite es un módulo derivado de TAC. El apelativo Lite no quiere decir que

sea una versión reducida de TAC, sino que provoca muy poco impacto en la base de datos de Drupal.

• Sirve para controlar 3 tipos de permisos:• View: Ver• Update: Actualizar• Delete: Borrar

• Estos permisos pueden controlarse a nivel de rol y a nivel de usuario individual.

• Los permisos concedidos a nivel de usuario se añaden (suman) a los que recibe el usuario a través de sus roles.

• En otras palabras, TAC_Lite controla qué roles pueden ver/actualizar/borrar nodos basándose en los términos de taxonomía que estos últimos tienen asignados.

• TAC_Lite no puede desautorizar los permisos que tengamos asignados a nivel global a un rol. Por ejemplo, si un rol tiene asignado el permiso Editar cualquier contenido, no se verá afectado por la configuración que podamos establecer en TAC_Lite.

Page 89: Drupal 7 (2)

TAC_Lite II:Taxonomy Access Control Lite II• TAC_Lite funciona mediante esquemas asignados a

vocabularios.• En un esquema podemos definir qué acciones (ver, actualizar

y/o borrar) puede realizar cada rol sobre cada término de cada vocabulario.

• Adicionalmente, en cada esquema podemos indicar si los términos del vocabulario se muestran en el propio nodo y/o en su formulario de edición (para esto último debemos tener activado también el módulo Taxonomy Access Control Lite Create).

• La configuración de permisos a nivel de roles se realiza mediante Personas>Access by taxonomy.

• La otorgación de permisos adicionales a nivel de usuario particular se realiza mediante Personas>Lista>Editar>Access by taxonomy

Page 90: Drupal 7 (2)

Ejercicio: Taxonomy Access Control Lite I• Crear un vocabulario de taxonomía llamado Informática que incluya los términos software y hardware y

asignado al menú Navegación.• Crear un tipo de nodo nuevo llamado Noticia de informática (noticia_informatica).• Añadir un campo al tipo de nodo Notica de informática que sea de tipo Referencia de término con un widget

Lista de selección (hay un bug en TAC_Lite que impide que funcione correctamente con otros widgets), y configurado para seleccionar obligatoriamente uno y sólo uno de los términos del vocabulario Informática.

• Crear dos roles llamados Redacción de software y Redacción de hardware, ambos con permiso de Ver contenido publicado y Creación de noticia_informatica.

• Crear dos usuarios, uno en cada rol, llamados Paco de software y Paco de hardware.• Configurar Masquerade para que permita alternar entre estos usuarios.• Configurar TAC_Lite para utilizar dos esquemas asociados al vocabulario Informática.

• Llamar al primer esquema Ver informática y asignar permisos a los roles Redacción de software y de hardware para que puedan ver los términos Software y Hardware. Activar la casilla Visibilidad para que puedan ver el término en el nodo.

• Llamar al segundo esquema Actualizar informática y configurar el permiso Update para que el rol Redacción de software sólo pueda actualizar los nodos con el término Software, y el rol Redacción de hardware sólo pueda actualizar los nodos con el término Hardware. Activar la casilla Visibility on create and edit forms para que puedan seleccionar el término al crear los nodos.

• Crear una noticia de informática con el perfil de Paco de software • ¿Puede verla Paco de hardware?• ¿Puede editarla Paco de hardware?• ¿Puede editarla Paco de software?

• Ampliar los permisos de Paco de hardware a nivel individual (no de rol) para que pueda editar también las noticias con el término Software.

• ¿Puede ahora Paco de hardware cambiar el departamento de un nodo?

Page 91: Drupal 7 (2)

TAC: Taxonomy Access Control I• TAC es un módulo que permite controlar el acceso de los usuarios a los nodos

filtrándolos por: • Roles de usuario• Términos de vocabulario asignados a los nodos

• En otras palabras, TAC controla qué roles tienen acceso a qué nodos basándose en los términos de taxonomía que estos últimos tienen asignados.

• Para que TAC pueda aplicarse a un rol, ese rol debe tener en la configuración general de permisos de Drupal (Personas>Permisos):

• Activado el permiso de acceso a nodos.• Desactivado el permiso de administración de nodos.• Desactivado los permisos de edición y eliminación si queremos controlarlos a través de TAC.

• Todos los roles heredan las propiedades del rol Usuario registrado y, en este sentido, debemos tener en cuenta que un permiso permitido (Allow) en cualquier rol de un usuario prevalecerá sobre la denegación de ese mismo permiso (Deny) en cualquier otro rol de ese mismo usuario (recordemos que un mismo usuario puede tener asignados varios roles).

• A su vez, un nodo podría tener asignados varios términos de taxonomía; en este caso prevalece la denegación (Deny) sobre la permisión (Allow) dentro del mismo rol (recordemos del punto anterior que si intervienen varios roles siempre prevalece la permisión (Allow) sobre la denegación (Deny).

Page 92: Drupal 7 (2)

TAC: Taxonomy Access Control II• Los permisos que se pueden configurar a través de TAC son:

• Ver: Determina si el rol puede ver los nodos que tienen asignado ese término.• Actualizar: Para que funcione debemos desactivar el privilegio de actualización

en la configuración de permisos de Drupal.• Eliminar: Para que funcione debemos desactivar el privilegio de eliminación en

la configuración de permisos de Drupal.• Crear: Permite al rol asignar ese término a los nodos que cree.• Lista: Permite mostrar el nodo a través de la taxonomía (/taxonomy/term/1). Si

un rol tiene privilegio de Lista pero no de Ver, no podrá ver los nodos que tengan asignado ese término. Si un rol tiene privilegio de Ver pero no de Lista, podrá ver el nodo a través del acceso habitual a los nodos (node/1), pero en él no se mostrará el término de taxonomía que tiene asignado.

• La configuración de TAC se realiza a través de Taxonomy Access Permissions

• TAC permite asignar permisos a cada término, pero también nos ofrece una opción default (predeterminada) en cada vocabulario, que se utiliza en ausencia de una configuración de permisos más específica.

Page 93: Drupal 7 (2)

Ejercicio: Taxonomy Access Control• Crear un tipo de nodo nuevo llamado Noticia de informática (noticia_informatica).• Crear un vocabulario de taxonomía llamado Informática que incluya los términos

software y hardware y asignado al menú Navegación.• Añadir un campo al tipo de nodo Notica de informática que sea de tipo Referencia

de término con un widget Casillas de selección, y configurado para seleccionar obligatoriamente uno y sólo uno de los términos del vocabulario Informática.

• Crear dos roles llamados Redacción de software y Redacción de hardware, ambos con permiso de Ver contenido publicado y creación de noticia_informatica.

• Crear dos usuarios, uno en cada rol, llamados Paco de software y Paco de hardware.

• Configurar Masquerade para que permita alternar entre estos usuarios.• Configurar TAC para que cada Paco sólo pueda ver, editar, eliminar, crear y listar

noticias de informática de su redacción (software o hardware).• Crear una noticia de informática con el perfil de Paco de software ¿puede verla

Paco de hardware?• Configurar TAC para que cada Paco pueda ver todas las noticias de informática pero

crear sólo las de su redacción.

Page 94: Drupal 7 (2)

IMCE

• IMCE es un gestor de subida de archivos con el que nos resultará muy sencillo incluir imágenes en nuestros nodos.

• Además permite configurar permisos con tamaños máximo de archivo, extensiones de archivos, y carpetas de destino a través de perfiles.

• Instalar y activar• IMCE WYSIWYG API Bridge• IMCE

• Configuración>Autoría del contenido>Wysiwyg profiles>Editar CKeditor>Buttons and Plugins Activar Imagen, IMCE y todos los demás botones que se deseen.

• Configuración>Medios audiovisuales>IMCE• IMCE incluye el enlace Explorador de documentos en la página del perfil

de cada usuario para que pueda gestionar en un lugar centralizado todas sus imágenes.

Page 95: Drupal 7 (2)

Ejercicio: IMCE• Insertar una imagen en un artículo.

• Hacer clic sobre el icono Insertar/Editar imagen de CKeditor.

• Pulsar el botón Ver servidor.• Pulsar el enlace Subir.• Pulsar el enlace Insert file.• Pulsar el botón Aceptar.

• ¿Qué pasa si no tenemos activado el formato de texto Full HTML?

• Configurar los perfiles de WYSIWYG para que el formato Filtered HTML no use IMCE y el formato Full HTML para que utilice CKEditor con IMCE.

• Obviamente, habrá que autorizar el elemento im en el formato de entrada Filtered HTML (Configuración>Autoría del contenido>Formatos de entrada)

Page 96: Drupal 7 (2)

Perfiles IMCE

• IMCE usa sus propios perfiles, que se configuran mediante Configuración>Medios audiovisuales>IMCE.

• Cada perfil de IMCE puede asociarse a uno o más roles de usuario Drupal, y pueden usarse perfiles distintos para el sistema de archivos público y privado.

• Para cada perfil podemos configurar:• Tamaño máximo de archivo admitido• Cuota máxima por directorio• Cuota máxima por usuario• Extensiones admitidas• Tamaño máximo de las imágenes• Directorios a los que tiene acceso cada usuario (%uid) y con qué

permisos (Explorar, Subir, Miniaturas, Eliminar o redimensionar)• Los tipos de miniatura que puede generar.

Page 97: Drupal 7 (2)

Ejercicio: Perfiles IMCE

• Crear un perfil de IMCE llamado autor que permita acceder a los siguientes directorios:

• Uno con el nombre del usuario (php: return 'users/'.$user->name; ) en el directorio /sites/default/files (este directorio es el que se denomina raíz en IMCE), con permiso de explorar, subir y miniaturas.

• Otro llamado imágenes generales en el directorio /sites/default/imagenes_generales, sólo con permiso de explorar.

• Permitir que pueda generar dos tipos de miniaturas: pequeñas (45x45) y grandes (90x90).

• Comprobar que la carpeta imagenes_generales se crea automáticamente la primera vez que el usuario intenta insertar una imagen.

Page 98: Drupal 7 (2)

Insertar medios (sonidos y vídeos) en los nodos• Instalar el módulo Styles.• Instalar el módulo Media.• Instalar el módulo Media YouTube y Media Flickr• Habilitar en el perfil de WYSIWYG el botón Media Browser.• Habilitar en el formato de texto correspondiente el filtro

Convertir Media tags to Markup.• Los archivos subidos con Media se almacenan en el sistema de

archivos de Drupal, sin que puedan configurarse (como en IMCE) carpetas independientes para cada usuario.

Page 99: Drupal 7 (2)

Ejercicio: Insertar medios (sonidos y vídeos) en los nodos• Insertar un vídeo en un nodo subido a través del

módulo Media.• Insertar un vídeo de YouTube en un nodo.

Page 100: Drupal 7 (2)

Blog

• El módulo Blog nos permite crear automáticamente un blog para cada usuario (si en su rol tiene permiso para crear entradas de blog).

• El blog de cada usuario es accesible a través del url /blog/%uid• Al activar el módulo Blog se crea automáticamente en el menú

Navegación una opción que permite acceder al blog propio, pero como está subordinada a otra opción general (Blogs) no se muestra automáticamente. Tenemos que acceder a Estructura>Menú>Navegación para activar el enlace general a todos los blogs (Blogs).

Page 101: Drupal 7 (2)

Ejercicio: Blog

• Activar el módulo de blog.• Crear un vocabulario de taxonomía para este tipo de

contenido.• Crear un campo en el tipo de contenido blog que

permita elegir un término del vocabulario anterior.• Activar las opciones de menú que permiten mostrar

los enlaces a los blogs.• Crear una entrada de blog.

Page 102: Drupal 7 (2)

Comentarios• Los comentarios están controlados por el módulo Comment.• Cada tipo de contenido puede configurarse para admitir o no comentarios.• Los permisos de los comentarios son:

• Administrar• Ver• Publicar• Publicar sin aprobación• Editar comentarios propios

• Las opciones de comentarios pueden configurarse globalmente para cada tipo de contenido, y localmente para cada nodo (esta configuración particular prevalece sobre la general y sólo está al alcance de los roles con permiso de administrar comentarios).

• Los comentarios se pueden aprobar a través de Contenido>Comentarios.• La aparición de los avatares en los comentarios está controlada por el tema

(Apariencia>Opciones>Imágenes de los usuarios en los comentarios).

Page 103: Drupal 7 (2)

Ejercicio: Comentarios

• Activar el módulo Comment.• Configurar el tipo de nodo Blog para que admita

comentarios.• Crear un comentario con un usuario cuyos

comentarios requieran aprobación.•Vaya, todos los usuarios registrados pueden omitir la

aprobación. Esto puede ser peligroso cuando se trabaja con niños. Quitar el privilegio al usuario Registrado.

• Aprobar el comentario.

Page 104: Drupal 7 (2)

Trigger: Disparadores y acciones• En Drupal podemos configurar que se realicen automáticamente ciertas

acciones (como mandar un email) cada vez que se produzca cierto evento o disparador (como que se envíe un nuevo comentario). Esta funcionalidad se consigue a través del módulo Trigger del núcleo.

• Primero se definen las acciones a través de Configuración>Sistema>Acciones. Aunque el módulo Trigger ofrece varias acciones predefinidas, como "Hacer el envío pegajoso“ (colocarlo en primera posición, es decir, fijarlo).

• Y después los disparadores a través de Estructura>Disparadores. • Los disparadores pueden desencadenarse a raíz de operaciones con:

• Comentarios: Tras enviar un comentario nuevo• Contenidos: Tras actualizar un nodo• Taxónomia: Tras crear un término• Usuarios: Tras crear una cuenta de usuarios

• Existe un módulo contribuido llamado Rules que es aún más potente, pero aún está en fase beta.

Page 105: Drupal 7 (2)

Trigger: Ejercicio

• Configurar un Disparador/Acción que envíe un mail a cierta dirección cada vez que se cree una cuenta de usuario nueva.

• Configurar un Disparador/Acción que despublique los comentarios que contengan como palabras clave ciertos insultos.

•No funciona actualmente en Drupal 7

Page 106: Drupal 7 (2)

Token: Personalización mediante variables• El módulo contribuido Token funciona en combinación con

otros módulos, como Ubercart o Pathauto, ofreciéndoles variables (como [site-name]) que se sustituyen por cadenas de texto (en este caso, por el nombre del sitio configurado en Configuración del sitio>Información del sitio).

• Estas variables se denominan comodines.• Los Token también pueden utilizarse en las acciones de

Trigger, pero se requiere activar el módulo Token Actions incluido con el propio Token.

• Puede ver un listado de todos los tokens posibles a través de la ayuda del módulo.

Page 107: Drupal 7 (2)

Token: Ejercicio

• Crear una acción que muestre un mensaje con comodines al usuario cada vez que envíe un comentario. El cuerpo del mensaje será el siguiente:

Hola [current-user:name]:Gracias por enviar el comentario siguiente:[comment:body]para el artículo [comment:node:title] de

[comment:node:author] el día: [current-date:long]

Page 108: Drupal 7 (2)

El módulo Path

• Como ya sabemos, todos los nodos de Drupal son accesibles añadiendo al URL de nuestro sitio /node/x (donde x es el número del nodo al que queremos acceder).

• Sin embargo, este método no es muy descriptivo, y tampoco favorece la catalogación de los buscadores como Google.

• El módulo del núcleo Path, nos permite asignar un nombre concreto a cada nodo a través de la opción Opciones de ruta URL que aparece en la página de creación/edición de los nodos al activar este módulo.

• Esta ruta es lo que tendremos que escribir en lugar de node/x para acceder a él (no anula la forma node/x).

• Estas rutas alternativas se denominan alias.

Page 109: Drupal 7 (2)

Ejercicio: El módulo Path

• Activar el módulo Path si no lo estuviera ya.• Crear un nodo con ciertos datos personales y

asignarle la ruta de acceso curriculum.• Comprobar que este nodo es accesibe a través del

URL: www.dirección_de_nuestro_sitio/curriculum

Page 110: Drupal 7 (2)

El módulo Pathauto I

• El módulo Path tiene 2 inconvenientes:• Es tedioso tener que indicar los alias manualmente• Puede producir inconsistencia en los alias. Por ejemplo, un usuario

puede utilizar un patrón distintos a las normas generales.• Afortunadamente podemos evitar esos inconvenientes gracias

al módulo contribuido Pathauto. Este módulo crea automáticamente alias para los nodos (node/x), usuarios (user/x), términos de taxonomía (taxonomy/term/x), blogs (blog/x) y es compatible también con módulos que añaden otros tipos de nodos).

• Lo interesante de Pathauto es que puede servirse del módulo Token para introducir en los alias información referente al propio contenido, como el nombre del usuario, o el título del artículo.

Page 111: Drupal 7 (2)

El módulo Pathauto II

• Tras instalar Pathauto es recomendable retirar a los usuarios que lo tuvieran el permiso de crear alias (es mejor que todos sean automáticos para que se ajusten al mismo criterio).

• Las opciones de Pathauto se configuran a través de Configuración>Búsqueda y metadatos>Alias de URL.

• En Opciones de alias de rutas automáticas se configura el aspecto que tendrán los alias que generará Pathauto automáticamente a partir de su activación… y qué hacer con los alias ya existentes (borrarlos, mantenerlos, crear uno alternativo, …)

• Pero si también queremos aplicar este patrón de alias a los contenidos previos a la instalación de Pathauto (¡ojo!, sólo a los que no tuviesen ya un alias creado con Path) tendremos que utilizar Bulk update…

Page 112: Drupal 7 (2)

El módulo Pathauto III

• La actualización de un contenido puede provocar que su patrón de alias varíe, y la opción Opciones generales>Acción al actualizar nos permite elegir entre:

•No hacer nada. Dejar intacto el alias anterior.•Crear alias nuevo. Dejando el alias anterior operativo.•Crear alias nuevo. Borrando el alias anterior.•Instalar el módulo Redirect. Redirigir desde el alias anterior.

Ésta es la opción más favorable (para evitar que haya dos URL que conduzcan a la misma página y podamos ser penalizados por la arañas de los buscadores).

Page 113: Drupal 7 (2)

Ejercicio: El módulo Pathauto

• Instalar y activar los módulos Pathauto y Redirect.• Comprobar que ningún rol tiene permisos para los módulos

(de este modo sólo el administrador puede configurar los alias y se asegura la consistencia):

• Path• Redirect (antiguo Path redirect)• Pathauto

• Explorar los Patterns (patrón) de alias de rutas automáticos:• Observar que, en el caso de los nodos, los patrones de reemplazo nos

permiten utilizar, por ejemplo, fechas. De modo que podríamos clasificar los nodos por años; por ejemplo: content/[current-date:custom:Y]/[node:title]

• Realizar una generación de alias en masa para actualizar todo el sitio.

Page 114: Drupal 7 (2)

WebForm I• El módulo contribuido WebForm nos permite crear nodos que sean, en realidad,

formularios.• Los usuarios podrán rellenar estos formularios, y los datos que introduzcan se

almacenarán en el sistema y, opcionalmente, se enviarán por correo a la dirección que configuremos.

• El acceso a los formularios puede limitarse:• Por roles• Por número de veces

• Los campos de los formularios se denominan componentes y pueden ser de varios tipos:

• archivo• date• email• hidden• select• textarea• …

Page 115: Drupal 7 (2)

WebForm II

• Los resultados de los formularios pueden descargarse también en formato Excel.

• El procedimiento general para crear un formulario es:1. Administración de contenido>Webforms

• Aquí configuramos el título del formulario.2. Añadir los componentes (campos) necesario y configurarlos.

• Podemos indicar qué campos serán obligatorios.3. Configurar los correos electrónicos. Se puede utilizar el contenido de

algún campo como detalle del email (remitente o asunto).4. En Form Settings se puede configurar qué roles tienen acceso al

formulario y cuántas veces lo pueden enviar.• En Opciones avanzadas podemos configurar que el formulario esté

disponible como un bloque y que permita guardarlo para completarlo más tarde (draft).

5. Analizar los resultados.

Page 116: Drupal 7 (2)

Ejercicio I: WebForm

• Crear un formulario que:• Sea accesible a través del menú Navegación mediante un item

llamado Examen.• Sea accesible para los usuarios de un rol determinado (por ejemplo

alumnos).• Contenga un campo oculto en el que se almacene el nombre del

usuario (%username).• Contenga varios campos de selección, de modo que en cada uno de

ellos se ponga un término en español y se pregunte su traducción al inglés.

• Configurar todos los campos para que se envíen por email, y el formulario para que sólo se pueda enviar una vez.

• Permitir la opción de guardar el borrador del formulario (draft).• Descargar los resultados con formato Excel.

Page 117: Drupal 7 (2)

WebForm III

• Con WebForm se pueden crear formularios multipágina (insertando componentes pagebreak).

• Además, mediante Conditional rules, podemos hacer que los controles de unas páginas se muestren o no en función de los valores elegidos en las páginas anteriores.

Page 118: Drupal 7 (2)

Ejercicio II: WebForm

• Crear un formulario compuesto por dos páginas de modo que:• En la primera haya que elegir entre ciencias o letras.• En la segunda haya que elegir entre asignaturas de

ciencias o letras dependiendo de la opción elegida en la página anterior.

Page 119: Drupal 7 (2)

Registration code I

• Este módulo contribuído sólo permitirá registrarse en nuestro sitio Drupal a los usuarios que dispongan de un código de registro.

• Estos códigos de registro pueden generarse con el propio módulo, que permite limitar cuántas veces es válido cada código de registro, es decir, cuántos registros de usuario pueden realizarse con cada código.

• Registration code permite generar fácilmente códigos a granel y gestionarlos, pues se apoya en el módulo taxonomía para asignar términos a los códigos, y en el módulo Views Bulk Operations para realizar operaciones en conjunto sobre ellos. La versión de Views Bulk Operations (VBO) dependerá de la versión de Views:• Views 6.x-2.x utiliza VBO 6.x-1.x• Views 6.3-3.x utiliza VBO 6.x-3.x

Page 120: Drupal 7 (2)

Registration code II

• Registration Code crea automáticamente un vocabulario de taxonomía llamado Registration codes, pero sin términos. Es aconsejable crear los términos antes de empezar a generar códigos de registro (por ejemplo, podríamos crear términos como ESO, Bachillerato, Primero, Segundo, …). Si lo deseásemos, también podríamos elegir cualquiera de los vocabularios ya existentes mediante Opciones de Registration code.

• Para crear los códigos acudiremos a Administración de usuario>Registration code>Crear. Este formulario nos permite crear códigos en masa sin más que indicar un prefijo en Registration code e indicar cuántos códigos necesitamos en Number of codes to generate.

• El formato de las fechas Active from y Expires on puede ser, entre otros, AAAA/MM/DD.

• Los códigos pueden estar compuestos sólo por letras, sólo por números, por letras y números, o ser números hexadecimales.

Page 121: Drupal 7 (2)

Registration code III

• Los códigos pueden gestionarse a nivel individual mediante Lista (activarlos, desactivarlos, borrarlos, …).

• Los códigos se gestionan a nivel global mediante Manage.• El módulo Registration code viene acompañado de otros de

interés:• Code mailer: Permite enviar lotes de códigos a direcciones de email

utilizando el comodín [regcode].• Dynamic code support: Cuidado con este módulo porque permite al

usuario crear códigos que cumplan un cierto patrón (por defecto, cualquier número mayor que 1000000000 a incrementos de 7). Mejor desactivarlo.

• Role assigment: Permite asignar un rol concreto en función del término de taxonomía que tenga asignado cada código de registro.

Page 122: Drupal 7 (2)

Ejercicio: Registration code

• Instalar Views Bulk Operation.• Instalar Registration code, Code mailer y Role assigment.• Añadir los términos ESO y Bachillerato al vocabulario

Registration code.• Generar un lote de 10 códigos de registro con cada uno de los

términos anteriores.• Configurar los códigos de uno y otro término para que

adquieran roles diferentes en Drupal.• Enviar varios de estos códigos por email (utilizando

[regcode]).• Comprobar que efectivamente los códigos permiten

registrarse.

Page 123: Drupal 7 (2)

Contactos• El formulario de contacto sirve para que los usuarios puedan contactar con

nosotros a través de correo electrónico pero sin desvelar nuestras direcciones.• Los formularios de contacto están controlados por el módulo Contact.• Drupal nos permite crear distintas categorías (información del producto,

información general, …) de formularios de contacto. Estructura>Formulario de contacto

• En las opciones podemos configurar:• El número máximo de mensajes que puede enviar un usuario por hora (sólo Drupal 6).• Si queremos que se muestre un formulario de contacto para cada usuario en su perfil.

Configuración>Personas>Opciones de la cuenta• Al activar este módulo se crea automáticamente el ítem de menú correspondiente

en el menú Navegación, pero está inicialmente desactivado.• También tenemos que configurar los permisos del módulo Contact para definir

quién (qué roles) puede acceder a estos formularios.• Adicionalmente, cada usuario puede configurar en su página de perfil si quiere o no

mostrar su formulario de contacto.

Page 124: Drupal 7 (2)

CCK: Content Creation Kit• Fields: Tipos de datos

• Integer• Decimal• Float• Text• Node reference: Referencia a un nodo• User reference: Referencia a un usuario

• Widgets: Presentación para introducir el tipo de dato• Text field• Text area• Check box• Radio buttons• Select list• Autocomplete text field

• Formatters: Presentación de los datos. Permite definir qué campos se mostrarán en el modo resumido y en el modo extendido del nodo.

Page 125: Drupal 7 (2)

Instalar CCK• Descargar el módulo CCK filtrando las categorías de módulos de drupal.org

por compatibilidad con la versión 6.0 y por proyecto Content. La versión disponible actualmente es CCK 6.x-2.6.

• Aprovechar también para descargar el módulo FileFiled, que se encuentra en la versión 6.x-3.2.

• Descomprimirlos y copiar las carpetas resultante cck y filefield en la carpeta sites/all/modules.

• Acceder a Administrar>Construcción del sitio>Módulos y activar los siguientes módulos:

• Content• FileField• Node Reference• Number• Option widget• Text• User reference

Page 126: Drupal 7 (2)

Ejercicio: El tipo de nodo taller

• Crear un tipo de nodo llamado taller.• Configurar en él los siguientes campos:

•Taller (*Título)•Descripción (*Cuerpo)•Departamento: Text – Select list•Responsable: User reference – Select list•Precio: Decimal – Text field

• Usar la opción Display fields para que las etiquetas aparezcan junto a los datos en lugar de sobre ellos.

Page 127: Drupal 7 (2)

Ejercicio: El tipo de nodo inscripción

• Crear un tipo de nodo llamado inscripción.• Configurar en él los siguientes campos:

•Nombre (*Título)•Observaciones (*Cuerpo)•Taller: Node reference – Select list•Copia DNI: archivo – File upload (que se guarden en

files/dni)• Usar la opción Display fields para que las etiquetas

aparezcan junto a los datos en lugar de sobre ellos.

Page 128: Drupal 7 (2)

Instalar Advanced Help

• Descargar el módulo Advanced Help filtrando las categorías de módulos de drupal.org por compatibilidad con la versión 6.0 y por proyecto Utility. La versión disponible actualmente es CCK 6.x-1.2.

• Descomprimirlos y copiar la carpeta resultante advanced_help en la carpeta sites/all/modules.

• Acceder a Administrar>Construcción del sitio>Módulos y activar el módulo Advanced Help.

• Comprobar cómo aparecen nuevas opciones de ayuda en las páginas relacionadas con CCK.

Page 129: Drupal 7 (2)

Views I

• Hasta ahora con Drupal hemos podido mostrar:• Nodos concretos (/node/#) • Listados de nodos que comparten un término de taxonomía

(/taxonomy/term/#)• El perfil de un usuario (/user/#)• Las entradas del blog de un usuario (/blog/#)

• Pero ¿y si quisiéramos mostrar algo diferente? Por ejemplo, un bloque en el que apareciesen los últimos contenidos enviados por el usuario que actualmente está viendo nuestro sitio.

• En este caso tendríamos que recurrir al módulo Views, que sin lugar a dudas, es el mayor responsable de que Drupal sea considerado uno de los CMS más flexibles.

Page 130: Drupal 7 (2)

Views II• Una vista es una configuración en la que elegimos mostrar un tipo de

información:• Nodos• Comentarios • Usuarios • Archivos • Términos de taxonomía

• Con un Formato determinado• Grid (cuadrícula)• HTML list• Jump Menu (cuadro de lista desplegable)• Tabla• Unformated list

• Eligiendo qué campos queremos mostrar de cada elementos• Filtrándolos por distintos criterios• Y ordenándolos con los criterios que queramos.

Page 131: Drupal 7 (2)

Views III

• Una vez establecida la configuración general de la vista (Master), podemos crear diferentes displays a partir de ella, que son los que realmente podremos mostrar en nuestro sitio, y que pueden ser de los siguientes tipos:

• Página• Bloque• Adjunto• Feed• Contexto• Panel

Page 132: Drupal 7 (2)

Instalar Views

• Antes de instalar el módulo Views, que actualmente es el más instalado en Drupal 7, es necesario instalar el módulo Chaos Toolsuite, y muy recomendable instalar el módulo Advanced Help.

Page 133: Drupal 7 (2)

Ejercicio: Crear una vista que liste los contenidos de la última semana I• Crear la vista:

• Estructura>Views>Add new view• View name: articulos_recientes• Mostrar: Contenido

• Desactivar Create a page y Create a block (inicialmente configuramos la vista y luego ya decidiremos qué displays queremos)

• Formato: • Formato: HTML list • Mostrar: Campos

• Campos• Título• Agregar

• Contenido: Post date• Sin etiqueta• Excluido de la visualización• Formato personalizado: j \d\e F \d\e Y

• Comprobar que se puede cambiar el orden de presentación de los campos• Formato: Modificar las opciones de HTML list para agrupar el listado por Contenido: Post date• Filtros

• Añadir un filtro sobre Post date para que sólo se muestren los nodos de la última semana (is greater than -7 day)

• Ordenación• Mantener el criterio descendente sobre Contenido: Post date, pero configurándolo con una granularidad diaria

y luego con una granularidad horaria y explicar las diferencias.

Page 134: Drupal 7 (2)

Ejercicio: Crear una vista que liste los contenidos de la última semana II• Observar que el módulo Views nos permite controlar el acceso por

permiso, además de por rol (que es lo único que permiten los bloques por defecto)

• Modificar el Pager para que sólo muestre 4 elementos por página.• Guardar la vista• Añadir un display de tipo Bloque y asignarle el nombre “Contenidos de la

semana”• Asignar el bloque a una región de la plantilla y configurar su título como

“Contenido de la semana”. Obsérvese la diferencia entre nombre (paso anterior) y título del bloque.

Page 135: Drupal 7 (2)

Ejercicio: Crear una página que liste los usuarios agrupándolos por roles I• Crear la vista:

•Construcción del sitio>Views>Add• View name: lista_de_usuarios• View tag: usuarios• View type: Usuario

• Elegir el tipo de display:•Seleccionar la opción Página y pulsar Add display.

• Ruta: lista_de_usuarios• Menu: Normal menu entry

• Título: Lista de usuarios

Page 136: Drupal 7 (2)

Ejercicio: Crear una página que liste los usuarios agrupándolos por roles I• Crear la vista:

•Estructura>Views>Add new view• View name: lista_de_usuarios• Mostrar: usuarios

• Activar Create a page:•Ruta: lista-de-usuarios

• Menu: Normal menu entry • Create a menu link

• Menu: Menú principal• Link text: Lista de usuarios

Page 137: Drupal 7 (2)

Ejercicio: Crear una vista que liste los usuarios agrupándolos por roles II• Campos/Fields:

• Usuario: Created date• Usuario: Candel link• Usuario: Edit link• Usuario: Imagen• Usuario: Nombre• Usuario: Último acceso

• Configurar la etiqueta de los campos, respectivamente, del siguiente modo:• Fecha de registro• Operaciones• Editar perfil• Imagen• Nombre• Último acceso

• Establecer el siguiente orden para los campos:• Nombre• Fecha de creación• Imagen• Último acceso• Editar• Operaciones

• Asignar al campo Nombre la etiqueta Nombre

Page 138: Drupal 7 (2)

Ejercicio: Crear una vista que liste los usuarios agrupándolos por roles III• Formato:

• Tabla.• Configurar la tabla del siguiente modo:

• En la columna Column del field (campo) Editar seleccionar Operaciones• En la columna Separator del field Operaciones escribir espacio|espacio• Activar todas las casillas Sortable• Elegir Nombre como Default sort• Update default settings

• Filtros:• Mantener el filtro que usa como criterio que el usuario esté activo.

• Contextual filters/Argumentos:• Agregar un filtro contextual que use como criterio Usuario: Roles• When the filter value is not in the URL:

• Display a summary• En el resto de la configuración mantener las opciones predeterminadas

• When the filter value is in the URL:• Override title: Usuarios con el rol %1

• Guardar la vista

Page 139: Drupal 7 (2)

Ejercicio: Crear una vista que liste las últimas entradas de blog por usuario I• Crear la vista:

• Construcción del sitio>Views>Add• View name: entradas_blog_recientes• View tag: blog• View type: Nodo

• Configuración default• Campos

• Añadir los campos• Nodo: Título

• Borrar la etiqueta• Link this field to its node

• Colocar el campo Título delante de Post date• Filtros

• Añadir los filtros• Nodo: Type

• Is one of Entrada de bitácora• Nodo: Published

• Sí

Page 140: Drupal 7 (2)

Ejercicio: Crear una vista que liste las últimas entradas de blog por usuario II

• Sort criteria (orden)• Añadir el criterio Node: Post date y configurarlo en orden Descending

• Basic settings (primera columna)• Items to display: 4• Style: HTML list

• Arguments• Añadir el argumento Usuario: uid

• Título: Entradas recientes de %1• Action to take if argument is not present: Provide default argument• User ID from URL• Also look for a node and use node author• Validator: Usuario

• Probar el argumento escribiendo 1 en el campo de la sección Live preview• Crear el display de bloque

• Seleccionar Block y pulsar Add display• Block Settings (debajo de Basic Settings)>Admin: Entradas de blog recientes

• Guardar la vista• Construcción del sitio>Bloques para mostrar el bloque

Page 141: Drupal 7 (2)

Ejercicio: Crear una vista de talleres

• Vamos a crear una vista que muestre todos los talleres propuestos.

• Administrar>Construcción del sitio>Views>Add.•View name: Talleres•View tag: Talleres (sólo sirve para ordenar las vistas en la

zona administrativa)•View type: Node

• Pulsar Next para empezar a configurar la vista.

Page 142: Drupal 7 (2)

Ejercicio: Configurar la vista talleres

• En la sección Basic Settings:

•Título: Talleres propuestos•Style: Tabla•Use pager: Sí – Full pager•Empty text: Aún no se ha

propuesto ningún taller

Page 143: Drupal 7 (2)

Ejercicio: Añadir campos a la vista talleres• En la sección Fields, pulsar el icono + para

añadir cada uno de los siguientes campos:

• Nodo: Título• Nodo: Post date• Contenido: Precio• Contenido: Responsable

• Y configurarlos así:• Título: Link this field to its node• Post date: Date format• Precio: Formato• Responsable: dejar por defecto

• Comprobar que en la previsualización de la vista se muestran todos los tipos de nodos (no sólo los de tipo taller).

• Reordenar los campos como se muestra en la figura.

Page 144: Drupal 7 (2)

Ejercicio: Filtrar la vista talleres• En la sección Filtros, pulsar

el icono + para añadir los siguientes filtros:

•Nodo: Published•Nodo: Type (Is one of Taller)

Page 145: Drupal 7 (2)

Ejercicio: Establecer un orden en la vista talleres• En la sección Sort criteria, pulsar el

icono + para añadir el siguiente criterio:

• Nodo• Post date

• Descendant• Granurality: second

• La granularidad sirve para indicar a qué nivel deben considerarse idénticos en ordenación dos nodos (por ejemplo, si tiene la misma hora aunque los minutos/segundos sean distintos). Esto es muy útil para poder aplicar criterios de ordenación secundarios. Por ejemplo, ordenar primero por fecha y luego por título todos los talleres propuestos para el mismo día.

Page 146: Drupal 7 (2)

Ejercicio: Crear un display para la vista talleres• En la sección Defaults,

seleccionar Página y pulsar Add display.

• Configurar la sección Page Settings del siguiente modo:

•Ruta: talleres•Menú

• Normal menu entry• Título: Talleres propuestos• Menú: Navegación

Page 147: Drupal 7 (2)

Ejercicio: Crear un argumento en la vista talleres• En la sección Arguments, pulsar el icono + y

configurar el siguiente argumento:• Contenido: Departamento

• Título: Talleres propuestos por el departamento %1• Action to take…: Summary, sorted ascending• Display: List• Display record count with link (mediante el icono de la rueda dentada)

• Comprobar cómo ha variado el comportamiento del enlace "Talleres propuestos"

Page 148: Drupal 7 (2)

Ejercicio: Crear la vista de inscripciones• Vamos a crear 3 displays para la vista de

inscripciones:• Uno que muestre todas las inscripciones recibidas• Otro que muestre en una ficha adicional del nodo de cada taller las

inscripciones que ha recibido• Y una última que muestre en un bloque las inscripciones que ha realizado el

usuario actualmente acreditado

Page 149: Drupal 7 (2)

Ejercicio: Configurar los defaults I• Construcción del sitio>Views>Lista>Add

• View name: Inscripciones• View tag: inscripciones• View type: Node

• Next• Style: Table• Use Pager: Yes, Full pager• Empty text: No se han realizado inscripciones aún.

• Añadir los siguientes campos (fields):• Contenido: Taller - Link this field to its node• Nodo: Post date – Elegir un formato de fecha que indique el día de la semana• Nodo: Título - Link this field to its node• Usuario: Nombre – Etiqueta=Solicitante

Page 150: Drupal 7 (2)

Ejercicio: Configurar los defaults II• Recolocar los campos situando el node reference al taller en último lugar• Añadir un orden (Sort criteria) que ordene las inscripciones en sentido

descendente de Post date• Añadir los siguientes filtros:

• Nodo: Publicado - Sí• Nodo: Tipo – Is one of Inscripción

Page 151: Drupal 7 (2)

Ejercicio: Crear el display de todas las inscripciones• Añadir un display de tipo Page• Configurar el acceso para los Asesores

• Pulsar Override• Seleccionar Role• Pulsa Actualizar• Seleccionar el rol Asesor• Pulsar Actualizar

• Crear un ítem de menú• Ruta: inscripciones• Menú: Normal menu entry – Título: Inscripciones – Menú: Navegación

Page 152: Drupal 7 (2)

Ejercicio: Crear el display de las inscripciones de un taller

• Añadir un display de tipo Page y cambiar su nombre a Inscripciones por taller

• Restringir el acceso de este display para que sólo puedan usarlo los asesores

• Añadir un Relationship al elemento Contenido: Taller y activando la opción Require this relationship

•Esto lo hemos hecho porque queremos que se muestren sólo las inscripciones recibidas para un taller en particular.

Page 153: Drupal 7 (2)

Ejercicio: Crear el display de las inscripciones de un taller

• Override los arguments• Crear este argumento:

•Nodo: Nid• Relationship: Taller• Título: Inscripciones recibidas para el taller %1• Action to take…: Display empty text• Validator: Nodo

• Taller• Validate user has access to the node

Page 154: Drupal 7 (2)

Ejercicio: Crear el display de las inscripciones de un taller

• Configurar los Page Settings:•Ruta: node/%/inscripciones•Menú

• Menu tab• Título: Inscripciones

• Override los fields y eliminar los campos •Contenido: Taller •Contenido: Título

Page 155: Drupal 7 (2)

Ejercicio: Crear el display de las inscripciones de un usuario

• Añadir un display nuevo de tipo Bloque•Título: Mis inscripciones•Style: HTML List

• Unordered list•Block settings

• Admin: Inscripciones por usuario•Override los Fields y eliminarlos todos menos

Contenido: Taller, que configuraremos del siguiente modo:

• Desactivar Link this field to its node• Etiqueta: Ninguno• Formato: Title (no link)

Page 156: Drupal 7 (2)

Ejercicio: Crear el display de las inscripciones de un usuario

• Override los Filtros y añadir uno nuevo:•Usuario: Current

• Is the logged in user: Sí

• Colocar el bloque (Administrar>Construcción del sitio>Bloques) en el lateral derecho.

• Configurar el bloque para que sólo se muestre a los usuarios Asistentes.

Page 157: Drupal 7 (2)

El módulo Aggregator• Este módulo sirve para incluir en nuestro sitio

contenidos proporcionados por los enlaces de sindicación (RSS, Atom, RDF, ..) de otros sitios

• Podemos organizar las suscripciones en categorías.• Cada suscripción/hilo y cada categoría configura

automáticamente un bloque.• Cada suscripción es accesible a través de un URL del

tipo: aggregator/sources/1• Cada categoría es accesible a través de un URL del

tipo: aggregator/categories/1• La actualización de los hilos se realiza

automáticamente a través de Cron

Page 158: Drupal 7 (2)

Ejercicio: Aggregator• Activar el módulo Aggregator• Crear una categoría llamada Educación

(Configuración>Servicios web).• Agregar 2 hilos en esa categoría:

• CRIF Las Acacias• CTIF Madrid Norte

• Configurar las opciones para que se admita el elemento <img> (Opciones)

• Crear un ítem de menú que permita acceder a la categoría.• Ejecutar CRON

Page 159: Drupal 7 (2)

Temas

• Instalación: Descargar, descomprimir y ubicar la carpeta resultante en sites/all/themes

• Activación: Construcción del sitio>Temas• Configuración: Por ejemplo, podemos

hacer que aparezcan los avatares en los nodos y/o comentarios

Page 160: Drupal 7 (2)

Ubercart I• El módulo contribuido Ubercart es la opción más popular para

construir sitios de comercio electrónico basados en Drupal.• La instalación de este módulo requiere que esté activado el

módulo Token y además es aconsejable disponer de los siguientes:

• CCK• FileField• ImageAPI• ImageCache• ImageField• Lightbox 2• Google Analytics

• La mayoría de las pasarelas de pago compatibles con Ubercart requieren que nuestro servidor tenga instalada la extensión Curl de PHP.

Page 161: Drupal 7 (2)

Ubercart II

• Tras instalar Ubercart activaremos sólo los 5 módulos obligatorios del núcleo:

• Cart• Conditional actions• Order• Product• Store

• … y posteriormente añadiremos los demás módulos que esperemos necesitar.

Page 162: Drupal 7 (2)

Ubercart III1. Tras instalar Ubercart, configurar las opciones del país: Store

administration>Configuration>Country settings>Import Country.2. Configurar las opciones de la tienda: Store administration>Configuration>Store

settings (especialmente el titulo de la tienda y los formatos).3. Instalar y activar los siguientes módulos:

• ImageCache• ImageAPI

• ImageAPI GD2• CCK ImageField

4. Acceder a Store Administration y, en los mensajes de estado (abajo), hacer clic sobre el enlace para habilitar el uso de imágenes en los productos.

5. Crear las clases de productos que sean necesarias (Store Administration>Products>Manage classes). Cada clase es, en realidad, un tipo de nodo de Drupal. En realidad sólo hay que crear clases si nuestros productos son de naturaleza o con opciones de comercialización muy diferentes; por ejemplo, libros en papel y ebooks.

Page 163: Drupal 7 (2)

Ubercart IV

1. Crear un producto a través de Administración de contenido>Crear contenido>Product. Los productos son sencillamente nodos.• SKU: Stock Keeping Unit (número de

referencia).• MSRP: Manufacturer Suggested Retail

Price (precio recomendado por el fabricante).

Page 164: Drupal 7 (2)

Ubercart V1. Obviamente, no resulta cómodo acceder a los productos

individualmente como si fueran nodos, por lo que podríamos crear una vista, que es precisamente lo que hace por nosotros el módulo adicional Catalog de UC.

2. Activar este modulo.3. Catalog crea un vocabulario de taxonomía llamado Catalog aplicable a

todas las clases de productos, y al que añadiremos los términos en los que deseemos clasificar los productos; por ejemplo: libros, discos y ebooks.

4. Cada término puede tener asociado una imagen.5. El catálogo es accesible añadiendo al URL de nuestro sitio catalog.6. Crear un enlace en el menú Navegación que permita acceder fácilmente

al catálogo.7. Configurar la vista del catálogo en rejilla (Grid) a través de Store

administration>Configuration>Catalog settings.

Page 165: Drupal 7 (2)

Ubercart VI

• Para traducir Ubercart al castellano:1. Acceder al sitio http://l10n.privnet.biz/ 2. Seleccionar Translate y elegir el idioma Spanish y el

proyecto Ubercart.3. Hacer clic sobre Export y elegir la última release

disponible. En el formato de exportación, seleccionar Translation y All in one file. Al pulsar Export se descargará un archivo con la extensión .PO.

4. Construcción del sitio>Traducir interfaz>Importar. Seleccionar el archivo PO y pulsar Importar.

Page 166: Drupal 7 (2)

Backup and migrate I• Recordemos que cualquier sitio desarrollado con Drupal es una

combinación de archivos en el servidor y tablas en una base de datos.• Los archivos pueden copiarse y trasladarse fácilmente de un servidor a

otro con cualquier cliente FTP, como FileZilla.• Pero las tablas son un poco más engorrosas de trasladar, y aquí es dónde

va a ayudarnos el módulo contribuido Backup and migrate.• Además, Backup and migrate es muy útil para realizar copias de

seguridad periódicas de las tablas de nuestro sitio. Esta operación la realiza en combinación con CRON. En versiones anteriores de Drupal era necesario configurar el demonio CRON en nuestro sitio, y si no nos lo permitían sólo nos quedaba la opción de recurrir a un módulo contribuido llamado PoormansCron. Este módulo se ha incluido en el núcleo de Drupal 7, de modo que ya no tenemos que preocuparnos por este asunto.

Page 167: Drupal 7 (2)

Backup and migrate II• El procedimiento general para migrar un sitio Drupal de un servidor de origen a

otro de destino (por ejemplo de nuestro servidor local a un servidor de producción) es:

1. Instalar el módulo Backup and migrate en nuestro sitio de origen.2. Realizar una copia de seguridad de las tablas del sitio de origen mediante el módulo

Backup and migrate. El resultado será un archivo que podremos descargar.3. Trasladar todos los archivos de Drupal de un servidor a otro utilizando un cliente FTP

(FileZilla).4. En el sitio de destino, borrar el archivo sites/default/settings.php y crear un duplicado

del default.settings.php renombrándolo como settings.php.5. Acceder al sitio de destino y llevar a cabo la instalación de Drupal con normalidad,

introduciendo las credenciales de la nueva base de datos. El resto de datos que introduzcamos (como las credenciales del administrador) son indiferentes, pues se sobrescribirán con las originales al realizar la restauración.

6. Activar el módulo Backup and migrate en el sitio de destino.7. Realizar la restauración de las tablas utilizando el archivo descargado en el paso 2.8. Revisar que en el servidor de destino estén disponibles módulos como mod_rewrite u

openssl que son utilizados, respectivamente, por las URL limpias y el módulo SMTP Authentication Support.

Page 168: Drupal 7 (2)

Backup and migrate III• ¿Cómo realizar una copia de seguridad?

• Configuración>Sistema>Backup and Migrate>Backup• Podemos elegir entre descargar el archivo de copia de seguridad o

almacenarlo en el propio servidor dentro del directorio Manual Backups Directory o enviarlo por correo electrónico (a través de la configuración Destinations).

• Para almacenar el archivo en el servidor debemos tener configurada una ruta para el sistema privado de archivos en Configuración>Sistema>Información del sitio.

• Si lo deseamos, podemos utilizar la ficha Advanced backup para:• Elegir un método de compresión.• Bloquear las tablas (Lock tables) para evitar una posible corrupción de

datos.• Poner el sitio fuera de línea durante la realización de la copia de

seguridad.

Page 169: Drupal 7 (2)

Backup and migrate IV• ¿Cómo realizar una restauración?

• Configuración>Sistema>Backup and migrate>Restore• En Opciones avanzadas es aconsejable poner el sitio fuera

de línea durante la restauración.• Recuérdese que la restauración también incluye las

credenciales del administrador.• PRECAUCIÓN: Se restauran las tablas con el prefijo

que tenían en el sitio original, no con el que hayamos configurado durante la instalación del sitio de destino.

• Solución alternativa: Siguiente diapositiva

Page 170: Drupal 7 (2)

Backup and migrate V• Imaginemos que las tablas de nuestro sitio original utilizaban

el prefijo desarrollo_ y que al instalar nuestro nuevo sitio hemos especificado el prefijo explotacion_

• Al realizar la restauración con Backup and Migrate, el nuevo sitio no accederá a los datos de las tablas restauradas porque en su sites/default/settings.php figura como prefijo explotacion_, pero las tablas restauradas usan el prefijo desarrollo_ ¿Soluciones?

1. Abrir el archivo sites/default/settings.php del nuevo sitio y cambiar la línea 'prefix' => ‘explotacion_', por 'prefix' => ‘desarrollo_',

2. Crear en la carpeta raíz de nuestro sitio un archivo llamado prefijo.php con el contenido de la siguiente diapositiva y acceder a él para cambiar el prefijo de las tablas desarrollo_ a explotacion_.

• ¿Y si en el sitio original las tablas no tenían prefijo? Aplicar la solución 1 dejando también las tablas sin prefijo en el sitio nuevo.

Page 171: Drupal 7 (2)

Backup and migrate VI<?php// Cambiar prefijo de tablas$action = isset($_REQUEST['action'])?

$_REQUEST['action']:false;if (!$action) {?> <form action="" method="get"> Database name: <input type="text" name="db_name" />

<br /> Database user: <input type="text" name="db_user" /> <br /> Database user password: <input type="password"

name="db_password" /> <br /> Old prefix: <input type="text" name="old" /> <br /> New prefix: <input type="text" name="new" /> <br /> <input name="action" type="hidden" id="action"

value="data"> <input type="submit" value="Rename" /> </form><?php} else { $mysql_db = $_REQUEST['db_name']; $mysql_user = $_REQUEST['db_user']; $mysql_pass = $_REQUEST['db_password']; $old = $_REQUEST['old']; $new = $_REQUEST['new'];

// Open MySQL link $link = mysql_connect('localhost', $mysql_user,

$mysql_pass); if (!$link) { die('Could not connect: ' . mysql_error()); } echo 'Connected successfully<br><br>'; // Select database and grab table list mysql_select_db($mysql_db, $link) or die ("Database not

found."); $result = mysql_query("SHOW TABLES"); while ($r = mysql_fetch_array($result)) { $table_old = current($r); if($old=='' || strpos($table_old, $old)!==FALSE){ $table_new = $new.str_replace($old, '', $table_old); mysql_query("RENAME TABLE $table_old TO

$table_new"); print "{$table_old} &mdash;&gt; {$table_new} <br />"; } }}?>

Page 172: Drupal 7 (2)

Backup and migrate VII• ¿Cómo configurar la realización de copias de seguridad periódicas?

• Configuración>Sistema>Backup and migrate>Schedules>Add schedule• Las opciones más importantes son:

• Backup every (periodicidad de la operación; cada día suele ser una buena opción). Esta periodicidad estará supeditada a la del demonio CRON (véase la siguiente diapositiva).

• Number of backup files to keep: A menos que nuestro espacio de hosting se esté agotando es aconsejable dejar el valor 0 que no borra ninguna copia de seguridad. Si elegimos otro valor se irán borrando las copias de seguridad más antiguas.

• Es aconsejable que el perfil que elijamos tenga activadas las casillas Lock tables during backup y Take site offline (poner sitio fuera de línea)

• Es interesante destacar la comodidad de especificar como destino una dirección de correo electrónico para las copias de seguridad automáticas.

Page 173: Drupal 7 (2)

CRON• CRON es un demonio que se ejecuta en los servidores web, es decir, una aplicación que está

siempre en funcionamiento, y cuya misión es ejecutar ciertos archivos cada cierto tiempo.• Algunos módulos de Drupal requieren que se realicen ciertas tareas de mantenimiento

periódicamente (por ejemplo, el módulo que comprueba si hay actualizaciones nuevas, o el módulo Backup and migrate), y se las encargan a un archivo llamado cron.php que se encuentra en la raíz del sitio.

• Podemos ejecutar este archivo cron.php manualmente simplemente accediendo a él (http://www.misitio.com/cron.php), o bien podemos configurarlo como una tarea para que se ejecute automáticamente cada cierto tiempo.

• En versiones anteriores de Drupal, esta ejecución automática debía configurarse a través de una tarea Cron, pero el problema era que muchos hostings económicos o institucionales no permitían a los usuarios configurar tareas CRON.

• En Drupal 7 se ha incluido en el núcleo la funcionalidad dél módulo PoorMansCron, que se explica en la siguiente diapositiva.

• Si tenemos instalado el módulo Administration Menu, también podremos ejecutar CRON manualmente desplegando el menú representado por una gota (en el extremo izquierdo de la barra de menús).

• Si queremos ejecutar el cron.php desde fuera de nuestro sitio (sin utilizar la interfaz de Drupal) tendremos que utilizar el URL que se nos indica en Informes>Informes de estado (evitando así que pueda ser ejecutado por terceros)

Page 174: Drupal 7 (2)

Poormanscron• En versiones anteriores de Drupal, el módulo contribuido

Poormanscron era la solución para quiénes no podían configurar CRON en sus servidores; sin embargo se ha incorporado al núcleo en Drupal 7.

• Este módulo ejecuta el archivo cron.php periódicamente siempre y cuando haya accesos a nuestro sitio web (para que se active Poormanscron es necesario que alguien acceda a nuestro sitio, pues no es un CRON real sino un simple módulo que cada vez que alguien accede a nuestro sitio comprueba cuánto hace que no se ejecuta cron.php y, si ha pasado más tiempo del establecido, lo ejecuta igual que si lo hiciésemos nosotros manualmente pero en segundo plano (de forma transparente para el usuario)).

• En Drupal 7 el periodo de ejecución de CRON se configura a través de Configuración>Sistema>Cron.

Page 175: Drupal 7 (2)

Supercron• El módulo contribuido Supercron sirve para saber qué tareas

está pidiendo cada módulo que se ejecuten con cada CRON y cuánto tiempo consumen.

• Una vez activado, hay que copiar el archivo supercron.php de la carpeta del módulo a la raíz del sitio.

• Con Supercron (Configuración del sitio>Supercron) podremos activar o desactivar las tareas que nos interesen para incluirla o no en la ejecución de CRON, o invocarlas individualmente.

• Otro detalle interesante es su pequeño Firewall, con el que podemos permitir la ejecución directa de CRON sólo cuando la petición proceda de una cierta dirección IP. Esto es importante porque usuarios malintencionados pueden cometer abusos.

Page 176: Drupal 7 (2)

Actualizar Drupal o un módulo1. Si se trata de un módulo, desactivarlo (Construcción del

sitio>Módulos).2. Poner el sitio fuera de línea (Configuración del

sitio>Mantenimiento del sitio).3. Sobrescribir lo archivos de Drupal/módulo con los de la

nueva versión (si se trata de un módulo es mejor borrar los viejos y colocar en su lugar los nuevos).

4. Acceder al sitio como administrador (www.misitio.com/user) y ejecutar una actualización de la base de datos, bien a través de la dirección www.misitio.com/update.php o bien ejecutando el comando Run updates del menú con forma de gota de Administration Menu.

5. Si se trata de un módulo, activarlo.6. Poner el sitio nuevamente en línea.