Workshop Agap2: Introdução ao Drupal

download Workshop Agap2: Introdução ao Drupal

If you can't read please download the document

description

Nesta apresentação faz-se uma abordagem do Drupal, uma Content Management Framework (CMF) escrita em PHP, muito usada atualmente para construir websites e muito mais. O Drupal é software livre e gratuito, com licença GPLv2. http://drupal.org/ Visita a comunidade Portuguesa do Drupal! http://drupal-pt.org Esta apresentação foi produzida com o apoio da Agap2. http://www.agap2.pt Todos os nomes de marca e logótipos pertencem aos respectivos donos.

Transcript of Workshop Agap2: Introdução ao Drupal

  • 1. Introduo ao Drupal

2. Workshop Introduo ao DrupalIntroduo 3. Introduo: O que o Drupal? O Drupal uma Content Management Framework (CMF): um sistema que permite a reutilizao de componentes para gerir contedo web construir sites (e muito mais). Como tal, partilha conceitos de: Web Application Framework (WAF)Content Management System (CMS) Free and Open Source Software (FOSS), com licena GPLv2, cross-platform e foi escrito com a linguagem de programao PHP. 4. Introduo: Porqu o Drupal? Para os developers: 2-em-1: Procedural & Object oriented programmingPresentation-Abstraction-Control (PAC) como padroAPI excelente, extensvel com sistema de HooksContent e Data Modeling, via API e UI flexvelCoding standards rgidas, com auditorias frequentesSeparao de cdigo, configurao e dadosEco-sistema com paradigma de dependncias 5. Introduo: Porqu o Drupal? (cont.) 6. & s! le FiSe pa ra odeIntroduo: Porqu o Drupal? (cont.) 7. Introduo: Porqu o Drupal? (cont.) Para os site builders e themers: Interface muito funcional e intuitivaSem requisitos de programao especiaisMdulos para todo o tipo de funcionalidadesRe-utilizao de cdigo e interligao de mdulosTemas configurveis e com suporte para tecnologias Web 2.0+, ie, HTML5, SASS/SCSS, Grids, etcDistribuies pr-preparadas para variados fins 8. Introduo: Porqu o Drupal? (cont.) Para as empresas e clientes: Parcerias com a Associao Drupal, Acquia e outrosTodo o tipo de solues universais e medidaSem custos de licenasRede global de developers 9. Introduo: Porqu o Drupal? (cont.) Para todos: Comunidade global muito grandeEventos internacionais (DrupalCons e DrupalCamps)Suporte e formaes disponveis em todo o mundo 10. Introduo: Porqu o Drupal? (cont.) Eventos anteriores: 11. Introduo: Porqu o Drupal? (cont.) Prximos eventos (2014): 12. Introduo: Histria do Drupal Desenvolvido por Dries Buytaert, o Drupal teve as suas origens em 2000. Verses mais recentes do Core do Drupal sofreram rewrites significativos: 4.7.0 (2006) Rewrote Forms, added Tagging & PHPTemplate5.0 (2007) Rewrote Admin, added Installer, Status & jQuery6.0 (2008) Rewrote Menu API & UI, added Schema API7.0 (2011) Rewrote Core with PDO & Entities, Improved Scalability and UX, added SimpleText and Fields8.0 (TBD) Rewrite with Symphony, adding Twig, YAML, PHPUnit, Web Services, HTML5, Views and more... 13. Introduo: A comunidade A comunidade do Drupal hoje em dia global, com participantes de todo o mundo, de todos os estratos sociais e dos mais variados ramos e especializaes: Grupos regionais, tais como o Drupal Portugal, Drupal Galiza e Drupal SpainGrupos para organizao de eventos, tais como o DrupalCamp Portugal e DrupalCamp SpainSites de comunidades, ex, Drupal PortugalTwitter, IRC, Facebook, Google+ e outros 14. Introduo: Eco-sistema O Drupal tem crescido muito, e em todo o mundo Segundo estatsticas, hoje em dia conta com: 24000+ Mdulos1800+ Temas700+ Distribuies29000+ DevelopersO mercado de trabalho do Drupal tem crescido sistematicamente e cada vez h mais procura.[1][2]. 15. Workshop Introduo ao DrupalIn depth 16. In depth: Funcionalidades O cu o limite da imaginao. A que ponto podemos construir solues com componentes j existentes? Data modeling com a criao livre de camposCriao livre de listas de contedosVisual modeling com a criao de layoutsCriao de regras com gatilhos, condies e aesMulti-lngua e internacionalizaoWeb services e acessibilidade 17. In depth: Funcionalidades (cont.) E outras... E-Commerce, com multi-moedaNewsletter e diversosIntegrao com / solues de raiz de CRM, ERP, Intranet, etcData sources externos, feeds e migrao de dadosExportao e gesto de configuraesPossibilidade de criar distros de Drupal e muito mais! 18. In depth: Conceitos e terminologia O Drupal tem alguns termos fora do vulgar[1][2][3]:Entity types: abstrao de funcionalidade que serve para agrupar objetos semelhantes ou relacionados. Ex: node, user e taxonmyBundles: agrupamento de fields e configuraes pertencentes a um entity type. Ex: node types e vocabulariesNota: Existem alguns entity types sem bundles. Ex: user 19. In depth: Conceitos e terminologia (cont.) Fields: um pedao de contedo re-utilizvel ou data type, que so adicionados a bundles ou entity types. Ex: body e field_imageEntity: uma instncia de qualquer entity type ou bundle, ou seja, o contedo em si. Ex: contedo hello world, utilizador adminAssim sendo, qualquer campo pode ser acoplado a qualquer objecto, e estes podem ter relaes. 20. In depth: O que mudou com o Drupal 7 O Drupal no foi sempre to genrico e flexvel como hoje em dia. Com a release 7.0, 50+ mdulos contrib juntaram-se ao core [1][2], tornando-o em algo indito: Entity API: permitiu-nos criar uma abstrao de estruturas de dadosField API: trouxe o potencial do CCK, Content Construction Kit do contribPDO: resultou na portabilidade de BDsCache e APIs melhoradas 21. In depth: O que mudou com o Drupal 7 (cont.) 22. In depth: As novidades do Drupal 8 O Drupal 8.0 ir trazer um grande refresh do cdigo, com melhoramentos significativos de cdigo e da UX: Modern OOP: aplicado em quase todo o frameworkSymphony framework: substitui alguns mecanismos do coreTwig template engine: substitui o PHPTemplate para simplificar os themesYAML component: a configurao exportvel no novo formato, o YAML 23. In depth: As novidades do Drupal 8 (cont.) PHPUnit: framework de testes includa, juntamente com o SimpleTestUnified Entity & Field API: agora tudo usa a mesma API, incluindo o sistema de menusTranslation API: redesenhada para aproveitar novas ideias e tecnologiasForm API: os formulrios foram melhorados e agora todos so editveis no core, incluindo o do registo de utilizadores e edies 24. In depth: As novidades do Drupal 8 (cont.) Views: o mdulo famoso do contrib juntou-se agora ao Fields API, para mxima flexibilidadeWeb Services: includos no core, a pensar na interoperabilidadeAccessibility, Mobile e Web 2.0: tecnologias como o HTML5, Responsive design e Mobile first fazem agora parte do coreUX: toda a interface foi redesenhada para melhorar a experincia do utilizador 25. In depth: Requisitos O Drupal tem necessidades muito prprias. Como tal, no pode ser corrido em qualquer hardware, software ou configurao. Podem ser consultadas no site oficial. Requisitos mnimos: Servidor web: Apache, nginx ou IISServidor de bases de dados: MySQL, MariaDB, Percona ou equivalentes, PostgreSQL ou SQLiteInterpretador PHP 26. Introduo ao DrupalHands on 27. Hands on: Os primeiros passos Como comear com o Drupal? preciso fazer a instalao primeiro. Para simplificar, num desktop, podemos utilizar um stack *AMP pr-configurado, que inclui todo o software necessrio. O workflow simples: 1.1) Instalar um stack *AMP 1.2) Instalar o Drupal 1.3) Configurar 1.4) Construir 1.5) Desenvolver! 28. Hands on: O stack WAMP da Acquia O Acquia Dev Desktop o stack *AMP oficial do Drupal. a maneira mais fcil de instalar o Drupal num desktop. Caractersticas: Inclui os mnimos: servidor web, servidor de bases de dados, interpretador PHP e o DrupalInclui extras: phpMyAdmin e XMail ServerDisponvel para Windows e Mac OS XFreeware e fcil de instalar 29. Hands on: Instalao Como instalar? Segue as indicaes: 1) Descarrega o Acquia Dev Desktop 7.x com Drupal 7 2) Executa o instalador e confirma a licena 3) Define o software a instalar e o local de instalao 4) Define as portas de acesso do stack 5) Introduz alguma informao 6) Carrega em launch! 30. Hands on: Overview O menu no topo permite-nos chegar a qualquer seco administrativa do Drupal: Content e People: administrar contedos e utilizadoresStructure: construir o site, ie, site buildingAppearance e Modules: escolher mdulos e temasConfiguration: configurar parmetros do sistemaReports: relatrios do sistema, ex, errosHelp: manual dos mdulos do core e contrib 31. Hands on: Configurao bsica /admin/configA pgina de administrao contem uma seco para configurao de parmetros do sistema: System: nome do site e endereo de emailMedia: definio dos caminhos do sistema de ficheirosDevelopment: configurar as caches do coreRegional and language: lnguas e formatosPara alm destas, existem muitas outras configuraes e normalmente este o local onde mdulos contrib colocam as suas pginas de configurao. 32. Hands on: Up next... 33. Hands on: Nodes, os objetos contedo /admin/structure/typesA pgina de administrao de tipos de contedo o local onde podemos criar configuraes de contedo: Node type ou Content type: armazena configurao relativa a nodes, aos quais tambm so agregados date types, em fieldsNode ou Content: armazena contedo, e tambm um nome de um mdulo do coreOs node types permitem-nos fazer a diferenciao de contedo, como um registo de blog e um banner. Os nodes so tambm pginas, e esto sujeitos a tradues e a outras propriedades, como as revises. 34. Hands on: Fields, os campos dos objetos /admin/structure/typesCada tipo de contedo pode ter campos associados. Na verdade, qualquer tipo de entidade pode ter campos: Field: armazena um determinado data type e sua configurao.Field Display: armazena a configurao de visualizao do field.View Mode: define um configurao de visualizao de uma entity, qual esto associados field displays.Cada field no Drupal pode ter uma configurao de visualizao para cada view mode. Ex, Print, PDF, Full, Teaser, etc. 35. Hands on: Taxonomy, a arte de catalogar /admin/structure/taxonomyA pgina de administrao da taxonomia o local onde podemos criar ou associar blocos existentes a regies: Taxonomy: a arte de catalogar objetos, na prtica um nome de um mdulo do core onde se faz a gesto de vocabularies e termsVocabulary: armazena configurao relativa a termsTerm: armazena a categoria e outros dadosUm vocabulary nada mais que um conjunto de terms. Tal como os contedos, os terms tambm so traduzveis e podem opcionalmente ter fields. 36. Hands on: Views, as listas personalizveis /admin/structure/viewsA pgina de administrao das visualizaes o local onde podemos criar listas de objetos: Views: o nome do mdulo contrib onde se faz a gesto das viewsView: armazena a configurao de uma visualizaoView Display: configurao de uma variante da viewExemplos: listas de utilizadores, contedos, categorias, produtos de loja, etc. Para discerni-los so usados filtros, ordenamentos, contextos, argumentos e outras propriedades, que podem ser fixas ou dinmicas. 37. Hands on: Menus e ligaes /admin/structure/menuA pgina de administrao de menus o local onde podemos criar novos menus e ligaes: Menu: objeto para armazenamento de conjuntos de menu items, e tambm um nome de um mdulo do coreMenu item: armazena uma ligaoUm menu declarado como um block, e pode ser utilizado nos temas, no sistema de blocos ou em mdulos compatveis do mundo contrib. Os menu items tambm esto sujeitos a tradues. 38. Hands on: Blocos e Regies /admin/structure/blocksA pgina de administrao de blocos o local onde podemos criar ou associar blocos existentes a regies: Block: objeto especial para representao visualno site de algo produzido por um mdulo e tambm um nome de um mdulo do coreRegion: representao de uma seco do tema, aos quais so associados blocks. Ex: header, footerOs blocks so criados na UI com HTML ou programados em mdulos. As regions so declaradas no tema e inseridas nos templates, com recurso a HTML e PHP. 39. Hands on: Utilizadores e Permisses /admin/peopleA pgina de administrao de utilizadores o local onde podemos gerir utilizadores, e no s... User: objeto para armazenamento de credenciais, e tambm um nome de um mdulo do coreRole: agrega permissions, so utilizadas em associao com usersPermission: definio de uma permisso individual para determinada funo em determinado mdulo atravs dos roles e permissions que se faz toda a gesto de direitos administrativos no Drupal. 40. Hands on: Let's have fun! Exerccio: Site de notcias Categorias temticasContedo notciasLista de notciasPerfil de autor 41. Workshop Introduo ao DrupalCrditos 42. Contactos Frana Paris HIQ Consulting S.A.S 62 bis, avenue Andr Morizet (4me tage) 92100 Boulogne Billancourt France Tel.: +33 1 41 31 20 20 Email: [email protected] Rhne-Alpes HIQ Consulting S.A.S 83 rue de la rpublique (5 tage) 69 002 Lyon France Tel.: +33 4 72 31 70 70 Email: [email protected] Pedro Algarvio Drupal & Debian Linux ConsultantPorto Centro Empresarial de Matosinhos Rua Brito Capelo - 807, 4450-063 Matosinhos Tel: +351 220 907 018 Fax: +351 220 400 976lp.algarvio.orgEspanha HIQ Consulting S.A. Calle San Bernardo, N20 1 Planta 28015 Madrid Espaa Tel. : +34 670 713 948 Email : [email protected] HIQ Consulting A.G. Stnzlergasse, 4 CH 4051 Basel Tel. : +41 612 056 200 Email: [email protected] Alemanha HIQ Consulting GmbH Postfach 10 05 43 66005 Saarbrcken Germany Tel. : 0681 / 99 63 273 Email: [email protected] Lisboa HIQ Consultadoria S.A. Edifcio Picoas Plaza Rua do Viriato, 13E Ncleo, 6 - 3 Dto 1050-233 Lisboa Portugal Tel.: +351 213 137 680 Email: [email protected] 43. Fim