1.76k likes | 2.31k Views
Drupal 7. CRIF "Las Acacias" Abril – 2011 Juan Félix Mateos. ¿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 .
E N D
Drupal 7 CRIF "Las Acacias" Abril – 2011 Juan Félix Mateos
¿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.
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.
¿Quién utiliza Drupal? • La casa Blanca: http://www.whitehouse.gov/ • ING Direct: http://ing.us • The Economist: http://www.economist.com/ • El parlamento vasco: http://www.parlamentovasco.euskolegebiltzarra.org/eu/ • Rafa Nadal: http://www.rafaelnadal.com/ • Garming, McDonnals, Christina Aguilera, Mensa, Intel, BBC, Linux Journal, Stanford University,
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
… 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.
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.
¿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.
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.
Sitios estáticos versus dinámicos II <html> <head> <title>Página dinámica</title> </head> <body> <p>Son las <?php echo date("h:i:s");?></p> </body> </html> <html> <head> <title>Página estática</title> </head> <body> <p>Son las 19:30:25</p> </body> </html>
¿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.
Instalación de Drupal: Requisitos previos • Para instalar Drupal necesitamos: • Espacio de alojamiento en un servidor web provisto de PHP 5.3 Generalmente se utiliza el servidor Apache (Apache 1.3 o 2.x). • Acceso a una base de datos web (Drupal puede albergar sus tablas en una base de datos exclusiva o dentro de una base de datos que ya utilicemos para otros sistemas como blogs, comercio electrónico, …). Generalmente se utiliza el servidor de bases de datos MySQL 5.0.15. • Extensión PDO de PHP. • 64 MB de memoria para PHP y 120 segundos de ejecución para scripts.
Instalación de Drupal:Convertir nuestro ordenador local en un servidor web • XAMPP: Windows y Linux • WampServer: Windows • MAMP: Macintosh • Descargar e instalar WampServer de www.wampserver.com/en/
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 = 120Que controla cuánto tiempo puede ocupar como máximo la ejecución de un script PHP.
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.
Instalación de Drupal: Crear la base de datos con phpMyAdmin • El cotejamiento debe ser utf8_spanish_ci
Instalación de Drupal: Crear un usuario para la base de datos • Página de inicio • Privilegios • Agregar un nuevo usuario
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.
Instalación de Drupal: Iniciar la instalación y traducir Drupal al castellano • Acceder a la dirección de nuestro servidor (por ejemplo, http://localhost/drupal). • 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.
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).
Instalación de Drupal: Configuración inicial del sitio • En el servidor de explotación es conveniente que el email utilice el mismo dominio que el servidor web. • Usuario: admin • Contraseña: drupal • Verificar actualizaciones automáticamente (privacidad)
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.
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
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.
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, …)
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$.
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.
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.
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.
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
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"> sobre @title</span> • Pulsar Guardar las traducciones.
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.
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.
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
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
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
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
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.
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.
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.
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.
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.
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.
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.
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.
¿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.