SlideShare ist ein Scribd-Unternehmen logo
1 von 91
Downloaden Sie, um offline zu lesen
Content Management Framework Drupal   TM

     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...?
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
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!

            CCK
           Views
           Panels

      A pár pomocníků...

        Imagecache
          Token
         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
Takhle nějak?

                               PANEL


                              VIEW

                        CCK


                        CCK


                        CCK
BLOKY
Nebylo by lepší zobrazit
                 přednášky v tabulce?




No problem!


 Za litr! :-)
                Voila!
Setříděno dle
                          „délky“




Změna seznamu na tabulku +1-2min
?

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 nejsou forky!!!
●
    Distribuce = instalační profil + moduly
●
    Aktuálně asi 15 distribucí a 80 instalačních
    profilů
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 & Enterprises



         http://www.flickr.com/photos/sinkdd/3151637571/
Drupal & Government

      Yes... WE CAN                                    !




     http://www.flickr.com/photos/barackobamadotcom/2639286039
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 software
stay 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

Weitere ähnliche Inhalte

Andere mochten auch

Tracer Business Presentation Acsentuate
Tracer Business Presentation AcsentuateTracer Business Presentation Acsentuate
Tracer Business Presentation AcsentuateCobus van Graan
 
Otkritie Financial Corporation
Otkritie Financial CorporationOtkritie Financial Corporation
Otkritie Financial Corporationivtorov
 
The Adventures Of Tom Sawyer
The Adventures Of Tom SawyerThe Adventures Of Tom Sawyer
The Adventures Of Tom SawyerRoye ritchie
 
London Twitter Developer community meet up - Sept 2016
London Twitter Developer community meet up - Sept 2016London Twitter Developer community meet up - Sept 2016
London Twitter Developer community meet up - Sept 2016Angus Fox
 
Web support: nechte uživatele ať si pomohou sami
Web support: nechte uživatele ať si pomohou samiWeb support: nechte uživatele ať si pomohou sami
Web support: nechte uživatele ať si pomohou samiVojtěch Kusý
 
Add subpolyspowepoint
Add subpolyspowepointAdd subpolyspowepoint
Add subpolyspowepointacalomin
 
Le positionnement d'un site repose sur des contenus accessibles
Le positionnement d'un site repose sur des contenus accessiblesLe positionnement d'un site repose sur des contenus accessibles
Le positionnement d'un site repose sur des contenus accessiblesYellow Dolphins
 
Mesure de la performance e-marketing
Mesure de la performance e-marketingMesure de la performance e-marketing
Mesure de la performance e-marketingohmyweb!
 
Mesurer la valeur de vos points d’engagement sur Internet
Mesurer la valeur de vos points d’engagement sur InternetMesurer la valeur de vos points d’engagement sur Internet
Mesurer la valeur de vos points d’engagement sur InternetAdviso Stratégie Internet
 
Etude de marché Beiersdorf/Nivea
Etude de marché Beiersdorf/NiveaEtude de marché Beiersdorf/Nivea
Etude de marché Beiersdorf/NiveaEdouard Kinziger
 
pc 8 i 9 - Fer una presentació amb gràfics i taules i publicar-la
pc 8 i 9 - Fer una presentació amb gràfics i taules i publicar-lapc 8 i 9 - Fer una presentació amb gràfics i taules i publicar-la
pc 8 i 9 - Fer una presentació amb gràfics i taules i publicar-laMamen Ruiz
 
Project filem klasik dan moden
Project filem klasik dan modenProject filem klasik dan moden
Project filem klasik dan modenbmsiti10
 
Persentasi Finroll
Persentasi FinrollPersentasi Finroll
Persentasi Finrolltelkom
 
Presentatie sumoso
Presentatie sumosoPresentatie sumoso
Presentatie sumosoDecofleurs
 
Nishizaki羊羊得意床罩組
Nishizaki羊羊得意床罩組Nishizaki羊羊得意床罩組
Nishizaki羊羊得意床罩組wolin1031
 

Andere mochten auch (20)

Bio Dominic
Bio DominicBio Dominic
Bio Dominic
 
E Glover Presentation
E Glover PresentationE Glover Presentation
E Glover Presentation
 
