38. konference europen.cz 11. května · d r i e s b u y t a e r t a n e b k d o z a t o m Ů Ž e...

86
D R U P A L V O J T Ě C H K U S Ý | @ W O J T H A 38. konference EurOpen.CZ 11. května .2011 www.vojtechkusy.cz

Upload: others

Post on 12-Oct-2020

0 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: 38. konference EurOpen.CZ 11. května · D R I E S B U Y T A E R T A N E B K D O Z A T O M Ů Ž E ... • původní autor: Dries Buytaert, kol. roku 2000 • Drupal 1.0.0 - opensource

D R U P A LV O J T Ě C H   K U S Ý   |   @ W O J T H A

38. konference EurOpen.CZ11. května .2011

www.vojtechkusy.cz

Page 2: 38. konference EurOpen.CZ 11. května · D R I E S B U Y T A E R T A N E B K D O Z A T O M Ů Ž E ... • původní autor: Dries Buytaert, kol. roku 2000 • Drupal 1.0.0 - opensource

K D O   J S E MD R U P A L   V Ý V O J Á Ř / E V A N G E L I Z Á T O R   &   P H D. S T U D E N T 

• postgraduální studium na ČVUT FSV• Katedra inženýrské informatiky• Obor informační systémy ve stavebnictví

Software na řízení projektů; Modelování dynamických systémů

• 8 let na volné noze: PHP, webdesign, Drupal (5 let)• Drupal.cz, Drupal.org• reference: spolupráce na:

• od února 2011 Atomic Ant Ltd. http://atomicant.co.uk

Page 3: 38. konference EurOpen.CZ 11. května · D R I E S B U Y T A E R T A N E B K D O Z A T O M Ů Ž E ... • původní autor: Dries Buytaert, kol. roku 2000 • Drupal 1.0.0 - opensource

C O  J E  D R U P A LZ Á K L A D N Í   C H A R A K T E R I S T I K Y

• vysoce modulární• open source• content management system (CMS)• nebo content management framework (CMF)• napsaný v PHP• snadno rozšiřitelný - téměř každý aspekt Drupalu

lze ovlivnit pomocí modulů nebo témat

Druplicon vs Drupal logo

Page 4: 38. konference EurOpen.CZ 11. května · D R I E S B U Y T A E R T A N E B K D O Z A T O M Ů Ž E ... • původní autor: Dries Buytaert, kol. roku 2000 • Drupal 1.0.0 - opensource

D R I E S  B U Y T A E R TA N E B   K D O   Z A  T O   M Ů Ž E ... 

• původní autor: Dries Buytaert, kol. roku 2000• Drupal 1.0.0 - opensource projekt od 15.1.2001• vlastní DrupalTM trademark• zakladatel - enterprise Drupal support

Page 5: 38. konference EurOpen.CZ 11. května · D R I E S B U Y T A E R T A N E B K D O Z A T O M Ů Ž E ... • původní autor: Dries Buytaert, kol. roku 2000 • Drupal 1.0.0 - opensource

T E C H N O L O G I EZ Á K L A D N Í   P O Ž A D A V K Y   N A   S E R V E R

• PHP:o Drupal 6: PHP 5.2, min PHP 4.4.0o Drupal 7: PHP 5.3, min PHP 5.2.5

• Podporované databáze:o Drupal 6: MySQL 4.1+, PostgreSQL 7.1+,

(Oracle – modul) o Drupal 7: PHP PDO (MySQL, PostgreSQL,

SQLite, ...), MS SQL a MS Azure (modul)

• WebServer:o Apache (Linux/Windows) o Nginx (Linux/Windows)o Lighttpd (Linux/Windows)o IIS (Windows only)

Page 6: 38. konference EurOpen.CZ 11. května · D R I E S B U Y T A E R T A N E B K D O Z A T O M Ů Ž E ... • původní autor: Dries Buytaert, kol. roku 2000 • Drupal 1.0.0 - opensource

D R U P A L - A R C H I T E K T U R AD R U P A L  J A K O   S T A V E B N I C E   L E G O

Jádro=knihovny+základnísubsytémy

Contrib= moduly odpřispěvatelů

Jádro

Vlastnímodul

Obrázek z knihy Pro Drupal Development, 2nd Edition

Page 7: 38. konference EurOpen.CZ 11. května · D R I E S B U Y T A E R T A N E B K D O Z A T O M Ů Ž E ... • původní autor: Dries Buytaert, kol. roku 2000 • Drupal 1.0.0 - opensource

D R U P A LZ Á K L A D N Í   A R C H I T E K T U R A    D R U P A L U

• Srdce systému :=o knihovny základních funkcích o povinné moduly:

System, User, Node, Filter, Block System, User, Node, Filter,

Field, Field SQL Storage, Texto téma vzhledu (frontend a administrační)

• Nepovinné:o Blog, Taxonomy, Comment, Poll …o a dalších asi 20 modulů

• Contrib:o Asi 7000 modulů a témat vzhledu, ke stažení na

drupal.org (bezplatně, GNU GPL v2)

Page 8: 38. konference EurOpen.CZ 11. května · D R I E S B U Y T A E R T A N E B K D O Z A T O M Ů Ž E ... • původní autor: Dries Buytaert, kol. roku 2000 • Drupal 1.0.0 - opensource

D R U P A L   N E N Í   M V CD R U P A L   N E N Í   M V C   A L E    P A C

• Presentation-abstraction-control

Zdroj: http://en.wikipedia.org/wiki/File:Pac-schema.png

Page 9: 38. konference EurOpen.CZ 11. května · D R I E S B U Y T A E R T A N E B K D O Z A T O M Ů Ž E ... • původní autor: Dries Buytaert, kol. roku 2000 • Drupal 1.0.0 - opensource

K O N C E P T YZ Á S A D N Í K O N C E P T Y V D R U P A L U

