Content Management Framework Drupal aneb 80% webu za pár hodin. Hodí se i pro mě?
1. Content Management Framework Drupal TM
aneb 80% webu za pár hodin.
Hodí se i pro mě?
Vojtěch Kusý
http://vojtechkusy.cz
2. 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
3. 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
6. 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)
7. 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...?
8. Barcamp Brno 2010 Hlavička
Primární menu
Menu Uvítání
Blok Seznam přednášek Seznam přednášejících
Blok
Novinky
9. 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
10. 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)
40. Ukázali jsme si
●
Instalace je snadná
●
CCK
●
Views
●
Panels
●
Imagecache
●
Moduly spolu spolupracují
41. 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
43. 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
44. „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()
45. Theme Developer
●
Dříve submodul Devel (Developer Tools)
●
Dnes již jako samostatný modul
48. !!! 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
49. 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...
50. 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)
51. 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“
58. 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
59. 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ů
60.
61. Ú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ů
62. USE CASES
http://www.flickr.com/photos/evansfam/4700346257
85. 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 !!!!!
87. 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
88. Zdroje o Drupalu
●
drupal.org
●
groups.drupal.org
●
planet.drupal.org
●
drupal.com
●
drupaldojo.com
●
api.drupal.org
89. 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
90. „Come for software
stay for community“
Díky za pozornost
Vojtěch Kusý
www.vojtechkusy.cz
@wojtha
91. Náměty k diskusi
●
Drupal vs Joomla vs Wordpress
●
Drupal vs Frameworky (Rails, Django...)
●
Drupal vs ???
●
Deploy