Tracer Business Presentation Acsentuate
Tracer Business Presentation AcsentuateTracer Business Presentation Acsentuate
Tracer Business Presentation Acsentuate
 
Otkritie Financial Corporation
Otkritie Financial CorporationOtkritie Financial Corporation
Otkritie Financial Corporation
 
The Adventures Of Tom Sawyer
The Adventures Of Tom SawyerThe Adventures Of Tom Sawyer
The Adventures Of Tom Sawyer
 
London Twitter Developer community meet up - Sept 2016
London Twitter Developer community meet up - Sept 2016London Twitter Developer community meet up - Sept 2016
London Twitter Developer community meet up - Sept 2016
 
Web support: nechte uživatele ať si pomohou sami
Web support: nechte uživatele ať si pomohou samiWeb support: nechte uživatele ať si pomohou sami
Web support: nechte uživatele ať si pomohou sami
 
Add subpolyspowepoint
Add subpolyspowepointAdd subpolyspowepoint
Add subpolyspowepoint
 
Le positionnement d'un site repose sur des contenus accessibles
Le positionnement d'un site repose sur des contenus accessiblesLe positionnement d'un site repose sur des contenus accessibles
Le positionnement d'un site repose sur des contenus accessibles
 
Mesure de la performance e-marketing
Mesure de la performance e-marketingMesure de la performance e-marketing
Mesure de la performance e-marketing
 
Mesurer la valeur de vos points d’engagement sur Internet
Mesurer la valeur de vos points d’engagement sur InternetMesurer la valeur de vos points d’engagement sur Internet
Mesurer la valeur de vos points d’engagement sur Internet
 
Etude de marché Beiersdorf/Nivea
Etude de marché Beiersdorf/NiveaEtude de marché Beiersdorf/Nivea
Etude de marché Beiersdorf/Nivea
 
pc 8 i 9 - Fer una presentació amb gràfics i taules i publicar-la
pc 8 i 9 - Fer una presentació amb gràfics i taules i publicar-lapc 8 i 9 - Fer una presentació amb gràfics i taules i publicar-la
pc 8 i 9 - Fer una presentació amb gràfics i taules i publicar-la
 
Project filem klasik dan moden
Project filem klasik dan modenProject filem klasik dan moden
Project filem klasik dan moden
 
Persentasi Finroll
Persentasi FinrollPersentasi Finroll
Persentasi Finroll
 
Presentatie sumoso
Presentatie sumosoPresentatie sumoso
Presentatie sumoso
 
Web Gospel
Web GospelWeb Gospel
Web Gospel
 
Bando 2010 2011
Bando 2010 2011Bando 2010 2011
Bando 2010 2011
 
Exk.
Exk.Exk.
Exk.
 
Nishizaki羊羊得意床罩組
Nishizaki羊羊得意床罩組Nishizaki羊羊得意床罩組
Nishizaki羊羊得意床罩組
 

Ähnlich wie Content Management Framework Drupal aneb 80% webu za pár hodin. Hodí se i pro mě?

Smalltalk prakticky [CZ]
Smalltalk prakticky [CZ]Smalltalk prakticky [CZ]
Smalltalk prakticky [CZ]Tomáš Kukol
 
Generátory statických webů
Generátory statických webůGenerátory statických webů
Generátory statických webůMichal Doležel
 
Výběr vhodných technologii pro startup v prostředí cloudu
Výběr vhodných technologii pro startup v prostředí clouduVýběr vhodných technologii pro startup v prostředí cloudu
Výběr vhodných technologii pro startup v prostředí clouduJan Kodera
 
Skiper - vizualizační nástroj
Skiper - vizualizační nástrojSkiper - vizualizační nástroj
Skiper - vizualizační nástrojSkipper18
 
Blend for Visual Studio 2015
Blend for Visual Studio 2015Blend for Visual Studio 2015
Blend for Visual Studio 2015Jiri Danihelka
 
Čtvrtkon #71 - Marian Benčat - Angular a NativeScript
Čtvrtkon #71 - Marian Benčat - Angular a NativeScriptČtvrtkon #71 - Marian Benčat - Angular a NativeScript
Čtvrtkon #71 - Marian Benčat - Angular a NativeScriptCtvrtkoncz
 