• systém háků• Zásadní moduly:

o CCK = Fieldso Viewso Featureso Drusho Panelso ...

Page 10: 38. konference EurOpen.CZ 11. května · D R I E S B U Y T A E R T A N E B K D O Z A T O M Ů Ž E ... • původní autor: Dries Buytaert, kol. roku 2000 • Drupal 1.0.0 - opensource

H Á K Y ( H O O K S ) D R U P A L  Z  P O H L E D U  V Ý V O J Á Ř E

• Až do Drupalu 6 bylo jádro Drupalu s jedinou výjimkou (xml parser) striktně procedurální

• Drupal má poměrně unikátní architekturu, která spočívá v systému háků (hooks) a jmenných konvencích (naming conventions)o komunikace jádra s modulyo komunikace modulů mezi sebou

• Modifikační háky (alter hooks) – umožňují měni výstup jiných modulů či jádra

• Od Drupalu 7 změna, procedurální jádro a systém háků zůstává, ale subsystémy jsou objektové

Page 11: 38. konference EurOpen.CZ 11. května · D R I E S B U Y T A E R T A N E B K D O Z A T O M Ů Ž E ... • původní autor: Dries Buytaert, kol. roku 2000 • Drupal 1.0.0 - opensource

D R U P A L  6    M Á   7 3  H Á K Ů ...  A    D R U P A L   7   J E Š T Ě   V Í C

hook_access, hook_actions_delete, hook_action_info, hook_action_info_alter, hook_block, hook_boot, hook_comment, hook_cron, hook_db_rewrite_sql,

hook_delete, hook_disable, hook_elements, hook_enable, hook_exit, hook_file_download, hook_filter, hook_filter_tips, hook_flush_caches,

hook_footer, hook_form, hook_forms, hook_form_alter, hook_form_FORM_ID_alter, hook_help, hook_hook_info, hook_init,

hook_insert, hook_install, hook_link, hook_link_alter, hook_load, hook_locale, hook_mail, hook_mail_alter, hook_menu, hook_menu_alter,

hook_menu_link_alter, hook_nodeapi, hook_node_access_records, hook_node_grants, hook_node_info, hook_node_operations, hook_node_type,

hook_openid, hook_perm, hook_ping, hook_prepare, hook_profile_alter, hook_requirements, hook_schema, hook_schema_alter, hook_search, hook_search_preprocess, hook_system_info_alter, hook_taxonomy,

hook_term_path, hook_theme, hook_theme_registry_alter, hook_translated_menu_link_alter, hook_translation_link_alter,

hook_uninstall, hook_update, hook_update_index, hook_update_last_removed, hook_update_N, hook_update_projects_alter,

hook_update_status_alter, hook_user, hook_user_operations, hook_validate, hook_view,  hook_watchdog, hook_xmlrpc

Page 12: 38. konference EurOpen.CZ 11. května · D R I E S B U Y T A E R T A N E B K D O Z A T O M Ů Ž E ... • původní autor: Dries Buytaert, kol. roku 2000 • Drupal 1.0.0 - opensource

Zásada: Don’t hack corehttp://media.brianshumate.com/stuff/dont_hack_drupal_core_wallpaper.png

Page 13: 38. konference EurOpen.CZ 11. května · D R I E S B U Y T A E R T A N E B K D O Z A T O M Ů Ž E ... • původní autor: Dries Buytaert, kol. roku 2000 • Drupal 1.0.0 - opensource

S O U B O R   . I N F OR E G I S T R A Č N Í    S O U B O R    M O D U L U 

mymodule.INFO INI

name = My first moduledescription = Say hello. core = 7.x;dependencies[] = profile;dependencies[] = menupackage = "My modules";php = 5.3

Page 14: 38. konference EurOpen.CZ 11. května · D R I E S B U Y T A E R T A N E B K D O Z A T O M Ů Ž E ... • původní autor: Dries Buytaert, kol. roku 2000 • Drupal 1.0.0 - opensource

S O U B O R   . M O D U L EH L A V N Í  S O U B O R    M O D U L U 

mymodule.MODULE PHP

<?php

/** * Implementation of hook_init() */function mymodule_init() { drupal_set_message(t('Hello World'));}

Page 15: 38. konference EurOpen.CZ 11. května · D R I E S B U Y T A E R T A N E B K D O Z A T O M Ů Ž E ... • původní autor: Dries Buytaert, kol. roku 2000 • Drupal 1.0.0 - opensource

Z Á K L A D N Í   K N I H O V N YZ Á K L A D N Í  R O Z H R A N Í   D R U P A L   A P I

• Překlad (lokalizace) a filtrování výstupu• Databázová vrstva• Menu systém a routování• Systém práv přístupu• Form API - rozhraní pro práci s formuláři• File API - rozhraní pro práci se soubory• Field API - rozhraní pro práci s datovými poli• Entity - obecná implementace Drupal objektů, API

pro vytváření dalších entit• API pro přístup k Drupal objektům:

Node, Taxonomy, Comment, User• Šablonovací vrstva - hook_theme(), theme()

Page 16: 38. konference EurOpen.CZ 11. května · D R I E S B U Y T A E R T A N E B K D O Z A T O M Ů Ž E ... • původní autor: Dries Buytaert, kol. roku 2000 • Drupal 1.0.0 - opensource

D R U P A L  T E R M I N O L O G I EZ Á K L A D N Í   A R C H I T E K T U R A    D R U P A L U

• Entityo Drupal 6 - uživatel, taxonomie, uzel, komentář

jednotlivé nesouvisející objektyo Drupal 7 entity

všechny tyto objekty jsou entity některé jsou tzv. "fieldable" - je možné je

rozšířit pomocí Field API (dříve modul CCK)

