SlideShare uma empresa Scribd logo
1 de 44
Baixar para ler offline
CURSO DE ADMINISTRACIÓN AVANZADA E 
DESENVOLVEMENTO DE DRUPAL 
TEMA 1: Arquitectura Drupal 
8 - 12 setembro 2014 – Santiago de Compostela
Usted es libre de: 
Copiar, distribuir y comunicar públicamente la obra 
Hacer obras derivadas 
Bajo las condiciones siguientes: 
Reconocimiento - Debe reconocer los créditos de la obra de la manera especificada por 
el autor o licenciador (pero no de una manera que sugiera que tiene su apoyo o apoyan el 
uso que hace de su obra). 
Compartir bajo la misma licencia - Si altera o transforma esta obra, o genera una obra 
derivada, sólo puede distribuir la obra generada bajo una licencia idéntica a ésta. 
© 2014 - CIXUG 
Esta obra fue creada por Alberto Permuy Leal, y está disponible bajo una licencia Reconocimiento-CompartirIgual 
3.0 http://creativecommons.org/licenses/by-sa/3.0/deed.es_ES
Mixed emotions 
● introdución, instalación e profiles 
● drush, alias 
● rendemento e seguridade 
● api 
● proxecto
CURSO DRUPAL 7 AVANZADO 
DRUPAL 
● Que é Drupal 
● Pila de tecnoloxía 
● O núcleo 
● Interface administrativa 
● Módulos, bloques, temas e nodos 
● hooks 
● Estrutura de arquivos 
● Instalación 
● Drupal profiles
CURSO DRUPAL 7 AVANZADO – ARQUITECTURA DRUPAL 
QUE É DRUPAL 
● Drupal emprégase para crear sitios web 
● Software modular e de código aberto 
● Excelente exemplo de software libre colaborativo 
● Drupal.org : 27.447 módulos, 2.022 temas, 34.420 desenvolvedores 
● Incorpora función básicas(core) e engadidas(módulos contribuidos) 
● Drupal está deseñado para separar deseño e administración
https://www.drupal.org
CURSO DRUPAL 7 AVANZADO – ARQUITECTURA DRUPAL 
USOS DRUPAL 
● Portais públicos: OpenPublic 
● Xornais : OpenPublish 
● Intranets : OpenAtrium 
● Redes sociais: Drupal Commons 
● Sitios personais : Drupal.org + Temas contribuidos 
● Comercio electrónico : Drupal Commerce 
https://www.drupal.org/project/project_distribution
CURSO DRUPAL 7 AVANZADO – ARQUITECTURA DRUPAL 
SEGURIDADE EN DRUPAL 
● Drupal Security Team 
● Consello: Suscrición ás roldas de correo de seguridade 
● É máis seguro Drupal que outros proxectos? 
● O 90% das vulnerabilidades son responsabilidades dos creadores do sitio 
https://www.drupal.org/security-team 
https://www.drupal.org/security 
https://www.drupal.org/security/secure-configuration 
https://groups.drupal.org/security 
https://www.drupal.org/writing-secure-code
CURSO DRUPAL 7 AVANZADO – ARQUITECTURA DRUPAL 
PILA DE TECNOLOXÍA DRUPAL 
Linguaxe: : PHP 
Capa abstración de base de datos 
SBGD : MySQL, PostgreSQL, SQLite 
Servidor web : Apache, Nginx, IIS... 
Sistema operativo : GNU/Linux, OSX, Solaris, BSD, Windows
CURSO DRUPAL 7 AVANZADO – ARQUITECTURA DRUPAL 
PILA DE TECNOLOXÍA DRUPAL II 
● O sistema operativo é indiferente para Drupal 
● Veremos como Linux/Unix facilita moi o traballo como desenvolvedores 
● O servidor web máis empregado é Apache 
● Por iso se inclue .htaccess no paquete oficial Drupal. 
● API de base de datos orientada a obxectos 
● Escrito en PHP. Estándares estrictos: Coding Standards 
● Versión mínima PHP 5.2 
https://www.drupal.org/node/318 
https://github.com/perusio/drupal-with-nginx
CURSO DRUPAL 7 AVANZADO – ARQUITECTURA DRUPAL 
O NÚCLEO DE DRUPAL 
● Estructura lixeira dispoñible en Drupal.org 
● Establece as funcións básicas do sistema 
● Hooks para interactuar co core
CURSO DRUPAL 7 AVANZADO – ARQUITECTURA DRUPAL 
CAPA ADMINISTRATIVA DRUPAL 
● Integración co resto do sitio 
● A maioría de funcións son accesibles dende o menú administrativo 
● E preciso acceder, de inicio, como Administrador 
● 100% personalizable
CURSO DRUPAL 7 AVANZADO – ARQUITECTURA DRUPAL 
MODULOS EN DRUPAL 
● A arquitectura de Drupal é modular 
● Cada funcionalidade está incluida nun módulos 
● Para engadir funcións a un sitio web Drupal activamos ou desactivamos 
módulos 
● Os módulos poden engadir comportamentos(p.e: envio emails) 
● A estrutura que permite invocar estos comportamento son os hooks
CURSO DRUPAL 7 AVANZADO – ARQUITECTURA DRUPAL 
MODULOS EN DRUPAL II 
● Orixe : Drupal.org 
https://www.drupal.org/project/views
CURSO DRUPAL 7 AVANZADO – ARQUITECTURA DRUPAL 
HOOKS EN DRUPAL 
● Eventos internos de Drupal, tamén chamados “retrochamadas” 
● Permiten unirse ao resto do que sucede en Drupal 
● Exemplo: 
● Inicio de sesión en Drupal desencadenda hook_user_login 
● Neste momento invocaránse tódalas funcións que cumplan a 
convención : nome_modulo + nome_hook 
● locale_user_login() => configuración rexional 
● osl_user_login() => comportamento 'custom' para o módulo OSL 
https://api.drupal.org/api/drupal/includes!module.inc/group/hooks/7
CURSO DRUPAL 7 AVANZADO – ARQUITECTURA DRUPAL 
TEMAS EN DRUPAL 
● En Drupal a capa de temas é a encargada de crear HTML que recibirá o 
navegador. 
● O motor de plantillas empregado por Drupal 7 é PHPTemplate 
● En Drupal 8 o motor de plantilla é Twig 
● Plantillas : separan o contido e o marcado HTML 
● É moi sinxelo mudar o aspecto dun sitio Drupal 
● CSS : identificar as clases e sobreescribilas 
● https://www.drupal.org/project/css_injector 
● Opción axeitada: usar arquivos de plantillas
CURSO DRUPAL 7 AVANZADO – ARQUITECTURA DRUPAL 
NODOS EN DRUPAL 
● En Drupal os tipos de contido son se obteñen dun único tipo base: nodo 
● Páxinas, blogs ou recetas comparten estrutura base 
● Este enfoque ten unha ventaxa: entidades extensibles 
● Os programadores/as de módulos poden engadir novas funcionalidades 
sen depender do tipo de contido de nodo. 
● Tódolos nodos comparten un conxunto básico de propiedades : 
● nid: identificador único do nodo 
● uid: identificador único do usuario “creador” do nodo 
● created : data en formato unixtime de alta do nodo. 
● A interfaz administrativa dispón dunha pantalla de edición destas 
propiedades. 
https://www.drupal.org/documentation/modules/node
CURSO DRUPAL 7 AVANZADO – ARQUITECTURA DRUPAL 
CAMPOS EN DRUPAL 
● En Drupal o contido está formado por campos individuais 
● Un título dun nodo é un campo. 
● Podemos crear e usar tantos campos como se necesiten para personalizar 
un tipo de nodo 
● checkbox 
● date 
● text 
● textarea 
● referencias a outros tipos de contido ou clasificacións(Taxonomía) 
● Por suposto, temos á nosa disposición en Drupal.org moitos módulos que 
engaden novos tipos de campos 
● O API de Drupal permite extender os campos dun xeito sinxelo e sen 
apenas escribir código 
https://www.drupal.org/project/field_nif 
https://www.drupal.org/project/email
CURSO DRUPAL 7 AVANZADO – ARQUITECTURA DRUPAL 
BLOQUES EN DRUPAL 
● Un bloque é a información que pode habilitar ou deshabilitar en calquera 
ubicación dunha plantilla de un sitio web construido con Drupal. 
● Exemplo: Bloque que mostrar o número de usuarios activos 
● Os bloque son configurables, tanto na posición, contido, permisos... 
● A configuración e alta de novos bloques realízase dende a capa 
administrativa de Drupal 
● O API de Drupal permite extender e crear bloques dun xeito sinxelo e sen 
apenas escribir código 
https://www.drupal.org/documentation/modules/block
CURSO DRUPAL 7 AVANZADO – ARQUITECTURA DRUPAL 
SISTEMA DE ARQUIVOS EN DRUPAL 
● includes : Contén as bibliotecas de funcións comúns usadas en Drupal 
● misc: Almacena Javascript, iconas e imáxenes dunha instalación estándar de 
Drupal 
● modules: Contén os módulos básicos, cada un nun directorio propio. NON 
MODIFICAR NIN ALTERAR: NUNCA! 
● profiles: Contén os distintos perfiles de instalación dun sitio 
● scripts: Contén secuencias de comandos para comprobar a sintaxis, limpar 
código... 
● sites: Contén as nosas modificacións propias de Drupal: módulos, temas e 
librerías. 
● sites/default/files: Instalación base de Drupal predeterminada. 
● themes: Contén os motores de plantillas e os temas predeterminados de Drupal. 
Os temas adicionais descargarémolos en sites/all/themes 
● cron.php: Arquivo que se usa para executar tarefas periódicas como por exemplo 
rutinas de mantemento de bases de datos. 
● index.php: Punto principal de entrada de solicitudes. 
● install.php: Punto principal de entrada do instalador de Drupal 
● update.php: Actualiza os esquema de base de datos tras unha actualización. 
● robots.txt: implementación predeterminada do estándar de exclusión de robots. 
● xmlrpc.php: recibe solicitude XML-RPC. Non é necesario se non se habilita os 
servizo.
CURSO DRUPAL 7 AVANZADO – ARQUITECTURA DRUPAL
CONFIGURACIÓN ENTORNO 
● Comprobación do entorno 
● admin/reports/status 
● admin/reports/updates 
● admin/reports/dblog 
● settings.php 
● cron 
Tip: cron_control elysia_cron
DESACTIVAR MÓDULOS CORE NON NECESARIOS 
● overlay 
● dashboard 
● help 
● (...) 
● ¿update manager?
INSTALACIÓN MÓDULOS CONTRIBUIDOS 
● backup_migrate 
● devel 
● dif 
● drupalforfirebug 
● environment_indicator 
● module_filter 
● features 
● smtp
CONSIDERACIONS FINAIS 
● Backup 
● Automatizar tarefas 
● backup_migrate && drush 
● tar-mysqldump 
● Monitorización
1Exercicio 
cursos.cixug.es
¿DISTRIBUCIÓNS? 
● Unha distribución é unha copia completa de Drupal, includo o core, que 
inclue software adicional: 
● temas 
● tódulos 
● librarias 
● perfiles de instalación
TIPOS DE DISTRIBUCIÓNS 
● Solucións completas para escenarios específicos 
● Quick start tools para desenvolvedores
COMPOÑENTES DISTRIBUCIÓN 
● Drupal Core 
● Módulos core e contribuídos. Temas 
● Módulos personalizados, tema e features 
● Perfiles de instalación
ESCENARIOS DE USO DISTRIBUCIÓN 
● Avaliar Drupal 
● Demo Drupal 
● Aprender Drupal 
● Quick Building
¿PERFIL DE INSTALACION? 
● Un perfil de instalación define os pasos que se executan no proceso de 
instalación de Drupal 
● Podemos configurar de xeito sinxelo configuracións complexas(módulos, 
temas e arquivos de configuración) 
● Usaremos un perfil de instalación nunha instalación limpa de Drupal, non 
podemos usar un perfil de instalación nunha instalación existente.
PERFILES & DISTRIBUCIÓNS 
● Conxunto de módulos e/ou temas que se configuran de xeito 
predeterminado nunha instalación de Drupal. 
● Caso típico de perfil é a instalación de Drupal. Podemos elixir entre 
minimal ou standard 
● Axuda a axilizar o inicio de proxecto 
● A instalación base de Drupal carece de módulos imprescindibles para o 
desenvolvemento. 
● P.E: devel ou views
PERFILES & DISTRIBUCIÓNS II 
● Arquivos profile Drupal 
● .info : Información básica do perfil 
● .profile: Definiremos tarefas a executar no proceso de instalación 
● .install : Implementación do hook_install 
● /modules: Módulos a incluir no perfil 
● /themes: Temas a incluir no perfil 
● /translation: Arquivos .po de idiomas https://localize.drupal.org/ 
● /libraries: Librarías a incluir no perfil
PERFILES & DISTRIBUCIÓNS III 
Arquivo .info 
● Conten información básica que precisa o núcleo de Drupal para identificar 
e definir atributos clave : 
● Nome do perfil de instalación 
● Versión do núcleo de Drupal compatible co perfil 
● Lista de dependencias(módulos) necesarias 
● Arquivo .profile do perfile
PERFILES & DISTRIBUCIÓNS IV 
Exemplo arquivo .info 
name = Oficina Software Libre http://osl.cixug.es/ 
description = Perfil de instalacion 01 
version = VERSION 
core = 7.x 
; 
dependencies[] = block 
dependencies[] = color 
(..) 
;Modulos custom 
dependencies[] = views
PERFILES & DISTRIBUCIÓNS V 
Arquivo .profile 
● Executa hook_form_formname_alter 
● Podemos comenzar con este arquivo en blanco.
PERFILES & DISTRIBUCIÓNS VI 
Exemplo arquivo .profile 
<?php 
/** 
* @file 
* Enables modules and site configuration for a standard site installation. 
*/ 
/** 
* Implements hook_form_FORM_ID_alter() for install_configure_form(). 
* 
* Allows the profile to alter the site configuration form. 
*/ 
function osl1_form_install_configure_form_alter(&$form, $form_state) { 
// Pre-populate the site name with the server name. 
$form['site_information']['site_name']['#default_value'] = 'osl1.cixug.es'; 
}
PERFILES & DISTRIBUCIÓNS VII 
Arquivo .install 
● Define e establece características, funcións, variables e opcións de 
configuración. 
● .install determina: 
● Formatos de entrada que se van definir e habilitar. 
● Bloques que se van a habilitar e asignar ás rexións. 
● Tipos de contidos que se van a crear e habilitar. 
● Campos que se van a crear e habilitar. 
● Permisos que se asignan aos administradores do sitio. 
● Funcións que se crean. 
● Tema que se habilita como activo. 
Tip: Revisar o profile standar dunha instalación limpa de Drupal 7 é un bo comezo
PERFILES & DISTRIBUCIÓNS VIII 
Exemplo arquivo .install 
$enable = array( 
'theme_default' => 'bootstrap_business', 
'admin_theme' => 'seven', 
//'zen' 
); 
theme_enable($enable); 
foreach ($enable as $var => $theme) { 
if (!is_numeric($var)) { 
variable_set($var, $theme); 
}} 
// Disable the default Bartik theme 
theme_disable(array('bartik'));
2Exercicio 
cursos.cixug.es

