SlideShare une entreprise Scribd logo
1  sur  19
Salut! Gabriel Ungureanu Web Developer & Owner AG Prime  http://www.ag-prime.com/   LinkedIn:  http://www.linkedin.com/in/gabrielungureanu Twitter:  http://www.twitter.com/gabiu Drupal:  http://drupal.org/user/279352
Experienţă 4 ani de web development Am lucrat cu: Moodle, Joomla, Drupal, custom CMS & Frameworks 1 an de Drupal
De ce nu-mi place Drupal ,[object Object]
E greu de învăţat
No backwards compatibility intre versiuni majore
Când aleg Drupal? ,[object Object]
Când vreau să scriu puţin cod pentru multe sarcini. (chiar si fara cod ;) )
Când dezvolt un proiect care va cere multă mentenanţă ulterioară (publishing websites)
Avantaje ,[object Object]
Peste 2400 de module şi teme disponibile la download
Tradus in peste 80 de limbi
Peste 200.000 membri, 300 useri noi zilnic
Peste 1800 de contribuitori şi peste 1600 de service providers
4 canale de IRC cu sute de membri
1:4 rata de răspuns pentru bug reports
100 000 download-uri de Drupal Core / lună
Drupal din punct de vedere POO Optimizare load-time (încarcarea dinamică a funcţiilor în funcţii) Implementează toate principiile POO: ,[object Object]
Abstractizare (hook sistem)
Încapsulare (prin conventie:  _user_save()  - private,  user_save()  - public)

Contenu connexe

En vedette

Introduction to drupal
Introduction to drupalIntroduction to drupal
Introduction to drupalAG Prime
 
Drupal Case Study
Drupal Case StudyDrupal Case Study
Drupal Case StudyAG Prime
 
Listening for opportunity
Listening for opportunityListening for opportunity
Listening for opportunityLaurel Ackerman
 
Aginity "Big Data" Research Lab
Aginity "Big Data" Research LabAginity "Big Data" Research Lab
Aginity "Big Data" Research Labkevinflorian
 
Contribute to drupal
Contribute to drupalContribute to drupal
Contribute to drupalAG Prime
 
Catedral De Sevilla Eugenio Hermoso
Catedral De Sevilla Eugenio HermosoCatedral De Sevilla Eugenio Hermoso
Catedral De Sevilla Eugenio Hermosoguest8f5b78c1
 
Problem Solving Negotiations for Public Officials
Problem Solving Negotiations for Public OfficialsProblem Solving Negotiations for Public Officials
Problem Solving Negotiations for Public OfficialsM Landis
 
Basic psn 2012
Basic psn 2012Basic psn 2012
Basic psn 2012M Landis
 
Consensus building3addendum
Consensus building3addendumConsensus building3addendum
Consensus building3addendumM Landis
 

En vedette (11)

Introduction to drupal
Introduction to drupalIntroduction to drupal
Introduction to drupal
 
Drupal Case Study
Drupal Case StudyDrupal Case Study
Drupal Case Study
 
Listening for opportunity
Listening for opportunityListening for opportunity
Listening for opportunity
 
Aginity "Big Data" Research Lab
Aginity "Big Data" Research LabAginity "Big Data" Research Lab
Aginity "Big Data" Research Lab
 
Contribute to drupal
Contribute to drupalContribute to drupal
Contribute to drupal
 
Catedral De Sevilla Eugenio Hermoso
Catedral De Sevilla Eugenio HermosoCatedral De Sevilla Eugenio Hermoso
Catedral De Sevilla Eugenio Hermoso
 
Problem Solving Negotiations for Public Officials
Problem Solving Negotiations for Public OfficialsProblem Solving Negotiations for Public Officials
Problem Solving Negotiations for Public Officials
 
Ps neg2
Ps neg2Ps neg2
Ps neg2
 
Green5&7
Green5&7Green5&7
Green5&7
 
Basic psn 2012
Basic psn 2012Basic psn 2012
Basic psn 2012
 
Consensus building3addendum
Consensus building3addendumConsensus building3addendum
Consensus building3addendum
 

Similaire à Drupal Basics

Themes and Styles in Android
Themes and Styles in AndroidThemes and Styles in Android
Themes and Styles in Androidmready
 
Drupal Global Training Days - 31 May 2014
Drupal Global Training Days  - 31 May 2014Drupal Global Training Days  - 31 May 2014
Drupal Global Training Days - 31 May 2014romancri
 
Graduation projects in Crispico
Graduation projects in CrispicoGraduation projects in Crispico
Graduation projects in Crispicostagiipebune
 
Cu codul în "nori"
Cu codul în "nori"Cu codul în "nori"
Cu codul în "nori"Sabin Buraga
 
CLIW 2014—2015 (9/12): Ingineria dezvoltării aplicaţiilor JavaScript
CLIW 2014—2015 (9/12): Ingineria dezvoltării aplicaţiilor JavaScriptCLIW 2014—2015 (9/12): Ingineria dezvoltării aplicaţiilor JavaScript
CLIW 2014—2015 (9/12): Ingineria dezvoltării aplicaţiilor JavaScriptSabin Buraga
 