Page 17: 38. konference EurOpen.CZ 11. května · D R I E S B U Y T A E R T A N E B K D O Z A T O M Ů Ž E ... • původní autor: Dries Buytaert, kol. roku 2000 • Drupal 1.0.0 - opensource

D R U P A L  T E R M I N O L O G I EZ Á K L A D N Í   A R C H I T E K T U R A    D R U P A L U

• Uzel (node - entita)o část obsahu, obvykle má nadpis a nějaký obsaho příklady: Story, Page, Forum topic, Product

• Taxonomie (taxonomy - entita)o Drupal systém pro kategorizaci obsahuo obsahuje termíny (terms) organizované ve

slovnících (vocabularies)• Háky/háčky (hooks)

o Systém háků umožňuje Drupalu komunikovat s moduly a také umožňuje komunikovat modulům sobě navzájem

Page 18: 38. konference EurOpen.CZ 11. května · D R I E S B U Y T A E R T A N E B K D O Z A T O M Ů Ž E ... • původní autor: Dries Buytaert, kol. roku 2000 • Drupal 1.0.0 - opensource

D R U P A L  T E R M I N O L O G I EZ Á K L A D N Í   A R C H I T E K T U R A    D R U P A L U

• Modulo Je obecně jednotka která rozšiřuje Drupal o

nějaké funkce, nebo upravuje chování Drupalu• Téma (Theme)

o Mění "look & feel" Drupalu• Instalační profil

o Instalační skript, který umožňuje Drupal přednastavit

• Distribuceo Instalační balení Drupalu = jádro + moduly +

profil

Page 19: 38. konference EurOpen.CZ 11. května · D R I E S B U Y T A E R T A N E B K D O Z A T O M Ů Ž E ... • původní autor: Dries Buytaert, kol. roku 2000 • Drupal 1.0.0 - opensource

D R U P A L  T E R M I N O L O G I EZ Á K L A D N Í   A R C H I T E K T U R A    D R U P A L U

• Field - pole - (Fields API)o jednoduchý datový typ, který je možné navěsit

na entity• Field instances - instance polí

o sdílená pole mezi entitami• Bundle - balík

o instance entity skupina polí

o typ obsahu (uzlu), slovníky,...

Page 20: 38. konference EurOpen.CZ 11. května · D R I E S B U Y T A E R T A N E B K D O Z A T O M Ů Ž E ... • původní autor: Dries Buytaert, kol. roku 2000 • Drupal 1.0.0 - opensource

M O D U L  C C K - F i e l d s   A P IZ Á K L A D N Í   A R C H I T E K T U R A    D R U P A L U

• CCK (Fields UI) poskytuje UI pro vytváření typů obsahu

• stará se o ukládání a nahrávání dat z databázeo automaticky vytváří DB tabulky s příslušnými

sloupečky (single vs. multiple)o kromě toho ukládá podrobné nastavení všech

definic políček do vlastní tabulky (metadata)• dále poskytuje

o formulářové prvky (widget) a jejich validaci,o zobrazení dat je možné několika způsoby

pomocí formátovačů (formatters)

Page 21: 38. konference EurOpen.CZ 11. května · D R I E S B U Y T A E R T A N E B K D O Z A T O M Ů Ž E ... • původní autor: Dries Buytaert, kol. roku 2000 • Drupal 1.0.0 - opensource

C C K   P O L E = F I E L DZ Á K L A D N Í   A R C H I T E K T U R A    D R U P A L U

Page 22: 38. konference EurOpen.CZ 11. května · D R I E S B U Y T A E R T A N E B K D O Z A T O M Ů Ž E ... • původní autor: Dries Buytaert, kol. roku 2000 • Drupal 1.0.0 - opensource

M O D U L  C C K - F i e l d s   A P IZ Á K L A D N Í   A R C H I T E K T U R A    D R U P A L U

DEMONSTRACE

Page 23: 38. konference EurOpen.CZ 11. května · D R I E S B U Y T A E R T A N E B K D O Z A T O M Ů Ž E ... • původní autor: Dries Buytaert, kol. roku 2000 • Drupal 1.0.0 - opensource

M O D U L  C C K / F I E L D S A P IC O N T E N T   C O N S T R U C T I O N   K I T

Page 24: 38. konference EurOpen.CZ 11. května · D R I E S B U Y T A E R T A N E B K D O Z A T O M Ů Ž E ... • původní autor: Dries Buytaert, kol. roku 2000 • Drupal 1.0.0 - opensource

M O D U L  C C KZ Á K L A D N Í   A R C H I T E K T U R A    D R U P A L U

Page 25: 38. konference EurOpen.CZ 11. května · D R I E S B U Y T A E R T A N E B K D O Z A T O M Ů Ž E ... • původní autor: Dries Buytaert, kol. roku 2000 • Drupal 1.0.0 - opensource

M O D U L  C C KZ Á K L A D N Í   A R C H I T E K T U R A    D R U P A L U

Page 26: 38. konference EurOpen.CZ 11. května · D R I E S B U Y T A E R T A N E B K D O Z A T O M Ů Ž E ... • původní autor: Dries Buytaert, kol. roku 2000 • Drupal 1.0.0 - opensource

M O D U L  C C KZ Á K L A D N Í   A R C H I T E K T U R A    D R U P A L U

Page 27: 38. konference EurOpen.CZ 11. května · D R I E S B U Y T A E R T A N E B K D O Z A T O M Ů Ž E ... • původní autor: Dries Buytaert, kol. roku 2000 • Drupal 1.0.0 - opensource

M O D U L  C C KZ Á K L A D N Í   A R C H I T E K T U R A    D R U P A L U

Page 28: 38. konference EurOpen.CZ 11. května · D R I E S B U Y T A E R T A N E B K D O Z A T O M Ů Ž E ... • původní autor: Dries Buytaert, kol. roku 2000 • Drupal 1.0.0 - opensource

M O D U L  V I E W ST V O R B A   P O H L E D Ů   N A   D A T A

