La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

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

Presentaciones similares


Presentación del tema: "CRIF "Las Acacias" Abril – 2011 Juan Félix Mateos"— Transcripción de la presentación:

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

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.

3 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.

4 ¿Quién utiliza Drupal? La casa Blanca: http://www.whitehouse.gov/
ING Direct: The Economist: El parlamento vasco: Rafa Nadal: Garming, McDonnals, Christina Aguilera, Mensa, Intel, BBC, Linux Journal, Stanford University,

5 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

6 … 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.

7 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.

8 ¿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.

9 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.

10 Sitios estáticos versus dinámicos I

11 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>

12 ¿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.

13 La estratificación de Drupal

14 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 Extensión PDO de PHP. 64 MB de memoria para PHP y 120 segundos de ejecución para scripts.

15 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

16 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.

17 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.

18 Instalación de Drupal: Crear la base de datos con phpMyAdmin
El cotejamiento debe ser utf8_spanish_ci

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

20 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.

21 Instalación de Drupal: Iniciar la instalación y traducir Drupal al castellano
Acceder a la dirección de nuestro servidor (por ejemplo, Seleccionar la opción Standard y pulsar el botón Save and continue. Hacer clic sobre el enlace Learn how to install Drupal in other languages. Hacer clic sobre el enlace translation server. 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/). Hacer clic sobre el enlace Reload the language selection page after adding translations.

22 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).

23 Instalación de Drupal: Configuración inicial del sitio
En el servidor de explotación es conveniente que el utilice el mismo dominio que el servidor web. Usuario: admin Contraseña: drupal Verificar actualizaciones automáticamente (privacidad)

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

25 Instalación de Drupal: Resumen
Instalar WAMP y configurar el php.ini con 120 segundos en max_execution_time. Con phpMyAdmin, crear una base de datos y un usuario con todos los privilegios sobre ella. Crear una subcarpeta para Drupal (llamada drupal) dentro de la carpeta /wamp/www y copiar en ella los archivos descomprimidos de Drupal. Duplicar el archivo /sites/default/default.settings.php en la misma carpeta pero con el nombre settings.php. Iniciar la instalación de Drupal accediendo con el navegador web a la dirección localhost/drupal. Descargar el archivo po de la traducción a español y copiarlo en la carpeta profiles/standard/translations. Continuar la instalación y recordar el nombre de usuario y la contraseña asignada al usuario administrador.

26 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

27 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.

28 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, …)

29 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$.

30 Reasignar una contaseña al administrador II
Crear un duplicado del archivo index.php de Drupal 7 llamado password.php. 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(); Acceder con el navegador al archivo password.php y copiar el hash del nuevo password. Mediante phpMyAdmin, pegar en el campo pass del usuario 1 el password copiado anteriormente. Borrar el archivo password.php.

31 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.

32 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.

33 Crear un contenido para la página inicial
Seleccionar Agregar contenido. Elegir el tipo de contenido Página básica. Título: Bienvenido a mi sitio Drupal 7. Editar resumen. Resumen: Hoy he aprendido a instalar Drupal 7. Cuerpo: Es más fácil de lo que esperaba. Opciones de comentarios: Cerrada. Opciones de publicación: Publicado Colocado en la página principal

34 Traducir el enlace « Read more »
Seleccionar Configuración>Traducir interfaz>Traducir. Escribir Read more (la R en mayúscula) en El texto contiene y pulsar el boton Filtrar. Pulsar editar en la entrada Read more. Escribir lo siguiente en Español: Leer más<span class="element-invisible"> Pulsar Guardar las traducciones.

35 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.

36 Instalar un tema nuevo El mejor sitio para obtener temas con seguridad es drupal.org. Descargar el tema marinelli comprimido. Instalarlo mediante Apariencia. Activarlo y convertirlo en predeterminado. Pulsar el botón Opciones del nuevo tema. Cerrar la sesión para ver el nuevo aspecto de nuestro sitio.

37 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

38 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

39 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

40 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

41 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.

42 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.

43 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.

44 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.

45 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.

46 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.

47 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.

48 Contenidos: Menús predeterminados

49 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.

50 ¿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.

51 Algunos bloques incluidos en Drupal
Comentarios recientes Contenido reciente Quién está conectado Usuarios nuevos Sindicar

52 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)

53 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 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.

54 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.

55 Ejercicio: Revisiones
Crear un artículo titulado “Personal de guardia de la semana” cuyo contenido sea una lista de nombres. 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. Utilizar la ficha Revisiones para revertir a la versión original. 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.

56 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.

57 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.

58 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 se ofuscaran automáticamente para evitar spam  Módulo SpamSpan ¿Cómo se modifica la página inicial del sitio?

59 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.

60 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.

61 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.

62 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 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?

63 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.

