O slideshow foi denunciado.
Seu SlideShare está sendo baixado. ×

Curso CDA: Arquitectura Drupal

Anúncio
Anúncio
Anúncio
Anúncio
Anúncio
Anúncio
Anúncio
Anúncio
Anúncio
Anúncio
Anúncio
Anúncio
Próximos SlideShares
Curso CDA: Drupal API
Curso CDA: Drupal API
Carregando em…3
×

Confira estes a seguir

1 de 44 Anúncio

Mais Conteúdo rRelacionado

Semelhante a Curso CDA: Arquitectura Drupal (16)

Mais de Alberto Permuy Leal (20)

Anúncio

Mais recentes (20)

Curso CDA: Arquitectura Drupal

  1. 1. CURSO DE ADMINISTRACIÓN AVANZADA E DESENVOLVEMENTO DE DRUPAL TEMA 1: Arquitectura Drupal 8 - 12 setembro 2014 – Santiago de Compostela
  2. 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. 3. Mixed emotions ● introdución, instalación e profiles ● drush, alias ● rendemento e seguridade ● api ● proxecto
  4. 4. 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
  5. 5. 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
  6. 6. https://www.drupal.org
  7. 7. 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
  8. 8. 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
  9. 9. 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
  10. 10. 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
  11. 11. 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
  12. 12. 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
  13. 13. 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
  14. 14. CURSO DRUPAL 7 AVANZADO – ARQUITECTURA DRUPAL MODULOS EN DRUPAL II ● Orixe : Drupal.org https://www.drupal.org/project/views
  15. 15. 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
  16. 16. 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
  17. 17. 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
  18. 18. 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
  19. 19. 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
  20. 20. 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.
  21. 21. CURSO DRUPAL 7 AVANZADO – ARQUITECTURA DRUPAL
  22. 22. CONFIGURACIÓN ENTORNO ● Comprobación do entorno ● admin/reports/status ● admin/reports/updates ● admin/reports/dblog ● settings.php ● cron Tip: cron_control elysia_cron
  23. 23. DESACTIVAR MÓDULOS CORE NON NECESARIOS ● overlay ● dashboard ● help ● (...) ● ¿update manager?
  24. 24. INSTALACIÓN MÓDULOS CONTRIBUIDOS ● backup_migrate ● devel ● dif ● drupalforfirebug ● environment_indicator ● module_filter ● features ● smtp
  25. 25. CONSIDERACIONS FINAIS ● Backup ● Automatizar tarefas ● backup_migrate && drush ● tar-mysqldump ● Monitorización
  26. 26. 1Exercicio cursos.cixug.es
  27. 27. ¿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
  28. 28. TIPOS DE DISTRIBUCIÓNS ● Solucións completas para escenarios específicos ● Quick start tools para desenvolvedores
  29. 29. COMPOÑENTES DISTRIBUCIÓN ● Drupal Core ● Módulos core e contribuídos. Temas ● Módulos personalizados, tema e features ● Perfiles de instalación
  30. 30. ESCENARIOS DE USO DISTRIBUCIÓN ● Avaliar Drupal ● Demo Drupal ● Aprender Drupal ● Quick Building
  31. 31. ¿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.
  32. 32. 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
  33. 33. 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
  34. 34. 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
  35. 35. 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
  36. 36. PERFILES & DISTRIBUCIÓNS V Arquivo .profile ● Executa hook_form_formname_alter ● Podemos comenzar con este arquivo en blanco.
  37. 37. 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'; }
  38. 38. 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
  39. 39. 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'));
  40. 40. 2Exercicio cursos.cixug.es

×