• nástroj na generování pohledů na data• vizuální editor pro vytváření dotazů• filtrování, třídění dat• široké možnosti formátování

o nativní formatování - např. zobrazit celý uzelo nebo vlastní - např. zobrazit jako tabulku

• vytváření hlavního obsahu nebo bloků, RSS zdrojů, CSV, XML apod

• od verze 6.x-3.0 a 7.x-3.0 umožňuje práci i s externími daty (YQL, Google API, Wolfram Search...)

Page 29: 38. konference EurOpen.CZ 11. května · D R I E S B U Y T A E R T A N E B K D O Z A T O M Ů Ž E ... • původní autor: Dries Buytaert, kol. roku 2000 • Drupal 1.0.0 - opensource

M O D U L  V I E W ST V O R B A   P O H L E D Ů   N A   D A T A

http://www.yoroy.com/elders/drupal/Views-sitemap.png

Page 30: 38. konference EurOpen.CZ 11. května · D R I E S B U Y T A E R T A N E B K D O Z A T O M Ů Ž E ... • původní autor: Dries Buytaert, kol. roku 2000 • Drupal 1.0.0 - opensource

M O D U L  V I E W ST V O R B A   P O H L E D Ů   N A   D A T A

Page 31: 38. konference EurOpen.CZ 11. května · D R I E S B U Y T A E R T A N E B K D O Z A T O M Ů Ž E ... • původní autor: Dries Buytaert, kol. roku 2000 • Drupal 1.0.0 - opensource

M O D U L  V I E W SZ Á K L A D N Í   A R C H I T E K T U R A    D R U P A L U

DEMONSTRACE

Page 32: 38. konference EurOpen.CZ 11. května · D R I E S B U Y T A E R T A N E B K D O Z A T O M Ů Ž E ... • původní autor: Dries Buytaert, kol. roku 2000 • Drupal 1.0.0 - opensource

M O D U L  V I E W ST V O R B A   P O H L E D Ů   N A   D A T A

Page 33: 38. konference EurOpen.CZ 11. května · D R I E S B U Y T A E R T A N E B K D O Z A T O M Ů Ž E ... • původní autor: Dries Buytaert, kol. roku 2000 • Drupal 1.0.0 - opensource

M O D U L  V I E W ST V O R B A   P O H L E D Ů   N A   D A T A

Page 34: 38. konference EurOpen.CZ 11. května · D R I E S B U Y T A E R T A N E B K D O Z A T O M Ů Ž E ... • původní autor: Dries Buytaert, kol. roku 2000 • Drupal 1.0.0 - opensource

M O D U L  V I E W ST V O R B A   P O H L E D Ů   N A   D A T A

Page 35: 38. konference EurOpen.CZ 11. května · D R I E S B U Y T A E R T A N E B K D O Z A T O M Ů Ž E ... • původní autor: Dries Buytaert, kol. roku 2000 • Drupal 1.0.0 - opensource

A   C O   O B R Á Z K Y ?T V O R B A   P O H L E D Ů   N A   D A T A

• V Drupal 7 použijeme vestavěné Image Styles• V Drupal 6 doinstalujeme ImageCache a ImageApi

Page 36: 38. konference EurOpen.CZ 11. května · D R I E S B U Y T A E R T A N E B K D O Z A T O M Ů Ž E ... • původní autor: Dries Buytaert, kol. roku 2000 • Drupal 1.0.0 - opensource

M O D U L  V I E W ST V O R B A   P O H L E D Ů   N A   D A T A

Page 37: 38. konference EurOpen.CZ 11. května · D R I E S B U Y T A E R T A N E B K D O Z A T O M Ů Ž E ... • původní autor: Dries Buytaert, kol. roku 2000 • Drupal 1.0.0 - opensource

P R O Č E N T I T Y ?E N T I T Y - N O V Ý  K O N C E P T

• Použití Node API pro řešení některých problémů sice urychlilo práci, ...

• ... na druhou stranu to ale někdy znamenalo řešit spoustu jiných problémů:o co když nechci, aby se můj typ uzlu indexovalo proč musí mít každý typ uzlu titulek a URL?o ...

• Node API bylo skutečně dobré pro řešení klasických typů obsahu jako je Stránka, Článek, Produkt ...

• ... v ostatních případech použití Node API občas připomínalo drbání se pravou rukou za levým uchem

Page 38: 38. konference EurOpen.CZ 11. května · D R I E S B U Y T A E R T A N E B K D O Z A T O M Ů Ž E ... • původní autor: Dries Buytaert, kol. roku 2000 • Drupal 1.0.0 - opensource

P R O Č E N T I T Y ?E N T I T Y - N O V Ý  K O N C E P T

• Vznikla tak silná potřeba abstrahovat od konceptu uzlů• Entita je OBJEKT se kterým Drupal, umí velmi dobře

pracovat• Entitou může být cokoliv:

o Uzel (Node)o Uživatel (User)o Komentář (Comment)o Uživatel (User)o Blok (Block)o Položka menu...

• Entity API http://drupal.org/project/entityo Wolfgang Ziegler (fago)

Page 39: 38. konference EurOpen.CZ 11. května · D R I E S B U Y T A E R T A N E B K D O Z A T O M Ů Ž E ... • původní autor: Dries Buytaert, kol. roku 2000 • Drupal 1.0.0 - opensource

P A N E L SK D Y Ž  P E V N É   R E G I O N Y   N E S T A Č Í

• Vytváření flexibilních dynamických šablon a layoutů stránek bez nutnosti kódovat extra šablony

• Definování libovolných regionů• Možné měnit i "za provozu", převádění obsahu

mezi regiony• Podobná filozofie jako modul Views – mají i

stejného autora