baze c++sructura unui program declarare variabilepdf.
baze c++sructura unui program declarare variabilepdf.baze c++sructura unui program declarare variabilepdf.
baze c++sructura unui program declarare variabilepdf.AdrianaDanielaCupsa
 
Medii de dezvoltare node.js npm
Medii de dezvoltare node.js  npmMedii de dezvoltare node.js  npm
Medii de dezvoltare node.js npmDmitrii Stoian
 
A B C in WordPress. Introducere pentru ONG-uri
A B C in WordPress. Introducere pentru ONG-uriA B C in WordPress. Introducere pentru ONG-uri
A B C in WordPress. Introducere pentru ONG-uriAsociatia Techsoup Romania
 
CLIW 2015-2016 (8/13) JavaScript în navigatorul Web. De la DOM la Ajax şi mas...
CLIW 2015-2016 (8/13) JavaScript în navigatorul Web. De la DOM la Ajax şi mas...CLIW 2015-2016 (8/13) JavaScript în navigatorul Web. De la DOM la Ajax şi mas...
CLIW 2015-2016 (8/13) JavaScript în navigatorul Web. De la DOM la Ajax şi mas...Sabin Buraga
 
Prezentare Programare Web - Site de administrare blog
Prezentare Programare Web - Site de administrare blogPrezentare Programare Web - Site de administrare blog
Prezentare Programare Web - Site de administrare blogDinuSrs
 
Denis M. David - Studying journal
Denis M. David - Studying journalDenis M. David - Studying journal
Denis M. David - Studying journalDenisDavid12
 
Sabloane de proiectare
Sabloane de proiectareSabloane de proiectare
Sabloane de proiectareAndrei Jechiu
 
Dezvoltarea Aplicatiilor Web
Dezvoltarea Aplicatiilor WebDezvoltarea Aplicatiilor Web
Dezvoltarea Aplicatiilor Webdanielnastase
 

Similaire à Drupal Basics (20)

Themes and Styles in Android
Themes and Styles in AndroidThemes and Styles in Android
Themes and Styles in Android
 
Webpack
Webpack Webpack
Webpack
 
Drupal Global Training Days - 31 May 2014
Drupal Global Training Days  - 31 May 2014Drupal Global Training Days  - 31 May 2014
Drupal Global Training Days - 31 May 2014
 
Teme WordPress
Teme WordPressTeme WordPress
Teme WordPress
 
Graduation projects in Crispico
Graduation projects in CrispicoGraduation projects in Crispico
Graduation projects in Crispico
 
Cu codul în "nori"
Cu codul în "nori"Cu codul în "nori"
Cu codul în "nori"
 
CLIW 2014—2015 (9/12): Ingineria dezvoltării aplicaţiilor JavaScript
CLIW 2014—2015 (9/12): Ingineria dezvoltării aplicaţiilor JavaScriptCLIW 2014—2015 (9/12): Ingineria dezvoltării aplicaţiilor JavaScript
CLIW 2014—2015 (9/12): Ingineria dezvoltării aplicaţiilor JavaScript
 
Design Patterns
Design PatternsDesign Patterns
Design Patterns
 
XHTML 2.0
XHTML 2.0XHTML 2.0
XHTML 2.0
 
baze c++sructura unui program declarare variabilepdf.
baze c++sructura unui program declarare variabilepdf.baze c++sructura unui program declarare variabilepdf.
baze c++sructura unui program declarare variabilepdf.
 
Medii de dezvoltare node.js npm
Medii de dezvoltare node.js  npmMedii de dezvoltare node.js  npm
Medii de dezvoltare node.js npm
 
A B C in WordPress. Introducere pentru ONG-uri
A B C in WordPress. Introducere pentru ONG-uriA B C in WordPress. Introducere pentru ONG-uri
A B C in WordPress. Introducere pentru ONG-uri
 
CLIW 2015-2016 (8/13) JavaScript în navigatorul Web. De la DOM la Ajax şi mas...
CLIW 2015-2016 (8/13) JavaScript în navigatorul Web. De la DOM la Ajax şi mas...CLIW 2015-2016 (8/13) JavaScript în navigatorul Web. De la DOM la Ajax şi mas...
CLIW 2015-2016 (8/13) JavaScript în navigatorul Web. De la DOM la Ajax şi mas...
 
Drupal Install FEST
Drupal Install FESTDrupal Install FEST
Drupal Install FEST
 
Cerinte proiect
Cerinte proiectCerinte proiect
Cerinte proiect
 
Prezentare Programare Web - Site de administrare blog
Prezentare Programare Web - Site de administrare blogPrezentare Programare Web - Site de administrare blog
Prezentare Programare Web - Site de administrare blog
 
Denis M. David - Studying journal
Denis M. David - Studying journalDenis M. David - Studying journal
Denis M. David - Studying journal
 
Licenta web aplicatie.pptx
Licenta web aplicatie.pptxLicenta web aplicatie.pptx
Licenta web aplicatie.pptx
 
