Introduzione a Drupal 7 - 14/03/2013

2,031 views

Published on

Introduzione a Drupal 7
Incontro Club degli sviluppatori - 13/03

Published in: Technology
0 Comments
2 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
2,031
On SlideShare
0
From Embeds
0
Number of Embeds
7
Actions
Shares
0
Downloads
20
Comments
0
Likes
2
Embeds 0
No embeds

No notes for slide

Introduzione a Drupal 7 - 14/03/2013

  1. 1. 1 Introduzione a Drupal 7 Club degli sviluppatori 14 marzo 2013 a cura di Alessandro Del Gobbo
  2. 2. 2 Cos’è e come funziona Usare Drupal7 Concetti avanzati Percorso in 3 parti
  3. 3. 3 Mi presento • Sviluppatore dall’epoca di ASP 3.0 • Oggi principalmente su: –.NET e ASP.NET + SQL Server –Java (per Android) –Tecnologie web (HTML5, CSS, JS ecc) –PHP –altre conoscenze sparse qua e la • Skills in grafica / UX Alessandro Del Gobbo
  4. 4. 4 Requisiti minimi per Drupal: **MP Cioè WAMP, LAMP ecc. Gli essenziali sono: • Php 5.3+ • MySql 5.0.15+ (SqlServer e Oracle sono supportati da moduli aggiuntivi) Prima di iniziare: cosa c’è da sapere?
  5. 5. 5 Conoscenze minime per essere «creativi»: • Html, CSS, JS • Funzionamento di un sito dinamico **MP • PHP e MySql per evolvere. Requisiti per utilizzare un sito Drupal: • Essere vivi, (ma dipende dai «creativi») Prima di iniziare: cosa c’è da sapere?
  6. 6. 6 In caso di panico… www.drupal.org
  7. 7. 7 In caso di panico… www.drupal.org
  8. 8. 8 In caso di panico… www.drupal.org
  9. 9. 9 Cos’è e come funziona Drupal 7
  10. 10. 10 • Content Management System (CMS) • Content Management Framework (CMF) • Community Management System –Gestione eccezionale di utenti e permessi –Gestione eccezionale di User Generated Content in relazione ai permessi Cos’è:
  11. 11. 11 • Gratuito & Open Source (GPL) http://drupal.org/licensing/faq • Modulare • Estensibile • Ultra-flessibile (grazie alle DB-API) • Manutenibile (updates e no-lock data)! Caratteristiche salienti 1/2
  12. 12. 12 • Interfaccia SEMPLICE (Backend separABILE) • INTERNAZIONALIZABILE • Supportato da community enorme 24k+ sviluppatori & 917k+ accounts. • 20k+ moduli GRATUITI • Sito di supporto eccellente • Usato da molte major companies • Scalabile (info nella terza parte) Caratteristiche salienti (2/2)
  13. 13. 13 • Costruzione di contenuti personalizzati • Costruzioni di viste (Query) con relativo layout anche senza scrivere SQL – Output delle viste dinamico (supporta anche RSS!) • Già tradotto in 100+ lingue (anche i moduli) • Traducibilità dei contenuti personalizzati • Generatore di Form e relative azioni Funzionalità interessanti (1/2)
  14. 14. 14 • URL Seo-friendly • Gestione profili thumbnail (+ effetti) • Pubblicazione schedulata contenuti • System Logs • Segnalazione aggiornamenti core e moduli • MULTI SITO!! Un solo code-base per infiniti siti! Funzionalità interessanti (2/2)
  15. 15. 15 Creato e mantenuto per (secondo loro): • Web-admin / Developers (ovviamente) • Non technical-people – Managers – Startuppers – Ecc. Per chi è
  16. 16. 16 • Creato da Dries Buytaert in Belgio nel 2000 • Voleva essere una piattaforma per piccole community • Rilasciato Op.Source nel 2001 • A capo di Acquia (servizi per drupal) Storia di Drupal Dries Buytaert http://buytaert.net/ http://www.linkedin.com/in/buytaert
  17. 17. 17 Voleva registrare il dominio dorp.org («dorp» in tedesco = villaggio) Per un errore di battitura registrò DROP.org Drop in inglese = Goccia… che in tedesco di pronuncia esattamente come Drupal Curiosità: perché «Drupal»? Infatti il logo è… una goccia
  18. 18. 18 Cosa puoi farci • Blogs • Siti istituzionali • Web-zine • Presentazione prodotti • Wiki • Gestione KnowHow interno • Forum • Community • E-commerce • Ecc.
  19. 19. 19 www.adoroletuefoto.it (una startup) Alcuni esempi…
  20. 20. 20 http://www.ricettario-bimby.it/ (una mega community) Alcuni esempi…
  21. 21. 21 http://www.mtv.co.uk/ (una mega community) Alcuni esempi…
  22. 22. 22 Alcuni esempi… si… è proprio lei… La casa bianca. http://www.whitehouse.gov/
  23. 23. 23 http://drupal.org/case-studies (molti altri) Alcuni esempi…
  24. 24. 24 • Wordpress (performante) ha di recente integrato un sistema di costruzione contenuti, ma la gestione utenti/permessi non è eccellente. • Joomla: – poco manutenibile (maledetti aggiornamenti) – meno usabile anche di Wordpress – moduli migliori a pagamento • Altri CMS in altri linguaggi spesso richiedono profonda conoscenza della piattaforma/linguaggio… anche per cose semplici Perchè usare Drupal?
  25. 25. 25 • Non c’è uno scheduling delle versioni • Ogni versione è abbondantemente testata tramite Alfa Beta RC1 RC2… • I moduli seguono lo stesso iter contemporaneamente (alcuni vengono fuori in ritardo, quindi meglio aspettare!) • Spesso i moduli più famosi vengono integrati nel core di Drupal Versioni e Versioning di Drupal
  26. 26. 26 • Ancora in RC • Stanno integrando Symfony per la gestione DB • Stanno integrando moduli come la i18n • Migliore usabilità • Interfaccia admin anche Mobile con Html5 • Nuovo sistema Layout (simile a panels) • Migliorano un sacco di cose tra cui le prestazioni Versione 8
  27. 27. 27 Questo è il diagramma del DB di Drupal 7 Com’è fatto drupal?
  28. 28. 28 Drupal ragiona con le «entità» • Node :un contenuto generico • User : un account • Taxonomy: Categorie/Tags • Comment: Commenti (gerarchici) In realtà basta sapere che…
  29. 29. 29 I nodi rappresentano la base di un contenuto generico… una classe astratta Nodi e contenuti personalizzati Un «TIPO DI CONTENUTO» come Page (che è incluso di default) è un Node con quasi nessun campo (Field) aggiuntivo. Possiamo pensare Page come una classe derivata da Node.
  30. 30. 30 I tipi di campo che inseriamo, non sono per forza tipi SQL… possono anche essere altre entità… Nodi e contenuti personalizzati Text_with_summary, c rea un sommario automatico dal testo, Taxonomy_reference splitta automaticamente i tag separati da virgola Ecc…
  31. 31. 31 Con questo tipo di struttura flessibile, È ovvio che aggiungendo campi ad un nostro «oggetto» : NON stiamo aggiungendo Colonne ad una tabella… ma RIGHE (e in varie tabelle). • La flessibilità si paga con prestazioni • Drupal va ragionato Nodi nel database
  32. 32. 32 Racchiude in se i concetti di: Tags, categorie, sezioni ecc. Un dizionario = un gruppo di identificatori. Ogni dizionario può essere: • Prestabilito dall’admin (es. le categorie degli articoli) • Variabile, come i «tags» aggiunti dagli utenti • Un campo Taxonomy di un oggetto personalizzato può avere tantissimi risvolti. Taxonomy / Tassonomia
  33. 33. 33 • Account: profilo di un utente • Permesso: Possibilità per un utente di compiere un azione o visualizzare dei dati • Ruolo: Schema di permessi assegnabili a più utenti • Ruolo Admin: puo fare tutto. In automatico ha tutti i permessi. • Ruoli Custom: stabilisci tu ogni permesso • Ruolo Guest: Utente non autenticato, può solo vedere i contenuti. Users e sistema dei permessi
  34. 34. 34 Architettura di Drupal
  35. 35. 35 Architettura di Drupal (2)
  36. 36. 36 Struttura directory di Drupal Eventualmente modificare solo i file/cartelle in verde.
  37. 37. 37 Temi • Definiscono e sovrascrivono i template di qualsiasi modulo «by-name-convention» • Sono derivabili in altri temi • Esistono Temi «framework»
  38. 38. 38 Temi • Il template del tema ha sempre priorità rispetto al template del modulo • In caso di temi ereditati scandaglia tutto. • Per tutti i dettagli sul naming-convention dei template: http://drupal.org/node/1089656 es: comment--node-article.tpl.php verrebbe preso come template per i commenti ai contenuti di tipo article
  39. 39. 39 Temi: com’è fatto un template Es. page.php nel template «bartik»
  40. 40. 40 Meccanismo tramite il quale Drupal diventa estensibile e flessibile. • Agganciabili sia nei Temi che nei Moduli Es. nel tema «bartik», file template.php Hooks
  41. 41. 41 Question time. Domande?
  42. 42. 42 Usare Drupal 7
  43. 43. 43 L’installazione si può evitare completamente se l’hosting ci da Cpanel / Fantastico Script Assicurarsi di avere un hosting con queste caratteristiche: • Apache + Php • MySql • Creare un Database in MySql e un utente che possa accederci. Es. db1 e userdb1@localhost 1. Preparare l’ambiente
  44. 44. 44 Copiare nella root folder del sito, i sorgenti contenuti nell’archivio Drupal. In sites/default copiare il file default.settings.php e rinominarlo in settings.php 1. Preparare l’ambiente
  45. 45. 45 Navigare con il browser : http://localhost/install.php (dove localhost è eventualmente il vostro dominio) 2. Eseguire lo script di installazione
  46. 46. 46 Navigare con il browser : http://localhost/install.php (dove localhost è eventualmente il vostro dominio) 2. Eseguire lo script di installazione
  47. 47. 47 Seguire il wizard… 2. Eseguire lo script di installazione
  48. 48. 48 Seguire il wizard… 2. Eseguire lo script di installazione
  49. 49. 49 • Impostare il CronJob (link speciale in Status Report) • Abilitare i Clean Urls in /admin/config/search/clean-urls (.htaccess già presente… e anche il web.config!) 3. Configurazioni finali
  50. 50. 50 • I blocchi dipendono dal tema! Layout e blocchi
  51. 51. 51 • http://drupal.org/project/zen E’ abbastanza Nerd Ne esistono molti altri, anche Adaptative, per Mobile ecc. PS. Si può sviluppare per MOBILE: http://drupal.org/documentation/mobile con i temi o con moduli specifici come DrupalGap (per chi conosce Phonegap) Uno dei temi migliori… ZEN
  52. 52. 52 NON E’ UN TEMA E’ più un Framework per temi. • Sfrutta molto l’ereditarietà • Include molte funzionalità tra cui la «Breadcrumb» Uno dei temi migliori… ZEN
  53. 53. 53 • BACKUP AND MIGRATE http://drupal.org/project/backup_migrate • Internationalization http://drupal.org/project/i18n • Language Icons http://drupal.org/project/languageicons • Localization update (l10n_update) http://drupal.org/project/l10n_update • Administration Menu http://drupal.org/project/admin_menu I moduli da installare subito…
  54. 54. 54 • Pathauto http://drupal.org/project/pathauto • Token http://drupal.org/project/token • Transliteration http://drupal.org/project/transliteration • Variable (API) http://drupal.org/project/variable • Chaos Tools http://drupal.org/project/ctools • Views http://drupal.org/project/views • Administration Language http://drupal.org/project/admin_language I moduli da installare subito…
  55. 55. 55 • Andare in Moduli, link Installa Modulo Installazione di un modulo
  56. 56. 56 • Il link del .tar.gz si trova nella pagina del modulo Installazione di un modulo LINK DA COPIARE/SCARICARE [VERSIONE DI DRUPAL] – [VERSIONE MODULO]
  57. 57. 57 WYSIWYG http://drupal.org/project/wysiwyg Dopo aver installato il modulo Scaricare l’editor preferito e piazzarlo in: /sites/all/libraries/[editorname] Es. /sites/all/libraries/ckeditor Creare un profilo WYSIWIG che usa ckeditor e assegnato ad un «formato testo» Moduli che fanno comodo…
  58. 58. 58 • Date field http://drupal.org/project/date • References http://drupal.org/project/references • Tutti i * field per Chaos Tool (CTools) (opp. CCK Content Construction Kit di D6) • Panels http://drupal.org/project/panels • Advanced Help http://drupal.org/project/advanced_help • Webform: http://drupal.org/project/webform Moduli che fanno comodo…
  59. 59. 59 Ecommerce: • http://drupal.org/project/ecommerce • http://drupal.org/project/ubercart • SEO/Accessibilità: • http://drupal.org/project/seotools • http://drupal.org/project/seo_checklist DEVELOPERS: • http://drupal.org/project/devel Altri moduli…
  60. 60. 60 Riferimento: http://drupal.org/documentation/multilingual Impostazioni Lingua e Internazionalizzazione
  61. 61. 61 • Aggiunta di una pagina standard • Creazione di un nuovo tipo di contenuto • Wysiwyg su nuovo contenuto • Gestione dei blocchi • Permessi Live demos of…
  62. 62. 62 Questions time. Domande?
  63. 63. 63 Concetti Avanzati
  64. 64. 64 Cari Nerd vi presento DRUSH! DRupal Shell http://www.drush.org/ Advanced tools SI! C’è anche per Windows
  65. 65. 65 Drush
  66. 66. 66 • Drupal As A Service https://www.getpantheon.com/ (Freemium Cloud DAAS Hosting) Gestione facile del LIFE-CYCLE di un sito Drupal Grazie a Drush stanno nascendo i DAAS DEV PRODUCTION STAGE
  67. 67. 67 • Decrescono con l’aumentare dei moduli attivi • Il database si riempie molto facilmente! • Il DB ha un ruolo chiave (perché le query possono essere pesanti ) • I moduli aggiungono eseguono query aggiuntive. • Molti errori locali di Drupal sono dovuti all’ambiente (Wamp/Lamp) Es. Su un PC locale inserite sempre l’ip 127.0.0.1 come host DB per evitare lag. Performance di Drupal
  68. 68. 68 • Sistema integrato di caching • Sistema integrato compressione CSS/JS • Usare CDN per tutti i JS / CSS / immagini tema • Pensare ad Varnish (Reverse Proxy Caching) • Usare Nginx e APC (Alternative Php Cache)! Migliorare le performance
  69. 69. 69 • Drupal essere installato in cloud. • Si, anche su Azure! Scalabilità
  70. 70. 70 Oltre ad usare Varnish e CDN… Per scalare…
  71. 71. 71 214 million hits in 6 ore. Database load: 5%. Apache load: 1%. Per scalare alla grande…
  72. 72. 72 Alcuni avvertimenti su Drupal: • A volte gli aggiornamenti vi faranno impazzire (non più di Joomla) • Per progetti complessi usarlo solo per MVP ( poi passare a custom, magari .NET :-D ) • Bugs nei moduli… aggiornare per steps e solo quando necessario (Security Fix). • Attenzione agli update-chains (dipendenze) Note finali
  73. 73. 73 GRAZIE PER L’ATTENZIONE! Con un breve questionario aiuterete me, il gruppo e i futuri presentatori a migliorare! alessandro@delgobbo.com www.facebook.com/alessandro.adg.ok twitter.com/alexoverflow www.linkedin.com/in/delgobbo Lasciate il vostro indirizzo email! Alessandro del Gobbo Cell. 329 792 79 82
  74. 74. 74 Question time. Domande?
  75. 75. 75 Alcune immagini tratte da: • An Introduction to Drupal Architecture - John VanDyk - DrupalCamp Des Moines, Iowa • Drupal as webplatform – Calibrate seminar Bibliografia

×