Page 40: 38. konference EurOpen.CZ 11. května · D R I E S B U Y T A E R T A N E B K D O Z A T O M Ů Ž E ... • původní autor: Dries Buytaert, kol. roku 2000 • Drupal 1.0.0 - opensource

P A N E L SK D Y Ž  P E V N É   R E G I O N Y   N E S T A Č Í

Page 41: 38. konference EurOpen.CZ 11. května · D R I E S B U Y T A E R T A N E B K D O Z A T O M Ů Ž E ... • původní autor: Dries Buytaert, kol. roku 2000 • Drupal 1.0.0 - opensource

P A N E L SK D Y Ž  P E V N É   R E G I O N Y   N E S T A Č Í

Page 42: 38. konference EurOpen.CZ 11. května · D R I E S B U Y T A E R T A N E B K D O Z A T O M Ů Ž E ... • původní autor: Dries Buytaert, kol. roku 2000 • Drupal 1.0.0 - opensource

P A N E L SK D Y Ž  P E V N É   R E G I O N Y   N E S T A Č Í

Page 43: 38. konference EurOpen.CZ 11. května · D R I E S B U Y T A E R T A N E B K D O Z A T O M Ů Ž E ... • původní autor: Dries Buytaert, kol. roku 2000 • Drupal 1.0.0 - opensource

P A N E L SK D Y Ž  P E V N É   R E G I O N Y   N E S T A Č Í

Page 44: 38. konference EurOpen.CZ 11. května · D R I E S B U Y T A E R T A N E B K D O Z A T O M Ů Ž E ... • původní autor: Dries Buytaert, kol. roku 2000 • Drupal 1.0.0 - opensource

A N A T O M I E   D R U P A L  W E B US T R U K T U R A  S T R Á N K Y  P Ř I   P O U Ž I T Í   O B V Y K L Ý C H   M O D U L Ů

Page 45: 38. konference EurOpen.CZ 11. května · D R I E S B U Y T A E R T A N E B K D O Z A T O M Ů Ž E ... • původní autor: Dries Buytaert, kol. roku 2000 • Drupal 1.0.0 - opensource

A N A T O M I E   D R U P A L  W E B US T R U K T U R A  S T R Á N K Y  P Ř I   P O U Ž I T Í   O B V Y K L Ý C H   M O D U L Ů

Page 46: 38. konference EurOpen.CZ 11. května · D R I E S B U Y T A E R T A N E B K D O Z A T O M Ů Ž E ... • původní autor: Dries Buytaert, kol. roku 2000 • Drupal 1.0.0 - opensource

Š A B L O N O V Á N ÍT H E M I N G   A   J E D N O D U C H Á   Ú P R A V A   Š A B L O N

a t o m i c a n t . c o . u k | a t o m i c a n t . c z

• Oddělení logiky od prezentace• Každý prvek má nějaký presenter, tzn. nějakou výchozí

šablonu, presentery jsou na sobě navrstvené• V tématu můžeme tyto výchozí presentery „přetěžovat“

tak, že vytvoříme svoje vlastní• Šablona v tématu má přednost před výchozí šablonou v

modulu• Jakýkoliv výstup modulu by mělo jít přepsat, pokud to

nejde, jedná se o chybu• Výstup by měl být bezpečnostně ošetřen, ale nelze na

vývojáře spoléhat, obzvláště u contrib modulů• .info soubor + css = minimální šablona

Page 47: 38. konference EurOpen.CZ 11. května · D R I E S B U Y T A E R T A N E B K D O Z A T O M Ů Ž E ... • původní autor: Dries Buytaert, kol. roku 2000 • Drupal 1.0.0 - opensource

Ú V O D   D O   Š A B L O N O V Á N ÍT H E M I N G   A   J E D N O D U C H Á   Ú P R A V A   Š A B L O N

a t o m i c a n t . c o . u k | a t o m i c a n t . c z

• Anatomie tématu vzhleduo .info soubor vyžadovánoo .tpl.php soubory - přetížené šablonyo template.php - přetížené theme funkce a pomocné funkceo styly - csso skripty - js,...o obrázkyo atd...

Page 48: 38. konference EurOpen.CZ 11. května · D R I E S B U Y T A E R T A N E B K D O Z A T O M Ů Ž E ... • původní autor: Dries Buytaert, kol. roku 2000 • Drupal 1.0.0 - opensource

Ú V O D   D O   Š A B L O N O V Á N ÍT H E M I N G   A   J E D N O D U C H Á   Ú P R A V A   Š A B L O N

a t o m i c a n t . c o . u k | a t o m i c a n t . c z

Page 49: 38. konference EurOpen.CZ 11. května · D R I E S B U Y T A E R T A N E B K D O Z A T O M Ů Ž E ... • původní autor: Dries Buytaert, kol. roku 2000 • Drupal 1.0.0 - opensource

Ú V O D   D O   Š A B L O N O V Á N ÍT H E M I N G   A   J E D N O D U C H Á   Ú P R A V A   Š A B L O N

a t o m i c a n t . c o . u k | a t o m i c a n t . c z

Page 50: 38. konference EurOpen.CZ 11. května · D R I E S B U Y T A E R T A N E B K D O Z A T O M Ů Ž E ... • původní autor: Dries Buytaert, kol. roku 2000 • Drupal 1.0.0 - opensource

Ú V O D   D O   Š A B L O N O V Á N ÍT H E M I N G   A   J E D N O D U C H Á   Ú P R A V A   Š A B L O N

a t o m i c a n t . c o . u k | a t o m i c a n t . c z

Page 51: 38. konference EurOpen.CZ 11. května · D R I E S B U Y T A E R T A N E B K D O Z A T O M Ů Ž E ... • původní autor: Dries Buytaert, kol. roku 2000 • Drupal 1.0.0 - opensource

M U L T I S I T E

One Drupal to rule them all!