Co je ORM Designer
Co je ORM DesignerCo je ORM Designer
Co je ORM DesignerSkipper
 
Rich Internet Applications 2009 (Czech)
Rich Internet Applications 2009 (Czech)Rich Internet Applications 2009 (Czech)
Rich Internet Applications 2009 (Czech)Pavel Růžička
 
Vývoj frontendu na redakčním systému? ... aneb jak udržet pořádek v š...
Vývoj frontendu na redakčním systému? ... aneb jak udržet pořádek v š...Vývoj frontendu na redakčním systému? ... aneb jak udržet pořádek v š...
Vývoj frontendu na redakčním systému? ... aneb jak udržet pořádek v š...Martin Pešout
 
Webový front-end ve službách mobilního vývojáře
Webový front-end  ve službách mobilního  vývojáře Webový front-end  ve službách mobilního  vývojáře
Webový front-end ve službách mobilního vývojáře Martin Michálek
 
Verzování WordPress webů (#wpkonference 11/2014)
Verzování WordPress webů (#wpkonference 11/2014)Verzování WordPress webů (#wpkonference 11/2014)
Verzování WordPress webů (#wpkonference 11/2014)Borek Bernard
 
PHP Vysočina - WordPress - 25.10.2018
PHP Vysočina - WordPress - 25.10.2018PHP Vysočina - WordPress - 25.10.2018
PHP Vysočina - WordPress - 25.10.2018Brilo Team
 
Borek Bernard: TypeScript - příčetný jazyk pro web
Borek Bernard: TypeScript - příčetný jazyk pro webBorek Bernard: TypeScript - příčetný jazyk pro web
Borek Bernard: TypeScript - příčetný jazyk pro webDevelcz
 
Konfigurace frameworku Oak v Piranha CMS Oak
Konfigurace frameworku Oak v Piranha CMS OakKonfigurace frameworku Oak v Piranha CMS Oak
Konfigurace frameworku Oak v Piranha CMS OakDavid Podhola
 
Hacknutý Drupal web. A co teď?
Hacknutý Drupal web. A co teď?Hacknutý Drupal web. A co teď?
Hacknutý Drupal web. A co teď?Radim Klaška
 

Ähnlich wie Content Management Framework Drupal aneb 80% webu za pár hodin. Hodí se i pro mě? (20)

Smalltalk prakticky [CZ]
Smalltalk prakticky [CZ]Smalltalk prakticky [CZ]
Smalltalk prakticky [CZ]
 
Generátory statických webů
Generátory statických webůGenerátory statických webů
Generátory statických webů
 
Výběr vhodných technologii pro startup v prostředí cloudu
Výběr vhodných technologii pro startup v prostředí clouduVýběr vhodných technologii pro startup v prostředí cloudu
Výběr vhodných technologii pro startup v prostředí cloudu
 
Skiper - vizualizační nástroj
Skiper - vizualizační nástrojSkiper - vizualizační nástroj
Skiper - vizualizační nástroj
 
Blend for Visual Studio 2015
Blend for Visual Studio 2015Blend for Visual Studio 2015
Blend for Visual Studio 2015
 
Čtvrtkon #71 - Marian Benčat - Angular a NativeScript
Čtvrtkon #71 - Marian Benčat - Angular a NativeScriptČtvrtkon #71 - Marian Benčat - Angular a NativeScript
Čtvrtkon #71 - Marian Benčat - Angular a NativeScript
 
Co je ORM Designer
Co je ORM DesignerCo je ORM Designer
Co je ORM Designer
 
Rich Internet Applications 2009 (Czech)
Rich Internet Applications 2009 (Czech)Rich Internet Applications 2009 (Czech)
Rich Internet Applications 2009 (Czech)
 
Vývoj frontendu na redakčním systému? ... aneb jak udržet pořádek v š...
Vývoj frontendu na redakčním systému? ... aneb jak udržet pořádek v š...Vývoj frontendu na redakčním systému? ... aneb jak udržet pořádek v š...
Vývoj frontendu na redakčním systému? ... aneb jak udržet pořádek v š...
 
TNPW2-2014-03
TNPW2-2014-03TNPW2-2014-03
TNPW2-2014-03
 
TNPW2-2013-03
TNPW2-2013-03TNPW2-2013-03
TNPW2-2013-03
 
Webový front-end ve službách mobilního vývojáře
Webový front-end  ve službách mobilního  vývojáře Webový front-end  ve službách mobilního  vývojáře
Webový front-end ve službách mobilního vývojáře
 
Verzování WordPress webů (#wpkonference 11/2014)
Verzování WordPress webů (#wpkonference 11/2014)Verzování WordPress webů (#wpkonference 11/2014)
Verzování WordPress webů (#wpkonference 11/2014)
 
TNPW2-2012-05
TNPW2-2012-05TNPW2-2012-05
TNPW2-2012-05
 
PHP Vysočina - WordPress - 25.10.2018
PHP Vysočina - WordPress - 25.10.2018PHP Vysočina - WordPress - 25.10.2018
PHP Vysočina - WordPress - 25.10.2018
 
Borek Bernard: TypeScript - příčetný jazyk pro web
Borek Bernard: TypeScript - příčetný jazyk pro webBorek Bernard: TypeScript - příčetný jazyk pro web
Borek Bernard: TypeScript - příčetný jazyk pro web
 
TNPW2-2013-05
TNPW2-2013-05TNPW2-2013-05
TNPW2-2013-05
 
Konfigurace frameworku Oak v Piranha CMS Oak
Konfigurace frameworku Oak v Piranha CMS OakKonfigurace frameworku Oak v Piranha CMS Oak
Konfigurace frameworku Oak v Piranha CMS Oak
 
TNPW2-2016-03
TNPW2-2016-03TNPW2-2016-03
TNPW2-2016-03
 
Hacknutý Drupal web. A co teď?
Hacknutý Drupal web. A co teď?Hacknutý Drupal web. A co teď?
Hacknutý Drupal web. A co teď?
 

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
  • 5. Dries už mezitím trochu vyrostl :-)
  • 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)
  • 11. Drupal & MS Web Platform
  • 12. Ale zpět k Barcamp webu a k instalaci „obyčejného“ Drupalu … POJDMĚ NA TO!
  • 13.
  • 14.
  • 15.
  • 18.
  • 20. Rovnou vytvoříme i odkaz v primárním menu
  • 22. Nyní přichází na řadu MONSTRA! CCK Views Panels A pár pomocníků... Imagecache Token Pathauto
  • 23. V modulech zapneme CCK, Views, Imagecache, Panels, ...
  • 24. A vytvoříme první CCK typ obsahu
  • 29.
  • 30.
  • 32.
  • 33.
  • 34. Takhle nějak? PANEL VIEW CCK CCK CCK BLOKY
  • 35. Nebylo by lepší zobrazit přednášky v tabulce? No problem! Za litr! :-) Voila!
  • 36. Setříděno dle „délky“ Změna seznamu na tabulku +1-2min
  • 37.
  • 39.
  • 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
  • 42. Úvod do šablonování http://www.flickr.com/photos/dominicspics/820426697
  • 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
  • 46. Views - theme information
  • 47. Views - theme information
  • 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“
  • 52. Další pokročilé nástroje ● Aegir ● DRUSH = Drupal Shell
  • 53. 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 nejsou forky!!! ● Distribuce = instalační profil + moduly ● Aktuálně asi 15 distribucí a 80 instalačních profilů
  • 57. 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
  • 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
  • 63.
  • 64.
  • 65.
  • 66.
  • 67.
  • 69.
  • 70.
  • 71.
  • 72. Drupal & Enterprises http://www.flickr.com/photos/sinkdd/3151637571/
  • 73.
  • 74.
  • 75.
  • 76.
  • 77. Drupal & Government Yes... WE CAN ! http://www.flickr.com/photos/barackobamadotcom/2639286039
  • 78.
  • 79.
  • 80.
  • 81. Něco z domovské česko-slovenské kotliny
  • 82.
  • 83.
  • 84.
  • 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 !!!!!
  • 86. Drupal.org redesign markboulton.co.uk
  • 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