Sabloane de proiectare
Sabloane de proiectareSabloane de proiectare
Sabloane de proiectare
 
Dezvoltarea Aplicatiilor Web
Dezvoltarea Aplicatiilor WebDezvoltarea Aplicatiilor Web
Dezvoltarea Aplicatiilor Web
 

Drupal Basics

  • 1. Salut! Gabriel Ungureanu Web Developer & Owner AG Prime http://www.ag-prime.com/ LinkedIn: http://www.linkedin.com/in/gabrielungureanu Twitter: http://www.twitter.com/gabiu Drupal: http://drupal.org/user/279352
  • 2. Experienţă 4 ani de web development Am lucrat cu: Moodle, Joomla, Drupal, custom CMS & Frameworks 1 an de Drupal
  • 3.
  • 4. E greu de învăţat
  • 5. No backwards compatibility intre versiuni majore
  • 6.
  • 7. Când vreau să scriu puţin cod pentru multe sarcini. (chiar si fara cod ;) )
  • 8. Când dezvolt un proiect care va cere multă mentenanţă ulterioară (publishing websites)
  • 9.
  • 10. Peste 2400 de module şi teme disponibile la download
  • 11. Tradus in peste 80 de limbi
  • 12. Peste 200.000 membri, 300 useri noi zilnic
  • 13. Peste 1800 de contribuitori şi peste 1600 de service providers
  • 14. 4 canale de IRC cu sute de membri
  • 15. 1:4 rata de răspuns pentru bug reports
  • 16. 100 000 download-uri de Drupal Core / lună
  • 17.
  • 19. Încapsulare (prin conventie: _user_save() - private, user_save() - public)
  • 20. Polimorfism (ex. drupal_render() - generează codul html pentru un node)
  • 21. Moştenire (temele sau modulele moştenesc comportamentul de baza şi extind, ex. themeName_links($links, $attributes)
  • 22. Design Patterns Singleton : modulele si temele pot fi considerate clase singleton (au o singura instanta) Decorator : prin hooks, de ex. hook_node_load() , hook_node_view() - orice modul poate adauga comportamente unui nod Observer : hooks, ex. Cand se face o modificare la un vocabular se apelează hook_taxonomy_vocabulary_update() Bridge : abstractizarea bazei de date – modulele sunt independente de baza de date folosita
  • 23. Design patterns Chain of Responsibility : la fiecare request se procesează calea primita, si se decide daca este un modul care sa proceseze acel request, daca utilizatorul are acces la el si ce functie va fi apelata pentru asta. Se merge in lant pana se rezolva, sau un modul refuza accesul pentru utilizator sau coada se termina. Command : de exemplu, un modul poate sa implementeze doar hook -urile de care are nevoie
  • 24.
  • 25. Contributed modules – sunt testate si recomandate de comunitate si pot fi downloadate de pe drupal.org
  • 26. Custom modules – dezvoltate de companii / developeri privati, in special pentru anumite proiecte.
  • 27. Developing a module Implementeaza hook-urile din core Ex. modules/hello_world.module function hello_world_menu() Implementeaza hook_menu() din core.
  • 28. Exemplu modules/hello_world.module <?php /** * @file * Hello World Module */ /** * Implementation of hook_menu(). */ function hello_world_menu() { $items = array(); $items['hello_world'] = array( 'title' => 'Hello World', 'description' => 'Basic Hello World message', 'page callback' => 'hello_world_say_hello', 'access arguments' => array('say hello'), 'type' => MENU_SUGGESTED_ITEM, ); return $items; } /** * Function which generate page (this generate any content - you need only your own code...) */ function hello_world_say_hello() { return '<p>Hello world!</p>'; } ?>
  • 29. Theming Controleaza look & feel -ul aplicatie Specifica reguinile de continut (tehnica frame) Poate contine CSS si Javascript necesar
  • 30.
  • 31. page.tpl.php – fisier template in format php ce controleaza look-ul generic al unei pagini
  • 32. template.php – functii specifice template-ului (ex. se pot suprascrie elemente din module – textul unui buton)
  • 33.
  • 44. php
  • 45. .tpl.php files Nu necesita cunostinte suplimentare Cod HTML/PHP simplu Exemple ( si conventii de nume): page.tpl.php suprascrie templateul din system – modul de afisare al unei pagini page-front.tpl.php – prima pagina a site-ului search-result.tpl.php – pagina cu rezultatele cautarilor
  • 46. template.php Poate implementa hook-uri: ex. themeName_links($links, $attributes = array('class' => 'links')) Poti crea pagina de administrare pentru theme (implementare hook_menu )
  • 47. Drupal JS Implicit in core, Drupal incarca un obiect Drupal de forma { 'settings': {}, 'behaviors': {}, 'themes': {}, 'locale': {} }; Avem acces la variabile, comportamente, poate aplica functii de templating sau putem avea access la traduceri (Drupal.t) Se poat adauga scripturi (ex. din module) cu drupal_add_js($data = NULL, $type = 'module')