Page 52: 38. konference EurOpen.CZ 11. května · D R I E S B U Y T A E R T A N E B K D O Z A T O M Ů Ž E ... • původní autor: Dries Buytaert, kol. roku 2000 • Drupal 1.0.0 - opensource

I N S T A L A Č N Í   P R O F I L YD I S T R I B U C E   A   I N S T A L A Č N Í   P R O F I L Y

a t o m i c a n t . c o . u k | a t o m i c a n t . c z

• Instalační profilo Instalační skript, který umožňuje Drupal přednastavit

• Instalační profily na Drupal.orgo http://drupal.org/project/installation+profiles

Page 53: 38. konference EurOpen.CZ 11. května · D R I E S B U Y T A E R T A N E B K D O Z A T O M Ů Ž E ... • původní autor: Dries Buytaert, kol. roku 2000 • Drupal 1.0.0 - opensource

I N S T A L A Č N Í   P R O F I L YD I S T R I B U C E   A   I N S T A L A Č N Í   P R O F I L Y

a t o m i c a n t . c o . u k | a t o m i c a n t . c z

• Distribuceo Instalační "balíček" Drupalu = jádro + moduly + profil

Page 54: 38. konference EurOpen.CZ 11. května · D R I E S B U Y T A E R T A N E B K D O Z A T O M Ů Ž E ... • původní autor: Dries Buytaert, kol. roku 2000 • Drupal 1.0.0 - opensource

D I S T R I B U C ED I S T R I B U C E   A   I N S T A L A Č N Í   P R O F I L Y

a t o m i c a n t . c o . u k | a t o m i c a n t . c z

• OpenAtrium - http://openatrium.com/ groupware distribuce určená pro intranety (původně vyvinuto jako intranet pro mezinárodní pracovní skupiny Světové banky)

• OpenPublish - http://openpublishapp.com/ distribuce určená pro publikační portály

• OpenPublic - http://openpublicapp.com/ - distribuce určená pro státní organizace

• Pressflow - http://pressflow.org/ - distribuce/fork Drupalu uzpůsobená pro vyšší výkon

• Tattler (app) - http://tattlerapp.com/ - agregační nástroj pro monitorování zadaných témat v libovolných veřejných zdrojích a sociálních sítích

• Acquia Drupal - http://acquia.com/products-services/acquia-drupal

• Drupal Commons - distribuce společnosti Acquia určená pro rychlé vybudování komunitního/sociálního webu

Page 55: 38. konference EurOpen.CZ 11. května · D R I E S B U Y T A E R T A N E B K D O Z A T O M Ů Ž E ... • původní autor: Dries Buytaert, kol. roku 2000 • Drupal 1.0.0 - opensource

R D FN A T I V N Í P O D P O R A R D F

• Resource Description Framework (RDF)• česky systém popisu zdrojů• RDF je jednou z hlavních komponent sémantického

webu• triplet / triple / trojice: podmět-vlastnost-předmět• "Obloha má modrou barvu":

o Oblohao má barvuo modrou

• I have a dream for the Web [in which computers] become capable of analyzing all the data on the Web ...– Tim Berners-Lee, 1999

• http://semantic-drupal.com/

Page 56: 38. konference EurOpen.CZ 11. května · D R I E S B U Y T A E R T A N E B K D O Z A T O M Ů Ž E ... • původní autor: Dries Buytaert, kol. roku 2000 • Drupal 1.0.0 - opensource

R D FN A T I V N Í P O D P O R A R D F

http://richard.cyganiak.de/2007/10/lod/lod-datasets_2010-09-22.html

Page 57: 38. konference EurOpen.CZ 11. května · D R I E S B U Y T A E R T A N E B K D O Z A T O M Ů Ž E ... • původní autor: Dries Buytaert, kol. roku 2000 • Drupal 1.0.0 - opensource

R D FN A T I V N Í P O D P O R A R D F

RYCHLÁ DEMONSTRACE

Page 58: 38. konference EurOpen.CZ 11. května · D R I E S B U Y T A E R T A N E B K D O Z A T O M Ů Ž E ... • původní autor: Dries Buytaert, kol. roku 2000 • Drupal 1.0.0 - opensource

V Ý K O NV Ý K O N V D R U P A L U

• Pokud nenačítá data z cache je Drupal obecně relativně pomalý a náročný na zdroje

• Operační paměť, databáze i procesor (zejména kvůli renderování)

• Je to daň za architekturu• Naštěstí ta samá architektura umožňuje data

centrálně cachovat a nebo rozkládat zátěž na více strojů

• Memcache, Varnish, Squid, CDN, NoSQL DB pro některé tabulky

• Modul Boost alias „poorman’s Varnish“• Optimalizace frontendu: agregace CSS a JSS,

image sprites• Weby pro anonymní uživatele zcela bez problémů

Page 59: 38. konference EurOpen.CZ 11. května · D R I E S B U Y T A E R T A N E B K D O Z A T O M Ů Ž E ... • původní autor: Dries Buytaert, kol. roku 2000 • Drupal 1.0.0 - opensource

D E V E L N Á S T R O J EZ Á K L A D N Í  N Á S T R O J E   P R O  V Ý V O J   V   D R U P A L U

• Devel - základní toolkit pro vývojáře• http://drupal.org/project/devel• Drush – Drupal Shell - Drupal v příkazové

řádce http://drupal.org/project/drush• Coder - kontrola standardů a upgrade modulů• http://drupal.org/project/coder• Backup and Migrate - zálohování databáze

http://drupal.org/project/backup_migrate• SimpleTest - testovací framework (D7+ v jádru)• http://drupal.org/project/simpletest• Translation template extractor - extrakce

překladů: http://drupal.org/project/potx

Page 60: 38. konference EurOpen.CZ 11. května · D R I E S B U Y T A E R T A N E B K D O Z A T O M Ů Ž E ... • původní autor: Dries Buytaert, kol. roku 2000 • Drupal 1.0.0 - opensource

