ݺߣ

ݺߣShare a Scribd company logo
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
Curso CDA: Arquitectura Drupal
Mixed emotions 
● introdución, instalación e profiles 
● drush, alias 
● rendemento e seguridade 
● api 
● proxecto
Curso CDA: Arquitectura Drupal
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
Curso CDA: 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'));
Curso CDA: Arquitectura Drupal
2Exercicio 
cursos.cixug.es

More Related Content

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
  • 4. Mixed emotions ● introdución, instalación e profiles ● drush, alias ● rendemento e seguridade ● api ● proxecto
  • 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
  • 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'));