Mais conteúdo relacionado

Semelhante a Curso CDA: Arquitectura Drupal

Desenvolvemento de FLOSS
Desenvolvemento de FLOSSDesenvolvemento de FLOSS
Desenvolvemento de FLOSSFran Diéguez
 
Elaboración e emprego de materias didácticos dixitais: Emprego de eXe-Learnin...
Elaboración e emprego de materias didácticos dixitais: Emprego de eXe-Learnin...Elaboración e emprego de materias didácticos dixitais: Emprego de eXe-Learnin...
Elaboración e emprego de materias didácticos dixitais: Emprego de eXe-Learnin...Juan Marcos Filgueira
 
Presentación que é Moodle
Presentación que é MoodlePresentación que é Moodle
Presentación que é MoodleFernando López
 
20110926 software libre_e_proxecto_abalar
20110926 software libre_e_proxecto_abalar20110926 software libre_e_proxecto_abalar
20110926 software libre_e_proxecto_abalarceipirmansvillar
 
Tutorial eXeLearning
Tutorial eXeLearningTutorial eXeLearning
Tutorial eXeLearningAna
 
mLearning: Ferramentas de avaliación e e-Portfolios (#PLE) (Galego)
mLearning: Ferramentas de avaliación e e-Portfolios (#PLE) (Galego)mLearning: Ferramentas de avaliación e e-Portfolios (#PLE) (Galego)
mLearning: Ferramentas de avaliación e e-Portfolios (#PLE) (Galego)Juan Marcos Filgueira
 
Conta de admin Drupal
Conta de admin DrupalConta de admin Drupal
Conta de admin DrupalIago Corral
 
Webs Dinámicas, web nos centros educativos baseadas en Software Libre
Webs Dinámicas, web nos centros educativos baseadas en Software LibreWebs Dinámicas, web nos centros educativos baseadas en Software Libre
Webs Dinámicas, web nos centros educativos baseadas en Software Libreousli07
 
Manual servidor centro
Manual servidor centroManual servidor centro
Manual servidor centrovigotic
 
Dev con Joomla componentes modulos plugins
Dev con Joomla componentes modulos pluginsDev con Joomla componentes modulos plugins
Dev con Joomla componentes modulos pluginsousli07
 

Semelhante a Curso CDA: Arquitectura Drupal (16)

Drupal
DrupalDrupal
Drupal
 
131119 almacenamento nube_owncloud
131119 almacenamento nube_owncloud131119 almacenamento nube_owncloud
131119 almacenamento nube_owncloud
 
Desenvolvemento de FLOSS
Desenvolvemento de FLOSSDesenvolvemento de FLOSS
Desenvolvemento de FLOSS
 
Elaboración e emprego de materias didácticos dixitais: Emprego de eXe-Learnin...
Elaboración e emprego de materias didácticos dixitais: Emprego de eXe-Learnin...Elaboración e emprego de materias didácticos dixitais: Emprego de eXe-Learnin...
Elaboración e emprego de materias didácticos dixitais: Emprego de eXe-Learnin...
 
Indispensables
IndispensablesIndispensables
Indispensables
 
Presentación que é Moodle
Presentación que é MoodlePresentación que é Moodle
Presentación que é Moodle
 
20110926 software libre_e_proxecto_abalar
20110926 software libre_e_proxecto_abalar20110926 software libre_e_proxecto_abalar
20110926 software libre_e_proxecto_abalar
 
Tutorial eXeLearning
Tutorial eXeLearningTutorial eXeLearning
Tutorial eXeLearning
 
mLearning: Ferramentas de avaliación e e-Portfolios (#PLE) (Galego)
mLearning: Ferramentas de avaliación e e-Portfolios (#PLE) (Galego)mLearning: Ferramentas de avaliación e e-Portfolios (#PLE) (Galego)
mLearning: Ferramentas de avaliación e e-Portfolios (#PLE) (Galego)
 
Websdinamicas
WebsdinamicasWebsdinamicas
Websdinamicas
 
Conta de admin Drupal
Conta de admin DrupalConta de admin Drupal
Conta de admin Drupal
 
Googledocs (parte II)
Googledocs (parte II)Googledocs (parte II)
Googledocs (parte II)
 
Googledocs
GoogledocsGoogledocs
Googledocs
 
Webs Dinámicas, web nos centros educativos baseadas en Software Libre
Webs Dinámicas, web nos centros educativos baseadas en Software LibreWebs Dinámicas, web nos centros educativos baseadas en Software Libre
Webs Dinámicas, web nos centros educativos baseadas en Software Libre
 
Manual servidor centro
Manual servidor centroManual servidor centro
Manual servidor centro
 
Dev con Joomla componentes modulos plugins
Dev con Joomla componentes modulos pluginsDev con Joomla componentes modulos plugins
Dev con Joomla componentes modulos plugins
 

Mais de Alberto Permuy Leal

Patrimonio (in)visibel - CIRS Cervás - Ares - Coruña
Patrimonio (in)visibel - CIRS Cervás - Ares - CoruñaPatrimonio (in)visibel - CIRS Cervás - Ares - Coruña
Patrimonio (in)visibel - CIRS Cervás - Ares - CoruñaAlberto Permuy Leal
 
PATRIMONIO CULTURA Y DRUPAL - DRUPAL DAY ZARAGOZA 2019
PATRIMONIO CULTURA Y DRUPAL - DRUPAL DAY ZARAGOZA 2019PATRIMONIO CULTURA Y DRUPAL - DRUPAL DAY ZARAGOZA 2019
PATRIMONIO CULTURA Y DRUPAL - DRUPAL DAY ZARAGOZA 2019Alberto Permuy Leal
 
Presentación proxecto obaixoulla.gal | patromino + territorio + paisaxes
Presentación proxecto obaixoulla.gal | patromino + territorio + paisaxesPresentación proxecto obaixoulla.gal | patromino + territorio + paisaxes
Presentación proxecto obaixoulla.gal | patromino + territorio + paisaxesAlberto Permuy Leal
 
Cultural Heritage and Drupal - Drupal Day Aveiro 2017
Cultural Heritage and Drupal - Drupal Day Aveiro 2017Cultural Heritage and Drupal - Drupal Day Aveiro 2017
Cultural Heritage and Drupal - Drupal Day Aveiro 2017Alberto Permuy Leal
 
Drupal8 : novedades y nuevas funcionalidades
Drupal8 : novedades y nuevas funcionalidadesDrupal8 : novedades y nuevas funcionalidades
Drupal8 : novedades y nuevas funcionalidadesAlberto Permuy Leal
 
A Cultura da Auga no proxecto Abeancos.gal
A Cultura da Auga no proxecto Abeancos.galA Cultura da Auga no proxecto Abeancos.gal
A Cultura da Auga no proxecto Abeancos.galAlberto Permuy Leal
 
Curso CDA: Seguridade e rendemento en Drupal
Curso CDA: Seguridade e rendemento en DrupalCurso CDA: Seguridade e rendemento en Drupal
Curso CDA: Seguridade e rendemento en DrupalAlberto Permuy Leal
 
Xestión básica usuarios e módulo Drupal6
Xestión básica usuarios e módulo Drupal6Xestión básica usuarios e módulo Drupal6
Xestión básica usuarios e módulo Drupal6Alberto Permuy Leal
 
Introdución ao software libre - O Grove 2011
Introdución ao software libre - O Grove 2011Introdución ao software libre - O Grove 2011
Introdución ao software libre - O Grove 2011Alberto Permuy Leal
 
Presentacion I Noite Drupal GNU Linux
Presentacion I Noite Drupal GNU LinuxPresentacion I Noite Drupal GNU Linux
Presentacion I Noite Drupal GNU LinuxAlberto Permuy Leal
 
Servidores Linux Compostela 2010
Servidores Linux Compostela 2010Servidores Linux Compostela 2010
Servidores Linux Compostela 2010Alberto Permuy Leal
 
Construccion sitios web Drupal - Parte 12
Construccion sitios web Drupal - Parte 12Construccion sitios web Drupal - Parte 12
Construccion sitios web Drupal - Parte 12Alberto Permuy Leal
 
Construccion sitios web Drupal - Parte 1
Construccion sitios web Drupal - Parte 1 Construccion sitios web Drupal - Parte 1
Construccion sitios web Drupal - Parte 1 Alberto Permuy Leal
 

Mais de Alberto Permuy Leal (20)

Patrimonio (in)visibel - CIRS Cervás - Ares - Coruña
Patrimonio (in)visibel - CIRS Cervás - Ares - CoruñaPatrimonio (in)visibel - CIRS Cervás - Ares - Coruña
Patrimonio (in)visibel - CIRS Cervás - Ares - Coruña
 
Rest en tiempos de Drupal
Rest en tiempos de DrupalRest en tiempos de Drupal
Rest en tiempos de Drupal
 
PATRIMONIO CULTURA Y DRUPAL - DRUPAL DAY ZARAGOZA 2019
PATRIMONIO CULTURA Y DRUPAL - DRUPAL DAY ZARAGOZA 2019PATRIMONIO CULTURA Y DRUPAL - DRUPAL DAY ZARAGOZA 2019
PATRIMONIO CULTURA Y DRUPAL - DRUPAL DAY ZARAGOZA 2019
 
Presentación proxecto obaixoulla.gal | patromino + territorio + paisaxes
Presentación proxecto obaixoulla.gal | patromino + territorio + paisaxesPresentación proxecto obaixoulla.gal | patromino + territorio + paisaxes
Presentación proxecto obaixoulla.gal | patromino + territorio + paisaxes
 
Introducción a redes TOR
Introducción a redes TORIntroducción a redes TOR
Introducción a redes TOR
 
Cultural Heritage and Drupal - Drupal Day Aveiro 2017
Cultural Heritage and Drupal - Drupal Day Aveiro 2017Cultural Heritage and Drupal - Drupal Day Aveiro 2017
Cultural Heritage and Drupal - Drupal Day Aveiro 2017
 
Drupal8 : novedades y nuevas funcionalidades
Drupal8 : novedades y nuevas funcionalidadesDrupal8 : novedades y nuevas funcionalidades
Drupal8 : novedades y nuevas funcionalidades
 
A Cultura da Auga no proxecto Abeancos.gal
A Cultura da Auga no proxecto Abeancos.galA Cultura da Auga no proxecto Abeancos.gal
A Cultura da Auga no proxecto Abeancos.gal
 
A CULTURA DA AUGA
A CULTURA DA AUGAA CULTURA DA AUGA
A CULTURA DA AUGA
 
Curso CDA: Seguridade e rendemento en Drupal
Curso CDA: Seguridade e rendemento en DrupalCurso CDA: Seguridade e rendemento en Drupal
Curso CDA: Seguridade e rendemento en Drupal
 
Curso CDA: Drush CLI Drupal
Curso CDA: Drush CLI DrupalCurso CDA: Drush CLI Drupal
Curso CDA: Drush CLI Drupal
 
Mellorando o sitio web
Mellorando o sitio webMellorando o sitio web
Mellorando o sitio web
 
Xestión básica usuarios e módulo Drupal6
Xestión básica usuarios e módulo Drupal6Xestión básica usuarios e módulo Drupal6
Xestión básica usuarios e módulo Drupal6
 
Nodos e taxonomia en Drupal
Nodos e taxonomia en DrupalNodos e taxonomia en Drupal
Nodos e taxonomia en Drupal
 
Introdución ao software libre - O Grove 2011
Introdución ao software libre - O Grove 2011Introdución ao software libre - O Grove 2011
Introdución ao software libre - O Grove 2011
 
Obradoiro Drupal
Obradoiro DrupalObradoiro Drupal
Obradoiro Drupal
 
Presentacion I Noite Drupal GNU Linux
Presentacion I Noite Drupal GNU LinuxPresentacion I Noite Drupal GNU Linux
Presentacion I Noite Drupal GNU Linux
 
Servidores Linux Compostela 2010
Servidores Linux Compostela 2010Servidores Linux Compostela 2010
Servidores Linux Compostela 2010
 
Construccion sitios web Drupal - Parte 12
Construccion sitios web Drupal - Parte 12Construccion sitios web Drupal - Parte 12
Construccion sitios web Drupal - Parte 12
 
Construccion sitios web Drupal - Parte 1
Construccion sitios web Drupal - Parte 1 Construccion sitios web Drupal - Parte 1
Construccion sitios web Drupal - Parte 1
 

Curso CDA: Arquitectura Drupal

  • 1. CURSO DE ADMINISTRACIÓN AVANZADA E DESENVOLVEMENTO DE DRUPAL TEMA 1: Arquitectura Drupal 8 - 12 setembro 2014 – Santiago de Compostela
  • 2. Usted es libre de: Copiar, distribuir y comunicar públicamente la obra Hacer obras derivadas Bajo las condiciones siguientes: Reconocimiento - Debe reconocer los créditos de la obra de la manera especificada por el autor o licenciador (pero no de una manera que sugiera que tiene su apoyo o apoyan el uso que hace de su obra). Compartir bajo la misma licencia - Si altera o transforma esta obra, o genera una obra derivada, sólo puede distribuir la obra generada bajo una licencia idéntica a ésta. © 2014 - CIXUG Esta obra fue creada por Alberto Permuy Leal, y está disponible bajo una licencia Reconocimiento-CompartirIgual 3.0 http://creativecommons.org/licenses/by-sa/3.0/deed.es_ES
  • 3.
  • 4. Mixed emotions ● introdución, instalación e profiles ● drush, alias ● rendemento e seguridade ● api ● proxecto
  • 5.
  • 6. CURSO DRUPAL 7 AVANZADO DRUPAL ● Que é Drupal ● Pila de tecnoloxía ● O núcleo ● Interface administrativa ● Módulos, bloques, temas e nodos ● hooks ● Estrutura de arquivos ● Instalación ● Drupal profiles
  • 7. CURSO DRUPAL 7 AVANZADO – ARQUITECTURA DRUPAL QUE É DRUPAL ● Drupal emprégase para crear sitios web ● Software modular e de código aberto ● Excelente exemplo de software libre colaborativo ● Drupal.org : 27.447 módulos, 2.022 temas, 34.420 desenvolvedores ● Incorpora función básicas(core) e engadidas(módulos contribuidos) ● Drupal está deseñado para separar deseño e administración
  • 9. CURSO DRUPAL 7 AVANZADO – ARQUITECTURA DRUPAL USOS DRUPAL ● Portais públicos: OpenPublic ● Xornais : OpenPublish ● Intranets : OpenAtrium ● Redes sociais: Drupal Commons ● Sitios personais : Drupal.org + Temas contribuidos ● Comercio electrónico : Drupal Commerce https://www.drupal.org/project/project_distribution
  • 10. CURSO DRUPAL 7 AVANZADO – ARQUITECTURA DRUPAL SEGURIDADE EN DRUPAL ● Drupal Security Team ● Consello: Suscrición ás roldas de correo de seguridade ● É máis seguro Drupal que outros proxectos? ● O 90% das vulnerabilidades son responsabilidades dos creadores do sitio https://www.drupal.org/security-team https://www.drupal.org/security https://www.drupal.org/security/secure-configuration https://groups.drupal.org/security https://www.drupal.org/writing-secure-code
  • 11. CURSO DRUPAL 7 AVANZADO – ARQUITECTURA DRUPAL PILA DE TECNOLOXÍA DRUPAL Linguaxe: : PHP Capa abstración de base de datos SBGD : MySQL, PostgreSQL, SQLite Servidor web : Apache, Nginx, IIS... Sistema operativo : GNU/Linux, OSX, Solaris, BSD, Windows
  • 12. CURSO DRUPAL 7 AVANZADO – ARQUITECTURA DRUPAL PILA DE TECNOLOXÍA DRUPAL II ● O sistema operativo é indiferente para Drupal ● Veremos como Linux/Unix facilita moi o traballo como desenvolvedores ● O servidor web máis empregado é Apache ● Por iso se inclue .htaccess no paquete oficial Drupal. ● API de base de datos orientada a obxectos ● Escrito en PHP. Estándares estrictos: Coding Standards ● Versión mínima PHP 5.2 https://www.drupal.org/node/318 https://github.com/perusio/drupal-with-nginx
  • 13. CURSO DRUPAL 7 AVANZADO – ARQUITECTURA DRUPAL O NÚCLEO DE DRUPAL ● Estructura lixeira dispoñible en Drupal.org ● Establece as funcións básicas do sistema ● Hooks para interactuar co core
  • 14. CURSO DRUPAL 7 AVANZADO – ARQUITECTURA DRUPAL CAPA ADMINISTRATIVA DRUPAL ● Integración co resto do sitio ● A maioría de funcións son accesibles dende o menú administrativo ● E preciso acceder, de inicio, como Administrador ● 100% personalizable
  • 15. CURSO DRUPAL 7 AVANZADO – ARQUITECTURA DRUPAL MODULOS EN DRUPAL ● A arquitectura de Drupal é modular ● Cada funcionalidade está incluida nun módulos ● Para engadir funcións a un sitio web Drupal activamos ou desactivamos módulos ● Os módulos poden engadir comportamentos(p.e: envio emails) ● A estrutura que permite invocar estos comportamento son os hooks
  • 16. CURSO DRUPAL 7 AVANZADO – ARQUITECTURA DRUPAL MODULOS EN DRUPAL II ● Orixe : Drupal.org https://www.drupal.org/project/views
  • 17. CURSO DRUPAL 7 AVANZADO – ARQUITECTURA DRUPAL HOOKS EN DRUPAL ● Eventos internos de Drupal, tamén chamados “retrochamadas” ● Permiten unirse ao resto do que sucede en Drupal ● Exemplo: ● Inicio de sesión en Drupal desencadenda hook_user_login ● Neste momento invocaránse tódalas funcións que cumplan a convención : nome_modulo + nome_hook ● locale_user_login() => configuración rexional ● osl_user_login() => comportamento 'custom' para o módulo OSL https://api.drupal.org/api/drupal/includes!module.inc/group/hooks/7
  • 18. CURSO DRUPAL 7 AVANZADO – ARQUITECTURA DRUPAL TEMAS EN DRUPAL ● En Drupal a capa de temas é a encargada de crear HTML que recibirá o navegador. ● O motor de plantillas empregado por Drupal 7 é PHPTemplate ● En Drupal 8 o motor de plantilla é Twig ● Plantillas : separan o contido e o marcado HTML ● É moi sinxelo mudar o aspecto dun sitio Drupal ● CSS : identificar as clases e sobreescribilas ● https://www.drupal.org/project/css_injector ● Opción axeitada: usar arquivos de plantillas
  • 19. CURSO DRUPAL 7 AVANZADO – ARQUITECTURA DRUPAL NODOS EN DRUPAL ● En Drupal os tipos de contido son se obteñen dun único tipo base: nodo ● Páxinas, blogs ou recetas comparten estrutura base ● Este enfoque ten unha ventaxa: entidades extensibles ● Os programadores/as de módulos poden engadir novas funcionalidades sen depender do tipo de contido de nodo. ● Tódolos nodos comparten un conxunto básico de propiedades : ● nid: identificador único do nodo ● uid: identificador único do usuario “creador” do nodo ● created : data en formato unixtime de alta do nodo. ● A interfaz administrativa dispón dunha pantalla de edición destas propiedades. https://www.drupal.org/documentation/modules/node
  • 20. CURSO DRUPAL 7 AVANZADO – ARQUITECTURA DRUPAL CAMPOS EN DRUPAL ● En Drupal o contido está formado por campos individuais ● Un título dun nodo é un campo. ● Podemos crear e usar tantos campos como se necesiten para personalizar un tipo de nodo ● checkbox ● date ● text ● textarea ● referencias a outros tipos de contido ou clasificacións(Taxonomía) ● Por suposto, temos á nosa disposición en Drupal.org moitos módulos que engaden novos tipos de campos ● O API de Drupal permite extender os campos dun xeito sinxelo e sen apenas escribir código https://www.drupal.org/project/field_nif https://www.drupal.org/project/email
  • 21. CURSO DRUPAL 7 AVANZADO – ARQUITECTURA DRUPAL BLOQUES EN DRUPAL ● Un bloque é a información que pode habilitar ou deshabilitar en calquera ubicación dunha plantilla de un sitio web construido con Drupal. ● Exemplo: Bloque que mostrar o número de usuarios activos ● Os bloque son configurables, tanto na posición, contido, permisos... ● A configuración e alta de novos bloques realízase dende a capa administrativa de Drupal ● O API de Drupal permite extender e crear bloques dun xeito sinxelo e sen apenas escribir código https://www.drupal.org/documentation/modules/block
  • 22. CURSO DRUPAL 7 AVANZADO – ARQUITECTURA DRUPAL SISTEMA DE ARQUIVOS EN DRUPAL ● includes : Contén as bibliotecas de funcións comúns usadas en Drupal ● misc: Almacena Javascript, iconas e imáxenes dunha instalación estándar de Drupal ● modules: Contén os módulos básicos, cada un nun directorio propio. NON MODIFICAR NIN ALTERAR: NUNCA! ● profiles: Contén os distintos perfiles de instalación dun sitio ● scripts: Contén secuencias de comandos para comprobar a sintaxis, limpar código... ● sites: Contén as nosas modificacións propias de Drupal: módulos, temas e librerías. ● sites/default/files: Instalación base de Drupal predeterminada. ● themes: Contén os motores de plantillas e os temas predeterminados de Drupal. Os temas adicionais descargarémolos en sites/all/themes ● cron.php: Arquivo que se usa para executar tarefas periódicas como por exemplo rutinas de mantemento de bases de datos. ● index.php: Punto principal de entrada de solicitudes. ● install.php: Punto principal de entrada do instalador de Drupal ● update.php: Actualiza os esquema de base de datos tras unha actualización. ● robots.txt: implementación predeterminada do estándar de exclusión de robots. ● xmlrpc.php: recibe solicitude XML-RPC. Non é necesario se non se habilita os servizo.
  • 23. CURSO DRUPAL 7 AVANZADO – ARQUITECTURA DRUPAL
  • 24.
  • 25. CONFIGURACIÓN ENTORNO ● Comprobación do entorno ● admin/reports/status ● admin/reports/updates ● admin/reports/dblog ● settings.php ● cron Tip: cron_control elysia_cron
  • 26. DESACTIVAR MÓDULOS CORE NON NECESARIOS ● overlay ● dashboard ● help ● (...) ● ¿update manager?
  • 27. INSTALACIÓN MÓDULOS CONTRIBUIDOS ● backup_migrate ● devel ● dif ● drupalforfirebug ● environment_indicator ● module_filter ● features ● smtp
  • 28. CONSIDERACIONS FINAIS ● Backup ● Automatizar tarefas ● backup_migrate && drush ● tar-mysqldump ● Monitorización
  • 30. ¿DISTRIBUCIÓNS? ● Unha distribución é unha copia completa de Drupal, includo o core, que inclue software adicional: ● temas ● tódulos ● librarias ● perfiles de instalación
  • 31. TIPOS DE DISTRIBUCIÓNS ● Solucións completas para escenarios específicos ● Quick start tools para desenvolvedores
  • 32. COMPOÑENTES DISTRIBUCIÓN ● Drupal Core ● Módulos core e contribuídos. Temas ● Módulos personalizados, tema e features ● Perfiles de instalación
  • 33. ESCENARIOS DE USO DISTRIBUCIÓN ● Avaliar Drupal ● Demo Drupal ● Aprender Drupal ● Quick Building
  • 34. ¿PERFIL DE INSTALACION? ● Un perfil de instalación define os pasos que se executan no proceso de instalación de Drupal ● Podemos configurar de xeito sinxelo configuracións complexas(módulos, temas e arquivos de configuración) ● Usaremos un perfil de instalación nunha instalación limpa de Drupal, non podemos usar un perfil de instalación nunha instalación existente.
  • 35. PERFILES & DISTRIBUCIÓNS ● Conxunto de módulos e/ou temas que se configuran de xeito predeterminado nunha instalación de Drupal. ● Caso típico de perfil é a instalación de Drupal. Podemos elixir entre minimal ou standard ● Axuda a axilizar o inicio de proxecto ● A instalación base de Drupal carece de módulos imprescindibles para o desenvolvemento. ● P.E: devel ou views
  • 36. PERFILES & DISTRIBUCIÓNS II ● Arquivos profile Drupal ● .info : Información básica do perfil ● .profile: Definiremos tarefas a executar no proceso de instalación ● .install : Implementación do hook_install ● /modules: Módulos a incluir no perfil ● /themes: Temas a incluir no perfil ● /translation: Arquivos .po de idiomas https://localize.drupal.org/ ● /libraries: Librarías a incluir no perfil
  • 37. PERFILES & DISTRIBUCIÓNS III Arquivo .info ● Conten información básica que precisa o núcleo de Drupal para identificar e definir atributos clave : ● Nome do perfil de instalación ● Versión do núcleo de Drupal compatible co perfil ● Lista de dependencias(módulos) necesarias ● Arquivo .profile do perfile
  • 38. PERFILES & DISTRIBUCIÓNS IV Exemplo arquivo .info name = Oficina Software Libre http://osl.cixug.es/ description = Perfil de instalacion 01 version = VERSION core = 7.x ; dependencies[] = block dependencies[] = color (..) ;Modulos custom dependencies[] = views
  • 39. PERFILES & DISTRIBUCIÓNS V Arquivo .profile ● Executa hook_form_formname_alter ● Podemos comenzar con este arquivo en blanco.
  • 40. PERFILES & DISTRIBUCIÓNS VI Exemplo arquivo .profile <?php /** * @file * Enables modules and site configuration for a standard site installation. */ /** * Implements hook_form_FORM_ID_alter() for install_configure_form(). * * Allows the profile to alter the site configuration form. */ function osl1_form_install_configure_form_alter(&$form, $form_state) { // Pre-populate the site name with the server name. $form['site_information']['site_name']['#default_value'] = 'osl1.cixug.es'; }
  • 41. PERFILES & DISTRIBUCIÓNS VII Arquivo .install ● Define e establece características, funcións, variables e opcións de configuración. ● .install determina: ● Formatos de entrada que se van definir e habilitar. ● Bloques que se van a habilitar e asignar ás rexións. ● Tipos de contidos que se van a crear e habilitar. ● Campos que se van a crear e habilitar. ● Permisos que se asignan aos administradores do sitio. ● Funcións que se crean. ● Tema que se habilita como activo. Tip: Revisar o profile standar dunha instalación limpa de Drupal 7 é un bo comezo
  • 42. PERFILES & DISTRIBUCIÓNS VIII Exemplo arquivo .install $enable = array( 'theme_default' => 'bootstrap_business', 'admin_theme' => 'seven', //'zen' ); theme_enable($enable); foreach ($enable as $var => $theme) { if (!is_numeric($var)) { variable_set($var, $theme); }} // Disable the default Bartik theme theme_disable(array('bartik'));
  • 43.