D R U P A L  A P IV Y V Í J Í M E P R O D R U P A L

ukázky programování pro Drupal(jestli zbude čas)

Page 61: 38. konference EurOpen.CZ 11. května · D R I E S B U Y T A E R T A N E B K D O Z A T O M Ů Ž E ... • původní autor: Dries Buytaert, kol. roku 2000 • Drupal 1.0.0 - opensource

K O M U N I T A

• 5. ledna 2011• Drupal 7 Release party - 326 akcí - 96 zemí

K O L I K ?

Page 62: 38. konference EurOpen.CZ 11. května · D R I E S B U Y T A E R T A N E B K D O Z A T O M Ů Ž E ... • původní autor: Dries Buytaert, kol. roku 2000 • Drupal 1.0.0 - opensource

K O M U N I T AK D E ?

• 5. ledna 2011• Drupal 7 Release party - 326 akcí - 96 zemí• http://www.drupal7releaseparty.org/

http://www.drupal7releaseparty.org/

Page 63: 38. konference EurOpen.CZ 11. května · D R I E S B U Y T A E R T A N E B K D O Z A T O M Ů Ž E ... • původní autor: Dries Buytaert, kol. roku 2000 • Drupal 1.0.0 - opensource

K O M U N I T AJ Á D R O

• Jádro Drupalu 7 obsahuje patche od 954 lidí

• 5 Čechů

Page 64: 38. konference EurOpen.CZ 11. května · D R I E S B U Y T A E R T A N E B K D O Z A T O M Ů Ž E ... • původní autor: Dries Buytaert, kol. roku 2000 • Drupal 1.0.0 - opensource

D R U P A L 8D r u p a l  w e b   j a k o  s o u č á s t  g i g a n t i c k é h o   g r a f u

• „The RAM is new disk and the disk is new tape“CRUD => CRA (P)

• UUID v jádře• Pluggable core• Orientace na mobilní zařízení• Orientace na webservices

Page 65: 38. konference EurOpen.CZ 11. května · D R I E S B U Y T A E R T A N E B K D O Z A T O M Ů Ž E ... • původní autor: Dries Buytaert, kol. roku 2000 • Drupal 1.0.0 - opensource

V I Z ED R U P A L J A K O J E D N O T Í C Í P R V E K

http://buytaert.net/acquia-product-strategy-and-vision

Page 66: 38. konference EurOpen.CZ 11. května · D R I E S B U Y T A E R T A N E B K D O Z A T O M Ů Ž E ... • původní autor: Dries Buytaert, kol. roku 2000 • Drupal 1.0.0 - opensource

V I Z ED R U P A L J A K O J E D N O T Í C Í P R V E K

http://buytaert.net/acquia-product-strategy-and-vision

Page 67: 38. konference EurOpen.CZ 11. května · D R I E S B U Y T A E R T A N E B K D O Z A T O M Ů Ž E ... • původní autor: Dries Buytaert, kol. roku 2000 • Drupal 1.0.0 - opensource

V I Z ED R U P A L J A K O J E D N O T Í C Í P R V E K

http://buytaert.net/acquia-product-strategy-and-vision

Page 68: 38. konference EurOpen.CZ 11. května · D R I E S B U Y T A E R T A N E B K D O Z A T O M Ů Ž E ... • původní autor: Dries Buytaert, kol. roku 2000 • Drupal 1.0.0 - opensource

V I Z ED R U P A L J A K O J E D N O T Í C Í P R V E K

http://buytaert.net/acquia-product-strategy-and-vision

Page 69: 38. konference EurOpen.CZ 11. května · D R I E S B U Y T A E R T A N E B K D O Z A T O M Ů Ž E ... • původní autor: Dries Buytaert, kol. roku 2000 • Drupal 1.0.0 - opensource

D R U P A L  -  V L A S T N O S T IK L Í Č O V É   V L A S T N O S T I  D R U P A L U

+ Rozšiřitelnost+ 7500 modulů a témat na drupal.org- Málo kvalitních témat (obtížné, musí být univerzální)+ Až 80-100% práce i u velkých webů lze vyřešit

pouhou konfigurací přes UI- Konfigurace je držena v databázi, nešikovné pro

dlouhodobý vývoj (ale nástroje už existují)+ Bezpečnost+ Škálovatelnost+ Vývojářská komunita+ Důraz na standardy a dokumentaci- Bez podpůrných systémů náročný na zdroje+/- Není zpětná kompatibilita (major verze)

Page 70: 38. konference EurOpen.CZ 11. května · D R I E S B U Y T A E R T A N E B K D O Z A T O M Ů Ž E ... • původní autor: Dries Buytaert, kol. roku 2000 • Drupal 1.0.0 - opensource

W O R D P R E S S , J O O M L A !S R O V N Á N Í S N E J V Ě T Š Í M I K O N K U R E N T Y

• Wordpress určen obecně spíš na jednoduché weby s jedním administrátorem

• Joomla! určena pro menší až po střední weby• Drupal zvládne malé weby i velké weby, je připravený na škálování

• Pro menší weby je ale náročnější na zdroje• Neexistuje pro něj trh hotových aplikací, takže vývoj může být dražší

• I když se Drupal snaží být stále více „user-friendly“, jeho hlavní cílovou skupinou jsou vývojáři či geekové, kterým vyhovuje flexibilita a možnost pokročilých nastaveních kdekoliv a kdykoliv

• Drupal není produkt, za produkty se dají považovat až distribuce, v porovnání s Wordpressem se jedná jen o „polotovar“

Page 71: 38. konference EurOpen.CZ 11. května · D R I E S B U Y T A E R T A N E B K D O Z A T O M Ů Ž E ... • původní autor: Dries Buytaert, kol. roku 2000 • Drupal 1.0.0 - opensource