64 Resumen: ¿Cómo instalar un módulo?
Descargarlo del sitio web de Drupal. Descomprimirlo. Copiar la carpeta resultante dentro de sites/all/modules. Módulos para activarlo. Módulos[Configuración] o Configuración para ver sus opciones de configuración.

65 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.

66 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 para comprobar que realmente funciona.

67 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 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 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.

68 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: 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:

69 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.

70 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.

71 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.

72 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".

73 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

74 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

75 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.

76 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.

77 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.

78 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.

79 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, …).

80 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, …).

81 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).

82 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)

83 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.

84 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.

85 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 ( , contraseña, …) Incluso su nombre de usuario si le concedemos este permiso a alguno de sus roles Elegir un avatar

86 Ejercicio: Perfil de usuario
Asignar un avatar a pepe. Por ejemplo, pueden encontrarse muchos avatares gratuitos en:

87 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)

88 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.

89 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

90 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?

91 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).

92 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.

93 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.

94 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.

95 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)

96 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.

97 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.

98 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.

99 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.

100 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).

101 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.

102 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).

103 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.

104 Trigger: Disparadores y acciones
En Drupal podemos configurar que se realicen automáticamente ciertas acciones (como mandar un ) 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.

105 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

106 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.

107 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]

108 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.

109 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:

110 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.

111 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…

112 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).

113 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.

114 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 hidden select textarea

115 WebForm II Los resultados de los formularios pueden descargarse también en formato Excel. El procedimiento general para crear un formulario es: Administración de contenido>Webforms Aquí configuramos el título del formulario. Añadir los componentes (campos) necesario y configurarlos. Podemos indicar qué campos serán obligatorios. Configurar los correos electrónicos. Se puede utilizar el contenido de algún campo como detalle del (remitente o asunto). 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). Analizar los resultados.

116 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 , 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.

117 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.

118 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.

119 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 x utiliza VBO 6.x-3.x

120 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.

121 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 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 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.

122 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 (utilizando [regcode]). Comprobar que efectivamente los códigos permiten registrarse.

123 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.

124 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.

125 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

126 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.

127 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.

128 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.

129 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.

130 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.

131 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

132 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.

133 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.

134 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.

135 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

136 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

137 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: Fecha de creación Editar Asignar al campo Nombre la etiqueta Nombre

138 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

139 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

140 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

141 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.

142 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

143 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.

144 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)

145 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.

146 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

147 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"

148 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

149 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

150 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

151 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

152 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.

153 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

154 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

155 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)

156 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.

157 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

158 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

159 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

160 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.

161 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.

162 Ubercart III Tras instalar Ubercart, configurar las opciones del país: Store administration>Configuration>Country settings>Import Country. Configurar las opciones de la tienda: Store administration>Configuration>Store settings (especialmente el titulo de la tienda y los formatos). Instalar y activar los siguientes módulos: ImageCache ImageAPI ImageAPI GD2 CCK ImageField 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. 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.

163 Ubercart IV 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).

164 Ubercart V 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. Activar este modulo. 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. Cada término puede tener asociado una imagen. El catálogo es accesible añadiendo al URL de nuestro sitio catalog. Crear un enlace en el menú Navegación que permita acceder fácilmente al catálogo. Configurar la vista del catálogo en rejilla (Grid) a través de Store administration>Configuration>Catalog settings.

165 Ubercart VI Para traducir Ubercart al castellano:
Acceder al sitio Seleccionar Translate y elegir el idioma Spanish y el proyecto Ubercart. 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. Construcción del sitio>Traducir interfaz>Importar. Seleccionar el archivo PO y pulsar Importar.

166 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.

167 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: Instalar el módulo Backup and migrate en nuestro sitio de origen. 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. Trasladar todos los archivos de Drupal de un servidor a otro utilizando un cliente FTP (FileZilla). 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. 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. Activar el módulo Backup and migrate en el sitio de destino. Realizar la restauración de las tablas utilizando el archivo descargado en el paso 2. 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.

168 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.

169 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

170 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? Abrir el archivo sites/default/settings.php del nuevo sitio y cambiar la línea 'prefix' => ‘explotacion_', por 'prefix' => ‘desarrollo_', 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.

171 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> } 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} —> {$table_new} <br />"; ?>

172 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.

173 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 ( 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)

174 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.

175 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.

176 Actualizar Drupal o un módulo
Si se trata de un módulo, desactivarlo (Construcción del sitio>Módulos). Poner el sitio fuera de línea (Configuración del sitio>Mantenimiento del sitio). 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). Acceder al sitio como administrador ( y ejecutar una actualización de la base de datos, bien a través de la dirección o bien ejecutando el comando Run updates del menú con forma de gota de Administration Menu. Si se trata de un módulo, activarlo. Poner el sitio nuevamente en línea.


Descargar ppt "CRIF "Las Acacias" Abril – 2011 Juan Félix Mateos"

Presentaciones similares


Anuncios Google