content management framework drupal aneb 80% webu za pár hodin. hodí se i pro mě?
DESCRIPTION
Základy práce se systémem Drupal, využití modulů CCK, Views a Panels, šablonování, tipy pro vývoj custom modulů, showcase.TRANSCRIPT
Content Management Framework DrupalTM
aneb 80% webu za pár hodin.
Hodí se i pro mě?
Vojtěch Kusýhttp://vojtechkusy.cz
Co vás čeká? … A nemine?!
● Představení CMS Drupal● Stručná historie● Architektura
● Co lze stihnout za hodinu?● Šablony● Distribuce● Hybridní vývoj● Drupal Show
Dries Buytaert aneb „řekněte mi kdo za to může?“
● původní autor: Dries Buytaert, kol. roku 2000● hardcore Linux geek :-)
● komunitní opensource od samého začátku, žádná „komerční“ vize
● DORP => dorp.org => drop.org => DROP => DRUPPEL => [DRUPAL] => drupal.org
● Dries vlastní TRADEMARK ... DrupalTM
● automatická licence● komerční licence => zisk putuje asociaci
Zdroj: http://buytaert.net/files/state-of-drupal-april-2010.pdf
Dries už mezitím trochu vyrostl :-)
Základní architektura Drupalu
● Modulární architektura● Základní moduly (povinné): System, User, Node,
Filter, Block● Nepovinné: Blog, Taxonomy, Comment, Poll …
● Základní „objekty“ resp. entity● Povinné: Node (uzel), User, Block● Nepovinné: Taxonomy term (kategorie), Comment
● Témata● Několik témat v jádře, v Drupa 6 použitelný jen
Garland v dnešní době (ostatní? … nostalgie)
80% webu za pár hodin
● Drupal se snadno instaluje (dnes standard)● Za hodinu můžeme mít hotovou základní
strukturu webu, včetně pár stránek obsahu● A to dokonce „na míru!“
● Tzn žádné zbytečná pole při vkládání obsahu● Obsah vypisujeme kde chceme, jak chceme a kdy
chceme!● Co třeba takový web pro Barcamp...?
Hlavička
Primární menu
Blok
Blok
Menu Uvítání
Novinky
Seznam přednášek Seznam přednášejících
Barcamp Brno 2010
Snadná instalace
● Co je potřeba?● nakonfigurovaný Apache, PHP 4.1+, MySQL/Postgre● prázdná databáze● stažený a rozbalený Drupal● popřípadě český překlad● … a pak už jen klikáme
One-click instalátory
● Kromě toho je možné využít● Acquia Drupal Stack Installer (+ Apache, MySQL)● Bitnami Drupal Stack (+ Apache, MySQL)● Microsoft Web Platform (+ IIS, SQL Server)
Drupal & MS Web Platform
Ale zpět k Barcamp webu a k instalaci „obyčejného“ Drupalu …
POJDMĚ NA TO!
Instalace je hotová ...
Teď ještě doladíme barvy
Náš první článek
Rovnou vytvoříme i odkaz v primárním menu
Zárodek titulní stránky... a co dál?
Nyní přichází na řadu MONSTRA!
CCKViewsPanels
A pár pomocníků...
ImagecacheToken
Pathauto
V modulech zapneme CCK, Views,
Imagecache, Panels, ...
A vytvoříme první CCK typ obsahu
Přidáme nějaká políčka
Nastavení políčka
Zvolíme způsob zobrazení/formátování
Vytvoření pohledu
Vytvoření panelu
PANEL
VIEW
CCK
CCK
CCKBLOKY
Takhle nějak?
Voila!
Nebylo by lepší zobrazitpřednášky v tabulce?
No problem!
Za litr! :-)
Změna seznamu na tabulku +1-2min
Setříděno dle„délky“
?
ImageCache
Ukázali jsme si
● Instalace je snadná● CCK● Views● Panels● Imagecache● Moduly spolu spolupracují
Jednoduché weby
● Jednoduché weby jsou v Drupalu hotové skutečně za pár hodin
● Nejvíc času zabere šablonování – vytvoření tématu – pokud nám tedy nestačí nějaké hotové téma
Úvod do šablonování
http://www.flickr.com/photos/dominicspics/820426697
Drupal & Šablony
● Drupal není MVC ale PAC!!!● MVC = model – view – controller● PAC = presentation – abstraction – controller
● 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řebíjet“ tak, že vytvoříme svoje vlastní
● Šablona v tématu má přednost
„Přebíjení“
● Dva základní typy● šablony v souboru (*.tpl.php, např. page.tpl.php)● šablonovací funkce (theme_*, např. theme_image)
● Jmenné konvence – podobně jako u CSS● node-1.tpl.php > node-story.tpl.php > node.tpl.php● mojetema_image() > phptemplate_image() >
theme_image()
Theme Developer● Dříve submodul Devel (Developer Tools)● Dnes již jako samostatný modul
Views - theme information
Views - theme information
!!! Kodér by měl rozumět jak mechanizmus šablon v Drupalu funguje !!!
!!! Nelze dělat šablony a funkcionalitu zcela odděleně. !!!
(Resp. lze ale je to spousta práce navíc.)
Pokud patříte mezi HTML puristy, potěší vás projekt Mothership
Když moduly nestačí aneb vývoj s Drupalem
● chceme verzovat, ale Drupal má všechno v DB● vytvoříme modul klasickým způsobem (<D5)● implementujeme potřebné háky …● pro obhospodaření vlastního typu uzlu je
potřeba:● hook_node_info, hook_form, hook_insert,
hook_update, hook_delete, hook_validate …● implementovat hook_views a vytvořit příslušnou
podporu hook_views...
Jde to i jinak... hybridní vývoj
● Dokud to lze, využíváme možností CCK, Views a podobných modulů
● CCK typ obsahu, Views i třeba Imagecache profil lze exportovat
● Exporty lze uložit do modulu a nainstalovat během hook_install● verzování, deploy● základ, který se dá v UI změnit (CCK – dá se
zakázat), ale ke kterému se můžeme vrátit● změny se musí hlídat s při distribuci ošetřovat
manuálně (hook_update)
Features – již brzy ...
● Feature = moduly + nastavení● Všechny informace jsou uložené v textovém
souboru● „Mini-instalační profil“
● Rozpoznání změn● Verzovatelné, snadné přenášení mezi Dev a Stable
serverem● Z modulů se stanou spíše „knihovny“● Pro obyčejné uživatele budou určené „features“
Další pokročilé nástroje
● Aegir● DRUSH
= Drupal Shell
Distribuce / Instalační profily
● OpenAtrium = intranety, projekty, týmy● PressFlow = magazíny, škálovatelnost● OpenScholar = univerzity, vzdělávací instituce● Tattler = agregování obsahu, topic monitoring● …
● Distribuce = instalační profil + moduly● Aktuálně asi 15 distribucí a 80 instalačních
profilů
Distribuce nejsou forky!!!
OpenAtrium: intranety, projekty, týmy
PressFlow: magazíny, škálovatelnost
OpenScholar: univerzity, vzdělávací instituce
Acquia = Drupal 4 Enterprises
● Acquia Drupal● Drupal + Acquia moduly (heartbeat, search,
update) a témata + supported moduly● Acquia Drupal Stack Installer
● Enterprise Support● 24/7 za $8000 ročně
● Acquia Partners● Drupal Gardens (drupalgardens.com)● Drupal hosting
Co je Drupal – z pohledu uživatele
● CMS, které je neuvěřitelně flexibilní● nefunguje sice stylem „zapnu a jedu“, ale
pomocí 6000 různých modulů je možné přizpůsobit si web na „míru“ bez znalostí programování
● modulům kralují CCK a Views● flexibilní systém práv● e-commerce modul Übercart umožňuje i laikům
rozjet jednodušší e-shop
Co je Drupal z pohledu vývojáře
● platforma pro vytváření CMS systémů, specifická architektura, která nemá obdoby(?)
● architektura háků (hooks) dovoluje se snadno napojit na různé fáze běhu systému
● Drupal není MVC, ale PAC● silné API, které lze snadno rozšiřovat● bezpečnost
● požadavky modulů jdou přes API● „alter háky“ a přebití šablon – snadný update
modulů
Úskalí
● CCK a Views nejsou samospasitelné, musí se s nimi umět a stále je co zlepšovat
● Deploy a verzování změn v databázi● Klesající výkon při velkém počtu
● a) přihlášených uživatelů● b) při velkém počtu modulů
USE CASES
http://www.flickr.com/photos/evansfam/4700346257
Drupal & Rockstars
Drupal & Drupal & EnterprisesEnterprises
http://www.flickr.com/photos/sinkdd/3151637571/
http://www.flickr.com/photos/barackobamadotcom/2639286039
Yes... WE CAN !
Drupal & Drupal & GovernmentGovernment
Něco z domovské
česko-slovenské
kotliny
Co nás čeká...
● Drupal 7.0 (2010-??) - REVOLUCE● >= PHP 5.2.x only, přepis subsystémů do objektů● UX – Mark Boulton● RDF v jádře● driver pro MS SQL Server (MS Web Platform)● asi 50 modulů zahrnuto do jádra, včetně Fields API● standard + smallcore● první RC očekáván koncem července/srpna
● Drupal 8.0 (???) CVS => Git !!!!!
Drupal.org redesign
markboulton.co.uk
Drupal Way – proč zvolit Drupal?
● Dává velkou moc i neprogramátorům● Rychlý start● Flexibilní – ideální na projekty, kde se očekává
mnoho změn za běhu● Hybridní způsob vývoje – propojení nástrojů
Views, CCK, Panels a dalších● Komunita
Zdroje o Drupalu
● drupal.org● groups.drupal.org● planet.drupal.org● drupal.com● drupaldojo.com● api.drupal.org
Zdroje o Drupalu v ČR a SK
● drupal.cz a drupal.sk● drupal.cz/forum
● seriály a články na ● Interval, Root, Maxiorel
● 2 knihy od Jana Polzera● Drupal - Podrobný průvodce
tvorbou a správou webů● 333 tipů a triků pro Drupal● bohužel obsahují chyby
„Come for softwarestay for community“
Díky za pozornost
Vojtěch Kusý
www.vojtechkusy.cz@wojtha
Náměty k diskusi
● Drupal vs Joomla vs Wordpress● Drupal vs Frameworky (Rails, Django...)● Drupal vs ???● Deploy