K D O   P O U Ž Í V Á  D R U P A L ?

?

Page 72: 38. konference EurOpen.CZ 11. května · D R I E S B U Y T A E R T A N E B K D O Z A T O M Ů Ž E ... • původní autor: Dries Buytaert, kol. roku 2000 • Drupal 1.0.0 - opensource

K D O   P O U Ž Í V Á  D R U P A L ?D R U P A L . O R G

Page 73: 38. konference EurOpen.CZ 11. května · D R I E S B U Y T A E R T A N E B K D O Z A T O M Ů Ž E ... • původní autor: Dries Buytaert, kol. roku 2000 • Drupal 1.0.0 - opensource

K D O   P O U Ž Í V Á  D R U P A L ?G A R M I N . D K

Page 74: 38. konference EurOpen.CZ 11. května · D R I E S B U Y T A E R T A N E B K D O Z A T O M Ů Ž E ... • původní autor: Dries Buytaert, kol. roku 2000 • Drupal 1.0.0 - opensource

K D O   P O U Ž Í V Á  D R U P A L ?L E F I G A R O . F R

Page 75: 38. konference EurOpen.CZ 11. května · D R I E S B U Y T A E R T A N E B K D O Z A T O M Ů Ž E ... • původní autor: Dries Buytaert, kol. roku 2000 • Drupal 1.0.0 - opensource

K D O   P O U Ž Í V Á  D R U P A L ?E C O N O M I S T . C O M

Page 76: 38. konference EurOpen.CZ 11. května · D R I E S B U Y T A E R T A N E B K D O Z A T O M Ů Ž E ... • původní autor: Dries Buytaert, kol. roku 2000 • Drupal 1.0.0 - opensource

K D O   P O U Ž Í V Á  D R U P A L ?L O N D O N . G O V . U K

Page 77: 38. konference EurOpen.CZ 11. května · D R I E S B U Y T A E R T A N E B K D O Z A T O M Ů Ž E ... • původní autor: Dries Buytaert, kol. roku 2000 • Drupal 1.0.0 - opensource

K D O   P O U Ž Í V Á  D R U P A L ?W H I T E H O U S E . G O V

Page 78: 38. konference EurOpen.CZ 11. května · D R I E S B U Y T A E R T A N E B K D O Z A T O M Ů Ž E ... • původní autor: Dries Buytaert, kol. roku 2000 • Drupal 1.0.0 - opensource

K D O   P O U Ž Í V Á  D R U P A L ?E N E R G Y . G O V

Page 79: 38. konference EurOpen.CZ 11. května · D R I E S B U Y T A E R T A N E B K D O Z A T O M Ů Ž E ... • původní autor: Dries Buytaert, kol. roku 2000 • Drupal 1.0.0 - opensource

K D O   P O U Ž Í V Á  D R U P A L ?P Y T H O N L I N E . C O M

Page 80: 38. konference EurOpen.CZ 11. května · D R I E S B U Y T A E R T A N E B K D O Z A T O M Ů Ž E ... • původní autor: Dries Buytaert, kol. roku 2000 • Drupal 1.0.0 - opensource

K D O   P O U Ž Í V Á  D R U P A L ?G R A M M Y . C O M

Page 81: 38. konference EurOpen.CZ 11. května · D R I E S B U Y T A E R T A N E B K D O Z A T O M Ů Ž E ... • původní autor: Dries Buytaert, kol. roku 2000 • Drupal 1.0.0 - opensource

K D O   P O U Ž Í V Á  D R U P A L ?S H C . S T A N F O R D . E D U

Page 82: 38. konference EurOpen.CZ 11. května · D R I E S B U Y T A E R T A N E B K D O Z A T O M Ů Ž E ... • původní autor: Dries Buytaert, kol. roku 2000 • Drupal 1.0.0 - opensource

K D O   P O U Ž Í V Á  D R U P A L ?W W W . D U K E . E D U

Page 83: 38. konference EurOpen.CZ 11. května · D R I E S B U Y T A E R T A N E B K D O Z A T O M Ů Ž E ... • původní autor: Dries Buytaert, kol. roku 2000 • Drupal 1.0.0 - opensource

K D O   P O U Ž Í V Á  D R U P A L ?U B U N T U . C O M

Page 84: 38. konference EurOpen.CZ 11. května · D R I E S B U Y T A E R T A N E B K D O Z A T O M Ů Ž E ... • původní autor: Dries Buytaert, kol. roku 2000 • Drupal 1.0.0 - opensource

L I T E R A T U R AK D E   S E   D O Z V Ě D Ě T  V Í C

• Pro Drupal 7 Development• Drupal 7 Module

Development

Page 85: 38. konference EurOpen.CZ 11. května · D R I E S B U Y T A E R T A N E B K D O Z A T O M Ů Ž E ... • původní autor: Dries Buytaert, kol. roku 2000 • Drupal 1.0.0 - opensource

S E T K Á N ÍK D E   S E   D O Z V Ě D Ě T  V Í C

• Komunita Drupal.cz• BRNO - 12. května 2011 – Drupal hospoda• PRAHA - 18. května 2011 – Drupal hospoda• PRAHA – konec května – Drupal setkání v Hubu

• Drupalcon London 2011, 22.-26. 8. 2011http://london2011.drupal.org/

Page 86: 38. konference EurOpen.CZ 11. května · D R I E S B U Y T A E R T A N E B K D O Z A T O M Ů Ž E ... • původní autor: Dries Buytaert, kol. roku 2000 • Drupal 1.0.0 - opensource

D Í K Y  Z A  P O Z O R N O S TR O Z L O U Č E N Í    A    P R O S T O R    N A    D O T A Z Y

"Come for software, stay for community"

Vojtěch Kusý @wojthahttp://drupal.org/user/56154

Atomic Ant Ltd.http://atomicant.co.uk

http://atomicant.cz